From unknown Sat Jun 14 05:20:03 2025 X-Loop: help-debbugs@gnu.org Subject: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 07 Sep 2014 19:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 18422 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 18422@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Reply-To: Eli Zaretskii Received: via spool by submit@debbugs.gnu.org id=B.141011782126783 (code B ref -1); Sun, 07 Sep 2014 19:24:01 +0000 Received: (at submit) by debbugs.gnu.org; 7 Sep 2014 19:23:41 +0000 Received: from localhost ([127.0.0.1]:33007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XQi3o-0006xu-8D for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35484) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XQi3l-0006xh-S4 for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XQi3W-0001NL-OZ for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:36231) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQi3W-0001NH-M3 for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37205) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQi3P-0006qi-4u for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 15:23:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XQi3H-0001LE-FQ for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 15:23:15 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:37408) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQi3H-0001L9-1y for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 15:23:07 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NBJ00700PFMWV00@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 22:23:05 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NBJ007PTPUGOI40@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 22:23:05 +0300 (IDT) Date: Sun, 07 Sep 2014 22:23:10 +0300 From: Eli Zaretskii X-012-Sender: halo1@inter.net.il Message-id: <834mwjck0x.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -6.7 (------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -6.7 (------) The following recipe causes an assertion violation on MS-Windows (I don't have access to a Unix TTY with a mouse to try there): emacs -Q -nw M-: (setq resize-mini-windows nil) RET Drag the mode line with the mouse -- you get assertion violation: dispnew.c:684: Emacs fatal error: assertion failed: start >= 0 && start < matrix->nrows The immediate reason for this is that clear_glyph_matrix_rows is called with both start = 0 and end = 0. But the root cause is that Emacs thinks the mini-buffer window has a zero height. This comes from here: static int required_matrix_height (struct window *w) { #ifdef HAVE_WINDOW_SYSTEM struct frame *f = XFRAME (w->frame); if (FRAME_WINDOW_P (f)) { int ch_height = FRAME_SMALLEST_FONT_HEIGHT (f); int window_pixel_height = window_box_height (w) + eabs (w->vscroll); return (((window_pixel_height + ch_height - 1) / ch_height) * w->nrows_scale_factor /* One partially visible line at the top and bottom of the window. */ + 2 /* 2 for header and mode line. */ + 2); } #endif /* HAVE_WINDOW_SYSTEM */ return WINDOW_TOTAL_LINES (w); <<<<<<<<<<<<<<<<<<<<< } The total_lines value is zero. It turns out that total_lines is assigned the zero value in resize-mini-window-internal: w->total_lines = XFASTINT (w->new_total); <<<<<<<<<<<<<< w->pixel_height = XFASTINT (w->new_pixel); and w->new_total is zero because no one set it to any other value. In window--resize-mini-window we do this: (window--resize-this-window root (- delta) nil nil t) (set-window-new-pixel window (+ height delta)) ;; The following routine catches the case where we want to resize ;; a minibuffer-only frame. (when (resize-mini-window-internal window) (window--pixel-to-total frame) So by the time resize-mini-window-internal is called, w->new_pixel is already set as appropriate, but w->new_total is set only after the call to resize-mini-window-internal returns. Now, on GUI frames this problem doesn't happen, because, as seen from required_matrix_height above, total_lines is never used there to determine the matrix dimensions. Instead, GUI frames calculate their height in pixels, which is already set by this time. I can fix this problem with the following semi-kludgey change (which will need a comment to explain the above, if and when it's committed): === modified file 'src/window.c' --- src/window.c 2014-08-09 11:12:45 +0000 +++ src/window.c 2014-09-07 19:19:19 +0000 @@ -4807,6 +4807,8 @@ DEFUN ("resize-mini-window-internal", Fr w->total_lines = XFASTINT (w->new_total); w->top_line = r->top_line + r->total_lines; w->pixel_height = XFASTINT (w->new_pixel); + if (!FRAME_WINDOW_P (f)) + w->total_lines = w->pixel_height; w->pixel_top = r->pixel_top + r->pixel_height; fset_redisplay (f); Is this the right fix? In GNU Emacs 24.3.93.28 (i686-pc-mingw32) of 2014-09-07 on HOME-C4E4A596F7 Repository revision: 117483 monnier@iro.umontreal.ca-20140905173712-p7fyv6iaijldb29c Windowing system distributor `Microsoft Corp.', version 5.1.2600 Configured using: `configure --prefix=/d/usr --enable-checking=yes,glyphs 'CFLAGS=-O0 -g3'' Important settings: value of $LANG: ENU locale-coding-system: cp1255 Major mode: Lisp Interaction Minor modes in effect: tooltip-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 auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x r e p o r t - e m a c s - b u g Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32notify w32 multi-tty emacs) Memory information: ((conses 8 74225 7254) (symbols 32 17536 0) (miscs 32 33 97) (strings 16 10776 4344) (string-bytes 1 269292) (vectors 8 9555) (vector-slots 4 384789 5962) (floats 8 57 68) (intervals 28 238 95) (buffers 508 11)) From unknown Sat Jun 14 05:20:03 2025 X-Loop: help-debbugs@gnu.org Subject: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Sep 2014 09:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18422 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii , 18422@debbugs.gnu.org Received: via spool by 18422-submit@debbugs.gnu.org id=B18422.141016871319064 (code B ref 18422); Mon, 08 Sep 2014 09:32:01 +0000 Received: (at 18422) by debbugs.gnu.org; 8 Sep 2014 09:31:53 +0000 Received: from localhost ([127.0.0.1]:33223 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XQvIe-0004xP-FR for submit@debbugs.gnu.org; Mon, 08 Sep 2014 05:31:52 -0400 Received: from mout.gmx.net ([212.227.15.19]:62903) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XQvIX-0004x8-5b for 18422@debbugs.gnu.org; Mon, 08 Sep 2014 05:31:50 -0400 Received: from [91.113.7.66] ([91.113.7.66]) by mail.gmx.com (mrgmx001) with ESMTPSA (Nemesis) id 0MI5Ve-1XOAwI48w2-003s6Q; Mon, 08 Sep 2014 11:31:37 +0200 Message-ID: <540D7776.8090904@gmx.at> Date: Mon, 08 Sep 2014 11:31:34 +0200 From: martin rudalics MIME-Version: 1.0 References: <834mwjck0x.fsf@gnu.org> In-Reply-To: <834mwjck0x.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:MFwQkhvBulJPjxez8+kzZxGNFfwP5YXEcs+4rzZplepJVPdxh2I aFhXBU1Nla02LhJQrnwB8JuXU/mfzIWmaTOdQRppMksNMcIZRjZxW/Sc62X2P7ejsZju0BK Z3NtTLc6wr1BNA0nfgAp8f8UiIsEOE6oQjF4EMo2hQBxxoJ/RIZ8MsSLlW/v6vfsZnt4pXF KStCIuO4FOr+nFneMw/Cw== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) One possible fix would be: === modified file 'lisp/window.el' --- lisp/window.el 2014-08-29 10:39:17 +0000 +++ lisp/window.el 2014-09-08 08:45:23 +0000 @@ -2388,6 +2388,8 @@ ;; why we do not do that. (window--resize-this-window root (- delta) nil nil t) (set-window-new-pixel window (+ height delta)) + (set-window-new-total window (/ (window-new-pixel window) + (frame-char-height frame))) ;; The following routine catches the case where we want to resize ;; a minibuffer-only frame. (when (resize-mini-window-internal window) But I'm afraid that other windows might be affected as well so I'd prefer to do this instead: === modified file 'src/dispnew.c' --- src/dispnew.c 2014-09-08 06:00:58 +0000 +++ src/dispnew.c 2014-09-08 09:04:18 +0000 @@ -1708,7 +1708,7 @@ } #endif /* HAVE_WINDOW_SYSTEM */ - return WINDOW_TOTAL_LINES (w); + return WINDOW_PIXEL_HEIGHT (w); } @@ -1734,7 +1734,7 @@ } #endif /* HAVE_WINDOW_SYSTEM */ - return w->total_cols; + return WINDOW_PIXEL_WIDTH (w); } martin From unknown Sat Jun 14 05:20:03 2025 X-Loop: help-debbugs@gnu.org Subject: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 09 Sep 2014 13:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18422 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: martin rudalics Cc: 18422@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 18422-submit@debbugs.gnu.org id=B18422.14102683426171 (code B ref 18422); Tue, 09 Sep 2014 13:13:02 +0000 Received: (at 18422) by debbugs.gnu.org; 9 Sep 2014 13:12:22 +0000 Received: from localhost ([127.0.0.1]:34554 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRLDZ-0001bS-0A for submit@debbugs.gnu.org; Tue, 09 Sep 2014 09:12:21 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]:47216) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRLDW-0001bB-5s for 18422@debbugs.gnu.org; Tue, 09 Sep 2014 09:12:19 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0NBM00L00XRC9G00@a-mtaout21.012.net.il> for 18422@debbugs.gnu.org; Tue, 09 Sep 2014 16:12:11 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NBM00L3MY0B4J70@a-mtaout21.012.net.il>; Tue, 09 Sep 2014 16:12:11 +0300 (IDT) Date: Tue, 09 Sep 2014 16:12:21 +0300 From: Eli Zaretskii In-reply-to: <540D7776.8090904@gmx.at> X-012-Sender: halo1@inter.net.il Message-id: <83oaupaqfe.fsf@gnu.org> References: <834mwjck0x.fsf@gnu.org> <540D7776.8090904@gmx.at> X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: 1.0 (+) > Date: Mon, 08 Sep 2014 11:31:34 +0200 > From: martin rudalics > > One possible fix would be: > > === modified file 'lisp/window.el' > --- lisp/window.el 2014-08-29 10:39:17 +0000 > +++ lisp/window.el 2014-09-08 08:45:23 +0000 > @@ -2388,6 +2388,8 @@ > ;; why we do not do that. > (window--resize-this-window root (- delta) nil nil t) > (set-window-new-pixel window (+ height delta)) > + (set-window-new-total window (/ (window-new-pixel window) > + (frame-char-height frame))) > ;; The following routine catches the case where we want to resize > ;; a minibuffer-only frame. > (when (resize-mini-window-internal window) > > > > But I'm afraid that other windows might be affected as well so I'd > prefer to do this instead: > > === modified file 'src/dispnew.c' > --- src/dispnew.c 2014-09-08 06:00:58 +0000 > +++ src/dispnew.c 2014-09-08 09:04:18 +0000 > @@ -1708,7 +1708,7 @@ > } > #endif /* HAVE_WINDOW_SYSTEM */ > > - return WINDOW_TOTAL_LINES (w); > + return WINDOW_PIXEL_HEIGHT (w); > } > > > @@ -1734,7 +1734,7 @@ > } > #endif /* HAVE_WINDOW_SYSTEM */ > > - return w->total_cols; > + return WINDOW_PIXEL_WIDTH (w); > } I already tried this before reporting the bug. It doesn't work, because we then hit these assertions in fake_current_matrices: eassert (m->matrix_h == WINDOW_TOTAL_LINES (w)); eassert (m->matrix_w == WINDOW_TOTAL_COLS (w)); In general, I think it's a bad idea to have bogus values in WINDOW_TOTAL_LINES and WINDOW_TOTAL_COLS, they are not documented to be invalid under any circumstances, so the code relies on them. What exactly frightens you in your first proposal? Perhaps we should install my patch on the emacs-24 branch and your window.el patch on the trunk? From unknown Sat Jun 14 05:20:03 2025 X-Loop: help-debbugs@gnu.org Subject: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 10 Sep 2014 08:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18422 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 18422@debbugs.gnu.org Received: via spool by 18422-submit@debbugs.gnu.org id=B18422.1410336224433 (code B ref 18422); Wed, 10 Sep 2014 08:04:02 +0000 Received: (at 18422) by debbugs.gnu.org; 10 Sep 2014 08:03:44 +0000 Received: from localhost ([127.0.0.1]:35938 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRcsS-00006u-0r for submit@debbugs.gnu.org; Wed, 10 Sep 2014 04:03:44 -0400 Received: from mout.gmx.net ([212.227.15.19]:57773) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRcsP-00006d-PW for 18422@debbugs.gnu.org; Wed, 10 Sep 2014 04:03:42 -0400 Received: from [188.22.44.68] ([188.22.44.68]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0MId0S-1XTpnh2h1k-002Geq; Wed, 10 Sep 2014 10:03:33 +0200 Message-ID: <541005CF.1050504@gmx.at> Date: Wed, 10 Sep 2014 10:03:27 +0200 From: martin rudalics MIME-Version: 1.0 References: <834mwjck0x.fsf@gnu.org> <540D7776.8090904@gmx.at> <83oaupaqfe.fsf@gnu.org> In-Reply-To: <83oaupaqfe.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:hhkHg+LotIt651IujjpJQFyCrqzK+LyzsswlZtlvbep0FbR8tbN AlMcgr/RQrpmdtfGNrwoomNzcp7UhBxi4TIQzDsp9SwooUOwODryBDHDqzQK8BOjo6g6QcH 7XPisRTz6SJV6SPcAU6lOWFpwT5J4/Q9IwlUpoRZsEdRScy1ho66+wJRCTxN2hPHFOMSzFc L0qWjPjZ3ykC8vCPJJM3g== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) > I already tried this before reporting the bug. It doesn't work, > because we then hit these assertions in fake_current_matrices: > > eassert (m->matrix_h == WINDOW_TOTAL_LINES (w)); > eassert (m->matrix_w == WINDOW_TOTAL_COLS (w)); We would have to use pixel sizes there too and maybe elsewhere. > In general, I think it's a bad idea to have bogus values in > WINDOW_TOTAL_LINES and WINDOW_TOTAL_COLS, they are not documented to > be invalid under any circumstances, so the code relies on them. Agreed. The "total" values are bogus from the moment a function like `resize-mini-window-internal' is executed until `window--pixel-to-total' is executed. Unfortunately, I currently adjust the frame glyphs right in between. I should either move the adjust_frame_glyphs call to Fwindow_resize_apply_total or set the new total sizes before calling window_resize_apply and have the latter call window_resize_apply_total. > What exactly frightens you in your first proposal? Perhaps we should > install my patch on the emacs-24 branch and your window.el patch on > the trunk? I'm afraid that the current bug is only the tip of an iceberg. We should close the window of vulnerability sketched above. On the emacs-24 branch. Neither of the two schemes from the previous paragraph is entirely trivial so using pixel values instead of character values would put us more on the safe side. Eventually, I intend to remove the total_lines/total_cols fields from the frame structure and have FRAME_TOTAL_COLS and FRAME_TOTAL_LINES calculate the values directly from the pixel sizes. I refrained from doing this already because I'm never sure how these values should get rounded. martin From unknown Sat Jun 14 05:20:03 2025 X-Loop: help-debbugs@gnu.org Subject: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 10 Sep 2014 17:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18422 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: martin rudalics Cc: 18422@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 18422-submit@debbugs.gnu.org id=B18422.141037040411980 (code B ref 18422); Wed, 10 Sep 2014 17:34:02 +0000 Received: (at 18422) by debbugs.gnu.org; 10 Sep 2014 17:33:24 +0000 Received: from localhost ([127.0.0.1]:36974 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRlli-000379-VX for submit@debbugs.gnu.org; Wed, 10 Sep 2014 13:33:23 -0400 Received: from mtaout27.012.net.il ([80.179.55.183]:41891) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRllg-00036v-IE for 18422@debbugs.gnu.org; Wed, 10 Sep 2014 13:33:21 -0400 Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NBP00H0048CWU00@mtaout27.012.net.il> for 18422@debbugs.gnu.org; Wed, 10 Sep 2014 20:27:30 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NBP00IYP4HT6U00@mtaout27.012.net.il>; Wed, 10 Sep 2014 20:27:30 +0300 (IDT) Date: Wed, 10 Sep 2014 20:33:26 +0300 From: Eli Zaretskii In-reply-to: <541005CF.1050504@gmx.at> X-012-Sender: halo1@inter.net.il Message-id: <83bnqn9y8p.fsf@gnu.org> References: <834mwjck0x.fsf@gnu.org> <540D7776.8090904@gmx.at> <83oaupaqfe.fsf@gnu.org> <541005CF.1050504@gmx.at> X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: 1.0 (+) > Date: Wed, 10 Sep 2014 10:03:27 +0200 > From: martin rudalics > CC: 18422@debbugs.gnu.org > > > I already tried this before reporting the bug. It doesn't work, > > because we then hit these assertions in fake_current_matrices: > > > > eassert (m->matrix_h == WINDOW_TOTAL_LINES (w)); > > eassert (m->matrix_w == WINDOW_TOTAL_COLS (w)); > > We would have to use pixel sizes there too and maybe elsewhere. Like I said: I don't think it's a good idea to give up on keeping the "total" members valid at all times. > > In general, I think it's a bad idea to have bogus values in > > WINDOW_TOTAL_LINES and WINDOW_TOTAL_COLS, they are not documented to > > be invalid under any circumstances, so the code relies on them. > > Agreed. The "total" values are bogus from the moment a function like > `resize-mini-window-internal' is executed until `window--pixel-to-total' > is executed. Unfortunately, I currently adjust the frame glyphs right > in between. I should either move the adjust_frame_glyphs call to > Fwindow_resize_apply_total or set the new total sizes before calling > window_resize_apply and have the latter call window_resize_apply_total. Please do one or the other, I don't think we can leave the release branch in its current state. It's all too easy to trigger this problem. > > What exactly frightens you in your first proposal? Perhaps we should > > install my patch on the emacs-24 branch and your window.el patch on > > the trunk? > > I'm afraid that the current bug is only the tip of an iceberg. We > should close the window of vulnerability sketched above. On the > emacs-24 branch. Neither of the two schemes from the previous paragraph > is entirely trivial so using pixel values instead of character values > would put us more on the safe side. I think the iceberg whose tip you envision includes the invalidity of the "total" values. IOW, this is imaginary safety, more bugs are lurking out there. > Eventually, I intend to remove the total_lines/total_cols fields from > the frame structure and have FRAME_TOTAL_COLS and FRAME_TOTAL_LINES > calculate the values directly from the pixel sizes. I refrained from > doing this already because I'm never sure how these values should get > rounded. That might be a good plan, but it' not for the release branch. From unknown Sat Jun 14 05:20:03 2025 X-Loop: help-debbugs@gnu.org Subject: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 11 Sep 2014 09:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18422 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 18422@debbugs.gnu.org Received: via spool by 18422-submit@debbugs.gnu.org id=B18422.141042756724581 (code B ref 18422); Thu, 11 Sep 2014 09:27:01 +0000 Received: (at 18422) by debbugs.gnu.org; 11 Sep 2014 09:26:07 +0000 Received: from localhost ([127.0.0.1]:37340 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XS0di-0006ON-FQ for submit@debbugs.gnu.org; Thu, 11 Sep 2014 05:26:07 -0400 Received: from mout.gmx.net ([212.227.15.15]:56678) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XS0de-0006OD-P4 for 18422@debbugs.gnu.org; Thu, 11 Sep 2014 05:26:03 -0400 Received: from [188.22.105.219] ([188.22.105.219]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0Lp3x6-1Xy48j2qv6-00evFj; Thu, 11 Sep 2014 11:26:01 +0200 Message-ID: <54116AA1.6010203@gmx.at> Date: Thu, 11 Sep 2014 11:25:53 +0200 From: martin rudalics MIME-Version: 1.0 References: <834mwjck0x.fsf@gnu.org> <540D7776.8090904@gmx.at> <83oaupaqfe.fsf@gnu.org> <541005CF.1050504@gmx.at> <83bnqn9y8p.fsf@gnu.org> In-Reply-To: <83bnqn9y8p.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:KAkIroTL1gecPVp2GyeLf+J80BYnG20Dm6kH3GVXkqX9THTQAHa Q5jCZVrMUAl04mQ3kgIyzR0rWt6WU9Q4rFk/nPySpywBi+abP/09DQWrNC976kvpZxCdWFH /1VOEpCxrGqZcJmDzdW7GosnyuXoRp6guZbVId2P89d3v6xnEsDz2nziQatKzKSM4MTcYtK dv2kAAqRtrkWy0tXdv84w== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) >> The "total" values are bogus from the moment a function like >> `resize-mini-window-internal' is executed until `window--pixel-to-total' >> is executed. Unfortunately, I currently adjust the frame glyphs right >> in between. I should either move the adjust_frame_glyphs call to >> Fwindow_resize_apply_total or set the new total sizes before calling >> window_resize_apply and have the latter call window_resize_apply_total. This analysis was downright silly. If it were accurate, then adjust_frame_glyphs would have choked immediately and everywhere. When I assign pixel sizes I also assign the total sizes as an estimate in the sense that partially visible characters are counted as full. Later I have to recalculate sizes to make sure that the individual total sizes of subwindows sum up to the total size of their parent window. This is needed to make some older functions (in particular those from windmove) work and can result in some windows getting a smaller total size than at the time adjust_frame_glyphs was called. This is, however, not an issue for -nw since there are no partial visible characters. > Please do one or the other, I don't think we can leave the release > branch in its current state. It's all too easy to trigger this > problem. I checked in a fix for the bug. It was entirely restricted to manually resizing the minibuffer window, something apparently nobody tried since last year with -nw. >> I'm afraid that the current bug is only the tip of an iceberg. We >> should close the window of vulnerability sketched above. On the >> emacs-24 branch. Neither of the two schemes from the previous paragraph >> is entirely trivial so using pixel values instead of character values >> would put us more on the safe side. > > I think the iceberg whose tip you envision includes the invalidity of > the "total" values. IOW, this is imaginary safety, more bugs are > lurking out there. Hopefully, the iceberg melt by now. >> Eventually, I intend to remove the total_lines/total_cols fields from >> the frame structure and have FRAME_TOTAL_COLS and FRAME_TOTAL_LINES >> calculate the values directly from the pixel sizes. I refrained from >> doing this already because I'm never sure how these values should get >> rounded. > > That might be a good plan, but it' not for the release branch. It would neither help nor work anyway. martin From unknown Sat Jun 14 05:20:03 2025 X-Loop: help-debbugs@gnu.org Subject: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 11 Sep 2014 15:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18422 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: martin rudalics Cc: 18422@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 18422-submit@debbugs.gnu.org id=B18422.141044827032249 (code B ref 18422); Thu, 11 Sep 2014 15:12:01 +0000 Received: (at 18422) by debbugs.gnu.org; 11 Sep 2014 15:11:10 +0000 Received: from localhost ([127.0.0.1]:38256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XS61d-0008O2-NO for submit@debbugs.gnu.org; Thu, 11 Sep 2014 11:11:10 -0400 Received: from mtaout24.012.net.il ([80.179.55.180]:54446) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XS61a-0008Ns-8g for 18422@debbugs.gnu.org; Thu, 11 Sep 2014 11:11:07 -0400 Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0NBQ00900SC6UD00@mtaout24.012.net.il> for 18422@debbugs.gnu.org; Thu, 11 Sep 2014 18:05:58 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NBQ002TNSLYYA70@mtaout24.012.net.il>; Thu, 11 Sep 2014 18:05:58 +0300 (IDT) Date: Thu, 11 Sep 2014 18:11:19 +0300 From: Eli Zaretskii In-reply-to: <54116AA1.6010203@gmx.at> X-012-Sender: halo1@inter.net.il Message-id: <83ppf28a5k.fsf@gnu.org> References: <834mwjck0x.fsf@gnu.org> <540D7776.8090904@gmx.at> <83oaupaqfe.fsf@gnu.org> <541005CF.1050504@gmx.at> <83bnqn9y8p.fsf@gnu.org> <54116AA1.6010203@gmx.at> X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: 1.0 (+) > Date: Thu, 11 Sep 2014 11:25:53 +0200 > From: martin rudalics > CC: 18422@debbugs.gnu.org > > I checked in a fix for the bug. It was entirely restricted to manually > resizing the minibuffer window, something apparently nobody tried since > last year with -nw. Thanks, it works for me. You can close the bug, unless you think something else needs to be done. > Hopefully, the iceberg melt by now. Let's hope. From unknown Sat Jun 14 05:20:03 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Eli Zaretskii Subject: bug#18422: closed (Re: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY) Message-ID: References: <5411D062.60303@gmx.at> <834mwjck0x.fsf@gnu.org> X-Gnu-PR-Message: they-closed 18422 X-Gnu-PR-Package: emacs Reply-To: 18422@debbugs.gnu.org Date: Thu, 11 Sep 2014 16:41:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1410453663-14380-1" This is a multi-part message in MIME format... ------------=_1410453663-14380-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #18422: 24.3.93; Assertion violation when resizing mini-window on a TTY which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 18422@debbugs.gnu.org. --=20 18422: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D18422 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1410453663-14380-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 18422-done) by debbugs.gnu.org; 11 Sep 2014 16:40:16 +0000 Received: from localhost ([127.0.0.1]:38400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XS7Pr-0003iK-0O for submit@debbugs.gnu.org; Thu, 11 Sep 2014 12:40:15 -0400 Received: from mout.gmx.net ([212.227.15.15]:57406) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XS7Pn-0003i9-Qy for 18422-done@debbugs.gnu.org; Thu, 11 Sep 2014 12:40:13 -0400 Received: from [88.117.61.137] ([88.117.61.137]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0MY7dI-1Xo46s1HsW-00Ur38; Thu, 11 Sep 2014 18:40:10 +0200 Message-ID: <5411D062.60303@gmx.at> Date: Thu, 11 Sep 2014 18:40:02 +0200 From: martin rudalics MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#18422: 24.3.93; Assertion violation when resizing mini-window on a TTY References: <834mwjck0x.fsf@gnu.org> <540D7776.8090904@gmx.at> <83oaupaqfe.fsf@gnu.org> <541005CF.1050504@gmx.at> <83bnqn9y8p.fsf@gnu.org> <54116AA1.6010203@gmx.at> <83ppf28a5k.fsf@gnu.org> In-Reply-To: <83ppf28a5k.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:Fi3eAkg9XYABEbNa8WjBSxr5GP0Rm7TcCYxLcVzayOgITVpGnHj pI8DvrSyyHfq9lRksAzjjSTYdDBxxsVyhyMx6y+94hktHJIHqdNXCUWHG/NuLL7esYZxkJ6 tBiWFAC23FymkM88GzXCQ/zX5Tu47aFzb1DXi8NcQ8SDLlpWWRkqu6mVr5SCgVSuHi9pcqo qhES0fgZr692+uOZwKM1g== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 18422-done Cc: 18422-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) > Thanks, it works for me. You can close the bug, unless you think > something else needs to be done. Closing. Thanks, martin ------------=_1410453663-14380-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 7 Sep 2014 19:23:41 +0000 Received: from localhost ([127.0.0.1]:33007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XQi3o-0006xu-8D for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35484) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XQi3l-0006xh-S4 for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XQi3W-0001NL-OZ for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:36231) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQi3W-0001NH-M3 for submit@debbugs.gnu.org; Sun, 07 Sep 2014 15:23:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37205) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQi3P-0006qi-4u for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 15:23:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XQi3H-0001LE-FQ for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 15:23:15 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:37408) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XQi3H-0001L9-1y for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 15:23:07 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0NBJ00700PFMWV00@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 22:23:05 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NBJ007PTPUGOI40@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2014 22:23:05 +0300 (IDT) Date: Sun, 07 Sep 2014 22:23:10 +0300 From: Eli Zaretskii Subject: 24.3.93; Assertion violation when resizing mini-window on a TTY X-012-Sender: halo1@inter.net.il To: bug-gnu-emacs@gnu.org Message-id: <834mwjck0x.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -6.7 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii 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: -6.7 (------) The following recipe causes an assertion violation on MS-Windows (I don't have access to a Unix TTY with a mouse to try there): emacs -Q -nw M-: (setq resize-mini-windows nil) RET Drag the mode line with the mouse -- you get assertion violation: dispnew.c:684: Emacs fatal error: assertion failed: start >= 0 && start < matrix->nrows The immediate reason for this is that clear_glyph_matrix_rows is called with both start = 0 and end = 0. But the root cause is that Emacs thinks the mini-buffer window has a zero height. This comes from here: static int required_matrix_height (struct window *w) { #ifdef HAVE_WINDOW_SYSTEM struct frame *f = XFRAME (w->frame); if (FRAME_WINDOW_P (f)) { int ch_height = FRAME_SMALLEST_FONT_HEIGHT (f); int window_pixel_height = window_box_height (w) + eabs (w->vscroll); return (((window_pixel_height + ch_height - 1) / ch_height) * w->nrows_scale_factor /* One partially visible line at the top and bottom of the window. */ + 2 /* 2 for header and mode line. */ + 2); } #endif /* HAVE_WINDOW_SYSTEM */ return WINDOW_TOTAL_LINES (w); <<<<<<<<<<<<<<<<<<<<< } The total_lines value is zero. It turns out that total_lines is assigned the zero value in resize-mini-window-internal: w->total_lines = XFASTINT (w->new_total); <<<<<<<<<<<<<< w->pixel_height = XFASTINT (w->new_pixel); and w->new_total is zero because no one set it to any other value. In window--resize-mini-window we do this: (window--resize-this-window root (- delta) nil nil t) (set-window-new-pixel window (+ height delta)) ;; The following routine catches the case where we want to resize ;; a minibuffer-only frame. (when (resize-mini-window-internal window) (window--pixel-to-total frame) So by the time resize-mini-window-internal is called, w->new_pixel is already set as appropriate, but w->new_total is set only after the call to resize-mini-window-internal returns. Now, on GUI frames this problem doesn't happen, because, as seen from required_matrix_height above, total_lines is never used there to determine the matrix dimensions. Instead, GUI frames calculate their height in pixels, which is already set by this time. I can fix this problem with the following semi-kludgey change (which will need a comment to explain the above, if and when it's committed): === modified file 'src/window.c' --- src/window.c 2014-08-09 11:12:45 +0000 +++ src/window.c 2014-09-07 19:19:19 +0000 @@ -4807,6 +4807,8 @@ DEFUN ("resize-mini-window-internal", Fr w->total_lines = XFASTINT (w->new_total); w->top_line = r->top_line + r->total_lines; w->pixel_height = XFASTINT (w->new_pixel); + if (!FRAME_WINDOW_P (f)) + w->total_lines = w->pixel_height; w->pixel_top = r->pixel_top + r->pixel_height; fset_redisplay (f); Is this the right fix? In GNU Emacs 24.3.93.28 (i686-pc-mingw32) of 2014-09-07 on HOME-C4E4A596F7 Repository revision: 117483 monnier@iro.umontreal.ca-20140905173712-p7fyv6iaijldb29c Windowing system distributor `Microsoft Corp.', version 5.1.2600 Configured using: `configure --prefix=/d/usr --enable-checking=yes,glyphs 'CFLAGS=-O0 -g3'' Important settings: value of $LANG: ENU locale-coding-system: cp1255 Major mode: Lisp Interaction Minor modes in effect: tooltip-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 auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x r e p o r t - e m a c s - b u g Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32notify w32 multi-tty emacs) Memory information: ((conses 8 74225 7254) (symbols 32 17536 0) (miscs 32 33 97) (strings 16 10776 4344) (string-bytes 1 269292) (vectors 8 9555) (vector-slots 4 384789 5962) (floats 8 57 68) (intervals 28 238 95) (buffers 508 11)) ------------=_1410453663-14380-1--