unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
@ 2020-11-07 18:39 Amin Bandali
  2020-11-07 18:58 ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Amin Bandali @ 2020-11-07 18:39 UTC (permalink / raw)
  To: 44506

[-- Attachment #1: Type: text/plain, Size: 412 bytes --]

I noticed today that when trying to open the following message (attached
with John's permission) using Gnus in a terminal emulator or a tty in
GNU/Linux, it results in Emacs quitting with a segfault.  I'm also
attaching the result of running `bt full' in GDB after the segfault.
The issue seems related in part to the inclusion of Persian characters
in the message body.

                                 * * *


[-- Attachment #2: Type: message/rfc822, Size: 3811 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 323 bytes --]

>>>>> Amin Bandali <bandali@gnu.org> writes:

> Fingers crossed maybe that's changed now? :-)

If neither want to do it, and it doesn't sound like they do, then I'll meet
with Eli on Zoom, get the year's update from him, take some notes, and then
present them for you at Emacs Conf. :)

مرسی دوستم، John

[-- Attachment #2.1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 658 bytes --]

[-- Attachment #3: Type: text/plain, Size: 41 bytes --]


                                 * * *


[-- Attachment #4: bt-full.txt --]
[-- Type: text/plain, Size: 7500 bytes --]

#0  0x0000555555639248 in encode_terminal_code (src=0x7ffff7f61cc0, src_len=src_len@entry=1, coding=coding@entry=0x555555e7ec00) at term.c:564
        cmp = 0x0
        gstring = 0x0
        i = <optimized out>
        src_end = 0x7ffff7f61cf0
        buf = 0x5555561483a0 ' ' <repeats 94 times>, "John ،متسود یسر", '-' <repeats 39 times>
        nchars = 0
        nbytes = 0
        required = <optimized out>
        tbase = 0x0
        charset_list = 0x7fffea1f724b
#1  0x0000555555639b66 in tty_write_glyphs (f=<optimized out>, string=<optimized out>, len=<optimized out>) at term.c:773
        face_id = 11
        conversion_buffer = <optimized out>
        coding = 0x555555e7ec00
        n = <optimized out>
        stringlen = 48
        tty = 0x555555e7ee70
#2  0x0000555555597a93 in update_frame_line (f=f@entry=0x555555e35798, vpos=28, updating_menu_p=updating_menu_p@entry=false) at dispnew.c:5089
        obody = <optimized out>
        nbody = 0x7ffff7f60850
        op1 = <optimized out>
        op2 = <optimized out>
        np1 = <optimized out>
        nend = <optimized out>
        tem = <optimized out>
        osp = <optimized out>
        nsp = <optimized out>
        begmatch = <optimized out>
        endmatch = <optimized out>
        olen = 0
        nlen = <optimized out>
        current_matrix = <optimized out>
        desired_matrix = <optimized out>
        current_row = <optimized out>
        desired_row = <optimized out>
        must_write_whole_line_p = <optimized out>
        write_spaces_p = <optimized out>
        colored_spaces_p = true
#3  0x000055555559a553 in update_frame_1 (f=f@entry=0x555555e35798, force_p=force_p@entry=true, inhibit_id_p=<optimized out>, inhibit_id_p@entry=false, set_cursor_p=set_cursor_p@entry=true, updating_menu_p=updating_menu_p@entry=false)
    at dispnew.c:4787
        current_matrix = 0x555555e3ddc0
        desired_matrix = 0x555555e3dd50
        i = 28
        pause_p = <optimized out>
        preempt_count = 17
#4  0x000055555559d8f7 in update_frame (f=f@entry=0x555555e35798, force_p=true, force_p@entry=false, inhibit_hairy_id_p=inhibit_hairy_id_p@entry=false) at dispnew.c:3246
        paused_p = <optimized out>
#5  0x00005555555d594a in redisplay_internal () at xdisp.c:16023
        gcscrollbars = <optimized out>
        f_redisplay_flag = <optimized out>
        f = 0x555555e35798
        w = <optimized out>
        sw = <optimized out>
        fr = <optimized out>
        pending = <optimized out>
        must_finish = <optimized out>
        match_p = <optimized out>
        tlbufpos = <optimized out>
        tlendpos = <optimized out>
        number_of_visible_frames = <optimized out>
        sf = <optimized out>
        polling_stopped_here = true
        tail = 0x555555e3ace3
        hscroll_retries = <optimized out>
        garbaged_frame_retries = 0
        consider_all_windows_p = <optimized out>
        update_miniwindow_p = <optimized out>
#6  0x00005555555d77d5 in redisplay () at xdisp.c:15159
#7  0x000055555567c353 in read_char (commandflag=commandflag@entry=1, map=map@entry=0x555556db11a3, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7fffffffd68b, end_time=end_time@entry=0x0) at keyboard.c:2497
        echo_current = false
        c = <optimized out>
        jmpcount = <optimized out>
        local_getcjmp =
                {{__jmpbuf = {93825009513893, 93825026478419, 18474, 0, 35328, 93825016046691, 0, 1}, __mask_was_saved = 1451053389, __saved_mask = {__val = {93824994266479, 93825009513888, 140737488344288, 93825009513893, 35328, 0, 93824993873484, 938
25009513888, 160, 73902, 0, 18475, 140737488343904, 93825011634509, 0, 0}}}}
        save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = 0x0
        also_record = 0x0
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x555555e81710
#8  0x000055555567eb31 in read_key_sequence (keybuf=keybuf@entry=0x7fffffffd7a0, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buff
er@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9546
        interrupted_kboard = 0x555555e81710
        interrupted_frame = 0x555555e35798
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = <optimized out>
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = 0x555556db11a3
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {parent = 0x555555e39f63, map = 0x555555e39f63, start = 0, end = 0}
        keytran = {parent = 0x7fffea246523, map = 0x7fffea246523, start = 0, end = 0}
        indec = {parent = 0x555555e39f53, map = 0x555555e39f53, start = 0, end = 0}
        shift_translated = false
        delayed_switch_frame = 0x0
        original_uppercase = 0x0
        original_uppercase_position = -1
        dummyflag = false
        fake_prefixed_keys = 0x0
        first_event = 0x0
        second_event = <optimized out>
#9  0x00005555556803fc in command_loop_1 () at keyboard.c:1354
        cmd = <optimized out>
        keybuf =
          {0x36, 0xfa, 0x126, 0x2aaa94354e18, 0x0, 0x4000000010000000, 0x400000003f000000, 0x555555d994a0 <lispsym>, 0x7fffffffd8b0, 0x5555556ef2ca <eval_sub+586>, 0x4, 0x3400000013, 0x0, 0x0, 0x0, 0x4, 0x5b0000006e, 0x0, 0x555555e74db8, 0x120, 0x7ffff
1aaec40 <main_arena>, 0x5d6fc5937978a300, 0x78, 0x7fffffffd880, 0x0, 0x555555e3a033, 0x0, 0x5555556eccf4 <unbind_to+148>, 0x8, 0x8340}
        i = <optimized out>
        prev_modiff = 2705
        prev_buffer = 0x5555565cf5a0
#10 0x00005555556ec43e in internal_condition_case (bfun=bfun@entry=0x555555680210 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x555555676ed0 <cmd_error>) at eval.c:1359
        val = <optimized out>
        c = 0x555555e64100
#11 0x0000555555671774 in command_loop_2 (ignore=ignore@entry=0x0) at keyboard.c:1095
        val = 0x0
#12 0x00005555556ec3ad in internal_catch (tag=tag@entry=0xd740, func=func@entry=0x555555671750 <command_loop_2>, arg=arg@entry=0x0) at eval.c:1120
        val = <optimized out>
        c = 0x555555e817e0
#13 0x000055555567170b in command_loop () at keyboard.c:1074
#14 0x0000555555676ae6 in recursive_edit_1 () at keyboard.c:718
        val = <optimized out>
#15 0x0000555555676e06 in Frecursive_edit () at keyboard.c:790
        buffer = <optimized out>
#16 0x0000555555593e59 in main (argc=2, argv=<optimized out>) at emacs.c:2047
        stack_bottom_variable = 0x300000003
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = <optimized out>
        dump_mode = <optimized out>
        skip_args = 1
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615}
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>

[-- Attachment #5: Type: text/plain, Size: 21434 bytes --]


                                 * * *

In GNU Emacs 28.0.50 (build 4, x86_64-pc-linux-gnu, X toolkit, cairo version 1.15.10, Xaw3d scroll bars)
 of 2020-11-07 built on langa
Repository revision: 423b6b62296df0558cf16f286dd268e0b49b3bce
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Trisquel GNU/Linux Etiona (9.0)

Configured using:
 'configure --without-gconf --without-gsettings --without-gpm
 --with-x-toolkit=lucid --with-xaw3d --with-mailutils
 --prefix=/data/bandali/u/local'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GLIB NOTIFY INOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB
TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON
PDUMPER LCMS2

Important settings:
  value of $LANG: en_CA.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  gnus-topic-mode: t
  gnus-undo-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  server-mode: t
  global-hl-todo-mode: t
  global-page-break-lines-mode: t
  pixel-scroll-mode: t
  amx-mode: t
  counsel-mode: t
  ivy-mode: t
  recentf-mode: t
  save-place-mode: t
  savehist-mode: t
  show-paren-mode: t
  winner-mode: t
  display-battery-mode: t
  display-time-mode: t
  global-auto-revert-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-screen hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-screen
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lilypond hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lilypond
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-eval hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-eval
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-id hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-id
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sql hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sql
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-latex hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-latex
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-w3m hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-w3m
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-mobile hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-mobile
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-scheme hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-scheme
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-calc hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-calc
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-feed hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-feed
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-clojure hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-clojure
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-faces hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-faces
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-shell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-shell
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-table hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-table
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-eww hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-eww
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-lint hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-lint
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-rmail hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-rmail
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-list hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-list
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-octave hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-octave
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-js hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-js
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-asymptote hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-asymptote
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-python hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-python
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sed hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sed
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-element hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-element
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-archive hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-archive
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ebnf hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ebnf
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-mscgen hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-mscgen
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sqlite hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sqlite
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-capture hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-capture
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ocaml hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ocaml
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-perl hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-perl
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-goto hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-goto
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-makefile hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-makefile
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-irc hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-irc
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-picolisp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-picolisp
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-awk hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-awk
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-mouse hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-mouse
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-eshell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-eshell
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ruby hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ruby
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-J hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-J
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-attach hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-attach
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-habit hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-habit
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-ascii hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-ascii
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-macs hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-macs
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-io hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-io
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-tempo hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-tempo
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lisp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lisp
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-plot hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-plot
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-org hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-org
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-docview hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-docview
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-bbdb hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-bbdb
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-attach-git hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-attach-git
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-icalendar hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-icalendar
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-emacs-lisp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-emacs-lisp
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ledger hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ledger
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-publish hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-publish
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-ctags hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-ctags
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-odt hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-odt
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-md hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-md
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-entities hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-entities
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-haskell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-haskell
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-fortran hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-fortran
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sass hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sass
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-info hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-info
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-timer hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-timer
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-matlab hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-matlab
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-inlinetask hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-inlinetask
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-gnus hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-gnus
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-groovy hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-groovy
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-eshell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-eshell
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-datetree hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-datetree
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-plantuml hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-plantuml
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lua hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lua
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-num hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-num
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-abc hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-abc
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-man hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-man
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-latex hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-latex
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-footnote hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-footnote
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-core hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-core
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-pcomplete hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-pcomplete
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-indent hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-indent
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-macro hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-macro
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-stan hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-stan
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-tangle hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-tangle
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-dot hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-dot
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-loaddefs hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-loaddefs
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-clock hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-clock
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-forth hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-forth
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-C hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-C
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-shen hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-shen
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-maxima hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-maxima
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-protocol hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-protocol
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-compat hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-compat
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-vala hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-vala
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-keys hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-keys
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-src hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-src
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-java hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-java
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-table hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-table
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-css hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-css
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-hledger hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-hledger
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-bibtex hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-bibtex
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ditaa hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ditaa
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-beamer hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-beamer
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-texinfo hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-texinfo
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-colview hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-colview
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-gnuplot hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-gnuplot
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-mhe hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-mhe
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-duration hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-duration
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-exp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-exp
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-org hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-org
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-processing hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-processing
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-coq hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-coq
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-version hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-version
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lob hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lob
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-R hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-R
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-html hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-html
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-agenda hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-agenda
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-install hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-install
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-comint hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-comint
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ref hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ref
/home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-crypt hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-crypt

Features:
(shadow sort gnus-cite orgalist org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete
org-list org-faces org-entities noutline outline org-version
ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs
org-loaddefs flyspell ispell mail-extr emacsbug thingatpt gnus-async qp
gnus-ml gnus-topic nndraft nnmh gnutls utf-7 epa-file network-stream nsm
nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp
gnus-cache ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime dig gnus-sum shr kinsoku svg dom gnus-group gnus-undo gnus-start
gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo
parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win ebdb-message
sendmail message rmc puny rfc822 mml mml-sec epa derived epg epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 gmm-utils mailheader
ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev eieio-opt speedbar
ezimage dframe find-func eieio-base cal-menu calendar cal-loaddefs
timezone gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045
ietf-drums time-date mail-utils mm-util mail-prsvr boxquote rect
yasnippet server hl-todo pcase disp-table page-break-lines delight
pixel-scroll amx easy-mmode s counsel xdg xref project dired-x dired
dired-loaddefs compile text-property-search comint ansi-color swiper
cl-extra help-mode ido ivy delsel colir color ivy-overlay recentf
tree-widget wid-edit refinery-theme finder-inf info package easymenu
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core eieio-loaddefs password-cache json
map url-vars saveplace savehist paren bandali-erc bandali-ebdb
bandali-message bandali-gnus bandali-dired bandali-ibuffer ibuf-macs
bandali-eshell bandali-ivy bandali-theme bandali-org edmacro kmacro
advice winner ring format-spec battery dbus xml subr-x seq byte-opt
bytecomp byte-compile cconv time autorevert filenotify cl-macs gv
cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type 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 elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame minibuffer cl-generic
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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting font-render-setting cairo x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 312034 24023)
 (symbols 48 28635 4)
 (strings 32 94007 4976)
 (string-bytes 1 3322781)
 (vectors 16 45126)
 (vector-slots 8 578609 7922)
 (floats 8 378 192)
 (intervals 56 1531 0)
 (buffers 992 23))

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-07 18:39 bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty Amin Bandali
@ 2020-11-07 18:58 ` Eli Zaretskii
  2020-11-07 20:03   ` Amin Bandali
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-07 18:58 UTC (permalink / raw)
  To: Amin Bandali; +Cc: 44506

> From: Amin Bandali <bandali@gnu.org>
> Date: Sat, 07 Nov 2020 13:39:14 -0500
> 
> I noticed today that when trying to open the following message (attached
> with John's permission) using Gnus in a terminal emulator or a tty in
> GNU/Linux, it results in Emacs quitting with a segfault.  I'm also
> attaching the result of running `bt full' in GDB after the segfault.
> The issue seems related in part to the inclusion of Persian characters
> in the message body.

Just visiting the text you send in "emacs -Q -nw" doesn't cause any
segfaults.  Does it happen to you in "emacs -Q"?

> #0  0x0000555555639248 in encode_terminal_code (src=0x7ffff7f61cc0, src_len=src_len@entry=1, coding=coding@entry=0x555555e7ec00) at term.c:564
>         cmp = 0x0
>         gstring = 0x0
>         i = <optimized out>
>         src_end = 0x7ffff7f61cf0
>         buf = 0x5555561483a0 ' ' <repeats 94 times>, "John ،متسود یسر", '-' <repeats 39 times>
>         nchars = 0
>         nbytes = 0
>         required = <optimized out>
>         tbase = 0x0
>         charset_list = 0x7fffea1f724b

This is an optimized build, so it's hard to understand what caused the
crash.  According to the line number, it crashes here:

	  if (src->u.cmp.automatic)
	    {
	      gstring = composition_gstring_from_id (src->u.cmp.id);
	      required = src->slice.cmp.to - src->slice.cmp.from + 1;
	    }
	  else
	    {
	      cmp = composition_table[src->u.cmp.id];  <<<<<<<<<<<<<<<
	      required = cmp->glyph_len;
	    }

If that is true, then I don't understand how it happened: we don't use
any compositions except automatic in Emacs, so I'm unsure how you get
to that place.  Can you see which place in the code indeed crashes and
why?





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-07 18:58 ` Eli Zaretskii
@ 2020-11-07 20:03   ` Amin Bandali
  2020-11-07 20:29     ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Amin Bandali @ 2020-11-07 20:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Eric Abrahamsen, 44506

[-- Attachment #1: Type: text/plain, Size: 2583 bytes --]

Eli Zaretskii writes:

>> From: Amin Bandali <bandali@gnu.org>
>> Date: Sat, 07 Nov 2020 13:39:14 -0500
>> 
>> I noticed today that when trying to open the following message (attached
>> with John's permission) using Gnus in a terminal emulator or a tty in
>> GNU/Linux, it results in Emacs quitting with a segfault.  I'm also
>> attaching the result of running `bt full' in GDB after the segfault.
>> The issue seems related in part to the inclusion of Persian characters
>> in the message body.
>
> Just visiting the text you send in "emacs -Q -nw" doesn't cause any
> segfaults.  Does it happen to you in "emacs -Q"?
>

It does not indeed.  With -Q, visiting the message body saved into a
regular text file or opening the actual message using Gnus does not
result in a segfault.

After some bisecting of my config files, I narrowed the segaulting of
Gnus when opening that message down to inclusion of (require 'ebdb-gnus)
in my configs.  ebdb-gnus is part of EBDB, available on GNU ELPA.  I'm
Cc'ing Eric, EBDB's creator and maintainer, in case he might have any
ideas.

>> #0 0x0000555555639248 in encode_terminal_code (src=0x7ffff7f61cc0,
>> src_len=src_len@entry=1, coding=coding@entry=0x555555e7ec00) at
>> term.c:564
>>         cmp = 0x0
>>         gstring = 0x0
>>         i = <optimized out>
>>         src_end = 0x7ffff7f61cf0
>>         buf = 0x5555561483a0 ' ' <repeats 94 times>, "John ،متسود
>> یسر", '-' <repeats 39 times>
>>         nchars = 0
>>         nbytes = 0
>>         required = <optimized out>
>>         tbase = 0x0
>>         charset_list = 0x7fffea1f724b
>
> This is an optimized build, so it's hard to understand what caused the
> crash.  According to the line number, it crashes here:
>
> 	  if (src->u.cmp.automatic)
> 	    {
> 	      gstring = composition_gstring_from_id (src->u.cmp.id);
> 	      required = src->slice.cmp.to - src->slice.cmp.from + 1;
> 	    }
> 	  else
> 	    {
> 	      cmp = composition_table[src->u.cmp.id];  <<<<<<<<<<<<<<<
> 	      required = cmp->glyph_len;
> 	    }
>
> If that is true, then I don't understand how it happened: we don't use
> any compositions except automatic in Emacs, so I'm unsure how you get
> to that place.  Can you see which place in the code indeed crashes and
> why?
>

GDB's source display does indeed highlight that line for me.  Is this
the confirmation you were looking for, or did you mean I should look
into disabling optimization and *then* run Emacs through GDB to collect
the backtrace?

Thanks for your help.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-07 20:03   ` Amin Bandali
@ 2020-11-07 20:29     ` Eli Zaretskii
  2020-11-08  4:03       ` Eric Abrahamsen
  2020-11-08  4:05       ` Eric Abrahamsen
  0 siblings, 2 replies; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-07 20:29 UTC (permalink / raw)
  To: Amin Bandali; +Cc: eric, 44506

> From: Amin Bandali <bandali@gnu.org>
> Cc: 44506@debbugs.gnu.org, Eric Abrahamsen <eric@ericabrahamsen.net>
> Date: Sat, 07 Nov 2020 15:03:53 -0500
> 
> After some bisecting of my config files, I narrowed the segaulting of
> Gnus when opening that message down to inclusion of (require 'ebdb-gnus)
> in my configs.  ebdb-gnus is part of EBDB, available on GNU ELPA.  I'm
> Cc'ing Eric, EBDB's creator and maintainer, in case he might have any
> ideas.

I don't see anything in EBDB that could cause Emacs to use static
compositions, but maybe I'm missing something.

> > 	  if (src->u.cmp.automatic)
> > 	    {
> > 	      gstring = composition_gstring_from_id (src->u.cmp.id);
> > 	      required = src->slice.cmp.to - src->slice.cmp.from + 1;
> > 	    }
> > 	  else
> > 	    {
> > 	      cmp = composition_table[src->u.cmp.id];  <<<<<<<<<<<<<<<
> > 	      required = cmp->glyph_len;
> > 	    }
> >
> > If that is true, then I don't understand how it happened: we don't use
> > any compositions except automatic in Emacs, so I'm unsure how you get
> > to that place.  Can you see which place in the code indeed crashes and
> > why?
> 
> GDB's source display does indeed highlight that line for me.  Is this
> the confirmation you were looking for, or did you mean I should look
> into disabling optimization and *then* run Emacs through GDB to collect
> the backtrace?

Reproducing in an unoptimized build would be the most efficient way of
telling if that's indeed something related to static compositions.

Thanks.





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-07 20:29     ` Eli Zaretskii
@ 2020-11-08  4:03       ` Eric Abrahamsen
  2020-11-08 14:56         ` Eli Zaretskii
  2020-11-08  4:05       ` Eric Abrahamsen
  1 sibling, 1 reply; 22+ messages in thread
From: Eric Abrahamsen @ 2020-11-08  4:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Amin Bandali, 44506


On 11/07/20 22:29 PM, Eli Zaretskii wrote:
>> From: Amin Bandali <bandali@gnu.org>
>> Cc: 44506@debbugs.gnu.org, Eric Abrahamsen <eric@ericabrahamsen.net>
>> Date: Sat, 07 Nov 2020 15:03:53 -0500
>> 
>> After some bisecting of my config files, I narrowed the segaulting of
>> Gnus when opening that message down to inclusion of (require 'ebdb-gnus)
>> in my configs.  ebdb-gnus is part of EBDB, available on GNU ELPA.  I'm
>> Cc'ing Eric, EBDB's creator and maintainer, in case he might have any
>> ideas.
>
> I don't see anything in EBDB that could cause Emacs to use static
> compositions, but maybe I'm missing something.

FWIW I was able to reproduce the segfault in terminal (not in GUI). I
don't know what static compositions are, but the places where EBDB
messes with lower-level character stuff are pasted below. As you can see
it's pretty ad-hoc stuff.

There's also ebdb-i18n.el, but that mostly just involves looking up the
scripts of characters in `char-script-table'.

(defconst ebdb-char-fold-table
  (eval-when-compile
    (let ((tbl (make-char-table 'char-fold-table))
	  (uni (unicode-property-table-internal 'decomposition))
	  ;; Lowercase and uppercase alphabet.
	  (target-seq (append (number-sequence 65 90)
			      (number-sequence 97 122))))

      ;; I don't understand what's happening here, but it's necessary.
      (let ((func (char-table-extra-slot uni 1)))
	(map-char-table (lambda (char v)
                          (when (consp char)
                            (funcall func (car char) v uni)))
			uni))
      ;; Create lists of equivalent chars, keyed to the most basic
      ;; ascii letter.
      (map-char-table
       (lambda (char decomp)
	 (when (consp decomp)
	   (when (symbolp (car decomp))
	     (setq decomp (cdr decomp)))
	   (when (memq (car decomp) target-seq)
	     (aset tbl (car decomp)
		   (cons char
			 (aref tbl (car decomp)))))))
       uni)
      ;; Then turn the lists into regexps.
      (map-char-table
       (lambda (char dec-list)
	 (let ((re (regexp-opt (cons (char-to-string char)
				     (mapcar #'string dec-list)))))
           (aset tbl char re)))
       tbl)
      tbl))
  "Char-table holding regexps used in char fold searches.
Keys are characters in the upper- and lower-case ascii ranges.
Values are a regexp matching all characters that decompose to the
key character.")

(defun ebdb-char-fold-to-regexp (string)
  "A highly simplified version of `char-fold-to-regexp'.
Only converts characters in STRING that decompose to the range
[a-zA-Z]."
  (let ((out nil)
	(end (length string))
	char
	(i 0))
    (while (< i end)
      (setq char (aref string i))
      (push
       (or (aref ebdb-char-fold-table char)
	   (string char))
       out)
      (cl-incf i))
    (setq out (apply #'concat (nreverse out)))
    (if (> (length out) 5000)
        (regexp-quote string)
      out)))





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-07 20:29     ` Eli Zaretskii
  2020-11-08  4:03       ` Eric Abrahamsen
@ 2020-11-08  4:05       ` Eric Abrahamsen
  1 sibling, 0 replies; 22+ messages in thread
From: Eric Abrahamsen @ 2020-11-08  4:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Amin Bandali, 44506


On 11/07/20 22:29 PM, Eli Zaretskii wrote:
>> From: Amin Bandali <bandali@gnu.org>
>> Cc: 44506@debbugs.gnu.org, Eric Abrahamsen <eric@ericabrahamsen.net>
>> Date: Sat, 07 Nov 2020 15:03:53 -0500
>> 
>> After some bisecting of my config files, I narrowed the segaulting of
>> Gnus when opening that message down to inclusion of (require 'ebdb-gnus)
>> in my configs.  ebdb-gnus is part of EBDB, available on GNU ELPA.  I'm
>> Cc'ing Eric, EBDB's creator and maintainer, in case he might have any
>> ideas.
>
> I don't see anything in EBDB that could cause Emacs to use static
> compositions, but maybe I'm missing something.

FWIW I was able to reproduce the segfault in terminal (not in GUI). I
don't know what static compositions are, but the places where EBDB
messes with lower-level character stuff are pasted below. As you can see
it's pretty ad-hoc stuff.

There's also ebdb-i18n.el, but that mostly just involves looking up the
scripts of characters in `char-script-table'.

(defconst ebdb-char-fold-table
  (eval-when-compile
    (let ((tbl (make-char-table 'char-fold-table))
	  (uni (unicode-property-table-internal 'decomposition))
	  ;; Lowercase and uppercase alphabet.
	  (target-seq (append (number-sequence 65 90)
			      (number-sequence 97 122))))

      ;; I don't understand what's happening here, but it's necessary.
      (let ((func (char-table-extra-slot uni 1)))
	(map-char-table (lambda (char v)
                          (when (consp char)
                            (funcall func (car char) v uni)))
			uni))
      ;; Create lists of equivalent chars, keyed to the most basic
      ;; ascii letter.
      (map-char-table
       (lambda (char decomp)
	 (when (consp decomp)
	   (when (symbolp (car decomp))
	     (setq decomp (cdr decomp)))
	   (when (memq (car decomp) target-seq)
	     (aset tbl (car decomp)
		   (cons char
			 (aref tbl (car decomp)))))))
       uni)
      ;; Then turn the lists into regexps.
      (map-char-table
       (lambda (char dec-list)
	 (let ((re (regexp-opt (cons (char-to-string char)
				     (mapcar #'string dec-list)))))
           (aset tbl char re)))
       tbl)
      tbl))
  "Char-table holding regexps used in char fold searches.
Keys are characters in the upper- and lower-case ascii ranges.
Values are a regexp matching all characters that decompose to the
key character.")

(defun ebdb-char-fold-to-regexp (string)
  "A highly simplified version of `char-fold-to-regexp'.
Only converts characters in STRING that decompose to the range
[a-zA-Z]."
  (let ((out nil)
	(end (length string))
	char
	(i 0))
    (while (< i end)
      (setq char (aref string i))
      (push
       (or (aref ebdb-char-fold-table char)
	   (string char))
       out)
      (cl-incf i))
    (setq out (apply #'concat (nreverse out)))
    (if (> (length out) 5000)
        (regexp-quote string)
      out)))





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-08  4:03       ` Eric Abrahamsen
@ 2020-11-08 14:56         ` Eli Zaretskii
  2020-11-08 18:27           ` Amin Bandali
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-08 14:56 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: bandali, 44506

> From: Eric Abrahamsen <eric@ericabrahamsen.net>
> Cc: Amin Bandali <bandali@gnu.org>,  44506@debbugs.gnu.org
> Date: Sat, 07 Nov 2020 20:03:14 -0800
> 
> >> After some bisecting of my config files, I narrowed the segaulting of
> >> Gnus when opening that message down to inclusion of (require 'ebdb-gnus)
> >> in my configs.  ebdb-gnus is part of EBDB, available on GNU ELPA.  I'm
> >> Cc'ing Eric, EBDB's creator and maintainer, in case he might have any
> >> ideas.
> >
> > I don't see anything in EBDB that could cause Emacs to use static
> > compositions, but maybe I'm missing something.
> 
> FWIW I was able to reproduce the segfault in terminal (not in GUI).

Half the kingdom for a reproduction recipe that doesn't need Gnus or
EBDB, or at least starts with "emacs -Q" and loads whatever packages
are needed as part of the recipe.

> I don't know what static compositions are, but the places where EBDB
> messes with lower-level character stuff are pasted below. As you can
> see it's pretty ad-hoc stuff.

I don't think I see the relevance, not yet.  The crash happened during
routine redisplay, and ebdb-search, which is the consumer of
ebdb-char-fold-table, is nowhere on the crash backtrace.

So I still think a backtrace from an unoptimized build, where I can
see the exact locus of the crash and ask for values of some variables,
would be the fastest path to finding the culprit.

Thanks.





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-08 14:56         ` Eli Zaretskii
@ 2020-11-08 18:27           ` Amin Bandali
  2020-11-08 18:54             ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Amin Bandali @ 2020-11-08 18:27 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Eric Abrahamsen, 44506


[-- Attachment #1.1: Type: text/plain, Size: 332 bytes --]

Eli Zaretskii writes:

[...]
>
> So I still think a backtrace from an unoptimized build, where I can
> see the exact locus of the crash and ask for values of some variables,
> would be the fastest path to finding the culprit.
>

Please find attached the result of `bt full' from an unoptimized build.

>
> Thanks.
>

Thanks again.


[-- Attachment #1.2: bt-full-debug.txt --]
[-- Type: text/plain, Size: 8107 bytes --]

#0  0x00005555556be41e in encode_terminal_code (src=0x7ffff7f59400, src_len=1, coding=0x55555615e330) at term.c:564
        cmp = 0x0
        gstring = XIL(0)
        i = 0
        src_end = 0x7ffff7f59430
        buf = 0x555556241720 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times>, "\377\377\377"
        nchars = 0
        nbytes = 0
        required = 5
        tlen = 0
        tbase = 0x0
        charset_list = XIL(0x7fffea1f684b)
#1  0x00005555556beef1 in tty_write_glyphs (f=0x555556113798, string=0x7ffff7f59400, len=94) at term.c:773
        face_id = 11
        conversion_buffer = 0x555556241b10 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times>
        coding = 0x55555615e330
        n = 1
        stringlen = 1
        tty = 0x55555615e5a0
#2  0x00005555556c8ca3 in write_glyphs (f=0x555556113798, string=0x7ffff7f58290, len=94) at terminal.c:163
#3  0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=24, updating_menu_p=false) at dispnew.c:5089
        obody = 0x0
        nbody = 0x7ffff7f58290
        op1 = 0x7ffff174d858 <_IO_new_file_sync+184>
        op2 = 0x55555611bd50
        np1 = 0x3d60
        nend = 0x7ffff7f5a000
        tem = 0
        osp = 2
        nsp = 1444253696
        begmatch = 21845
        endmatch = -17056
        olen = 0
        nlen = 94
        current_matrix = 0x55555611bfc0
        desired_matrix = 0x55555611bd50
        current_row = 0x555556125e20
        desired_row = 0x555556123410
        must_write_whole_line_p = true
        write_spaces_p = false
        colored_spaces_p = false
#4  0x000055555559f1fc in update_frame_1 (f=0x555556113798, force_p=true, inhibit_id_p=false, set_cursor_p=true, updating_menu_p=false) at dispnew.c:4787
        current_matrix = 0x55555611bfc0
        desired_matrix = 0x55555611bd50
        i = 24
        pause_p = 85
        preempt_count = 17
#5  0x000055555559b03c in update_frame (f=0x555556113798, force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3246
        paused_p = false
        root_window = 0x555556590430
#6  0x00005555555f72d6 in redisplay_internal () at xdisp.c:16023
        gcscrollbars = true
        f_redisplay_flag = true
        f = 0x555556113798
        w = 0x555556113a00
        sw = 0x555556113a00
        fr = 0x555556113798
        pending = false
        must_finish = true
        match_p = true
        tlbufpos = {
          charpos = 18373,
          bytepos = 18400
        }
        tlendpos = {
          charpos = 850,
          bytepos = 850
        }
        number_of_visible_frames = 1
        count = 3
        sf = 0x555556113798
        polling_stopped_here = true
        tail = XIL(0x555556118ce3)
        frame = XIL(0x55555611379d)
        hscroll_retries = 0
        garbaged_frame_retries = 0
        consider_all_windows_p = true
        update_miniwindow_p = true
#7  0x00005555555f4a20 in redisplay () at xdisp.c:15159
#8  0x0000555555738185 in read_char (commandflag=1, map=XIL(0x555556db2b63), prev_event=XIL(0), used_mouse_menu=0x7fffffffd56d, end_time=0x0) at keyboard.c:2497
        echo_current = false
        c = XIL(0)
        jmpcount = 140737488343824
        local_getcjmp = {{
            __jmpbuf = {0, 0, 0, 93825003909856, 140737488344000, 93824995092361, 140737488344144, 93825003909856},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {0, 140737488344032, 93824995092445, 140737121655267, 2478421848, 140737488344144, 93824995140529, 93825017785299, 3, 140737488344112, 0, 140737488344144, 938
25003909856, 0, 0, 140737488344144}
            }
          }}
        save_jump = {{
            __jmpbuf = {140737488344176, 0, 140737488344304, 93824994352582, 0, 48, 140737488344656, 35328},
            __mask_was_saved = 35328,
            __saved_mask = {
              __val = {93825003945184, 140737488344256, 93824994326029, 93825017785299, 93825003945184, 35328, 35328, 140737488344288, 0, 0, 93825003909856, 140737488344336, 938249
94182452, 93825004550040, 93825003909856, 0}
            }
          }}
        tem = XIL(0x555556744190)
        save = make_fixnum(23456248737754)
        previous_echo_area_message = XIL(0)
        also_record = XIL(0)
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x555556160fc0
#9  0x000055555574b8e8 in read_key_sequence (keybuf=0x7fffffffd750, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9546
        interrupted_kboard = 0x555556160fc0
        interrupted_frame = 0x555556113798
        key = XIL(0x47c5)
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = XIL(0x7fffffffd698)
        count = 3
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = XIL(0x555556db2b63)
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {
          parent = XIL(0x5555561178a3),
          map = XIL(0x5555561178a3),
          start = 0,
          end = 0
        }
        keytran = {
          parent = XIL(0x7fffea245b23),
          map = XIL(0x7fffea245b23),
          start = 0,
          end = 0
        }
        indec = {
          parent = XIL(0x555556117893),
          map = XIL(0x555556117893),
          start = 0,
          end = 0
        }
        shift_translated = false
        delayed_switch_frame = XIL(0)
        original_uppercase = XIL(0)
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0x555556744190
        fake_prefixed_keys = XIL(0)
        first_event = XIL(0)
        second_event = XIL(0)
#10 0x000055555573447d in command_loop_1 () at keyboard.c:1354
        cmd = XIL(0x92bca0)
        keybuf =
          {make_fixnum(13), make_fixnum(84), XIL(0x55555633fa53), XIL(0), XIL(0), XIL(0x5555560772e0), XIL(0x7fffffffd7b0), XIL(0), XIL(0), XIL(0x5555560772e0), XIL(0x7fffffffd7d0)
, XIL(0x55555580e789), XIL(0x7fffffffd7d0), XIL(0x5555560772e0), XIL(0), XIL(0), XIL(0x7fffffffd7f0), XIL(0x55555580e7dd), XIL(0), XIL(0x5633fa53), XIL(0x7fffffffd830), XIL(0x55555
5813d08), XIL(0x100000000), XIL(0x90), XIL(0), XIL(0x55555615c000), XIL(0x7fffffffd850), make_fixnum(0), XIL(0x7fffffffd860), XIL(0x555555813c11)}
        i = 1
        prev_modiff = 8325
        prev_buffer = 0x555556744190
        already_adjusted = false
#11 0x00005555558137cc in internal_condition_case (bfun=0x555555733fe3 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557335af <cmd_error>) at eval.c:1359
        val = XIL(0x555556118043)
        c = 0x55555615c000
#12 0x0000555555733bca in command_loop_2 (ignore=XIL(0)) at keyboard.c:1095
        val = make_fixnum(0)
#13 0x0000555555812c26 in internal_catch (tag=XIL(0xd740), func=0x555555733b9d <command_loop_2>, arg=XIL(0)) at eval.c:1120
        val = XIL(0x555555730588)
        c = 0x55555615ced0
#14 0x0000555555733b68 in command_loop () at keyboard.c:1074
#15 0x0000555555733096 in recursive_edit_1 () at keyboard.c:718
        count = 1
        val = XIL(0x7fffffffd990)
#16 0x000055555573328e in Frecursive_edit () at keyboard.c:790
        count = 0
        buffer = XIL(0)
#17 0x000055555572f02b in main (argc=3, argv=0x7fffffffdbb8) at emacs.c:2047
        stack_bottom_variable = 0x20
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        dump_mode = 0x0
        skip_args = 1
        temacs = 0x0
        attempt_load_pdump = true
        rlim = {
          rlim_cur = 10022912,
          rlim_max = 18446744073709551615
        }
        lc_all = 0x0
        sockfd = -1
        module_assertions = false

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-08 18:27           ` Amin Bandali
@ 2020-11-08 18:54             ` Eli Zaretskii
  2020-11-08 19:20               ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-08 18:54 UTC (permalink / raw)
  To: Amin Bandali; +Cc: eric, 44506

> From: Amin Bandali <bandali@gnu.org>
> Cc: Eric Abrahamsen <eric@ericabrahamsen.net>,  44506@debbugs.gnu.org
> Date: Sun, 08 Nov 2020 13:27:04 -0500
> 
> Please find attached the result of `bt full' from an unoptimized build.

Thanks.

> #0  0x00005555556be41e in encode_terminal_code (src=0x7ffff7f59400, src_len=1, coding=0x55555615e330) at term.c:564
>         cmp = 0x0
>         gstring = XIL(0)
>         i = 0
>         src_end = 0x7ffff7f59430
>         buf = 0x555556241720 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times>, "\377\377\377"
>         nchars = 0
>         nbytes = 0
>         required = 5
>         tlen = 0
>         tbase = 0x0
>         charset_list = XIL(0x7fffea1f684b)
> #1  0x00005555556beef1 in tty_write_glyphs (f=0x555556113798, string=0x7ffff7f59400, len=94) at term.c:773
>         face_id = 11
>         conversion_buffer = 0x555556241b10 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times>
>         coding = 0x55555615e330
>         n = 1
>         stringlen = 1
>         tty = 0x55555615e5a0
> #2  0x00005555556c8ca3 in write_glyphs (f=0x555556113798, string=0x7ffff7f58290, len=94) at terminal.c:163
> #3  0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=24, updating_menu_p=false) at dispnew.c:5089

Please show the output of these GDB commands:

  (gdb) source /path/to/emacs/src/.gdbinit
  (gdb) frame 0
  (gdb) print *src
  (gdb) frame 3
  (gdb) pgrowx desired_row

(replace "/path/to/emacs/src" with the actual directory name of the
Emacs's src directory).





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-08 18:54             ` Eli Zaretskii
@ 2020-11-08 19:20               ` Eli Zaretskii
  2020-11-08 20:39                 ` Amin Bandali
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-08 19:20 UTC (permalink / raw)
  To: bandali; +Cc: eric, 44506

> Date: Sun, 08 Nov 2020 20:54:48 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org
> 
> Please show the output of these GDB commands:
> 
>   (gdb) source /path/to/emacs/src/.gdbinit
>   (gdb) frame 0
>   (gdb) print *src
>   (gdb) frame 3
>   (gdb) pgrowx desired_row

And one more:

  (gdb) print composition_table_size





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-08 19:20               ` Eli Zaretskii
@ 2020-11-08 20:39                 ` Amin Bandali
  2020-11-09  3:31                   ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Amin Bandali @ 2020-11-08 20:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eric, 44506


[-- Attachment #1.1: Type: text/plain, Size: 478 bytes --]

Eli Zaretskii writes:

>> Date: Sun, 08 Nov 2020 20:54:48 +0200
>> From: Eli Zaretskii <eliz@gnu.org>
>> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org
>> 
>> Please show the output of these GDB commands:
>> 
>>   (gdb) source /path/to/emacs/src/.gdbinit
>>   (gdb) frame 0
>>   (gdb) print *src
>>   (gdb) frame 3
>>   (gdb) pgrowx desired_row
>
> And one more:
>
>   (gdb) print composition_table_size
>

Please find the outputs attached.

Thanks.


[-- Attachment #1.2: requested-gdb-commands.txt --]
[-- Type: text/plain, Size: 20447 bytes --]

  (gdb) source /home/bandali/s/emacs/src/.gdbinit

SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
Redefine command "xgetptr"? (y or n) [answered Y; input not from terminal]
Redefine command "xgetint"? (y or n) [answered Y; input not from terminal]
Redefine command "xgettype"? (y or n) [answered Y; input not from terminal]
Redefine command "xgetsym"? (y or n) [answered Y; input not from terminal]
Redefine command "xsymname"? (y or n) [answered Y; input not from terminal]
Redefine command "pr"? (y or n) [answered Y; input not from terminal]
Redefine command "pp"? (y or n) [answered Y; input not from terminal]
Redefine command "pv"? (y or n) [answered Y; input not from terminal]
Redefine command "xfmt"? (y or n) [answered Y; input not from terminal]
Redefine command "ppt"? (y or n) [answered Y; input not from terminal]
Redefine command "pitmethod"? (y or n) [answered Y; input not from terminal]
Redefine command "pitx"? (y or n) [answered Y; input not from terminal]
Redefine command "pit"? (y or n) [answered Y; input not from terminal]
Redefine command "prowx"? (y or n) [answered Y; input not from terminal]
Redefine command "prow"? (y or n) [answered Y; input not from terminal]
Redefine command "pcursorx"? (y or n) [answered Y; input not from terminal]
Redefine command "pcursor"? (y or n) [answered Y; input not from terminal]
Redefine command "pwinx"? (y or n) [answered Y; input not from terminal]
Redefine command "pwin"? (y or n) [answered Y; input not from terminal]
Redefine command "pbiditype"? (y or n) [answered Y; input not from terminal]
Redefine command "pgx"? (y or n) [answered Y; input not from terminal]
Redefine command "pg"? (y or n) [answered Y; input not from terminal]
Redefine command "pgi"? (y or n) [answered Y; input not from terminal]
Redefine command "pgn"? (y or n) [answered Y; input not from terminal]
Redefine command "pgrowx"? (y or n) [answered Y; input not from terminal]
Redefine command "pgrow"? (y or n) [answered Y; input not from terminal]
Redefine command "pgrowit"? (y or n) [answered Y; input not from terminal]
Redefine command "prowlims"? (y or n) [answered Y; input not from terminal]
Redefine command "pmtxrows"? (y or n) [answered Y; input not from terminal]
Redefine command "xtype"? (y or n) [answered Y; input not from terminal]
Redefine command "pvectype"? (y or n) [answered Y; input not from terminal]
Redefine command "xvectype"? (y or n) [answered Y; input not from terminal]
Redefine command "pvecsize"? (y or n) [answered Y; input not from terminal]
Redefine command "xvecsize"? (y or n) [answered Y; input not from terminal]
Redefine command "xint"? (y or n) [answered Y; input not from terminal]
Redefine command "xptr"? (y or n) [answered Y; input not from terminal]
Redefine command "xmarker"? (y or n) [answered Y; input not from terminal]
Redefine command "xoverlay"? (y or n) [answered Y; input not from terminal]
Redefine command "xsymbol"? (y or n) [answered Y; input not from terminal]
Redefine command "xstring"? (y or n) [answered Y; input not from terminal]
Redefine command "xvector"? (y or n) [answered Y; input not from terminal]
Redefine command "xprocess"? (y or n) [answered Y; input not from terminal]
Redefine command "xframe"? (y or n) [answered Y; input not from terminal]
Redefine command "xcompiled"? (y or n) [answered Y; input not from terminal]
Redefine command "xwindow"? (y or n) [answered Y; input not from terminal]
Redefine command "xwinconfig"? (y or n) [answered Y; input not from terminal]
Redefine command "xsubr"? (y or n) [answered Y; input not from terminal]
Redefine command "xchartable"? (y or n) [answered Y; input not from terminal]
Redefine command "xsubchartable"? (y or n) [answered Y; input not from terminal]
Redefine command "xboolvector"? (y or n) [answered Y; input not from terminal]
Redefine command "xbuffer"? (y or n) [answered Y; input not from terminal]
Redefine command "xhashtable"? (y or n) [answered Y; input not from terminal]
Redefine command "xcons"? (y or n) [answered Y; input not from terminal]
Redefine command "nextcons"? (y or n) [answered Y; input not from terminal]
Redefine command "xcar"? (y or n) [answered Y; input not from terminal]
Redefine command "xcdr"? (y or n) [answered Y; input not from terminal]
Redefine command "xlist"? (y or n) [answered Y; input not from terminal]
Redefine command "xfloat"? (y or n) [answered Y; input not from terminal]
Redefine command "xscrollbar"? (y or n) [answered Y; input not from terminal]
Redefine command "xpr"? (y or n) [answered Y; input not from terminal]
Redefine command "xprintstr"? (y or n) [answered Y; input not from terminal]
Redefine command "xprintsym"? (y or n) [answered Y; input not from terminal]
Redefine command "xcoding"? (y or n) [answered Y; input not from terminal]
Redefine command "xcharset"? (y or n) [answered Y; input not from terminal]
Redefine command "xfontset"? (y or n) [answered Y; input not from terminal]
Redefine command "xfont"? (y or n) [answered Y; input not from terminal]
Redefine command "xbacktrace"? (y or n) [answered Y; input not from terminal]
Redefine command "xprintbytestr"? (y or n) [answered Y; input not from terminal]
Redefine command "xwhichsymbols"? (y or n) [answered Y; input not from terminal]
Redefine command "hookpost-backtrace"? (y or n) [answered Y; input not from terminal]
Redefine command "ff"? (y or n) [answered Y; input not from terminal]
DISPLAY = :0
TERM = xterm
Breakpoint 3 at 0x55555572c75b: file emacs.c, line 377.
Breakpoint 4 at 0x5555556f821e: file xterm.c, line 10151.


  (gdb) frame 0

#0  0x00005555556be4fb in encode_terminal_code (src=0x7ffff7f11670, src_len=1, coding=0x55555615e330) at term.c:564


  (gdb) print *src

$1 = {
  charpos = 490,
  object = XIL(0x5555567924e5),
  pixel_width = 1,
  ascent = 0,
  descent = 0,
  voffset = 0,
  type = 1,
  multibyte_p = true,
  left_box_line_p = false,
  right_box_line_p = false,
  overlaps_vertically_p = false,
  padding_p = false,
  glyph_not_available_p = false,
  avoid_cursor_p = false,
  resolved_level = 1,
  bidi_type = 2,
  face_id = 11,
  font_type = 0,
  slice = {
    img = {
      x = 0,
      y = 0,
      width = 0,
      height = 0
    },
    cmp = {
      from = 0,
      to = 0
    },
    glyphless = {
      upper_xoff = 0,
      upper_yoff = 0,
      lower_xoff = 0,
      lower_yoff = 0
    }
  },
  u = {
    ch = 124,
    cmp = {
      automatic = false,
      id = 62
    },
    img_id = 124,
    stretch = {
      height = 124,
      ascent = 0
    },
    glyphless = {
      method = 0,
      for_no_font = true,
      len = 15,
      ch = 0
    },
    val = 124
  }
}


  (gdb) frame 3

#3  0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=29, updating_menu_p=false) at dispnew.c:5089


  (gdb) pgrowx desired_row

TEXT: 252 glyphs
  0    0: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  1    1: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  2    2: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  3    3: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  4    4: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  5    5: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  6    6: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  7    7: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  8    8: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
  9    9: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 10   10: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 11   11: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 12   12: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 13   13: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 14   14: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 15   15: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 16   16: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 17   17: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 18   18: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 19   19: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 20   20: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 21   21: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 22   22: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 23   23: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 24   24: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 25   25: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 26   26: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 27   27: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 28   28: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 29   29: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 30   30: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 31   31: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 32   32: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 33   33: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 34   34: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 35   35: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 36   36: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 37   37: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 38   38: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 39   39: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 40   40: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 41   41: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 42   42: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 43   43: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 44   44: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 45   45: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 46   46: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 47   47: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 48   48: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 49   49: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 50   50: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 51   51: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 52   52: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 53   53: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 54   54: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 55   55: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 56   56: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 57   57: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 58   58: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 59   59: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 60   60: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 61   61: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 62   62: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 63   63: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 64   64: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 65   65: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 66   66: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 67   67: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 68   68: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 69   69: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 70   70: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 71   71: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 72   72: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 73   73: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 74   74: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 75   75: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 76   76: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 77   77: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 78   78: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 79   79: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 80   80: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 81   81: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 82   82: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 83   83: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 84   84: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 85   85: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 86   86: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 87   87: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 88   88: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 89   89: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 90   90: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 91   91: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 92   92: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 93   93: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 94   94: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 95   95: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 96   96: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 97   97: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 98   98: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
 99   99: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
100  100: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
101  101: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
102  102: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
103  103: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
104  104: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
105  105: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
106  106: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
107  107: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
108  108: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
109  109: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
110  110: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
111  111: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
112  112: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
113  113: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
114  114: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
115  115: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
116  116: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
117  117: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
118  118: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
119  119: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
120  120: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
121  121: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
122  122: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
123  123: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
124  124: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
125  125: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
126  126: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
127  127: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
128  128: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
129  129: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
130  130: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
131  131: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
132  132: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
133  133: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
134  134: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB
135  135: CHAR[J] pos=502 blev=2,btyp=L w=1 a+d=0+0 MB
136  136: CHAR[o] pos=503 blev=2,btyp=L w=1 a+d=0+0 MB
137  137: CHAR[h] pos=504 blev=2,btyp=L w=1 a+d=0+0 MB
138  138: CHAR[n] pos=505 blev=2,btyp=L w=1 a+d=0+0 MB
139  139: CHAR[ ] pos=501 blev=1,btyp=R w=1 a+d=0+0 MB
140  140: COMP[1 (5..5)] pos=500 w=1 a+d=0+0 MB
141  141: COMP[1 (4..4)] pos=499 w=1 a+d=0+0 MB
142  142: COMP[1 (3..3)] pos=498 w=1 a+d=0+0 MB
143  143: COMP[1 (2..2)] pos=497 w=1 a+d=0+0 MB
144  144: COMP[1 (1..1)] pos=496 w=1 a+d=0+0 MB
145  145: COMP[1 (0..0)] pos=495 w=1 a+d=0+0 MB
146  146: CHAR[ ] pos=494 blev=1,btyp=R w=1 a+d=0+0 MB
147  147: COMP[0 (3..3)] pos=493 w=1 a+d=0+0 MB
148  148: COMP[0 (2..2)] pos=492 w=1 a+d=0+0 MB
149  149: COMP[0 (1..1)] pos=491 w=1 a+d=0+0 MB
150  150: COMP[62 (0..0)] pos=490 w=1 a+d=0+0 face=11 MB
151  151: CHAR[ ] pos=-1 blev=0,btyp=B w=1 a+d=0+0 MB
152  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
153  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
154  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
155  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
156  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
157  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
158  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
159  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
160  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
161  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
162  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
163  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
164  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
165  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
166  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
167  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
168  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
169  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
170  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
171  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
172  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
173  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
174  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
175  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
176  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
177  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
178  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
179  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
180  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
181  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
182  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
183  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
184  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
185  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
186  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
187  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
188  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
189  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
190  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
191  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
192  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
193  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
194  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
195  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
196  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
197  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
198  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
199  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
200  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
201  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
202  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
203  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
204  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
205  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
206  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
207  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
208  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
209  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
210  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
211  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
212  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
213  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
214  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
215  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
216  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
217  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
218  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
219  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
220  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
221  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
222  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
223  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
224  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
225  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
226  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
227  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
228  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
229  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
230  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
231  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
232  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
233  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
234  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
235  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
236  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
237  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
238  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
239  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
240  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
241  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
242  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
243  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
244  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
245  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
246  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
247  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
248  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
249  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
250  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0
251  152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0


  (gdb) print composition_table_size

$2 = 0


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-08 20:39                 ` Amin Bandali
@ 2020-11-09  3:31                   ` Eli Zaretskii
  2020-11-09  4:43                     ` Amin Bandali
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-09  3:31 UTC (permalink / raw)
  To: Amin Bandali; +Cc: eric, 44506

> From: Amin Bandali <bandali@gnu.org>
> Cc: eric@ericabrahamsen.net,  44506@debbugs.gnu.org
> Date: Sun, 08 Nov 2020 15:39:56 -0500
> 
> >>   (gdb) source /path/to/emacs/src/.gdbinit
> >>   (gdb) frame 0
> >>   (gdb) print *src
> >>   (gdb) frame 3
> >>   (gdb) pgrowx desired_row
> >
> > And one more:
> >
> >   (gdb) print composition_table_size
> >
> 
> Please find the outputs attached.

Thanks.  One more thing, and then I need to think how this could
happen:

  (gdb) frame 3
  (gdb) print (desired_row->glyphs[1])[149]





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-09  3:31                   ` Eli Zaretskii
@ 2020-11-09  4:43                     ` Amin Bandali
  2020-11-09  7:04                       ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Amin Bandali @ 2020-11-09  4:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eric, 44506

[-- Attachment #1: Type: text/plain, Size: 1288 bytes --]

Eli Zaretskii writes:

[...]
>
> Thanks.  One more thing, and then I need to think how this could
> happen:
>
>   (gdb) frame 3

#3  0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=24, updating_menu_p=false) at dispnew.c:5089

>   
>   (gdb) print (desired_row->glyphs[1])[149]
>

$1 = {
  charpos = -1,
  object = XIL(0),
  pixel_width = 0,
  ascent = 0,
  descent = 0,
  voffset = 0,
  type = 0,
  multibyte_p = false,
  left_box_line_p = false,
  right_box_line_p = false,
  overlaps_vertically_p = false,
  padding_p = false,
  glyph_not_available_p = false,
  avoid_cursor_p = false,
  resolved_level = 0,
  bidi_type = 0,
  face_id = 0,
  font_type = 0,
  slice = {
    img = {
      x = 0,
      y = 0,
      width = 0,
      height = 0
    },
    cmp = {
      from = 0,
      to = 0
    },
    glyphless = {
      upper_xoff = 0,
      upper_yoff = 0,
      lower_xoff = 0,
      lower_yoff = 0
    }
  },
  u = {
    ch = 32,
    cmp = {
      automatic = false,
      id = 16
    },
    img_id = 32,
    stretch = {
      height = 32,
      ascent = 0
    },
    glyphless = {
      method = 0,
      for_no_font = false,
      len = 4,
      ch = 0
    },
    val = 32
  }
}


Thanks.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-09  4:43                     ` Amin Bandali
@ 2020-11-09  7:04                       ` Eli Zaretskii
  2020-11-09 15:57                         ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-09  7:04 UTC (permalink / raw)
  To: Amin Bandali; +Cc: eric, 44506

On November 9, 2020 6:43:59 AM GMT+02:00, Amin Bandali <bandali@gnu.org> wrote:
> Eli Zaretskii writes:
> 
> [...]
> >
> > Thanks.  One more thing, and then I need to think how this could
> > happen:
> >
> >   (gdb) frame 3
> 
> #3  0x00005555555a000c in update_frame_line (f=0x555556113798,
> vpos=24, updating_menu_p=false) at dispnew.c:5089
> 
> >   
> >   (gdb) print (desired_row->glyphs[1])[149]
> >
> 
> $1 = {
>   charpos = -1,
>   object = XIL(0),
>   pixel_width = 0,
>   ascent = 0,
>   descent = 0,
>   voffset = 0,
>   type = 0,
>   multibyte_p = false,
>   left_box_line_p = false,
>   right_box_line_p = false,
>   overlaps_vertically_p = false,
>   padding_p = false,
>   glyph_not_available_p = false,
>   avoid_cursor_p = false,
>   resolved_level = 0,
>   bidi_type = 0,
>   face_id = 0,
>   font_type = 0,
>   slice = {
>     img = {
>       x = 0,
>       y = 0,
>       width = 0,
>       height = 0
>     },
>     cmp = {
>       from = 0,
>       to = 0
>     },
>     glyphless = {
>       upper_xoff = 0,
>       upper_yoff = 0,
>       lower_xoff = 0,
>       lower_yoff = 0
>     }
>   },
>   u = {
>     ch = 32,
>     cmp = {
>       automatic = false,
>       id = 16
>     },
>     img_id = 32,
>     stretch = {
>       height = 32,
>       ascent = 0
>     },
>     glyphless = {
>       method = 0,
>       for_no_font = false,
>       len = 4,
>       ch = 0
>     },
>     val = 32
>   }
> }
> 
> 
> Thanks.

Thanks, but this seems to be from a different GDB session?  The vpos is 24 instead of 29  and the data of the glyph structure clearly differs from what pgrowx displayed in your previous report?  I need consistent and coherent data from the same crash.

Or maybe you can come up with a reproduction recipe ?  That'd really make the debugging much more efficient...





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-09  7:04                       ` Eli Zaretskii
@ 2020-11-09 15:57                         ` Eli Zaretskii
  2020-11-10  5:42                           ` Amin Bandali
  2020-11-10  5:48                           ` Eric Abrahamsen
  0 siblings, 2 replies; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-09 15:57 UTC (permalink / raw)
  To: bandali; +Cc: eric, 44506

> Date: Mon, 09 Nov 2020 09:04:58 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org
> 
> Thanks, but this seems to be from a different GDB session?  The vpos is 24 instead of 29  and the data of the glyph structure clearly differs from what pgrowx displayed in your previous report?  I need consistent and coherent data from the same crash.
> 
> Or maybe you can come up with a reproduction recipe ?  That'd really make the debugging much more efficient...

Alternatively, if you can give me an ssh login on that system, and set
up an account for me so that I could reproduce the problem, I could
debug it remotely on your system.





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-09 15:57                         ` Eli Zaretskii
@ 2020-11-10  5:42                           ` Amin Bandali
  2020-11-10  5:48                           ` Eric Abrahamsen
  1 sibling, 0 replies; 22+ messages in thread
From: Amin Bandali @ 2020-11-10  5:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eric, 44506

[-- Attachment #1: Type: text/plain, Size: 1241 bytes --]

Eli Zaretskii writes:

>> Date: Mon, 09 Nov 2020 09:04:58 +0200
>> From: Eli Zaretskii <eliz@gnu.org>
>> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org
>> 
>> Thanks, but this seems to be from a different GDB session?  The vpos
>> is 24 instead of 29 and the data of the glyph structure clearly
>> differs from what pgrowx displayed in your previous report?  I need
>> consistent and coherent data from the same crash.
>> 
>> Or maybe you can come up with a reproduction recipe ?  That'd really
>> make the debugging much more efficient...
>
> Alternatively, if you can give me an ssh login on that system, and set
> up an account for me so that I could reproduce the problem, I could
> debug it remotely on your system.
>

Sure, I think that would indeed be easiest.  Can you please email me
off-list a copy of your ssh public key?  Alternatively, I could try
grabbing the one from fencepost; whichever way you prefer.

I did a debug build of Emacs on one of my servers, and will add a
minimal Gnus configuration to connect to a temporary account on my mail
server, where you would find a copy of the message.  I will send you
more details about it off-list once I've finished setting it up.

Thanks,
amin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-09 15:57                         ` Eli Zaretskii
  2020-11-10  5:42                           ` Amin Bandali
@ 2020-11-10  5:48                           ` Eric Abrahamsen
  2020-11-10 15:31                             ` Eli Zaretskii
  1 sibling, 1 reply; 22+ messages in thread
From: Eric Abrahamsen @ 2020-11-10  5:48 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: bandali, 44506

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Mon, 09 Nov 2020 09:04:58 +0200
>> From: Eli Zaretskii <eliz@gnu.org>
>> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org
>> 
>> Thanks, but this seems to be from a different GDB session? The vpos
>> is 24 instead of 29 and the data of the glyph structure clearly
>> differs from what pgrowx displayed in your previous report? I need
>> consistent and coherent data from the same crash.
>> 
>> Or maybe you can come up with a reproduction recipe ? That'd really
>> make the debugging much more efficient...
>
> Alternatively, if you can give me an ssh login on that system, and set
> up an account for me so that I could reproduce the problem, I could
> debug it remotely on your system.

I've tried today to come up with a recipe that doesn't involve
installing EBDB, but so far have failed. I tried edebugging the various
message-displaying functions to see exactly what was causing the bug,
but got no segfault so long as the functions were instrumented.

Basically EBDB attaches a hook to `gnus-article-prepare-hook', which
uses `gnus-fetch-original-field' to pull some data out of the article,
looks for records that match that data, and displays the records.

With "emacs -Q" there are no records to search or display, so I assumed
it must be the header-access functions causing the problem. But I wrote
a function that does most of what EBDB does, without actually using
EBDB, and it caused no segfault, so I don't know what's going on there,
sorry.

Eric





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-10  5:48                           ` Eric Abrahamsen
@ 2020-11-10 15:31                             ` Eli Zaretskii
  2020-11-13  5:20                               ` Amin Bandali
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-10 15:31 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: bandali, 44506

> From: Eric Abrahamsen <eric@ericabrahamsen.net>
> Cc: bandali@gnu.org,  44506@debbugs.gnu.org
> Date: Mon, 09 Nov 2020 21:48:10 -0800
> 
> I've tried today to come up with a recipe that doesn't involve
> installing EBDB, but so far have failed. I tried edebugging the various
> message-displaying functions to see exactly what was causing the bug,
> but got no segfault so long as the functions were instrumented.
> 
> Basically EBDB attaches a hook to `gnus-article-prepare-hook', which
> uses `gnus-fetch-original-field' to pull some data out of the article,
> looks for records that match that data, and displays the records.
> 
> With "emacs -Q" there are no records to search or display, so I assumed
> it must be the header-access functions causing the problem. But I wrote
> a function that does most of what EBDB does, without actually using
> EBDB, and it caused no segfault, so I don't know what's going on there,
> sorry.

Thank you for your efforts.





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-10 15:31                             ` Eli Zaretskii
@ 2020-11-13  5:20                               ` Amin Bandali
  2020-11-14 12:14                                 ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Amin Bandali @ 2020-11-13  5:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Eric Abrahamsen, 44506

[-- Attachment #1: Type: text/plain, Size: 1280 bytes --]

Eli Zaretskii writes:

>> From: Eric Abrahamsen <eric@ericabrahamsen.net>
>> Cc: bandali@gnu.org,  44506@debbugs.gnu.org
>> Date: Mon, 09 Nov 2020 21:48:10 -0800
>> 
>> I've tried today to come up with a recipe that doesn't involve
>> installing EBDB, but so far have failed. I tried edebugging the various
>> message-displaying functions to see exactly what was causing the bug,
>> but got no segfault so long as the functions were instrumented.
>> 
>> Basically EBDB attaches a hook to `gnus-article-prepare-hook', which
>> uses `gnus-fetch-original-field' to pull some data out of the article,
>> looks for records that match that data, and displays the records.
>> 
>> With "emacs -Q" there are no records to search or display, so I assumed
>> it must be the header-access functions causing the problem. But I wrote
>> a function that does most of what EBDB does, without actually using
>> EBDB, and it caused no segfault, so I don't know what's going on there,
>> sorry.
>
> Thank you for your efforts.
>

I, too, would like to say thank you, both to Eli and Eric, for your
efforts and looking into this.  I just sent information to Eli off-list
for accessing a test account I set up on a server of mine for debugging
this issue.

Thanks again.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-13  5:20                               ` Amin Bandali
@ 2020-11-14 12:14                                 ` Eli Zaretskii
  2020-11-14 17:19                                   ` Amin Bandali
  2022-04-22 13:38                                   ` Lars Ingebrigtsen
  0 siblings, 2 replies; 22+ messages in thread
From: Eli Zaretskii @ 2020-11-14 12:14 UTC (permalink / raw)
  To: Amin Bandali; +Cc: eric, 44506

> From: Amin Bandali <bandali@gnu.org>
> Cc: Eric Abrahamsen <eric@ericabrahamsen.net>,  44506@debbugs.gnu.org
> Date: Fri, 13 Nov 2020 00:20:16 -0500
> 
> >> With "emacs -Q" there are no records to search or display, so I assumed
> >> it must be the header-access functions causing the problem. But I wrote
> >> a function that does most of what EBDB does, without actually using
> >> EBDB, and it caused no segfault, so I don't know what's going on there,
> >> sorry.
> >
> > Thank you for your efforts.
> 
> I, too, would like to say thank you, both to Eli and Eric, for your
> efforts and looking into this.  I just sent information to Eli off-list
> for accessing a test account I set up on a server of mine for debugging
> this issue.

FTR, it is very easy to reproduce the problem, no need for Gnus or
EBDB.  Here's the recipe:

  emacs -Q -nw
  C-x 3
  C-x b foo

Now type some R2L character.  For example, turn on the Arabic input
method and press 'a'.  You will see that the character does not appear
on display.  Basically, on a TTY frame, the first character of a R2L
line in a window that is not the rightmost one is not shown: it is
overwritten by the vertical-border character '|' we display between
the two adjacent windows.  This doesn't crash as long as the
overwritten glyph is of a character, but in the case in point that
glyph came from a composition, and then all hell breaks loose...

This is a regression introduced in Emacs 27.1, by the code that
supports display-fill-column-indicator-mode.  I have now fixed it on
the emacs-27 branch.

Many thanks to Amin for giving me access to a system where this could
be easily reproduced.





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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-14 12:14                                 ` Eli Zaretskii
@ 2020-11-14 17:19                                   ` Amin Bandali
  2022-04-22 13:38                                   ` Lars Ingebrigtsen
  1 sibling, 0 replies; 22+ messages in thread
From: Amin Bandali @ 2020-11-14 17:19 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eric, 44506

[-- Attachment #1: Type: text/plain, Size: 1264 bytes --]

Eli Zaretskii writes:

[...]
>
> FTR, it is very easy to reproduce the problem, no need for Gnus or
> EBDB.  Here's the recipe:
>
>   emacs -Q -nw
>   C-x 3
>   C-x b foo
>
> Now type some R2L character.  For example, turn on the Arabic input
> method and press 'a'.  You will see that the character does not appear
> on display.  Basically, on a TTY frame, the first character of a R2L
> line in a window that is not the rightmost one is not shown: it is
> overwritten by the vertical-border character '|' we display between
> the two adjacent windows.  This doesn't crash as long as the
> overwritten glyph is of a character, but in the case in point that
> glyph came from a composition, and then all hell breaks loose...
>
> This is a regression introduced in Emacs 27.1, by the code that
> supports display-fill-column-indicator-mode.  I have now fixed it on
> the emacs-27 branch.

That is one subtle bug!!

> Many thanks to Amin for giving me access to a system where this could
> be easily reproduced.

You're most welcome, and many thanks to you Eli for looking into this,
debugging, and fixing it.  Also many thanks to Eric for looking into the
EBDB side of things and reproducing the issue.  Thank you both very much
for your help with this.

Best
amin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

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

* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty
  2020-11-14 12:14                                 ` Eli Zaretskii
  2020-11-14 17:19                                   ` Amin Bandali
@ 2022-04-22 13:38                                   ` Lars Ingebrigtsen
  1 sibling, 0 replies; 22+ messages in thread
From: Lars Ingebrigtsen @ 2022-04-22 13:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eric, Amin Bandali, 44506

Eli Zaretskii <eliz@gnu.org> writes:

> This is a regression introduced in Emacs 27.1, by the code that
> supports display-fill-column-indicator-mode.  I have now fixed it on
> the emacs-27 branch.

Reading this thread, it looks like the bug was fixed at the time, but
the bug report was left open, so I'm closing it now.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

end of thread, other threads:[~2022-04-22 13:38 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-07 18:39 bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty Amin Bandali
2020-11-07 18:58 ` Eli Zaretskii
2020-11-07 20:03   ` Amin Bandali
2020-11-07 20:29     ` Eli Zaretskii
2020-11-08  4:03       ` Eric Abrahamsen
2020-11-08 14:56         ` Eli Zaretskii
2020-11-08 18:27           ` Amin Bandali
2020-11-08 18:54             ` Eli Zaretskii
2020-11-08 19:20               ` Eli Zaretskii
2020-11-08 20:39                 ` Amin Bandali
2020-11-09  3:31                   ` Eli Zaretskii
2020-11-09  4:43                     ` Amin Bandali
2020-11-09  7:04                       ` Eli Zaretskii
2020-11-09 15:57                         ` Eli Zaretskii
2020-11-10  5:42                           ` Amin Bandali
2020-11-10  5:48                           ` Eric Abrahamsen
2020-11-10 15:31                             ` Eli Zaretskii
2020-11-13  5:20                               ` Amin Bandali
2020-11-14 12:14                                 ` Eli Zaretskii
2020-11-14 17:19                                   ` Amin Bandali
2022-04-22 13:38                                   ` Lars Ingebrigtsen
2020-11-08  4:05       ` Eric Abrahamsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).