home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / csh / sh.init.c < prev    next >
C/C++ Source or Header  |  1980-02-17  |  3KB  |  163 lines

  1. /* Copyright (c) 1979 Regents of the University of California */
  2. #include "sh.local.h"
  3. /*
  4.  * C shell
  5.  */
  6.  
  7. extern    int await();
  8. extern    int chngd();
  9. extern    int doalias();
  10. extern    int dobreak();
  11. extern    int docontin();
  12. extern    int doecho();
  13. extern    int doelse();
  14. extern    int doend();
  15. extern    int doendif();
  16. extern    int doendsw();
  17. extern    int doexit();
  18. extern    int doforeach();
  19. extern    int doglob();
  20. extern    int dogoto();
  21. extern    int dohist();
  22. extern    int doif();
  23. extern    int dolet();
  24. extern    int dologout();
  25. extern    int donice();
  26. extern    int donohup();
  27. extern    int doonintr();
  28. extern    int dorepeat();
  29. extern    int doset();
  30. extern    int dosetenv();
  31. extern    int dosource();
  32. extern    int doswbrk();
  33. extern    int doswitch();
  34. extern    int dotime();
  35. #ifndef V6
  36. extern    int doumask();
  37. #endif
  38. extern    int dowhile();
  39. extern    int dozip();
  40. extern    int execash();
  41. extern    int goodbye();
  42. extern    int shift();
  43. extern    int showall();
  44. extern    int unalias();
  45. extern    int unset();
  46.  
  47. #define INF    1000
  48.  
  49. struct    biltins {
  50.     char    *bname;
  51.     int    (*bfunct)();
  52.     short    minargs, maxargs;
  53. } bfunc[] = {
  54.     "@",        dolet,        0,    INF,
  55.     "alias",    doalias,    0,    INF,
  56. #ifdef debug
  57.     "alloc",    showall,    0,    1,
  58. #endif
  59.     "break",    dobreak,    0,    0,
  60.     "breaksw",    doswbrk,    0,    0,
  61.     "case",        dozip,        0,    1,
  62.     "cd",        chngd,        0,    1,
  63.     "chdir",    chngd,        0,    1,
  64.     "continue",    docontin,    0,    0,
  65.     "default",    dozip,        0,    0,
  66.     "echo",        doecho,        0,    INF,
  67.     "else",        doelse,        0,    INF,
  68.     "end",        doend,        0,    0,
  69.     "endif",    dozip,        0,    0,
  70.     "endsw",    dozip,        0,    0,
  71.     "exec",        execash,    1,    INF,
  72.     "exit",        doexit,        0,    INF,
  73.     "foreach",    doforeach,    3,    INF,
  74.     "glob",        doglob,        0,    INF,
  75.     "goto",        dogoto,        1,    1,
  76.     "history",    dohist,        0,    0,
  77.     "if",        doif,        1,    INF,
  78.     "logout",    dologout,    0,    0,
  79.     "nice",        donice,        0,    INF,
  80.     "nohup",    donohup,    0,    INF,
  81.     "onintr",    doonintr,    0,    2,
  82.     "repeat",    dorepeat,    2,    INF,
  83.     "set",        doset,        0,    INF,
  84. #ifndef V6
  85.     "setenv",    dosetenv,    2,    2,
  86. #endif
  87.     "shift",    shift,        0,    1,
  88.     "source",    dosource,    1,    1,
  89.     "switch",    doswitch,    1,    INF,
  90.     "time",        dotime,        0,    INF,
  91. #ifndef V6
  92.     "umask",    doumask,    0,    1,
  93. #endif
  94.     "unalias",    unalias,    1,    INF,
  95.     "unset",    unset,        1,    INF,
  96.     "wait",        await,        0,    0,
  97.     "while",    dowhile,    1,    INF,
  98.     0,        0,        0,    0,
  99. };
  100.  
  101. #define    ZBREAK        0
  102. #define    ZBRKSW        1
  103. #define    ZCASE        2
  104. #define    ZDEFAULT     3
  105. #define    ZELSE        4
  106. #define    ZEND        5
  107. #define    ZENDIF        6
  108. #define    ZENDSW        7
  109. #define    ZEXIT        8
  110. #define    ZFOREACH    9
  111. #define    ZGOTO        10
  112. #define    ZIF        11
  113. #define    ZLABEL        12
  114. #define    ZLET        13
  115. #define    ZSET        14
  116. #define    ZSWITCH        15
  117. #define    ZTEST        16
  118. #define    ZTHEN        17
  119. #define    ZWHILE        18
  120.  
  121. struct srch {
  122.     char    *s_name;
  123.     short    s_value;
  124. } srchn[] = {
  125.     "@",        ZLET,
  126.     "break",    ZBREAK,
  127.     "breaksw",    ZBRKSW,
  128.     "case",        ZCASE,
  129.     "default",     ZDEFAULT,
  130.     "else",        ZELSE,
  131.     "end",        ZEND,
  132.     "endif",    ZENDIF,
  133.     "endsw",    ZENDSW,
  134.     "exit",        ZEXIT,
  135.     "foreach",     ZFOREACH,
  136.     "goto",        ZGOTO,
  137.     "if",        ZIF,
  138.     "label",    ZLABEL,
  139.     "set",        ZSET,
  140.     "switch",    ZSWITCH,
  141.     "while",    ZWHILE,
  142.     0,        0,
  143. };
  144.  
  145. char    *mesg[] = {
  146.     0,
  147.     "Hangup",
  148.     0,
  149.     "Quit",
  150.     "Illegal instruction",
  151.     "Trace/BPT trap",
  152.     "IOT trap",
  153.     "EMT trap",
  154.     "Floating exception",
  155.     "Killed",
  156.     "Bus error",
  157.     "Segmentation violation",
  158.     "Bad system call",
  159.     0,
  160.     "Alarm clock",
  161.     "Terminated",
  162. };
  163.