# 2.11BSD#431 - /usr/src/new/PORT/B/src/bed/help.c

##### Functions

    help              X
    stop              X

##### Variables

    intr              X

##### Macros

    HELPBLURB         X
    SOBIT             X
    getchar           X

       1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */
       2: static char rcsid[] = "$Header: help.c,v 2.6 85/08/22 16:03:38 timo Exp $";
       3:
       4: /*
       5:  * B editor -- Print help blurb.
       6:  */
       7:
       8: #include "feat.h"
       9:
      10: #ifdef HELPFUL
      11:
      12: #include "unix.h"
      13:
      14: #ifdef IBMPC
      15: #define getchar() getch()
      16: #endif IBMPC
      17:
      18: #ifdef SIGNAL
      19: #include <signal.h>
      20: #endif SIGNAL
      21:
      22: #ifdef SGTTY_H
      23: #include <sgtty.h>
      24: #endif SGTTY_H
      25:
      26: #include "b.h"
      27:
      28: string unixerror();
      29:
      30: #ifndef HELPBLURB
      31: #define HELPBLURB "/usr/new/lib/B/Bed_help"
      32: #endif
      33:
      34: #define SOBIT 0200
      35:
      36: extern int winheight;
      37: extern int llength;
      38: extern int winstart;
      39:
      40:
      41: /*
      42:  * Interrupt catcher while printing message.
      43:  */
      44:
      45: Hidden int intr;
      46:
      47: #ifdef SIGNAL
      48: Hidden Procedure
      49: stop()
      50: {
      51:     intr = Yes;
      52:     signal(SIGINT, stop);
      53: }
      54: #endif SIGNAL
      55:
      56:
      57: /*
      58:  * Print help blurb.
      59:  * This is done through the standard screen interface.
      60:  * An interrupt during the printing only stops the printing.
      61:  * The user must type [return] to continue.
      62:  */
      63:
      64: Visible bool
      65: help()
      66: {
      67:     FILE *fp;
      68:     string helpblurb;
      69:     char buffer[81];
      70:     int len = sizeof buffer;
      71:     string cp;
      72: #ifdef SIGNAL
      73:     int (*prevsig)();
      74: #endif SIGNAL
      75: #ifdef SGTTY_H
      76:     struct sgttyb tty;
      77: #endif SGTTY_H
      78:     int c;
      79:
      80:     helpblurb = getenv("BED_HELP");
      81:     if (!helpblurb || !helpblurb[0])
      82:         helpblurb = HELPBLURB;
      83:     fp = fopen(helpblurb, "r");
      84:     if (!fp) {
      85:         error("Sorry, I can't help [%s]", unixerror(helpblurb));
      86:         return No;
      87:     }
      88: #ifdef SIGNAL
      89:     intr = No;
      90:     prevsig = signal(SIGINT, stop);
      91: #endif SIGNAL
      92:     if (llength < (sizeof buffer)-1)
      93:         len = llength+1;
      94:     while (!intr && fgets(buffer, len, fp)) {
      95:         cp = index(buffer, '\n');
      96:         if (cp)
      97:             *cp = '\0';
      98:         trmputdata(winheight, winheight, 0, buffer);
      99:         trmscrollup(0, winheight, 1);
     100:         trmsync(winheight, 0);
     101:     }
     102:     fclose(fp);
     103: #ifdef SIGNAL
     104:     signal(SIGINT, prevsig);
     105:     if (intr)
     106:         trmundefined();
     107:         /* UNIX discards output when interrupted */
     108:         /* so output position is uncertain */
     109: #endif SIGNAL
     110:     trmputdata(winheight, winheight, 0, "");
     111:     strcpy(buffer, "Press [return] to continue");
     112:     for (cp = buffer; *cp; )
     113:         *cp++ |= SOBIT;
     114:     trmputdata(winheight, winheight, 0, buffer);
     115:     trmsync(winheight, cp - buffer);
     116:     c = getchar();
     117:     while (c != '\n' && c != '\r' && c != EOF) {
     118:         trmbell();
     119:         c = getchar();
     120:     }
     121:     trmputdata(winheight, winheight, 0, "");
     122:     winstart = winheight;
     123:     return Yes;
     124: }
     125: #endif HELPFUL

#### Defined functions

help defined in line 64; used 2 times

- in /usr/src/new/PORT/B/src/bed/demo.c line 364, 398

stop defined in line 48; used 2 times

- in line 52, 90

#### Defined variables

intr defined in line 45; used 4 times

- in line 51, 89-94(2), 105

rcsid defined in line 2; never used

#### Defined macros

HELPBLURB defined in line 31; used 2 times

- in line 30, 82

SOBIT defined in line 34; used 1 times

- in line 113

getchar defined in line 15; used 2 times

- in line 116-119(2)

Last modified: 1985-08-27 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 695 |