Changeset 12961 for trunk/FACT++/src/Readline.cc
- Timestamp:
- 02/29/12 10:04:55 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/src/Readline.cc
r12824 r12961 96 96 // 97 97 Readline::Readline(const char *prgname) : 98 fMaxLines(500), fLine(0), f Completion(0)98 fMaxLines(500), fLine(0), fLabel(-1), fCompletion(0) 99 99 { 100 100 if (This) … … 952 952 fprintf(rl_outstream, " .w n Sleep n milliseconds\n"); 953 953 fprintf(rl_outstream, " .x filename Execute a script of commands\n"); 954 fprintf(rl_outstream, " .x file:N Execute a script of commands, start at label N\n"); 955 fprintf(rl_outstream, " .j N Forward jump to label N\n"); 956 fprintf(rl_outstream, " : N Defines a label\n"); 954 957 fprintf(rl_outstream, " .q,quit Quit\n"); 955 958 fprintf(rl_outstream, "\n"); … … 994 997 //! 995 998 // 999 bool Readline::PreProcess(const string &str) 1000 { 1001 // ----------- Labels ------------- 1002 1003 if (str[0]==':') 1004 { 1005 if (fLabel!=atoi(str.substr(1).c_str())) 1006 return true; 1007 1008 fLabel=-1; 1009 return false; 1010 } 1011 1012 if (fLabel>=0) 1013 { 1014 fCommandLog << "# SKIP[" << fLabel << "]: " << str << endl; 1015 return true; 1016 } 1017 1018 if (str.substr(0, 3)==".j ") 1019 { 1020 fLabel = atoi(str.substr(3).c_str()); 1021 return false; 1022 } 1023 1024 return Process(str); 1025 1026 } 1027 1028 // -------------------------------------------------------------------------- 1029 // 1030 //! 1031 // 996 1032 bool Readline::Process(const string &str) 997 1033 { 1034 // ----------- Common commands ------------- 1035 998 1036 if (str.substr(0, 3)==".w ") 999 1037 { … … 1116 1154 void Readline::ProcessLine(const string &str) 1117 1155 { 1118 const bool rc = Pr ocess(str);1156 const bool rc = PreProcess(str); 1119 1157 1120 1158 AddToHistory(str); … … 1186 1224 return 0; 1187 1225 1188 int rc = 0; 1189 1190 const string name = Tools::Trim(fname); 1226 fLabel = -1; 1227 1228 string name = Tools::Trim(fname); 1229 1230 const size_t p = name.find_last_of(':'); 1231 if (p!=string::npos) 1232 { 1233 fLabel = atoi(name.substr(p+1).c_str()); 1234 name = name.substr(0, p); 1235 } 1191 1236 1192 1237 ifstream fin(name.c_str()); … … 1194 1239 return -1; 1195 1240 1196 fCommandLog << "# " << Time() << " - " << name << " (START)" << endl; 1241 fCommandLog << "# " << Time() << " - " << name << " (START"; 1242 if (fLabel>=0) 1243 fCommandLog << ':' << fLabel; 1244 fCommandLog << ")" << endl; 1245 1246 int rc = 0; 1197 1247 1198 1248 string buffer; … … 1214 1264 } 1215 1265 1266 fLabel = -1; 1267 1216 1268 fCommandLog << "# " << Time() << " - " << name << " (FINISHED)" << endl; 1217 1269
Note:
See TracChangeset
for help on using the changeset viewer.