home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / emacs / src / ovmdln28.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-07  |  1.6 KB  |  72 lines

  1. #include "medisp.h"
  2.  
  3. /*
  4.  * Redisplay the mode line for
  5.  * the window pointed to by the "wp".
  6.  * This is the only routine that has any idea
  7.  * of how the modeline is formatted. You can
  8.  * change the modeline format by hacking at
  9.  * this routine. Called by "update" any time
  10.  * there is a dirty window.
  11.  */
  12. extern char * Argv[];
  13. ovmain()
  14. {
  15.     register WINDOW    *wp;
  16.     register char    *cp;
  17.     register int    c;
  18.     register int    n;
  19.     register BUFFER    *bp;
  20.  
  21.     wp = (WINDOW *) Argv[3];
  22.     n = wp->w_toprow+wp->w_ntrows;        /* Location.        */
  23.     vscreen[n]->v_flag |= VFCHG;        /* Redraw next time.    */
  24.     vtmove(n, 0);                /* Seek to right line.    */
  25.     vtputc('=');
  26.     bp = wp->w_bufp;
  27.     if ((bp->b_flag&BFCHG) != 0)        /* "*" if changed.    */
  28.         vtputc('*');
  29.     else
  30.         vtputc('=');
  31.     n  = 2;
  32.     cp = " BetzaEMACS == ";            /* Buffer name.        */
  33.     while ((c = *cp++) != 0) {
  34.         vtputc(c);
  35.         ++n;
  36.     }
  37.     cp = &bp->b_bname[0];
  38.     while ((c = *cp++) != 0) {
  39.         vtputc(c);
  40.         ++n;
  41.     }
  42.     vtputc(' ');
  43.     ++n;
  44.     if (bp->b_fname[0] != 0) {        /* File name.        */
  45.         cp = "== File: ";
  46.         while ((c = *cp++) != 0) {
  47.             vtputc(c);
  48.             ++n;
  49.         }
  50.         cp = &bp->b_fname[0];
  51.         while ((c = *cp++) != 0) {
  52.             vtputc(c);
  53.             ++n;
  54.         }
  55.         vtputc(' ');
  56.         ++n;
  57.     }
  58. #ifdef    WFDEBUG
  59.     vtputc('=');
  60.     vtputc((wp->w_flag&WFMODE)!=0  ? 'M' : '-');
  61.     vtputc((wp->w_flag&WFHARD)!=0  ? 'H' : '-');
  62.     vtputc((wp->w_flag&WFEDIT)!=0  ? 'E' : '-');
  63.     vtputc((wp->w_flag&WFMOVE)!=0  ? 'V' : '-');
  64.     vtputc((wp->w_flag&WFFORCE)!=0 ? 'F' : '-');
  65.     n += 6;
  66. #endif
  67.     while (n < 80) {        /* Pad to full width.    */
  68.         vtputc('=');
  69.         ++n;
  70.     }
  71. }
  72.