| ; OS shell interface, MS-DOS and UNIX |
| |
| store-procedure prompt |
| set $discmd FALSE |
| end-of-file |
| insert-string "shell% " |
| set-mark |
| set $discmd TRUE |
| unmark-buffer |
| !endm |
| |
| store-procedure getline |
| set $discmd FALSE |
| end-of-file |
| !force backward-character |
| exchange-point-and-mark |
| copy-region |
| set %shline $kill |
| end-of-file |
| set $discmd TRUE |
| !endm |
| |
| store-procedure execline |
| ; shell-command "echo command not found > shtmp" |
| shell-command &cat %shline " > shtmp" |
| !force insert-file shtmp |
| !endm |
| |
| ; prompt and execute a command |
| |
| 10 store-macro |
| run getline |
| !if ¬ &seq %shline "" |
| run execline |
| !endif |
| run prompt |
| !endm |
| |
| 11 store-macro |
| set $discmd FALSE |
| !if &seq $cbufname "*Shell*" |
| bind-to-key execute-macro-10 ^M |
| run prompt |
| !else |
| bind-to-key newline ^M |
| !endif |
| set $discmd TRUE |
| !endm |
| |
| store-procedure openshell |
| set $discmd FALSE |
| bind-to-key execute-macro-11 M-FNX |
| select-buffer "*Shell*" |
| set $discmd TRUE |
| !endm |
| |
| run openshell |