Patch 8.1.1241
Problem:    Ex command info contains confusing information.
Solution:   When using the NOTADR flag use ADDR_OTHER for the address type.
            Cleanup code using NOTADR.  Check for errors in
            create_cmdidxs.vim.  Adjust Makefile to see the errors.
Files:      src/ex_cmds.h, src/ex_docmd.c, src/Makefile,
            src/create_cmdidxs.vim, src/usercmd.c, src/ex_cmds.c,
            src/window.c, src/testdir/test_usercommands.vim


*** ../vim-8.1.1240/src/ex_cmds.h       2019-04-27 20:36:52.530303581 +0200
--- src/ex_cmds.h       2019-05-01 17:44:18.023913397 +0200
***************
*** 28,77 ****
   */
  
  #ifdef RANGE
! # undef RANGE                 /* SASC on Amiga defines it */
  #endif
  
! #define RANGE         0x001   /* allow a linespecs */
! #define BANG          0x002   /* allow a ! after the command name */
! #define EXTRA         0x004   /* allow extra args after command name */
! #define XFILE         0x008   /* expand wildcards in extra part */
! #define NOSPC         0x010   /* no spaces allowed in the extra part */
! #define       DFLALL          0x020   /* default file range is 1,$ */
! #define WHOLEFOLD     0x040   /* extend range to include whole fold also
!                                  when less than two numbers given */
! #define NEEDARG               0x080   /* argument required */
! #define TRLBAR                0x100   /* check for trailing vertical bar */
! #define REGSTR                0x200   /* allow "x for register designation */
! #define COUNT         0x400   /* allow count in argument, after command */
! #define NOTRLCOM      0x800   /* no trailing comment allowed */
! #define ZEROR        0x1000   /* zero line number allowed */
! #define USECTRLV       0x2000 /* do not remove CTRL-V from argument */
! #define NOTADR               0x4000   /* number before command is not an 
address */
! #define EDITCMD              0x8000   /* allow "+command" argument */
! #define BUFNAME             0x10000L  /* accepts buffer name */
! #define BUFUNL              0x20000L  /* accepts unlisted buffer too */
! #define ARGOPT              0x40000L  /* allow "++opt=val" argument */
! #define SBOXOK              0x80000L  /* allowed in the sandbox */
! #define CMDWIN             0x100000L  /* allowed in cmdline window; when 
missing
!                                * disallows editing another buffer when
!                                * curbuf_lock is set */
! #define MODIFY       0x200000L        /* forbidden in non-'modifiable' buffer 
*/
! #define EXFLAGS      0x400000L        /* allow flags after count in argument 
*/
! #define RESTRICT     0x800000L        /* forbidden in restricted mode */
! #define FILES (XFILE | EXTRA) /* multiple extra files allowed */
! #define WORD1 (EXTRA | NOSPC) /* one extra word allowed */
! #define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */
  
! /* values for cmd_addr_type */
! #define ADDR_LINES            0   // buffer line numbers
! #define ADDR_WINDOWS          1   // window number
! #define ADDR_ARGUMENTS                2   // argument number
! #define ADDR_LOADED_BUFFERS   3   // buffer number of loaded buffer
! #define ADDR_BUFFERS          4   // buffer number
! #define ADDR_TABS             5   // tab page number
! #define ADDR_TABS_RELATIVE    6   // Tab page that only relative
! #define ADDR_QUICKFIX         7   // quickfix list entry number
! #define ADDR_OTHER            99  // something else
  
  #ifndef DO_DECLARE_EXCMD
  typedef struct exarg exarg_T;
--- 28,83 ----
   */
  
  #ifdef RANGE
! # undef RANGE                 // SASC on Amiga defines it
  #endif
  
! #define RANGE         0x001   // allow a linespecs
! #define BANG          0x002   // allow a ! after the command name
! #define EXTRA         0x004   // allow extra args after command name
! #define XFILE         0x008   // expand wildcards in extra part
! #define NOSPC         0x010   // no spaces allowed in the extra part
! #define       DFLALL          0x020   // default file range is 1,$
! #define WHOLEFOLD     0x040   // extend range to include whole fold also
!                               // when less than two numbers given
! #define NEEDARG               0x080   // argument required
! #define TRLBAR                0x100   // check for trailing vertical bar
! #define REGSTR                0x200   // allow "x for register designation
! #define COUNT         0x400   // allow count in argument, after command
! #define NOTRLCOM      0x800   // no trailing comment allowed
! #define ZEROR        0x1000   // zero line number allowed
! #define USECTRLV       0x2000 // do not remove CTRL-V from argument
! #define EDITCMD              0x4000   // allow "+command" argument
! #define BUFNAME              0x8000   // accepts buffer name
! #define BUFUNL              0x10000L  // accepts unlisted buffer too
! #define ARGOPT              0x20000L  // allow "++opt=val" argument
! #define SBOXOK              0x40000L  // allowed in the sandbox
! #define CMDWIN              0x80000L  // allowed in cmdline window; when 
missing
!                               // disallows editing another buffer when
!                               // curbuf_lock is set
! #define MODIFY       0x100000L        // forbidden in non-'modifiable' buffer
! #define EXFLAGS      0x200000L        // allow flags after count in argument
! #define RESTRICT     0x400000L        // forbidden in restricted mode
! #define FILES (XFILE | EXTRA) // multiple extra files allowed
! #define WORD1 (EXTRA | NOSPC) // one extra word allowed
! #define FILE1 (FILES | NOSPC) // 1 file allowed, defaults to current file
  
! #ifndef DO_DECLARE_EXCMD
! /*
!  * values for cmd_addr_type
!  */
! typedef enum {
!     ADDR_LINES,                // buffer line numbers
!     ADDR_WINDOWS,      // window number
!     ADDR_ARGUMENTS,    // argument number
!     ADDR_LOADED_BUFFERS, // buffer number of loaded buffer
!     ADDR_BUFFERS,      // buffer number
!     ADDR_TABS,                 // tab page number
!     ADDR_TABS_RELATIVE,        // Tab page that only relative
!     ADDR_QUICKFIX,     // quickfix list entry number
!     ADDR_OTHER,                // something else
!     ADDR_NONE          // no range used
! } cmd_addr_T;
! #endif
  
  #ifndef DO_DECLARE_EXCMD
  typedef struct exarg exarg_T;
***************
*** 95,104 ****
  
  static struct cmdname
  {
!     char_u    *cmd_name;      /* name of the command */
!     ex_func_T   cmd_func;     /* function for this command */
!     long_u    cmd_argt;       /* flags declared above */
!     int               cmd_addr_type;  /* flag for address type */
  } cmdnames[] =
  #else
  # define EX(a, b, c, d, e)  a
--- 101,110 ----
  
  static struct cmdname
  {
!     char_u    *cmd_name;      // name of the command
!     ex_func_T   cmd_func;     // function for this command
!     long_u    cmd_argt;       // flags declared above
!     cmd_addr_T        cmd_addr_type;  // flag for address type
  } cmdnames[] =
  #else
  # define EX(a, b, c, d, e)  a
***************
*** 110,464 ****
                        ADDR_LINES),
  EX(CMD_abbreviate,    "abbreviate",   ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_abclear,               "abclear",      ex_abclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_aboveleft,     "aboveleft",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_all,           "all",          ex_all,
!                       BANG|RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_amenu,         "amenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_anoremenu,     "anoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_args,          "args",         ex_args,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_argadd,                "argadd",       ex_argadd,
!                       BANG|RANGE|NOTADR|ZEROR|FILES|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_argdelete,     "argdelete",    ex_argdelete,
!                       BANG|RANGE|NOTADR|FILES|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_argdo,         "argdo",        ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_ARGUMENTS),
  EX(CMD_argedit,               "argedit",      ex_argedit,
!                       
BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_argglobal,     "argglobal",    ex_args,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_arglocal,      "arglocal",     ex_args,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_argument,      "argument",     ex_argument,
!                       BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_ascii,         "ascii",        do_ascii,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_autocmd,               "autocmd",      ex_autocmd,
                        BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_augroup,               "augroup",      ex_autocmd,
                        BANG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_aunmenu,               "aunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_buffer,                "buffer",       ex_buffer,
!                       
BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_bNext,         "bNext",        ex_bprevious,
!                       BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_ball,          "ball",         ex_buffer_all,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_badd,          "badd",         ex_edit,
                        NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_bdelete,               "bdelete",      ex_bunload,
!                       BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_behave,                "behave",       ex_behave,
                        BANG|NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_belowright,    "belowright",   ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_bfirst,                "bfirst",       ex_brewind,
!                       BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_blast,         "blast",        ex_blast,
!                       BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_bmodified,     "bmodified",    ex_bmodified,
!                       BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_bnext,         "bnext",        ex_bnext,
!                       BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_botright,      "botright",     ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_bprevious,     "bprevious",    ex_bprevious,
!                       BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_brewind,               "brewind",      ex_brewind,
!                       BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_break,         "break",        ex_break,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_breakadd,      "breakadd",     ex_breakadd,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_breakdel,      "breakdel",     ex_breakdel,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_breaklist,     "breaklist",    ex_breaklist,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_browse,                "browse",       ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_buffers,               "buffers",      buflist_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_bufdo,         "bufdo",        ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_BUFFERS),
  EX(CMD_bunload,               "bunload",      ex_bunload,
!                       BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
                        ADDR_LOADED_BUFFERS),
  EX(CMD_bwipeout,      "bwipeout",     ex_bunload,
!                       BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_change,                "change",       ex_change,
                        BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_cNext,         "cNext",        ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cNfile,                "cNfile",       ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cabbrev,               "cabbrev",      ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cabclear,      "cabclear",     ex_abclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_caddbuffer,    "caddbuffer",   ex_cbuffer,
!                       RANGE|NOTADR|WORD1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_caddexpr,      "caddexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_caddfile,      "caddfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_LINES),
  EX(CMD_call,          "call",         ex_call,
                        RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
                        ADDR_LINES),
  EX(CMD_catch,         "catch",        ex_catch,
                        EXTRA|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cbuffer,               "cbuffer",      ex_cbuffer,
!                       BANG|RANGE|NOTADR|WORD1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_cbottom,               "cbottom",      ex_cbottom,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_cc,            "cc",           ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cclose,                "cclose",       ex_cclose,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_cd,            "cd",           ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cdo,           "cdo",          ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_center,                "center",       ex_align,
                        TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_cexpr,         "cexpr",        ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cfile,         "cfile",        ex_cfile,
                        TRLBAR|FILE1|BANG,
!                       ADDR_LINES),
  EX(CMD_cfdo,          "cfdo",         ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_cfirst,                "cfirst",       ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cgetfile,      "cgetfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_LINES),
  EX(CMD_cgetbuffer,    "cgetbuffer",   ex_cbuffer,
!                       RANGE|NOTADR|WORD1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_cgetexpr,      "cgetexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_chdir,         "chdir",        ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_changes,               "changes",      ex_changes,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_checkpath,     "checkpath",    ex_checkpath,
                        TRLBAR|BANG|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_checktime,     "checktime",    ex_checktime,
!                       RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_chistory,      "chistory",     qf_history,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_clist,         "clist",        qf_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_clast,         "clast",        ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_close,         "close",        ex_close,
!                       BANG|RANGE|NOTADR|COUNT|TRLBAR|CMDWIN,
                        ADDR_WINDOWS),
  EX(CMD_clearjumps,    "clearjumps",   ex_clearjumps,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cmap,          "cmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cmapclear,     "cmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cmenu,         "cmenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cnext,         "cnext",        ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cnewer,                "cnewer",       qf_age,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_cnfile,                "cnfile",       ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cnoremap,      "cnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cnoreabbrev,   "cnoreabbrev",  ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cnoremenu,     "cnoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_copy,          "copy",         ex_copymove,
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_colder,                "colder",       qf_age,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_colorscheme,   "colorscheme",  ex_colorscheme,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_command,               "command",      ex_command,
                        EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_comclear,      "comclear",     ex_comclear,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_compiler,      "compiler",     ex_compiler,
                        BANG|TRLBAR|WORD1|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_continue,      "continue",     ex_continue,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_confirm,               "confirm",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_copen,         "copen",        ex_copen,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_cprevious,     "cprevious",    ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cpfile,                "cpfile",       ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cquit,         "cquit",        ex_cquit,
                        TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_crewind,               "crewind",      ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_cscope,                "cscope",       ex_cscope,
                        EXTRA|NOTRLCOM|XFILE,
!                       ADDR_LINES),
  EX(CMD_cstag,         "cstag",        ex_cstag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_LINES),
  EX(CMD_cunmap,                "cunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cunabbrev,     "cunabbrev",    ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cunmenu,               "cunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_cwindow,               "cwindow",      ex_cwindow,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_delete,                "delete",       ex_operators,
                        RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_delmarks,      "delmarks",     ex_delmarks,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_debug,         "debug",        ex_debug,
                        NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_debuggreedy,   "debuggreedy",  ex_debuggreedy,
!                       RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_delcommand,    "delcommand",   ex_delcommand,
                        NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_delfunction,   "delfunction",  ex_delfunction,
                        BANG|NEEDARG|WORD1|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_display,               "display",      ex_display,
                        EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_diffupdate,    "diffupdate",   ex_diffupdate,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_diffget,               "diffget",      ex_diffgetput,
                        RANGE|EXTRA|TRLBAR|MODIFY,
                        ADDR_LINES),
  EX(CMD_diffoff,               "diffoff",      ex_diffoff,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_diffpatch,     "diffpatch",    ex_diffpatch,
                        EXTRA|FILE1|TRLBAR|MODIFY,
!                       ADDR_LINES),
  EX(CMD_diffput,               "diffput",      ex_diffgetput,
                        RANGE|EXTRA|TRLBAR,
                        ADDR_LINES),
  EX(CMD_diffsplit,     "diffsplit",    ex_diffsplit,
                        EXTRA|FILE1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_diffthis,      "diffthis",     ex_diffthis,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_digraphs,      "digraphs",     ex_digraphs,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_djump,         "djump",        ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
                        ADDR_LINES),
--- 116,470 ----
                        ADDR_LINES),
  EX(CMD_abbreviate,    "abbreviate",   ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_abclear,               "abclear",      ex_abclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_aboveleft,     "aboveleft",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_all,           "all",          ex_all,
!                       BANG|RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_amenu,         "amenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_anoremenu,     "anoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_args,          "args",         ex_args,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_argadd,                "argadd",       ex_argadd,
!                       BANG|RANGE|ZEROR|FILES|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_argdelete,     "argdelete",    ex_argdelete,
!                       BANG|RANGE|FILES|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_argdo,         "argdo",        ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_ARGUMENTS),
  EX(CMD_argedit,               "argedit",      ex_argedit,
!                       BANG|NEEDARG|RANGE|ZEROR|FILES|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_argglobal,     "argglobal",    ex_args,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_arglocal,      "arglocal",     ex_args,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_argument,      "argument",     ex_argument,
!                       BANG|RANGE|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_ascii,         "ascii",        do_ascii,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_autocmd,               "autocmd",      ex_autocmd,
                        BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_augroup,               "augroup",      ex_autocmd,
                        BANG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_aunmenu,               "aunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_buffer,                "buffer",       ex_buffer,
!                       BANG|RANGE|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_bNext,         "bNext",        ex_bprevious,
!                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_ball,          "ball",         ex_buffer_all,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_badd,          "badd",         ex_edit,
                        NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_bdelete,               "bdelete",      ex_bunload,
!                       BANG|RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_behave,                "behave",       ex_behave,
                        BANG|NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_belowright,    "belowright",   ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_bfirst,                "bfirst",       ex_brewind,
!                       BANG|RANGE|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_blast,         "blast",        ex_blast,
!                       BANG|RANGE|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_bmodified,     "bmodified",    ex_bmodified,
!                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_bnext,         "bnext",        ex_bnext,
!                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_botright,      "botright",     ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_bprevious,     "bprevious",    ex_bprevious,
!                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_brewind,               "brewind",      ex_brewind,
!                       BANG|RANGE|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_break,         "break",        ex_break,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_breakadd,      "breakadd",     ex_breakadd,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_breakdel,      "breakdel",     ex_breakdel,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_breaklist,     "breaklist",    ex_breaklist,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_browse,                "browse",       ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_buffers,               "buffers",      buflist_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_bufdo,         "bufdo",        ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_BUFFERS),
  EX(CMD_bunload,               "bunload",      ex_bunload,
!                       BANG|RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
                        ADDR_LOADED_BUFFERS),
  EX(CMD_bwipeout,      "bwipeout",     ex_bunload,
!                       BANG|RANGE|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_change,                "change",       ex_change,
                        BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_cNext,         "cNext",        ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cNfile,                "cNfile",       ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cabbrev,               "cabbrev",      ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cabclear,      "cabclear",     ex_abclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_caddbuffer,    "caddbuffer",   ex_cbuffer,
!                       RANGE|WORD1|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_caddexpr,      "caddexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_caddfile,      "caddfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_NONE),
  EX(CMD_call,          "call",         ex_call,
                        RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
                        ADDR_LINES),
  EX(CMD_catch,         "catch",        ex_catch,
                        EXTRA|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cbuffer,               "cbuffer",      ex_cbuffer,
!                       BANG|RANGE|WORD1|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_cbottom,               "cbottom",      ex_cbottom,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_cc,            "cc",           ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cclose,                "cclose",       ex_cclose,
!                       TRLBAR,
!                       ADDR_NONE),
  EX(CMD_cd,            "cd",           ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cdo,           "cdo",          ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_center,                "center",       ex_align,
                        TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_cexpr,         "cexpr",        ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
!                       ADDR_NONE),
  EX(CMD_cfile,         "cfile",        ex_cfile,
                        TRLBAR|FILE1|BANG,
!                       ADDR_NONE),
  EX(CMD_cfdo,          "cfdo",         ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_cfirst,                "cfirst",       ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cgetfile,      "cgetfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_NONE),
  EX(CMD_cgetbuffer,    "cgetbuffer",   ex_cbuffer,
!                       RANGE|WORD1|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_cgetexpr,      "cgetexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_chdir,         "chdir",        ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_changes,               "changes",      ex_changes,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_checkpath,     "checkpath",    ex_checkpath,
                        TRLBAR|BANG|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_checktime,     "checktime",    ex_checktime,
!                       RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_chistory,      "chistory",     qf_history,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_clist,         "clist",        qf_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_clast,         "clast",        ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_close,         "close",        ex_close,
!                       BANG|RANGE|COUNT|TRLBAR|CMDWIN,
                        ADDR_WINDOWS),
  EX(CMD_clearjumps,    "clearjumps",   ex_clearjumps,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cmap,          "cmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cmapclear,     "cmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cmenu,         "cmenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_cnext,         "cnext",        ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cnewer,                "cnewer",       qf_age,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_cnfile,                "cnfile",       ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cnoremap,      "cnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cnoreabbrev,   "cnoreabbrev",  ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cnoremenu,     "cnoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_copy,          "copy",         ex_copymove,
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_colder,                "colder",       qf_age,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_colorscheme,   "colorscheme",  ex_colorscheme,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_command,               "command",      ex_command,
                        EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_comclear,      "comclear",     ex_comclear,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_compiler,      "compiler",     ex_compiler,
                        BANG|TRLBAR|WORD1|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_continue,      "continue",     ex_continue,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_confirm,               "confirm",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_copen,         "copen",        ex_copen,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_cprevious,     "cprevious",    ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cpfile,                "cpfile",       ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cquit,         "cquit",        ex_cquit,
                        TRLBAR|BANG,
!                       ADDR_NONE),
  EX(CMD_crewind,               "crewind",      ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_cscope,                "cscope",       ex_cscope,
                        EXTRA|NOTRLCOM|XFILE,
!                       ADDR_NONE),
  EX(CMD_cstag,         "cstag",        ex_cstag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_NONE),
  EX(CMD_cunmap,                "cunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cunabbrev,     "cunabbrev",    ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cunmenu,               "cunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_cwindow,               "cwindow",      ex_cwindow,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_delete,                "delete",       ex_operators,
                        RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_delmarks,      "delmarks",     ex_delmarks,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_debug,         "debug",        ex_debug,
                        NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_debuggreedy,   "debuggreedy",  ex_debuggreedy,
!                       RANGE|ZEROR|TRLBAR|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_delcommand,    "delcommand",   ex_delcommand,
                        NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_delfunction,   "delfunction",  ex_delfunction,
                        BANG|NEEDARG|WORD1|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_display,               "display",      ex_display,
                        EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_diffupdate,    "diffupdate",   ex_diffupdate,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_diffget,               "diffget",      ex_diffgetput,
                        RANGE|EXTRA|TRLBAR|MODIFY,
                        ADDR_LINES),
  EX(CMD_diffoff,               "diffoff",      ex_diffoff,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_diffpatch,     "diffpatch",    ex_diffpatch,
                        EXTRA|FILE1|TRLBAR|MODIFY,
!                       ADDR_NONE),
  EX(CMD_diffput,               "diffput",      ex_diffgetput,
                        RANGE|EXTRA|TRLBAR,
                        ADDR_LINES),
  EX(CMD_diffsplit,     "diffsplit",    ex_diffsplit,
                        EXTRA|FILE1|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_diffthis,      "diffthis",     ex_diffthis,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_digraphs,      "digraphs",     ex_digraphs,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_djump,         "djump",        ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
                        ADDR_LINES),
***************
*** 467,479 ****
                        ADDR_LINES),
  EX(CMD_doautocmd,     "doautocmd",    ex_doautocmd,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_doautoall,     "doautoall",    ex_doautoall,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_drop,          "drop",         ex_drop,
                        FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_dsearch,               "dsearch",      ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
--- 473,485 ----
                        ADDR_LINES),
  EX(CMD_doautocmd,     "doautocmd",    ex_doautocmd,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_doautoall,     "doautoall",    ex_doautoall,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_drop,          "drop",         ex_drop,
                        FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_dsearch,               "dsearch",      ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
***************
*** 482,572 ****
                        ADDR_LINES),
  EX(CMD_edit,          "edit",         ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_earlier,               "earlier",      ex_later,
                        TRLBAR|EXTRA|NOSPC|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_echo,          "echo",         ex_echo,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_echoerr,               "echoerr",      ex_execute,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_echohl,                "echohl",       ex_echohl,
                        EXTRA|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_echomsg,               "echomsg",      ex_execute,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_echon,         "echon",        ex_echo,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_else,          "else",         ex_else,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_elseif,                "elseif",       ex_else,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_emenu,         "emenu",        ex_emenu,
!                       NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_endif,         "endif",        ex_endif,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_endfunction,   "endfunction",  ex_endfunction,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_endfor,                "endfor",       ex_endwhile,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_endtry,                "endtry",       ex_endtry,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_endwhile,      "endwhile",     ex_endwhile,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_enew,          "enew",         ex_edit,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_ex,            "ex",           ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_execute,               "execute",      ex_execute,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_exit,          "exit",         ex_exit,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_exusage,               "exusage",      ex_exusage,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_file,          "file",         ex_file,
!                       RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_files,         "files",        buflist_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_filetype,      "filetype",     ex_filetype,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_filter,                "filter",       ex_wrongmodifier,
                        BANG|NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_find,          "find",         ex_find,
!                       RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_finally,               "finally",      ex_finally,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_finish,                "finish",       ex_finish,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_first,         "first",        ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_fixdel,                "fixdel",       do_fixdel,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_fold,          "fold",         ex_fold,
                        RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
                        ADDR_LINES),
--- 488,578 ----
                        ADDR_LINES),
  EX(CMD_edit,          "edit",         ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_earlier,               "earlier",      ex_later,
                        TRLBAR|EXTRA|NOSPC|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_echo,          "echo",         ex_echo,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_echoerr,               "echoerr",      ex_execute,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_echohl,                "echohl",       ex_echohl,
                        EXTRA|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_echomsg,               "echomsg",      ex_execute,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_echon,         "echon",        ex_echo,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_else,          "else",         ex_else,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_elseif,                "elseif",       ex_else,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_emenu,         "emenu",        ex_emenu,
!                       NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_endif,         "endif",        ex_endif,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_endfunction,   "endfunction",  ex_endfunction,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_endfor,                "endfor",       ex_endwhile,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_endtry,                "endtry",       ex_endtry,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_endwhile,      "endwhile",     ex_endwhile,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_enew,          "enew",         ex_edit,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_ex,            "ex",           ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_execute,               "execute",      ex_execute,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_exit,          "exit",         ex_exit,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_exusage,               "exusage",      ex_exusage,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_file,          "file",         ex_file,
!                       RANGE|ZEROR|BANG|FILE1|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_files,         "files",        buflist_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_filetype,      "filetype",     ex_filetype,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_filter,                "filter",       ex_wrongmodifier,
                        BANG|NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_find,          "find",         ex_find,
!                       RANGE|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_finally,               "finally",      ex_finally,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_finish,                "finish",       ex_finish,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_first,         "first",        ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_fixdel,                "fixdel",       do_fixdel,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_fold,          "fold",         ex_fold,
                        RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
                        ADDR_LINES),
***************
*** 584,650 ****
                        ADDR_LINES),
  EX(CMD_for,           "for",          ex_while,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_function,      "function",     ex_function,
                        EXTRA|BANG|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_global,                "global",       ex_global,
                        RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN,
                        ADDR_LINES),
  EX(CMD_goto,          "goto",         ex_goto,
!                       RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_grep,          "grep",         ex_make,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_grepadd,               "grepadd",      ex_make,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_gui,           "gui",          ex_gui,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_gvim,          "gvim",         ex_gui,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_help,          "help",         ex_help,
                        BANG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_helpclose,     "helpclose",    ex_helpclose,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_helpfind,      "helpfind",     ex_helpfind,
                        EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_helpgrep,      "helpgrep",     ex_helpgrep,
                        EXTRA|NOTRLCOM|NEEDARG,
!                       ADDR_LINES),
  EX(CMD_helptags,      "helptags",     ex_helptags,
                        NEEDARG|FILES|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_hardcopy,      "hardcopy",     ex_hardcopy,
                        RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG,
                        ADDR_LINES),
  EX(CMD_highlight,     "highlight",    ex_highlight,
                        BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_hide,          "hide",         ex_hide,
!                       BANG|RANGE|NOTADR|COUNT|EXTRA|TRLBAR,
                        ADDR_WINDOWS),
  EX(CMD_history,               "history",      ex_history,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_insert,                "insert",       ex_append,
                        BANG|RANGE|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_iabbrev,               "iabbrev",      ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_iabclear,      "iabclear",     ex_abclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_if,            "if",           ex_if,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_ijump,         "ijump",        ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
                        ADDR_LINES),
--- 590,656 ----
                        ADDR_LINES),
  EX(CMD_for,           "for",          ex_while,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_function,      "function",     ex_function,
                        EXTRA|BANG|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_global,                "global",       ex_global,
                        RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN,
                        ADDR_LINES),
  EX(CMD_goto,          "goto",         ex_goto,
!                       RANGE|COUNT|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_grep,          "grep",         ex_make,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_grepadd,               "grepadd",      ex_make,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_gui,           "gui",          ex_gui,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_gvim,          "gvim",         ex_gui,
                        BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_help,          "help",         ex_help,
                        BANG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_helpclose,     "helpclose",    ex_helpclose,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_helpfind,      "helpfind",     ex_helpfind,
                        EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_helpgrep,      "helpgrep",     ex_helpgrep,
                        EXTRA|NOTRLCOM|NEEDARG,
!                       ADDR_NONE),
  EX(CMD_helptags,      "helptags",     ex_helptags,
                        NEEDARG|FILES|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_hardcopy,      "hardcopy",     ex_hardcopy,
                        RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG,
                        ADDR_LINES),
  EX(CMD_highlight,     "highlight",    ex_highlight,
                        BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_hide,          "hide",         ex_hide,
!                       BANG|RANGE|COUNT|EXTRA|TRLBAR,
                        ADDR_WINDOWS),
  EX(CMD_history,               "history",      ex_history,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_insert,                "insert",       ex_append,
                        BANG|RANGE|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_iabbrev,               "iabbrev",      ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_iabclear,      "iabclear",     ex_abclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_if,            "if",           ex_if,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_ijump,         "ijump",        ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
                        ADDR_LINES),
***************
*** 653,677 ****
                        ADDR_LINES),
  EX(CMD_imap,          "imap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_imapclear,     "imapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_imenu,         "imenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_inoremap,      "inoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_inoreabbrev,   "inoreabbrev",  ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_inoremenu,     "inoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_intro,         "intro",        ex_intro,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_isearch,               "isearch",      ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
--- 659,683 ----
                        ADDR_LINES),
  EX(CMD_imap,          "imap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_imapclear,     "imapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_imenu,         "imenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_inoremap,      "inoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_inoreabbrev,   "inoreabbrev",  ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_inoremenu,     "inoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_intro,         "intro",        ex_intro,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_isearch,               "isearch",      ex_findpat,
                        BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
***************
*** 680,866 ****
                        ADDR_LINES),
  EX(CMD_iunmap,                "iunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_iunabbrev,     "iunabbrev",    ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_iunmenu,               "iunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_join,          "join",         ex_join,
                        BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_jumps,         "jumps",        ex_jumps,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_k,             "k",            ex_mark,
                        RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
                        ADDR_LINES),
  EX(CMD_keepmarks,     "keepmarks",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_keepjumps,     "keepjumps",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_keeppatterns,  "keeppatterns", ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_keepalt,               "keepalt",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_list,          "list",         ex_print,
                        RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_lNext,         "lNext",        ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_lNfile,                "lNfile",       ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_last,          "last",         ex_last,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_language,      "language",     ex_language,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_laddexpr,      "laddexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_laddbuffer,    "laddbuffer",   ex_cbuffer,
!                       RANGE|NOTADR|WORD1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_laddfile,      "laddfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_LINES),
  EX(CMD_later,         "later",        ex_later,
                        TRLBAR|EXTRA|NOSPC|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lbuffer,               "lbuffer",      ex_cbuffer,
!                       BANG|RANGE|NOTADR|WORD1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lbottom,               "lbottom",      ex_cbottom,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lcd,           "lcd",          ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lchdir,                "lchdir",       ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lclose,                "lclose",       ex_cclose,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lcscope,               "lcscope",      ex_cscope,
                        EXTRA|NOTRLCOM|XFILE,
!                       ADDR_LINES),
  EX(CMD_ldo,           "ldo",          ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_left,          "left",         ex_align,
                        TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_leftabove,     "leftabove",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_let,           "let",          ex_let,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lexpr,         "lexpr",        ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_lfile,         "lfile",        ex_cfile,
                        TRLBAR|FILE1|BANG,
!                       ADDR_LINES),
  EX(CMD_lfdo,          "lfdo",         ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_lfirst,                "lfirst",       ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_lgetfile,      "lgetfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_LINES),
  EX(CMD_lgetbuffer,    "lgetbuffer",   ex_cbuffer,
!                       RANGE|NOTADR|WORD1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lgetexpr,      "lgetexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lgrep,         "lgrep",        ex_make,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_lgrepadd,      "lgrepadd",     ex_make,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_lhelpgrep,     "lhelpgrep",    ex_helpgrep,
                        EXTRA|NOTRLCOM|NEEDARG,
!                       ADDR_LINES),
  EX(CMD_lhistory,      "lhistory",     qf_history,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_ll,            "ll",           ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_llast,         "llast",        ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_llist,         "llist",        qf_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lmap,          "lmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lmapclear,     "lmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lmake,         "lmake",        ex_make,
                        BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_lnoremap,      "lnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lnext,         "lnext",        ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_lnewer,                "lnewer",       qf_age,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lnfile,                "lnfile",       ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_loadview,      "loadview",     ex_loadview,
                        FILE1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_loadkeymap,    "loadkeymap",   ex_loadkeymap,
                        CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lockmarks,     "lockmarks",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_lockvar,               "lockvar",      ex_lockvar,
                        BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lolder,                "lolder",       qf_age,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lopen,         "lopen",        ex_copen,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_lprevious,     "lprevious",    ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_lpfile,                "lpfile",       ex_cnext,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_lrewind,               "lrewind",      ex_cc,
!                       RANGE|NOTADR|COUNT|TRLBAR|BANG,
!                       ADDR_LINES),
  EX(CMD_ltag,          "ltag", ex_tag,
!                       NOTADR|TRLBAR|BANG|WORD1,
!                       ADDR_LINES),
  EX(CMD_lunmap,                "lunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_lua,           "lua",          ex_lua,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
--- 686,872 ----
                        ADDR_LINES),
  EX(CMD_iunmap,                "iunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_iunabbrev,     "iunabbrev",    ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_iunmenu,               "iunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_join,          "join",         ex_join,
                        BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_jumps,         "jumps",        ex_jumps,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_k,             "k",            ex_mark,
                        RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
                        ADDR_LINES),
  EX(CMD_keepmarks,     "keepmarks",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_keepjumps,     "keepjumps",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_keeppatterns,  "keeppatterns", ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_keepalt,               "keepalt",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_list,          "list",         ex_print,
                        RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_lNext,         "lNext",        ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_lNfile,                "lNfile",       ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_last,          "last",         ex_last,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_language,      "language",     ex_language,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_laddexpr,      "laddexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_laddbuffer,    "laddbuffer",   ex_cbuffer,
!                       RANGE|WORD1|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_laddfile,      "laddfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_NONE),
  EX(CMD_later,         "later",        ex_later,
                        TRLBAR|EXTRA|NOSPC|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lbuffer,               "lbuffer",      ex_cbuffer,
!                       BANG|RANGE|WORD1|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_lbottom,               "lbottom",      ex_cbottom,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_lcd,           "lcd",          ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lchdir,                "lchdir",       ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lclose,                "lclose",       ex_cclose,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_lcscope,               "lcscope",      ex_cscope,
                        EXTRA|NOTRLCOM|XFILE,
!                       ADDR_NONE),
  EX(CMD_ldo,           "ldo",          ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_left,          "left",         ex_align,
                        TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_leftabove,     "leftabove",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_let,           "let",          ex_let,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lexpr,         "lexpr",        ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
!                       ADDR_NONE),
  EX(CMD_lfile,         "lfile",        ex_cfile,
                        TRLBAR|FILE1|BANG,
!                       ADDR_NONE),
  EX(CMD_lfdo,          "lfdo",         ex_listdo,
!                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_QUICKFIX),
  EX(CMD_lfirst,                "lfirst",       ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_lgetfile,      "lgetfile",     ex_cfile,
                        TRLBAR|FILE1,
!                       ADDR_NONE),
  EX(CMD_lgetbuffer,    "lgetbuffer",   ex_cbuffer,
!                       RANGE|WORD1|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_lgetexpr,      "lgetexpr",     ex_cexpr,
                        NEEDARG|WORD1|NOTRLCOM|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_lgrep,         "lgrep",        ex_make,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_lgrepadd,      "lgrepadd",     ex_make,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_lhelpgrep,     "lhelpgrep",    ex_helpgrep,
                        EXTRA|NOTRLCOM|NEEDARG,
!                       ADDR_NONE),
  EX(CMD_lhistory,      "lhistory",     qf_history,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_ll,            "ll",           ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_llast,         "llast",        ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_llist,         "llist",        qf_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lmap,          "lmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lmapclear,     "lmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lmake,         "lmake",        ex_make,
                        BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_NONE),
  EX(CMD_lnoremap,      "lnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lnext,         "lnext",        ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_lnewer,                "lnewer",       qf_age,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_lnfile,                "lnfile",       ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_loadview,      "loadview",     ex_loadview,
                        FILE1|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_loadkeymap,    "loadkeymap",   ex_loadkeymap,
                        CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lockmarks,     "lockmarks",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_lockvar,               "lockvar",      ex_lockvar,
                        BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lolder,                "lolder",       qf_age,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_lopen,         "lopen",        ex_copen,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_lprevious,     "lprevious",    ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_lpfile,                "lpfile",       ex_cnext,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_lrewind,               "lrewind",      ex_cc,
!                       RANGE|COUNT|TRLBAR|BANG,
!                       ADDR_OTHER),
  EX(CMD_ltag,          "ltag", ex_tag,
!                       TRLBAR|BANG|WORD1,
!                       ADDR_NONE),
  EX(CMD_lunmap,                "lunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_lua,           "lua",          ex_lua,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
***************
*** 871,887 ****
                        RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
  EX(CMD_lvimgrep,      "lvimgrep",     ex_vimgrep,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_lvimgrepadd,   "lvimgrepadd",  ex_vimgrep,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_lwindow,               "lwindow",      ex_cwindow,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_ls,            "ls",           buflist_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_move,          "move",         ex_copymove,
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
--- 877,893 ----
                        RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
  EX(CMD_lvimgrep,      "lvimgrep",     ex_vimgrep,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_lvimgrepadd,   "lvimgrepadd",  ex_vimgrep,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_lwindow,               "lwindow",      ex_cwindow,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_ls,            "ls",           buflist_list,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_move,          "move",         ex_copymove,
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
***************
*** 890,935 ****
                        ADDR_LINES),
  EX(CMD_make,          "make",         ex_make,
                        BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_map,           "map",          ex_map,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_mapclear,      "mapclear",     ex_mapclear,
                        EXTRA|BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_marks,         "marks",        do_marks,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_match,         "match",        ex_match,
!                       RANGE|NOTADR|EXTRA|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_menu,          "menu",         ex_menu,
!                       
RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_menutranslate, "menutranslate", ex_menutranslate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_messages,      "messages",     ex_messages,
                        EXTRA|TRLBAR|RANGE|CMDWIN,
                        ADDR_OTHER),
  EX(CMD_mkexrc,                "mkexrc",       ex_mkrc,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_mksession,     "mksession",    ex_mkrc,
                        BANG|FILE1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_mkspell,               "mkspell",      ex_mkspell,
                        BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_mkvimrc,               "mkvimrc",      ex_mkrc,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_mkview,                "mkview",       ex_mkrc,
                        BANG|FILE1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_mode,          "mode",         ex_mode,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_mzscheme,      "mzscheme",     ex_mzscheme,
                        RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK|RESTRICT,
                        ADDR_LINES),
--- 896,941 ----
                        ADDR_LINES),
  EX(CMD_make,          "make",         ex_make,
                        BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_NONE),
  EX(CMD_map,           "map",          ex_map,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_mapclear,      "mapclear",     ex_mapclear,
                        EXTRA|BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_marks,         "marks",        do_marks,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_match,         "match",        ex_match,
!                       RANGE|EXTRA|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_menu,          "menu",         ex_menu,
!                       RANGE|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_menutranslate, "menutranslate", ex_menutranslate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_messages,      "messages",     ex_messages,
                        EXTRA|TRLBAR|RANGE|CMDWIN,
                        ADDR_OTHER),
  EX(CMD_mkexrc,                "mkexrc",       ex_mkrc,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_mksession,     "mksession",    ex_mkrc,
                        BANG|FILE1|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_mkspell,               "mkspell",      ex_mkspell,
                        BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_NONE),
  EX(CMD_mkvimrc,               "mkvimrc",      ex_mkrc,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_mkview,                "mkview",       ex_mkrc,
                        BANG|FILE1|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_mode,          "mode",         ex_mode,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_mzscheme,      "mzscheme",     ex_mzscheme,
                        RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK|RESTRICT,
                        ADDR_LINES),
***************
*** 937,989 ****
                        RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
  EX(CMD_next,          "next",         ex_next,
!                       RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_nbkey,         "nbkey",        ex_nbkey,
!                       EXTRA|NOTADR|NEEDARG,
!                       ADDR_LINES),
  EX(CMD_nbclose,               "nbclose",      ex_nbclose,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_nbstart,               "nbstart",      ex_nbstart,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_new,           "new",          ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_nmap,          "nmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_nmapclear,     "nmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_nmenu,         "nmenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_nnoremap,      "nnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_nnoremenu,     "nnoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_noremap,               "noremap",      ex_map,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_noautocmd,     "noautocmd",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_nohlsearch,    "nohlsearch",   ex_nohlsearch,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_noreabbrev,    "noreabbrev",   ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_noremenu,      "noremenu",     ex_menu,
!                       
RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_noswapfile,    "noswapfile",   ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_normal,                "normal",       ex_normal,
                        
RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN,
                        ADDR_LINES),
--- 943,995 ----
                        RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
  EX(CMD_next,          "next",         ex_next,
!                       RANGE|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_nbkey,         "nbkey",        ex_nbkey,
!                       EXTRA|NEEDARG,
!                       ADDR_NONE),
  EX(CMD_nbclose,               "nbclose",      ex_nbclose,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_nbstart,               "nbstart",      ex_nbstart,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_new,           "new",          ex_splitview,
!                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_nmap,          "nmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_nmapclear,     "nmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_nmenu,         "nmenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_nnoremap,      "nnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_nnoremenu,     "nnoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_noremap,               "noremap",      ex_map,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_noautocmd,     "noautocmd",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_nohlsearch,    "nohlsearch",   ex_nohlsearch,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_noreabbrev,    "noreabbrev",   ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_noremenu,      "noremenu",     ex_menu,
!                       RANGE|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_noswapfile,    "noswapfile",   ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_normal,                "normal",       ex_normal,
                        
RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN,
                        ADDR_LINES),
***************
*** 992,1049 ****
                        ADDR_LINES),
  EX(CMD_nunmap,                "nunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_nunmenu,               "nunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_open,          "open",         ex_open,
                        RANGE|BANG|EXTRA,
                        ADDR_LINES),
  EX(CMD_oldfiles,      "oldfiles",     ex_oldfiles,
                        BANG|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_omap,          "omap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_omapclear,     "omapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_omenu,         "omenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_only,          "only",         ex_only,
!                       BANG|NOTADR|RANGE|COUNT|TRLBAR,
                        ADDR_WINDOWS),
  EX(CMD_onoremap,      "onoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_onoremenu,     "onoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_options,               "options",      ex_options,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_ounmap,                "ounmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_ounmenu,               "ounmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_ownsyntax,     "ownsyntax",    ex_ownsyntax,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_print,         "print",        ex_print,
                        RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK,
                        ADDR_LINES),
  EX(CMD_packadd,               "packadd",      ex_packadd,
                        BANG|FILE1|NEEDARG|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_packloadall,   "packloadall",  ex_packloadall,
                        BANG|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_pclose,                "pclose",       ex_pclose,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_perl,          "perl",         ex_perl,
                        RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN,
                        ADDR_LINES),
--- 998,1055 ----
                        ADDR_LINES),
  EX(CMD_nunmap,                "nunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_nunmenu,               "nunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_open,          "open",         ex_open,
                        RANGE|BANG|EXTRA,
                        ADDR_LINES),
  EX(CMD_oldfiles,      "oldfiles",     ex_oldfiles,
                        BANG|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_omap,          "omap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_omapclear,     "omapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_omenu,         "omenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_only,          "only",         ex_only,
!                       BANG|RANGE|COUNT|TRLBAR,
                        ADDR_WINDOWS),
  EX(CMD_onoremap,      "onoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_onoremenu,     "onoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_options,               "options",      ex_options,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_ounmap,                "ounmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_ounmenu,               "ounmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_ownsyntax,     "ownsyntax",    ex_ownsyntax,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_print,         "print",        ex_print,
                        RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK,
                        ADDR_LINES),
  EX(CMD_packadd,               "packadd",      ex_packadd,
                        BANG|FILE1|NEEDARG|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_packloadall,   "packloadall",  ex_packloadall,
                        BANG|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_pclose,                "pclose",       ex_pclose,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_perl,          "perl",         ex_perl,
                        RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN,
                        ADDR_LINES),
***************
*** 1052,1121 ****
                        ADDR_LINES),
  EX(CMD_pedit,         "pedit",        ex_pedit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_pop,           "pop",          ex_tag,
!                       RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_popup,         "popup",        ex_popup,
                        NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_ppop,          "ppop",         ex_ptag,
!                       RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_preserve,      "preserve",     ex_preserve,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_previous,      "previous",     ex_previous,
!                       EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_promptfind,    "promptfind",   gui_mch_find_dialog,
                        EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_promptrepl,    "promptrepl",   gui_mch_replace_dialog,
                        EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_profile,               "profile",      ex_profile,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_profdel,               "profdel",      ex_breakdel,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_psearch,               "psearch",      ex_psearch,
                        BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA,
                        ADDR_LINES),
  EX(CMD_ptag,          "ptag",         ex_ptag,
!                       RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_ptNext,                "ptNext",       ex_ptag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_ptfirst,               "ptfirst",      ex_ptag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_ptjump,                "ptjump",       ex_ptag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_LINES),
  EX(CMD_ptlast,                "ptlast",       ex_ptag,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_ptnext,                "ptnext",       ex_ptag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_ptprevious,    "ptprevious",   ex_ptag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_ptrewind,      "ptrewind",     ex_ptag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_ptselect,      "ptselect",     ex_ptag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_LINES),
  EX(CMD_put,           "put",          ex_put,
                        RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_pwd,           "pwd",          ex_pwd,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_python,                "python",       ex_python,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
--- 1058,1127 ----
                        ADDR_LINES),
  EX(CMD_pedit,         "pedit",        ex_pedit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_pop,           "pop",          ex_tag,
!                       RANGE|BANG|COUNT|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_popup,         "popup",        ex_popup,
                        NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_ppop,          "ppop",         ex_ptag,
!                       RANGE|BANG|COUNT|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_preserve,      "preserve",     ex_preserve,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_previous,      "previous",     ex_previous,
!                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_promptfind,    "promptfind",   gui_mch_find_dialog,
                        EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_promptrepl,    "promptrepl",   gui_mch_replace_dialog,
                        EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_profile,               "profile",      ex_profile,
                        BANG|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_profdel,               "profdel",      ex_breakdel,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_psearch,               "psearch",      ex_psearch,
                        BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA,
                        ADDR_LINES),
  EX(CMD_ptag,          "ptag",         ex_ptag,
!                       RANGE|BANG|WORD1|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_ptNext,                "ptNext",       ex_ptag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_ptfirst,               "ptfirst",      ex_ptag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_ptjump,                "ptjump",       ex_ptag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_NONE),
  EX(CMD_ptlast,                "ptlast",       ex_ptag,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_ptnext,                "ptnext",       ex_ptag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_ptprevious,    "ptprevious",   ex_ptag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_ptrewind,      "ptrewind",     ex_ptag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_ptselect,      "ptselect",     ex_ptag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_NONE),
  EX(CMD_put,           "put",          ex_put,
                        RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_pwd,           "pwd",          ex_pwd,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_python,                "python",       ex_python,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
***************
*** 1150,1208 ****
                        RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
  EX(CMD_quit,          "quit",         ex_quit,
!                       BANG|RANGE|COUNT|NOTADR|TRLBAR|CMDWIN,
                        ADDR_WINDOWS),
  EX(CMD_quitall,               "quitall",      ex_quit_all,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_qall,          "qall",         ex_quit_all,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_read,          "read",         ex_read,
                        
BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_recover,               "recover",      ex_recover,
                        BANG|FILE1|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_redo,          "redo",         ex_redo,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_redir,         "redir",        ex_redir,
                        BANG|FILES|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_redraw,                "redraw",       ex_redraw,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_redrawstatus,  "redrawstatus", ex_redrawstatus,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_redrawtabline, "redrawtabline", ex_redrawtabline,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_registers,     "registers",    ex_display,
                        EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_resize,                "resize",       ex_resize,
!                       RANGE|NOTADR|TRLBAR|WORD1|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_retab,         "retab",        ex_retab,
                        TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_return,                "return",       ex_return,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_rewind,                "rewind",       ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_right,         "right",        ex_align,
                        TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_rightbelow,    "rightbelow",   ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_runtime,               "runtime",      ex_runtime,
                        BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_ruby,          "ruby",         ex_ruby,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
--- 1156,1214 ----
                        RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
  EX(CMD_quit,          "quit",         ex_quit,
!                       BANG|RANGE|COUNT|TRLBAR|CMDWIN,
                        ADDR_WINDOWS),
  EX(CMD_quitall,               "quitall",      ex_quit_all,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_qall,          "qall",         ex_quit_all,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_read,          "read",         ex_read,
                        
BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_recover,               "recover",      ex_recover,
                        BANG|FILE1|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_redo,          "redo",         ex_redo,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_redir,         "redir",        ex_redir,
                        BANG|FILES|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_redraw,                "redraw",       ex_redraw,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_redrawstatus,  "redrawstatus", ex_redrawstatus,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_redrawtabline, "redrawtabline", ex_redrawtabline,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_registers,     "registers",    ex_display,
                        EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_resize,                "resize",       ex_resize,
!                       RANGE|TRLBAR|WORD1|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_retab,         "retab",        ex_retab,
                        TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_return,                "return",       ex_return,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_rewind,                "rewind",       ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_right,         "right",        ex_align,
                        TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_rightbelow,    "rightbelow",   ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_runtime,               "runtime",      ex_runtime,
                        BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_ruby,          "ruby",         ex_ruby,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
***************
*** 1214,1490 ****
                        ADDR_LINES),
  EX(CMD_rundo,         "rundo",        ex_rundo,
                        NEEDARG|FILE1,
!                       ADDR_LINES),
  EX(CMD_rviminfo,      "rviminfo",     ex_viminfo,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_substitute,    "substitute",   do_sub,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
  EX(CMD_sNext,         "sNext",        ex_previous,
!                       EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sargument,     "sargument",    ex_argument,
!                       BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_sall,          "sall",         ex_all,
!                       BANG|RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sandbox,               "sandbox",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_saveas,                "saveas",       ex_write,
!                       BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sbuffer,               "sbuffer",      ex_buffer,
!                       
BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_sbNext,                "sbNext",       ex_bprevious,
!                       RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sball,         "sball",        ex_buffer_all,
!                       RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sbfirst,               "sbfirst",      ex_brewind,
                        EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sblast,                "sblast",       ex_blast,
                        EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sbmodified,    "sbmodified",   ex_bmodified,
!                       RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sbnext,                "sbnext",       ex_bnext,
!                       RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sbprevious,    "sbprevious",   ex_bprevious,
!                       RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sbrewind,      "sbrewind",     ex_brewind,
                        EDITCMD|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_scriptnames,   "scriptnames",  ex_scriptnames,
!                       BANG|RANGE|NOTADR|COUNT|TRLBAR|CMDWIN,
                        ADDR_OTHER),
  EX(CMD_scriptencoding,        "scriptencoding", ex_scriptencoding,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_scriptversion, "scriptversion", ex_scriptversion,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_scscope,               "scscope",      ex_scscope,
                        EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_set,           "set",          ex_set,
                        TRLBAR|EXTRA|CMDWIN|SBOXOK,
!                       ADDR_LINES),
  EX(CMD_setfiletype,   "setfiletype",  ex_setfiletype,
                        TRLBAR|EXTRA|NEEDARG|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_setglobal,     "setglobal",    ex_set,
                        TRLBAR|EXTRA|CMDWIN|SBOXOK,
!                       ADDR_LINES),
  EX(CMD_setlocal,      "setlocal",     ex_set,
                        TRLBAR|EXTRA|CMDWIN|SBOXOK,
!                       ADDR_LINES),
  EX(CMD_sfind,         "sfind",        ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sfirst,                "sfirst",       ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_shell,         "shell",        ex_shell,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_simalt,                "simalt",       ex_simalt,
                        NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_sign,          "sign",         ex_sign,
!                       NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_silent,                "silent",       ex_wrongmodifier,
                        NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_sleep,         "sleep",        ex_sleep,
!                       RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_slast,         "slast",        ex_last,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_smagic,                "smagic",       ex_submagic,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
  EX(CMD_smap,          "smap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_smapclear,     "smapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_smenu,         "smenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_snext,         "snext",        ex_next,
!                       RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_snomagic,      "snomagic",     ex_submagic,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
  EX(CMD_snoremap,      "snoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_snoremenu,     "snoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_source,                "source",       ex_source,
                        BANG|FILE1|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_sort,          "sort",         ex_sort,
                        RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY,
                        ADDR_LINES),
  EX(CMD_split,         "split",        ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_spellgood,     "spellgood",    ex_spell,
!                       BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_spelldump,     "spelldump",    ex_spelldump,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_spellinfo,     "spellinfo",    ex_spellinfo,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_spellrepall,   "spellrepall",  ex_spellrepall,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_spellundo,     "spellundo",    ex_spell,
!                       BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_spellwrong,    "spellwrong",   ex_spell,
!                       BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sprevious,     "sprevious",    ex_previous,
!                       EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_srewind,               "srewind",      ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_stop,          "stop",         ex_stop,
                        TRLBAR|BANG|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_stag,          "stag",         ex_stag,
!                       RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_startinsert,   "startinsert",  ex_startinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_startgreplace, "startgreplace", ex_startinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_startreplace,  "startreplace", ex_startinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_stopinsert,    "stopinsert",   ex_stopinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_stjump,                "stjump",       ex_stag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_LINES),
  EX(CMD_stselect,      "stselect",     ex_stag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_LINES),
  EX(CMD_sunhide,               "sunhide",      ex_buffer_all,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_sunmap,                "sunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_sunmenu,               "sunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_suspend,               "suspend",      ex_stop,
                        TRLBAR|BANG|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_sview,         "sview",        ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_swapname,      "swapname",     ex_swapname,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_syntax,                "syntax",       ex_syntax,
                        EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_syntime,               "syntime",      ex_syntime,
                        NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_syncbind,      "syncbind",     ex_syncbind,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_smile,         "smile",        ex_smile,
                        TRLBAR|CMDWIN|SBOXOK,
!                       ADDR_LINES),
  EX(CMD_t,             "t",            ex_copymove,
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_tNext,         "tNext",        ex_tag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_tag,           "tag",          ex_tag,
!                       RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_tags,          "tags",         do_tags,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tab,           "tab",          ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_TABS),
  EX(CMD_tabclose,      "tabclose",     ex_tabclose,
!                       BANG|RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR|CMDWIN,
                        ADDR_TABS),
  EX(CMD_tabdo,         "tabdo",        ex_listdo,
!                       NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_TABS),
  EX(CMD_tabedit,               "tabedit",      ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabfind,               "tabfind",      ex_splitview,
!                       
BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabfirst,      "tabfirst",     ex_tabnext,
                        TRLBAR,
!                       ADDR_TABS),
  EX(CMD_tabmove,               "tabmove",      ex_tabmove,
!                       RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tablast,               "tablast",      ex_tabnext,
                        TRLBAR,
!                       ADDR_TABS),
  EX(CMD_tabnext,               "tabnext",      ex_tabnext,
!                       RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabnew,                "tabnew",       ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabonly,               "tabonly",      ex_tabonly,
!                       BANG|RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR|CMDWIN,
                        ADDR_TABS),
  EX(CMD_tabprevious,   "tabprevious",  ex_tabnext,
!                       RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS_RELATIVE),
  EX(CMD_tabNext,               "tabNext",      ex_tabnext,
!                       RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS_RELATIVE),
  EX(CMD_tabrewind,     "tabrewind",    ex_tabnext,
                        TRLBAR,
!                       ADDR_TABS),
  EX(CMD_tabs,          "tabs",         ex_tabs,
                        TRLBAR|CMDWIN,
!                       ADDR_TABS),
  EX(CMD_tcd,           "tcd",          ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_tchdir,                "tchdir",       ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_tcl,           "tcl",          ex_tcl,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
--- 1220,1496 ----
                        ADDR_LINES),
  EX(CMD_rundo,         "rundo",        ex_rundo,
                        NEEDARG|FILE1,
!                       ADDR_NONE),
  EX(CMD_rviminfo,      "rviminfo",     ex_viminfo,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_substitute,    "substitute",   do_sub,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
  EX(CMD_sNext,         "sNext",        ex_previous,
!                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sargument,     "sargument",    ex_argument,
!                       BANG|RANGE|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_ARGUMENTS),
  EX(CMD_sall,          "sall",         ex_all,
!                       BANG|RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sandbox,               "sandbox",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_saveas,                "saveas",       ex_write,
!                       BANG|FILE1|ARGOPT|CMDWIN|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_sbuffer,               "sbuffer",      ex_buffer,
!                       BANG|RANGE|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
                        ADDR_BUFFERS),
  EX(CMD_sbNext,                "sbNext",       ex_bprevious,
!                       RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sball,         "sball",        ex_buffer_all,
!                       RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sbfirst,               "sbfirst",      ex_brewind,
                        EDITCMD|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_sblast,                "sblast",       ex_blast,
                        EDITCMD|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_sbmodified,    "sbmodified",   ex_bmodified,
!                       RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sbnext,                "sbnext",       ex_bnext,
!                       RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sbprevious,    "sbprevious",   ex_bprevious,
!                       RANGE|COUNT|EDITCMD|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sbrewind,      "sbrewind",     ex_brewind,
                        EDITCMD|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_scriptnames,   "scriptnames",  ex_scriptnames,
!                       BANG|RANGE|COUNT|TRLBAR|CMDWIN,
                        ADDR_OTHER),
  EX(CMD_scriptencoding,        "scriptencoding", ex_scriptencoding,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_scriptversion, "scriptversion", ex_scriptversion,
                        WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_scscope,               "scscope",      ex_scscope,
                        EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_set,           "set",          ex_set,
                        TRLBAR|EXTRA|CMDWIN|SBOXOK,
!                       ADDR_NONE),
  EX(CMD_setfiletype,   "setfiletype",  ex_setfiletype,
                        TRLBAR|EXTRA|NEEDARG|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_setglobal,     "setglobal",    ex_set,
                        TRLBAR|EXTRA|CMDWIN|SBOXOK,
!                       ADDR_NONE),
  EX(CMD_setlocal,      "setlocal",     ex_set,
                        TRLBAR|EXTRA|CMDWIN|SBOXOK,
!                       ADDR_NONE),
  EX(CMD_sfind,         "sfind",        ex_splitview,
!                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sfirst,                "sfirst",       ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_shell,         "shell",        ex_shell,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_simalt,                "simalt",       ex_simalt,
                        NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_sign,          "sign",         ex_sign,
!                       NEEDARG|RANGE|EXTRA|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_silent,                "silent",       ex_wrongmodifier,
                        NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_sleep,         "sleep",        ex_sleep,
!                       RANGE|COUNT|EXTRA|TRLBAR|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_slast,         "slast",        ex_last,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_smagic,                "smagic",       ex_submagic,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
  EX(CMD_smap,          "smap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_smapclear,     "smapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_smenu,         "smenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_snext,         "snext",        ex_next,
!                       RANGE|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_snomagic,      "snomagic",     ex_submagic,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN,
                        ADDR_LINES),
  EX(CMD_snoremap,      "snoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_snoremenu,     "snoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_source,                "source",       ex_source,
                        BANG|FILE1|TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_sort,          "sort",         ex_sort,
                        RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY,
                        ADDR_LINES),
  EX(CMD_split,         "split",        ex_splitview,
!                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_spellgood,     "spellgood",    ex_spell,
!                       BANG|RANGE|NEEDARG|EXTRA|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_spelldump,     "spelldump",    ex_spelldump,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_spellinfo,     "spellinfo",    ex_spellinfo,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_spellrepall,   "spellrepall",  ex_spellrepall,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_spellundo,     "spellundo",    ex_spell,
!                       BANG|RANGE|NEEDARG|EXTRA|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_spellwrong,    "spellwrong",   ex_spell,
!                       BANG|RANGE|NEEDARG|EXTRA|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sprevious,     "sprevious",    ex_previous,
!                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_srewind,               "srewind",      ex_rewind,
                        EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_stop,          "stop",         ex_stop,
                        TRLBAR|BANG|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_stag,          "stag",         ex_stag,
!                       RANGE|BANG|WORD1|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_startinsert,   "startinsert",  ex_startinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_startgreplace, "startgreplace", ex_startinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_startreplace,  "startreplace", ex_startinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_stopinsert,    "stopinsert",   ex_stopinsert,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_stjump,                "stjump",       ex_stag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_NONE),
  EX(CMD_stselect,      "stselect",     ex_stag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_NONE),
  EX(CMD_sunhide,               "sunhide",      ex_buffer_all,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_sunmap,                "sunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_sunmenu,               "sunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_suspend,               "suspend",      ex_stop,
                        TRLBAR|BANG|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_sview,         "sview",        ex_splitview,
!                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_swapname,      "swapname",     ex_swapname,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_syntax,                "syntax",       ex_syntax,
                        EXTRA|NOTRLCOM|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_syntime,               "syntime",      ex_syntime,
                        NEEDARG|WORD1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_syncbind,      "syncbind",     ex_syncbind,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_smile,         "smile",        ex_smile,
                        TRLBAR|CMDWIN|SBOXOK,
!                       ADDR_NONE),
  EX(CMD_t,             "t",            ex_copymove,
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
  EX(CMD_tNext,         "tNext",        ex_tag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_tag,           "tag",          ex_tag,
!                       RANGE|BANG|WORD1|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_tags,          "tags",         do_tags,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tab,           "tab",          ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_tabclose,      "tabclose",     ex_tabclose,
!                       BANG|RANGE|ZEROR|EXTRA|NOSPC|TRLBAR|CMDWIN,
                        ADDR_TABS),
  EX(CMD_tabdo,         "tabdo",        ex_listdo,
!                       NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_TABS),
  EX(CMD_tabedit,               "tabedit",      ex_splitview,
!                       BANG|FILE1|RANGE|ZEROR|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabfind,               "tabfind",      ex_splitview,
!                       BANG|FILE1|RANGE|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabfirst,      "tabfirst",     ex_tabnext,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_tabmove,               "tabmove",      ex_tabmove,
!                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tablast,               "tablast",      ex_tabnext,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_tabnext,               "tabnext",      ex_tabnext,
!                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabnew,                "tabnew",       ex_splitview,
!                       BANG|FILE1|RANGE|ZEROR|EDITCMD|ARGOPT|TRLBAR,
                        ADDR_TABS),
  EX(CMD_tabonly,               "tabonly",      ex_tabonly,
!                       BANG|RANGE|ZEROR|EXTRA|NOSPC|TRLBAR|CMDWIN,
                        ADDR_TABS),
  EX(CMD_tabprevious,   "tabprevious",  ex_tabnext,
!                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS_RELATIVE),
  EX(CMD_tabNext,               "tabNext",      ex_tabnext,
!                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
                        ADDR_TABS_RELATIVE),
  EX(CMD_tabrewind,     "tabrewind",    ex_tabnext,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_tabs,          "tabs",         ex_tabs,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tcd,           "tcd",          ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tchdir,                "tchdir",       ex_cd,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tcl,           "tcl",          ex_tcl,
                        RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
                        ADDR_LINES),
***************
*** 1496,1592 ****
                        ADDR_LINES),
  EX(CMD_tearoff,               "tearoff",      ex_tearoff,
                        NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_terminal,      "terminal",     ex_terminal,
                        RANGE|BANG|FILES|CMDWIN,
                        ADDR_LINES),
  EX(CMD_tfirst,                "tfirst",       ex_tag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_throw,         "throw",        ex_throw,
                        EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tjump,         "tjump",        ex_tag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_LINES),
  EX(CMD_tlast,         "tlast",        ex_tag,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_tlmenu,                "tlmenu",       ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tlnoremenu,    "tlnoremenu",   ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tlunmenu,      "tlunmenu",     ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tmenu,         "tmenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tmap,          "tmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tmapclear,     "tmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tnext,         "tnext",        ex_tag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_tnoremap,      "tnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_topleft,               "topleft",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_tprevious,     "tprevious",    ex_tag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_trewind,               "trewind",      ex_tag,
!                       RANGE|NOTADR|BANG|TRLBAR|ZEROR,
!                       ADDR_LINES),
  EX(CMD_try,           "try",          ex_try,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tselect,               "tselect",      ex_tag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_LINES),
  EX(CMD_tunmenu,               "tunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_tunmap,                "tunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_undo,          "undo",         ex_undo,
!                       RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_undojoin,      "undojoin",     ex_undojoin,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_undolist,      "undolist",     ex_undolist,
                        TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_unabbreviate,  "unabbreviate", ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_unhide,                "unhide",       ex_buffer_all,
!                       RANGE|NOTADR|COUNT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_unlet,         "unlet",        ex_unlet,
                        BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_unlockvar,     "unlockvar",    ex_lockvar,
                        BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_unmap,         "unmap",        ex_unmap,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_unmenu,                "unmenu",       ex_menu,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_unsilent,      "unsilent",     ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_update,                "update",       ex_update,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
                        ADDR_LINES),
--- 1502,1598 ----
                        ADDR_LINES),
  EX(CMD_tearoff,               "tearoff",      ex_tearoff,
                        NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_terminal,      "terminal",     ex_terminal,
                        RANGE|BANG|FILES|CMDWIN,
                        ADDR_LINES),
  EX(CMD_tfirst,                "tfirst",       ex_tag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_throw,         "throw",        ex_throw,
                        EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tjump,         "tjump",        ex_tag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_NONE),
  EX(CMD_tlast,         "tlast",        ex_tag,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_tlmenu,                "tlmenu",       ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_tlnoremenu,    "tlnoremenu",   ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_tlunmenu,      "tlunmenu",     ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_tmenu,         "tmenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_tmap,          "tmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tmapclear,     "tmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tnext,         "tnext",        ex_tag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_tnoremap,      "tnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_topleft,               "topleft",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_tprevious,     "tprevious",    ex_tag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_trewind,               "trewind",      ex_tag,
!                       RANGE|BANG|TRLBAR|ZEROR,
!                       ADDR_OTHER),
  EX(CMD_try,           "try",          ex_try,
                        TRLBAR|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tselect,               "tselect",      ex_tag,
                        BANG|TRLBAR|WORD1,
!                       ADDR_NONE),
  EX(CMD_tunmenu,               "tunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_tunmap,                "tunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_undo,          "undo",         ex_undo,
!                       RANGE|COUNT|ZEROR|TRLBAR|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_undojoin,      "undojoin",     ex_undojoin,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_undolist,      "undolist",     ex_undolist,
                        TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_unabbreviate,  "unabbreviate", ex_abbreviate,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_unhide,                "unhide",       ex_buffer_all,
!                       RANGE|COUNT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_unlet,         "unlet",        ex_unlet,
                        BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_unlockvar,     "unlockvar",    ex_lockvar,
                        BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_unmap,         "unmap",        ex_unmap,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_unmenu,                "unmenu",       ex_menu,
                        BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_unsilent,      "unsilent",     ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_update,                "update",       ex_update,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
                        ADDR_LINES),
***************
*** 1595,1718 ****
                        ADDR_LINES),
  EX(CMD_version,               "version",      ex_version,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_verbose,               "verbose",      ex_wrongmodifier,
!                       NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_vertical,      "vertical",     ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_LINES),
  EX(CMD_visual,                "visual",       ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_view,          "view",         ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_vimgrep,               "vimgrep",      ex_vimgrep,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_vimgrepadd,    "vimgrepadd",   ex_vimgrep,
!                       RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_LINES),
  EX(CMD_viusage,               "viusage",      ex_viusage,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_vmap,          "vmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_vmapclear,     "vmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_vmenu,         "vmenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_vnoremap,      "vnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_vnew,          "vnew",         ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_vnoremenu,     "vnoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_vsplit,                "vsplit",       ex_splitview,
!                       BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_vunmap,                "vunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_vunmenu,               "vunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_write,         "write",        ex_write,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_wNext,         "wNext",        ex_wnext,
!                       RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_wall,          "wall",         do_wqall,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_while,         "while",        ex_while,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_winsize,               "winsize",      ex_winsize,
                        EXTRA|NEEDARG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_wincmd,                "wincmd",       ex_wincmd,
!                       NEEDARG|WORD1|RANGE|NOTADR|CMDWIN,
!                       ADDR_WINDOWS),
  EX(CMD_windo,         "windo",        ex_listdo,
!                       NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
                        ADDR_WINDOWS),
  EX(CMD_winpos,                "winpos",       ex_winpos,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_wnext,         "wnext",        ex_wnext,
!                       RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_wprevious,     "wprevious",    ex_wnext,
!                       RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_wq,            "wq",           ex_exit,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
                        ADDR_LINES),
  EX(CMD_wqall,         "wqall",        do_wqall,
!                       BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_wundo,         "wundo",        ex_wundo,
                        BANG|NEEDARG|FILE1,
!                       ADDR_LINES),
  EX(CMD_wviminfo,      "wviminfo",     ex_viminfo,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_xit,           "xit",          ex_exit,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_xall,          "xall",         do_wqall,
                        BANG|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_xmap,          "xmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_xmapclear,     "xmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_xmenu,         "xmenu",        ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_xnoremap,      "xnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_xnoremenu,     "xnoremenu",    ex_menu,
!                       
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_xunmap,                "xunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_xunmenu,               "xunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_LINES),
  EX(CMD_yank,          "yank",         ex_operators,
                        RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN,
                        ADDR_LINES),
--- 1601,1724 ----
                        ADDR_LINES),
  EX(CMD_version,               "version",      ex_version,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_verbose,               "verbose",      ex_wrongmodifier,
!                       NEEDARG|RANGE|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_vertical,      "vertical",     ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM,
!                       ADDR_NONE),
  EX(CMD_visual,                "visual",       ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_view,          "view",         ex_edit,
                        BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_vimgrep,               "vimgrep",      ex_vimgrep,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_vimgrepadd,    "vimgrepadd",   ex_vimgrep,
!                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
!                       ADDR_OTHER),
  EX(CMD_viusage,               "viusage",      ex_viusage,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_vmap,          "vmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_vmapclear,     "vmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_vmenu,         "vmenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_vnoremap,      "vnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_vnew,          "vnew",         ex_splitview,
!                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_vnoremenu,     "vnoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_vsplit,                "vsplit",       ex_splitview,
!                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_vunmap,                "vunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_vunmenu,               "vunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_write,         "write",        ex_write,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_wNext,         "wNext",        ex_wnext,
!                       RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_wall,          "wall",         do_wqall,
                        BANG|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_while,         "while",        ex_while,
                        EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_winsize,               "winsize",      ex_winsize,
                        EXTRA|NEEDARG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_wincmd,                "wincmd",       ex_wincmd,
!                       NEEDARG|WORD1|RANGE|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_windo,         "windo",        ex_listdo,
!                       NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
                        ADDR_WINDOWS),
  EX(CMD_winpos,                "winpos",       ex_winpos,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_wnext,         "wnext",        ex_wnext,
!                       RANGE|BANG|FILE1|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_wprevious,     "wprevious",    ex_wnext,
!                       RANGE|BANG|FILE1|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_wq,            "wq",           ex_exit,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
                        ADDR_LINES),
  EX(CMD_wqall,         "wqall",        do_wqall,
!                       BANG|FILE1|ARGOPT|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_wundo,         "wundo",        ex_wundo,
                        BANG|NEEDARG|FILE1,
!                       ADDR_NONE),
  EX(CMD_wviminfo,      "wviminfo",     ex_viminfo,
                        BANG|FILE1|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_xit,           "xit",          ex_exit,
                        RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_xall,          "xall",         do_wqall,
                        BANG|TRLBAR,
!                       ADDR_NONE),
  EX(CMD_xmap,          "xmap",         ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_xmapclear,     "xmapclear",    ex_mapclear,
                        EXTRA|TRLBAR|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_xmenu,         "xmenu",        ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_xnoremap,      "xnoremap",     ex_map,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_xnoremenu,     "xnoremenu",    ex_menu,
!                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_OTHER),
  EX(CMD_xunmap,                "xunmap",       ex_unmap,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_xunmenu,               "xunmenu",      ex_menu,
                        EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
!                       ADDR_NONE),
  EX(CMD_yank,          "yank",         ex_operators,
                        RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN,
                        ADDR_LINES),
***************
*** 1746,1759 ****
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_Next,          "Next",         ex_previous,
!                       EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_LINES),
  EX(CMD_Print,         "Print",        ex_print,
                        RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_X,             "X",            ex_X,
                        TRLBAR,
!                       ADDR_LINES),
  EX(CMD_tilde,         "~",            do_sub,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
--- 1752,1765 ----
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_Next,          "Next",         ex_previous,
!                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
!                       ADDR_OTHER),
  EX(CMD_Print,         "Print",        ex_print,
                        RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
                        ADDR_LINES),
  EX(CMD_X,             "X",            ex_X,
                        TRLBAR,
!                       ADDR_NONE),
  EX(CMD_tilde,         "~",            do_sub,
                        RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
                        ADDR_LINES),
***************
*** 1784,1790 ****
      int               addr_count;     /* the number of addresses given */
      linenr_T  line1;          /* the first line number */
      linenr_T  line2;          /* the second line number or count */
!     int               addr_type;      /* type of the count/range */
      int               flags;          /* extra flags after count: EXFLAG_ */
      char_u    *do_ecmd_cmd;   /* +command arg to be used in edited file */
      linenr_T  do_ecmd_lnum;   /* the line number in an edited file */
--- 1790,1796 ----
      int               addr_count;     /* the number of addresses given */
      linenr_T  line1;          /* the first line number */
      linenr_T  line2;          /* the second line number or count */
!     cmd_addr_T        addr_type;      /* type of the count/range */
      int               flags;          /* extra flags after count: EXFLAG_ */
      char_u    *do_ecmd_cmd;   /* +command arg to be used in edited file */
      linenr_T  do_ecmd_lnum;   /* the line number in an edited file */
*** ../vim-8.1.1240/src/ex_docmd.c      2019-04-28 19:46:17.026060122 +0200
--- src/ex_docmd.c      2019-05-01 18:00:48.625957045 +0200
***************
*** 73,79 ****
  # define ex_cexpr             ex_ni
  #endif
  
! static linenr_T get_address(exarg_T *, char_u **, int addr_type, int skip, 
int silent, int to_other_file, int address_count);
  static void   get_flags(exarg_T *eap);
  #if !defined(FEAT_PERL) \
        || !defined(FEAT_PYTHON) || !defined(FEAT_PYTHON3) \
--- 73,79 ----
  # define ex_cexpr             ex_ni
  #endif
  
! static linenr_T get_address(exarg_T *, char_u **, cmd_addr_T addr_type, int 
skip, int silent, int to_other_file, int address_count);
  static void   get_flags(exarg_T *eap);
  #if !defined(FEAT_PERL) \
        || !defined(FEAT_PYTHON) || !defined(FEAT_PYTHON3) \
***************
*** 1577,1582 ****
--- 1577,1586 ----
      return buf->b_fnum;
  }
  
+ /*
+  * Return the window number of "win".
+  * When "win" is NULL return the number of windows.
+  */
      static int
  current_win_nr(win_T *win)
  {
***************
*** 1951,1957 ****
        ea.forceit = FALSE;
  
  /*
!  * 6. Parse arguments.
   */
      if (!IS_USER_CMDIDX(ea.cmdidx))
        ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt;
--- 1955,1961 ----
        ea.forceit = FALSE;
  
  /*
!  * 6. Parse arguments.  Then check for errors.
   */
      if (!IS_USER_CMDIDX(ea.cmdidx))
        ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt;
***************
*** 2016,2022 ****
       * Don't complain about the range if it is not used
       * (could happen if line_count is accidentally set to 0).
       */
!     if (!ea.skip && !ni)
      {
        /*
         * If the range is backwards, ask for confirmation and, if given, swap
--- 2020,2026 ----
       * Don't complain about the range if it is not used
       * (could happen if line_count is accidentally set to 0).
       */
!     if (!ea.skip && !ni && (ea.argt & RANGE))
      {
        /*
         * If the range is backwards, ask for confirmation and, if given, swap
***************
*** 2044,2050 ****
            goto doend;
      }
  
!     if ((ea.argt & NOTADR) && ea.addr_count == 0) /* default is 1, not cursor 
*/
        ea.line2 = 1;
  
      correct_range(&ea);
--- 2048,2055 ----
            goto doend;
      }
  
!     if ((ea.addr_type == ADDR_OTHER) && ea.addr_count == 0)
!       // default is 1, not cursor
        ea.line2 = 1;
  
      correct_range(&ea);
***************
*** 2191,2196 ****
--- 2196,2202 ----
        switch (ea.addr_type)
        {
            case ADDR_LINES:
+           case ADDR_OTHER:
                ea.line2 = curbuf->b_ml.ml_line_count;
                break;
            case ADDR_LOADED_BUFFERS:
***************
*** 2229,2234 ****
--- 2235,2243 ----
                    ea.line2 = 1;
                break;
  #endif
+           case ADDR_NONE:
+               iemsg(_("INTERNAL: Cannot use DFLALL with ADDR_NONE"));
+               break;
        }
      }
  
***************
*** 2278,2284 ****
            errormsg = _(e_zerocount);
            goto doend;
        }
!       if (ea.argt & NOTADR)   /* e.g. :buffer 2, :sleep 3 */
        {
            ea.line2 = n;
            if (ea.addr_count == 0)
--- 2287,2293 ----
            errormsg = _(e_zerocount);
            goto doend;
        }
!       if (ea.addr_type != ADDR_LINES) // e.g. :buffer 2, :sleep 3
        {
            ea.line2 = n;
            if (ea.addr_count == 0)
***************
*** 2292,2299 ****
            /*
             * Be vi compatible: no error message for out of range.
             */
!           if (ea.addr_type == ADDR_LINES
!                   && ea.line2 > curbuf->b_ml.ml_line_count)
                ea.line2 = curbuf->b_ml.ml_line_count;
        }
      }
--- 2301,2307 ----
            /*
             * Be vi compatible: no error message for out of range.
             */
!           if (ea.line2 > curbuf->b_ml.ml_line_count)
                ea.line2 = curbuf->b_ml.ml_line_count;
        }
      }
***************
*** 2876,2881 ****
--- 2884,2890 ----
        switch (eap->addr_type)
        {
            case ADDR_LINES:
+           case ADDR_OTHER:
                // default is current line number
                eap->line2 = curwin->w_cursor.lnum;
                break;
***************
*** 2902,2907 ****
--- 2911,2919 ----
                eap->line2 = qf_get_cur_valid_idx(eap);
                break;
  #endif
+           case ADDR_NONE:
+               // Will give an error later if a range is found.
+               break;
        }
        eap->cmd = skipwhite(eap->cmd);
        lnum = get_address(eap, &eap->cmd, eap->addr_type, eap->skip, silent,
***************
*** 2916,2921 ****
--- 2928,2934 ----
                switch (eap->addr_type)
                {
                    case ADDR_LINES:
+                   case ADDR_OTHER:
                        eap->line1 = 1;
                        eap->line2 = curbuf->b_ml.ml_line_count;
                        break;
***************
*** 2955,2961 ****
                        }
                        break;
                    case ADDR_TABS_RELATIVE:
-                   case ADDR_OTHER:
                        *errormsg = _(e_invrange);
                        return FAIL;
                    case ADDR_ARGUMENTS:
--- 2968,2973 ----
***************
*** 2975,2980 ****
--- 2987,2995 ----
                            eap->line2 = 1;
                        break;
  #endif
+                   case ADDR_NONE:
+                       // Will give an error later if a range is found.
+                       break;
                }
                ++eap->addr_count;
            }
***************
*** 4207,4218 ****
  get_address(
      exarg_T   *eap UNUSED,
      char_u    **ptr,
!     int               addr_type,      // flag: one of ADDR_LINES, ...
      int               skip,           // only skip the address, don't use it
      int               silent,         // no errors or side effects
      int               to_other_file,  // flag: may jump to other file
      int               address_count UNUSED) // 1 for first address, >1 after 
comma
  {
      int               c;
      int               i;
      long      n;
--- 4222,4234 ----
  get_address(
      exarg_T   *eap UNUSED,
      char_u    **ptr,
!     cmd_addr_T        addr_type_arg,
      int               skip,           // only skip the address, don't use it
      int               silent,         // no errors or side effects
      int               to_other_file,  // flag: may jump to other file
      int               address_count UNUSED) // 1 for first address, >1 after 
comma
  {
+     cmd_addr_T        addr_type = addr_type_arg;
      int               c;
      int               i;
      long      n;
***************
*** 4233,4238 ****
--- 4249,4255 ----
                switch (addr_type)
                {
                    case ADDR_LINES:
+                   case ADDR_OTHER:
                        lnum = curwin->w_cursor.lnum;
                        break;
                    case ADDR_WINDOWS:
***************
*** 4249,4254 ****
--- 4266,4272 ----
                        lnum = CURRENT_TAB_NR;
                        break;
                    case ADDR_TABS_RELATIVE:
+                   case ADDR_NONE:
                        emsg(_(e_invrange));
                        cmd = NULL;
                        goto error;
***************
*** 4266,4271 ****
--- 4284,4290 ----
                switch (addr_type)
                {
                    case ADDR_LINES:
+                   case ADDR_OTHER:
                        lnum = curbuf->b_ml.ml_line_count;
                        break;
                    case ADDR_WINDOWS:
***************
*** 4291,4296 ****
--- 4310,4316 ----
                        lnum = LAST_TAB_NR;
                        break;
                    case ADDR_TABS_RELATIVE:
+                   case ADDR_NONE:
                        emsg(_(e_invrange));
                        cmd = NULL;
                        goto error;
***************
*** 4460,4466 ****
                switch (addr_type)
                {
                    case ADDR_LINES:
!                       /* "+1" is same as ".+1" */
                        lnum = curwin->w_cursor.lnum;
                        break;
                    case ADDR_WINDOWS:
--- 4480,4487 ----
                switch (addr_type)
                {
                    case ADDR_LINES:
!                   case ADDR_OTHER:
!                       // "+1" is same as ".+1"
                        lnum = curwin->w_cursor.lnum;
                        break;
                    case ADDR_WINDOWS:
***************
*** 4484,4489 ****
--- 4505,4512 ----
                        lnum = qf_get_cur_valid_idx(eap);
                        break;
  #endif
+                   case ADDR_NONE:
+                       break;
                }
            }
  
***************
*** 4586,4596 ****
  
      if (eap->argt & RANGE)
      {
!       switch(eap->addr_type)
        {
            case ADDR_LINES:
!               if (!(eap->argt & NOTADR)
!                       && eap->line2 > curbuf->b_ml.ml_line_count
  #ifdef FEAT_DIFF
                            + (eap->cmdidx == CMD_diffget)
  #endif
--- 4609,4618 ----
  
      if (eap->argt & RANGE)
      {
!       switch (eap->addr_type)
        {
            case ADDR_LINES:
!               if (eap->line2 > curbuf->b_ml.ml_line_count
  #ifdef FEAT_DIFF
                            + (eap->cmdidx == CMD_diffget)
  #endif
***************
*** 4636,4642 ****
                    return _(e_invrange);
                break;
            case ADDR_TABS_RELATIVE:
!               /* Do nothing */
                break;
  #ifdef FEAT_QUICKFIX
            case ADDR_QUICKFIX:
--- 4658,4665 ----
                    return _(e_invrange);
                break;
            case ADDR_TABS_RELATIVE:
!           case ADDR_OTHER:
!               // Any range is OK.
                break;
  #ifdef FEAT_QUICKFIX
            case ADDR_QUICKFIX:
***************
*** 4644,4649 ****
--- 4667,4675 ----
                    return _(e_invrange);
                break;
  #endif
+           case ADDR_NONE:
+               // Will give an error elsewhere.
+               break;
        }
      }
      return NULL;
*** ../vim-8.1.1240/src/Makefile        2019-04-30 21:27:30.943623715 +0200
--- src/Makefile        2019-05-01 14:05:36.402600986 +0200
***************
*** 1987,1993 ****
  # If this fails because you don't have Vim yet, first build and install Vim
  # without changes.
  cmdidxs: ex_cmds.h
!       vim -u NONE -i NONE -X -S create_cmdidxs.vim
  
  
  # The normal command to compile a .c file to its .o file.
--- 1987,1993 ----
  # If this fails because you don't have Vim yet, first build and install Vim
  # without changes.
  cmdidxs: ex_cmds.h
!       vim --clean -X -u create_cmdidxs.vim
  
  
  # The normal command to compile a .c file to its .o file.
*** ../vim-8.1.1240/src/create_cmdidxs.vim      2017-04-20 21:41:04.000000000 
+0200
--- src/create_cmdidxs.vim      2019-05-01 14:57:29.515057135 +0200
***************
*** 10,16 ****
  let cmds = []
  let skipped_cmds = 0
  
! for line in readfile('ex_cmds.h')
    if line =~ '^EX(CMD_'
      let m = matchlist(line, '^EX(CMD_\S*,\s*"\([a-z][^"]*\)"')
      if len(m) >= 2
--- 10,19 ----
  let cmds = []
  let skipped_cmds = 0
  
! let lines = readfile('ex_cmds.h')
! let idx = 0
! while idx < len(lines)
!   let line = lines[idx]
    if line =~ '^EX(CMD_'
      let m = matchlist(line, '^EX(CMD_\S*,\s*"\([a-z][^"]*\)"')
      if len(m) >= 2
***************
*** 18,25 ****
      else
        let skipped_cmds += 1
      endif
    endif
! endfor
  
  let cmdidxs1 = {}
  let cmdidxs2 = {}
--- 21,48 ----
      else
        let skipped_cmds += 1
      endif
+ 
+     let idx += 1
+     let flags = lines[idx]
+     let idx += 1
+     let addr_type = lines[idx]
+ 
+     if flags =~ '\<RANGE\>'
+       if addr_type =~ 'ADDR_NONE'
+       echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Using RANGE with ADDR_NONE: ' 
.. line
+       endif
+     else
+       if addr_type !~ 'ADDR_NONE'
+       echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Missing ADDR_NONE: ' .. line
+       endif
+     endif
+ 
+     if flags =~ '\<DFLALL\>' && (addr_type =~ 'ADDR_OTHER' || addr_type =~ 
'ADDR_NONE')
+       echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Missing misplaced DFLALL: ' .. 
line
+     endif
    endif
!   let idx += 1
! endwhile
  
  let cmdidxs1 = {}
  let cmdidxs2 = {}
*** ../vim-8.1.1240/src/usercmd.c       2019-04-29 21:30:42.006008952 +0200
--- src/usercmd.c       2019-05-01 17:37:17.322739928 +0200
***************
*** 20,26 ****
      char_u    *uc_rep;        // The command's replacement string
      long      uc_def;         // The default value for a range/count
      int               uc_compl;       // completion type
!     int               uc_addr_type;   // The command's address type
  # ifdef FEAT_EVAL
      sctx_T    uc_script_ctx;  // SCTX where the command was defined
  #  ifdef FEAT_CMDL_COMPL
--- 20,26 ----
      char_u    *uc_rep;        // The command's replacement string
      long      uc_def;         // The default value for a range/count
      int               uc_compl;       // completion type
!     cmd_addr_T        uc_addr_type;   // The command's address type
  # ifdef FEAT_EVAL
      sctx_T    uc_script_ctx;  // SCTX where the command was defined
  #  ifdef FEAT_CMDL_COMPL
***************
*** 101,109 ****
   */
  static struct
  {
!     int           expand;
!     char    *name;
!     char    *shortname;
  } addr_type_complete[] =
  {
      {ADDR_ARGUMENTS, "arguments", "arg"},
--- 101,109 ----
   */
  static struct
  {
!     cmd_addr_T        expand;
!     char      *name;
!     char      *shortname;
  } addr_type_complete[] =
  {
      {ADDR_ARGUMENTS, "arguments", "arg"},
***************
*** 114,120 ****
      {ADDR_WINDOWS, "windows", "win"},
      {ADDR_QUICKFIX, "quickfix", "qf"},
      {ADDR_OTHER, "other", "?"},
!     {-1, NULL, NULL}
  };
  
  #define UC_BUFFER     1       // -buffer: local to current buffer
--- 114,120 ----
      {ADDR_WINDOWS, "windows", "win"},
      {ADDR_QUICKFIX, "quickfix", "qf"},
      {ADDR_OTHER, "other", "?"},
!     {ADDR_NONE, NULL, NULL}
  };
  
  #define UC_BUFFER     1       // -buffer: local to current buffer
***************
*** 495,501 ****
            } while (len < 8 - over);
  
            // Address Type
!           for (j = 0; addr_type_complete[j].expand != -1; ++j)
                if (addr_type_complete[j].expand != ADDR_LINES
                        && addr_type_complete[j].expand == cmd->uc_addr_type)
                {
--- 495,501 ----
            } while (len < 8 - over);
  
            // Address Type
!           for (j = 0; addr_type_complete[j].expand != ADDR_NONE; ++j)
                if (addr_type_complete[j].expand != ADDR_LINES
                        && addr_type_complete[j].expand == cmd->uc_addr_type)
                {
***************
*** 566,577 ****
  parse_addr_type_arg(
      char_u    *value,
      int               vallen,
!     long      *argt,
!     int               *addr_type_arg)
  {
      int           i, a, b;
  
!     for (i = 0; addr_type_complete[i].expand != -1; ++i)
      {
        a = (int)STRLEN(addr_type_complete[i].name) == vallen;
        b = STRNCMP(value, addr_type_complete[i].name, vallen) == 0;
--- 566,576 ----
  parse_addr_type_arg(
      char_u    *value,
      int               vallen,
!     cmd_addr_T        *addr_type_arg)
  {
      int           i, a, b;
  
!     for (i = 0; addr_type_complete[i].expand != ADDR_NONE; ++i)
      {
        a = (int)STRLEN(addr_type_complete[i].name) == vallen;
        b = STRNCMP(value, addr_type_complete[i].name, vallen) == 0;
***************
*** 582,588 ****
        }
      }
  
!     if (addr_type_complete[i].expand == -1)
      {
        char_u  *err = value;
  
--- 581,587 ----
        }
      }
  
!     if (addr_type_complete[i].expand == ADDR_NONE)
      {
        char_u  *err = value;
  
***************
*** 593,601 ****
        return FAIL;
      }
  
-     if (*addr_type_arg != ADDR_LINES)
-       *argt |= NOTADR;
- 
      return OK;
  }
  
--- 592,597 ----
***************
*** 694,700 ****
      int               *flags,
      int               *complp,
      char_u    **compl_arg,
!     int               *addr_type_arg)
  {
      char_u    *p;
  
--- 690,696 ----
      int               *flags,
      int               *complp,
      char_u    **compl_arg,
!     cmd_addr_T        *addr_type_arg)
  {
      char_u    *p;
  
***************
*** 773,779 ****
                }
  
                *def = getdigits(&p);
!               *argt |= (ZEROR | NOTADR);
  
                if (p != val + vallen || vallen == 0)
                {
--- 769,775 ----
                }
  
                *def = getdigits(&p);
!               *argt |= ZEROR;
  
                if (p != val + vallen || vallen == 0)
                {
***************
*** 782,791 ****
                    return FAIL;
                }
            }
        }
        else if (STRNICMP(attr, "count", attrlen) == 0)
        {
!           *argt |= (COUNT | ZEROR | RANGE | NOTADR);
  
            if (val != NULL)
            {
--- 778,793 ----
                    return FAIL;
                }
            }
+           // default for -range is using buffer lines
+           if (*addr_type_arg == ADDR_NONE)
+               *addr_type_arg = ADDR_LINES;
        }
        else if (STRNICMP(attr, "count", attrlen) == 0)
        {
!           *argt |= (COUNT | ZEROR | RANGE);
!           // default for -count is using any number
!           if (*addr_type_arg == ADDR_NONE)
!               *addr_type_arg = ADDR_OTHER;
  
            if (val != NULL)
            {
***************
*** 822,832 ****
                emsg(_("E179: argument required for -addr"));
                return FAIL;
            }
!           if (parse_addr_type_arg(val, (int)vallen, argt, addr_type_arg)
!                                                                     == FAIL)
                return FAIL;
            if (addr_type_arg != ADDR_LINES)
!               *argt |= (ZEROR | NOTADR) ;
        }
        else
        {
--- 824,833 ----
                emsg(_("E179: argument required for -addr"));
                return FAIL;
            }
!           if (parse_addr_type_arg(val, (int)vallen,  addr_type_arg) == FAIL)
                return FAIL;
            if (addr_type_arg != ADDR_LINES)
!               *argt |= (ZEROR) ;
        }
        else
        {
***************
*** 854,860 ****
      int               flags,
      int               compl,
      char_u    *compl_arg UNUSED,
!     int               addr_type,
      int               force)
  {
      ucmd_T    *cmd = NULL;
--- 855,861 ----
      int               flags,
      int               compl,
      char_u    *compl_arg UNUSED,
!     cmd_addr_T        addr_type,
      int               force)
  {
      ucmd_T    *cmd = NULL;
***************
*** 974,990 ****
      void
  ex_command(exarg_T *eap)
  {
!     char_u  *name;
!     char_u  *end;
!     char_u  *p;
!     long    argt = 0;
!     long    def = -1;
!     int           flags = 0;
!     int           compl = EXPAND_NOTHING;
!     char_u  *compl_arg = NULL;
!     int           addr_type_arg = ADDR_LINES;
!     int           has_attr = (eap->arg[0] == '-');
!     int           name_len;
  
      p = eap->arg;
  
--- 975,991 ----
      void
  ex_command(exarg_T *eap)
  {
!     char_u    *name;
!     char_u    *end;
!     char_u    *p;
!     long      argt = 0;
!     long      def = -1;
!     int               flags = 0;
!     int               compl = EXPAND_NOTHING;
!     char_u    *compl_arg = NULL;
!     cmd_addr_T        addr_type_arg = ADDR_NONE;
!     int               has_attr = (eap->arg[0] == '-');
!     int               name_len;
  
      p = eap->arg;
  
*** ../vim-8.1.1240/src/ex_cmds.c       2019-04-28 22:25:03.244480028 +0200
--- src/ex_cmds.c       2019-05-01 15:05:28.616274724 +0200
***************
*** 3157,3162 ****
--- 3157,3169 ----
      void
  ex_write(exarg_T *eap)
  {
+     if (eap->cmdidx == CMD_saveas)
+     {
+       // :saveas does not take a range, uses all lines.
+       eap->line1 = 1;
+       eap->line2 = curbuf->b_ml.ml_line_count;
+     }
+ 
      if (eap->usefilter)               /* input lines to shell command */
        do_bang(1, eap, FALSE, TRUE, FALSE);
      else
*** ../vim-8.1.1240/src/window.c        2019-04-28 18:04:56.062492159 +0200
--- src/window.c        2019-05-01 15:41:19.093543528 +0200
***************
*** 601,607 ****
  }
  
  /*
!  * Figure out the address type for ":wnncmd".
   */
      void
  get_wincmd_addr_type(char_u *arg, exarg_T *eap)
--- 601,607 ----
  }
  
  /*
!  * Figure out the address type for ":wincmd".
   */
      void
  get_wincmd_addr_type(char_u *arg, exarg_T *eap)
***************
*** 656,668 ****
      case 'd':
      case Ctrl_D:
  #endif
!               /* window size or any count */
!               eap->addr_type = ADDR_LINES;
                break;
  
      case Ctrl_HAT:
      case '^':
!               /* buffer number */
                eap->addr_type = ADDR_BUFFERS;
                break;
  
--- 656,668 ----
      case 'd':
      case Ctrl_D:
  #endif
!               // window size or any count
!               eap->addr_type = ADDR_OTHER;
                break;
  
      case Ctrl_HAT:
      case '^':
!               // buffer number
                eap->addr_type = ADDR_BUFFERS;
                break;
  
***************
*** 677,683 ****
      case 'W':
      case 'x':
      case Ctrl_X:
!               /* window number */
                eap->addr_type = ADDR_WINDOWS;
                break;
  
--- 677,683 ----
      case 'W':
      case 'x':
      case Ctrl_X:
!               // window number
                eap->addr_type = ADDR_WINDOWS;
                break;
  
***************
*** 694,701 ****
      case Ctrl_P:
      case '=':
      case CAR:
!               /* no count */
!               eap->addr_type = 0;
                break;
      }
  }
--- 694,701 ----
      case Ctrl_P:
      case '=':
      case CAR:
!               // no count
!               eap->addr_type = ADDR_NONE;
                break;
      }
  }
*** ../vim-8.1.1240/src/testdir/test_usercommands.vim   2019-04-27 
15:05:04.528816589 +0200
--- src/testdir/test_usercommands.vim   2019-05-01 17:16:53.029416796 +0200
***************
*** 392,400 ****
    call assert_equal(len(gettabinfo()), g:a2)
    bwipe
  
!   command! -addr=other DoSomething echo 'nothing'
    DoSomething
!   call assert_fails('%DoSomething')
  
    delcommand DoSomething
  endfunc
--- 392,404 ----
    call assert_equal(len(gettabinfo()), g:a2)
    bwipe
  
!   command! -addr=other DoSomething  let g:a1 = <line1> | let g:a2 = <line2>
    DoSomething
!   call assert_equal(line('.'), g:a1)
!   call assert_equal(line('.'), g:a2)
!   %DoSomething
!   call assert_equal(1, g:a1)
!   call assert_equal(line('$'), g:a2)
  
    delcommand DoSomething
  endfunc
***************
*** 420,426 ****
          \           execute('command DoCmd'))
    command! -count=2 DoCmd :
    call assert_equal("\n    Name              Args Address Complete    
Definition"
!         \        .. "\n    DoCmd             0    2c                  :",
          \           execute('command DoCmd'))
  
    " Test with various -addr= argument values.
--- 424,430 ----
          \           execute('command DoCmd'))
    command! -count=2 DoCmd :
    call assert_equal("\n    Name              Args Address Complete    
Definition"
!         \        .. "\n    DoCmd             0    2c ?                :",
          \           execute('command DoCmd'))
  
    " Test with various -addr= argument values.
*** ../vim-8.1.1240/src/version.c       2019-04-30 21:27:30.943623715 +0200
--- src/version.c       2019-05-01 13:04:02.709350130 +0200
***************
*** 769,770 ****
--- 769,772 ----
  {   /* Add new patch number below this line */
+ /**/
+     1241,
  /**/

-- 
ARTHUR: Listen, old crone!  Unless you tell us where we can buy a shrubbery,
        my friend and I will ... we will say "Ni!"
CRONE:  Do your worst!
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui