From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH v2 2/7] Add "help news"
Date: Tue, 23 Jun 2020 07:20:01 -0600 [thread overview]
Message-ID: <20200623132006.15863-3-tom@tromey.com> (raw)
In-Reply-To: <20200623132006.15863-1-tom@tromey.com>
This adds a "help news" subcommand, which simply dumps the NEWS file.
The NEWS file is now installed.
gdb/ChangeLog
2020-06-22 Tom Tromey <tom@tromey.com>
* NEWS: Add entry.
* data-directory/Makefile.in (GDB_FILES): New variable.
(all): Add gdb-files.
(gdb-files, install-gdb-files, uninstall-gdb-files): New targets.
(install-only, uninstall): Update.
* cli/cli-decode.c (help_news): New file.
(help_cmd): Handle "news".
(help_list): Mention "help news".
gdb/doc/ChangeLog
2020-06-22 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Help): Mention help news.
---
gdb/ChangeLog | 11 +++++++++
gdb/NEWS | 3 +++
gdb/cli/cli-decode.c | 41 ++++++++++++++++++++++++++++++++++
gdb/data-directory/Makefile.in | 28 ++++++++++++++++++++---
gdb/doc/ChangeLog | 4 ++++
gdb/doc/gdb.texinfo | 4 ++++
6 files changed, 88 insertions(+), 3 deletions(-)
diff --git a/gdb/NEWS b/gdb/NEWS
index f7585133c51..0fd39857326 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -65,6 +65,9 @@
* New commands
+help news
+ Show this NEWS file.
+
set exec-file-mismatch -- Set exec-file-mismatch handling (ask|warn|off).
show exec-file-mismatch -- Show exec-file-mismatch handling (ask|warn|off).
Set or show the option 'exec-file-mismatch'. When GDB attaches to a
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 85f50aa8e48..c986a1c45fb 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -1197,6 +1197,38 @@ apropos_cmd (struct ui_file *stream,
}
}
+/* Implement "help news". */
+
+static void
+help_news (struct ui_file *stream)
+{
+ std::string news_name = std::string (gdb_datadir) + SLASH_STRING + "NEWS";
+ gdb_file_up news_file = gdb_fopen_cloexec (news_name.c_str (), "r");
+ if (news_file == nullptr)
+ perror_with_name (_("could not open the NEWS file"));
+
+ char buffer[1024];
+ size_t offset = 0;
+ while (true)
+ {
+ size_t nbytes = fread (&buffer[offset], 1, sizeof (buffer) - offset,
+ news_file.get ());
+ if (nbytes == 0)
+ break;
+ size_t n_valid = offset + nbytes;
+ size_t newline;
+ for (newline = n_valid; newline > 0 && buffer[newline] != '\n'; --newline)
+ ;
+ if (newline == 0)
+ error (_("NEWS file is malformed"));
+ buffer[newline] = '\0';
+ fputs_filtered (buffer, stream);
+ fputs_filtered ("\n", stream);
+ offset = n_valid - (newline + 1);
+ memmove (buffer, &buffer[newline + 1], offset);
+ }
+}
+
/* This command really has to deal with two things:
1) I want documentation on *this string* (usually called by
"help commandname").
@@ -1225,6 +1257,12 @@ help_cmd (const char *command, struct ui_file *stream)
return;
}
+ if (strcmp (command, "news") == 0)
+ {
+ help_news (stream);
+ return;
+ }
+
const char *orig_command = command;
c = lookup_cmd (&command, cmdlist, "", NULL, 0, 0);
@@ -1330,6 +1368,9 @@ Type \"help%s\" followed by a class name for a list of commands in ",
fprintf_filtered (stream, "\n\
Type \"help all\" for the list of all commands.");
+
+ fprintf_filtered (stream, "\n\
+Type \"help news\" to see what is new in GDB.");
}
fprintf_filtered (stream, "\nType \"help%s\" followed by %scommand name ",
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 3f0c729404b..85a2f41c351 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
@@ -139,6 +139,8 @@ SYSTEM_GDBINIT_FILES = \
elinos.py \
wrs-linux.py
+GDB_FILES = NEWS
+
FLAGS_TO_PASS = \
"prefix=$(prefix)" \
"exec_prefix=$(exec_prefix)" \
@@ -172,7 +174,7 @@ FLAGS_TO_PASS = \
"RUNTESTFLAGS=$(RUNTESTFLAGS)"
.PHONY: all
-all: stamp-syscalls stamp-python stamp-guile stamp-system-gdbinit
+all: stamp-syscalls stamp-python stamp-guile stamp-system-gdbinit gdb-files
%.xml: @MAINTAINER_MODE_TRUE@ %.xml.in apply-defaults.xsl linux-defaults.xml.in
$(XSLTPROC) -o $(SYSCALLS_SRCDIR)/$@ $(SYSCALLS_SRCDIR)/apply-defaults.xsl\
@@ -234,6 +236,26 @@ uninstall-syscalls:
done \
done
+gdb-files: $(addprefix $(srcdir)/../,$(GDB_FILES))
+ files='$(GDB_FILES)'; \
+ for file in $$files; do \
+ cp $(srcdir)/../$$file .; \
+ done
+
+.PHONY: install-gdb-files
+install-gdb-files:
+ files='$(GDB_FILES)'; \
+ for file in $$files; do \
+ $(INSTALL_DATA) $(srcdir)/../$$file $(DESTDIR)$(GDB_DATADIR); \
+ done
+
+.PHONY: uninstall-gdb-files
+uninstall-gdb-files:
+ files='$(GDB_FILES)'; \
+ for file in $$files; do \
+ rm -f $(DESTDIR)$(GDB_DATADIR)/$$file; \
+ done
+
stamp-python: Makefile $(PYTHON_FILES)
rm -rf ./$(PYTHON_DIR)
files='$(PYTHON_FILES)' ; \
@@ -379,11 +401,11 @@ install: all
.PHONY: install-only
install-only: install-syscalls install-python install-guile \
- install-system-gdbinit
+ install-system-gdbinit install-news
.PHONY: uninstall
uninstall: uninstall-syscalls uninstall-python uninstall-guile \
- uninstall-system-gdbinit
+ uninstall-system-gdbinit uninstall-news
.PHONY: clean
clean: clean-syscalls clean-python clean-guile clean-system-gdbinit
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 7f572c37c5c..37d5fe1e4cd 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -2163,6 +2163,10 @@ the command name and all its aliases separated by commas.
This first line will be followed by the full definition of all aliases
having default arguments.
+@item help news
+Show the news file. Notable features in each release are documented
+in this file.
+
@kindex apropos
@item apropos [-v] @var{regexp}
The @code{apropos} command searches through all of the @value{GDBN}
--
2.17.2
next prev parent reply other threads:[~2020-06-23 13:20 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-23 13:19 [PATCH v2 0/7] Some user-friendliness changes Tom Tromey
2020-06-23 13:20 ` [PATCH v2 1/7] Introduce read_entire_file Tom Tromey
2020-07-06 13:47 ` Simon Marchi
2020-10-02 10:24 ` Andrew Burgess
2020-06-23 13:20 ` Tom Tromey [this message]
2020-06-23 14:35 ` [PATCH v2 2/7] Add "help news" Eli Zaretskii
2020-06-23 18:18 ` Christian Biesinger
2020-07-05 15:59 ` Tom Tromey
2020-07-06 14:14 ` Simon Marchi
2020-07-11 15:30 ` Tom Tromey
2020-07-06 14:06 ` Simon Marchi
2020-07-06 14:18 ` Simon Marchi
2020-07-11 15:56 ` Tom Tromey
2020-07-06 14:22 ` Simon Marchi
2020-07-11 15:31 ` Tom Tromey
2020-06-23 13:20 ` [PATCH v2 3/7] Add "tips" file to gdb Tom Tromey
2020-06-23 14:36 ` Eli Zaretskii
2020-07-06 14:27 ` Simon Marchi
2020-06-23 13:20 ` [PATCH v2 4/7] Add get_standard_config_dir function Tom Tromey
2020-06-23 13:20 ` [PATCH v2 5/7] Add early startup command file Tom Tromey
2020-07-05 18:51 ` Tom Tromey
2020-08-26 15:47 ` Andrew Burgess
2020-08-27 16:32 ` Andrew Burgess
2020-06-23 13:20 ` [PATCH v2 6/7] Let the user control the startup style Tom Tromey
2020-06-23 14:41 ` Eli Zaretskii
2020-07-05 18:50 ` Tom Tromey
2020-07-05 19:02 ` Eli Zaretskii
2020-06-23 13:20 ` [PATCH v2 7/7] Add "set startup-quietly" Tom Tromey
2020-06-23 14:45 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200623132006.15863-3-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).