Subversion Repositories userdetect2

Rev

Rev 85 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. unit UD2_Parsing;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, SysUtils;
  7.  
  8. // TODO: use this for better object oriented programming
  9.  
  10. type
  11.   TUD2Command = record
  12.     executable: string;
  13.     runAsAdmin: boolean;
  14.     runInOwnDirectory: boolean;
  15.     windowMode: integer;
  16.   end;
  17.   TUD2CommandArray = array of TUD2Command;
  18.  
  19.   TUD2TDFCondition = record
  20.     idMethodName: string;
  21.     idStr: string;
  22.     dynamicDataUsed: Boolean;
  23.     dynamicData: string;
  24.     caseSensitive: boolean;
  25.   end;
  26.   TUD2TDFConditionArray = array of TUD2TDFCondition;
  27.  
  28.   TUD2TDFEntry = record
  29.     ids: TUD2TDFConditionArray;
  30.     commands: TUD2CommandArray;
  31.   end;
  32.   TUD2TDFEntryArray = array of TUD2TDFEntry;
  33.  
  34. implementation
  35.  
  36. uses
  37.   UD2_Utils;
  38.  
  39. function ParseTdfLine(line: string; var entry: TUD2TDFEntry): boolean;
  40. begin
  41.   // TODO: xxxxx
  42.  
  43.   (*
  44.   entry.idName: string;
  45.   entry.idValue: string;
  46.   entry.dynamicDataUsed: Boolean;
  47.   entry.dynamicData: string;
  48.   entry.caseSensitive: boolean;
  49.   entry.commands: TUD2CommandArray;
  50.   *)
  51.  
  52.   // ReadSectionValues
  53.  
  54.  
  55.   (*
  56.     nameVal := SplitString('=', idTermAndCmd);
  57.     if Length(nameVal) < 2 then exit;
  58.     idTerm := nameVal[0];
  59.     cmd    := nameVal[1];
  60.   *)
  61. end;
  62.  
  63. function ParseCommandLine(line: string; var cmd: TUD2Command): boolean;
  64. begin
  65.   if Pos(UD2_RUN_AS_ADMIN, line) >= 1 then
  66.   begin
  67.     line := StringReplace(line, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]);
  68.     cmd.runAsAdmin := true;
  69.   end
  70.   else cmd.runAsAdmin := false;
  71.  
  72.   if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, line) >= 1 then
  73.   begin
  74.     line := StringReplace(line, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]);
  75.     cmd.runInOwnDirectory := true;
  76.   end
  77.   else cmd.runInOwnDirectory := false;
  78.  
  79.   cmd.executable := line;
  80.  
  81.   cmd.windowMode := SW_NORMAL; // TODO (future): make it configurable
  82.  
  83.   result := true;
  84. end;
  85.  
  86. end.
  87.