source: trunk/src/NTDLL/crt.cpp@ 156

Last change on this file since 156 was 156, checked in by phaller, 26 years ago

Add: more C-runtime stuff in NTDLL

File size: 20.1 KB
Line 
1/* $Id: crt.cpp,v 1.2 1999-06-22 17:08:16 phaller Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 * Win32 NT Runtime / NTDLL for OS/2
6 * Copyright 1999 Patrick Haller (phaller@gmx.net)
7 */
8
9#include <odin.h>
10#include <stdlib.h>
11#include <string.h>
12#include <math.h>
13#include <ctype.h>
14#include <wchar.h>
15#include <wcstr.h>
16
17#include "ntdll.h"
18
19/*
20NTDLL.sprintf
21NTDLL._itoa
22NTDLL._wcsicmp
23*/
24
25
26
27/*****************************************************************************
28 * Name :
29 * Purpose :
30 * Parameters:
31 * Variables :
32 * Result :
33 * Remark : NTDLL.883
34 * Status :
35 *
36 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
37 *****************************************************************************/
38
39double CDECL OS2abs(double d)
40{
41 dprintf(("NTDLL: abs(%f)\n",
42 d));
43
44 return (abs(d));
45}
46
47
48/*****************************************************************************
49 * Name :
50 * Purpose :
51 * Parameters:
52 * Variables :
53 * Result :
54 * Remark : NTDLL.884
55 * Status :
56 *
57 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
58 *****************************************************************************/
59
60double CDECL OS2atan(double d)
61{
62 dprintf(("NTDLL: atan(%f)\n",
63 d));
64
65 return (atan(d));
66}
67
68
69/*****************************************************************************
70 * Name :
71 * Purpose :
72 * Parameters:
73 * Variables :
74 * Result :
75 * Remark : NTDLL.885
76 * Status :
77 *
78 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
79 *****************************************************************************/
80
81int CDECL OS2atoi(LPSTR str)
82{
83 dprintf(("NTDLL: atoi(%s)\n",
84 str));
85
86 return (atoi(str));
87}
88
89
90/*****************************************************************************
91 * Name :
92 * Purpose :
93 * Parameters:
94 * Variables :
95 * Result :
96 * Remark : NTDLL.886
97 * Status :
98 *
99 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
100 *****************************************************************************/
101
102long CDECL OS2atol(LPSTR str)
103{
104 dprintf(("NTDLL: atol(%s)\n",
105 str));
106
107 return (atol(str));
108}
109
110
111/*****************************************************************************
112 * Name :
113 * Purpose :
114 * Parameters:
115 * Variables :
116 * Result :
117 * Remark : NTDLL.887
118 * Status :
119 *
120 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
121 *****************************************************************************/
122
123double CDECL OS2ceil(double d)
124{
125 dprintf(("NTDLL: ceil(%f)\n",
126 d));
127
128 return (ceil(d));
129}
130
131
132/*****************************************************************************
133 * Name :
134 * Purpose :
135 * Parameters:
136 * Variables :
137 * Result :
138 * Remark : NTDLL.888
139 * Status :
140 *
141 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
142 *****************************************************************************/
143
144double CDECL OS2cos(double d)
145{
146 dprintf(("NTDLL: cos(%f)\n",
147 d));
148
149 return (cos(d));
150}
151
152
153/*****************************************************************************
154 * Name :
155 * Purpose :
156 * Parameters:
157 * Variables :
158 * Result :
159 * Remark : NTDLL.889
160 * Status :
161 *
162 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
163 *****************************************************************************/
164
165double CDECL OS2fabs(double d)
166{
167 dprintf(("NTDLL: fabs(%f)\n",
168 d));
169
170 return (fabs(d));
171}
172
173
174/*****************************************************************************
175 * Name :
176 * Purpose :
177 * Parameters:
178 * Variables :
179 * Result :
180 * Remark : NTDLL.890
181 * Status :
182 *
183 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
184 *****************************************************************************/
185
186double CDECL OS2floor(double d)
187{
188 dprintf(("NTDLL: floor(%f)\n",
189 d));
190
191 return (floor(d));
192}
193
194
195/*****************************************************************************
196 * Name :
197 * Purpose :
198 * Parameters:
199 * Variables :
200 * Result :
201 * Remark : NTDLL.891
202 * Status :
203 *
204 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
205 *****************************************************************************/
206
207int CDECL OS2isalpha(int i)
208{
209 dprintf(("NTDLL: isalpha(%08xh)\n",
210 i));
211
212 return (isalpha(i));
213}
214
215
216/*****************************************************************************
217 * Name :
218 * Purpose :
219 * Parameters:
220 * Variables :
221 * Result :
222 * Remark : NTDLL.892
223 * Status :
224 *
225 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
226 *****************************************************************************/
227
228int CDECL OS2isdigit(int i)
229{
230 dprintf(("NTDLL: isdigit(%08xh)\n",
231 i));
232
233 return (isdigit(i));
234}
235
236
237/*****************************************************************************
238 * Name :
239 * Purpose :
240 * Parameters:
241 * Variables :
242 * Result :
243 * Remark : NTDLL.893
244 * Status :
245 *
246 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
247 *****************************************************************************/
248
249int CDECL OS2islower(int i)
250{
251 dprintf(("NTDLL: islower(%08xh)\n",
252 i));
253
254 return (islower(i));
255}
256
257
258/*****************************************************************************
259 * Name :
260 * Purpose :
261 * Parameters:
262 * Variables :
263 * Result :
264 * Remark : NTDLL.894
265 * Status :
266 *
267 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
268 *****************************************************************************/
269
270int CDECL OS2isprint(int i)
271{
272 dprintf(("NTDLL: isprint(%08xh)\n",
273 i));
274
275 return (isprint(i));
276}
277
278
279/*****************************************************************************
280 * Name :
281 * Purpose :
282 * Parameters:
283 * Variables :
284 * Result :
285 * Remark : NTDLL.895
286 * Status :
287 *
288 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
289 *****************************************************************************/
290
291int CDECL OS2isspace(int i)
292{
293 dprintf(("NTDLL: isspace(%08xh)\n",
294 i));
295
296 return (isspace(i));
297}
298
299
300/*****************************************************************************
301 * Name :
302 * Purpose :
303 * Parameters:
304 * Variables :
305 * Result :
306 * Remark : NTDLL.896
307 * Status :
308 *
309 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
310 *****************************************************************************/
311
312int CDECL OS2isupper(int i)
313{
314 dprintf(("NTDLL: isupper(%08xh)\n",
315 i));
316
317 return (isupper(i));
318}
319
320
321/*****************************************************************************
322 * Name :
323 * Purpose :
324 * Parameters:
325 * Variables :
326 * Result :
327 * Remark : NTDLL.914
328 * Status :
329 *
330 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
331 *****************************************************************************/
332
333LPSTR CDECL OS2strcat( LPSTR str1,
334 const LPSTR str2)
335{
336 dprintf(("NTDLL: strcat(%s,%s)\n",
337 str1,
338 str2));
339
340 return (strcat(str1, str2));
341}
342
343
344/*****************************************************************************
345 * Name :
346 * Purpose :
347 * Parameters:
348 * Variables :
349 * Result :
350 * Remark : NTDLL.915
351 * Status :
352 *
353 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
354 *****************************************************************************/
355
356LPSTR CDECL OS2strchr(const LPSTR str,
357 int i)
358{
359 dprintf(("NTDLL: strchr(%s,%08xh)\n",
360 str,
361 i));
362
363 return (strchr(str, i));
364}
365
366
367/*****************************************************************************
368 * Name :
369 * Purpose :
370 * Parameters:
371 * Variables :
372 * Result :
373 * Remark : NTDLL.916
374 * Status :
375 *
376 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
377 *****************************************************************************/
378
379int CDECL OS2strcmp(const LPSTR str1,
380 const LPSTR str2)
381{
382 dprintf(("NTDLL: strcmp(%s,%s)\n",
383 str1,
384 str2));
385
386 return (strcmp(str1, str2));
387}
388
389
390/*****************************************************************************
391 * Name :
392 * Purpose :
393 * Parameters:
394 * Variables :
395 * Result :
396 * Remark : NTDLL.917
397 * Status :
398 *
399 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
400 *****************************************************************************/
401
402LPSTR CDECL OS2strcpy( LPSTR str1,
403 const LPSTR str2)
404{
405 dprintf(("NTDLL: strcpy(%s,%s)\n",
406 str1,
407 str2));
408
409 return (strcpy(str1, str2));
410}
411
412
413/*****************************************************************************
414 * Name :
415 * Purpose :
416 * Parameters:
417 * Variables :
418 * Result :
419 * Remark : NTDLL.918
420 * Status :
421 *
422 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
423 *****************************************************************************/
424
425size_t CDECL OS2strcspn(const LPSTR str1,
426 LPSTR str2)
427{
428 dprintf(("NTDLL: strcspn(%s,%s)\n",
429 str1,
430 str2));
431
432 return (strcspn(str1, str2));
433}
434
435
436/*****************************************************************************
437 * Name :
438 * Purpose :
439 * Parameters:
440 * Variables :
441 * Result :
442 * Remark : NTDLL.919
443 * Status :
444 *
445 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
446 *****************************************************************************/
447
448size_t CDECL OS2strlen(const LPSTR str)
449{
450 dprintf(("NTDLL: strlen(%s)\n",
451 str));
452
453 return (strlen(str));
454}
455
456
457/*****************************************************************************
458 * Name :
459 * Purpose :
460 * Parameters:
461 * Variables :
462 * Result :
463 * Remark : NTDLL.920
464 * Status :
465 *
466 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
467 *****************************************************************************/
468
469LPSTR CDECL OS2strncat( LPSTR str1,
470 const LPSTR str2,
471 size_t i)
472{
473 dprintf(("NTDLL: strncat(%s,%s,%08xh)\n",
474 str1,
475 str2,
476 i));
477
478 return (strncat(str1, str2, i));
479}
480
481
482/*****************************************************************************
483 * Name :
484 * Purpose :
485 * Parameters:
486 * Variables :
487 * Result :
488 * Remark : NTDLL.921
489 * Status :
490 *
491 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
492 *****************************************************************************/
493
494int CDECL OS2strncmp(const LPSTR str1,
495 const LPSTR str2,
496 size_t i)
497{
498 dprintf(("NTDLL: strncmp(%s,%s,%08xh)\n",
499 str1,
500 str2,
501 i));
502
503 return (strncmp(str1, str2, i));
504}
505
506
507/*****************************************************************************
508 * Name :
509 * Purpose :
510 * Parameters:
511 * Variables :
512 * Result :
513 * Remark : NTDLL.922
514 * Status :
515 *
516 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
517 *****************************************************************************/
518
519LPSTR CDECL OS2strncpy(const LPSTR str1,
520 const LPSTR str2,
521 size_t i)
522{
523 dprintf(("NTDLL: strncpy(%s,%s,%08xh)\n",
524 str1,
525 str2,
526 i));
527
528 return (strncpy(str1, str2, i));
529}
530
531
532/*****************************************************************************
533 * Name :
534 * Purpose :
535 * Parameters:
536 * Variables :
537 * Result :
538 * Remark : NTDLL.923
539 * Status :
540 *
541 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
542 *****************************************************************************/
543
544LPSTR CDECL OS2strpbrk(const LPSTR str1,
545 const LPSTR str2)
546{
547 dprintf(("NTDLL: strpbrk(%s,%s)\n",
548 str1,
549 str2));
550
551 return (strpbrk(str1, str2));
552}
553
554
555/*****************************************************************************
556 * Name :
557 * Purpose :
558 * Parameters:
559 * Variables :
560 * Result :
561 * Remark : NTDLL.924
562 * Status :
563 *
564 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
565 *****************************************************************************/
566
567LPSTR CDECL OS2strrchr(const LPSTR str,
568 size_t i)
569{
570 dprintf(("NTDLL: strrchr(%s,%08xh)\n",
571 str,
572 i));
573
574 return (strrchr(str, i));
575}
576
577
578/*****************************************************************************
579 * Name :
580 * Purpose :
581 * Parameters:
582 * Variables :
583 * Result :
584 * Remark : NTDLL.925
585 * Status :
586 *
587 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
588 *****************************************************************************/
589
590size_t CDECL OS2strspn(const LPSTR str1,
591 const LPSTR str2)
592{
593 dprintf(("NTDLL: strspn(%s,%s)\n",
594 str1,
595 str2));
596
597 return (strspn(str1, str2));
598}
599
600
601/*****************************************************************************
602 * Name :
603 * Purpose :
604 * Parameters:
605 * Variables :
606 * Result :
607 * Remark : NTDLL.926
608 * Status :
609 *
610 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
611 *****************************************************************************/
612
613LPSTR CDECL OS2strstr(const LPSTR str1,
614 const LPSTR str2)
615{
616 dprintf(("NTDLL: strstr(%s,%s)\n",
617 str1,
618 str2));
619
620 return (strstr(str1, str2));
621}
622
623
624
625
626
627
628
629
630
631/*****************************************************************************
632 * Name :
633 * Purpose :
634 * Parameters:
635 * Variables :
636 * Result :
637 * Remark : NTDLL.934
638 * Status :
639 *
640 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
641 *****************************************************************************/
642
643wchar_t* CDECL OS2wcscat( wchar_t* str1,
644 const wchar_t* str2)
645{
646 dprintf(("NTDLL: wcscat(%08xh,%08xh)\n",
647 str1,
648 str2));
649
650 return (wcscat(str1, str2));
651}
652
653
654/*****************************************************************************
655 * Name :
656 * Purpose :
657 * Parameters:
658 * Variables :
659 * Result :
660 * Remark : NTDLL.935
661 * Status :
662 *
663 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
664 *****************************************************************************/
665
666wchar_t* CDECL OS2wcschr(const wchar_t* str,
667 int i)
668{
669 dprintf(("NTDLL: wcschr(%08xh,%08xh)\n",
670 str,
671 i));
672
673 return (wcschr(str, i));
674}
675
676
677/*****************************************************************************
678 * Name :
679 * Purpose :
680 * Parameters:
681 * Variables :
682 * Result :
683 * Remark : NTDLL.936
684 * Status :
685 *
686 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
687 *****************************************************************************/
688
689int CDECL OS2wcscmp(const wchar_t* str1,
690 const wchar_t* str2)
691{
692 dprintf(("NTDLL: wcscmp(%08xh,%08xh)\n",
693 str1,
694 str2));
695
696 return (wcscmp(str1, str2));
697}
698
699
700/*****************************************************************************
701 * Name :
702 * Purpose :
703 * Parameters:
704 * Variables :
705 * Result :
706 * Remark : NTDLL.937
707 * Status :
708 *
709 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
710 *****************************************************************************/
711
712wchar_t* CDECL OS2wcscpy( wchar_t* str1,
713 const wchar_t* str2)
714{
715 dprintf(("NTDLL: wcscpy(%08xh,%08xh)\n",
716 str1,
717 str2));
718
719 return (wcscpy(str1, str2));
720}
721
722
723/*****************************************************************************
724 * Name :
725 * Purpose :
726 * Parameters:
727 * Variables :
728 * Result :
729 * Remark : NTDLL.938
730 * Status :
731 *
732 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
733 *****************************************************************************/
734
735size_t CDECL OS2wcscspn(const wchar_t* str1,
736 wchar_t* str2)
737{
738 dprintf(("NTDLL: wcscspn(%08xh,%08xh)\n",
739 str1,
740 str2));
741
742 return (wcscspn(str1, str2));
743}
744
745
746/*****************************************************************************
747 * Name :
748 * Purpose :
749 * Parameters:
750 * Variables :
751 * Result :
752 * Remark : NTDLL.939
753 * Status :
754 *
755 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
756 *****************************************************************************/
757
758size_t CDECL OS2wcslen(const wchar_t* str)
759{
760 dprintf(("NTDLL: wcslen(%08xh)\n",
761 str));
762
763 return (wcslen(str));
764}
765
766
767/*****************************************************************************
768 * Name :
769 * Purpose :
770 * Parameters:
771 * Variables :
772 * Result :
773 * Remark : NTDLL.940
774 * Status :
775 *
776 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
777 *****************************************************************************/
778
779wchar_t* CDECL OS2wcsncat( wchar_t* str1,
780 const wchar_t* str2,
781 size_t i)
782{
783 dprintf(("NTDLL: wcsncat(%08xh,%08xh,%08xh)\n",
784 str1,
785 str2,
786 i));
787
788 return (wcsncat(str1, str2, i));
789}
790
791
792/*****************************************************************************
793 * Name :
794 * Purpose :
795 * Parameters:
796 * Variables :
797 * Result :
798 * Remark : NTDLL.941
799 * Status :
800 *
801 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
802 *****************************************************************************/
803
804int CDECL OS2wcsncmp(const wchar_t* str1,
805 const wchar_t* str2,
806 size_t i)
807{
808 dprintf(("NTDLL: wcsncmp(%08xh,%08xh,%08xh)\n",
809 str1,
810 str2,
811 i));
812
813 return (wcsncmp(str1, str2, i));
814}
815
816
817/*****************************************************************************
818 * Name :
819 * Purpose :
820 * Parameters:
821 * Variables :
822 * Result :
823 * Remark : NTDLL.942
824 * Status :
825 *
826 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
827 *****************************************************************************/
828
829wchar_t* CDECL OS2wcsncpy( wchar_t* str1,
830 const wchar_t* str2,
831 size_t i)
832{
833 dprintf(("NTDLL: wcsncpy(%s,%s,%08xh)\n",
834 str1,
835 str2,
836 i));
837
838 return (wcsncpy(str1, str2, i));
839}
840
841
842/*****************************************************************************
843 * Name :
844 * Purpose :
845 * Parameters:
846 * Variables :
847 * Result :
848 * Remark : NTDLL.943
849 * Status :
850 *
851 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
852 *****************************************************************************/
853
854wchar_t* CDECL OS2wcspbrk(const wchar_t* str1,
855 const wchar_t* str2)
856{
857 dprintf(("NTDLL: wcspbrk(%08xh,%08xh)\n",
858 str1,
859 str2));
860
861 return (wcspbrk(str1, str2));
862}
863
864
865/*****************************************************************************
866 * Name :
867 * Purpose :
868 * Parameters:
869 * Variables :
870 * Result :
871 * Remark : NTDLL.944
872 * Status :
873 *
874 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
875 *****************************************************************************/
876
877wchar_t* CDECL OS2wcsrchr(const wchar_t* str,
878 size_t i)
879{
880 dprintf(("NTDLL: wcsrchr(%08xh,%08xh)\n",
881 str,
882 i));
883
884 return (wcsrchr(str, i));
885}
886
887
888/*****************************************************************************
889 * Name :
890 * Purpose :
891 * Parameters:
892 * Variables :
893 * Result :
894 * Remark : NTDLL.945
895 * Status :
896 *
897 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
898 *****************************************************************************/
899
900size_t CDECL OS2wcsspn(const wchar_t* str1,
901 const wchar_t* str2)
902{
903 dprintf(("NTDLL: wcsspn(%08xh,%08xh)\n",
904 str1,
905 str2));
906
907 return (wcsspn(str1, str2));
908}
909
910
911/*****************************************************************************
912 * Name :
913 * Purpose :
914 * Parameters:
915 * Variables :
916 * Result :
917 * Remark : NTDLL.946
918 * Status :
919 *
920 * Author : Patrick Haller [Thu, 1999/06/22 20:44]
921 *****************************************************************************/
922
923wchar_t* CDECL OS2wcsstr(const wchar_t* str1,
924 const wchar_t* str2)
925{
926 dprintf(("NTDLL: wcsstr(%s,%s)\n",
927 str1,
928 str2));
929
930 return (wcsstr(str1, str2));
931}
932
Note: See TracBrowser for help on using the repository browser.