home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume17 / e2 / part01 / insert_cmd.c < prev    next >
C/C++ Source or Header  |  1989-02-08  |  1KB  |  52 lines

  1. #include "e.h"
  2.  
  3. /*
  4.  * insert_cmd()
  5.  *
  6.  * They want the last file in the history but want to preceed it
  7.  * this time with a command - no problems here.
  8.  *
  9.  */
  10. void
  11. insert_cmd(command)
  12. char *command;
  13. {
  14.     char *place;
  15.  
  16.     /* 
  17.      * If there was already a command there (indicated by a '+'), then we
  18.      * want to get rid of it. If there is a '+' but no ' ' (somewhere) after 
  19.      * it, then the history file is in disarray and we do not try to recover.
  20.      *
  21.      */
  22.  
  23.     if (*hist[hist_count - 1] == '+'){
  24.         if ((place = index(hist[hist_count - 1], ' ')) == NULL){
  25.             e_error("History '%s' corrupted, + but no following space", ehist);
  26.         }
  27.         skip_white(place);
  28.     }
  29.     else{
  30.         place = hist[hist_count - 1];
  31.     }
  32.  
  33.     /* 
  34.      * Put the new command and the filename into 'arg' 
  35.      *
  36.      */
  37.     ok_sprintf(arg, "%s %s", command, place);
  38.  
  39.     /* 
  40.      * Reconstruct, leaving out the oldest name if needed.
  41.      * reconstruct(-1) will exclude nothing - the history is not full.
  42.      *
  43.      */
  44.     if (hist_count == HIST_LINES){
  45.         reconstruct(0);
  46.     }
  47.     else{
  48.         reconstruct(-1);
  49.     }
  50.     return;
  51. }
  52.