[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#354: "Added (how many lines, bytes?!) to file.txt"
From: |
npostavs |
Subject: |
bug#354: "Added (how many lines, bytes?!) to file.txt" |
Date: |
Sat, 01 Apr 2017 23:55:53 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Eli Zaretskii <eliz@gnu.org> writes:
> Yes, but only because of the non-interactive case. If that is not an
> issue, you could simply pass the SDATA of the original string, because
> we simply insert that into an echo-area buffer.
The `' thing applies in the interactive case right?
>From 156859858e03baeddeb554c8df220171adaf6bf1 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Sat, 1 Apr 2017 17:54:26 -0400
Subject: [PATCH] * src/xdisp.c (vmessage, message): Clarify commentary.
---
src/xdisp.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/xdisp.c b/src/xdisp.c
index 9ecfb86401..8ff291affb 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10470,9 +10470,12 @@ message_with_string (const char *m, Lisp_Object
string, bool log)
/* Dump an informative message to the minibuf. If M is 0, clear out
any existing message, and let the mini-buffer text show through.
- The message must be safe ASCII and the format must not contain ` or
- '. If your message and format do not fit into this category,
- convert your arguments to Lisp objects and use Fmessage instead. */
+ The message must be safe ASCII (because when Emacs is
+ non-interactive the message is sent straight to stderr without
+ encoding first) and the format must not contain ` or ' (because
+ this function does not account for `text-quoting-style'. If your
+ message and format do not fit into this category, convert your
+ arguments to Lisp objects and use Fmessage instead. */
static void ATTRIBUTE_FORMAT_PRINTF (1, 0)
vmessage (const char *m, va_list ap)
@@ -10530,6 +10533,7 @@ vmessage (const char *m, va_list ap)
}
}
+/* See vmessage for restrictions on the text of the message. */
void
message (const char *m, ...)
{
--
2.11.1
>>
>> if (!auto_saving && !noninteractive)
>> Fmessage (build_string ("%s %d characters of %s"),
>> build_string (NUMBERP (append) ? "Updated"
>> : ! NILP (append) ? "Added"
>> : "Wrote"),
>> make_number (XINT (end) - XINT (start)),
>> visit_file);
>
> Yes, this is also okay.
Except I forgot the CALLN.
>From d077e66f21621aa0ac04fb148146836322f052d6 Mon Sep 17 00:00:00 2001
From: Jeff Clough <kb1vqh@gmail.com>
Date: Fri, 27 Feb 2015 08:52:12 -0500
Subject: [PATCH v2] Output number of characters added to file (Bug#354)
* fileio.c (write_region):
* epa-file.el (epa-file-write-region):
* jka-compr.el (jka-compr-write-region):
* ange-ftp.el (ange-ftp-write-region):
* tramp-gvfs.el (tramp-gvfs-handle-write-region):
* tramp-sh.el (tramp-sh-handle-write-region):
* mm-util.el (mm-append-to-file): Functions now output
characters written in addition to file name.
* files.texi: Added documentation to write-region and
append-to-file describing their output.
---
doc/emacs/files.texi | 8 +++++---
etc/NEWS | 5 +++++
lisp/epa-file.el | 2 +-
lisp/gnus/mm-util.el | 2 +-
lisp/jka-compr.el | 2 +-
lisp/net/ange-ftp.el | 2 +-
lisp/net/tramp-gvfs.el | 2 +-
lisp/net/tramp-sh.el | 3 ++-
src/fileio.c | 14 +++++++-------
9 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 0b730e27d3..ed17f66ca2 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1641,9 +1641,11 @@ Misc File Ops
@kbd{M-x write-region} is the inverse of @kbd{M-x insert-file}; it
copies the contents of the region into the specified file. @kbd{M-x
append-to-file} adds the text of the region to the end of the
-specified file. @xref{Accumulating Text}. The variable
-@code{write-region-inhibit-fsync} applies to these commands, as well
-as saving files; see @ref{Customize Save}.
+specified file. @xref{Accumulating Text}. When called interactively,
+these commands will print a message in the echo area giving the name
+of the file affected as well as the number of characters which were
+added. The variable @code{write-region-inhibit-fsync} applies to
+these commands, as well as saving files; see @ref{Customize Save}.
@findex set-file-modes
@cindex file modes
diff --git a/etc/NEWS b/etc/NEWS
index f3ec3fe904..4e4da7d470 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -90,6 +90,11 @@ required capabilities are found in terminfo. See the FAQ
node
* Changes in Emacs 26.1
++++
+** The functions write-region, append-to-file, and the like now output
+the number of characters added in addition to the name of the file
+affected.
+
** The variable 'emacs-version' no longer includes the build number.
This is now stored separately in a new variable, 'emacs-build-number'.
diff --git a/lisp/epa-file.el b/lisp/epa-file.el
index c97acb837a..bc97992b5f 100644
--- a/lisp/epa-file.el
+++ b/lisp/epa-file.el
@@ -290,7 +290,7 @@ epa-file-write-region
(if (or (eq visit t)
(eq visit nil)
(stringp visit))
- (message "Wrote %s" buffer-file-name))))
+ (message "Wrote %d characters to %s" (- end start) buffer-file-name))))
(put 'write-region 'epa-file 'epa-file-write-region)
(defun epa-file-select-keys ()
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index 89f397e3ed..5a58ed15b9 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -736,7 +736,7 @@ mm-append-to-file
inhibit-file-name-handlers)
inhibit-file-name-handlers)))
(write-region start end filename t 'no-message)
- (message "Appended to %s" filename)))
+ (message "Appended %d characters to %s" (- end start) filename)))
(defun mm-write-region (start end filename &optional append visit lockname
coding-system inhibit)
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el
index 26a7cf506f..0be349f0fd 100644
--- a/lisp/jka-compr.el
+++ b/lisp/jka-compr.el
@@ -357,7 +357,7 @@ jka-compr-write-region
(and (or (eq visit t)
(eq visit nil)
(stringp visit))
- (message "Wrote %s" visit-file))
+ (message "Wrote %d characters to %s" (- end start) visit-file))
;; ensure `last-coding-system-used' has an appropriate value
(setq last-coding-system-used coding-system-used)
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index cafdb3ecb0..54ffa3551f 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -3284,7 +3284,7 @@ ange-ftp-write-region
(set-buffer-modified-p nil)))
;; ensure `last-coding-system-used' has an appropriate value
(setq last-coding-system-used coding-system-used)
- (ange-ftp-message "Wrote %s" abbr)
+ (ange-ftp-message "Wrote %d characters to %s" (- end start) abbr)
(ange-ftp-add-file-entry filename))
(ange-ftp-real-write-region start end filename append visit))))
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index 59d8771cf1..eb0b832c0c 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -1223,7 +1223,7 @@ tramp-gvfs-handle-write-region
;; The end.
(when (or (eq visit t) (null visit) (stringp visit))
- (tramp-message v 0 "Wrote %s" filename))
+ (tramp-message v 0 "Wrote %d characters to %s" (- end start) filename))
(run-hooks 'tramp-handle-write-region-hook)))
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index e4a48b7f8e..4db88ebd89 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -3411,7 +3411,8 @@ tramp-sh-handle-write-region
(when need-chown
(tramp-set-file-uid-gid filename uid gid))
(when (or (eq visit t) (null visit) (stringp visit))
- (tramp-message v 0 "Wrote %s" filename))
+ (tramp-message v 0 "Wrote %d characters to %s"
+ (- end start) filename))
(run-hooks 'tramp-handle-write-region-hook)))))
(defvar tramp-vc-registered-file-names nil
diff --git a/src/fileio.c b/src/fileio.c
index acbf76e0d8..893d13192b 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -5150,13 +5150,13 @@ write_region (Lisp_Object start, Lisp_Object end,
Lisp_Object filename,
}
if (!auto_saving && !noninteractive)
- message_with_string ((NUMBERP (append)
- ? "Updated %s"
- : ! NILP (append)
- ? "Added to %s"
- : "Wrote %s"),
- visit_file, 1);
-
+ CALLN (Fmessage,
+ (build_string ("%s %d characters of `%s'"),
+ build_string (NUMBERP (append) ? "Updated"
+ : ! NILP (append) ? "Added"
+ : "Wrote"),
+ make_number (XINT (end) - XINT (start)),
+ visit_file));
return Qnil;
}
--
2.11.1
- bug#354: "Added (how many lines, bytes?!) to file.txt", npostavs, 2017/04/01
- bug#354: "Added (how many lines, bytes?!) to file.txt", Eli Zaretskii, 2017/04/01
- bug#354: "Added (how many lines, bytes?!) to file.txt",
npostavs <=
- bug#354: "Added (how many lines, bytes?!) to file.txt", Eli Zaretskii, 2017/04/02
- bug#354: "Added (how many lines, bytes?!) to file.txt", Paul Eggert, 2017/04/02
- bug#354: "Added (how many lines, bytes?!) to file.txt", npostavs, 2017/04/02
- bug#354: "Added (how many lines, bytes?!) to file.txt", Paul Eggert, 2017/04/02
- bug#354: "Added (how many lines, bytes?!) to file.txt", npostavs, 2017/04/02
- bug#354: "Added (how many lines, bytes?!) to file.txt", npostavs, 2017/04/06