summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
authorPeder O. Klingenberg <peder@klingenberg.no>2017-02-25 10:30:46 +0200
committerEli Zaretskii <eliz@gnu.org>2017-02-25 10:30:46 +0200
commitecbd5f9ac6eb2d31241657bbb3e3f9b860391054 (patch)
tree84bad9cbbedefea523038feea6cd703631ff828e /lib-src
parentf0e7f39e0b4026a3d613416ad8ffc84e6b74242b (diff)
downloademacs-ecbd5f9ac6eb2d31241657bbb3e3f9b860391054.tar.gz
New option -u / --suppress-output to emacsclient
* lib-src/emacsclient.c (print_help_and_exit, longopts) (decode_options, main): Implement new option --suppress-output / -u to suppress printing of eval-results. * doc/emacs/misc.texi (emacsclient Options): Document the new "--suppress-output/-u" options. * etc/NEWS: Mention the new options.
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/emacsclient.c37
1 files changed, 26 insertions, 11 deletions
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 70709ecec04..7b735dfb05d 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -118,6 +118,9 @@ int nowait = 0;
/* Nonzero means don't print messages for successful operations. --quiet. */
int quiet = 0;
+/* Nonzero means don't print values returned from emacs. --suppress-output. */
+int suppress_output = 0;
+
/* Nonzero means args are expressions to be evaluated. --eval. */
int eval = 0;
@@ -160,6 +163,7 @@ struct option longopts[] =
{
{ "no-wait", no_argument, NULL, 'n' },
{ "quiet", no_argument, NULL, 'q' },
+ { "suppress-output", no_argument, NULL, 'u' },
{ "eval", no_argument, NULL, 'e' },
{ "help", no_argument, NULL, 'H' },
{ "version", no_argument, NULL, 'V' },
@@ -469,9 +473,9 @@ decode_options (int argc, char **argv)
{
int opt = getopt_long_only (argc, argv,
#ifndef NO_SOCKETS_IN_FILE_SYSTEM
- "VHneqa:s:f:d:F:tc",
+ "VHnequa:s:f:d:F:tc",
#else
- "VHneqa:f:d:F:tc",
+ "VHnequa:f:d:F:tc",
#endif
longopts, 0);
@@ -519,6 +523,10 @@ decode_options (int argc, char **argv)
quiet = 1;
break;
+ case 'u':
+ suppress_output = 1;
+ break;
+
case 'V':
message (false, "emacsclient %s\n", VERSION);
exit (EXIT_SUCCESS);
@@ -631,6 +639,7 @@ The following OPTIONS are accepted:\n\
-e, --eval Evaluate the FILE arguments as ELisp expressions\n\
-n, --no-wait Don't wait for the server to return\n\
-q, --quiet Don't display messages on success\n\
+-u, --suppress-output Don't display return values from the server\n\
-d DISPLAY, --display=DISPLAY\n\
Visit the file in the given display\n\
", "\
@@ -1860,19 +1869,25 @@ main (int argc, char **argv)
else if (strprefix ("-print ", p))
{
/* -print STRING: Print STRING on the terminal. */
- str = unquote_argument (p + strlen ("-print "));
- if (needlf)
- printf ("\n");
- printf ("%s", str);
- needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
- }
+ if (!suppress_output)
+ {
+ str = unquote_argument (p + strlen ("-print "));
+ if (needlf)
+ printf ("\n");
+ printf ("%s", str);
+ needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
+ }
+ }
else if (strprefix ("-print-nonl ", p))
{
/* -print-nonl STRING: Print STRING on the terminal.
Used to continue a preceding -print command. */
- str = unquote_argument (p + strlen ("-print-nonl "));
- printf ("%s", str);
- needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
+ if (!suppress_output)
+ {
+ str = unquote_argument (p + strlen ("-print-nonl "));
+ printf ("%s", str);
+ needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
+ }
}
else if (strprefix ("-error ", p))
{