Subj : command shell probs.
To : Finnigann
From : -oblivious-
Date : Thu Mar 05 2037 06:27 pm
.��( Finnigann said this to -oblivious- )��.
re:hangup problems in the command shell...
Fi> Dunno if this being too snotty... but could we see the code?
Fi> James King, Coldwater, Mi And that's JIM to you guys!
no, not snotty at all... well....hm....
the current version i have is ripped off of one of the included
cmd shells, with a few additions.
uh...this is pretty messy.. be carefull for what you wish for:
sorry this is SO BIG!!
here it goes, i'd appreciate any help!
# DEFAULT.SRC
:top
!include sbbsdefs.inc
# Set return point for main menu commands (via end_cmd)
cmd_home
# Display TEXT\MENU\MAIN.* if not in expert mode
:main
compare_user_misc UM_EXPERT
if_false
cls
menu eob\MAIN
end_if
# Update node status
node_action node_main
async
inc_main_cmds
# Display main Prompt
exec_bin "rumors"
crlf
print "\r|15M|07ain |15M|07enu |14[|04@TLEFT@|14][0;5;31m:[0m"
#compare_ars exempt T
#if_true
# print "@TUSED@"
#else
# print "@TLEFT@"
# end_if
#print " [@GN@] @GRP@ [@SN@] @SUB@: "
# Get key (with / extended commands allowed)
compare_user_misc UM_COLDKEYS
if_false
getkeye
else
getstrupr 60
endif
compare_ars RIP
if_true
getlines
end_if
# Do nothing for control keys and space
cmdkey ^@
end_cmd
cmdkey ^M
end_cmd
cmdkey ^S
end_cmd
cmdkey "
end_cmd
# Write command to log file
logkey_comma
# Hitting number changes current sub-board
cmdkey digit
compare_user_misc UM_COLDKEYS
if_false
ungetkey
end_if
msg_get_sub_num
end_cmd
# Hitting /number changes current group
cmdkey edigit
compare_user_misc UM_COLDKEYS
if_false
ungetkey
else
shift_str 1
end_if
msg_get_grp_num
end_cmd
# Show the key hit
compare_user_misc UM_COLDKEYS
if_false
printkey
endif
# Next sub-board
cmdkey }
msg_subboard_up
end_cmd
# Previous sub-board
cmdkey {
msg_subboard_down
end_cmd
# Next group
cmdkey ]
msg_group_up
end_cmd
# Previous group
cmdkey [
msg_group_down
end_cmd
# String commands start with a semicolon
cmdkey ;
compare_user_misc UM_COLDKEYS
if_true
shift_str 1
else
getstrupr 40
end_if
exec_bin str_cmds
end_cmd
# Sysop Menu
#cmdkey /!
#compare_ars SYSOP or EXEMPT Q or I or N
#if_true
#exec_XTRN "DOSSHELL"
#end_cmd
# end_if
cmdkey /Q
msg_qwk
end_cmd
cmdkey N
setstr "1"
mail_send_feedback
end_cmd
cmdkey _
exec_bin "bullseye"
end_cmd
cmdkey /O
exec_xtrn "wall"
end_cmd
cmdkey .
printfile "c:\sbbs\text\morecmds.ans"
end_cmd
cmdkey /?
exec_bin "help"
end_cmd
cmdkey /@
SETSTR "rasta"
PAGE_GURU "rasta"
end_cmd
CMDKEY /X
EXEC_XTRN "SYNCREG"
END_CMD
cmdkey F
chkfile "..\text\menu\tmessage.*"
if_true
menu tmessage
end_if
call file_transfers
end_cmd
compare_user_misc UM_COLDKEYS
if_false
crlf
end_if
pause_reset
# Menu
cmdkey ?
compare_user_misc UM_expert
if_true
menu main
end_if
end_cmd
# Sysop Menu
compare_ars SYSOP or EXEMPT Q or I or N
if_true
cmdkey !
menu sysmain
end_cmd
end_if
# Commands
cmdkey O
xtrn_section
end_cmd
cmdkey A
cls
PRINTFILE "C:\SBBS\TEXT\AUTOMSG.ANS"
auto_message
end_cmd
cmdkey /R
# print "\r\nBrowse/New Message Scan\r\n"
# msg_browse_scan
exec_xtrn "rumors"
end_cmd
cmdkey B
# print "\r\nBrowse/New Message Scan\r\n"
# msg_browse_scan
exec_xtrn "sbl"
end_cmd
cmdkey /W
printfile "C:\SBBS\TEXT\WATCH.ANS"
end_cmd
cmdkey C
chat_section
end_cmd
cmdkey P
user_defaults
end_cmd
CMDKEY Y
PRINTFILE "C:\SBBS\TEXT\USERINFO.ANS"
END_CMD
cmdkey E
call E-mail
end_cmd
#cmdkey F
# print "\r\nFind Text in Messages\r\n"
# msg_find_text
# end_cmd
cmdkey /S
exec "*shit"
end_cmd
cmdkey F
msg_find_text_all
end_cmd
cmdkey G
text_file_section
end_cmd
cmdkey I
call main_info
end_cmd
cmdkey J
msg_select_area
end_cmd
#our dosshell
cmdkey /!
exec_xtrn "dosshell"
end_cmd
cmdkey /L
nodelist_all
end_cmd
cmdkey $
minute_bank
end_cmd
cmdkey M
cmd_pop
goto message
end_cmd
cmdkey N
print "\r\nNew Message Scan\r\n"
msg_new_scan
end_cmd
cmdkey /N
msg_new_scan_all
end_cmd
cmdkey G
file_download_batch
if_true
end_cmd
end_if
logoff
end_cmd
cmdkey /G
file_download_batch
if_true
end_cmd
end_if
logoff_fast
end_cmd
#cmdkey P
# msg_post
# end_cmd
cmdkey /Q
msg_qwk
end_cmd
cmdkey R
msg_read
end_cmd
cmdkey S
print "\r\nScan for Messages Posted to You\r\n"
msg_your_scan
end_cmd
cmdkey /S
msg_your_scan_all
end_cmd
cmdkey U
#print "\r\nList Users\r\n"
#mnemonics "\r\n~Logons Today, ~Sub-board, or ~All: "
#getcmd LSA\r
#
#cmdkey L
# userlist_logons
# end_cmd
#cmdkey S
# userlist_sub
# end_cmd
#cmdkey A
userlist_all
end_cmd
# fall-through for CR, Ctrl-C, etc
end_cmd
cmdkey /U
userlist_all
end_cmd
cmdkey Z
print "\r\nContinuous New Message Scan\r\n"
msg_cont_scan
end_cmd
cmdkey /Z
msg_cont_scan_all
end_cmd
cmdkey *
msg_show_subboards
end_cmd
cmdkey /*
msg_show_groups
end_cmd
cmdkey /P
goto main_cfg
end_cmd
cmdkey #
print "\r\nType the actual number, not the symbol.\r\n"
end_cmd
cmdkey /#
print "\r\nType the actual number, not the symbol.\r\n"
end_cmd
# fall through
print "\r\nUnrecognized command."
compare_user_misc UM_expert
if_true
print " Hit '?' for a menu."
end_if
crlf
end_cmd
# shouldn't hit next line
print "Problem in command shell you should probably log of and call back."
pause
goto main
###################################### message area #######################
:message
cmd_home
compare_ars expert
if_false
cls
menu EOB\MESSAGE
end_if
# Update node status
node_action node_main
async
# Display main Prompt
print "|08[|14@GRP@|07]|08�|07(|11@SN@|07)|08-|08[|14@SUB@|07]\r\n"
#compare_ars exempt T
#if_true
# print "Time Used: [@TUSED@] "
#else
print "Time Left: [@TLEFT@] "
end_if
#print "(?=Help)\r\nMessage Menu : "
# Get key (with / extended commands allowed)
compare_user_misc UM_COLDKEYS
if_false
getkeye
else
getstrupr 60
endif
# Do nothing for control keys and space
cmdkey ^@
end_cmd
cmdkey ^M
end_cmd
cmdkey ^S
end_cmd
cmdkey "
end_cmd
# Write command to log file
logkey_comma
# Hitting number changes current sub-board
cmdkey digit
compare_user_misc UM_COLDKEYS
if_false
ungetkey
end_if
msg_get_sub_num
end_cmd
# Hitting /number changes current group
cmdkey edigit
compare_user_misc UM_COLDKEYS
if_false
ungetkey
else
shift_str 1
end_if
msg_get_grp_num
end_cmd
# Show the key hit
compare_user_misc UM_COLDKEYS
if_false
printkey
endif
cmdkey ?
compare_ars expert
if_true
cls
menu EOB\MESSAGE
end_if
end_cmd
cmdkey Q
cmd_pop
goto main
end_cmd
cmdkey [
msg_subboard_down
end_cmd
cmdkey ]
msg_subboard_up
end_cmd
compare_user_misc UM_COLDKEYS
if_false
crlf
end_if
pause_reset
cmdkey A
msg_show_subboards
end_cmd
cmdkey /A
msg_show_groups
end_cmd
cmdkey C
chat_section
end_cmd
cmdkey /L
nodelist_all
end_cmd
cmdkey N
msg_new_scan
end_cmd
cmdkey R
msg_read
end_cmd
cmdkey P
msg_post
end_cmd
cmdkey F
cmd_pop
goto file_transfers
end_cmd
cmdkey S
print "\r\nSearch for Text in Messages\r\n"
msg_find_text
end_cmd
cmdkey U
userlist_sub
end_cmd
cmdkey G
file_download_batch
if_true
end_cmd
end_if
logoff
end_cmd
cmdkey /G
file_download_batch
if_true
end_cmd
end_if
logoff_fast
end_cmd
cmdkey E
print "\r\nE-mail (User name or number): "
getname 25
compare_str ""
if_true
end_cmd
end_if
compare_str "SYSOP"
if_true
setstr "1"
end_if
mail_send
end_cmd
cmdkey J
msg_select_area
end_cmd
cmdkey Y
msg_your_scan_all
end_cmd
cmdkey P
msg_post
end_cmd
cmdkey #
print "\r\nEnter the number of the sub-board to change to.\r\n"
end_cmd
cmdkey /#
print "\r\nEnter the number of the message group to change to.\r\n"
end_cmd
# fall through
print "\r\nUnrecognized command."
compare_ars expert
if_true
print " Hit '?' for a menu."
end_if
crlf
end_cmd
############################### E-mail Section ################################
:e-mail
cmd_home
compare_user_misc UM_expert
if_false
menu E-MAIL
end_if
async
print "\r\nE-mail: "
getcmd ?SRFNUKQ\r
logkey
cmdkey ?
compare_user_misc UM_expert
if_true
menu E-MAIL
end_if
end_cmd
cmdkey S
print "\r\nE-mail (User name or number): "
getname 25
compare_str ""
if_true
end_cmd
end_if
compare_str "SYSOP"
if_true
setstr "1"
end_if
mail_send
end_cmd
cmdkey U
print "\r\nE-mail (User name or number): "
getname 25
compare_str ""
if_true
end_cmd
end_if
compare_str "SYSOP"
if_true
setstr "1"
end_if
mail_send_file
end_cmd
cmdkey R
mail_read
end_cmd
cmdkey F
setstr "1"
mail_send_feedback
end_cmd
cmdkey N
no_yes "\r\nAttach a file"
if_true
mail_send_netmail
else
mail_send_netfile
end_if
end_cmd
cmdkey K
mail_read_sent
end_cmd
cmdkey Q
cmd_pop
return
end_cmd
cmd_pop
return
############################ Main Info Section ###############################
:main_info
cmd_home
compare_user_misc UM_expert
if_false
menu MAININFO
end_if
async
print "\r\nInfo: "
getcmd ?QISVY\r
logkey
cmdkey ?
compare_user_misc UM_expert
if_true
menu MAININFO
end_if
end_cmd
cmdkey I
info_system
end_cmd
cmdkey S
info_subboard
end_cmd
cmdkey Y
info_user
end_cmd
cmdkey V
info_version
end_cmd
cmdkey Q
cmd_pop
return
end_cmd
cmd_pop
return
########################### Main Config Section ##############################
:main_cfg
compare_user_misc UM_expert
if_false
menu MAINCFG
end_if
async
print "\r\nConfig: "
getcmd ?QNPIS\r
logkey
cmdkey ?
compare_user_misc UM_expert
if_true
menu MAINCFG
end_if
goto main_cfg
end_cmd
cmdkey N
msg_new_scan_cfg
return
end_cmd
cmdkey S
msg_your_scan_cfg
return
end_cmd
cmdkey P
# msg_ptrs_cfg
msg_post
return
end_cmd
cmdkey I
msg_ptrs_reinit
return
end_cmd
return
########################### File Transfer Section #############################
:file_transfers
compare_ars file_cmds=0
if_true
compare_user_misc UM_ask_nscan
if_true
yes_no "\r\n\r\nSearch all libraries for new files"
if_true
file_new_scan_all
end_if
end_if
end_if
cmd_home
compare_user_misc UM_expert
if_false
cls
menu eob\TRANSFER
end_if
# Update node status
node_action node_xfer
async
inc_file_cmds
# Display main Prompt
print "\r\n� File � "
#compare_ars exempt T
#if_true
# print "@TUSED@"
#else
# print "@TLEFT@"
# end_if
print " (@LN@) @LIB@ (@DN@) @DIR@: "
# Get key (with / extended commands allowed)
compare_user_misc UM_COLDKEYS
if_false
getkeye
else
getstrupr 60
endif
compare_ars RIP
if_true
getlines
end_if
# Do nothing for control keys and space
cmdkey ^@
end_cmd
cmdkey ^M
end_cmd
cmdkey ^S
end_cmd
cmdkey "
end_cmd
# Write command to log file
logkey_comma
# Hitting number changes current sub-board
cmdkey digit
compare_user_misc UM_COLDKEYS
if_false
ungetkey
end_if
file_get_dir_num
end_cmd
# Hitting /number changes current group
cmdkey edigit
compare_user_misc UM_COLDKEYS
if_false
ungetkey
else
shift_str 1
end_if
file_get_lib_num
end_cmd
# Show the key hit
compare_user_misc UM_COLDKEYS
if_false
printkey
endif
# Next directory
cmdkey >
file_directory_up
end_cmd
cmdkey ]
file_directory_up
end_cmd
cmdkey +
file_directory_up
end_cmd
cmdkey =
file_directory_up
end_cmd
# Previous directory
cmdkey <
file_directory_down
end_cmd
cmdkey [
file_directory_down
end_cmd
cmdkey -
file_directory_down
end_cmd
# Next library
cmdkey }
file_library_up
end_cmd
# Previous library
cmdkey {
file_library_down
end_cmd
# String commands start with a semicolon
cmdkey ;
compare_user_misc UM_COLDKEYS
if_true
shift_str 1
else
getstrupr 40
end_if
exec_bin str_cmds
end_cmd
cmdkey Q
cmd_pop
return
end_cmd
cmdkey /!
print "executing uploads.bat externally"
exec "start /m c:\sbbs\exec\upload.bat"
end_cmd
compare_user_misc UM_COLDKEYS
if_false
crlf
end_if
pause_reset
# Menu
cmdkey ?
compare_user_misc UM_expert
if_true
menu TRANSFER
end_if
end_cmd
# Sysop Menu
compare_ars SYSOP
if_true
cmdkey !
menu sysxfer
end_cmd
end_if
# Commands
cmdkey B
file_batch_section
end_cmd
cmdkey C
chat_section
end_cmd
cmdkey D
print "\r\nDownload File(s)\r\n"
file_download_batch
if_true
end_cmd
end_if
getfilespec
if_true
file_download
end_if
end_cmd
cmdkey /D
print "\r\nDownload File(s) from User(s)\r\n"
file_download_user
end_cmd
cmdkey E
print "\r\nList Extended File Information\r\n"
getfilespec
if_true
file_list_extended
end_if
end_cmd
#cmdkey F
# print "\r\nFind Text in File Descriptions (no wildcards)\r\n"
# file_find_text
# end_cmd
cmdkey F
file_find_text_all
end_cmd
cmdkey I
call file_info
end_cmd
cmdkey J
file_select_area
end_cmd
cmdkey L
setstr *.*
file_list
end_cmd
cmdkey /L
nodelist_all
end_cmd
cmdkey N
print "\r\nNew File Scan\r\n"
file_new_scan_all
#file_new_scan
end_cmd
cmdkey /N
file_new_scan_all
end_cmd
cmdkey G
file_download_batch
if_true
end_cmd
end_if
logoff
end_cmd
cmdkey /G
file_download_batch
if_true
end_cmd
end_if
logoff_fast
end_cmd
cmdkey R
print "\r\nRemove/Edit File(s)\r\n"
getfilespec
if_true
file_remove
end_if
end_cmd
cmdkey S
print "\r\nSearch for Filename(s)\r\n"
file_find_name
end_cmd
cmdkey /S
file_find_name_all
end_cmd
cmdkey T
file_temp_section
end_cmd
cmdkey U
print "\r\nUpload File\r\n"
chkfile "..\text\menu\upload.*"
if_true
menu upload
end_if
file_upload
end_cmd
cmdkey /U
print "\r\nUpload File to User\r\n"
file_upload_user
end_cmd
cmdkey V
print "\r\nView File(s)\r\n"
getfilespec
if_true
file_view
end_if
end_cmd
cmdkey Z
print "\r\nUpload File to Sysop\r\n"
file_upload_sysop
end_cmd
cmdkey *
file_show_directories
end_cmd
cmdkey /*
file_show_libraries
end_cmd
cmdkey &
:xfercfg
compare_user_misc UM_expert
if_false
menu XFERCFG
end_if
async
print "\r\nConfig: "
getcmd ?QBEP\r
logkey
cmdkey ?
compare_user_misc UM_expert
if_true
menu XFERCFG
end_if
goto xfercfg
end_cmd
cmdkey P
file_ptrs_cfg
end_cmd
cmdkey B
toggle_user_misc UM_BATCHFLAG
end_cmd
cmdkey E
toggle_user_misc UM_EXTDESC
end_cmd
end_cmd
cmdkey #
print "\r\nType the actual number, not the symbol.\r\n"
end_cmd
cmdkey /#
print "\r\nType the actual number, not the symbol.\r\n"
end_cmd
# fall through
print "\r\nUnrecognized command."
compare_user_misc UM_expert
if_true
print " Hit '?' for a menu."
end_if
crlf
end_cmd
# shouldn't hit next line
print "Problem in command shell you should probably hang up and call back."
pause
goto main
############################ File Info Section ###############################
:file_info
cmd_home
compare_user_misc UM_expert
if_false
menu XFERINFO
end_if
async
print "\r\nInfo: "
getcmd ?TYDUQ\r
logkey
cmdkey ?
compare_user_misc UM_expert
if_true
menu XFERINFO
end_if
end_cmd
cmdkey T
info_xfer_policy
end_cmd
cmdkey Y
info_user
end_cmd
cmdkey D
info_directory
end_cmd
cmdkey U
userlist_dir
end_cmd
cmdkey Q
cmd_pop
return
end_cmd
cmd_pop
return
#end of DEFAULT.SRC
.�.�Ŀ� .�.� �.�..�.� �.-.
� :��:: : : � : � :� ��-.
`�'�_�����`\/'���`�':_:`�'
+o edge of oblivion bbs
telnet://eob_bbs.thebbs.org
... 42? 7 and a half million years and all you can come up with is 42?!
--- MultiMail/MS-DOS v0.35
� Synchronet � ...edge of oblivion eob_bbs.thebbs.org