From unknown Wed Jun 18 00:27:40 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#68745 <68745@debbugs.gnu.org> To: bug#68745 <68745@debbugs.gnu.org> Subject: Status: [PATCH] 30.0.50; calc can't parse matrices with trailing newlines Reply-To: bug#68745 <68745@debbugs.gnu.org> Date: Wed, 18 Jun 2025 07:27:40 +0000 retitle 68745 [PATCH] 30.0.50; calc can't parse matrices with trailing newl= ines reassign 68745 emacs submitter 68745 Paul Nelson severity 68745 normal tag 68745 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 26 17:52:09 2024 Received: (at submit) by debbugs.gnu.org; 26 Jan 2024 22:52:09 +0000 Received: from localhost ([127.0.0.1]:53016 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTV3Q-0005Ns-EQ for submit@debbugs.gnu.org; Fri, 26 Jan 2024 17:52:08 -0500 Received: from lists.gnu.org ([2001:470:142::17]:49940) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTV3P-0005Ne-Fe for submit@debbugs.gnu.org; Fri, 26 Jan 2024 17:52:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rTV3D-0006v6-9j for bug-gnu-emacs@gnu.org; Fri, 26 Jan 2024 17:51:55 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rTV3B-0001Kb-En for bug-gnu-emacs@gnu.org; Fri, 26 Jan 2024 17:51:55 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1d746ce7d13so8977355ad.0 for ; Fri, 26 Jan 2024 14:51:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706309512; x=1706914312; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=qLuRBm9qjnRWl1SjwISvxe0RbN+INpc93Va6u1qr1Ms=; b=Y5bcvi1zQxfvEkjQqYD2F0uTHSSaWKYefIij4d6FIjpwEwFTYzdAQRu7JIftbrfwsD +iScwpi+A3RDq/1vw/7CmV1ngn9ST2+5UL5La/JPMcWhwYHeEebW/4V85S9enDYmBTC0 SsgQTXZzxUh5hP0lj9GTpuYDiYE8MmTJ+bre4oEjTrm9BOhOW5FrZpSXChjA6UwESK3F lcBScUIEYyEqnlzgB2amWwFhZsT79eacMZRMmQJTzC4BW2Gaf9QhBHHq00w0N1HWU1zi 53LfxQ56F2EuIrO9Q7yxF8PM3caEDTBUCEgCIW3FMaYS2mBxIMcswqngWMHE2WLP5NsB 1Ysw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706309512; x=1706914312; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=qLuRBm9qjnRWl1SjwISvxe0RbN+INpc93Va6u1qr1Ms=; b=QQd63EoHyXNVQ6/84RYFMNjyohzb0Kt3OZf5mz+4X212saLNs2mCoeuZqy3B7hy3jq n+p2ZMLIaOMpdlA7Wpfc6Q2bCJmT0RVXWzC8KU6qD9gszh1w8vRn5cRWyFtJuu0BRoug xPNh6ju/DMGOfkql/WIgL9DnGe8QEjOEIxqD08mIP9kc+baV+6o8RFIAQE4ZF2vco5LX Ngz5I/DbXFGRfTW+aQ7f9YoeWuGe3OrXMVYrIgUXoCPWe8Xief3iFEGn1jb/De8SQdbh inx205s1wdIkymDlJGUjUflMyq1iWay+Ek/b7CVRJk2Ds8OvtMBDGN1tFGMA2yuVxmjX L/QA== X-Gm-Message-State: AOJu0Yxawzg6Vg9eatbxIFzTy5HLvxzJeYyk3DnWcr++cLZ+eNLs+EFd Jh2RCMtYz7Hhbu6qy6jEuyJN6fiemykJE5VlrIK6JNIkj59MTH2zqnUPPCyS9lu3cmDmqQgBtBR QJ89X3cLbmIw5Quo5Yu3lqFc0ShuvvXxRe/c= X-Google-Smtp-Source: AGHT+IHx94d3L3zGPgxAaGULc2nHHSptvb4Sg9mSHUBrkh0ixqhzR6kWSjZN7oNmwzoPY0rh7nzbeTz0fA7ak6zek1Q= X-Received: by 2002:a17:903:41c2:b0:1d3:d27f:77c9 with SMTP id u2-20020a17090341c200b001d3d27f77c9mr565147ple.14.1706309511472; Fri, 26 Jan 2024 14:51:51 -0800 (PST) MIME-Version: 1.0 From: Paul Nelson Date: Fri, 26 Jan 2024 23:51:38 +0100 Message-ID: Subject: [PATCH] 30.0.50; calc can't parse matrices with trailing newlines To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="0000000000004fe0d2060fe1246d" Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=ultrono@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --0000000000004fe0d2060fe1246d Content-Type: text/plain; charset="UTF-8" calc reports an error when parsing (e.g., via C-x * g) latex matrix environments with trailing newlines. Steps to reproduce (all with emacs -Q): use "C-x * * d L" to start calc and set the language mode to latex, then (math-read-expr "\\begin{pmatrix} a & b \\\\ c & d \\\\ \\end{pmatrix}") gives an error. The core issue has nothing to do with latex: use "C-x * * d N" to reset the language mode to normal, then (math-read-expr "[[a,b],[c,d],]") gives an error. I would like to propose that it should instead return the same as (math-read-expr "[[a,b],[c,d]]"), and similarly, that (math-read-expr "[u;v;]") should return the same as (math-read-expr "[u;v]"). In other words, we should simply ignore commas or semicolons when they appear at the end of a vector or matrix. The attached patch has the effect that, when a comma or semicolon is followed by a closing delimiter, we do not attempt to further enlarge the vector/matrix. The patch makes it so more expressions can be parsed, but should not modify how anything that can already be parsed is parsed. In GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin22.5.0, NS appkit-2299.60 Version 13.4.1 (Build 22F82)) of 2023-08-17 built on d51735 Repository revision: 5856ea5e4e897f4cb5cd1c3c28d14b335fe5cf54 Repository branch: master Windowing system distributor 'Apple', version 10.3.2487 System Description: macOS 14.2.1 Configured using: 'configure --with-ns --with-native-compilation --with-tree-sitter --with-gif --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick --with-x-toolkit=gtk3 --with-xwidgets' Configured features: ACL DBUS GLIB GNUTLS IMAGEMAGICK JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB Important settings: value of $LC_CTYPE: UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils calc-vec calc-aent calc-yank calc-lang calc-ext calc-misc calc-menu calc calc-loaddefs rect calc-macs compile text-property-search comint ansi-osc ansi-color ring comp comp-cstr warnings icons rx cl-seq cl-macs gv cl-extra help-mode bytecomp byte-compile time-date subr-x cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win 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 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 xwidget-internal dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 125047 12021) (symbols 48 11032 0) (strings 32 28904 1662) (string-bytes 1 811127) (vectors 16 18887) (vector-slots 8 383681 18510) (floats 8 39 179) (intervals 56 273 0) (buffers 992 14)) --0000000000004fe0d2060fe1246d Content-Type: application/octet-stream; name="0001-allow-trailing-delimiters-when-parsing-vectors-matri.patch" Content-Disposition: attachment; filename="0001-allow-trailing-delimiters-when-parsing-vectors-matri.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrv8l6b50 RnJvbSBkOWIzZWUwMTEwOTE2ZTY3MmVmMDNiYWY5OTQ2MTZkMDBlZDFhYjA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIE5lbHNvbiA8dWx0cm9ub0BnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMjYgSmFuIDIwMjQgMjM6MjM6MjEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBhbGxvdyB0 cmFpbGluZyBkZWxpbWl0ZXJzIHdoZW4gcGFyc2luZyB2ZWN0b3JzL21hdHJpY2VzCgpJZiBhIGNv bW1hIG9yIHNlbWljb2xvbiBvY2N1cnMgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBlbmQgb2YgdGhl CnZlY3RvciBvciBtYXRyaXgsIHRoZW4gdGhhdCBlbnRyeSBpcyBpZ25vcmVkLiAgRm9yIGV4YW1w bGUsIFthLGIsXQpub3cgcGFyc2VzIHRoZSBzYW1lIGFzIFthLGJdLCBhbmQgW2E7YjtdIGFzIFth O2JdLgotLS0KIGxpc3AvY2FsYy9jYWxjLXZlYy5lbCB8IDEwICsrKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlz cC9jYWxjL2NhbGMtdmVjLmVsIGIvbGlzcC9jYWxjL2NhbGMtdmVjLmVsCmluZGV4IDM5YWM2ZmEw MzQ3Li5iYTI2Y2YwM2ZiNiAxMDA2NDQKLS0tIGEvbGlzcC9jYWxjL2NhbGMtdmVjLmVsCisrKyBi L2xpc3AvY2FsYy9jYWxjLXZlYy5lbApAQCAtMTY1OCw5ICsxNjU4LDEwIEBAIG1hdGgtcmVhZC12 ZWN0b3IKIAkgIChtYXRoLXJlYWQtdG9rZW4pKQogICAgICAgKHdoaWxlIChlcSBtYXRoLWV4cC10 b2tlbiAnc3BhY2UpCiAJKG1hdGgtcmVhZC10b2tlbikpCi0gICAgICAobGV0ICgocmVzdCAobGlz dCAobWF0aC1yZWFkLWV4cHItbGV2ZWwgMCkpKSkKLQkoc2V0Y2RyIGxhc3QgcmVzdCkKLQkoc2V0 cSBsYXN0IHJlc3QpKSkKKyAgICAgICh3aGVuIChub3QgKGVxdWFsIG1hdGgtZXhwci1kYXRhIG1h dGgtcmItY2xvc2UpKQorICAgICAgICAobGV0ICgocmVzdCAobGlzdCAobWF0aC1yZWFkLWV4cHIt bGV2ZWwgMCkpKSkKKwkgIChzZXRjZHIgbGFzdCByZXN0KQorCSAgKHNldHEgbGFzdCByZXN0KSkp KQogICAgIChjb25zICd2ZWMgdmFsKSkpCiAKIChkZWZ1biBtYXRoLXJlYWQtbWF0cml4IChtYXQp CkBAIC0xNjY4LDcgKzE2NjksOCBAQCBtYXRoLXJlYWQtbWF0cml4CiAgICAgKG1hdGgtcmVhZC10 b2tlbikKICAgICAod2hpbGUgKGVxIG1hdGgtZXhwLXRva2VuICdzcGFjZSkKICAgICAgIChtYXRo LXJlYWQtdG9rZW4pKQotICAgIChzZXRxIG1hdCAobmNvbmMgbWF0IChsaXN0IChtYXRoLXJlYWQt dmVjdG9yKSkpKSkKKyAgICAod2hlbiAobm90IChlcXVhbCBtYXRoLWV4cHItZGF0YSBtYXRoLXJi LWNsb3NlKSkKKyAgICAgIChzZXRxIG1hdCAobmNvbmMgbWF0IChsaXN0IChtYXRoLXJlYWQtdmVj dG9yKSkpKSkpCiAgIG1hdCkKIAogKHByb3ZpZGUgJ2NhbGMtdmVjKQotLSAKMi4zOS4zIChBcHBs ZSBHaXQtMTQ1KQoK --0000000000004fe0d2060fe1246d--