This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PING Re: [RFA] Make first and last lines of 'command help documentation' consistent.


Ping ?

Thanks

Philippe

On Sun, 2019-06-16 at 21:58 +0200, Philippe Waroquiers wrote:
> With this patch, the help docs now respect 2 invariants:
>   * The first line of a command help is terminated by a '.' character.
>   * The last character of a command help is not a newline character.
> 
> Note that the changes for the last invariant were done by Tom, as part of :
>  [PATCH] Remove trailing newlines from help text
>  https://sourceware.org/ml/gdb-patches/2019-06/msg00050.html
> but some occurrences have been re-introduced since then.
> 
> Some help docs had to be rephrased/restructured to respect the above
> invariants.
> 
> Before this patch, print_doc_line was printing the first line
> of a command help documentation, but stopping at the first '.'
> or ',' character.
> 
> This was giving inconsistent results :
>   * The first line of command helps was sometimes '.' terminated,
>     sometimes not.
>   * The first line of command helps was not always designed to be
>     readable/understandable/unambiguous when stopping at the first
>     '.' or ',' character.
> 
> This e.g. created the following inconsistencies/problems:
> < catch exception -- Catch Ada exceptions
> < catch handlers -- Catch Ada exceptions
> < catch syscall -- Catch system calls by their names
> < down-silently -- Same as the `down' command
> while the new help is:
> > catch exception -- Catch Ada exceptions, when raised.
> > catch handlers -- Catch Ada exceptions, when handled.
> > catch syscall -- Catch system calls by their names, groups and/or numbers.
> > down-silently -- Same as the `down' command, but does not print anything.
> 
> Also, the command help doc should not be terminated by a newline
> character, but this was not respected by all commands.
> The cli-option -OPT framework re-introduced some occurences.
> The -OPT build help framework was changed to not output newlines at the
> end of %OPTIONS% replacement.
> 
> This patch changes the help documentations to ensure the 2 invariants
> given above.
> 
> It implied to slightly rephrase or restructure some help docs.
> 
> The test gdb.base/help.exp is modified to verify these invariants
> automatically for all commands compiled in GDB.
> 
> Based on the above invariants, print_doc_line (called by
> 'apropos' and 'help' commands to print the first line of a command
> help) now outputs the full first line of a command help.
> 
> This all results in a lot of small changes in the produced help docs.
> There are less code changes than changes in the help docs, as a lot
> of docs are produced by some code (e.g. the remote packet usage settings).
> 
> If you want, you might look at the new resulting help by doing the following
> command in a HEAD GDB and in a GDB with this patch, and then
> use emacs M-x ediff-files (or the diff tool you prefer) to review
> the changes in the 'full_help.txt', checking a.o. that the
> first line of the help of a command is understanble by itself.
> 
> (gdb) |apropos -v .| cat > full_help.txt
> 
> full_help.txt has a lot of small differences (but less than the
> one_line_help.txt below) because:
>   * excess new-lines at the end of docs have been removed.
>   * missing . at end of first line have been added.
> 
> You can also produce a file with just the first line of help:
> (gdb) |apropos .| cat > one_line_help.txt
> The 'one_line_help.txt' contains a lot more of artificial differences,
> as the HEAD GDB does not output the trailing '.' character.
> 
> gdb/ChangeLog
> 2019-06-16  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
> 
> 	* cli/cli-decode.h (print_doc_line): Add for_value_prefix argument.
> 	* cli/cli-decode.c (print_doc_line): Likewise.  It now prints
> 	the full first line, except when FOR_VALUE_PREFIX.  In this case,
> 	the trailing '.' is not output, and the first character is uppercased.
> 	(print_help_for_command): Update call to print_doc_line.
> 	(print_doc_of_command): Likewise.  Output a specific string
> 	when doc string ends with a line feed to allow the testsuite
> 	to detect the broken invariant.
> 	* cli/cli-setshow.c (deprecated_show_value_hack): Likewise.
> 	* cli/cli-option.c (append_indented_doc): Do not append newline.
> 	(build_help_option): Append newline after first appended_indented_doc
> 	only if a second call is done.
> 	(build_help): Append 2 new lines before each option, except the first
> 	one.
> 	* compile/compile.c (_initialize_compile): Add new lines after
> 	%OPTIONS%, when not at the end of the help.
> C	hange help doc or code
> 	producing the help doc to respect the invariants.
> 	* maint-test-options.c (_initialize_maint_test_options): Likewise.
> 	Also removed the new line after 'Options:', as all other commands
> 	do not put an empty line between 'Options:' and the first option.
> 	* printcmd.c (_initialize_printcmd): Likewise.
> 	* stack.c (_initialize_stack): Likewise.
> 	* interps.c (interpreter_exec_cmd): Fix "Usage:" line that was
> 	incorrectly telling COMMAND is optional.
> 	* ada-lang.c (_initialize_ada_language): Change help doc or code
> 	producing the help doc to respect the invariants.
> 	* ada-tasks.c (_initialize_ada_tasks): Likewise.
> 	* breakpoint.c (_initialize_breakpoint): Likewise.
> 	* cli/cli-cmds.c (_initialize_cli_cmds): Likewise.
> 	* cli/cli-logging.c (_initialize_cli_logging): Likewise.
> 	* cli/cli-setshow.c (_initialize_cli_setshow): Likewise.
> 	* cli/cli-style.c (cli_style_option::add_setshow_commands,
> 	_initialize_cli_style): Likewise.
> 	* corelow.c (core_target_info): Likewise.
> 	* dwarf-index-cache.c (_initialize_index_cache): Likewise.
> 	* dwarf2read.c (_initialize_dwarf2_read): Likewise.
> 	* filesystem.c (_initialize_filesystem): Likewise.
> 	* frame.c (_initialize_frame): Likewise.
> 	* gnu-nat.c (add_task_commands): Likewise.
> 	* infcall.c (_initialize_infcall): Likewise.
> 	* infcmd.c (_initialize_infcmd): Likewise.
> 	* interps.c (_initialize_interpreter): Likewise.
> 	* language.c (_initialize_language): Likewise.
> 	* linux-fork.c (_initialize_linux_fork): Likewise.
> 	* maint-test-settings.c (_initialize_maint_test_settings): Likewise.
> 	* maint.c (_initialize_maint_cmds): Likewise.
> 	* memattr.c (_initialize_mem): Likewise.
> 	* printcmd.c (_initialize_printcmd): Likewise.
> 	* python/lib/gdb/function/strfns.py (_MemEq, _StrLen, _StrEq,
> 	_RegEx): Likewise.
> 	* ravenscar-thread.c (_initialize_ravenscar): Likewise.
> 	* record-btrace.c (_initialize_record_btrace): Likewise.
> 	* record-full.c (_initialize_record_full): Likewise.
> 	* record.c (_initialize_record): Likewise.
> 	* regcache-dump.c (_initialize_regcache_dump): Likewise.
> 	* regcache.c (_initialize_regcache): Likewise.
> 	* remote.c (add_packet_config_cmd, init_remote_threadtests,
> 	_initialize_remote): Likewise.
> 	* ser-tcp.c (_initialize_ser_tcp): Likewise.
> 	* serial.c (_initialize_serial): Likewise.
> 	* skip.c (_initialize_step_skip): Likewise.
> 	* source.c (_initialize_source): Likewise.
> 	* stack.c (_initialize_stack): Likewise.
> 	* symfile.c (_initialize_symfile): Likewise.
> 	* symtab.c (_initialize_symtab): Likewise.
> 	* target-descriptions.c (_initialize_target_descriptions): Likewise.
> 	* top.c (init_main): Likewise.
> 	* tracefile-tfile.c (tfile_target_info): Likewise.
> 	* tracepoint.c (_initialize_tracepoint): Likewise.
> 	* tui/tui-win.c (_initialize_tui_win): Likewise.
> 	* utils.c (add_internal_problem_command): Likewise.
> 	* valprint.c (value_print_option_defs): Likewise.
> 
> gdb/testsuite/ChangeLog
> 2019-06-16  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
> 
> 	* gdb.base/style.exp: Update tests for help doc new invariants.
> 	* gdb.base/help.exp: Likewise.	Add tests to check new invariants.
> ---
>  gdb/ada-lang.c                        | 12 +++---
>  gdb/ada-tasks.c                       |  4 +-
>  gdb/breakpoint.c                      | 58 +++++++++++++++++----------
>  gdb/cli/cli-cmds.c                    |  9 +++--
>  gdb/cli/cli-decode.c                  | 38 +++++++++++++-----
>  gdb/cli/cli-decode.h                  | 11 +++--
>  gdb/cli/cli-logging.c                 |  4 +-
>  gdb/cli/cli-option.c                  | 16 ++++++--
>  gdb/cli/cli-setshow.c                 |  5 ++-
>  gdb/cli/cli-style.c                   | 28 ++++++-------
>  gdb/compile/compile.c                 | 12 +++---
>  gdb/corelow.c                         |  3 +-
>  gdb/dwarf-index-cache.c               |  4 +-
>  gdb/dwarf2read.c                      |  6 +--
>  gdb/filesystem.c                      |  4 +-
>  gdb/frame.c                           |  4 +-
>  gdb/gnu-nat.c                         | 10 ++---
>  gdb/infcall.c                         |  2 +-
>  gdb/infcmd.c                          |  5 ++-
>  gdb/interps.c                         |  6 +--
>  gdb/language.c                        |  8 ++--
>  gdb/linux-fork.c                      |  3 +-
>  gdb/maint-test-options.c              |  4 +-
>  gdb/maint-test-settings.c             | 48 +++++++++++-----------
>  gdb/maint.c                           | 21 +++++-----
>  gdb/memattr.c                         | 10 ++---
>  gdb/printcmd.c                        |  9 +++--
>  gdb/python/lib/gdb/function/strfns.py |  8 ++--
>  gdb/ravenscar-thread.c                |  8 ++--
>  gdb/record-btrace.c                   | 14 +++----
>  gdb/record-full.c                     |  4 +-
>  gdb/record.c                          |  6 +--
>  gdb/regcache-dump.c                   |  4 +-
>  gdb/regcache.c                        |  2 +-
>  gdb/remote.c                          | 36 ++++++++---------
>  gdb/ser-tcp.c                         | 16 ++++----
>  gdb/serial.c                          |  8 ++--
>  gdb/skip.c                            | 30 ++++++++------
>  gdb/source.c                          |  3 ++
>  gdb/stack.c                           | 13 +++---
>  gdb/symfile.c                         |  4 +-
>  gdb/symtab.c                          |  3 +-
>  gdb/target-descriptions.c             |  9 +++--
>  gdb/testsuite/gdb.base/help.exp       | 17 ++++++--
>  gdb/testsuite/gdb.base/style.exp      |  4 +-
>  gdb/top.c                             | 17 ++++----
>  gdb/tracefile-tfile.c                 |  3 +-
>  gdb/tracepoint.c                      | 20 ++++-----
>  gdb/tui/tui-win.c                     |  6 +--
>  gdb/utils.c                           |  8 ++--
>  gdb/valprint.c                        |  2 +-
>  51 files changed, 330 insertions(+), 259 deletions(-)
> 
> diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
> index 1b5f18316f..c6c702459d 100644
> --- a/gdb/ada-lang.c
> +++ b/gdb/ada-lang.c
> @@ -14380,7 +14380,7 @@ _initialize_ada_language (void)
>    initialize_ada_catchpoint_ops ();
>  
>    add_prefix_cmd ("ada", no_class, set_ada_command,
> -                  _("Prefix command for changing Ada-specific settings"),
> +                  _("Prefix command for changing Ada-specific settings."),
>                    &set_ada_list, "set ada ", 0, &setlist);
>  
>    add_prefix_cmd ("ada", no_class, show_ada_command,
> @@ -14389,8 +14389,8 @@ _initialize_ada_language (void)
>  
>    add_setshow_boolean_cmd ("trust-PAD-over-XVS", class_obscure,
>                             &trust_pad_over_xvs, _("\
> -Enable or disable an optimization trusting PAD types over XVS types"), _("\
> -Show whether an optimization trusting PAD types over XVS types is activated"),
> +Enable or disable an optimization trusting PAD types over XVS types."), _("\
> +Show whether an optimization trusting PAD types over XVS types is activated."),
>                             _("\
>  This is related to the encoding used by the GNAT compiler.  The debugger\n\
>  should normally trust the contents of PAD types, but certain older versions\n\
> @@ -14404,9 +14404,9 @@ this option to \"off\" unless necessary."),
>    add_setshow_boolean_cmd ("print-signatures", class_vars,
>  			   &print_signatures, _("\
>  Enable or disable the output of formal and return types for functions in the \
> -overloads selection menu"), _("\
> +overloads selection menu."), _("\
>  Show whether the output of formal and return types for functions in the \
> -overloads selection menu is activated"),
> +overloads selection menu is activated."),
>  			   NULL, NULL, NULL, &set_ada_list, &show_ada_list);
>  
>    add_catch_command ("exception", _("\
> @@ -14468,7 +14468,7 @@ the regular expression are listed."));
>                    0/*allow-unknown*/, &maintenance_set_cmdlist);
>  
>    add_prefix_cmd ("ada", class_maintenance, maint_show_ada_cmd,
> -		  _("Show Ada maintenance-related variables"),
> +		  _("Show Ada maintenance-related variables."),
>                    &maint_show_ada_cmdlist, "maintenance show ada ",
>                    0/*allow-unknown*/, &maintenance_show_cmdlist);
>  
> diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
> index 9c07f0ca22..f34b5b81e7 100644
> --- a/gdb/ada-tasks.c
> +++ b/gdb/ada-tasks.c
> @@ -1413,9 +1413,9 @@ _initialize_tasks (void)
>  
>    /* Some new commands provided by this module.  */
>    add_info ("tasks", info_tasks_command,
> -            _("Provide information about all known Ada tasks"));
> +            _("Provide information about all known Ada tasks."));
>    add_cmd ("task", class_run, task_command,
>             _("Use this command to switch between Ada tasks.\n\
> -Without argument, this command simply prints the current task ID"),
> +Without argument, this command simply prints the current task ID."),
>             &cmdlist);
>  }
> diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
> index ccd778b7a1..8e5a0d3dc4 100644
> --- a/gdb/breakpoint.c
> +++ b/gdb/breakpoint.c
> @@ -15483,7 +15483,8 @@ BREAK_ARGS_HELP ("thbreak")));
>    set_cmd_completer (c, location_completer);
>  
>    add_prefix_cmd ("enable", class_breakpoint, enable_command, _("\
> -Enable some breakpoints.\n\
> +Enable all or some breakpoints.\n\
> +Usage: enable [BREAKPOINTNUM]...\n\
>  Give breakpoint numbers (separated by spaces) as arguments.\n\
>  With no subcommand, breakpoints are enabled until you command otherwise.\n\
>  This is used to cancel the effect of the \"disable\" command.\n\
> @@ -15493,46 +15494,54 @@ With a subcommand you can enable temporarily."),
>    add_com_alias ("en", "enable", class_breakpoint, 1);
>  
>    add_prefix_cmd ("breakpoints", class_breakpoint, enable_command, _("\
> -Enable some breakpoints.\n\
> +Enable all or some breakpoints.\n\
> +Usage: enable breakpoints [BREAKPOINTNUM]...\n\
>  Give breakpoint numbers (separated by spaces) as arguments.\n\
>  This is used to cancel the effect of the \"disable\" command.\n\
>  May be abbreviated to simply \"enable\"."),
>  		   &enablebreaklist, "enable breakpoints ", 1, &enablelist);
>  
>    add_cmd ("once", no_class, enable_once_command, _("\
> -Enable breakpoints for one hit.  Give breakpoint numbers.\n\
> +Enable some breakpoints for one hit.\n\
> +Usage: enable breakpoints once BREAKPOINTNUM...\n\
>  If a breakpoint is hit while enabled in this fashion, it becomes disabled."),
>  	   &enablebreaklist);
>  
>    add_cmd ("delete", no_class, enable_delete_command, _("\
> -Enable breakpoints and delete when hit.  Give breakpoint numbers.\n\
> +Enable some breakpoints and delete when hit.\n\
> +Usage: enable breakpoints delete BREAKPOINTNUM...\n\
>  If a breakpoint is hit while enabled in this fashion, it is deleted."),
>  	   &enablebreaklist);
>  
>    add_cmd ("count", no_class, enable_count_command, _("\
> -Enable breakpoints for COUNT hits.  Give count and then breakpoint numbers.\n\
> +Enable some breakpoints for COUNT hits.\n\
> +Usage: enable breakpoints count COUNT BREAKPOINTNUM...\n\
>  If a breakpoint is hit while enabled in this fashion,\n\
>  the count is decremented; when it reaches zero, the breakpoint is disabled."),
>  	   &enablebreaklist);
>  
>    add_cmd ("delete", no_class, enable_delete_command, _("\
> -Enable breakpoints and delete when hit.  Give breakpoint numbers.\n\
> +Enable some breakpoints and delete when hit.\n\
> +Usage: enable delete BREAKPOINTNUM...\n\
>  If a breakpoint is hit while enabled in this fashion, it is deleted."),
>  	   &enablelist);
>  
>    add_cmd ("once", no_class, enable_once_command, _("\
> -Enable breakpoints for one hit.  Give breakpoint numbers.\n\
> +Enable some breakpoints for one hit.\n\
> +Usage: enable once BREAKPOINTNUM...\n\
>  If a breakpoint is hit while enabled in this fashion, it becomes disabled."),
>  	   &enablelist);
>  
>    add_cmd ("count", no_class, enable_count_command, _("\
> -Enable breakpoints for COUNT hits.  Give count and then breakpoint numbers.\n\
> +Enable some breakpoints for COUNT hits.\n\
> +Usage: enable count COUNT BREAKPOINTNUM...\n\
>  If a breakpoint is hit while enabled in this fashion,\n\
>  the count is decremented; when it reaches zero, the breakpoint is disabled."),
>  	   &enablelist);
>  
>    add_prefix_cmd ("disable", class_breakpoint, disable_command, _("\
> -Disable some breakpoints.\n\
> +Disable all or some breakpoints.\n\
> +Usage: disable [BREAKPOINTNUM]...\n\
>  Arguments are breakpoint numbers with spaces in between.\n\
>  To disable all breakpoints, give no argument.\n\
>  A disabled breakpoint is not forgotten, but has no effect until re-enabled."),
> @@ -15541,7 +15550,8 @@ A disabled breakpoint is not forgotten, but has no effect until re-enabled."),
>    add_com_alias ("disa", "disable", class_breakpoint, 1);
>  
>    add_cmd ("breakpoints", class_alias, disable_command, _("\
> -Disable some breakpoints.\n\
> +Disable all or some breakpoints.\n\
> +Usage: disable breakpoints [BREAKPOINTNUM]...\n\
>  Arguments are breakpoint numbers with spaces in between.\n\
>  To disable all breakpoints, give no argument.\n\
>  A disabled breakpoint is not forgotten, but has no effect until re-enabled.\n\
> @@ -15549,7 +15559,8 @@ This command may be abbreviated \"disable\"."),
>  	   &disablelist);
>  
>    add_prefix_cmd ("delete", class_breakpoint, delete_command, _("\
> -Delete some breakpoints or auto-display expressions.\n\
> +Delete all or some breakpoints or auto-display expressions.\n\
> +Usage: delete [BREAKPOINTNUM]...\n\
>  Arguments are breakpoint numbers with spaces in between.\n\
>  To delete all breakpoints, give no argument.\n\
>  \n\
> @@ -15560,7 +15571,8 @@ The \"unset\" command is also an alias for \"delete\"."),
>    add_com_alias ("del", "delete", class_breakpoint, 1);
>  
>    add_cmd ("breakpoints", class_alias, delete_command, _("\
> -Delete some breakpoints or auto-display expressions.\n\
> +Delete all or some breakpoints or auto-display expressions.\n\
> +Usage: delete breakpoints [BREAKPOINTNUM]...\n\
>  Arguments are breakpoint numbers with spaces in between.\n\
>  To delete all breakpoints, give no argument.\n\
>  This command may be abbreviated \"delete\"."),
> @@ -15837,15 +15849,15 @@ Use the 'source' command in another debug session to restore them."),
>    deprecate_cmd (c, "save tracepoints");
>  
>    add_prefix_cmd ("breakpoint", class_maintenance, set_breakpoint_cmd, _("\
> -Breakpoint specific settings\n\
> +Breakpoint specific settings.\n\
>  Configure various breakpoint-specific variables such as\n\
> -pending breakpoint behavior"),
> +pending breakpoint behavior."),
>  		  &breakpoint_set_cmdlist, "set breakpoint ",
>  		  0/*allow-unknown*/, &setlist);
>    add_prefix_cmd ("breakpoint", class_maintenance, show_breakpoint_cmd, _("\
> -Breakpoint specific settings\n\
> +Breakpoint specific settings.\n\
>  Configure various breakpoint-specific variables such as\n\
> -pending breakpoint behavior"),
> +pending breakpoint behavior."),
>  		  &breakpoint_show_cmdlist, "show breakpoint ",
>  		  0/*allow-unknown*/, &showlist);
>  
> @@ -15946,16 +15958,16 @@ output stream by setting dprintf-function and dprintf-channel."),
>    dprintf_function = xstrdup ("printf");
>    add_setshow_string_cmd ("dprintf-function", class_support,
>  			  &dprintf_function, _("\
> -Set the function to use for dynamic printf"), _("\
> -Show the function to use for dynamic printf"), NULL,
> +Set the function to use for dynamic printf."), _("\
> +Show the function to use for dynamic printf."), NULL,
>  			  update_dprintf_commands, NULL,
>  			  &setlist, &showlist);
>  
>    dprintf_channel = xstrdup ("");
>    add_setshow_string_cmd ("dprintf-channel", class_support,
>  			  &dprintf_channel, _("\
> -Set the channel to use for dynamic printf"), _("\
> -Show the channel to use for dynamic printf"), NULL,
> +Set the channel to use for dynamic printf."), _("\
> +Show the channel to use for dynamic printf."), NULL,
>  			  update_dprintf_commands, NULL,
>  			  &setlist, &showlist);
>  
> @@ -15970,8 +15982,10 @@ even if GDB disconnects or detaches from the target."),
>  			   &setlist, &showlist);
>  
>    add_com ("agent-printf", class_vars, agent_printf_command, _("\
> -agent-printf \"printf format string\", arg1, arg2, arg3, ..., argn\n\
> -(target agent only) This is useful for formatted output in user-defined commands."));
> +Target agent only formatted printing, like the C \"printf\" function.\n\
> +Usage: agent-printf \"format string\", ARG1, ARG2, ARG3, ..., ARGN\n\
> +This supports most C printf format specifications, like %s, %d, etc.\n\
> +This is useful for formatted output in user-defined commands."));
>  
>    automatic_hardware_breakpoints = 1;
>  
> diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
> index 62f4d7f0c5..5a17673f71 100644
> --- a/gdb/cli/cli-cmds.c
> +++ b/gdb/cli/cli-cmds.c
> @@ -1769,7 +1769,8 @@ The commands below can be used to select other frames by number or address."),
>    /* Define general commands.  */
>  
>    add_com ("pwd", class_files, pwd_command, _("\
> -Print working directory.  This is used for your program as well."));
> +Print working directory.\n\
> +This is used for your program as well."));
>  
>    c = add_cmd ("cd", class_files, cd_command, _("\
>  Set working directory to DIR for debugger.\n\
> @@ -1881,11 +1882,11 @@ from the target."),
>  				       &setlist, &showlist);
>  
>    add_prefix_cmd ("debug", no_class, set_debug,
> -		  _("Generic command for setting gdb debugging flags"),
> +		  _("Generic command for setting gdb debugging flags."),
>  		  &setdebuglist, "set debug ", 0, &setlist);
>  
>    add_prefix_cmd ("debug", no_class, show_debug,
> -		  _("Generic command for showing gdb debugging flags"),
> +		  _("Generic command for showing gdb debugging flags."),
>  		  &showdebuglist, "show debug ", 0, &showlist);
>  
>    c = add_com ("shell", class_support, shell_command, _("\
> @@ -1984,7 +1985,7 @@ Show definitions of non-python/scheme user defined commands.\n\
>  Argument is the name of the user defined command.\n\
>  With no argument, show definitions of all user defined commands."), &showlist);
>    add_com ("apropos", class_support, apropos_command, _("\
> -Search for commands matching a REGEXP\n\
> +Search for commands matching a REGEXP.\n\
>  Usage: apropos [-v] REGEXP\n\
>  Flag -v indicates to produce a verbose output, showing full documentation\n\
>  of the matching commands."));
> diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
> index a6ddd8cc6d..21d2a7b1f6 100644
> --- a/gdb/cli/cli-decode.c
> +++ b/gdb/cli/cli-decode.c
> @@ -978,8 +978,15 @@ print_doc_of_command (struct cmd_list_element *c, const char *prefix,
>    if (verbose)
>      fputs_highlighted (c->doc, highlight, stream);
>    else
> -    print_doc_line (stream, c->doc);
> +    print_doc_line (stream, c->doc, false);
>    fputs_filtered ("\n", stream);
> +
> +  /* Checks that the documentation does not help with a new line.
> +     If it does, output a special marker string that gdb.base/help.exp
> +     will detect.  */
> +  if (c->doc[strlen (c->doc) - 1] == '\n')
> +    fprintf_filtered (stream, "END_OF_LINE@END_OF_DOC %s%s\n",
> +		      prefix, c->name);
>  }
>  
>  /* Recursively walk the commandlist structures, and print out the
> @@ -1217,9 +1224,11 @@ help_all (struct ui_file *stream)
>  
>  }
>  
> -/* Print only the first line of STR on STREAM.  */
> +/* See cli-decode.h.  */
> +
>  void
> -print_doc_line (struct ui_file *stream, const char *str)
> +print_doc_line (struct ui_file *stream, const char *str,
> +		bool for_value_prefix)
>  {
>    static char *line_buffer = 0;
>    static int line_size;
> @@ -1231,11 +1240,9 @@ print_doc_line (struct ui_file *stream, const char *str)
>        line_buffer = (char *) xmalloc (line_size);
>      }
>  
> -  /* Keep printing '.' or ',' not followed by a whitespace for embedded strings
> -     like '.gdbinit'.  */
> +  /* Searches for the first end of line or the end of STR.  */
>    p = str;
> -  while (*p && *p != '\n'
> -	 && ((*p != '.' && *p != ',') || (p[1] && !isspace (p[1]))))
> +  while (*p && *p != '\n')
>      p++;
>    if (p - str > line_size - 1)
>      {
> @@ -1244,9 +1251,18 @@ print_doc_line (struct ui_file *stream, const char *str)
>        line_buffer = (char *) xmalloc (line_size);
>      }
>    strncpy (line_buffer, str, p - str);
> -  line_buffer[p - str] = '\0';
> -  if (islower (line_buffer[0]))
> -    line_buffer[0] = toupper (line_buffer[0]);
> +  if (for_value_prefix)
> +    {
> +      if (islower (line_buffer[0]))
> +	line_buffer[0] = toupper (line_buffer[0]);
> +      gdb_assert (p > str);
> +      if (line_buffer[p - str - 1] == '.')
> +	line_buffer[p - str - 1] = '\0';
> +      else
> +	line_buffer[p - str] = '\0';
> +    }
> +  else
> +    line_buffer[p - str] = '\0';
>    fputs_filtered (line_buffer, stream);
>  }
>  
> @@ -1260,7 +1276,7 @@ print_help_for_command (struct cmd_list_element *c, const char *prefix,
>    fprintf_styled (stream, title_style.style (),
>  		  "%s%s", prefix, c->name);
>    fputs_filtered (" -- ", stream);
> -  print_doc_line (stream, c->doc);
> +  print_doc_line (stream, c->doc, false);
>    fputs_filtered ("\n", stream);
>  
>    if (recurse
> diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
> index 05280d9d22..b72970b635 100644
> --- a/gdb/cli/cli-decode.h
> +++ b/gdb/cli/cli-decode.h
> @@ -257,9 +257,14 @@ extern void apropos_cmd (struct ui_file *, struct cmd_list_element *,
>  
>  extern void not_just_help_class_command (const char *arg, int from_tty);
>  
> -/* Exported to cli/cli-setshow.c */
> -
> -extern void print_doc_line (struct ui_file *, const char *);
> +/* Print only the first line of STR on STREAM.
> +   FOR_VALUE_PREFIX true indicates that the first line is output
> +   to be a prefix to show a value (see deprecated_show_value_hack):
> +   the first character is printed in uppercase, and the trailing
> +   dot character is not printed.  */
> +
> +extern void print_doc_line (struct ui_file *stream, const char *str,
> +			    bool for_value_prefix);
>  
>  /* The enums of boolean commands.  */
>  extern const char * const boolean_enums[];
> diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
> index a8b9955c57..9e39be197b 100644
> --- a/gdb/cli/cli-logging.c
> +++ b/gdb/cli/cli-logging.c
> @@ -207,10 +207,10 @@ _initialize_cli_logging (void)
>    static struct cmd_list_element *set_logging_cmdlist, *show_logging_cmdlist;
>  
>    add_prefix_cmd ("logging", class_support, set_logging_command,
> -		  _("Set logging options"), &set_logging_cmdlist,
> +		  _("Set logging options."), &set_logging_cmdlist,
>  		  "set logging ", 0, &setlist);
>    add_prefix_cmd ("logging", class_support, show_logging_command,
> -		  _("Show logging options"), &show_logging_cmdlist,
> +		  _("Show logging options."), &show_logging_cmdlist,
>  		  "show logging ", 0, &showlist);
>    add_setshow_boolean_cmd ("overwrite", class_support, &logging_overwrite, _("\
>  Set whether logging overwrites or appends to the log file."), _("\
> diff --git a/gdb/cli/cli-option.c b/gdb/cli/cli-option.c
> index 9a53ec0592..96243c9ec6 100644
> --- a/gdb/cli/cli-option.c
> +++ b/gdb/cli/cli-option.c
> @@ -611,7 +611,6 @@ append_indented_doc (const char *doc, std::string &help)
>      }
>    help += "    ";
>    help += p;
> -  help += '\n';
>  }
>  
>  /* Fill HELP with an auto-generated "help" string fragment for
> @@ -640,8 +639,10 @@ build_help_option (gdb::array_view<const option_def> options,
>        help += "\n";
>        append_indented_doc (o.set_doc, help);
>        if (o.help_doc != nullptr)
> -	append_indented_doc (o.help_doc, help);
> -      help += '\n';
> +	{
> +	  help += "\n";
> +	  append_indented_doc (o.help_doc, help);
> +	}
>      }
>  }
>  
> @@ -651,6 +652,7 @@ std::string
>  build_help (const char *help_tmpl,
>  	    gdb::array_view<const option_def_group> options_group)
>  {
> +  bool need_newlines = false;
>    std::string help_str;
>  
>    const char *p = strstr (help_tmpl, "%OPTIONS%");
> @@ -658,7 +660,13 @@ build_help (const char *help_tmpl,
>  
>    for (const auto &grp : options_group)
>      for (const auto &opt : grp.options)
> -      build_help_option (opt, help_str);
> +      {
> +	if (need_newlines)
> +	  help_str += "\n\n";
> +	else
> +	  need_newlines = true;
> +	build_help_option (opt, help_str);
> +      }
>  
>    p += strlen ("%OPTIONS%");
>    help_str.append (p);
> diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
> index 8199fa7c0b..b68ce99200 100644
> --- a/gdb/cli/cli-setshow.c
> +++ b/gdb/cli/cli-setshow.c
> @@ -130,8 +130,9 @@ deprecated_show_value_hack (struct ui_file *ignore_file,
>    /* If there's no command or value, don't try to print it out.  */
>    if (c == NULL || value == NULL)
>      return;
> -  /* Print doc minus "show" at start.  */
> -  print_doc_line (gdb_stdout, c->doc + 5);
> +  /* Print doc minus "Show " at start.  Tell print_doc_line that
> +     this is for a 'show value' prefix.  */
> +  print_doc_line (gdb_stdout, c->doc + 5, true);
>    switch (c->var_type)
>      {
>      case var_string:
> diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c
> index fb6486bfdf..e594e38cd6 100644
> --- a/gdb/cli/cli-style.c
> +++ b/gdb/cli/cli-style.c
> @@ -206,24 +206,24 @@ cli_style_option::add_setshow_commands (enum command_class theclass,
>  
>    add_setshow_enum_cmd ("foreground", theclass, cli_colors,
>  			&m_foreground,
> -			_("Set the foreground color for this property"),
> -			_("Show the foreground color for this property"),
> +			_("Set the foreground color for this property."),
> +			_("Show the foreground color for this property."),
>  			nullptr,
>  			nullptr,
>  			do_show_foreground,
>  			&m_set_list, &m_show_list, (void *) this);
>    add_setshow_enum_cmd ("background", theclass, cli_colors,
>  			&m_background,
> -			_("Set the background color for this property"),
> -			_("Show the background color for this property"),
> +			_("Set the background color for this property."),
> +			_("Show the background color for this property."),
>  			nullptr,
>  			nullptr,
>  			do_show_background,
>  			&m_set_list, &m_show_list, (void *) this);
>    add_setshow_enum_cmd ("intensity", theclass, cli_intensities,
>  			&m_intensity,
> -			_("Set the display intensity for this property"),
> -			_("Show the display intensity for this property"),
> +			_("Set the display intensity for this property."),
> +			_("Show the display intensity for this property."),
>  			nullptr,
>  			nullptr,
>  			do_show_intensity,
> @@ -290,11 +290,11 @@ void
>  _initialize_cli_style ()
>  {
>    add_prefix_cmd ("style", no_class, set_style, _("\
> -Style-specific settings\n\
> +Style-specific settings.\n\
>  Configure various style-related variables, such as colors"),
>  		  &style_set_list, "set style ", 0, &setlist);
>    add_prefix_cmd ("style", no_class, show_style, _("\
> -Style-specific settings\n\
> +Style-specific settings.\n\
>  Configure various style-related variables, such as colors"),
>  		  &style_show_list, "show style ", 0, &showlist);
>  
> @@ -341,34 +341,34 @@ it was not linked against GNU Source Highlight."
>  
>    STYLE_ADD_SETSHOW_COMMANDS (file_name_style,
>  			      _("\
> -Filename display styling\n\
> +Filename display styling.\n\
>  Configure filename colors and display intensity."));
>  
>    STYLE_ADD_SETSHOW_COMMANDS (function_name_style,
>  			      _("\
> -Function name display styling\n\
> +Function name display styling.\n\
>  Configure function name colors and display intensity"));
>  
>    STYLE_ADD_SETSHOW_COMMANDS (variable_name_style,
>  			      _("\
> -Variable name display styling\n\
> +Variable name display styling.\n\
>  Configure variable name colors and display intensity"));
>  
>    STYLE_ADD_SETSHOW_COMMANDS (address_style,
>  			      _("\
> -Address display styling\n\
> +Address display styling.\n\
>  Configure address colors and display intensity"));
>  
>    STYLE_ADD_SETSHOW_COMMANDS (title_style,
>  			      _("\
> -Title display styling\n\
> +Title display styling.\n\
>  Configure title colors and display intensity\n\
>  Some commands (such as \"apropos -v REGEXP\") use the title style to improve\n\
>  readability."));
>  
>    STYLE_ADD_SETSHOW_COMMANDS (highlight_style,
>  			      _("\
> -Highlight display styling\n\
> +Highlight display styling.\n\
>  Configure highlight colors and display intensity\n\
>  Some commands use the highlight style to draw the attention to a part\n\
>  of their output."));
> diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
> index 25d0bfe602..f82af8679c 100644
> --- a/gdb/compile/compile.c
> +++ b/gdb/compile/compile.c
> @@ -978,6 +978,7 @@ Usage: compile code [OPTION]... [CODE]\n\
>  \n\
>  Options:\n\
>  %OPTIONS%\n\
> +\n\
>  The source code may be specified as a simple one line expression, e.g.:\n\
>  \n\
>      compile code printf(\"Hello world\\n\");\n\
> @@ -1017,7 +1018,8 @@ Evaluate EXPR by using the compiler and print result.\n\
>  Usage: compile print [[OPTION]... --] [/FMT] [EXPR]\n\
>  \n\
>  Options:\n\
> -%OPTIONS%\
> +%OPTIONS%\n\
> +\n\
>  Note: because this command accepts arbitrary expressions, if you\n\
>  specify any command option, you must use a double dash (\"--\")\n\
>  to mark the end of option processing.  E.g.: \"compile print -o -- myobj\".\n\
> @@ -1049,8 +1051,8 @@ When on, compile command debugging is enabled."),
>  
>    add_setshow_string_cmd ("compile-args", class_support,
>  			  &compile_args,
> -			  _("Set compile command GCC command-line arguments"),
> -			  _("Show compile command GCC command-line arguments"),
> +			  _("Set compile command GCC command-line arguments."),
> +			  _("Show compile command GCC command-line arguments."),
>  			  _("\
>  Use options like -I (include file directory) or ABI settings.\n\
>  String quoting is parsed like in shell, for example:\n\
> @@ -1078,9 +1080,9 @@ String quoting is parsed like in shell, for example:\n\
>    add_setshow_optional_filename_cmd ("compile-gcc", class_support,
>  				     &compile_gcc,
>  				     _("Set compile command "
> -				       "GCC driver filename"),
> +				       "GCC driver filename."),
>  				     _("Show compile command "
> -				       "GCC driver filename"),
> +				       "GCC driver filename."),
>  				     _("\
>  It should be absolute filename of the gcc executable.\n\
>  If empty the default target triplet will be searched in $PATH."),
> diff --git a/gdb/corelow.c b/gdb/corelow.c
> index 9fcc2d2372..511fea81fa 100644
> --- a/gdb/corelow.c
> +++ b/gdb/corelow.c
> @@ -56,7 +56,8 @@ static core_fns *sniff_core_bfd (gdbarch *core_gdbarch,
>  static const target_info core_target_info = {
>    "core",
>    N_("Local core dump file"),
> -  N_("Use a core file as a target.  Specify the filename of the core file.")
> +  N_("Use a core file as a target.\n\
> +Specify the filename of the core file.")
>  };
>  
>  class core_target final : public process_stratum_target
> diff --git a/gdb/dwarf-index-cache.c b/gdb/dwarf-index-cache.c
> index 7222f0528d..a036f5b207 100644
> --- a/gdb/dwarf-index-cache.c
> +++ b/gdb/dwarf-index-cache.c
> @@ -317,12 +317,12 @@ _initialize_index_cache ()
>  
>    /* set index-cache */
>    add_prefix_cmd ("index-cache", class_files, set_index_cache_command,
> -		  _("Set index-cache options"), &set_index_cache_prefix_list,
> +		  _("Set index-cache options."), &set_index_cache_prefix_list,
>  		  "set index-cache ", false, &setlist);
>  
>    /* show index-cache */
>    add_prefix_cmd ("index-cache", class_files, show_index_cache_command,
> -		  _("Show index-cache options"), &show_index_cache_prefix_list,
> +		  _("Show index-cache options."), &show_index_cache_prefix_list,
>  		  "show index-cache ", false, &showlist);
>  
>    /* set index-cache on */
> diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
> index 4cf9fcfa21..49cd1e8a62 100644
> --- a/gdb/dwarf2read.c
> +++ b/gdb/dwarf2read.c
> @@ -25794,13 +25794,13 @@ _initialize_dwarf2_read (void)
>  {
>    add_prefix_cmd ("dwarf", class_maintenance, set_dwarf_cmd, _("\
>  Set DWARF specific variables.\n\
> -Configure DWARF variables such as the cache size"),
> +Configure DWARF variables such as the cache size."),
>                    &set_dwarf_cmdlist, "maintenance set dwarf ",
>                    0/*allow-unknown*/, &maintenance_set_cmdlist);
>  
>    add_prefix_cmd ("dwarf", class_maintenance, show_dwarf_cmd, _("\
> -Show DWARF specific variables\n\
> -Show DWARF variables such as the cache size"),
> +Show DWARF specific variables.\n\
> +Show DWARF variables such as the cache size."),
>                    &show_dwarf_cmdlist, "maintenance show dwarf ",
>                    0/*allow-unknown*/, &maintenance_show_cmdlist);
>  
> diff --git a/gdb/filesystem.c b/gdb/filesystem.c
> index fdc4713007..a942e7067d 100644
> --- a/gdb/filesystem.c
> +++ b/gdb/filesystem.c
> @@ -83,8 +83,8 @@ _initialize_filesystem (void)
>  			class_files,
>  			target_file_system_kinds,
>  			&target_file_system_kind, _("\
> -Set assumed file system kind for target reported file names"), _("\
> -Show assumed file system kind for target reported file names"),
> +Set assumed file system kind for target reported file names."), _("\
> +Show assumed file system kind for target reported file names."),
>  			_("\
>  If `unix', target file names (e.g., loaded shared library file names)\n\
>  starting the forward slash (`/') character are considered absolute,\n\
> diff --git a/gdb/frame.c b/gdb/frame.c
> index 84e0397db9..adac24f68c 100644
> --- a/gdb/frame.c
> +++ b/gdb/frame.c
> @@ -2949,8 +2949,8 @@ Configure backtrace variables such as the backtrace limit"),
>  		  &set_backtrace_cmdlist, "set backtrace ",
>  		  0/*allow-unknown*/, &setlist);
>    add_prefix_cmd ("backtrace", class_maintenance, show_backtrace_cmd, _("\
> -Show backtrace specific variables\n\
> -Show backtrace variables such as the backtrace limit"),
> +Show backtrace specific variables.\n\
> +Show backtrace variables such as the backtrace limit."),
>  		  &show_backtrace_cmdlist, "show backtrace ",
>  		  0/*allow-unknown*/, &showlist);
>  
> diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
> index 5eeac9270a..5692ac5132 100644
> --- a/gdb/gnu-nat.c
> +++ b/gdb/gnu-nat.c
> @@ -3312,15 +3312,15 @@ This is the same as setting `task pause', `exceptions', and\n\
>  
>    /* Commands to show information about the task's ports.  */
>    add_info ("send-rights", info_send_rights_cmd,
> -	    _("Show information about the task's send rights"));
> +	    _("Show information about the task's send rights."));
>    add_info ("receive-rights", info_recv_rights_cmd,
> -	    _("Show information about the task's receive rights"));
> +	    _("Show information about the task's receive rights."));
>    add_info ("port-rights", info_port_rights_cmd,
> -	    _("Show information about the task's port rights"));
> +	    _("Show information about the task's port rights."));
>    add_info ("port-sets", info_port_sets_cmd,
> -	    _("Show information about the task's port sets"));
> +	    _("Show information about the task's port sets."));
>    add_info ("dead-names", info_dead_names_cmd,
> -	    _("Show information about the task's dead names"));
> +	    _("Show information about the task's dead names."));
>    add_info_alias ("ports", "port-rights", 1);
>    add_info_alias ("port", "port-rights", 1);
>    add_info_alias ("psets", "port-sets", 1);
> diff --git a/gdb/infcall.c b/gdb/infcall.c
> index 84092d37e6..be99673f67 100644
> --- a/gdb/infcall.c
> +++ b/gdb/infcall.c
> @@ -1388,7 +1388,7 @@ will result in an error."),
>    add_setshow_boolean_cmd ("coerce-float-to-double", class_obscure,
>  			   &coerce_float_to_double_p, _("\
>  Set coercion of floats to doubles when calling functions."), _("\
> -Show coercion of floats to doubles when calling functions"), _("\
> +Show coercion of floats to doubles when calling functions."), _("\
>  Variables of type float should generally be converted to doubles before\n\
>  calling an unprototyped function, and left alone when calling a prototyped\n\
>  function.  However, some older debug info formats do not provide enough\n\
> diff --git a/gdb/infcmd.c b/gdb/infcmd.c
> index afd7bb5a54..5361f1c000 100644
> --- a/gdb/infcmd.c
> +++ b/gdb/infcmd.c
> @@ -3319,6 +3319,7 @@ reason)."));
>    add_com_alias ("s", "step", class_run, 1);
>  
>    c = add_com ("until", class_run, until_command, _("\
> +Execute until past the current line or past a LOCATION.\n\
>  Execute until the program reaches a source line greater than the current\n\
>  or a specified location (same args as break command) within the current \
>  frame."));
> @@ -3394,10 +3395,10 @@ in the named register groups."));
>  	    _("Execution status of the program."));
>  
>    add_info ("float", info_float_command,
> -	    _("Print the status of the floating point unit"));
> +	    _("Print the status of the floating point unit."));
>  
>    add_info ("vector", info_vector_command,
> -	    _("Print the status of the vector unit"));
> +	    _("Print the status of the vector unit."));
>  
>    add_prefix_cmd ("proc", class_info, info_proc_cmd,
>  		  _("\
> diff --git a/gdb/interps.c b/gdb/interps.c
> index 363502e767..f2f137ca91 100644
> --- a/gdb/interps.c
> +++ b/gdb/interps.c
> @@ -378,7 +378,7 @@ interpreter_exec_cmd (const char *args, int from_tty)
>    nrules = prules.count ();
>  
>    if (nrules < 2)
> -    error (_("Usage: interpreter-exec INTERPRETER [ COMMAND... ]"));
> +    error (_("Usage: interpreter-exec INTERPRETER COMMAND..."));
>  
>    old_interp = ui_interp->current_interpreter;
>  
> @@ -448,8 +448,8 @@ _initialize_interpreter (void)
>    c = add_cmd ("interpreter-exec", class_support,
>  	       interpreter_exec_cmd, _("\
>  Execute a command in an interpreter.\n\
> -It takes two arguments:\n\
> +Usage: interpreter-exec INTERPRETER COMMAND...\n\
>  The first argument is the name of the interpreter to use.\n\
> -The second argument is the command to execute."), &cmdlist);
> +The following arguments are the commands to execute."), &cmdlist);
>    set_cmd_completer (c, interpreter_completer);
>  }
> diff --git a/gdb/language.c b/gdb/language.c
> index a7c09ccd6d..de3b59cb72 100644
> --- a/gdb/language.c
> +++ b/gdb/language.c
> @@ -1172,16 +1172,16 @@ _initialize_language (void)
>  
>    add_setshow_enum_cmd ("range", class_support, type_or_range_names,
>  			&range,
> -			_("Set range checking.  (on/warn/off/auto)"),
> -			_("Show range checking.  (on/warn/off/auto)"),
> +			_("Set range checking (on/warn/off/auto)."),
> +			_("Show range checking (on/warn/off/auto)."),
>  			NULL, set_range_command,
>  			show_range_command,
>  			&setchecklist, &showchecklist);
>  
>    add_setshow_enum_cmd ("case-sensitive", class_support, case_sensitive_names,
>  			&case_sensitive, _("\
> -Set case sensitivity in name search.  (on/off/auto)"), _("\
> -Show case sensitivity in name search.  (on/off/auto)"), _("\
> +Set case sensitivity in name search (on/off/auto)."), _("\
> +Show case sensitivity in name search (on/off/auto)."), _("\
>  For Fortran the default is off; for other languages the default is on."),
>  			set_case_command,
>  			show_case_command,
> diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
> index d323a716e3..160ddb6cbc 100644
> --- a/gdb/linux-fork.c
> +++ b/gdb/linux-fork.c
> @@ -765,7 +765,8 @@ Fork a duplicate process (experimental)."));
>       process.  */
>  
>    add_com ("restart", class_obscure, restart_command, _("\
> -restart N: restore program context from a checkpoint.\n\
> +Restore program context from a checkpoint.\n\
> +Usage: restart N\n\
>  Argument N is checkpoint ID, as displayed by 'info checkpoints'."));
>  
>    /* Delete checkpoint command: kill the process and remove it from
> diff --git a/gdb/maint-test-options.c b/gdb/maint-test-options.c
> index 599155cbfe..c70a321b8a 100644
> --- a/gdb/maint-test-options.c
> +++ b/gdb/maint-test-options.c
> @@ -398,8 +398,8 @@ Command used for testing options processing.\n\
>  Usage: maint test-options require-delimiter [[OPTION]... --] [OPERAND]...\n\
>  \n\
>  Options:\n\
> -\n\
>  %OPTIONS%\n\
> +\n\
>  If you specify any command option, you must use a double dash (\"--\")\n\
>  to mark the end of option processing."),
>  			       def_group);
> @@ -410,7 +410,6 @@ Command used for testing options processing.\n\
>  Usage: maint test-options unknown-is-error [OPTION]... [OPERAND]...\n\
>  \n\
>  Options:\n\
> -\n\
>  %OPTIONS%"),
>  			       def_group);
>  
> @@ -420,7 +419,6 @@ Command used for testing options processing.\n\
>  Usage: maint test-options unknown-is-operand [OPTION]... [OPERAND]...\n\
>  \n\
>  Options:\n\
> -\n\
>  %OPTIONS%"),
>  			       def_group);
>  
> diff --git a/gdb/maint-test-settings.c b/gdb/maint-test-settings.c
> index fa13519eb9..e339761bec 100644
> --- a/gdb/maint-test-settings.c
> +++ b/gdb/maint-test-settings.c
> @@ -133,8 +133,8 @@ Show GDB internal variables used for set/show command infrastructure testing."),
>  
>    add_setshow_boolean_cmd ("boolean", class_maintenance,
>  			   &maintenance_test_settings_boolean, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  			   nullptr, /* help_doc */
>  			   nullptr, /* set_cmd */
>  			   maintenance_test_settings_show_value_cmd,
> @@ -143,8 +143,8 @@ command used for internal testing"),
>  
>    add_setshow_auto_boolean_cmd ("auto-boolean", class_maintenance,
>  				&maintenance_test_settings_auto_boolean, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  				nullptr, /* help_doc */
>  				nullptr, /* set_cmd */
>  				maintenance_test_settings_show_value_cmd,
> @@ -153,8 +153,8 @@ command used for internal testing"),
>  
>    add_setshow_uinteger_cmd ("uinteger", class_maintenance,
>  			   &maintenance_test_settings_uinteger, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  			   nullptr, /* help_doc */
>  			   nullptr, /* set_cmd */
>  			   maintenance_test_settings_show_value_cmd,
> @@ -163,8 +163,8 @@ command used for internal testing"),
>  
>    add_setshow_integer_cmd ("integer", class_maintenance,
>  			   &maintenance_test_settings_integer, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  			   nullptr, /* help_doc */
>  			   nullptr, /* set_cmd */
>  			   maintenance_test_settings_show_value_cmd,
> @@ -173,8 +173,8 @@ command used for internal testing"),
>  
>    add_setshow_string_cmd ("string", class_maintenance,
>       &maintenance_test_settings_string, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>       nullptr, /* help_doc */
>       nullptr, /* set_cmd */
>       maintenance_test_settings_show_value_cmd,
> @@ -184,8 +184,8 @@ command used for internal testing"),
>    add_setshow_string_noescape_cmd
>      ("string-noescape", class_maintenance,
>       &maintenance_test_settings_string_noescape, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>       nullptr, /* help_doc */
>       nullptr, /* set_cmd */
>       maintenance_test_settings_show_value_cmd,
> @@ -195,8 +195,8 @@ command used for internal testing"),
>    add_setshow_optional_filename_cmd
>      ("optional-filename", class_maintenance,
>       &maintenance_test_settings_optional_filename, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>       nullptr, /* help_doc */
>       nullptr, /* set_cmd */
>       maintenance_test_settings_show_value_cmd,
> @@ -205,8 +205,8 @@ command used for internal testing"),
>  
>    add_setshow_filename_cmd ("filename", class_maintenance,
>  			    &maintenance_test_settings_filename, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  			    nullptr, /* help_doc */
>  			    nullptr, /* set_cmd */
>  			    maintenance_test_settings_show_value_cmd,
> @@ -215,8 +215,8 @@ command used for internal testing"),
>  
>    add_setshow_zinteger_cmd ("zinteger", class_maintenance,
>  			    &maintenance_test_settings_zinteger, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  			    nullptr, /* help_doc */
>  			    nullptr, /* set_cmd */
>  			    maintenance_test_settings_show_value_cmd,
> @@ -225,8 +225,8 @@ command used for internal testing"),
>  
>    add_setshow_zuinteger_cmd ("zuinteger", class_maintenance,
>  			     &maintenance_test_settings_zuinteger, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  			     nullptr, /* help_doc */
>  			     nullptr, /* set_cmd */
>  			     maintenance_test_settings_show_value_cmd,
> @@ -236,8 +236,8 @@ command used for internal testing"),
>    add_setshow_zuinteger_unlimited_cmd
>      ("zuinteger-unlimited", class_maintenance,
>       &maintenance_test_settings_zuinteger_unlimited, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>       nullptr, /* help_doc */
>       nullptr, /* set_cmd */
>       maintenance_test_settings_show_value_cmd,
> @@ -247,8 +247,8 @@ command used for internal testing"),
>    add_setshow_enum_cmd ("enum", class_maintenance,
>  			maintenance_test_settings_enums,
>  			&maintenance_test_settings_enum, _("\
> -command used for internal testing"), _("\
> -command used for internal testing"),
> +command used for internal testing."), _("\
> +command used for internal testing."),
>  			nullptr, /* help_doc */
>  			nullptr, /* set_cmd */
>  			maintenance_test_settings_show_value_cmd,
> diff --git a/gdb/maint.c b/gdb/maint.c
> index aaabb35224..12e0e36ea9 100644
> --- a/gdb/maint.c
> +++ b/gdb/maint.c
> @@ -993,7 +993,7 @@ Commands for showing internal info about the program being debugged."),
>    add_alias_cmd ("i", "info", class_maintenance, 1, &maintenancelist);
>  
>    add_cmd ("sections", class_maintenance, maintenance_info_sections, _("\
> -List the BFD sections of the exec and core files. \n\
> +List the BFD sections of the exec and core files.\n\
>  Arguments may be any combination of:\n\
>  	[one or more section names]\n\
>  	ALLOC LOAD RELOC READONLY CODE DATA ROM CONSTRUCTOR\n\
> @@ -1137,21 +1137,22 @@ Commands for checking internal gdb state."),
>  	   &maintenancelist);
>  
>    add_cmd ("deprecate", class_maintenance, maintenance_deprecate, _("\
> -Deprecate a command.  Note that this is just in here so the \n\
> -testsuite can check the command deprecator. You probably shouldn't use this,\n\
> -rather you should use the C function deprecate_cmd().  If you decide you \n\
> -want to use it: maintenance deprecate 'commandname' \"replacement\". The \n\
> -replacement is optional."), &maintenancelist);
> +Deprecate a command (for testing purposes).\n\
> +Usage: maintenance deprecate COMMANDNAME [\"REPLACEMENT\"]\n\
> +This is used by the testsuite to check the command deprecator.\n\
> +You probably shouldn't use this,\n\
> +rather you should use the C function deprecate_cmd()."), &maintenancelist);
>  
>    add_cmd ("undeprecate", class_maintenance, maintenance_undeprecate, _("\
> -Undeprecate a command.  Note that this is just in here so the \n\
> -testsuite can check the command deprecator. You probably shouldn't use this,\n\
> -If you decide you want to use it: maintenance undeprecate 'commandname'"),
> +Undeprecate a command (for testing purposes).\n\
> +Usage: maintenance undeprecate COMMANDNAME\n\
> +This is used by the testsuite to check the command deprecator.\n\
> +You probably shouldn't use this."),
>  	   &maintenancelist);
>  
>    add_cmd ("selftest", class_maintenance, maintenance_selftest, _("\
>  Run gdb's unit tests.\n\
> -Usage: maintenance selftest [filter]\n\
> +Usage: maintenance selftest [FILTER]\n\
>  This will run any unit tests that were built in to gdb.\n\
>  If a filter is given, only the tests with that value in their name will ran."),
>  	   &maintenancelist);
> diff --git a/gdb/memattr.c b/gdb/memattr.c
> index 858a41abfb..cf819866b8 100644
> --- a/gdb/memattr.c
> +++ b/gdb/memattr.c
> @@ -598,8 +598,8 @@ void
>  _initialize_mem (void)
>  {
>    add_com ("mem", class_vars, mem_command, _("\
> -Define attributes for memory region or reset memory region handling to\n\
> -target-based.\n\
> +Define attributes for memory region or reset memory region handling to "
> +"target-based.\n\
>  Usage: mem auto\n\
>         mem LOW HIGH [MODE WIDTH CACHE],\n\
>  where MODE  may be rw (read/write), ro (read-only) or wo (write-only),\n\
> @@ -625,14 +625,14 @@ Usage: delete mem [ID]...\n\
>  Do \"info mem\" to see current list of IDs."), &deletelist);
>  
>    add_info ("mem", info_mem_command,
> -	    _("Memory region attributes"));
> +	    _("Memory region attributes."));
>  
>    add_prefix_cmd ("mem", class_vars, dummy_cmd, _("\
> -Memory regions settings"),
> +Memory regions settings."),
>  		  &mem_set_cmdlist, "set mem ",
>  		  0/* allow-unknown */, &setlist);
>    add_prefix_cmd ("mem", class_vars, dummy_cmd, _("\
> -Memory regions settings"),
> +Memory regions settings."),
>  		  &mem_show_cmdlist, "show mem  ",
>  		  0/* allow-unknown */, &showlist);
>  
> diff --git a/gdb/printcmd.c b/gdb/printcmd.c
> index 0509360581..5a61615c70 100644
> --- a/gdb/printcmd.c
> +++ b/gdb/printcmd.c
> @@ -2751,7 +2751,7 @@ Usage: output EXP\n\
>  This is useful in user-defined commands."));
>  
>    add_prefix_cmd ("set", class_vars, set_command, _("\
> -Evaluate expression EXP and assign result to variable VAR\n\
> +Evaluate expression EXP and assign result to variable VAR.\n\
>  Usage: set VAR = EXP\n\
>  This uses assignment syntax appropriate for the current language\n\
>  (VAR = EXP or VAR := EXP for example).\n\
> @@ -2765,7 +2765,7 @@ You can see these environment settings with the \"show\" command."),
>  		  &setlist, "set ", 1, &cmdlist);
>    if (dbx_commands)
>      add_com ("assign", class_vars, set_command, _("\
> -Evaluate expression EXP and assign result to variable VAR\n\
> +Evaluate expression EXP and assign result to variable VAR.\n\
>  Usage: assign VAR = EXP\n\
>  This uses assignment syntax appropriate for the current language\n\
>  (VAR = EXP or VAR := EXP for example).\n\
> @@ -2786,7 +2786,7 @@ history, if it is not void."));
>    set_cmd_completer_handle_brkchars (c, print_command_completer);
>  
>    add_cmd ("variable", class_vars, set_command, _("\
> -Evaluate expression EXP and assign result to variable VAR\n\
> +Evaluate expression EXP and assign result to variable VAR.\n\
>  Usage: set variable VAR = EXP\n\
>  This uses assignment syntax appropriate for the current language\n\
>  (VAR = EXP or VAR := EXP for example).\n\
> @@ -2804,7 +2804,8 @@ Print value of expression EXP.\n\
>  Usage: print [[OPTION]... --] [/FMT] [EXP]\n\
>  \n\
>  Options:\n\
> -%OPTIONS%\
> +%OPTIONS%\n\
> +\n\
>  Note: because this command accepts arbitrary expressions, if you\n\
>  specify any command option, you must use a double dash (\"--\")\n\
>  to mark the end of option processing.  E.g.: \"print -o -- myobj\".\n\
> diff --git a/gdb/python/lib/gdb/function/strfns.py b/gdb/python/lib/gdb/function/strfns.py
> index d29ff61d6c..c56957bdb2 100644
> --- a/gdb/python/lib/gdb/function/strfns.py
> +++ b/gdb/python/lib/gdb/function/strfns.py
> @@ -21,7 +21,7 @@ import re
>  
>  
>  class _MemEq(gdb.Function):
> -  """$_memeq - compare bytes of memory
> +  """$_memeq - compare bytes of memory.
>  
>  Usage: $_memeq (A, B, LEN)
>  
> @@ -44,7 +44,7 @@ Returns:
>  
>  
>  class _StrLen(gdb.Function):
> -  """$_strlen - compute string length
> +  """$_strlen - compute string length.
>  
>  Usage: $_strlen (A)
>  
> @@ -59,7 +59,7 @@ Returns:
>  
>  
>  class _StrEq(gdb.Function):
> -  """$_streq - check string equality
> +  """$_streq - check string equality.
>  
>  Usage: $_streq (A, B)
>  
> @@ -77,7 +77,7 @@ Example (amd64-linux):
>  
>  
>  class _RegEx(gdb.Function):
> -  """$_regex - check if a string matches a regular expression
> +  """$_regex - check if a string matches a regular expression.
>  
>  Usage: $_regex (STRING, REGEX)
>  
> diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c
> index 6636a89554..f217d949f6 100644
> --- a/gdb/ravenscar-thread.c
> +++ b/gdb/ravenscar-thread.c
> @@ -601,17 +601,17 @@ _initialize_ravenscar ()
>    gdb::observers::inferior_created.attach (ravenscar_inferior_created);
>  
>    add_prefix_cmd ("ravenscar", no_class, set_ravenscar_command,
> -                  _("Prefix command for changing Ravenscar-specific settings"),
> +                  _("Prefix command for changing Ravenscar-specific settings."),
>                    &set_ravenscar_list, "set ravenscar ", 0, &setlist);
>  
>    add_prefix_cmd ("ravenscar", no_class, show_ravenscar_command,
> -                  _("Prefix command for showing Ravenscar-specific settings"),
> +                  _("Prefix command for showing Ravenscar-specific settings."),
>                    &show_ravenscar_list, "show ravenscar ", 0, &showlist);
>  
>    add_setshow_boolean_cmd ("task-switching", class_obscure,
>                             &ravenscar_task_support, _("\
> -Enable or disable support for GNAT Ravenscar tasks"), _("\
> -Show whether support for GNAT Ravenscar tasks is enabled"),
> +Enable or disable support for GNAT Ravenscar tasks."), _("\
> +Show whether support for GNAT Ravenscar tasks is enabled."),
>                             _("\
>  Enable or disable support for task/thread switching with the GNAT\n\
>  Ravenscar run-time library for bareboard configuration."),
> diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
> index 21085d5c62..a2a1e9c6dd 100644
> --- a/gdb/record-btrace.c
> +++ b/gdb/record-btrace.c
> @@ -3170,11 +3170,11 @@ This format may not be available on all processors."),
>    add_alias_cmd ("pt", "btrace pt", class_obscure, 1, &record_cmdlist);
>  
>    add_prefix_cmd ("btrace", class_support, cmd_set_record_btrace,
> -		  _("Set record options"), &set_record_btrace_cmdlist,
> +		  _("Set record options."), &set_record_btrace_cmdlist,
>  		  "set record btrace ", 0, &set_record_cmdlist);
>  
>    add_prefix_cmd ("btrace", class_support, cmd_show_record_btrace,
> -		  _("Show record options"), &show_record_btrace_cmdlist,
> +		  _("Show record options."), &show_record_btrace_cmdlist,
>  		  "show record btrace ", 0, &show_record_cmdlist);
>  
>    add_setshow_enum_cmd ("replay-memory-access", no_class,
> @@ -3203,7 +3203,7 @@ When GDB does not support that cpu, this option can be used to enable\n\
>  workarounds for a similar cpu that GDB supports.\n\n\
>  When set to \"none\", errata workarounds are disabled."),
>  		  &set_record_btrace_cpu_cmdlist,
> -		  _("set record btrace cpu "), 1,
> +		  "set record btrace cpu ", 1,
>  		  &set_record_btrace_cmdlist);
>  
>    add_cmd ("auto", class_support, cmd_set_record_btrace_cpu_auto, _("\
> @@ -3219,12 +3219,12 @@ Show the cpu to be used for trace decode."),
>  	   &show_record_btrace_cmdlist);
>  
>    add_prefix_cmd ("bts", class_support, cmd_set_record_btrace_bts,
> -		  _("Set record btrace bts options"),
> +		  _("Set record btrace bts options."),
>  		  &set_record_btrace_bts_cmdlist,
>  		  "set record btrace bts ", 0, &set_record_btrace_cmdlist);
>  
>    add_prefix_cmd ("bts", class_support, cmd_show_record_btrace_bts,
> -		  _("Show record btrace bts options"),
> +		  _("Show record btrace bts options."),
>  		  &show_record_btrace_bts_cmdlist,
>  		  "show record btrace bts ", 0, &show_record_btrace_cmdlist);
>  
> @@ -3243,12 +3243,12 @@ The trace buffer size may not be changed while recording."), NULL,
>  			    &show_record_btrace_bts_cmdlist);
>  
>    add_prefix_cmd ("pt", class_support, cmd_set_record_btrace_pt,
> -		  _("Set record btrace pt options"),
> +		  _("Set record btrace pt options."),
>  		  &set_record_btrace_pt_cmdlist,
>  		  "set record btrace pt ", 0, &set_record_btrace_cmdlist);
>  
>    add_prefix_cmd ("pt", class_support, cmd_show_record_btrace_pt,
> -		  _("Show record btrace pt options"),
> +		  _("Show record btrace pt options."),
>  		  &show_record_btrace_pt_cmdlist,
>  		  "show record btrace pt ", 0, &show_record_btrace_cmdlist);
>  
> diff --git a/gdb/record-full.c b/gdb/record-full.c
> index 95a0353d75..4eb63b19cf 100644
> --- a/gdb/record-full.c
> +++ b/gdb/record-full.c
> @@ -2832,11 +2832,11 @@ Argument is filename.  File must be created with 'record save'."),
>    deprecate_cmd (c, "record full restore");
>  
>    add_prefix_cmd ("full", class_support, set_record_full_command,
> -		  _("Set record options"), &set_record_full_cmdlist,
> +		  _("Set record options."), &set_record_full_cmdlist,
>  		  "set record full ", 0, &set_record_cmdlist);
>  
>    add_prefix_cmd ("full", class_support, show_record_full_command,
> -		  _("Show record options"), &show_record_full_cmdlist,
> +		  _("Show record options."), &show_record_full_cmdlist,
>  		  "show record full ", 0, &show_record_cmdlist);
>  
>    /* Record instructions number limit command.  */
> diff --git a/gdb/record.c b/gdb/record.c
> index 828c19968a..071531db57 100644
> --- a/gdb/record.c
> +++ b/gdb/record.c
> @@ -808,15 +808,15 @@ A size of \"unlimited\" means unlimited lines.  The default is 10."),
>  
>    add_com_alias ("rec", "record", class_obscure, 1);
>    add_prefix_cmd ("record", class_support, set_record_command,
> -		  _("Set record options"), &set_record_cmdlist,
> +		  _("Set record options."), &set_record_cmdlist,
>  		  "set record ", 0, &setlist);
>    add_alias_cmd ("rec", "record", class_obscure, 1, &setlist);
>    add_prefix_cmd ("record", class_support, show_record_command,
> -		  _("Show record options"), &show_record_cmdlist,
> +		  _("Show record options."), &show_record_cmdlist,
>  		  "show record ", 0, &showlist);
>    add_alias_cmd ("rec", "record", class_obscure, 1, &showlist);
>    add_prefix_cmd ("record", class_support, info_record_command,
> -		  _("Info record options"), &info_record_cmdlist,
> +		  _("Info record options."), &info_record_cmdlist,
>  		  "info record ", 0, &infolist);
>    add_alias_cmd ("rec", "record", class_obscure, 1, &infolist);
>  
> diff --git a/gdb/regcache-dump.c b/gdb/regcache-dump.c
> index 1bcf9c3d17..c8ae912284 100644
> --- a/gdb/regcache-dump.c
> +++ b/gdb/regcache-dump.c
> @@ -328,8 +328,8 @@ _initialize_regcache_dump (void)
>  	   &maintenanceprintlist);
>    add_cmd ("remote-registers", class_maintenance,
>  	   maintenance_print_remote_registers, _("\
> -Print the internal register configuration including each register's\n\
> -remote register number and buffer offset in the g/G packets.\n\
> +Print the internal register configuration including remote register number "
> +"and g/G packets offset.\n\
>  Takes an optional file parameter."),
>  	   &maintenanceprintlist);
>  }
> diff --git a/gdb/regcache.c b/gdb/regcache.c
> index 323f0f5ab4..962f00db58 100644
> --- a/gdb/regcache.c
> +++ b/gdb/regcache.c
> @@ -1813,7 +1813,7 @@ _initialize_regcache (void)
>      (regcache::regcache_thread_ptid_changed);
>  
>    add_com ("flushregs", class_maintenance, reg_flush_command,
> -	   _("Force gdb to flush its register cache (maintainer command)"));
> +	   _("Force gdb to flush its register cache (maintainer command)."));
>  
>  #if GDB_SELF_TEST
>    selftests::register_test ("current_regcache", selftests::current_regcache_test);
> diff --git a/gdb/remote.c b/gdb/remote.c
> index 124d254478..24057a7f97 100644
> --- a/gdb/remote.c
> +++ b/gdb/remote.c
> @@ -1825,10 +1825,10 @@ add_packet_config_cmd (struct packet_config *config, const char *name,
>  
>    config->name = name;
>    config->title = title;
> -  set_doc = xstrprintf ("Set use of remote protocol `%s' (%s) packet",
> +  set_doc = xstrprintf ("Set use of remote protocol `%s' (%s) packet.",
>  			name, title);
>    show_doc = xstrprintf ("Show current use of remote "
> -			 "protocol `%s' (%s) packet",
> +			 "protocol `%s' (%s) packet.",
>  			 name, title);
>    /* set/show TITLE-packet {auto,on,off} */
>    cmd_name = xstrprintf ("%s-packet", title);
> @@ -11386,15 +11386,15 @@ init_remote_threadtests (void)
>  {
>    add_com ("tlist", class_obscure, threadlist_test_cmd,
>  	   _("Fetch and print the remote list of "
> -	     "thread identifiers, one pkt only"));
> +	     "thread identifiers, one pkt only."));
>    add_com ("tinfo", class_obscure, threadinfo_test_cmd,
> -	   _("Fetch and display info about one thread"));
> +	   _("Fetch and display info about one thread."));
>    add_com ("tset", class_obscure, threadset_test_cmd,
> -	   _("Test setting to a different thread"));
> +	   _("Test setting to a different thread."));
>    add_com ("tupd", class_obscure, threadlist_update_test_cmd,
> -	   _("Iterate through updating all remote thread info"));
> +	   _("Iterate through updating all remote thread info."));
>    add_com ("talive", class_obscure, threadalive_test,
> -	   _(" Remote thread alive test "));
> +	   _("Remote thread alive test."));
>  }
>  
>  #endif /* 0 */
> @@ -14278,15 +14278,15 @@ _initialize_remote (void)
>    /* set/show remote ...  */
>  
>    add_prefix_cmd ("remote", class_maintenance, set_remote_cmd, _("\
> -Remote protocol specific variables\n\
> +Remote protocol specific variables.\n\
>  Configure various remote-protocol specific variables such as\n\
> -the packets being used"),
> +the packets being used."),
>  		  &remote_set_cmdlist, "set remote ",
>  		  0 /* allow-unknown */, &setlist);
>    add_prefix_cmd ("remote", class_maintenance, show_remote_cmd, _("\
> -Remote protocol specific variables\n\
> +Remote protocol specific variables.\n\
>  Configure various remote-protocol specific variables such as\n\
> -the packets being used"),
> +the packets being used."),
>  		  &remote_show_cmdlist, "show remote ",
>  		  0 /* allow-unknown */, &showlist);
>  
> @@ -14330,8 +14330,8 @@ Valid value is \"Ctrl-C\", \"BREAK\" or \"BREAK-g\". The default is \"Ctrl-C\"."
>  
>    add_setshow_boolean_cmd ("interrupt-on-connect", class_support,
>  			   &interrupt_on_connect, _("\
> -Set whether interrupt-sequence is sent to remote target when gdb connects to."), _("		\
> -Show whether interrupt-sequence is sent to remote target when gdb connects to."), _("		\
> +Set whether interrupt-sequence is sent to remote target when gdb connects to."), _("\
> +Show whether interrupt-sequence is sent to remote target when gdb connects to."), _("\
>  If set, interrupt sequence is sent to remote target."),
>  			   NULL, NULL,
>  			   &remote_set_cmdlist, &remote_show_cmdlist);
> @@ -14699,8 +14699,8 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
>       documentation).  */
>    add_setshow_auto_boolean_cmd ("Z-packet", class_obscure,
>  				&remote_Z_packet_detect, _("\
> -Set use of remote protocol `Z' packets"), _("\
> -Show use of remote protocol `Z' packets "), _("\
> +Set use of remote protocol `Z' packets."), _("\
> +Show use of remote protocol `Z' packets."), _("\
>  When set, GDB will attempt to use the remote breakpoint and watchpoint\n\
>  packets."),
>  				set_remote_protocol_Z_packet_cmd,
> @@ -14710,7 +14710,7 @@ packets."),
>  				&remote_set_cmdlist, &remote_show_cmdlist);
>  
>    add_prefix_cmd ("remote", class_files, remote_command, _("\
> -Manipulate files on the remote system\n\
> +Manipulate files on the remote system.\n\
>  Transfer files to and from the remote target system."),
>  		  &remote_cmdlist, "remote ",
>  		  0 /* allow-unknown */, &cmdlist);
> @@ -14729,8 +14729,8 @@ Transfer files to and from the remote target system."),
>  
>    add_setshow_string_noescape_cmd ("exec-file", class_files,
>  				   &remote_exec_file_var, _("\
> -Set the remote pathname for \"run\""), _("\
> -Show the remote pathname for \"run\""), NULL,
> +Set the remote pathname for \"run\"."), _("\
> +Show the remote pathname for \"run\"."), NULL,
>  				   set_remote_exec_file,
>  				   show_remote_exec_file,
>  				   &remote_set_cmdlist,
> diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
> index 5aa7105dc2..fa68656446 100644
> --- a/gdb/ser-tcp.c
> +++ b/gdb/ser-tcp.c
> @@ -480,27 +480,27 @@ _initialize_ser_tcp (void)
>  #endif /* USE_WIN32API */
>  
>    add_prefix_cmd ("tcp", class_maintenance, set_tcp_cmd, _("\
> -TCP protocol specific variables\n\
> -Configure variables specific to remote TCP connections"),
> +TCP protocol specific variables.\n\
> +Configure variables specific to remote TCP connections."),
>  		  &tcp_set_cmdlist, "set tcp ",
>  		  0 /* allow-unknown */, &setlist);
>    add_prefix_cmd ("tcp", class_maintenance, show_tcp_cmd, _("\
> -TCP protocol specific variables\n\
> -Configure variables specific to remote TCP connections"),
> +TCP protocol specific variables.\n\
> +Configure variables specific to remote TCP connections."),
>  		  &tcp_show_cmdlist, "show tcp ",
>  		  0 /* allow-unknown */, &showlist);
>  
>    add_setshow_boolean_cmd ("auto-retry", class_obscure,
>  			   &tcp_auto_retry, _("\
> -Set auto-retry on socket connect"), _("\
> -Show auto-retry on socket connect"), 
> +Set auto-retry on socket connect."), _("\
> +Show auto-retry on socket connect."),
>  			   NULL, NULL, NULL,
>  			   &tcp_set_cmdlist, &tcp_show_cmdlist);
>  
>    add_setshow_uinteger_cmd ("connect-timeout", class_obscure,
>  			    &tcp_retry_limit, _("\
> -Set timeout limit in seconds for socket connection"), _("\
> -Show timeout limit in seconds for socket connection"), _("\
> +Set timeout limit in seconds for socket connection."), _("\
> +Show timeout limit in seconds for socket connection."), _("\
>  If set to \"unlimited\", GDB will keep attempting to establish a\n\
>  connection forever, unless interrupted with Ctrl-c.\n\
>  The default is 15 seconds."),
> diff --git a/gdb/serial.c b/gdb/serial.c
> index bc8d910a5a..a881bbc97c 100644
> --- a/gdb/serial.c
> +++ b/gdb/serial.c
> @@ -706,8 +706,8 @@ using remote targets."),
>  
>    add_setshow_enum_cmd ("parity", no_class, parity_enums,
>                          &parity, _("\
> -Set parity for remote serial I/O"), _("\
> -Show parity for remote serial I/O"), NULL,
> +Set parity for remote serial I/O."), _("\
> +Show parity for remote serial I/O."), NULL,
>                          set_parity,
>                          NULL, /* FIXME: i18n: */
>                          &serial_set_cmdlist, &serial_show_cmdlist);
> @@ -723,8 +723,8 @@ by gdbserver."),
>  
>    add_setshow_enum_cmd ("remotelogbase", no_class, logbase_enums,
>  			&serial_logbase, _("\
> -Set numerical base for remote session logging"), _("\
> -Show numerical base for remote session logging"), NULL,
> +Set numerical base for remote session logging."), _("\
> +Show numerical base for remote session logging."), NULL,
>  			NULL,
>  			NULL, /* FIXME: i18n: */
>  			&setlist, &showlist);
> diff --git a/gdb/skip.c b/gdb/skip.c
> index 127b11dc44..22bb35f995 100644
> --- a/gdb/skip.c
> +++ b/gdb/skip.c
> @@ -696,41 +696,45 @@ If no function name is given, skip the current function."),
>    set_cmd_completer (c, location_completer);
>  
>    c = add_cmd ("enable", class_breakpoint, skip_enable_command, _("\
> -Enable skip entries.  You can specify numbers (e.g. \"skip enable 1 3\"), \
> +Enable skip entries.\n\
> +Usage: skip enable [NUMBER | RANGE]...\n\
> +You can specify numbers (e.g. \"skip enable 1 3\"),\n\
>  ranges (e.g. \"skip enable 4-8\"), or both (e.g. \"skip enable 1 3 4-8\").\n\n\
> -If you don't specify any numbers or ranges, we'll enable all skip entries.\n\n\
> -Usage: skip enable [NUMBER | RANGE]..."),
> +If you don't specify any numbers or ranges, we'll enable all skip entries."),
>  	       &skiplist);
>    set_cmd_completer (c, complete_skip_number);
>  
>    c = add_cmd ("disable", class_breakpoint, skip_disable_command, _("\
> -Disable skip entries.  You can specify numbers (e.g. \"skip disable 1 3\"), \
> +Disable skip entries.\n\
> +Usage: skip disable [NUMBER | RANGE]...\n\
> +You can specify numbers (e.g. \"skip disable 1 3\"),\n\
>  ranges (e.g. \"skip disable 4-8\"), or both (e.g. \"skip disable 1 3 4-8\").\n\n\
> -If you don't specify any numbers or ranges, we'll disable all skip entries.\n\n\
> -Usage: skip disable [NUMBER | RANGE]..."),
> +If you don't specify any numbers or ranges, we'll disable all skip entries."),
>  	       &skiplist);
>    set_cmd_completer (c, complete_skip_number);
>  
>    c = add_cmd ("delete", class_breakpoint, skip_delete_command, _("\
> -Delete skip entries.  You can specify numbers (e.g. \"skip delete 1 3\"), \
> +Delete skip entries.\n\
> +Usage: skip delete [NUMBER | RANGES]...\n\
> +You can specify numbers (e.g. \"skip delete 1 3\"),\n\
>  ranges (e.g. \"skip delete 4-8\"), or both (e.g. \"skip delete 1 3 4-8\").\n\n\
> -If you don't specify any numbers or ranges, we'll delete all skip entries.\n\n\
> -Usage: skip delete [NUMBER | RANGES]..."),
> +If you don't specify any numbers or ranges, we'll delete all skip entries."),
>  	       &skiplist);
>    set_cmd_completer (c, complete_skip_number);
>  
>    add_info ("skip", info_skip_command, _("\
> -Display the status of skips.  You can specify numbers (e.g. \"info skip 1 3\"), \
> +Display the status of skips.\n\
> +Usage: info skip [NUMBER | RANGES]...\n\
> +You can specify numbers (e.g. \"info skip 1 3\"), \n\
>  ranges (e.g. \"info skip 4-8\"), or both (e.g. \"info skip 1 3 4-8\").\n\n\
> -If you don't specify any numbers or ranges, we'll show all skips.\n\n\
> -Usage: info skip [NUMBER | RANGES]..."));
> +If you don't specify any numbers or ranges, we'll show all skips."));
>    set_cmd_completer (c, complete_skip_number);
>  
>    add_setshow_boolean_cmd ("skip", class_maintenance,
>  			   &debug_skip, _("\
>  Set whether to print the debug output about skipping files and functions."),
>  			   _("\
> -Show whether the debug output about skipping files and functions is printed"),
> +Show whether the debug output about skipping files and functions is printed."),
>  			   _("\
>  When non-zero, debug output about skipping files and functions is displayed."),
>  			   NULL, NULL,
> diff --git a/gdb/source.c b/gdb/source.c
> index dec5a2f84b..38bb542492 100644
> --- a/gdb/source.c
> +++ b/gdb/source.c
> @@ -1930,6 +1930,7 @@ A value of \"unlimited\", or zero, means there's no limit."),
>  
>    add_cmd ("substitute-path", class_files, set_substitute_path_command,
>             _("\
> +Add a substitution rule to rewrite source files names directories.\n\
>  Usage: set substitute-path FROM TO\n\
>  Add a substitution rule replacing FROM into TO in source file names.\n\
>  If a substitution rule was previously set for FROM, the old rule\n\
> @@ -1938,6 +1939,7 @@ is replaced by the new one."),
>  
>    add_cmd ("substitute-path", class_files, unset_substitute_path_command,
>             _("\
> +Delete one or all substitution rules rewriting source files names directories.\n\
>  Usage: unset substitute-path [FROM]\n\
>  Delete the rule for substituting FROM in source file names.  If FROM\n\
>  is not specified, all substituting rules are deleted.\n\
> @@ -1946,6 +1948,7 @@ If the debugger cannot find a rule for FROM, it will display a warning."),
>  
>    add_cmd ("substitute-path", class_files, show_substitute_path_command,
>             _("\
> +Show one or all substitution rules rewriting source files names directories.\n\
>  Usage: show substitute-path [FROM]\n\
>  Print the rule for substituting FROM in source file names. If FROM\n\
>  is not specified, print all substitution rules."),
> diff --git a/gdb/stack.c b/gdb/stack.c
> index b3d113d3b4..eb4d5adf15 100644
> --- a/gdb/stack.c
> +++ b/gdb/stack.c
> @@ -110,8 +110,8 @@ static const gdb::option::option_def frame_print_option_defs[] = {
>      print_entry_values_choices,
>      [] (frame_print_options *opt) { return &opt->print_entry_values; },
>      NULL, /* show_cmd_cb */
> -    N_("Set printing of function arguments at function entry"),
> -    N_("Show printing of function arguments at function entry"),
> +    N_("Set printing of function arguments at function entry."),
> +    N_("Show printing of function arguments at function entry."),
>      N_("GDB can sometimes determine the values of function arguments at entry,\n\
>  in addition to their current values.  This option tells GDB whether\n\
>  to print the current value, the value at entry (marked as val@entry),\n\
> @@ -123,8 +123,8 @@ or both.  Note that one or both of these values may be <optimized out>."),
>      print_frame_arguments_choices,
>      [] (frame_print_options *opt) { return &opt->print_frame_arguments; },
>      NULL, /* show_cmd_cb */
> -    N_("Set printing of non-scalar frame arguments"),
> -    N_("Show printing of non-scalar frame arguments"),
> +    N_("Set printing of non-scalar frame arguments."),
> +    N_("Show printing of non-scalar frame arguments."),
>      NULL /* help_doc */
>    },
>  
> @@ -3299,7 +3299,7 @@ A single numerical argument specifies the frame to select."),
>  
>    add_cmd ("address", class_stack, &frame_cmd.address,
>  	   _("\
> -Select and print a stack frame by stack address\n\
> +Select and print a stack frame by stack address.\n\
>  \n\
>  Usage: frame address STACK-ADDRESS"),
>  	   &frame_cmd_list);
> @@ -3381,7 +3381,8 @@ Print backtrace of all stack frames, or innermost COUNT frames.\n\
>  Usage: backtrace [OPTION]... [QUALIFIER]... [COUNT | -COUNT]\n\
>  \n\
>  Options:\n\
> -%OPTIONS%\
> +%OPTIONS%\n\
> +\n\
>  For backward compatibility, the following qualifiers are supported:\n\
>  \n\
>     full       - same as -full option.\n\
> diff --git a/gdb/symfile.c b/gdb/symfile.c
> index 6f9c81c8b9..29b85195e3 100644
> --- a/gdb/symfile.c
> +++ b/gdb/symfile.c
> @@ -3944,8 +3944,8 @@ that lies within the boundaries of this symbol file in memory."),
>  	       &cmdlist);
>  
>    c = add_cmd ("load", class_files, load_command, _("\
> -Dynamically load FILE into the running program, and record its symbols\n\
> -for access from GDB.\n\
> +Dynamically load FILE into the running program.\n\
> +FILE symbols are recorded for access from GDB.\n\
>  Usage: load [FILE] [OFFSET]\n\
>  An optional load OFFSET may also be given as a literal address.\n\
>  When OFFSET is provided, FILE must also be provided.  FILE can be provided\n\
> diff --git a/gdb/symtab.c b/gdb/symtab.c
> index 4920d94a24..cc97ea1d04 100644
> --- a/gdb/symtab.c
> +++ b/gdb/symtab.c
> @@ -6051,8 +6051,7 @@ Prints the functions.\n"),
>    add_setshow_enum_cmd ("multiple-symbols", no_class,
>                          multiple_symbols_modes, &multiple_symbols_mode,
>                          _("\
> -Set the debugger behavior when more than one symbol are possible matches\n\
> -in an expression."), _("\
> +Set how the debugger handles ambiguities in expressions."), _("\
>  Show how the debugger handles ambiguities in expressions."), _("\
>  Valid values are \"ask\", \"all\", \"cancel\", and the default is \"all\"."),
>                          NULL, NULL, &setlist, &showlist);
> diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c
> index bd33091ba9..6805d9e415 100644
> --- a/gdb/target-descriptions.c
> +++ b/gdb/target-descriptions.c
> @@ -1845,8 +1845,8 @@ Unset target description specific variables."),
>    add_setshow_filename_cmd ("filename", class_obscure,
>  			    &tdesc_filename_cmd_string,
>  			    _("\
> -Set the file to read for an XML target description"), _("\
> -Show the file to read for an XML target description"), _("\
> +Set the file to read for an XML target description."), _("\
> +Show the file to read for an XML target description."), _("\
>  When set, GDB will read the target description from a local\n\
>  file instead of querying the remote target."),
>  			    set_tdesc_filename_cmd,
> @@ -1854,8 +1854,8 @@ file instead of querying the remote target."),
>  			    &tdesc_set_cmdlist, &tdesc_show_cmdlist);
>  
>    add_cmd ("filename", class_obscure, unset_tdesc_filename_cmd, _("\
> -Unset the file to read for an XML target description.  When unset,\n\
> -GDB will read the description from the target."),
> +Unset the file to read for an XML target description.\n\
> +When unset, GDB will read the description from the target."),
>  	   &tdesc_unset_cmdlist);
>  
>    add_cmd ("c-tdesc", class_maintenance, maint_print_c_tdesc_cmd, _("\
> @@ -1866,6 +1866,7 @@ Print the current target description as a C source file."),
>  
>    cmd = add_cmd ("xml-descriptions", class_maintenance,
>  		 maintenance_check_xml_descriptions, _("\
> +Check equality of GDB target descriptions and XML created descriptions.\n\
>  Check the target descriptions created in GDB equal the descriptions\n\
>  created from XML files in the directory.\n\
>  The parameter is the directory name."),
> diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/help.exp
> index e65f7c875f..921b3807f6 100644
> --- a/gdb/testsuite/gdb.base/help.exp
> +++ b/gdb/testsuite/gdb.base/help.exp
> @@ -80,7 +80,8 @@ gdb_test "help commands" "Set commands to be executed when the given breakpoints
>  # Test a prefix command.  "delete" is picked at random.
>  # test help delete "d" abbreviation
>  set expected_help_delete {
> -    "Delete some breakpoints or auto-display expressions\.\[\r\n\]+"
> +    "Delete all or some breakpoints or auto-display expressions\.\[\r\n\]+"
> +    "Usage: delete \\\[BREAKPOINTNUM\\\]...\[\r\n\]+"
>      "Arguments are breakpoint numbers with spaces in between\.\[\r\n\]+"
>      "To delete all breakpoints, give no argument\.\[\r\n\]+"
>      "Also a prefix command for deletion of other GDB objects\.\[\r\n\]+"
> @@ -117,8 +118,18 @@ gdb_test "help info bogus-gdb-command" "Undefined info command: \"bogus-gdb-comm
>  gdb_test "help gotcha" "Undefined command: \"gotcha\"\.  Try \"help\"\." "help gotcha"
>  
>  # test apropos regex
> -gdb_test "apropos \\\(print\[\^\[ bsiedf\\\".-\]\\\)" "handle -- Specify how to handle signals"
> +gdb_test "apropos \\\(print\[\^\[ bsiedf\\\".-\]\\\)" "handle -- Specify how to handle signals\."
>  # test apropos >1 word string
> -gdb_test "apropos handle signal" "handle -- Specify how to handle signals"
> +gdb_test "apropos handle signal" "handle -- Specify how to handle signals\."
>  # test apropos apropos
>  gdb_test "apropos apropos" "apropos -- Search for commands matching a REGEXP.*"
> +
> +# Verify the following invariants for the doc help of all commands:
> +#   First line is terminated by a '.' character.
> +#   The last character of the doc is not a new line.
> +# To test this last invariant, GDB apropos command outputs a line
> +# that starts with END_OF_LINE@END_OF_DOC when it finds such
> +# a new line at the end of a help doc.
> +gdb_test_no_output \
> +    "|apropos .| grep -e '\[^\.\]$' -e '^END_OF_LINE@END_OF_DOC '" \
> +    "command help doc first line ends with a dot, doc does not end with eol"
> diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp
> index a17f201486..5de1ad64c6 100644
> --- a/gdb/testsuite/gdb.base/style.exp
> +++ b/gdb/testsuite/gdb.base/style.exp
> @@ -101,8 +101,8 @@ save_vars { env(TERM) } {
>  	[multi_line \
>  	     "List of classes of commands:" \
>  	     "" \
> -	     "${aliases_expr} -- Aliases of other commands" \
> -	     "${breakpoints_expr} -- Making program stop at certain points" \
> +	     "${aliases_expr} -- Aliases of other commands\." \
> +	     "${breakpoints_expr} -- Making program stop at certain points\." \
>  	     ".*" \
>  	    ] \
>  	"help classes of commands styled with title"
> diff --git a/gdb/top.c b/gdb/top.c
> index 857207c376..bfb4427cc8 100644
> --- a/gdb/top.c
> +++ b/gdb/top.c
> @@ -2109,8 +2109,8 @@ init_main (void)
>  
>    add_setshow_string_cmd ("prompt", class_support,
>  			  &top_prompt,
> -			  _("Set gdb's prompt"),
> -			  _("Show gdb's prompt"),
> +			  _("Set gdb's prompt."),
> +			  _("Show gdb's prompt."),
>  			  NULL, NULL,
>  			  show_prompt,
>  			  &setlist, &showlist);
> @@ -2142,9 +2142,9 @@ Without an argument, saving is enabled."),
>  
>    add_setshow_zuinteger_unlimited_cmd ("size", no_class,
>  				       &history_size_setshow_var, _("\
> -Set the size of the command history,"), _("\
> -Show the size of the command history,"), _("\
> -ie. the number of previous commands to keep a record of.\n\
> +Set the size of the command history."), _("\
> +Show the size of the command history."), _("\
> +This is the number of previous commands to keep a record of.\n\
>  If set to \"unlimited\", the number of commands kept in the history\n\
>  list is unlimited.  This defaults to the value of the environment\n\
>  variable \"GDBHISTSIZE\", or to 256 if this variable is not set."),
> @@ -2168,8 +2168,8 @@ By default this option is set to 0."),
>  			   &sethistlist, &showhistlist);
>  
>    add_setshow_filename_cmd ("filename", no_class, &history_filename, _("\
> -Set the filename in which to record the command history"), _("\
> -Show the filename in which to record the command history"), _("\
> +Set the filename in which to record the command history."), _("\
> +Show the filename in which to record the command history."), _("\
>  (the list of previous commands of which a record is kept)."),
>  			    set_history_filename,
>  			    show_history_filename,
> @@ -2224,7 +2224,8 @@ input settings."),
>                          &setlist, &showlist);
>  
>    c = add_cmd ("new-ui", class_support, new_ui_command, _("\
> -Create a new UI.  It takes two arguments:\n\
> +Create a new UI.\n\
> +Usage: new-ui INTERPRETER TTY\n\
>  The first argument is the name of the interpreter to run.\n\
>  The second argument is the terminal the UI runs on."), &cmdlist);
>    set_cmd_completer (c, interpreter_completer);
> diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c
> index 593556a8ba..4f0c41bce5 100644
> --- a/gdb/tracefile-tfile.c
> +++ b/gdb/tracefile-tfile.c
> @@ -43,7 +43,8 @@
>  static const target_info tfile_target_info = {
>    "tfile",
>    N_("Local trace dump file"),
> -  N_("Use a trace file as a target.  Specify the filename of the trace file.")
> +  N_("Use a trace file as a target.\n\
> +Specify the filename of the trace file.")
>  };
>  
>  class tfile_target final : public tracefile_target
> diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
> index af5dcd1e33..5a499227e5 100644
> --- a/gdb/tracepoint.c
> +++ b/gdb/tracepoint.c
> @@ -4001,7 +4001,7 @@ _initialize_tracepoint (void)
>    tracepoint_number = -1;
>  
>    add_info ("scope", info_scope_command,
> -	    _("List the variables local to a scope"));
> +	    _("List the variables local to a scope."));
>  
>    add_cmd ("tracepoints", class_trace,
>  	   _("Tracing of program execution without stopping the program."),
> @@ -4031,7 +4031,7 @@ Status of trace state variables and their values."));
>  List target static tracepoints markers."));
>  
>    add_prefix_cmd ("tfind", class_trace, tfind_command, _("\
> -Select a trace frame;\n\
> +Select a trace frame.\n\
>  No argument means forward by one frame; '-' means backward by one frame."),
>  		  &tfindlist, "tfind ", 1, &cmdlist);
>  
> @@ -4132,8 +4132,8 @@ depending on target's capabilities."));
>    default_collect = xstrdup ("");
>    add_setshow_string_cmd ("default-collect", class_trace,
>  			  &default_collect, _("\
> -Set the list of expressions to collect by default"), _("\
> -Show the list of expressions to collect by default"), NULL,
> +Set the list of expressions to collect by default."), _("\
> +Show the list of expressions to collect by default."), NULL,
>  			  NULL, NULL,
>  			  &setlist, &showlist);
>  
> @@ -4173,22 +4173,22 @@ disables any attempt to set the buffer size and lets the target choose."),
>  
>    add_setshow_string_cmd ("trace-user", class_trace,
>  			  &trace_user, _("\
> -Set the user name to use for current and future trace runs"), _("\
> -Show the user name to use for current and future trace runs"), NULL,
> +Set the user name to use for current and future trace runs."), _("\
> +Show the user name to use for current and future trace runs."), NULL,
>  			  set_trace_user, NULL,
>  			  &setlist, &showlist);
>  
>    add_setshow_string_cmd ("trace-notes", class_trace,
>  			  &trace_notes, _("\
> -Set notes string to use for current and future trace runs"), _("\
> -Show the notes string to use for current and future trace runs"), NULL,
> +Set notes string to use for current and future trace runs."), _("\
> +Show the notes string to use for current and future trace runs."), NULL,
>  			  set_trace_notes, NULL,
>  			  &setlist, &showlist);
>  
>    add_setshow_string_cmd ("trace-stop-notes", class_trace,
>  			  &trace_stop_notes, _("\
> -Set notes string to use for future tstop commands"), _("\
> -Show the notes string to use for future tstop commands"), NULL,
> +Set notes string to use for future tstop commands."), _("\
> +Show the notes string to use for future tstop commands."), NULL,
>  			  set_trace_stop_notes, NULL,
>  			  &setlist, &showlist);
>  }
> diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
> index 575620f4c8..b1f6fcb8fd 100644
> --- a/gdb/tui/tui-win.c
> +++ b/gdb/tui/tui-win.c
> @@ -1657,11 +1657,11 @@ _initialize_tui_win (void)
>    /* Define the classes of commands.
>       They will appear in the help list in the reverse of this order.  */
>    add_prefix_cmd ("tui", class_tui, set_tui_cmd,
> -                  _("TUI configuration variables"),
> +                  _("TUI configuration variables."),
>  		  &tui_setlist, "set tui ",
>  		  0 /* allow-unknown */, &setlist);
>    add_prefix_cmd ("tui", class_tui, show_tui_cmd,
> -                  _("TUI configuration variables"),
> +                  _("TUI configuration variables."),
>  		  &tui_showlist, "show tui ",
>  		  0 /* allow-unknown */, &showlist);
>  
> @@ -1756,7 +1756,7 @@ This variable controls the attributes to use for the active window border:\n\
>    add_setshow_zuinteger_cmd ("tab-width", no_class,
>  			     &internal_tab_width, _("\
>  Set the tab width, in characters, for the TUI."), _("\
> -Show the tab witdh, in characters, for the TUI"), _("\
> +Show the tab witdh, in characters, for the TUI."), _("\
>  This variable controls how many spaces are used to display a tab character."),
>  			     tui_set_tab_width, tui_show_tab_width,
>  			     &tui_setlist, &tui_showlist);
> diff --git a/gdb/utils.c b/gdb/utils.c
> index f55661287e..88450cccba 100644
> --- a/gdb/utils.c
> +++ b/gdb/utils.c
> @@ -530,10 +530,10 @@ add_internal_problem_command (struct internal_problem *problem)
>    if (problem->user_settable_should_quit)
>      {
>        set_doc = xstrprintf (_("Set whether GDB should quit "
> -			      "when an %s is detected"),
> +			      "when an %s is detected."),
>  			    problem->name);
>        show_doc = xstrprintf (_("Show whether GDB will quit "
> -			       "when an %s is detected"),
> +			       "when an %s is detected."),
>  			     problem->name);
>        add_setshow_enum_cmd ("quit", class_maintenance,
>  			    internal_problem_modes,
> @@ -553,10 +553,10 @@ add_internal_problem_command (struct internal_problem *problem)
>    if (problem->user_settable_should_dump_core)
>      {
>        set_doc = xstrprintf (_("Set whether GDB should create a core "
> -			      "file of GDB when %s is detected"),
> +			      "file of GDB when %s is detected."),
>  			    problem->name);
>        show_doc = xstrprintf (_("Show whether GDB will create a core "
> -			       "file of GDB when %s is detected"),
> +			       "file of GDB when %s is detected."),
>  			     problem->name);
>        add_setshow_enum_cmd ("corefile", class_maintenance,
>  			    internal_problem_modes,
> diff --git a/gdb/valprint.c b/gdb/valprint.c
> index 6f9b47da80..0a4cc8e971 100644
> --- a/gdb/valprint.c
> +++ b/gdb/valprint.c
> @@ -3140,7 +3140,7 @@ static const gdb::option::option_def value_print_option_defs[] = {
>      [] (value_print_options *opt) { return &opt->print_array_indexes; },
>      show_print_array_indexes, /* show_cmd_cb */
>      N_("Set printing of array indexes."),
> -    N_("Show printing of array indexes"),
> +    N_("Show printing of array indexes."),
>      NULL, /* help_doc */
>    },
>  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]