• command shell probs.

    From -oblivious-@VERT/EOB to Finnigann on Thu Mar 5 18:27:00 2037
    .úø( Finnigann said this to -oblivious- )øú.
    re:hangup problems in the command shell...
    Dunno if this being too snotty... but could we see the code?


    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]:"
    #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