home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / EDITC80 / ED7.C < prev    next >
C/C++ Source or Header  |  2000-06-30  |  3KB  |  188 lines

  1. /* Screen editor:  prompt line module
  2.  *
  3.  * Source:  ed7.c
  4.  * Version: May 15, 1981.
  5.  */
  6.  
  7. /* define globals */
  8.  
  9. #include ed1.h
  10.  
  11. /* globals used by this module -----
  12.  
  13. char pmtln[MAXLEN];        mode
  14. char pmtfn[SYSFNMAX];        file name
  15.  
  16. ----- */
  17.  
  18. /* put error message on prompt line.
  19.  * wait for response.
  20.  */
  21.  
  22. pmtmess(s1,s2) char *s1, *s2;
  23. {
  24. int x,y;
  25.     /* save cursor */
  26.     x=outgetx();
  27.     y=outgety();
  28.     outxy(0,0);
  29.     /* make sure line is correct */
  30.     outdelln();
  31.     pmtlin1();
  32.     pmtcol1(x);
  33.     /* output error message */
  34.     fmtsout(s1,outgetx());
  35.     fmtsout(s2,outgetx());
  36.     /* wait for input from console */
  37.     syscin();
  38.     /* redraw prompt line */
  39.     pmtlin1();
  40.     pmtcol1(x);
  41.     pmtfil1(pmtfn);
  42.     pmtmod1(pmtln);
  43.     /* restore cursor */
  44.     outxy(x,y);
  45. }
  46.  
  47. /* write new mode message on prompt line */
  48.  
  49. pmtmode(s) char *s;
  50. {
  51. int x,y;        /* save cursor on entry */
  52.     /* save cursor */
  53.     x=outgetx();
  54.     y=outgety();
  55.     /* redraw whole line */
  56.     outxy(0,0);
  57.     outdelln();
  58.     pmtlin1();
  59.     pmtcol1(x);
  60.     pmtfil1(pmtfn);
  61.     pmtmod1(s);
  62.     /* restore cursor */
  63.     outxy(x,y);
  64. }
  65.  
  66. /* update file name on prompt line */
  67.  
  68. pmtfile(s) char *s;
  69. {
  70. int x, y;
  71.     /* save cursor */
  72.     x=outgetx();
  73.     y=outgety();
  74.     /* update whole line */
  75.     outxy(0,0);
  76.     outdelln();
  77.     pmtlin1();
  78.     pmtcol1();
  79.     pmtfil1(s);
  80.     pmtmod1(pmtln);
  81.     /* restore cursor */
  82.     outxy(x,y);
  83. }
  84.  
  85. /* change mode on prompt line to edit: */
  86.  
  87. pmtedit()
  88. {
  89.     pmtmode("edit:");
  90. }
  91.  
  92. /* update line and column numbers on prompt line */
  93.  
  94. pmtline()
  95. {
  96. int x,y;
  97.     /* save cursor */
  98.     x=outgetx();
  99.     y=outgety();
  100.     /* redraw whole line */
  101.     outxy(0,0);
  102.     outdelln();
  103.     pmtlin1();
  104.     pmtcol1(x);
  105.     pmtfil1(pmtfn);
  106.     pmtmod1(pmtln);
  107.     /* restore cursor */
  108.     outxy(x,y);
  109. }
  110.  
  111. /* update just the column number on prompt line */
  112.  
  113. pmtcol()
  114. {
  115. int x,y;
  116.     /* save cursor */
  117.     x=outgetx();
  118.     y=outgety();
  119.     /* update column number */
  120.     pmtcol1(x);
  121.     /* update cursor */
  122.     outxy(x,y);
  123. }
  124.  
  125. /* update mode.  call getcmnd() to write on prompt line */
  126.  
  127. pmtcmnd(mode,buffer) char *mode, *buffer;
  128. {
  129. int x,y;
  130.     /* save cursor */
  131.     x=outgetx();
  132.     y=outgety();
  133.     pmtmod1(mode);
  134.     /* user types command on prompt line */
  135.     getcmnd(buffer,outgetx());
  136.     /* restore cursor */
  137. }
  138.  
  139. /* update and print mode */
  140.  
  141. pmtmod1(s) char *s;
  142. {
  143. int i;
  144.     outxy(40,0);
  145.     fmtsout(s,40);
  146.     i=0;
  147.     while (pmtln[i++]= *s++) {
  148.         ;
  149.     }
  150. }
  151.  
  152. /* print the file name on the prompt line */
  153.  
  154. pmtfil1(s) char *s;
  155. {
  156. int i;
  157.     outxy(25,0);
  158.     if (*s==EOS) {
  159.         fmtsout("no file",25);
  160.     }
  161.     else {
  162.         fmtsout(s,25);
  163.     }
  164.     i=0;
  165.     while (pmtfn[i++]= *s++) {
  166.         ;
  167.     }
  168. }
  169.  
  170. /* print the line number on the prompt line */
  171.  
  172. pmtlin1()
  173. {
  174.     outxy(0,0);
  175.     fmtsout("line: ",0);
  176.     putdec(bufln(),5);
  177. }
  178.  
  179.  
  180. /* print column number of the cursor */
  181.  
  182. pmtcol1(x) int x;
  183. {
  184.     outxy(12,0);
  185.     fmtsout("column: ",12);
  186.     putdec(x,3);
  187. }
  188.