all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#71856: 30.0.50; string-pad length vs width
@ 2024-06-30 15:37 Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-07-03  1:29 ` Stefan Kangas
  2024-07-06  8:33 ` Eli Zaretskii
  0 siblings, 2 replies; 4+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-30 15:37 UTC (permalink / raw)
  To: 71856; +Cc: monnier

Package: Emacs
Version: 30.0.50


Is it just we or we should `s/length/width/` on the doc&code of
`string-pad`?  AFAIK counting codepoints rarely makes sense (unless
those code points have width==1, of course).

Same for `string-fill`.

I'd usually assume it was an oversight, but the doc keeps repeating
"length" enough times (and it's right next to `string-limit` which
insists it's about length).


        Stefan


 In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.16.0) of 2024-06-25 built on pastel
Repository revision: 81a80256a2ce2718b1aedff315d147ba93be03d4
Repository branch: work
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure -C --enable-checking --enable-check-lisp-object-type --with-modules --with-cairo --with-tiff=ifavailable
 'CFLAGS=-Wall -g3 -Og -Wno-pointer-sign' --without-native-compilation
 PKG_CONFIG_PATH=/home/monnier/lib/pkgconfig'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND
THREADS TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM
GTK3 ZLIB

Important settings:
  value of $LANG: fr_CH.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  gnus-undo-mode: t
  server-mode: t
  electric-pair-mode: t
  global-reveal-mode: t
  reveal-mode: t
  auto-insert-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  type-break-mode: t
  global-compact-docstrings-mode: t
  global-corfu-mode: t
  corfu-mode: t
  url-handler-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  global-sanity-check-change-functions-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/monnier/src/emacs/nongnu/packages/jade-mode/jade-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/jade-mode
/home/monnier/src/emacs/nongnu/packages/jade-mode/sws-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/sws-mode
/home/monnier/src/emacs/nongnu/packages/jade-mode/stylus-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/stylus-mode
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/easy-kill/test
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-consult hides /home/monnier/src/emacs/elpa/packages/embark/embark-consult
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-org hides /home/monnier/src/emacs/elpa/packages/embark/embark-org
/home/monnier/src/emacs/elpa/packages/embark-consult/embark hides /home/monnier/src/emacs/elpa/packages/embark/embark
/home/monnier/src/emacs/elpa/packages/embark-consult/avy-embark-collect hides /home/monnier/src/emacs/elpa/packages/embark/avy-embark-collect
/home/monnier/src/emacs/elpa/packages/ada-mode/prj hides /home/monnier/src/emacs/elpa/packages/gpr-query/prj
/home/monnier/src/emacs/nongnu/packages/forth-mode/build hides /home/monnier/src/emacs/elpa/packages/lentic/build
/home/monnier/src/emacs/elpa/packages/ef-themes/theme-loaddefs hides /home/monnier/src/emacs/elpa/packages/modus-themes/theme-loaddefs
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/num3-mode/test
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/ob-asymptote hides /home/monnier/src/emacs/elpa/packages/ob-asymptote/ob-asymptote
/home/monnier/src/emacs/elpa/packages/llm/plz-event-source hides /home/monnier/src/emacs/elpa/packages/plz-event-source/plz-event-source
/home/monnier/src/emacs/elpa/packages/llm/plz-media-type hides /home/monnier/src/emacs/elpa/packages/plz-media-type/plz-media-type
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud-trepan-ni/cask-install
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud/cask-install
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/loc-changes/cask-install
/home/monnier/src/emacs/elpa/packages/ef-themes/theme-loaddefs hides /home/monnier/src/emacs/elpa/packages/standard-themes/theme-loaddefs
/home/monnier/src/emacs/elpa/packages/elsa/Elsafile hides /home/monnier/src/emacs/elpa/packages/trinary/Elsafile
/home/monnier/src/emacs/elpa/packages/url-http-oauth-demo/url-http-oauth-demo hides /home/monnier/src/emacs/elpa/packages/url-http-oauth/url-http-oauth-demo
/home/monnier/src/emacs/nongnu/packages/vm/lisp/vcard hides /home/monnier/src/emacs/elpa/packages/vcard/vcard
/home/monnier/src/emacs/elpa/packages/hydra/hydra-test hides /home/monnier/src/emacs/elpa/packages/lv/hydra-test
/home/monnier/src/emacs/elpa/packages/hydra/hydra hides /home/monnier/src/emacs/elpa/packages/lv/hydra
/home/monnier/src/emacs/elpa/packages/hydra/lv hides /home/monnier/src/emacs/elpa/packages/lv/lv
/home/monnier/src/emacs/elpa/packages/hydra/hydra-ox hides /home/monnier/src/emacs/elpa/packages/lv/hydra-ox
/home/monnier/src/emacs/elpa/packages/hydra/hydra-examples hides /home/monnier/src/emacs/elpa/packages/lv/hydra-examples
/home/monnier/src/emacs/elpa/packages/transient/lisp/transient hides /home/monnier/src/emacs/work/lisp/transient
/home/monnier/src/emacs/elpa/packages/ef-themes/theme-loaddefs hides /home/monnier/src/emacs/work/lisp/theme-loaddefs
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-help hides /home/monnier/src/emacs/work/lisp/progmodes/idlw-help
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-complete-structtag hides /home/monnier/src/emacs/work/lisp/progmodes/idlw-complete-structtag
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-toolbar hides /home/monnier/src/emacs/work/lisp/progmodes/idlw-toolbar
/home/monnier/src/emacs/elpa/packages/idlwave/idlwave hides /home/monnier/src/emacs/work/lisp/progmodes/idlwave
/home/monnier/src/emacs/elpa/packages/csharp-mode/csharp-mode hides /home/monnier/src/emacs/work/lisp/progmodes/csharp-mode
/home/monnier/src/emacs/nongnu/packages/lua-mode/lua-mode hides /home/monnier/src/emacs/work/lisp/progmodes/lua-mode
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-shell hides /home/monnier/src/emacs/work/lisp/progmodes/idlw-shell
/home/monnier/src/emacs/work/lisp/keymap hides /home/monnier/src/emacs/work/lisp/emacs-lisp/keymap
/home/monnier/src/emacs/elpa/packages/landmark/landmark hides /home/monnier/src/emacs/work/lisp/obsolete/landmark
/home/monnier/src/emacs/elpa/packages/crisp/crisp hides /home/monnier/src/emacs/work/lisp/obsolete/crisp

Features:
(shadow emacsbug descr-text package-x smerge-mode autorevert doc-view
filenotify jka-compr image-mode exif shortdoc pg-custom proof-config
proof-faces proof-useropts pg-vars pg-pamacs proof-compat prefixed-core
vc-git diff-mode track-changes easy-mmode vc-dispatcher filecache bbdb
bbdb-site timezone comp-common canlock debbugs-gnu add-log
debbugs-compat debbugs soap-client rng-xsd rng-dt rng-util xsd-regexp
nndoc url-http-oauth url-http-ntlm ntlm hmac-md5 hex-util md4 url-http
url-gw crm bug-reference emoji-labels emoji multisession sqlite
transient edmacro kmacro debug backtrace find-func nnfolder rect
gnus-html url-queue help-fns radix-tree url-cache mm-url misearch
multi-isearch gnus-fun ecomplete mailalias smtpmail format-spec
flow-fill raku-detect sort gnus-cite smiley shr-color color mm-archive
mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check gnus-async gnus-bcklg utf-7 qp gnus-ml executable diff
copyright mule-util ielm cl-print nndraft nnmh rfc2104 network-stream
nsm nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig nntp
gnus-cache gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group
gnus-undo server gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail
mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range
message sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec
epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils
mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util
mail-prsvr time-date flymake project compile text-property-search comint
ansi-osc ansi-color ring warnings noutline outline flyspell ispell
checkdoc lisp-mnt thingatpt elec-pair reveal autoinsert savehist
minibuf-eldef disp-table type-break compact-docstrings corfu compat
adoc-mode-autoloads afternoon-theme-autoloads alect-themes-autoloads
ample-theme-autoloads annotate-autoloads anti-zenburn-theme-autoloads
apache-mode-autoloads apropospriate-theme-autoloads
arduino-mode-autoloads ede/auto eieio-base
auto-dim-other-buffers-autoloads bash-completion-autoloads
beancount-autoloads better-jumper-autoloads bison-mode-autoloads
blow-autoloads blueprint-ts-mode-autoloads boxquote-autoloads
buttercup-autoloads camera-autoloads cdlatex-autoloads cider-autoloads
clojure-ts-mode-autoloads coffee-mode-autoloads
consult-flycheck-autoloads corfu-terminal-autoloads crux-autoloads
csv2ledger-autoloads cyberpunk-theme-autoloads cycle-at-point-autoloads
d-mode-autoloads dart-mode-autoloads dcs-mode-autoloads
denote-refs-autoloads devhelp-autoloads devil-autoloads
diff-ansi-autoloads dirvish-autoloads doc-show-inline-autoloads
dockerfile-mode-autoloads dracula-theme-autoloads drupal-mode-autoloads
eat-autoloads edit-indirect-autoloads el-mock-autoloads
elixir-mode-autoloads elpher-autoloads emacsql-autoloads
engine-mode-autoloads evil-anzu-autoloads anzu-autoloads
evil-args-autoloads evil-escape-autoloads evil-exchange-autoloads
evil-goggles-autoloads evil-iedit-state-autoloads
evil-indent-plus-autoloads evil-lisp-state-autoloads bind-map-autoloads
evil-matchit-autoloads evil-nerd-commenter-autoloads
evil-numbers-autoloads evil-surround-autoloads
evil-visual-mark-mode-autoloads evil-visualstar-autoloads evil-autoloads
exec-path-from-shell-autoloads flx-ido-autoloads flx-autoloads
flycheck-autoloads flymake-guile-autoloads flymake-kondor-autoloads
flymake-popon-autoloads focus-autoloads forth-mode-autoloads
free-keys-autoloads gc-buffers-autoloads geiser-chez-autoloads
geiser-chibi-autoloads geiser-chicken-autoloads geiser-gambit-autoloads
geiser-gauche-autoloads geiser-guile-autoloads geiser-kawa-autoloads
geiser-mit-autoloads geiser-racket-autoloads geiser-stklos-autoloads
geiser-autoloads git-modes-autoloads gnu-apl-mode-autoloads
gnu-indent-autoloads gnuplot-autoloads go-mode-autoloads
golden-ratio-autoloads gotham-theme-autoloads goto-chg-autoloads
gptel-autoloads graphql-mode-autoloads gruber-darker-theme-autoloads
gruvbox-theme-autoloads autothemer-autoloads guru-mode-autoloads
haskell-tng-mode-autoloads helm-autoloads helm-core-autoloads
hideshowvis-autoloads highlight-parentheses-autoloads
hl-block-mode-autoloads hl-column-autoloads htmlize-autoloads
hyperdrive-autoloads idle-highlight-mode-autoloads idris-mode-autoloads
iedit-autoloads inf-clojure-autoloads clojure-mode-autoloads
inf-ruby-autoloads inkpot-theme-autoloads iwindow-autoloads
j-mode-autoloads jabber-autoloads jade-mode-autoloads
jinja2-mode-autoloads julia-mode-autoloads keycast-autoloads
kotlin-mode-autoloads lorem-ipsum-autoloads lua-mode-autoloads
markdown-mode-autoloads mastodon-autoloads material-theme-autoloads
mentor-autoloads meow-autoloads minibar-autoloads moe-theme-autoloads
monokai-theme-autoloads mpv-autoloads multiple-cursors-autoloads
nasm-mode-autoloads nginx-mode-autoloads nix-mode-autoloads
oblivion-theme-autoloads opam-switch-mode-autoloads
org-auto-tangle-autoloads org-drill-autoloads org-journal-autoloads
org-mime-autoloads org-present-autoloads org-superstar-autoloads
org-transclusion-http-autoloads org-tree-slide-autoloads orgit-autoloads
package-lint-autoloads pacmacs-autoloads page-break-lines-autoloads
paredit-autoloads parseedn-autoloads parseclj-autoloads
pcmpl-args-autoloads pcre2el-autoloads popon-autoloads popup-autoloads
prescient-autoloads projectile-autoloads proof-general-autoloads
proof-site proof-autoloads prop-menu-autoloads racket-mode-autoloads
rainbow-delimiters-autoloads raku-mode-autoloads recomplete-autoloads
rfc-mode-autoloads rubocop-autoloads rust-mode-autoloads
sass-mode-autoloads haml-mode-autoloads scad-mode-autoloads
scala-mode-autoloads scroll-on-drag-autoloads scroll-on-jump-autoloads
sesman-autoloads shellcop-autoloads slime-autoloads macrostep-autoloads
sly-autoloads smartparens-autoloads solarized-theme-autoloads
spacemacs-theme-autoloads spell-fu-autoloads sqlite3-autoloads
stylus-mode-autoloads subatomic-theme-autoloads subed-autoloads
sweeprolog-autoloads swift-mode-autoloads swsw-autoloads
symbol-overlay-autoloads systemd-autoloads tablist-autoloads
tangotango-theme-autoloads telephone-line-autoloads
testcover-mark-line-autoloads textile-mode-autoloads toc-org-autoloads
totp-auth-autoloads base32-autoloads tuareg-autoloads rx caml-autoloads
typescript-mode-autoloads ujelly-theme-autoloads undo-fu-autoloads
undo-fu-session-autoloads vc-fossil-autoloads vcomplete-autoloads
visual-fill-column-autoloads vm-autoloads web-mode-autoloads
webpaste-autoloads wfnames-autoloads wgrep-autoloads why-this-autoloads
with-simulated-input-autoloads workroom-autoloads
writegood-mode-autoloads ws-butler-autoloads xah-fly-keys-autoloads
xkcd-autoloads xml-rpc-autoloads yaml-mode-autoloads
yasnippet-snippets-autoloads zenburn-theme-autoloads zig-mode-autoloads
reformatter-autoloads ace-window-autoloads ack-autoloads
activities-autoloads ada-mode-autoloads ada-ref-man-autoloads
adaptive-wrap-autoloads adjust-parens-autoloads advice-patch-autoloads
aggressive-completion-autoloads aggressive-indent-autoloads
agitate-autoloads ahungry-theme-autoloads aircon-theme-autoloads
all-autoloads altcaps-autoloads ampc-autoloads arbitools-autoloads
assess-autoloads auctex-cont-latexmk-autoloads
auctex-label-numbers-autoloads aumix-mode-autoloads
auto-correct-autoloads auto-header-autoloads auto-overlays-autoloads
autocrypt-autoloads bbdb-autoloads beacon-autoloads beardbolt-autoloads
beframe-autoloads bicep-ts-mode-autoloads blist-autoloads
bluetooth-autoloads bnf-mode-autoloads boxy-headings-autoloads
boxy-headlines-autoloads breadcrumb-autoloads brief-autoloads
buffer-env-autoloads buffer-expose-autoloads bufferlo-autoloads
bug-hunter-autoloads buildbot-autoloads calibre-autoloads cape-autoloads
capf-autosuggest-autoloads caps-lock-autoloads captain-autoloads
chess-autoloads clipboard-collector-autoloads cobol-mode-autoloads
code-cells-autoloads colorful-mode-autoloads
compact-docstrings-autoloads company-coq-autoloads
company-ebdb-autoloads company-math-autoloads
company-statistics-autoloads company-autoloads consult-denote-autoloads
consult-hoogle-autoloads haskell-mode-autoloads consult-recoll-autoloads
context-coloring-autoloads corfu-autoloads coterm-autoloads
cpio-mode-autoloads cpupower-autoloads crdt-autoloads crisp-autoloads
csharp-mode-autoloads csv-mode-autoloads cursory-autoloads
cycle-quotes-autoloads dape-autoloads darkroom-autoloads
dbus-codegen-autoloads debbugs-autoloads delight-autoloads
denote-menu-autoloads denote-autoloads detached-autoloads
devdocs-autoloads devicetree-ts-mode-autoloads dict-tree-autoloads
diff-hl-autoloads diffview-autoloads diminish-autoloads
dired-du-autoloads dired-duplicates-autoloads dired-git-info-autoloads
dired-preview-autoloads disk-usage-autoloads dismal-autoloads
djvu-autoloads do-at-point-autoloads doc-toc-autoloads docbook-autoloads
drepl-autoloads comint-mime-autoloads dts-mode-autoloads
easy-escape-autoloads easy-kill-autoloads ebdb-gnorb-autoloads inline
ebdb-i18n-chn-autoloads ebdb-autoloads cl-extra help-mode
ediprolog-autoloads eev-autoloads ef-themes-autoloads
el-search-autoloads electric-spacing-autoloads
elisp-benchmarks-autoloads ellama-autoloads elsa-autoloads
emacs-gc-stats-autoloads emacspeak-autoloads embark-consult-autoloads
consult-autoloads embark-autoloads ement-autoloads emms-autoloads
engrave-faces-autoloads enwc-autoloads epoch-view-autoloads
ergoemacs-mode-autoloads ess-autoloads excorporate-autoloads
expand-region-autoloads expreg-autoloads exwm-autoloads
f90-interface-browser-autoloads face-shift-autoloads
filechooser-autoloads filladapt-autoloads
firefox-javascript-repl-autoloads flylisp-autoloads
flymake-codespell-autoloads flymake-proselint-autoloads
fontaine-autoloads frame-tabs-autoloads frog-menu-autoloads
fsm-autoloads ftable-autoloads gcmh-autoloads ggtags-autoloads
gited-autoloads gle-mode-autoloads gnome-c-style-autoloads
gnorb-autoloads gnu-elpa-autoloads gnu-elpa-features gnugo-autoloads
ascii-art-to-unicode-autoloads gnus-mock-autoloads gpastel-autoloads
gpr-mode-autoloads gpr-query-autoloads gnat-compiler-autoloads
graphql-autoloads greader-autoloads greenbar-autoloads
gtags-mode-autoloads guess-language-autoloads hcel-autoloads
hiddenquote-autoloads highlight-escape-sequences-autoloads
hook-helpers-autoloads html5-schema-autoloads idlwave-autoloads
ilist-autoloads inspector-autoloads ioccur-autoloads
isearch-mb-autoloads iterators-autoloads ivy-avy-autoloads avy-autoloads
ivy-explorer-autoloads ivy-hydra-autoloads ivy-posframe-autoloads
jarchive-autoloads javaimp-autoloads jgraph-mode-autoloads
jinx-autoloads jit-spell-autoloads js2-mode-autoloads
json-mode-autoloads jumpc-autoloads kind-icon-autoloads kiwix-autoloads
request-autoloads kmb-autoloads landmark-autoloads
latex-table-wizard-autoloads leaf-autoloads lentic-server-autoloads
lentic-autoloads lex-autoloads lin-autoloads listen-autoloads
literate-scratch-autoloads llm-autoloads lmc-autoloads
load-dir-autoloads loccur-autoloads logos-autoloads luwak-autoloads
m-buffer-autoloads marginalia-autoloads markchars-autoloads
math-symbol-lists-autoloads mct-autoloads memory-usage-autoloads
metar-autoloads midi-kbd-autoloads mines-autoloads
minibuffer-header-autoloads minibuffer-line-autoloads minimap-autoloads
modus-themes-autoloads mpdired-autoloads multi-mode-autoloads
multishell-autoloads muse-autoloads myers-autoloads nameless-autoloads
names-autoloads nano-agenda-autoloads nano-modeline-autoloads
nano-theme-autoloads nftables-mode-autoloads nhexl-mode-autoloads
nlinum-autoloads notes-mode-autoloads notmuch-indicator-autoloads
num3-mode-autoloads oauth2-autoloads ob-asymptote-autoloads
ob-haxe-autoloads objed-autoloads omn-mode-autoloads on-screen-autoloads
openpgp-autoloads orderless-autoloads org-contacts-autoloads
org-edna-autoloads org-jami-bot-autoloads jami-bot-autoloads
org-modern-autoloads org-notify-autoloads org-real-autoloads
boxy-autoloads org-remark-autoloads org-transclusion-autoloads
org-translate-autoloads orgalist-autoloads osc-autoloads osm-autoloads
other-frame-window-autoloads pabbrev-autoloads paced-autoloads
parsec-autoloads parser-generator-autoloads path-iterator-autoloads
perl-doc-autoloads persist-autoloads phpinspect-autoloads
phps-mode-autoloads pinentry-autoloads plz-event-source-autoloads
plz-media-type-autoloads plz-see-autoloads poke-autoloads
poke-mode-autoloads poker-autoloads polymode-autoloads popper-autoloads
pq-autoloads prefixed-core-autoloads preview-auto-autoloads
preview-tailor-autoloads psgml-autoloads pspp-mode-autoloads
pulsar-autoloads pyim-autoloads async-autoloads pyim-basedict-autoloads
quarter-plane-autoloads rainbow-mode-autoloads rbit-autoloads
rcirc-color-autoloads rcirc-menu-autoloads rcirc-sqlite-autoloads
realgud-ipdb-autoloads realgud-jdb-autoloads realgud-lldb-autoloads
realgud-node-debug-autoloads realgud-node-inspect-autoloads
realgud-pdbpp-autoloads realgud-trepan-ni-autoloads
realgud-trepan-xpy-autoloads realgud-autoloads loc-changes-autoloads
load-relative-autoloads rec-mode-autoloads register-list-autoloads
relint-autoloads repology-autoloads rich-minority-autoloads
rmsbolt-autoloads rnc-mode-autoloads rt-liberation-autoloads
ruby-end-autoloads rudel-autoloads satchel-autoloads scanner-autoloads
scroll-restore-autoloads sed-mode-autoloads setup-autoloads
shelisp-autoloads shell-command+-autoloads shell-quasiquote-autoloads
shen-mode-autoloads sisu-mode-autoloads site-lisp-autoloads
sketch-mode-autoloads slime-volleyball-autoloads sm-c-mode-autoloads
smalltalk-mode-autoloads smart-yank-autoloads sml-mode-autoloads
sokoban-autoloads sotlisp-autoloads spacious-padding-autoloads
spinner-autoloads sql-beeline-autoloads sql-cassandra-autoloads
sql-indent-autoloads sql-smie-autoloads finder-inf plz-autoloads
ssh-deploy-autoloads standard-themes-autoloads stream-autoloads
substitute-autoloads svg-clock-autoloads svg-tag-mode-autoloads
svg-lib-autoloads switchy-window-autoloads sxhkdrc-mode-autoloads
system-packages-autoloads tam-autoloads taxy-magit-section-autoloads
taxy-autoloads temp-buffer-browse-autoloads tempel-autoloads
test-simple-autoloads tex-item-autoloads tex-parens-autoloads
auctex-autoloads tex-site theme-buffet-autoloads
timerfunctions-autoloads tiny-autoloads tmr-autoloads tomelr-autoloads
topspace-autoloads tramp-nspawn-autoloads tramp-theme-autoloads
transcribe-autoloads transient-cycles-autoloads tree-inspector-autoloads
treeview-autoloads trie-autoloads heap-autoloads tNFA-autoloads
trinary-autoloads triples-autoloads typo-autoloads ulisp-repl-autoloads
undo-tree-autoloads uni-confusables-autoloads uniquify-files-autoloads
urgrep-autoloads url-http-ntlm-autoloads url-http-oauth-demo-autoloads
url-http-oauth-autoloads url-auth url-scgi-autoloads validate-autoloads
valign-autoloads vc-backup-autoloads vc-got-autoloads vc-hgcmd-autoloads
vcard-autoloads vcl-mode-autoloads vdiff-autoloads hydra-autoloads
lv-autoloads vertico-posframe-autoloads vertico-autoloads
posframe-autoloads vigenere-autoloads visual-filename-abbrev-autoloads
visual-fill-autoloads vlf-autoloads vundo-autoloads
wcheck-mode-autoloads wconf-autoloads web-server-autoloads
webfeeder-autoloads websocket-autoloads window-commander-autoloads
windower-autoloads windresize-autoloads wisitoken-grammar-mode-autoloads
mmm-mode-autoloads wisi-autoloads wpuzzle-autoloads
wrap-search-autoloads xclip-autoloads xeft-autoloads xelb-autoloads
xpm-autoloads queue-autoloads xr-autoloads xref-union-autoloads
yasnippet-classic-snippets-autoloads yasnippet-autoloads zones-autoloads
ztree-autoloads zuul-autoloads cl-seq editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch cus-edit pp cus-load
wid-edit counsel-autoloads swiper-autoloads ivy-autoloads info package
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers
url-parse auth-source eieio eieio-core cl-macs pcase icons
password-cache json subr-x map byte-opt bytecomp byte-compile url-vars
cl-loaddefs cl-lib gv rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray button loaddefs theme-loaddefs
oclosure cl-preloaded faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process
emacs)

Memory information:
((conses 16 2980691 428797) (symbols 48 45054 49) (strings 32 223128 34358)
 (string-bytes 1 6213421) (vectors 16 78690) (vector-slots 8 1748973 387748)
 (floats 8 536 14473) (intervals 56 11459 763) (buffers 992 51))






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#71856: 30.0.50; string-pad length vs width
  2024-06-30 15:37 bug#71856: 30.0.50; string-pad length vs width Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-07-03  1:29 ` Stefan Kangas
  2024-07-03  1:52   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-07-06  8:33 ` Eli Zaretskii
  1 sibling, 1 reply; 4+ messages in thread
From: Stefan Kangas @ 2024-07-03  1:29 UTC (permalink / raw)
  To: 71856; +Cc: Lars Ingebrigtsen, monnier

Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@gnu.org> writes:

> Is it just we or we should `s/length/width/` on the doc&code of
> `string-pad`?  AFAIK counting codepoints rarely makes sense (unless
> those code points have width==1, of course).
>
> Same for `string-fill`.

I think that makes sense.

> I'd usually assume it was an oversight, but the doc keeps repeating
> "length" enough times (and it's right next to `string-limit` which
> insists it's about length).

Could this have been an oversight there also?





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#71856: 30.0.50; string-pad length vs width
  2024-07-03  1:29 ` Stefan Kangas
@ 2024-07-03  1:52   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 4+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-07-03  1:52 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 71856, Lars Ingebrigtsen

>> Is it just we or we should `s/length/width/` on the doc&code of
>> `string-pad`?  AFAIK counting codepoints rarely makes sense (unless
>> those code points have width==1, of course).
>> Same for `string-fill`.
> I think that makes sense.

Thanks.

>> I'd usually assume it was an oversight, but the doc keeps repeating
>> "length" enough times (and it's right next to `string-limit` which
>> insists it's about length).
>
> Could this have been an oversight there also?

No, this one is definitely done on purpose: for actual width, we already
have another function and `string-limit` explicitly refers to it.
[ Maybe the `coding-system` arg of `string-limit` should be mandatory,
  since it seems to be the most important use-case, tho.  ]


        Stefan






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#71856: 30.0.50; string-pad length vs width
  2024-06-30 15:37 bug#71856: 30.0.50; string-pad length vs width Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-07-03  1:29 ` Stefan Kangas
@ 2024-07-06  8:33 ` Eli Zaretskii
  1 sibling, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2024-07-06  8:33 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 71856

> Cc: monnier@iro.umontreal.ca
> Date: Sun, 30 Jun 2024 11:37:41 -0400
> From:  Stefan Monnier via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> Is it just we or we should `s/length/width/` on the doc&code of
> `string-pad`?  AFAIK counting codepoints rarely makes sense (unless
> those code points have width==1, of course).

Probably.  But the issue is not just with width==1, it is also with
character compositions.  Patches using string-width instead of length
are welcome.

There's another issue here: string-width ignores some of the
display-related issues, so we should consider whether we should use
string-width or string-pixel-width here (or maybe have optional
behavior, controlled by the caller, to use either one, as each one has
its advantages and disadvantages).

> Same for `string-fill`.

No, this one uses fill-region, which already handles the width of
characters.  So I've now fixed the doc string and renamed the argument
to WIDTH on the emacs-30 branch.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-07-06  8:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-30 15:37 bug#71856: 30.0.50; string-pad length vs width Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-03  1:29 ` Stefan Kangas
2024-07-03  1:52   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-06  8:33 ` Eli Zaretskii

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.