From: "Mattias Engdegård" <mattiase@acm.org>
To: "Basil L. Contovounesios" <contovob@tcd.ie>
Cc: 35331@debbugs.gnu.org
Subject: bug#35331: [PATCH] Neater html table of old versions in ELPA
Date: Mon, 13 May 2019 17:18:38 +0200 [thread overview]
Message-ID: <AEAEB747-CA98-48CD-B30D-AA5BAB57932C@acm.org> (raw)
In-Reply-To: <87lfzae8jg.fsf@tcd.ie>
[-- Attachment #1: Type: text/plain, Size: 598 bytes --]
13 maj 2019 kl. 16.25 skrev Basil L. Contovounesios <contovob@tcd.ie>:
>
> Is it possible to reuse file-size-human-readable here?
That either requires modifying that function to (optionally) put a hard space between the number and unit, or post-processing its return value to achieve the same effect. The former is obviously the heroic way to go. Patch attached!
> Does the no-break space have to be a HTML entity,
> or can it be Unicode ?\u00A0?
Probably either would do, but since we don't control the web browser interpreting it, I went with what I thought was the safer option.
[-- Attachment #2: 0001-Optional-space-in-file-size-human-readable.patch --]
[-- Type: application/octet-stream, Size: 6505 bytes --]
From 35a8001e6293748876ce0e1a5929222fedb696d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= <mattiase@acm.org>
Date: Mon, 13 May 2019 17:05:24 +0200
Subject: [PATCH] Optional space in `file-size-human-readable'
Readability and correct usage requires a space between a number and
its unit of measurement; add an optional argument to
`file-size-human-readable' to provide the desired string to put in
that place. For compatibility, the default is an empty string.
* lisp/files.el (file-size-human-readable): Add optional SPACE argument.
(files--ask-user-about-large-file, warn-maybe-out-of-memory):
Use the new argument.
* lisp/url/url-http.el (url-http-simple-after-change-function)
(url-http-content-length-after-change-function):
Use the new argument.
* etc/NEWS (Lisp Changes): Mention the change.
---
etc/NEWS | 7 +++++++
lisp/files.el | 21 ++++++++++++++-------
lisp/url/url-http.el | 11 ++++++-----
3 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 43ad8be1cc..e2bffe7a2b 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1983,6 +1983,13 @@ returns a regexp that never matches anything, which is an identity for
this operation. Previously, the empty string was returned in this
case.
++++
+** The function 'file-size-human-readable' accepts another optional argument.
+The new third argument is a string put between the number and unit;
+if nil or omitted, the empty string is used. It is recommended to use
+a single space or non-breaking space for readability and correct
+usage.
+
\f
* Changes in Emacs 27.1 on Non-Free Operating Systems
diff --git a/lisp/files.el b/lisp/files.el
index 8477c227bc..a2f160fdae 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1358,7 +1358,7 @@ it means chase no more than that many links and then stop."
;; A handy function to display file sizes in human-readable form.
;; See http://en.wikipedia.org/wiki/Kibibyte for the reference.
-(defun file-size-human-readable (file-size &optional flavor)
+(defun file-size-human-readable (file-size &optional flavor space)
"Produce a string showing FILE-SIZE in human-readable form.
Optional second argument FLAVOR controls the units and the display format:
@@ -1368,7 +1368,12 @@ Optional second argument FLAVOR controls the units and the display format:
If FLAVOR is `si', each kilobyte is 1000 bytes and the produced suffixes
are \"k\", \"M\", \"G\", \"T\", etc.
If FLAVOR is `iec', each kilobyte is 1024 bytes and the produced suffixes
- are \"KiB\", \"MiB\", \"GiB\", \"TiB\", etc."
+ are \"KiB\", \"MiB\", \"GiB\", \"TiB\", etc.
+
+Optional third argument SPACE is a string put between the number and unit.
+If nil or omitted, the empty string is used.
+Recommended value is a single space or non-breaking space, unless other
+constraints prohibit a space in that position."
(let ((power (if (or (null flavor) (eq flavor 'iec))
1024.0
1000.0))
@@ -1379,9 +1384,10 @@ Optional second argument FLAVOR controls the units and the display format:
(setq file-size (/ file-size power)
post-fixes (cdr post-fixes)))
(format (if (> (mod file-size 1.0) 0.05)
- "%.1f%s%s"
- "%.0f%s%s")
+ "%.1f%s%s%s"
+ "%.0f%s%s%s")
file-size
+ (or space "")
(if (and (eq flavor 'iec) (string= (car post-fixes) "k"))
"K"
(car post-fixes))
@@ -2054,7 +2060,7 @@ think it does, because \"free\" is pretty hard to define in practice."
(defun files--ask-user-about-large-file (size op-type filename offer-raw)
(let ((prompt (format "File %s is large (%s), really %s?"
(file-name-nondirectory filename)
- (file-size-human-readable size) op-type)))
+ (file-size-human-readable size 'iec " ") op-type)))
(if (not offer-raw)
(if (y-or-n-p prompt) nil 'abort)
(let* ((use-dialog (and (display-popup-menus-p)
@@ -2106,9 +2112,10 @@ returns nil or exits non-locally."
exceeds the %S%% of currently available free memory (%s).
If that fails, try to open it with `find-file-literally'
\(but note that some characters might be displayed incorrectly)."
- (file-size-human-readable size)
+ (file-size-human-readable size 'iec " ")
out-of-memory-warning-percentage
- (file-size-human-readable (* total-free-memory 1024)))))))))
+ (file-size-human-readable (* total-free-memory 1024)
+ 'iec " "))))))))
(defun files--message (format &rest args)
"Like `message', except sometimes don't print to minibuffer.
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 662b6664b1..3baf5c6b19 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -999,7 +999,8 @@ should be shown to the user."
(defun url-http-simple-after-change-function (_st _nd _length)
;; Function used when we do NOT know how long the document is going to be
;; Just _very_ simple 'downloaded %d' type of info.
- (url-lazy-message "Reading %s..." (file-size-human-readable (buffer-size))))
+ (url-lazy-message "Reading %s..."
+ (file-size-human-readable (buffer-size) 'iec " ")))
(defun url-http-content-length-after-change-function (_st nd _length)
"Function used when we DO know how long the document is going to be.
@@ -1012,16 +1013,16 @@ the callback to be triggered."
(url-percentage (- nd url-http-end-of-headers)
url-http-content-length)
url-http-content-type
- (file-size-human-readable (- nd url-http-end-of-headers))
- (file-size-human-readable url-http-content-length)
+ (file-size-human-readable (- nd url-http-end-of-headers) 'iec " ")
+ (file-size-human-readable url-http-content-length 'iec " ")
(url-percentage (- nd url-http-end-of-headers)
url-http-content-length))
(url-display-percentage
"Reading... %s of %s (%d%%)"
(url-percentage (- nd url-http-end-of-headers)
url-http-content-length)
- (file-size-human-readable (- nd url-http-end-of-headers))
- (file-size-human-readable url-http-content-length)
+ (file-size-human-readable (- nd url-http-end-of-headers) 'iec " ")
+ (file-size-human-readable url-http-content-length 'iec " ")
(url-percentage (- nd url-http-end-of-headers)
url-http-content-length)))
--
2.20.1 (Apple Git-117)
next prev parent reply other threads:[~2019-05-13 15:18 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-19 21:36 bug#35331: [PATCH] Neater html table of old versions in ELPA Mattias Engdegård
2019-04-21 16:09 ` Basil L. Contovounesios
2019-04-22 13:17 ` Mattias Engdegård
2019-05-13 13:42 ` Mattias Engdegård
2019-05-13 14:25 ` Basil L. Contovounesios
2019-05-13 15:18 ` Mattias Engdegård [this message]
2019-05-15 20:16 ` Mattias Engdegård
2019-06-26 11:41 ` Basil L. Contovounesios
2019-06-26 17:11 ` Mattias Engdegård
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=AEAEB747-CA98-48CD-B30D-AA5BAB57932C@acm.org \
--to=mattiase@acm.org \
--cc=35331@debbugs.gnu.org \
--cc=contovob@tcd.ie \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.