* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH @ 2023-11-05 8:18 Daniel Brooks 2024-01-13 10:52 ` Stefan Kangas 0 siblings, 1 reply; 12+ messages in thread From: Daniel Brooks @ 2023-11-05 8:18 UTC (permalink / raw) To: 66944 Fractions written as `2:3', `2÷3', and `⅔' are all parsed as rational fractions; `2⁄3' ought to do the same. In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.37, cairo version 1.17.6) of 2023-06-27 built on erebor Repository revision: 28b7745c677c394b21a663e5b7cdef2eb7329fde Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12014000 System Description: Fedora Linux 38 (Workstation Edition) Configured using: 'configure -C --with-tree-sitter --with-native-compilation --prefix=/home/db48x' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Outline Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t auto-revert-mode: t bug-reference-mode: t server-mode: t treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t flx-ido-mode: t ido-ubiquitous-mode: t ido-everywhere: t shell-dirtrack-mode: t projectile-mode: t which-key-mode: t global-edit-server-edit-mode: t global-hl-line-mode: t global-so-long-mode: t override-global-mode: t global-whitespace-mode: t whitespace-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t column-number-mode: 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/db48x/.quicklisp/dists/quicklisp/software/slime-v2.28/slime hides /home/db48x/.emacs.d/elpa/slime-20230730.1734/slime /home/db48x/.quicklisp/dists/quicklisp/software/slime-v2.28/slime-autoloads hides /home/db48x/.emacs.d/elpa/slime-20230730.1734/slime-autoloads /home/db48x/.quicklisp/dists/quicklisp/software/slime-v2.28/slime-tests hides /home/db48x/.emacs.d/elpa/slime-20230730.1734/slime-tests /home/db48x/.emacs.d/elpa/transient-20230915.1911/transient hides /home/db48x/share/emacs/30.0.50/lisp/transient /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package-diminish /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package-bind-key /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package-core /home/db48x/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /home/db48x/share/emacs/30.0.50/lisp/use-package/bind-key /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package-lint /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package-jump /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package-delight /home/db48x/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /home/db48x/share/emacs/30.0.50/lisp/use-package/use-package-ensure /home/db48x/.emacs.d/elpa/csharp-mode-20221126.2005/csharp-mode hides /home/db48x/share/emacs/30.0.50/lisp/progmodes/csharp-mode /home/db48x/.emacs.d/elpa/org-9.6.9/ob-sed hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-sed /home/db48x/.emacs.d/elpa/org-9.6.9/ob-makefile hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-makefile /home/db48x/.emacs.d/elpa/org-9.6.9/ol-irc hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-irc /home/db48x/.emacs.d/elpa/org-9.6.9/ob-scheme hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-scheme /home/db48x/.emacs.d/elpa/org-9.6.9/ob-table hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-table /home/db48x/.emacs.d/elpa/org-9.6.9/ol hides /home/db48x/share/emacs/30.0.50/lisp/org/ol /home/db48x/.emacs.d/elpa/org-9.6.9/ob hides /home/db48x/share/emacs/30.0.50/lisp/org/ob /home/db48x/.emacs.d/elpa/org-9.6.9/ob-C hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-C /home/db48x/.emacs.d/elpa/org-9.6.9/org-colview hides /home/db48x/share/emacs/30.0.50/lisp/org/org-colview /home/db48x/.emacs.d/elpa/org-9.6.9/org-duration hides /home/db48x/share/emacs/30.0.50/lisp/org/org-duration /home/db48x/.emacs.d/elpa/org-9.6.9/ob-lisp hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-lisp /home/db48x/.emacs.d/elpa/org-9.6.9/org-pcomplete hides /home/db48x/share/emacs/30.0.50/lisp/org/org-pcomplete /home/db48x/.emacs.d/elpa/org-9.6.9/org-plot hides /home/db48x/share/emacs/30.0.50/lisp/org/org-plot /home/db48x/.emacs.d/elpa/org-9.6.9/oc hides /home/db48x/share/emacs/30.0.50/lisp/org/oc /home/db48x/.emacs.d/elpa/org-9.6.9/org-faces hides /home/db48x/share/emacs/30.0.50/lisp/org/org-faces /home/db48x/.emacs.d/elpa/org-9.6.9/org-src hides /home/db48x/share/emacs/30.0.50/lisp/org/org-src /home/db48x/.emacs.d/elpa/org-9.6.9/ob-processing hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-processing /home/db48x/.emacs.d/elpa/org-9.6.9/ob-java hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-java /home/db48x/.emacs.d/elpa/org-9.6.9/org-compat hides /home/db48x/share/emacs/30.0.50/lisp/org/org-compat /home/db48x/.emacs.d/elpa/org-9.6.9/org-indent hides /home/db48x/share/emacs/30.0.50/lisp/org/org-indent /home/db48x/.emacs.d/elpa/org-9.6.9/ob-matlab hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-matlab /home/db48x/.emacs.d/elpa/org-9.6.9/ol-gnus hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-gnus /home/db48x/.emacs.d/elpa/org-9.6.9/ob-js hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-js /home/db48x/.emacs.d/elpa/org-9.6.9/ol-w3m hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-w3m /home/db48x/.emacs.d/elpa/org-9.6.9/org-ctags hides /home/db48x/share/emacs/30.0.50/lisp/org/org-ctags /home/db48x/.emacs.d/elpa/org-9.6.9/org-lint hides /home/db48x/share/emacs/30.0.50/lisp/org/org-lint /home/db48x/.emacs.d/elpa/org-9.6.9/org-entities hides /home/db48x/share/emacs/30.0.50/lisp/org/org-entities /home/db48x/.emacs.d/elpa/org-9.6.9/org-attach hides /home/db48x/share/emacs/30.0.50/lisp/org/org-attach /home/db48x/.emacs.d/elpa/org-9.6.9/ob-python hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-python /home/db48x/.emacs.d/elpa/org-9.6.9/ox-md hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-md /home/db48x/.emacs.d/elpa/org-9.6.9/ob-forth hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-forth /home/db48x/.emacs.d/elpa/org-9.6.9/org-persist hides /home/db48x/share/emacs/30.0.50/lisp/org/org-persist /home/db48x/.emacs.d/elpa/org-9.6.9/org-element hides /home/db48x/share/emacs/30.0.50/lisp/org/org-element /home/db48x/.emacs.d/elpa/org-9.6.9/ob-ref hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-ref /home/db48x/.emacs.d/elpa/org-9.6.9/ox-org hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-org /home/db48x/.emacs.d/elpa/org-9.6.9/ob-awk hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-awk /home/db48x/.emacs.d/elpa/org-9.6.9/ob-groovy hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-groovy /home/db48x/.emacs.d/elpa/org-9.6.9/ob-emacs-lisp hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-emacs-lisp /home/db48x/.emacs.d/elpa/org-9.6.9/ol-eshell hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-eshell /home/db48x/.emacs.d/elpa/org-9.6.9/ob-shell hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-shell /home/db48x/.emacs.d/elpa/org-9.6.9/org-loaddefs hides /home/db48x/share/emacs/30.0.50/lisp/org/org-loaddefs /home/db48x/.emacs.d/elpa/org-9.6.9/org-attach-git hides /home/db48x/share/emacs/30.0.50/lisp/org/org-attach-git /home/db48x/.emacs.d/elpa/org-9.6.9/org-agenda hides /home/db48x/share/emacs/30.0.50/lisp/org/org-agenda /home/db48x/.emacs.d/elpa/org-9.6.9/ob-core hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-core /home/db48x/.emacs.d/elpa/org-9.6.9/org-habit hides /home/db48x/share/emacs/30.0.50/lisp/org/org-habit /home/db48x/.emacs.d/elpa/org-9.6.9/ob-haskell hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-haskell /home/db48x/.emacs.d/elpa/org-9.6.9/ob-gnuplot hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-gnuplot /home/db48x/.emacs.d/elpa/org-9.6.9/org-refile hides /home/db48x/share/emacs/30.0.50/lisp/org/org-refile /home/db48x/.emacs.d/elpa/org-9.6.9/ox-texinfo hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-texinfo /home/db48x/.emacs.d/elpa/org-9.6.9/ob-clojure hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-clojure /home/db48x/.emacs.d/elpa/org-9.6.9/ob-maxima hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-maxima /home/db48x/.emacs.d/elpa/org-9.6.9/ob-tangle hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-tangle /home/db48x/.emacs.d/elpa/org-9.6.9/ob-lob hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-lob /home/db48x/.emacs.d/elpa/org-9.6.9/ol-eww hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-eww /home/db48x/.emacs.d/elpa/org-9.6.9/ol-man hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-man /home/db48x/.emacs.d/elpa/org-9.6.9/ob-comint hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-comint /home/db48x/.emacs.d/elpa/org-9.6.9/org-tempo hides /home/db48x/share/emacs/30.0.50/lisp/org/org-tempo /home/db48x/.emacs.d/elpa/org-9.6.9/ol-docview hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-docview /home/db48x/.emacs.d/elpa/org-9.6.9/ob-sass hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-sass /home/db48x/.emacs.d/elpa/org-9.6.9/org-keys hides /home/db48x/share/emacs/30.0.50/lisp/org/org-keys /home/db48x/.emacs.d/elpa/org-9.6.9/org-timer hides /home/db48x/share/emacs/30.0.50/lisp/org/org-timer /home/db48x/.emacs.d/elpa/org-9.6.9/oc-basic hides /home/db48x/share/emacs/30.0.50/lisp/org/oc-basic /home/db48x/.emacs.d/elpa/org-9.6.9/oc-csl hides /home/db48x/share/emacs/30.0.50/lisp/org/oc-csl /home/db48x/.emacs.d/elpa/org-9.6.9/ob-dot hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-dot /home/db48x/.emacs.d/elpa/org-9.6.9/org-cycle hides /home/db48x/share/emacs/30.0.50/lisp/org/org-cycle /home/db48x/.emacs.d/elpa/org-9.6.9/ox hides /home/db48x/share/emacs/30.0.50/lisp/org/ox /home/db48x/.emacs.d/elpa/org-9.6.9/ob-calc hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-calc /home/db48x/.emacs.d/elpa/org-9.6.9/oc-bibtex hides /home/db48x/share/emacs/30.0.50/lisp/org/oc-bibtex /home/db48x/.emacs.d/elpa/org-9.6.9/ob-eshell hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-eshell /home/db48x/.emacs.d/elpa/org-9.6.9/ol-doi hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-doi /home/db48x/.emacs.d/elpa/org-9.6.9/oc-natbib hides /home/db48x/share/emacs/30.0.50/lisp/org/oc-natbib /home/db48x/.emacs.d/elpa/org-9.6.9/org-fold-core hides /home/db48x/share/emacs/30.0.50/lisp/org/org-fold-core /home/db48x/.emacs.d/elpa/org-9.6.9/ol-bbdb hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-bbdb /home/db48x/.emacs.d/elpa/org-9.6.9/org-protocol hides /home/db48x/share/emacs/30.0.50/lisp/org/org-protocol /home/db48x/.emacs.d/elpa/org-9.6.9/ob-eval hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-eval /home/db48x/.emacs.d/elpa/org-9.6.9/ob-ditaa hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-ditaa /home/db48x/.emacs.d/elpa/org-9.6.9/org-mouse hides /home/db48x/share/emacs/30.0.50/lisp/org/org-mouse /home/db48x/.emacs.d/elpa/org-9.6.9/ol-rmail hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-rmail /home/db48x/.emacs.d/elpa/org-9.6.9/ob-exp hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-exp /home/db48x/.emacs.d/elpa/org-9.6.9/org-num hides /home/db48x/share/emacs/30.0.50/lisp/org/org-num /home/db48x/.emacs.d/elpa/org-9.6.9/ox-html hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-html /home/db48x/.emacs.d/elpa/org-9.6.9/org-feed hides /home/db48x/share/emacs/30.0.50/lisp/org/org-feed /home/db48x/.emacs.d/elpa/org-9.6.9/ob-sql hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-sql /home/db48x/.emacs.d/elpa/org-9.6.9/org-macs hides /home/db48x/share/emacs/30.0.50/lisp/org/org-macs /home/db48x/.emacs.d/elpa/org-9.6.9/org-goto hides /home/db48x/share/emacs/30.0.50/lisp/org/org-goto /home/db48x/.emacs.d/elpa/org-9.6.9/ob-lua hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-lua /home/db48x/.emacs.d/elpa/org-9.6.9/ob-plantuml hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-plantuml /home/db48x/.emacs.d/elpa/org-9.6.9/ox-icalendar hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-icalendar /home/db48x/.emacs.d/elpa/org-9.6.9/ol-mhe hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-mhe /home/db48x/.emacs.d/elpa/org-9.6.9/org-list hides /home/db48x/share/emacs/30.0.50/lisp/org/org-list /home/db48x/.emacs.d/elpa/org-9.6.9/ob-perl hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-perl /home/db48x/.emacs.d/elpa/org-9.6.9/ob-lilypond hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-lilypond /home/db48x/.emacs.d/elpa/org-9.6.9/org-inlinetask hides /home/db48x/share/emacs/30.0.50/lisp/org/org-inlinetask /home/db48x/.emacs.d/elpa/org-9.6.9/ob-org hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-org /home/db48x/.emacs.d/elpa/org-9.6.9/ob-fortran hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-fortran /home/db48x/.emacs.d/elpa/org-9.6.9/ob-latex hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-latex /home/db48x/.emacs.d/elpa/org-9.6.9/org-archive hides /home/db48x/share/emacs/30.0.50/lisp/org/org-archive /home/db48x/.emacs.d/elpa/org-9.6.9/ox-beamer hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-beamer /home/db48x/.emacs.d/elpa/org-9.6.9/org-fold hides /home/db48x/share/emacs/30.0.50/lisp/org/org-fold /home/db48x/.emacs.d/elpa/org-9.6.9/org hides /home/db48x/share/emacs/30.0.50/lisp/org/org /home/db48x/.emacs.d/elpa/org-9.6.9/org-datetree hides /home/db48x/share/emacs/30.0.50/lisp/org/org-datetree /home/db48x/.emacs.d/elpa/org-9.6.9/ol-info hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-info /home/db48x/.emacs.d/elpa/org-9.6.9/ob-octave hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-octave /home/db48x/.emacs.d/elpa/org-9.6.9/ox-man hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-man /home/db48x/.emacs.d/elpa/org-9.6.9/ob-screen hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-screen /home/db48x/.emacs.d/elpa/org-9.6.9/ox-odt hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-odt /home/db48x/.emacs.d/elpa/org-9.6.9/ob-ruby hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-ruby /home/db48x/.emacs.d/elpa/org-9.6.9/org-crypt hides /home/db48x/share/emacs/30.0.50/lisp/org/org-crypt /home/db48x/.emacs.d/elpa/org-9.6.9/ox-koma-letter hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-koma-letter /home/db48x/.emacs.d/elpa/org-9.6.9/org-footnote hides /home/db48x/share/emacs/30.0.50/lisp/org/org-footnote /home/db48x/.emacs.d/elpa/org-9.6.9/ob-sqlite hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-sqlite /home/db48x/.emacs.d/elpa/org-9.6.9/org-capture hides /home/db48x/share/emacs/30.0.50/lisp/org/org-capture /home/db48x/.emacs.d/elpa/org-9.6.9/oc-biblatex hides /home/db48x/share/emacs/30.0.50/lisp/org/oc-biblatex /home/db48x/.emacs.d/elpa/org-9.6.9/ol-bibtex hides /home/db48x/share/emacs/30.0.50/lisp/org/ol-bibtex /home/db48x/.emacs.d/elpa/org-9.6.9/ob-ocaml hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-ocaml /home/db48x/.emacs.d/elpa/org-9.6.9/ox-latex hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-latex /home/db48x/.emacs.d/elpa/org-9.6.9/ob-julia hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-julia /home/db48x/.emacs.d/elpa/org-9.6.9/org-version hides /home/db48x/share/emacs/30.0.50/lisp/org/org-version /home/db48x/.emacs.d/elpa/org-9.6.9/ox-publish hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-publish /home/db48x/.emacs.d/elpa/org-9.6.9/ob-css hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-css /home/db48x/.emacs.d/elpa/org-9.6.9/org-clock hides /home/db48x/share/emacs/30.0.50/lisp/org/org-clock /home/db48x/.emacs.d/elpa/org-9.6.9/org-macro hides /home/db48x/share/emacs/30.0.50/lisp/org/org-macro /home/db48x/.emacs.d/elpa/org-9.6.9/org-mobile hides /home/db48x/share/emacs/30.0.50/lisp/org/org-mobile /home/db48x/.emacs.d/elpa/org-9.6.9/org-table hides /home/db48x/share/emacs/30.0.50/lisp/org/org-table /home/db48x/.emacs.d/elpa/org-9.6.9/ox-ascii hides /home/db48x/share/emacs/30.0.50/lisp/org/ox-ascii /home/db48x/.emacs.d/elpa/org-9.6.9/org-id hides /home/db48x/share/emacs/30.0.50/lisp/org/org-id /home/db48x/.emacs.d/elpa/org-9.6.9/ob-R hides /home/db48x/share/emacs/30.0.50/lisp/org/ob-R /home/db48x/.emacs.d/elpa/seq-2.24/seq hides /home/db48x/share/emacs/30.0.50/lisp/emacs-lisp/seq Features: (shadow checkdoc emacsbug cus-start make-mode makeinfo skeleton informat texinfmt texnfo-upd vc-git magit-patch magit-subtree magit-gitignore magit-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util calc-undo calc-yank texinfo texinfo-loaddefs magit-extras emacsql-sqlite-builtin sqlite forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml forge-post forge-repo forge forge-core forge-db closql emacsql-sqlite-common emacsql emacsql-compiler eieio-base magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff diff-mode git-commit log-edit pcvs-util add-log magit-core magit-autorevert autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git emacs-news-mode ripgrep vc vc-dispatcher bug-reference macrostep-c cmacexp eglot external-completion jsonrpc flymake-proc flymake seq-25 ert cpputils-cmake cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine calccomp calc-arith descr-text calc-frac calc-misc calc-aent url-cache url-http url-auth url-gw display-line-numbers finder-inf cl-print org-element org-persist org-id org-refile avl-tree ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core calc-alg calc-ext calc-menu calc calc-loaddefs rect calc-macs re-builder mailalias smtpmail gnus-fun sort gnus-cite smiley shr-color mm-archive mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg qp gnus-ml gnus-topic nnmaildir nndraft nnmh utf-7 nnfolder go-mode find-file ffap 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 nnir gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml mml-sec epa mailabbrev gmm-utils mailheader gnus-win raku-detect helpful cc-langs cc-vars cc-defs trace edebug debug backtrace info-look elisp-refs two-column face-remap misearch multi-isearch magit-base magit-section cursor-sensor crm compat mule-util jka-compr server elisp-slime-nav treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-interface treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals treemacs-fringe-indicator pulse treemacs-faces treemacs-icons treemacs-scope treemacs-themes treemacs-core-utils pfuture treemacs-logging treemacs-customization treemacs-macros emms-player-mpd emms-url emms-cache tq emms-playlist-mode emms-source-playlist emms-source-file locate dired dired-loaddefs emms-player-simple emms-info-libtag emms-info emms-later-do emms emms-compat edmacro kmacro ob-shell org org-macro org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-org ob ob-tangle org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs gnus nnheader gnus-util mail-utils range bbdb bbdb-site timezone flx-ido flx ido-completing-read+ memoize cus-edit minibuf-eldef slime-fancy slime-indentation slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references slime-compiler-notes-tree slime-scratch slime-presentations bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc slime-repl elp slime-parse slime company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb flycheck-rust let-alist flycheck find-func gud apropos etags fileloop generator arc-mode archive-mode pp hyperspec beancount ido powerline powerline-separators powerline-themes tramp-cache time-stamp tramp-sh lxc-tramp lxd-tramp tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat xdg shell pcomplete format-spec projectile grep ibuf-ext ibuffer ibuffer-loaddefs toml-mode derived conf-mode align lsp-rust lsp-semantic-tokens company-lsp lsp-mode lsp-protocol xref project tree-widget wid-edit spinner network-stream puny nsm markdown-mode color thingatpt noutline outline lv inline imenu ht filenotify f f-shortdoc s ewoc epg rfc6068 epg-config dash compile text-property-search comint ansi-osc ansi-color ring company yasnippet which-key edit-server advice hl-line so-long parse-time iso8601 time-date quelpa-use-package quelpa mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr lisp-mnt help-fns radix-tree use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core disp-table wombat-theme whitespace time cus-load 2048-game-autoloads adoc-mode-autoloads async-autoloads cargo-autoloads cdlatex-autoloads counsel-autoloads csharp-mode-autoloads csv-mode-autoloads dap-mode-autoloads ein-autoloads elpy-autoloads emms-autoloads flx-ido-autoloads flx-autoloads flycheck-autoloads forge-autoloads closql-autoloads git-link-autoloads gnu-elpa-keyring-update-autoloads go-guru-autoloads go-rename-autoloads go-mode-autoloads graphviz-dot-mode-autoloads haskell-mode-autoloads helpful-autoloads elisp-refs-autoloads comp comp-cstr warnings icons cl-extra help-mode imenu-list-autoloads js2-mode-autoloads json-mode-autoloads kubernetes-autoloads lsp-docker-autoloads lsp-origami-autoloads lsp-treemacs-autoloads lsp-ui-autoloads lsp-mode-autoloads lxc-tramp-autoloads ghub-autoloads magit-autoloads pcase git-commit-autoloads markdown-mode-autoloads monky-autoloads multiple-cursors-autoloads notmuch-autoloads org-noter-autoloads org-ql-autoloads org-roam-autoloads magit-section-autoloads emacsql-autoloads org-super-agenda-autoloads org-autoloads ov-autoloads ox-mediawiki-autoloads peg-autoloads popup-autoloads evil-autoloads projectile-autoloads projectile-variable-autoloads quelpa-autoloads request-autoloads rust-mode-autoloads scad-mode-autoloads simple-httpd-autoloads company-autoloads slime-autoloads macrostep-autoloads solidity-mode-autoloads srefactor-autoloads srfi-autoloads f-autoloads swiper-autoloads ivy-autoloads systemd-autoloads rx transient-autoloads treemacs-autoloads posframe-autoloads ht-autoloads avy-autoloads treepy-autoloads ts-autoloads dash-autoloads typescript-mode-autoloads use-package-autoloads bind-key-autoloads vterm-autoloads web-mode-autoloads websocket-autoloads which-key-autoloads with-editor-autoloads info compat-autoloads seq-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads esxml-autoloads 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 cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib 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 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 oclosure cl-preloaded button loaddefs theme-loaddefs 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 lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 4225193 2807260) (symbols 48 99132 17) (strings 32 591136 182035) (string-bytes 1 25293156) (vectors 16 331540) (vector-slots 8 9559839 962545) (floats 8 934 29836) (intervals 56 280908 32913) (buffers 984 85)) ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2023-11-05 8:18 bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH Daniel Brooks @ 2024-01-13 10:52 ` Stefan Kangas 2024-01-13 16:11 ` Daniel Brooks 0 siblings, 1 reply; 12+ messages in thread From: Stefan Kangas @ 2024-01-13 10:52 UTC (permalink / raw) To: Daniel Brooks; +Cc: 66944 Daniel Brooks <db48x@db48x.net> writes: > Fractions written as `2:3', `2÷3', and `⅔' are all parsed as rational > fractions; `2⁄3' ought to do the same. Thanks, but was the intention here to attach a patch? I can't see one attached, so maybe you missed it. ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-13 10:52 ` Stefan Kangas @ 2024-01-13 16:11 ` Daniel Brooks 2024-01-27 9:09 ` Eli Zaretskii 0 siblings, 1 reply; 12+ messages in thread From: Daniel Brooks @ 2024-01-13 16:11 UTC (permalink / raw) To: Stefan Kangas; +Cc: 66944 [-- Attachment #1: Type: text/plain, Size: 462 bytes --] Stefan Kangas <stefankangas@gmail.com> writes: > Daniel Brooks <db48x@db48x.net> writes: > >> Fractions written as `2:3', `2÷3', and `⅔' are all parsed as rational >> fractions; `2⁄3' ought to do the same. > > Thanks, but was the intention here to attach a patch? > > I can't see one attached, so maybe you missed it. /me facepalms Yea, dunno how that happened. Let me try again, this time with my tongue held at just the right angle… [-- Attachment #2: use fraction slash character to parse rational fractions --] [-- Type: text/x-patch, Size: 4174 bytes --] From be3fa086c20909993d32d430a7f0d315db8fcb49 Mon Sep 17 00:00:00 2001 From: Daniel Brooks <db48x@db48x.net> Date: Sun, 5 Nov 2023 01:03:37 -0700 Subject: [PATCH] Calc parses fractions written using U+2044 FRACTION SLASH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fractions of the form 123⁄456 are handled as if written 123:456. Note in particular the difference in behavior from U+2215 DIVISION SLASH and U+002F SOLIDUS, which result in division rather than a rational fraction. * lisp/calc/calc-aent.el (math-read-replacement-list): Substitute a colon for any fraction slash. * test/lisp/calc/calc-tests.el (calc-frac-input): Test various fraction types. * doc/misc/calc.texi (Fractions): Mention fraction slash, precomposed fractions. Copyright-paperwork-exempt: yes --- doc/misc/calc.texi | 6 ++++++ etc/NEWS | 7 ++++++- lisp/calc/calc-aent.el | 1 + test/lisp/calc/calc-tests.el | 25 +++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index c651b007173..3030df0c101 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -10571,6 +10571,12 @@ Fractions @samp{@var{radix}#@var{num}:@var{denom}} (or in the analogous three-part form). The numerator and denominator always use the same radix. +Fractions may also be entered with @kbd{⁄} (U+2044 FRACTION SLASH) in +place of any @kbd{:}. Precomposed fraction characters from @kbd{½} +(U+00BD VULGAR FRACTION ONE HALF) through @kbd{⅞} (U+215E VULGAR +FRACTION SEVEN EIGHTHS) as supported as well. Thus @samp{2:3}, +@samp{2⁄3}, and @samp{⅔} are all equivalent. + @node Floats @section Floats diff --git a/etc/NEWS b/etc/NEWS index e29a787a0cc..038ebf1b925 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -983,7 +983,12 @@ URIs are now prefixed with "https://" instead. +++ *** New command 'customize-dirlocals'. This command pops up a buffer to edit the settings in ".dir-locals.el". - +** Calc +*** Calc parses fractions written using U+2044 FRACTION SLASH +Fractions of the form 123⁄456 are handled as if written 123:456. Note +in particular the difference in behavior from U+2215 DIVISION SLASH +and U+002F SOLIDUS, which result in division rather than a rational +fraction. \f * New Modes and Packages in Emacs 30.1 diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index 66ede3295ae..1dcb9ad1c85 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el @@ -505,6 +505,7 @@ math-read-replacement-list ("⅝" "(5:8)") ; 5/8 ("⅞" "(7:8)") ; 7/8 ("⅟" "1:") ; 1/... + ("⁄" ":") ; arbitrary fractions of the form 123⁄456 ;; superscripts ("⁰" "0") ; 0 ("¹" "1") ; 1 diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el index 5b11dd950ba..e724295e8e0 100644 --- a/test/lisp/calc/calc-tests.el +++ b/test/lisp/calc/calc-tests.el @@ -734,6 +734,31 @@ calc-latex-input (var c var-c)))))) (calc-set-language nil))) +(ert-deftest calc-frac-input () + ;; precomposed fraction + (should (equal (math-read-expr "½") + '(frac 1 2))) + ;; ascii solidus + (should (equal (math-read-expr "123/456") + '(/ 123 456))) + (should (equal (math-read-expr "a/b") + '(/ (var a var-a) (var b var-b)))) + ;; fraction slash + (should (equal (math-read-expr "123⁄456") + '(frac 41 152))) + (should (equal (math-read-expr "a⁄b") + '(error 1 "Syntax error"))) + ;; division slash + (should (equal (math-read-expr "123∕456") + '(/ 123 456))) + (should (equal (math-read-expr "a∕b") + '(/ (var a var-a) (var b var-b)))) + ;; division sign + (should (equal (math-read-expr "123÷456") + '(frac 41 152))) + (should (equal (math-read-expr "a÷b") ; I think this one is wrong + '(error 1 "Syntax error")))) + (defvar var-g) ;; Test `let'. -- 2.41.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-13 16:11 ` Daniel Brooks @ 2024-01-27 9:09 ` Eli Zaretskii 2024-01-27 13:11 ` Daniel Brooks 0 siblings, 1 reply; 12+ messages in thread From: Eli Zaretskii @ 2024-01-27 9:09 UTC (permalink / raw) To: Daniel Brooks; +Cc: 66944, stefankangas > Cc: 66944@debbugs.gnu.org > From: Daniel Brooks <db48x@db48x.net> > Date: Sat, 13 Jan 2024 08:11:27 -0800 > > Stefan Kangas <stefankangas@gmail.com> writes: > > > Daniel Brooks <db48x@db48x.net> writes: > > > >> Fractions written as `2:3', `2÷3', and `⅔' are all parsed as rational > >> fractions; `2⁄3' ought to do the same. > > > > Thanks, but was the intention here to attach a patch? > > > > I can't see one attached, so maybe you missed it. > > /me facepalms > > Yea, dunno how that happened. Let me try again, this time with my tongue > held at just the right angle… Thanks, and apologies for a delay in reviewing the patch. I have some minor comments below, but I also see that we have no copyright assignment from you, and without that we will be unable to accept contributions from you after this one. Would you like to start the paperwork of assigning the copyright to the FSF at this time, so we could accept contributions from you in the future? > --- a/doc/misc/calc.texi > +++ b/doc/misc/calc.texi > @@ -10571,6 +10571,12 @@ Fractions > @samp{@var{radix}#@var{num}:@var{denom}} (or in the analogous three-part > form). The numerator and denominator always use the same radix. > > +Fractions may also be entered with @kbd{⁄} (U+2044 FRACTION SLASH) in > +place of any @kbd{:}. Precomposed fraction characters from @kbd{½} > +(U+00BD VULGAR FRACTION ONE HALF) through @kbd{⅞} (U+215E VULGAR > +FRACTION SEVEN EIGHTHS) as supported as well. Thus @samp{2:3}, > +@samp{2⁄3}, and @samp{⅔} are all equivalent. Please try rewriting these to avoid non-ASCII characters in Texinfo source files, since processing those with TeX could cause problems. Where possible, please use the special Texinfo commands described in the "Insertions" chapter of the Texinfo manual and its sections. If some character cannot be written using ASCII characters as described in that section, please just name it, as in "U+2044 FRACTION SLASH", but don't include it verbatim. Also, our conventions are to leave two spaces between sentences in documentation and comments (this is relevant to the NEWS entry as well). > --- a/etc/NEWS > +++ b/etc/NEWS > @@ -983,7 +983,12 @@ URIs are now prefixed with "https://" instead. > +++ > *** New command 'customize-dirlocals'. > This command pops up a buffer to edit the settings in ".dir-locals.el". > - > +** Calc > +*** Calc parses fractions written using U+2044 FRACTION SLASH > +Fractions of the form 123⁄456 are handled as if written 123:456. Note > +in particular the difference in behavior from U+2215 DIVISION SLASH > +and U+002F SOLIDUS, which result in division rather than a rational > +fraction. This entry should be marked with "+++", as the necessary manual changes were made. Also, this doesn't mention the precomposed fractions; I think it should. Thanks. ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-27 9:09 ` Eli Zaretskii @ 2024-01-27 13:11 ` Daniel Brooks 2024-01-27 14:00 ` Eli Zaretskii 0 siblings, 1 reply; 12+ messages in thread From: Daniel Brooks @ 2024-01-27 13:11 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 66944, stefankangas [-- Attachment #1: Type: text/plain, Size: 1733 bytes --] Eli Zaretskii <eliz@gnu.org> writes: >> Cc: 66944@debbugs.gnu.org >> From: Daniel Brooks <db48x@db48x.net> >> Date: Sat, 13 Jan 2024 08:11:27 -0800 >> >> Fractions written as `2:3', `2÷3', and `⅔' are all parsed as rational >> fractions; `2⁄3' ought to do the same. > > Thanks, and apologies for a delay in reviewing the patch. You’re welcome. No need to apologize; this one’s nothing critical. > I have some minor comments below, but I also see that we have no > copyright assignment from you, and without that we will be unable to > accept contributions from you after this one. Would you like to start > the paperwork of assigning the copyright to the FSF at this time, so > we could accept contributions from you in the future? I’ll remember to do it next time, if my next contribution is more than two sentences :) > Please try rewriting these to avoid non-ASCII characters in Texinfo > source files, since processing those with TeX could cause problems. > Where possible, please use the special Texinfo commands described in > the "Insertions" chapter of the Texinfo manual and its sections. If > some character cannot be written using ASCII characters as described > in that section, please just name it, as in "U+2044 FRACTION SLASH", > but don't include it verbatim. Thanks, I hadn’t read that. Done. > Also, our conventions are to leave two spaces between sentences in > documentation and comments (this is relevant to the NEWS entry as > well). Done. > This entry should be marked with "+++", as the necessary manual > changes were made. Also, this doesn't mention the precomposed > fractions; I think it should. Fair enough; done. Thank you Eli. [-- Attachment #2: second revision of patch --] [-- Type: text/x-patch, Size: 4487 bytes --] From d3f08757f6570b70ec72951743b5bd41c1a10a54 Mon Sep 17 00:00:00 2001 From: Daniel Brooks <db48x@db48x.net> Date: Sun, 5 Nov 2023 01:03:37 -0700 Subject: [PATCH] Calc parses fractions written using U+2044 FRACTION SLASH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fractions of the form 123⁄456 are handled as if written 123:456. Note in particular the difference in behavior from U+2215 DIVISION SLASH and U+002F SOLIDUS, which result in division rather than a rational fraction. * lisp/calc/calc-aent.el (math-read-replacement-list): Substitute a colon for any fraction slash. * test/lisp/calc/calc-tests.el (calc-frac-input): Test various fraction types. * doc/misc/calc.texi (Fractions): Mention fraction slash, precomposed fractions. Copyright-paperwork-exempt: yes --- doc/misc/calc.texi | 7 +++++++ etc/NEWS | 11 ++++++++++- lisp/calc/calc-aent.el | 1 + test/lisp/calc/calc-tests.el | 25 +++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index c651b007173..2ea97207edc 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -10571,6 +10571,13 @@ Fractions @samp{@var{radix}#@var{num}:@var{denom}} (or in the analogous three-part form). The numerator and denominator always use the same radix. +Fractions may also be entered with @kbd{@U{2044}} (U+2044 FRACTION +SLASH) in place of any @kbd{:}. Precomposed fraction characters from +@kbd{@U{00BD}} (U+00BD VULGAR FRACTION ONE HALF) through +@kbd{@U{215E}} (U+215E VULGAR FRACTION SEVEN EIGHTHS) as supported as +well. Thus @samp{2:3}, @samp{2@U{2044}3}, and @samp{@U{2154}} are all +equivalent. + @node Floats @section Floats diff --git a/etc/NEWS b/etc/NEWS index e29a787a0cc..2b3741fb5dc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -983,7 +983,16 @@ URIs are now prefixed with "https://" instead. +++ *** New command 'customize-dirlocals'. This command pops up a buffer to edit the settings in ".dir-locals.el". - +** Calc ++++ +*** Calc parses fractions written using U+2044 FRACTION SLASH +Fractions of the form 123⁄456 are handled as if written 123:456. Note +in particular the difference in behavior from U+2215 DIVISION SLASH +and U+002F SOLIDUS, which result in division rather than a rational +fraction. You may also be interested to know that precomposed +fraction characters, such as ½ (U+00BD VULGAR FRACTION ONE HALF), are +also recognized as rational fractions. They have been since 2004, but +it looks like it was never mentioned in the NEWS, or even the manual. \f * New Modes and Packages in Emacs 30.1 diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index 66ede3295ae..1dcb9ad1c85 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el @@ -505,6 +505,7 @@ math-read-replacement-list ("⅝" "(5:8)") ; 5/8 ("⅞" "(7:8)") ; 7/8 ("⅟" "1:") ; 1/... + ("⁄" ":") ; arbitrary fractions of the form 123⁄456 ;; superscripts ("⁰" "0") ; 0 ("¹" "1") ; 1 diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el index 5b11dd950ba..e724295e8e0 100644 --- a/test/lisp/calc/calc-tests.el +++ b/test/lisp/calc/calc-tests.el @@ -734,6 +734,31 @@ calc-latex-input (var c var-c)))))) (calc-set-language nil))) +(ert-deftest calc-frac-input () + ;; precomposed fraction + (should (equal (math-read-expr "½") + '(frac 1 2))) + ;; ascii solidus + (should (equal (math-read-expr "123/456") + '(/ 123 456))) + (should (equal (math-read-expr "a/b") + '(/ (var a var-a) (var b var-b)))) + ;; fraction slash + (should (equal (math-read-expr "123⁄456") + '(frac 41 152))) + (should (equal (math-read-expr "a⁄b") + '(error 1 "Syntax error"))) + ;; division slash + (should (equal (math-read-expr "123∕456") + '(/ 123 456))) + (should (equal (math-read-expr "a∕b") + '(/ (var a var-a) (var b var-b)))) + ;; division sign + (should (equal (math-read-expr "123÷456") + '(frac 41 152))) + (should (equal (math-read-expr "a÷b") ; I think this one is wrong + '(error 1 "Syntax error")))) + (defvar var-g) ;; Test `let'. -- 2.43.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-27 13:11 ` Daniel Brooks @ 2024-01-27 14:00 ` Eli Zaretskii 2024-01-27 14:26 ` Daniel Brooks 0 siblings, 1 reply; 12+ messages in thread From: Eli Zaretskii @ 2024-01-27 14:00 UTC (permalink / raw) To: Daniel Brooks; +Cc: 66944, stefankangas > From: Daniel Brooks <db48x@db48x.net> > Cc: stefankangas@gmail.com, 66944@debbugs.gnu.org > Date: Sat, 27 Jan 2024 05:11:33 -0800 > > > Please try rewriting these to avoid non-ASCII characters in Texinfo > > source files, since processing those with TeX could cause problems. > > Where possible, please use the special Texinfo commands described in > > the "Insertions" chapter of the Texinfo manual and its sections. If > > some character cannot be written using ASCII characters as described > > in that section, please just name it, as in "U+2044 FRACTION SLASH", > > but don't include it verbatim. > > Thanks, I hadn’t read that. Done. Thanks, but I'm not sure @U{HEX} will always work in the printed output. Did you try to say "make calc.pdf" in doc/emisc/? If not, can you try that? If you see errors about @U when generating PDF format, we will need to make use of @U conditional by using @ifnottex, and in @iftex case omit the @U{HEX} parts. Thanks. ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-27 14:00 ` Eli Zaretskii @ 2024-01-27 14:26 ` Daniel Brooks 2024-01-27 14:49 ` Eli Zaretskii 0 siblings, 1 reply; 12+ messages in thread From: Daniel Brooks @ 2024-01-27 14:26 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 66944, stefankangas [-- Attachment #1: Type: text/plain, Size: 613 bytes --] Eli Zaretskii <eliz@gnu.org> writes: > Thanks, but I'm not sure @U{HEX} will always work in the printed > output. Did you try to say "make calc.pdf" in doc/emisc/? If not, > can you try that? No, I hadn’t, and no, it doesn’t work. > If you see errors about @U when generating PDF format, we will need to > make use of @U conditional by using @ifnottex, and in @iftex case omit > the @U{HEX} parts. I certainly can do that, but it is super disappointing. Apparently it supports some unicode characters but not all of them. Do you know if it is hard to make it support new ones? db48x [-- Attachment #2: third time’s the charm --] [-- Type: text/x-patch, Size: 4776 bytes --] From 616f49fc8c8384ba47acb69c1bb3ac495c6ada57 Mon Sep 17 00:00:00 2001 From: Daniel Brooks <db48x@db48x.net> Date: Sun, 5 Nov 2023 01:03:37 -0700 Subject: [PATCH] Calc parses fractions written using U+2044 FRACTION SLASH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fractions of the form 123⁄456 are handled as if written 123:456. Note in particular the difference in behavior from U+2215 DIVISION SLASH and U+002F SOLIDUS, which result in division rather than a rational fraction. * lisp/calc/calc-aent.el (math-read-replacement-list): Substitute a colon for any fraction slash. * test/lisp/calc/calc-tests.el (calc-frac-input): Test various fraction types. * doc/misc/calc.texi (Fractions): Mention fraction slash, precomposed fractions. Copyright-paperwork-exempt: yes --- doc/misc/calc.texi | 16 ++++++++++++++++ etc/NEWS | 11 ++++++++++- lisp/calc/calc-aent.el | 1 + test/lisp/calc/calc-tests.el | 25 +++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index c651b007173..e386d6664aa 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -10571,6 +10571,22 @@ Fractions @samp{@var{radix}#@var{num}:@var{denom}} (or in the analogous three-part form). The numerator and denominator always use the same radix. +@ifnottex +Fractions may also be entered with @kbd{@U{2044}} (U+2044 FRACTION +SLASH) in place of any @kbd{:}. Precomposed fraction characters from +@kbd{@U{00BD}} (U+00BD VULGAR FRACTION ONE HALF) through +@kbd{@U{215E}} (U+215E VULGAR FRACTION SEVEN EIGHTHS) as supported as +well. Thus @samp{2:3}, @samp{2@U{2044}3}, and @samp{@U{2154}} are all +equivalent. +@end ifnottex +@iftex +Fractions may also be entered with U+2044 FRACTION SLASH in place of +any @kbd{:}. Precomposed fraction characters from U+00BD VULGAR +FRACTION ONE HALF through U+215E VULGAR FRACTION SEVEN EIGHTHS as +supported as well. +@end iftex + + @node Floats @section Floats diff --git a/etc/NEWS b/etc/NEWS index e29a787a0cc..2b3741fb5dc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -983,7 +983,16 @@ URIs are now prefixed with "https://" instead. +++ *** New command 'customize-dirlocals'. This command pops up a buffer to edit the settings in ".dir-locals.el". - +** Calc ++++ +*** Calc parses fractions written using U+2044 FRACTION SLASH +Fractions of the form 123⁄456 are handled as if written 123:456. Note +in particular the difference in behavior from U+2215 DIVISION SLASH +and U+002F SOLIDUS, which result in division rather than a rational +fraction. You may also be interested to know that precomposed +fraction characters, such as ½ (U+00BD VULGAR FRACTION ONE HALF), are +also recognized as rational fractions. They have been since 2004, but +it looks like it was never mentioned in the NEWS, or even the manual. \f * New Modes and Packages in Emacs 30.1 diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index 66ede3295ae..1dcb9ad1c85 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el @@ -505,6 +505,7 @@ math-read-replacement-list ("⅝" "(5:8)") ; 5/8 ("⅞" "(7:8)") ; 7/8 ("⅟" "1:") ; 1/... + ("⁄" ":") ; arbitrary fractions of the form 123⁄456 ;; superscripts ("⁰" "0") ; 0 ("¹" "1") ; 1 diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el index 5b11dd950ba..e724295e8e0 100644 --- a/test/lisp/calc/calc-tests.el +++ b/test/lisp/calc/calc-tests.el @@ -734,6 +734,31 @@ calc-latex-input (var c var-c)))))) (calc-set-language nil))) +(ert-deftest calc-frac-input () + ;; precomposed fraction + (should (equal (math-read-expr "½") + '(frac 1 2))) + ;; ascii solidus + (should (equal (math-read-expr "123/456") + '(/ 123 456))) + (should (equal (math-read-expr "a/b") + '(/ (var a var-a) (var b var-b)))) + ;; fraction slash + (should (equal (math-read-expr "123⁄456") + '(frac 41 152))) + (should (equal (math-read-expr "a⁄b") + '(error 1 "Syntax error"))) + ;; division slash + (should (equal (math-read-expr "123∕456") + '(/ 123 456))) + (should (equal (math-read-expr "a∕b") + '(/ (var a var-a) (var b var-b)))) + ;; division sign + (should (equal (math-read-expr "123÷456") + '(frac 41 152))) + (should (equal (math-read-expr "a÷b") ; I think this one is wrong + '(error 1 "Syntax error")))) + (defvar var-g) ;; Test `let'. -- 2.43.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-27 14:26 ` Daniel Brooks @ 2024-01-27 14:49 ` Eli Zaretskii 2024-01-27 15:16 ` Daniel Brooks 0 siblings, 1 reply; 12+ messages in thread From: Eli Zaretskii @ 2024-01-27 14:49 UTC (permalink / raw) To: Daniel Brooks; +Cc: 66944-done, stefankangas > From: Daniel Brooks <db48x@db48x.net> > Cc: stefankangas@gmail.com, 66944@debbugs.gnu.org > Date: Sat, 27 Jan 2024 06:26:04 -0800 > > Eli Zaretskii <eliz@gnu.org> writes: > > > Thanks, but I'm not sure @U{HEX} will always work in the printed > > output. Did you try to say "make calc.pdf" in doc/emisc/? If not, > > can you try that? > > No, I hadn’t, and no, it doesn’t work. > > > If you see errors about @U when generating PDF format, we will need to > > make use of @U conditional by using @ifnottex, and in @iftex case omit > > the @U{HEX} parts. > > I certainly can do that, but it is super disappointing. > > Apparently it supports some unicode characters but not all of them. Do > you know if it is hard to make it support new ones? It's because TeX is a very old program, and knows nothing about Unicode. The fonts it uses also don't support Unicode. I'm guessing that it supports only those characters included in Latin-1. Thanks, I installed the changes on the master branch, and I'm therefore closing this bug. ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-27 14:49 ` Eli Zaretskii @ 2024-01-27 15:16 ` Daniel Brooks 2024-01-27 18:41 ` john muhl via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 12+ messages in thread From: Daniel Brooks @ 2024-01-27 15:16 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 66944-done, stefankangas Eli Zaretskii <eliz@gnu.org> writes: > Thanks, I installed the changes on the master branch, and I'm > therefore closing this bug. Awesome. Thanks! db48x ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-27 15:16 ` Daniel Brooks @ 2024-01-27 18:41 ` john muhl via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-01-28 8:20 ` Daniel Brooks 0 siblings, 1 reply; 12+ messages in thread From: john muhl via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-27 18:41 UTC (permalink / raw) To: Daniel Brooks; +Cc: Eli Zaretskii, 66944, stefankangas [-- Attachment #1: Type: text/plain, Size: 358 bytes --] Daniel Brooks <db48x@db48x.net> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >> Thanks, I installed the changes on the master branch, and I'm >> therefore closing this bug. > > Awesome. Thanks! > > db48x The calc tests started failing today. Bisect says 77d9d05df87 is the culprit. Log attached. cd ~/src/emacs/test make lisp/calc/calc-tests.log [-- Attachment #2: calc-tests.log --] [-- Type: text/plain, Size: 4008 bytes --] Running 25 tests (2024-01-27 12:27:30-0600, selector `(not (or (tag :unstable) (tag :nativecomp)))') passed 1/25 calc-Math-integerp (0.000105 sec) passed 2/25 calc-bit-ops (0.052791 sec) Building units table... Building units table...done passed 3/25 calc-bug-23889 (0.012645 sec) passed 4/25 calc-business-days (0.002711 sec) passed 5/25 calc-calendar (0.000170 sec) passed 6/25 calc-choose (0.003441 sec) passed 7/25 calc-convert-units (0.006384 sec) passed 8/25 calc-defmath (0.000104 sec) passed 9/25 calc-digit-after-point (0.000116 sec) passed 10/25 calc-extract-units (0.000571 sec) passed 11/25 calc-format-radix (0.000098 sec) passed 12/25 calc-frac-input (0.000218 sec) passed 13/25 calc-gcd (0.000080 sec) passed 14/25 calc-imaginary-i (0.001161 sec) passed 15/25 calc-latex-input (0.002340 sec) Test calc-math-read-preprocess-string backtrace: signal(ert-test-failed (((should (string= (concat "+/-*:-/*inf<=>=<= ert-fail(((should (string= (concat "+/-*:-/*inf<=>=<=>=μ(1:4)(1:2)(3 (if (unwind-protect (setq value-1055 (apply fn-1053 args-1054)) (set (let (form-description-1057) (if (unwind-protect (setq value-1055 (a (let ((value-1055 'ert-form-evaluation-aborted-1056)) (let (form-des (let* ((fn-1053 #'string=) (args-1054 (condition-case err (list (con (closure (var-g t) nil (let* ((fn-1023 #'string=) (args-1024 (condit #f(compiled-function () #<bytecode -0x666deb319dd90b0>)() handler-bind-1(#f(compiled-function () #<bytecode -0x666deb319dd90b0 ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name calc-math-read-preprocess-string :doc ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/calc/calc-tests.el" command-line() normal-top-level() Test calc-math-read-preprocess-string condition: (ert-test-failed ((should (string= (concat "+/-*:-/*inf<=>=<=>=μ(1:4)(1:2)(3:4)(1:3)(2:3)" "(1:5)(2:5)(3:5)(4:5)(1:6)(5:6)" "(1:8)(3:8)(5:8)(7:8)1:^(0123456789+-()ni)" "_(0123456789+-())") (math-read-preprocess-string ...))) :form (string= "+/-*:-/*inf<=>=<=>=μ(1:4)(1:2)(3:4)(1:3)(2:3)(1:5)(2:5)(3:5)(4:5)(1:6)(5:6)(1:8)(3:8)(5:8)(7:8)1:^(0123456789+-()ni)_(0123456789+-())" "+/-*:-/*inf<=>=<=>=μ(1:4)(1:2)(3:4)(1:3)(2:3)(1:5)(2:5)(3:5)(4:5)(1:6)(5:6)(1:8)(3:8)(5:8)(7:8)1::^(0123456789+-()ni)_(0123456789+-())") :value nil :explanation (arrays-of-different-length 133 134 "+/-*:-/*inf<=>=<=>=μ(1:4)(1:2)(3:4)(1:3)(2:3)(1:5)(2:5)(3:5)(4:5)(1:6)(5:6)(1:8)(3:8)(5:8)(7:8)1:^(0123456789+-()ni)_(0123456789+-())" "+/-*:-/*inf<=>=<=>=μ(1:4)(1:2)(3:4)(1:3)(2:3)(1:5)(2:5)(3:5)(4:5)(1:6)(5:6)(1:8)(3:8)(5:8)(7:8)1::^(0123456789+-()ni)_(0123456789+-())" first-mismatch-at 97))) FAILED 16/25 calc-math-read-preprocess-string (0.000212 sec) at lisp/calc/calc-tests.el:846 passed 17/25 calc-matrix-determinant (0.003859 sec) passed 18/25 calc-nth-root (0.000213 sec) Working... (Remainder was 8 * x + 1) passed 19/25 calc-poly-div (0.002111 sec) Working... passed 20/25 calc-remove-units (0.000210 sec) passed 21/25 calc-shift-binary (0.032695 sec) passed 22/25 calc-solve-linear-system (0.004019 sec) passed 23/25 calc-sum-gcd (0.000234 sec) passed 24/25 calc-trig (0.000546 sec) passed 25/25 calc-unix-date (0.000296 sec) Ran 25 tests, 24 results as expected, 1 unexpected (2024-01-27 12:27:30-0600, 0.255913 sec) 1 unexpected results: FAILED calc-math-read-preprocess-string ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-27 18:41 ` john muhl via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-28 8:20 ` Daniel Brooks 2024-01-29 12:51 ` Eli Zaretskii 0 siblings, 1 reply; 12+ messages in thread From: Daniel Brooks @ 2024-01-28 8:20 UTC (permalink / raw) To: john muhl; +Cc: Eli Zaretskii, 66944, stefankangas [-- Attachment #1: Type: text/plain, Size: 709 bytes --] john muhl <jm@pub.pink> writes: > The calc tests started failing today. Bisect says 77d9d05df87 is > the culprit. Log attached. > > cd ~/src/emacs/test > make lisp/calc/calc-tests.log > > Running 25 tests (2024-01-27 12:27:30-0600, selector `(not (or (tag :unstable) (tag :nativecomp)))') > […] > Ran 25 tests, 24 results as expected, 1 unexpected (2024-01-27 12:27:30-0600, 0.255913 sec) > > 1 unexpected results: > FAILED calc-math-read-preprocess-string Thanks for letting me know; I guess it’s my fault. I should have thought to rebase my patch onto the latest master, instead of leaving it on the build from November that I've been using. Luckily the fix is trivial. [-- Attachment #2: fix broken test --] [-- Type: text/x-patch, Size: 1042 bytes --] From 2ac3dd12ed6010e38414b2d30216aa6d5ea47f98 Mon Sep 17 00:00:00 2001 From: Daniel Brooks <db48x@db48x.net> Date: Sun, 28 Jan 2024 00:17:50 -0800 Subject: [PATCH] fix calc-math-read-preprocess-string test --- test/lisp/calc/calc-tests.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el index d96672c04a1..b64c1682efe 100644 --- a/test/lisp/calc/calc-tests.el +++ b/test/lisp/calc/calc-tests.el @@ -861,7 +861,7 @@ calc-math-read-preprocess-string ;; exponent/subscript (should (string= (concat "+/-*:-/*inf<=>=<=>=μ(1:4)(1:2)(3:4)(1:3)(2:3)" "(1:5)(2:5)(3:5)(4:5)(1:6)(5:6)" - "(1:8)(3:8)(5:8)(7:8)1:^(0123456789+-()ni)" + "(1:8)(3:8)(5:8)(7:8)1::^(0123456789+-()ni)" "_(0123456789+-())") (math-read-preprocess-string (mapconcat #'car math-read-replacement-list)))) -- 2.43.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH 2024-01-28 8:20 ` Daniel Brooks @ 2024-01-29 12:51 ` Eli Zaretskii 0 siblings, 0 replies; 12+ messages in thread From: Eli Zaretskii @ 2024-01-29 12:51 UTC (permalink / raw) To: Daniel Brooks; +Cc: 66944, jm, stefankangas > From: Daniel Brooks <db48x@db48x.net> > Cc: Eli Zaretskii <eliz@gnu.org>, 66944@debbugs.gnu.org, > stefankangas@gmail.com > Date: Sun, 28 Jan 2024 00:20:47 -0800 > > john muhl <jm@pub.pink> writes: > > > The calc tests started failing today. Bisect says 77d9d05df87 is > > the culprit. Log attached. > > > > cd ~/src/emacs/test > > make lisp/calc/calc-tests.log > > > > Running 25 tests (2024-01-27 12:27:30-0600, selector `(not (or (tag :unstable) (tag :nativecomp)))') > > […] > > Ran 25 tests, 24 results as expected, 1 unexpected (2024-01-27 12:27:30-0600, 0.255913 sec) > > > > 1 unexpected results: > > FAILED calc-math-read-preprocess-string > > Thanks for letting me know; I guess it’s my fault. I should have thought > to rebase my patch onto the latest master, instead of leaving it on the > build from November that I've been using. > > Luckily the fix is trivial. Thanks, installed. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-01-29 12:51 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-05 8:18 bug#66944: 30.0.50; [PATCH] make calc parse fractions written using U+2044 FRACTION SLASH Daniel Brooks 2024-01-13 10:52 ` Stefan Kangas 2024-01-13 16:11 ` Daniel Brooks 2024-01-27 9:09 ` Eli Zaretskii 2024-01-27 13:11 ` Daniel Brooks 2024-01-27 14:00 ` Eli Zaretskii 2024-01-27 14:26 ` Daniel Brooks 2024-01-27 14:49 ` Eli Zaretskii 2024-01-27 15:16 ` Daniel Brooks 2024-01-27 18:41 ` john muhl via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-01-28 8:20 ` Daniel Brooks 2024-01-29 12:51 ` 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.