Changeset 1531
- Timestamp:
- Sep 28, 2004, 5:24:16 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/emx/src/lib/io/_output.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1530 r1531 17 17 #define FALSE 0 18 18 #define TRUE 1 19 20 #define SIZE_HH (('h' << 8) | 'h') 21 #define SIZE_LL (('l' << 8) | 'l') 19 22 20 23 #define DEFAULT_PREC 6 … … 695 698 { 696 699 olocal v; 697 char size, cont; 700 int size; 701 char cont; 698 702 unsigned char c; 699 703 int mbn, shift; … … 818 822 /* Size */ 819 823 820 if (*format == 'h' || *format == 'l' || *format == 'L') 824 if ( *format == 'h' || *format == 'l' || *format == 'L' 825 || *format == 'j' || *format == 'z' || *format == 't' 826 || *format == 'q' || *format == 'Z' ) 821 827 { 822 828 size = *format++; 823 829 if (size == 'l' && *format == 'l') 824 830 { 825 size = 'L'; ++format; 826 } 831 size = SIZE_LL; ++format; 832 } 833 else if (size == 'h' && *format == 'h') 834 { 835 size = SIZE_HH; ++format; 836 } 837 else if (size == 'q' || size == 'j') 838 size = SIZE_LL; 839 else if (size == 'z' || size == 'Z' || size == 't') 840 size = 'l'; 827 841 } 828 842 … … 835 849 836 850 case 'n': 837 if (size == 'L')851 if (size == SIZE_LL || size == 'L') 838 852 { 839 853 long long *ptr = va_arg (arg_ptr, long long *); … … 843 857 { 844 858 short *ptr = va_arg (arg_ptr, short *); 859 *ptr = v.count; 860 } 861 else if (size == SIZE_HH) 862 { 863 char *ptr = va_arg (arg_ptr, char *); 845 864 *ptr = v.count; 846 865 } … … 868 887 case 'd': 869 888 case 'i': 870 if (size == 'L')889 if (size == SIZE_LL || size == 'L') 871 890 { 872 891 long long n = va_arg (arg_ptr, long long); … … 881 900 if (size == 'h') 882 901 n = (short)n; 902 else if (size == SIZE_HH) 903 n = (char)n; 883 904 if (n < 0) 884 905 CHECK (cvt_dec_32 (&v, -n, TRUE, TRUE)); … … 889 910 890 911 case 'u': 891 if (size == 'L')912 if (size == SIZE_LL || size == 'L') 892 913 CHECK (cvt_dec_64 (&v, va_arg (arg_ptr, unsigned long long), 893 914 FALSE, FALSE)); … … 897 918 if (size == 'h') 898 919 n = (unsigned short)n; 920 else if (size == SIZE_HH) 921 n = (unsigned char)n; 899 922 CHECK (cvt_dec_32 (&v, n, FALSE, FALSE)); 900 923 } … … 908 931 case 'x': 909 932 case 'X': 910 if (size == 'L')933 if (size == SIZE_LL || size == 'L') 911 934 CHECK (cvt_hex_64 (&v, va_arg (arg_ptr, unsigned long long), 912 935 *format)); … … 916 939 if (size == 'h') 917 940 n = (unsigned short)n; 941 else if (size == SIZE_HH) 942 n = (unsigned char)n; 918 943 CHECK (cvt_hex_32 (&v, n, *format)); 919 944 } … … 921 946 922 947 case 'o': 923 if (size == 'L')948 if (size == SIZE_LL || size == 'L') 924 949 CHECK (cvt_oct_64 (&v, va_arg (arg_ptr, unsigned long long))); 925 950 else … … 928 953 if (size == 'h') 929 954 n = (unsigned short)n; 955 else if (size == SIZE_HH) 956 n = (unsigned char)n; 930 957 CHECK (cvt_oct_32 (&v, n)); 931 958 } -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.