[BACK]Return to help.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / builtin

Annotation of OpenXM_contrib2/asir2000/builtin/help.c, Revision 1.1.1.1

1.1       noro        1: /* $OpenXM: OpenXM/src/asir99/builtin/help.c,v 1.1.1.1 1999/11/10 08:12:25 noro Exp $ */
                      2: #include "ca.h"
                      3: #include "parse.h"
                      4:
                      5: void Phelp();
                      6: void ghelp(void);
                      7:
                      8: struct ftab help_tab[] = {
                      9:        {"help",Phelp,-1},
                     10:        {0,0,0},
                     11: };
                     12:
                     13: void Phelp(arg,rp)
                     14: NODE arg;
                     15: Obj *rp;
                     16: {
                     17:        if ( !arg || !ARG0(arg) )
                     18:                 help(0);
                     19:        else
                     20:                switch (OID(ARG0(arg))) {
                     21:                        case O_P:
                     22:                                help(NAME(VR((P)ARG0(arg))));
                     23:                                break;
                     24:                        case O_STR:
                     25:                                help(BDY((STRING)ARG0(arg)));
                     26:                                break;
                     27:                        default:
                     28:                                break;
                     29:                }
                     30:        *rp = 0;
                     31: }
                     32:
                     33: static char *ghelpstr[] = {
                     34: "<expression> ';'  : eval and print",
                     35: "<expression> '$'  : eval",
                     36: "end (quit)        : close the current input stream",
                     37: "debug             : enter the debug mode",
                     38: 0
                     39: };
                     40:
                     41: void help(s)
                     42: char *s;
                     43: {
                     44:        extern char *asir_libdir;
                     45:        extern char *asir_pager;
                     46:
                     47:        if ( !s )
                     48:                ghelp();
                     49:        else {
                     50: #if !defined(VISUAL)
                     51:                int i;
                     52:                FUNC f;
                     53:                char name[BUFSIZ],com[BUFSIZ];
                     54:                FILE *fp;
                     55:
                     56:                sprintf(name,"%s/help/%s",asir_libdir,s);
                     57:                if ( fp = fopen(name,"r") ) {
                     58:                        fclose(fp);
                     59:                        sprintf(com,"%s %s",asir_pager,name);
                     60:                        system(com);
                     61:                } else {
                     62:                        searchf(usrf,s,&f);
                     63:                        if ( f && f->f.usrf->desc )
                     64:                                fprintf(stderr,"%s\n",f->f.usrf->desc);
                     65:                }
                     66: #endif
                     67:        }
                     68: }
                     69:
                     70: void ghelp() {
                     71:        int i;
                     72:
                     73:        for ( i = 0; ghelpstr[i]; i++ )
                     74:                fprintf(stderr,"%s\n",ghelpstr[i]);
                     75: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>