* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
static char sccsid
[] = "@(#)ex_usage.c 8.11 (Berkeley) 12/17/93";
(void)ex_printf(EXCOOKIE
,
"To see the list of vi commands, enter \":viusage<CR>\"\n");
(void)ex_printf(EXCOOKIE
,
"To see the list of ex commands, enter \":exusage<CR>\"\n");
(void)ex_printf(EXCOOKIE
,
"For an ex command usage statement enter \":exusage [cmd]<CR>\"\n");
(void)ex_printf(EXCOOKIE
,
"For a vi key usage statement enter \":viusage [key]<CR>\"\n");
(void)ex_printf(EXCOOKIE
, "To exit, enter \":q!\"\n");
* ex_usage -- :exusage [cmd]
* Display ex usage strings.
for (cp
= cmds
; cp
->name
!= NULL
&&
memcmp(ap
->bp
, cp
->name
, ap
->len
); ++cp
);
(void)ex_printf(EXCOOKIE
,
"The %.*s command is unknown.",
(void)ex_printf(EXCOOKIE
,
"Command: %s\n Usage: %s\n", cp
->help
, cp
->usage
);
* The "visual" command has two modes, one from ex,
* one from the vi colon line. Don't ask.
if (cp
!= &cmds
[C_VISUAL_EX
] &&
cp
!= &cmds
[C_VISUAL_VI
])
if (cp
== &cmds
[C_VISUAL_EX
])
(void)ex_printf(EXCOOKIE
,
"Command: %s\n Usage: %s\n", cp
->help
, cp
->usage
);
for (cp
= cmds
; cp
->name
!= NULL
; ++cp
)
(void)ex_printf(EXCOOKIE
,
"%*s: %s\n", MAXCMDNAMELEN
, cp
->name
, cp
->help
);
* ex_viusage -- :viusage [key]
* Display vi usage strings.
key
= cmdp
->argv
[0]->bp
[0];
/* Special case: '[' and ']' commands. */
if ((key
== '[' || key
== ']') && cmdp
->argv
[0]->bp
[1] != key
)
nokey
: (void)ex_printf(EXCOOKIE
,
"The %s key has no current meaning",
(void)ex_printf(EXCOOKIE
,
" Key:%s%s\nUsage: %s\n",
isblank(*kp
->help
) ? "" : " ", kp
->help
, kp
->usage
);
for (key
= 0; key
<= MAXVIKEY
; ++key
) {
(void)ex_printf(EXCOOKIE
, "%s\n", kp
->help
);