Mercurial > hg > octave-lojdl
comparison src/oct-stream.cc @ 2759:99dd10f4eaaf
[project @ 1997-02-27 08:59:55 by jwe]
author | jwe |
---|---|
date | Thu, 27 Feb 1997 09:02:09 +0000 |
parents | 2ff2b536cc9d |
children | 9aeba8e006a4 |
comparison
equal
deleted
inserted
replaced
2758:73a51c5250ec | 2759:99dd10f4eaaf |
---|---|
997 { | 997 { |
998 int dummy; | 998 int dummy; |
999 | 999 |
1000 is.scan (fmt, &dummy); | 1000 is.scan (fmt, &dummy); |
1001 } | 1001 } |
1002 break; | 1002 break; |
1003 | 1003 |
1004 case 'd': case 'i': case 'o': case 'u': case 'x': | 1004 case 'd': case 'i': case 'o': case 'u': case 'x': |
1005 { | 1005 { |
1006 int tmp; | 1006 int tmp; |
1007 | 1007 |
1008 do_scanf_conv (is, fmt, &tmp, mval, data, count, | 1008 do_scanf_conv (is, fmt, &tmp, mval, data, count, |
1009 nr, max_size, discard); | 1009 nr, max_size, discard); |
1010 } | 1010 } |
1011 break; | 1011 break; |
1012 | 1012 |
1013 case 'e': case 'f': case 'g': | 1013 case 'e': case 'f': case 'g': |
1014 { | 1014 { |
1015 double tmp; | 1015 double tmp; |
1016 | 1016 |
1017 do_scanf_conv (is, fmt, &tmp, mval, data, count, | 1017 do_scanf_conv (is, fmt, &tmp, mval, data, count, |
1018 nr, max_size, discard); | 1018 nr, max_size, discard); |
1019 } | 1019 } |
1020 break; | 1020 break; |
1021 | 1021 |
1022 case 'c': | 1022 case 'c': |
1023 is.unsetf (ios::skipws); | 1023 is.unsetf (ios::skipws); |
1024 // Fall through... | 1024 // Fall through... |
1025 | 1025 |
1068 | 1068 |
1069 delete [] tmp; | 1069 delete [] tmp; |
1070 | 1070 |
1071 is.setf (flags); | 1071 is.setf (flags); |
1072 } | 1072 } |
1073 break; | 1073 break; |
1074 | 1074 |
1075 case 'p': case '[': | 1075 case 'p': case '[': |
1076 error ("fscanf: unsupported format specifier"); | 1076 error ("fscanf: unsupported format specifier"); |
1077 break; | 1077 break; |
1078 | 1078 |
1085 { | 1085 { |
1086 break; | 1086 break; |
1087 } | 1087 } |
1088 else if (! is) | 1088 else if (! is) |
1089 { | 1089 { |
1090 if (is.eof ()) | 1090 if (nr > 0) |
1091 { | 1091 { |
1092 if (nr > 0) | 1092 if (count > nr) |
1093 { | 1093 { |
1094 if (count > nr) | 1094 final_nr = nr; |
1095 { | 1095 final_nc = (count - 1) / nr + 1; |
1096 final_nr = nr; | |
1097 final_nc = (count - 1) / nr + 1; | |
1098 } | |
1099 else | |
1100 { | |
1101 final_nr = count; | |
1102 final_nc = 1; | |
1103 } | |
1104 } | 1096 } |
1105 else | 1097 else |
1106 { | 1098 { |
1107 final_nr = count; | 1099 final_nr = count; |
1108 final_nc = 1; | 1100 final_nc = 1; |
1109 } | 1101 } |
1110 } | 1102 } |
1111 else | 1103 else |
1112 { | 1104 { |
1113 error ("fscanf: read error"); | 1105 final_nr = count; |
1114 | 1106 final_nc = 1; |
1115 // XXX FIXME XXX -- is this the right thing to do? | 1107 } |
1116 // What about other streams? | 1108 |
1117 if (name () == "stdin") | 1109 // XXX FIXME XXX -- is this the right thing to do? |
1118 { | 1110 // What about other streams? |
1119 is.clear (); | 1111 if (name () == "stdin") |
1120 | 1112 { |
1121 // Skip to end of line. | 1113 is.clear (); |
1122 | 1114 |
1123 bool err; | 1115 // Skip to end of line. |
1124 do_gets (-1, err, false, "fscanf"); | 1116 |
1125 } | 1117 bool err; |
1118 do_gets (-1, err, false, "fscanf"); | |
1126 } | 1119 } |
1127 | 1120 |
1128 break; | 1121 break; |
1129 } | 1122 } |
1130 } | 1123 } |