[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     ! 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>