Changeset 1884 for trunk/src/msvcrt/msvcrt.cpp
- Timestamp:
- Nov 30, 1999, 3:18:07 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/msvcrt/msvcrt.cpp
r1862 r1884 1 /* $Id: msvcrt.cpp,v 1. 6 1999-11-27 19:52:20sandervl Exp $ */1 /* $Id: msvcrt.cpp,v 1.7 1999-11-30 14:17:08 sandervl Exp $ */ 2 2 3 3 /* … … 14 14 #include <wchar.h> 15 15 #include <except.h> 16 #include <heapstring.h> 17 #include <crtdll.h> 18 #include "msvcrt.h" 16 19 17 20 ODINDEBUGCHANNEL(msvcrt) 18 21 19 int __app_type;20 int __usermatherr;21 22 typedef struct23 {24 HANDLE handle;25 int pad[7];26 } CRTDLL_FILE, *PCRTDLL_FILE;27 28 extern LPSTR _acmdln_dll;29 extern UINT _commode_dll;30 extern UINT _fmode_dll;31 extern INT __mb_cur_max_dll;32 extern USHORT _pctype_dll;33 extern CRTDLL_FILE _iob;34 wchar_t ** __wargv;35 wchar_t * _wpgmptr;36 wchar_t ** _wenviron;37 38 39 22 /********************************************************************* 40 23 * ??3@YAXPAX@Z (MSVCRT.1) … … 207 190 /********************************************************************* 208 191 * ??2@YAPAXI@Z (MSVCRT.15) 209 * FIXME - Could not find anything about it 210 */ 211 INT CDECL MSVCRT_EXP15(DWORD ret) 212 { 213 dprintf(("MSVCRT: MSVCRT_EXP15 not implemented.\n")); 214 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 215 return FALSE; 192 */ 193 VOID* CDECL MSVCRT_new(DWORD size) 194 { 195 dprintf(("MSVCRT: ??2@YAPAXI@Z\n")); 196 VOID* result; 197 if(!(result = HeapAlloc(GetProcessHeap(),0,size)) && new_handler) 198 (*new_handler)(); 199 return result; 216 200 } 217 201 … … 219 203 /********************************************************************* 220 204 * ??3@YAXPAX@Z (MSVCRT.16) 221 * FIXME - Could not find anything about it 222 */ 223 INT CDECL MSVCRT_EXP16(DWORD ret) 224 { 225 dprintf(("MSVCRT: MSVCRT_EXP16 not implemented.\n")); 226 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 227 return FALSE; 205 */ 206 VOID CDECL MSVCRT_delete(VOID* ptr) 207 { 208 dprintf(("MSVCRT: ??3@YAXPAX@Z\n")); 209 HeapFree(GetProcessHeap(),0,ptr); 228 210 } 229 211 … … 470 452 471 453 /********************************************************************* 472 * ? ?3@YAXPAX@Z (MSVCRT.37)473 * FIXME - Could not find anything about it474 */ 475 INT CDECL MSVCRT_EXP37(DWORD ret) 476 { 477 dprintf(("MSVCRT: MSVCRT_EXP37 not implemented.\n"));478 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);479 return FALSE;454 * ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z (MSVCRT.37) 455 */ 456 new_handler_type CDECL MSVCRT_set_new_handler(new_handler_type func) 457 { 458 dprintf(("MSVCRT: ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z\n")); 459 new_handler_type old_handler = new_handler; 460 new_handler = func; 461 return old_handler; 480 462 } 481 463 … … 662 644 663 645 /********************************************************************* 646 * __GetMainArgs (MSVCRT.89) 647 */ 648 DWORD CDECL MSVCRT___GetMainArgs(LPDWORD argc,LPSTR **argv, 649 LPSTR *environ,DWORD flag) 650 { 651 char *cmdline; 652 char **xargv; 653 int xargc,i,afterlastspace; 654 DWORD version; 655 656 dprintf(("MSVCRT: GetMainArgs\n")); 657 658 MSVCRT__acmdln = cmdline = HEAP_strdupA( GetProcessHeap(), 0, 659 GetCommandLineA() ); 660 661 version = GetVersion(); 662 MSVCRT__osver = version >> 16; 663 MSVCRT__winminor = version & 0xFF; 664 MSVCRT__winmajor = (version>>8) & 0xFF; 665 MSVCRT__baseversion = version >> 16; 666 MSVCRT__winver = ((version >> 8) & 0xFF) + ((version & 0xFF) << 8); 667 MSVCRT__baseminor = (version >> 16) & 0xFF; 668 MSVCRT__basemajor = (version >> 24) & 0xFF; 669 MSVCRT__osversion = version & 0xFFFF; 670 MSVCRT__osminor = version & 0xFF; 671 MSVCRT__osmajor = (version>>8) & 0xFF; 672 673 /* missing threading init */ 674 675 i=0;xargv=NULL;xargc=0;afterlastspace=0; 676 while (cmdline[i]) { 677 if (cmdline[i]==' ') { 678 xargv=(char**)HeapReAlloc( GetProcessHeap(), 0, xargv, 679 sizeof(char*)*(++xargc)); 680 cmdline[i]='\0'; 681 xargv[xargc-1] = HEAP_strdupA( GetProcessHeap(), 0, 682 cmdline+afterlastspace); 683 i++; 684 while (cmdline[i]==' ') 685 i++; 686 if (cmdline[i]) 687 afterlastspace=i; 688 689 } else 690 i++; 691 692 } 693 694 xargv=(char**)HeapReAlloc( GetProcessHeap(), 0, xargv, 695 sizeof(char*)*(++xargc)); 696 cmdline[i]='\0'; 697 xargv[xargc-1] = HEAP_strdupA( GetProcessHeap(), 0, 698 cmdline+afterlastspace); 699 MSVCRT___argc = xargc; 700 *argc = xargc; 701 MSVCRT___argv = xargv; 702 *argv = xargv; 703 dprintf(("MSVCRT: GetMainArgs end\n")); 704 MSVCRT__environ = *environ = GetEnvironmentStringsA(); 705 return 0; 706 } 707 708 709 /********************************************************************* 710 * __initenv (MSVCRT.90) 711 * FIXME - Could not find anything about it 712 */ 713 INT CDECL MSVCRT___initenv(DWORD ret) 714 { 715 dprintf(("MSVCRT: __initenv not implemented.\n")); 716 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 717 return FALSE; 718 } 719 720 721 /********************************************************************* 722 * __p___argc (MSVCRT.99) 723 */ 724 int * CDECL MSVCRT___p___argc() 725 { 726 dprintf(("MSVCRT: __p___argc\n")); 727 return (int*)&MSVCRT___argc; 728 } 729 730 731 /********************************************************************* 732 * __p___argv (MSVCRT.100) 733 */ 734 char ** CDECL MSVCRT___p___argv() 735 { 736 dprintf(("MSVCRT: __p___argv\n")); 737 return (char**)&MSVCRT___argv; 738 } 739 740 741 /********************************************************************* 664 742 * __p__initenv (MSVCRT.101) 665 743 */ … … 667 745 { 668 746 dprintf(("MSVCRT: __p__initenv not implemented\n")); 669 return & _acmdln_dll;747 return &MSVCRT__acmdln; 670 748 } 671 749 … … 677 755 { 678 756 dprintf(("MSVCRT: __p___mb_cur_max\n")); 679 return & __mb_cur_max_dll;757 return &MSVCRT___mb_cur_max; 680 758 } 681 759 … … 687 765 { 688 766 dprintf(("MSVCRT: __p__acmdln\n")); 689 return &_acmdln_dll; 690 } 767 return &MSVCRT__acmdln; 768 } 769 691 770 692 771 /********************************************************************* … … 696 775 { 697 776 dprintf(("MSVCRT: __p__fmode\n")); 698 return (int*)&_fmode_dll; 777 return (int*)&MSVCRT__fmode; 778 } 779 780 781 /********************************************************************* 782 * __p__daylight (MSVCRT.108) 783 */ 784 int * CDECL MSVCRT___p__daylight() 785 { 786 dprintf(("MSVCRT: __p__daylight\n")); 787 return (int*)&MSVCRT__daylight; 788 } 789 790 791 /********************************************************************* 792 * __p__environ (MSVCRT.110) 793 */ 794 char ** CDECL MSVCRT___p__environ() 795 { 796 dprintf(("MSVCRT: __p__environ\n")); 797 return &MSVCRT__environ; 798 } 799 800 801 /********************************************************************* 802 * __p__fileinfo (MSVCRT.111) 803 */ 804 char ** CDECL MSVCRT___p__fileinfo() 805 { 806 dprintf(("MSVCRT: __p__fileinfo\n")); 807 return &MSVCRT__fileinfo; 699 808 } 700 809 … … 706 815 { 707 816 dprintf(("MSVCRT: __p__commode\n")); 708 return (int*)& _commode_dll;817 return (int*)&MSVCRT__commode; 709 818 } 710 819 … … 721 830 722 831 /********************************************************************* 832 * __p__osver (MSVCRT.116) 833 */ 834 int * CDECL MSVCRT___p__osver() 835 { 836 dprintf(("MSVCRT: __p__osver\n")); 837 return (int*)&MSVCRT__osver; 838 } 839 840 841 /********************************************************************* 723 842 * __p__pctype (MSVCRT.117) 724 843 */ … … 726 845 { 727 846 dprintf(("MSVCRT: __p__pctype\n")); 728 return &_pctype_dll; 847 return (USHORT*)&MSVCRT__pctype; 848 } 849 850 851 /********************************************************************* 852 * __p__pgmptr (MSVCRT.118) 853 */ 854 char ** CDECL MSVCRT___p__pgmptr() 855 { 856 dprintf(("MSVCRT: __p__pgmptr\n")); 857 return (char**)&MSVCRT__pgmptr; 858 } 859 860 861 /********************************************************************* 862 * __p__pwctype (MSVCRT.119) 863 */ 864 USHORT * CDECL MSVCRT___p__pwctype() 865 { 866 dprintf(("MSVCRT: __p__pwctype\n")); 867 return (USHORT*)&MSVCRT__pwctype; 868 } 869 870 871 /********************************************************************* 872 * __p__timezone (MSVCRT.120) 873 */ 874 int * CDECL MSVCRT___p__timezone() 875 { 876 dprintf(("MSVCRT: __p__timezone\n")); 877 return (int*)&MSVCRT__timezone; 878 } 879 880 881 /********************************************************************* 882 * __p__tzname (MSVCRT.121) 883 */ 884 char ** CDECL MSVCRT___p__tzname() 885 { 886 dprintf(("MSVCRT: __p__tzname\n")); 887 return (char**)&MSVCRT__tzname; 888 } 889 890 891 /********************************************************************* 892 * __p__winmajor (MSVCRT.124) 893 */ 894 int * CDECL MSVCRT___p__winmajor() 895 { 896 dprintf(("MSVCRT: __p__winmajor\n")); 897 return (int*)&MSVCRT__winmajor; 898 } 899 900 901 /********************************************************************* 902 * __p__winminor (MSVCRT.125) 903 */ 904 int * CDECL MSVCRT___p__winminor() 905 { 906 dprintf(("MSVCRT: __p__winminor\n")); 907 return (int*)&MSVCRT__winminor; 908 } 909 910 911 /********************************************************************* 912 * __p__winver (MSVCRT.126) 913 */ 914 int * CDECL MSVCRT___p__winver() 915 { 916 dprintf(("MSVCRT: __p__winver\n")); 917 return (int*)&MSVCRT__winver; 729 918 } 730 919 … … 763 952 764 953 /********************************************************************* 954 * _aexit_rtn (MSVCRT.159) 955 */ 956 VOID CDECL MSVCRT__aexit_rtn(int exitcode) 957 { 958 dprintf(("MSVCRT: _aexit_rtn\n")); 959 ExitProcess(exitcode); 960 } 961 962 963 /********************************************************************* 765 964 * _atoi64 (MSVCRT.163) 766 965 */
Note:
See TracChangeset
for help on using the changeset viewer.