home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Editor / FREDV19A.LHA / FrexxEd / fpl / Grep.FPL < prev    next >
Encoding:
Text File  |  1995-07-19  |  1.7 KB  |  63 lines

  1.  
  2. {
  3.   if (!Stricmp(ReadInfo("file_name"), "Grep.Tmp")) {
  4.     int line;
  5.     int buffer_id;
  6.     line=atoi(GetLine());
  7.     if (line) {
  8.       int counter;
  9.       string file;
  10.       for (counter=ReadInfo("line")-1; counter>0; counter--) {
  11.         file=GetLine(counter);
  12.         if (file[0]!=' ' && (file[0]<'0' || file[0]>'9'))
  13.           break;
  14.       }
  15.       if (counter>0) {
  16.         for (counter=strlen(file)-1; counter>0; counter--) {
  17.           if (file[counter]==':')
  18.             break;
  19.         }
  20.         file=substr(file, 0, counter);
  21.         buffer_id=GetBufferID(file);
  22.         if (buffer_id && ReadInfo("changes", buffer_id)) {
  23.           if (!Request(joinstr("'", file, "' exist as a changed buffer!\n\nDo you want to activate the internal buffer?"), "Grep information", "Activate existing|Load origin"))
  24.             buffer_id=0;
  25.         }
  26.         if (buffer_id) {
  27.           Activate(buffer_id);
  28.           CurrentBuffer(buffer_id);
  29.         } else {
  30.           buffer_id=New();
  31.           Activate(buffer_id);
  32.           CurrentBuffer(buffer_id);
  33.           Load(file);
  34.         }
  35.         GotoLine(line);
  36.       }
  37.     } else
  38.       ReturnStatus("No valid line!");
  39.   } else {
  40.     string grep_input;
  41.     int input_id=GetEntryID();
  42.     int grep_buffer;
  43.  
  44.     Visible(0);
  45.     grep_input=PromptString("", "Grep input:", "[Grep] pattern files\n");
  46.     if (strlen(grep_input)) {
  47.       grep_input=joinstr("Grep ", grep_input, " >T:Grep.Tmp");
  48.       Status(0, "Grep is working...");
  49.       System(grep_input);
  50.  
  51.       grep_buffer=New();
  52.       if (grep_buffer) {
  53.         Activate(grep_buffer);
  54.         CurrentBuffer(grep_buffer);
  55.         Load("T:Grep.Tmp");
  56.       }
  57.     } else
  58.       ReturnStatus("Function cancel!");
  59.     Visible(1);
  60.   }
  61. }
  62.  
  63.