Changeset 78 for trunk/NewView/CmdLineParameterUnit.pas
- Timestamp:
- Feb 15, 2007, 8:25:32 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NewView/CmdLineParameterUnit.pas
r76 r78 20 20 DebugUnit; 21 21 22 23 22 CONST 23 ENV_DEBUG = 'NEWVIEW_DEBUG'; 24 24 25 25 … … 47 47 ownerWindow : integer; 48 48 windowTitle : string; 49 parsedFileNames : string; 50 parsedRawFileNames : string; 49 51 fileNames : string; 50 fileNamesRaw: string;52 parsedSearchText : string; 51 53 searchText : string; 54 debugEnabled : boolean; 52 55 53 56 FUNCTION handleSwitchWithValue(const aSwitchString : String; const aSwitch : String; var aValue : String) : Boolean; 54 57 PROCEDURE parseSwitch(aSwitchString : String); 55 PROPERTY get FileNames : string read fileNames;56 PROPERTY get SearchText : string read searchText;58 PROPERTY getParsedFileNames : string read parsedFileNames; 59 PROPERTY getParsedSearchText : string read parsedSearchText; 57 60 58 61 public 59 PROPERTY getCommandLine : String read commandLine;62 PROPERTY isDebugEnabled : boolean read debugEnabled; 60 63 PROPERTY getShowUsageFlag : boolean read showUsageFlag; 61 64 PROPERTY getSearchFlag : boolean read searchFlag; … … 69 72 PROPERTY getOwnerWindow : integer read ownerWindow; 70 73 PROPERTY getWindowTitle : string read windowTitle; 71 PROPERTY getFileNamesRaw : string read fileNamesRaw; 74 PROPERTY getFileNames : string read fileNames; 75 PROPERTY getSearchText : string read searchText; 72 76 73 77 PROCEDURE writeDetailsTo(aStrings : TStrings); 74 78 PROCEDURE parseCmdLine(aCmdLineString : String); 75 76 FUNCTION getInterpretedFileNames: String;77 FUNCTION getInterpretedSearchText: String;78 79 end; 79 80 … … 94 95 tmpWindowPosition : TWindowPosition; 95 96 begin 96 aStrings.Add('''' + getCommandLine + ''''); 97 aStrings.Add('''' + commandLine + ''''); 98 aStrings.Add('isDebugEnabled: ' + boolToStr(isDebugEnabled)); 97 99 aStrings.Add('parsed infos:'); 98 100 99 aStrings.Add(' getShowUsageFlag: ' + boolToStr(getShowUsageFlag));100 aStrings.Add(' getSearchFlag: ' + boolToStr(getSearchFlag));101 aStrings.Add(' getSearchText: ' + getSearchText);102 aStrings.Add(' getGlobalSearchFlag: ' + boolToStr(getGlobalSearchFlag));103 aStrings.Add(' getLanguage: ' + getLanguage);104 aStrings.Add(' getHelpManagerFlag: ' + boolToStr(getHelpManagerFlag));105 aStrings.Add(' getHelpManagerWindow: ' + LongWordToStr(getHelpManagerWindow));106 aStrings.Add(' getWindowPositionFlag: ' + boolToStr(getWindowPositionFlag));107 aStrings.Add(' getFileNames: ' + getFileNames);108 aStrings.Add(' getInterpretedSearchText: ' + getInterpretedSearchText);109 aStrings.Add(' getInterpretedFileNames: ' + getInterpretedFileNames);101 aStrings.Add(' showUsageFlag: ' + boolToStr(getShowUsageFlag)); 102 aStrings.Add(' searchFlag: ' + boolToStr(getSearchFlag)); 103 aStrings.Add(' fileNames: ' + getFileNames); 104 aStrings.Add(' parsedFileNames: ' + getParsedFileNames); 105 aStrings.Add(' searchText: ' + getSearchText); 106 aStrings.Add(' parsedSearchText: ' + getParsedSearchText); 107 aStrings.Add(' globalSearchFlag: ' + boolToStr(getGlobalSearchFlag)); 108 aStrings.Add(' language: ' + getLanguage); 109 aStrings.Add(' helpManagerFlag: ' + boolToStr(getHelpManagerFlag)); 110 aStrings.Add(' helpManagerWindow: ' + LongWordToStr(getHelpManagerWindow)); 111 aStrings.Add(' windowPositionFlag: ' + boolToStr(getWindowPositionFlag)); 110 112 111 113 tmpWindowPosition := getWindowPosition; 112 aStrings.Add(' getWindowPosition: '114 aStrings.Add(' windowPosition: ' 113 115 + intToStr(tmpWindowPosition.left) + ', ' 114 116 + intToStr(tmpWindowPosition.bottom) + ', ' … … 116 118 + intToStr(tmpWindowPosition.height) 117 119 ); 118 aStrings.Add('getOwnerWindow: ' + intToStr(getOwnerWindow)); 119 aStrings.Add('getWindowTitle: ' + getWindowTitle); 120 end; 121 122 123 Function TCmdLineParameters.getInterpretedFileNames: String; 124 var 125 tmpOwnHelpFileName : String; 126 begin 127 result := getFileNames; 128 129 if getGlobalSearchFlag 130 AND (getSearchText = '') 131 then 132 begin 133 result := ''; 134 exit; 135 end; 136 137 138 tmpOwnHelpFileName := FindDefaultLanguageHelpFile('NewView'); 139 if (result = '') AND 140 FileExists(tmpOwnHelpFileName) 141 then 142 result := tmpOwnHelpFileName; 143 end; 144 145 146 Function TCmdLineParameters.getInterpretedSearchText: String; 147 begin 148 result := getSearchText; 149 150 if getGlobalSearchFlag 151 AND (result = '') 152 then 153 result := getFileNamesRaw; 154 155 if not getGlobalSearchFlag 156 AND (not getSearchFlag) 157 then 158 begin 159 result := StrTrim(result); 160 result := StrTrimChars(result, ['"']); 161 end; 120 aStrings.Add(' ownerWindow: ' + intToStr(getOwnerWindow)); 121 aStrings.Add(' windowTitle: ' + getWindowTitle); 162 122 end; 163 123 … … 179 139 tmpQuote : String; 180 140 tmpSwitch : String; 141 tmpOwnHelpFileName : String; 181 142 begin 182 143 // first adjust logging 144 debugEnabled := false; 183 145 if GetEnv(ENV_DEBUG) = '' then 184 146 begin 185 // TODO set boolean147 debugEnabled := true; 186 148 end 187 149 else … … 205 167 ownerWindow := 0; 206 168 windowTitle := ''; 207 searchText := '';208 fileNames := '';209 fileNamesRaw:= '';169 parsedSearchText := ''; 170 parsedFileNames := ''; 171 parsedRawFileNames := ''; 210 172 211 173 try … … 254 216 if tmpQuoted then 255 217 begin 256 fileNames := fileNames + tmpCurrentChar;257 fileNamesRaw := fileNamesRaw+ tmpCurrentChar;218 parsedFileNames := parsedFileNames + tmpCurrentChar; 219 parsedRawFileNames := parsedRawFileNames + tmpCurrentChar; 258 220 end 259 221 else … … 268 230 if tmpQuoted then 269 231 begin 270 searchText := searchText + tmpCurrentChar;232 parsedSearchText := parsedSearchText + tmpCurrentChar; 271 233 end 272 234 else … … 302 264 FILENAME : 303 265 begin 304 fileNames := fileNames + tmpCurrentChar;305 fileNamesRaw := fileNamesRaw+ tmpCurrentChar;266 parsedFileNames := parsedFileNames + tmpCurrentChar; 267 parsedRawFileNames := parsedRawFileNames + tmpCurrentChar; 306 268 end; 307 269 308 270 TEXT : 309 271 begin 310 searchText := searchText + tmpCurrentChar;272 parsedSearchText := parsedSearchText + tmpCurrentChar; 311 273 end; 312 274 end; … … 321 283 FILENAME : 322 284 begin 323 fileNamesRaw := fileNamesRaw + tmpCurrentChar; 285 parsedRawFileNames := parsedRawFileNames + tmpCurrentChar; 286 end; 287 TEXT : 288 begin 289 parsedSearchText := parsedSearchText + tmpCurrentChar; 324 290 end; 325 291 end; … … 327 293 else 328 294 begin 295 tmpQuoted := true; 329 296 Case tmpState of 330 297 WHITESPACE : … … 335 302 FILENAME : 336 303 begin 337 fileNamesRaw := fileNamesRaw+ tmpCurrentChar;304 parsedRawFileNames := parsedRawFileNames + tmpCurrentChar; 338 305 end; 339 306 end; 340 tmpQuoted := true;341 307 end; 342 308 end; … … 349 315 WHITESPACE : 350 316 begin 351 if length( fileNames) > 0 then317 if length(parsedFileNames) > 0 then 352 318 begin 353 319 tmpState := TEXT; 354 searchText := searchText + tmpWhitespace + tmpCurrentChar;320 parsedSearchText := parsedSearchText + tmpWhitespace + tmpCurrentChar; 355 321 end 356 322 else 357 323 begin 358 324 tmpState := FILENAME; 359 fileNames := fileNames + tmpCurrentChar;360 fileNamesRaw := fileNamesRaw+ tmpCurrentChar;325 parsedFileNames := parsedFileNames + tmpCurrentChar; 326 parsedRawFileNames := parsedRawFileNames + tmpCurrentChar; 361 327 end; 362 328 end; … … 364 330 QUOTE : 365 331 begin 366 if length( fileNames) > 0 then332 if length(parsedFileNames) > 0 then 367 333 begin 368 334 tmpState := TEXT; 369 searchText := searchText + tmpWhitespace + tmpCurrentChar;335 parsedSearchText := parsedSearchText + tmpQuote + tmpCurrentChar; 370 336 end 371 337 else 372 338 begin 373 339 tmpState := FILENAME; 374 fileNames := fileNames + tmpCurrentChar;375 fileNamesRaw := fileNamesRaw+ tmpQuote + tmpCurrentChar;340 parsedFileNames := parsedFileNames + tmpCurrentChar; 341 parsedRawFileNames := parsedRawFileNames + tmpQuote + tmpCurrentChar; 376 342 end; 377 343 end; … … 384 350 FILENAME : 385 351 begin 386 fileNames := fileNames + tmpCurrentChar;387 fileNamesRaw := fileNamesRaw+ tmpCurrentChar;352 parsedFileNames := parsedFileNames + tmpCurrentChar; 353 parsedRawFileNames := parsedRawFileNames + tmpCurrentChar; 388 354 end; 389 355 390 356 TEXT : 391 357 begin 392 searchText := searchText + tmpCurrentChar;358 parsedSearchText := parsedSearchText + tmpCurrentChar; 393 359 end; 394 360 end; … … 405 371 end; 406 372 end; 407 // TODO remove interpreted408 373 except 409 374 on e:EParsingFailed do … … 413 378 end; 414 379 415 // remove leading blanks from search text 416 searchText := StrTrim(searchText); 380 // remove blanks 381 fileNames := StrTrim(getParsedFileNames); 382 searchText := StrTrim(getParsedSearchText); 383 384 if getGlobalSearchFlag 385 AND (getParsedSearchText = '') 386 then 387 begin 388 fileNames := ''; 389 searchText := parsedRawFileNames; 390 end 391 else 392 begin 393 if fileNames = '' then 394 begin 395 tmpOwnHelpFileName := FindDefaultLanguageHelpFile('NewView'); 396 if FileExists(tmpOwnHelpFileName) 397 then 398 fileNames := tmpOwnHelpFileName; 399 end; 400 end; 401 402 // to be compatible with the old one we have to ignore 403 // the quotes 404 if not getGlobalSearchFlag 405 AND (not getSearchFlag) 406 then 407 begin 408 searchText := StrTrimChars(searchText, ['"']); 409 end; 417 410 418 411 LogEvent(LogStartup, 'Parameters parsed');
Note:
See TracChangeset
for help on using the changeset viewer.