From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#43295: 26.1: calc-mode header line [UPDATED PATCH] Date: Sun, 13 Sep 2020 15:15:27 +0200 Message-ID: <87sgblyg0g.fsf@gnus.org> References: <20200909183127.oi3uhf6hmcswfkns@E15-2016.optimum.net> <87zh5x2tmc.fsf@gnus.org> <20200910234058.nbeslitt52h5r2po@E15-2016.optimum.net> <878sdgzeze.fsf@gnus.org> <20200913004324.pwpzxe74zq7sqr74@E15-2016.optimum.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9061"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: 43295@debbugs.gnu.org To: Boruch Baum Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Sep 13 15:16:12 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kHRrX-0002DS-A4 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 13 Sep 2020 15:16:11 +0200 Original-Received: from localhost ([::1]:57248 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kHRrW-0005WF-Bq for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 13 Sep 2020 09:16:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54834) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kHRrO-0005W7-7f for bug-gnu-emacs@gnu.org; Sun, 13 Sep 2020 09:16:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38173) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kHRrN-0005oK-U4 for bug-gnu-emacs@gnu.org; Sun, 13 Sep 2020 09:16:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kHRrN-0002c6-Pk for bug-gnu-emacs@gnu.org; Sun, 13 Sep 2020 09:16:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 13 Sep 2020 13:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43295 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed patch Original-Received: via spool by 43295-submit@debbugs.gnu.org id=B43295.16000029438993 (code B ref 43295); Sun, 13 Sep 2020 13:16:01 +0000 Original-Received: (at 43295) by debbugs.gnu.org; 13 Sep 2020 13:15:43 +0000 Original-Received: from localhost ([127.0.0.1]:49719 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHRr5-0002KZ-8B for submit@debbugs.gnu.org; Sun, 13 Sep 2020 09:15:43 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:44722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHRr3-0002E3-6f for 43295@debbugs.gnu.org; Sun, 13 Sep 2020 09:15:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=PQfZr8mGLzpwL3Qor+U37XjqSY0Z4apXluyNFfHyw/g=; b=C35WWkkUWZT6kMYERygF8iCtjO nsFSi1CweG0fmLRnc4nGrS9StTnu0v7H/DMAYQk6CDCEybw/bxLdvrhCB1GY1gGE/YYXt6mQOVf9E 53qQFO7c2OyywMhWjV3S/rnOI0haWAD6TuovznqBETJg256XhcNvOMOdTijPBicEGWGI=; Original-Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kHRqq-0003Fi-Vm; Sun, 13 Sep 2020 15:15:34 +0200 X-Now-Playing: Nils Frahm's _Encores 2_: "Spells" In-Reply-To: <20200913004324.pwpzxe74zq7sqr74@E15-2016.optimum.net> (Boruch Baum's message of "Sat, 12 Sep 2020 20:43:24 -0400") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:187944 Archived-At: --=-=-= Content-Type: text/plain Boruch Baum writes: > In the attached patch: > > 1) the hunk @1421 restores the behavior that Eli wants > > 2) the hunk @2010 corrects the width calculation in that case > > 3) the hunk @2133 better handles the header line for the trail display This results in a trail buffer that looks like: --=-=-= Content-Type: image/png Content-Disposition: inline Content-Transfer-Encoding: base64 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 AAApkJIBAJACKRkAACmQkgEAkAIpGQAAKZCSAQCQAikZAAApkJIBAJACKRkAACmQkgEAkAIpGQAA KZCSAQCQAikZAAApkJIBAJACKRkAACmQkgEAkAIpGQAAKZCSAQCQAikZAAApkJIBAJACKRkAACmQ kgEAkAIpGQAAKZCSAQCQAikZAAApkJIBAJACKRkAACmQkgEAkAIpGQAAKZCSAQCQAikZAAApkJIB AJACKRkAACmQkgEAkAIpGQAAKZCSAQCQAikZAAApkJIBAJACKRkAACmQkgEAkAIpGQAAKZCSAQCQ AikZAAApkJIBAJACKRkAACmQkgEAkAIpGQAAKZCSAQCQAikZAAApkJIBAJACKRkAACmQkgEAkAIp GQAAKZCSAQCQAikZAAApkJIBAJACKRkAACmQkgEAkAIpGQAAKZCSAQCQAikZAAApkJIBAJACKRkA ACmQkgEAkAIpGQAAKZCSAQCQAikZAAApkJIBAJACKRkAACmQkgEAkAIpGQAAKTgqipKfX0AgAAB4 vBwVRUlJSSEQAAA8Xo7Jycn3798nEAAAPF7OiYlJRAEAgMeO7l0AAEiBlAwAgBRIyQAASIGUDACA FEjJAABIgZQMAIAUSMkAAEiBlAwAgBRIyQAASIGUDACAFP4fxl2HqEWQJ9YAAAAASUVORK5CYII= --=-=-= Content-Type: text/plain Which surely can't be optimal? If modified as follows, the duplicated text disappears: diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index bf8b006d7c..62c0bea6d4 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -1396,8 +1396,6 @@ calc--header-line (let* ((len-long (length long)) (len-short (length short)) (fudge (or fudge 0)) - ;; fudge for trail is: -3 (added to len-long) - ;; (width ) for trail (factor (if (> width (+ len-long fudge)) len-long len-short)) (size (max (/ (- width factor) 2) 0)) (fill (make-string size ?-)) @@ -1428,6 +1426,12 @@ calc-create-buffer (set-buffer (get-buffer-create "*Calculator*")) (or (derived-mode-p 'calc-mode) (calc-mode)) + (when calc-show-banner + (calc--header-line "Emacs Calculator Mode" "Emacs Calc" + (if calc-display-trail + (/ (* (window-width) 2) 3) + (window-width)) + 1)) (setq max-lisp-eval-depth (max max-lisp-eval-depth 1000)) (when calc-always-load-extensions (require 'calc-ext)) @@ -2009,8 +2013,8 @@ calc-refresh (setq calc-any-selections nil) (erase-buffer) (when calc-show-banner - (calc--header-line "Emacs Calculator Mode" "Emacs Calc" - (* 2 (/ (window-width) 3)) -3)) + (calc--header-line "Emacs Calculator Mode" "Emacs Calc" + (window-width) 1)) (while thing (goto-char (point-min)) (insert (math-format-stack-value (car thing)) "\n") @@ -2133,29 +2137,32 @@ calc-record (defun calc-trail-display (flag &optional no-refresh interactive) (interactive "P\ni\np") (let ((win (get-buffer-window (calc-trail-buffer)))) - (if (setq calc-display-trail - (not (if flag (memq flag '(nil 0)) win))) - (if (null win) - (progn - (if calc-trail-window-hook - (run-hooks 'calc-trail-window-hook) - (let ((w (split-window nil (/ (* (window-width) 2) 3) t))) - (set-window-buffer w calc-trail-buffer))) - (calc-wrapper - (setq overlay-arrow-string calc-trail-overlay - overlay-arrow-position calc-trail-pointer) - (or no-refresh - (if interactive - (calc-do-refresh) - (calc-refresh)))))) - (if win - (progn - (delete-window win) - (calc-wrapper - (or no-refresh - (if interactive - (calc-do-refresh) - (calc-refresh)))))))) + (cond + ((setq calc-display-trail + (not (if flag (memq flag '(nil 0)) win))) + (when (null win) + (if calc-trail-window-hook + (run-hooks 'calc-trail-window-hook) + (setq win (split-window nil (/ (* (window-width) 2) 3) t)) + (set-window-buffer win calc-trail-buffer)) + (calc-wrapper + (setq overlay-arrow-string calc-trail-overlay + overlay-arrow-position calc-trail-pointer) + (or no-refresh + (if interactive + (calc-do-refresh) + (calc-refresh))))) + (with-current-buffer calc-trail-buffer + (when calc-show-banner + (calc--header-line "Emacs Calculator Trail" "Calc Trail" + (window-width win) -3)))) + (win ; not calc-display-trail + (delete-window win) + (calc-wrapper + (or no-refresh + (if interactive + (calc-do-refresh) + (calc-refresh))))))) calc-trail-buffer) (defun calc-trail-here () -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no --=-=-=--