home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / APPS / elvis_1.4.tar.Z / elvis_1.4.tar / vars.c < prev    next >
C/C++ Source or Header  |  1990-12-06  |  3KB  |  94 lines

  1. /* vars.c */
  2.  
  3. /* Author:
  4.  *    Steve Kirkendall
  5.  *    14407 SW Teal Blvd. #C
  6.  *    Beaverton, OR 97005
  7.  *    kirkenda@cs.pdx.edu
  8.  */
  9.  
  10.  
  11. /* This file contains variables which weren't happy anyplace else */
  12.  
  13. #include "config.h"
  14. #include "vi.h"
  15.  
  16. /*------------------------------------------------------------------------*/
  17.  
  18. /* used to remember whether the file has been modified */
  19. struct _viflags    viflags;
  20.  
  21. /* used to access the tmp file */
  22. long        lnum[MAXBLKS];
  23. long        nlines;
  24. int        tmpfd = -1;
  25.  
  26. /* used to keep track of the current file & alternate file */
  27. long        origtime;
  28. char        origname[256];
  29. char        prevorig[256];
  30. long        prevline = 1;
  31.  
  32. /* used to track various places in the text */
  33. MARK        mark[NMARKS];    /* marks 'a through 'z, plus mark '' */
  34. MARK        cursor;        /* the cursor position within the file */
  35.  
  36. /* which mode of the editor we're in */
  37. int        mode;        /* vi mode? ex mode? quitting? */
  38.  
  39. /* used to manage the args list */
  40. char        args[BLKSIZE];    /* list of filenames to edit */
  41. int        argno;        /* index of current file in args list */
  42. int        nargs;        /* number of filenames in args[] */
  43.  
  44. /* dummy var, never explicitly referenced */
  45. int        bavar;        /* used only in BeforeAfter macros */
  46.  
  47. /* have we made a multi-line change? */
  48. int        mustredraw;    /* must we redraw the whole screen? */
  49.  
  50. /* used to detect changes that invalidate cached text/blocks */
  51. long        changes;    /* incremented when file is changed */
  52. int        significant;    /* boolean: was a *REAL* change made? */
  53.  
  54. /* used to support the pfetch() macro */
  55. int        plen;        /* length of the line */
  56. long        pline;        /* line number that len refers to */
  57. long        pchgs;        /* "changes" level that len refers to */
  58. char        *ptext;        /* text of previous line, if valid */
  59.  
  60. /* misc temporary storage - mostly for strings */
  61. BLK        tmpblk;        /* a block used to accumulate changes */
  62.  
  63. /* screen oriented stuff */
  64. long        topline;    /* file line number of top line */
  65. int        leftcol;    /* column number of left col */
  66. int        physcol;    /* physical column number that cursor is on */
  67. int        physrow;    /* physical row number that cursor is on */
  68.  
  69. /* used to help minimize that "[Hit a key to continue]" message */
  70. int        exwrote;    /* Boolean: was the last ex command wordy? */
  71.  
  72. /* This variable affects the behaviour of certain functions -- most importantly
  73.  * the input function.
  74.  */
  75. int        doingdot;    /* boolean: are we doing the "." command? */
  76.  
  77. /* This variable affects the behaviour of the ":s" command, and it is also
  78.  * used to detect & prohibit nesting of ":g" commands
  79.  */
  80. int        doingglobal;    /* boolean: are doing a ":g" command? */
  81. /* These are used for reporting multi-line changes to the user */
  82. long        rptlines;    /* number of lines affected by a command */
  83. char        *rptlabel;    /* description of how lines were affected */
  84.  
  85. /* These store info that pertains to the shift-U command */
  86. long    U_line;            /* line# of the undoable line, or 0l for none */
  87. char    U_text[BLKSIZE];    /* contents of the undoable line */
  88.  
  89. /* Bigger stack req'ed for TOS */
  90.  
  91. #if TOS
  92. long    _stksize = 16384;
  93. #endif
  94.