unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#33885: 27.0.50; PUA character makes emacs crash
@ 2018-12-27  8:54 Werner LEMBERG
  2018-12-27 10:36 ` Eli Zaretskii
  2022-02-12  8:42 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 15+ messages in thread
From: Werner LEMBERG @ 2018-12-27  8:54 UTC (permalink / raw)
  To: 33885

[-- Attachment #1: Type: Text/Plain, Size: 4744 bytes --]


Loading the attached file `bug.el' (containing the single PUA
character U+E6A3) with

  emacs -Q bug.el

causes a crash:

  xdisp.c:28955:
    Emacs fatal error:
      assertion failed:
        it->ascent >= 0 && it->descent >= 0

I've also attached the output of `bt full'.


    Werner


In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.20.10)
 of 2018-12-27 built on linux
Repository revision: 806ae9fc48f59751a8fce543be40ffe473f548bf
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11803000
System Description: openSUSE Leap 42.3

Recent messages:
Loading /usr/local/share/emacs/site-lisp/cjk-enc.el (source)...done
Loading /usr/local/share/emacs/site-lisp/cjktilde.el (source)...done
Loading /usr/local/share/emacs/site-lisp/quail-reverse.el (source)...done
Loading mew...done
Loading calendar...done
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list...
Quit
Type C-x 1 to remove help window.  

Configured using:
 'configure --with-x-toolkit=gtk --enable-checking=yes,glyphs
 --enable-check-lisp-object-type 'CFLAGS=-O0 -g3 -gdwarf-4''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB
NOTIFY INOTIFY GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LIBSYSTEMD JSON LCMS2

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

Major mode: Fundamental

Minor modes in effect:
  TeX-PDF-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/usr/local/share/emacs/site-lisp/thai-word hides /usr/local/share/emacs/27.0.50/lisp/language/thai-word

Features:
(shadow pp mew-varsx mew-unix emacsbug message rmc puny dired
dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg
gnus-util rmail rmail-loaddefs time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mail-utils apropos elec-pair edmacro kmacro
rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match
rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap
nxml-util nxml-enc xmltok sgml-mode dom hideshow cal-menu calendar
cal-loaddefs mew-auth mew-config mew-imap2 mew-imap mew-nntp2 mew-nntp
mew-pop mew-smtp mew-ssl mew-ssh mew-net mew-highlight mew-sort
mew-fib mew-ext mew-refile mew-demo mew-attach mew-draft mew-message
mew-thread mew-virtual mew-summary4 mew-summary3 mew-summary2
mew-summary mew-search mew-pick mew-passwd mew-scan mew-syntax mew-bq
mew-smime mew-pgp mew-header mew-exec mew-mark mew-mime mew-edit
mew-decode mew-encode mew-cache mew-minibuf mew-complete mew-addrbook
mew-local mew-vars3 mew-vars2 mew-vars mew-env mew-mule3 mew-mule
mew-gemacs mew-key mew-func mew-blvs mew-const mew tex dbus xml crm
advice auto-loads tex-site quail help-mode cjktilde mm-util mail-prsvr
disp-table finder-inf package easymenu epg-config url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars seq byte-opt gv bytecomp byte-compile
cconv cl-loaddefs cl-lib mule-util 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 menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 minibuffer cl-preloaded
nadvice loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 202452 4316)
 (symbols 48 30527 61)
 (strings 32 71159 885)
 (string-bytes 1 1786347)
 (vectors 16 27728)
 (vector-slots 8 678829 13622)
 (floats 8 80 76)
 (intervals 56 645 221)
 (buffers 992 13)
 (heap 1024 50769 2024))

[-- Attachment #2: bug.el --]
[-- Type: Text/Plain, Size: 5 bytes --][-- Attachment #3: gdb.txt --]
[-- Type: Text/Plain, Size: 109015 bytes --]

#0  0x00007ffff0d01adb in raise (sig=6) at ../sysdeps/unix/sysv/linux/pt-raise.c:36
        resultvar = 0
        pid = <optimized out>
#1  0x0000000000591d17 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:403
#2  0x0000000000629939 in die
    (msg=0x7439b8 "it->ascent >= 0 && it->descent >= 0", file=0x73d53d "xdisp.c", line=28955) at alloc.c:7111
#3  0x00000000004a3f84 in x_produce_glyphs (it=0x7fffffff7d20) at xdisp.c:28955
        extra_line_spacing = 0
#4  0x0000000000487e99 in display_line (it=0x7fffffff7d20, cursor_vpos=0) at xdisp.c:21660
        n_glyphs_before = 0
        hpos_before = 32767
        x_before = -33504
        phys_ascent = 0
        phys_descent = 0
        x = 0
        nglyphs = 10462928
        descent = 0
        ascent = 0
        overwide_wrap_prefix = false
        row = 0x1bf5800
        overlay_arrow_string = {
          i = 0xc600
        }
        wrap_it = {
          window = {
            i = 0x1204580
          }, 
          w = 0xc600, 
          f = 0x7fffffff68a0, 
          method = 6629870, 
          stop_charpos = 4294967298, 
          prev_stop = 140737488316608, 
          base_level_stop = 0, 
          end_charpos = 5819181, 
          s = 0x1204585 "", 
          string_nchars = 15122368, 
          redisplay_end_trigger_charpos = 0, 
          multibyte_p = false, 
          header_line_p = false, 
          string_from_display_prop_p = false, 
          string_from_prefix_prop_p = false, 
          from_disp_prop_p = false, 
          ellipsis_p = false, 
          avoid_cursor_p = false, 
          dp = 0x7fffffff68a0, 
          dpvec = 0x58b781 <builtin_lisp_symbol+44>, 
          dpend = 0x7fffffff6910, 
          dpvec_char_len = 0, 
          dpvec_face_id = 0, 
          saved_face_id = -38640, 
          ctl_chars = {{
              i = 0x652ca3 <unbind_to+237>
            }, {
              i = 0x0
            }, {
              i = 0xb
            }, {
              i = 0x7
            }, {
              i = 0x7860
            }, {
              i = 0xc600
            }, {
              i = 0x1204585
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x58b781 <builtin_lisp_symbol+44>
            }, {
              i = 0x15a2635
            }, {
              i = 0xb
            }, {
              i = 0x7fffffff7030
            }, {
              i = 0x6a5ac1 <exec_byte_code+15598>
            }, {
              i = 0xb2f3e5 <pure+1222437>
            }}, 
          start = {
            pos = {
              charpos = 0, 
              bytepos = 14
            }, 
            overlay_string_index = 0, 
            string_pos = {
              charpos = 0, 
              bytepos = 14
            }, 
            dpvec_index = 0
          }, 
          current = {
            pos = {
              charpos = 0, 
              bytepos = 14
            }, 
            overlay_string_index = 14, 
            string_pos = {
              charpos = 25632, 
              bytepos = 0
            }, 
            dpvec_index = 6
          }, 
          n_overlay_strings = 20401587, 
          overlay_strings_charpos = 14, 
          overlay_strings = {{
              i = 0x0
            }, {
              i = 0xe
            }, {
              i = 0x6
            }, {
              i = 0xe
            }, {
              i = 0x6
            }, {
              i = 0xe
            }, {
              i = 0x6
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x1a1989c520c618c5
            }, {
              i = 0x5cbcac9c8c71bc5
            }, {
              i = 0x28a8e24cd22cc21
            }}, 
          string_overlays = {{
              i = 0x830103b265001e84
            }, {
              i = 0x29825e64010028
            }, {
              i = 0xc720cfce0202b264
            }, {
              i = 0x22d12105cbcad0c8
            }, {
              i = 0x500ea85058e24d2
            }, {
              i = 0x606d300ea855705
            }, {
              i = 0x518624c5d40606
            }, {
              i = 0x835606060102b204
            }, {
              i = 0xc5d4030606d500dd
            }, {
              i = 0x6d7006f31d68824
            }, {
              i = 0xd5007f8230220306
            }, {
              i = 0xd88824ced4040706
            }, {
              i = 0x8901b22241024001
            }, {
              i = 0x8941014089410140
            }, {
              i = 0x141014089410140
            }, {
              i = 0x1306890a06070604
            }}, 
          string = {
            i = 0x560f060100a38457
          }, 
          from_overlay = {
            i = 0xc5d40301d500aa83
          }, 
          stack = {{
              string = {
                i = 0x20c00c3830c8824
              }, 
              string_nchars = 12813143, 
              end_charpos = -4358320219658583869, 
              stop_charpos = -8982693313776451328, 
              prev_stop = 494794314771792088, 
              base_level_stop = -8636460336219873017, 
              cmp_it = {
                stop_pos = 434266469930611201, 
                id = -9077372127760087546, 
                ch = -1305935813, 
                rule_idx = 2267611570, 
                lookback = 30, 
                nglyphs = -36816, 
                reversed_p = 255, 
                charpos = 6954694, 
                nchars = 2050, 
                nbytes = 0, 
                from = 2, 
                to = 0, 
                width = 110
              }, 
              face_id = -36408, 
              u = {
                image = {
                  object = {
                    i = 0xb2f3e5 <pure+1222437>
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0xb2f3c4 <pure+1222404>
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0xb2f3e5 <pure+1222437>
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0xb2f3e5 <pure+1222437>
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0xe
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = 14, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 6, 
              prev_stop = 0, 
              base_level_stop = 14, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 22685237, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 6, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0xe
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x9503a0
                    }, 
                    height = {
                      i = 0x1d4
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x7fffffff6938
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = (unknown: 18988128), 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x2
              }, 
              font_height = {
                i = 0x2
              }
            }, {
              string = {
                i = 0x2
              }, 
              string_nchars = 0, 
              end_charpos = 512, 
              stop_charpos = 11, 
              prev_stop = 244, 
              base_level_stop = 140737488316928, 
              cmp_it = {
                stop_pos = 140737488316928, 
                id = 140737488316704, 
                ch = 224, 
                rule_idx = 224, 
                lookback = 11, 
                nglyphs = 15916, 
                reversed_p = false, 
                charpos = 28, 
                nchars = 11727848, 
                nbytes = 0, 
                from = 244, 
                to = 0, 
                width = 30
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0xb2f395 <pure+1222357>
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x7fffffff7010
                    }, 
                    width = {
                      i = 0x8700000001
                    }, 
                    height = {
                      i = 0x2
                    }
                  }, 
                  image_id = 2
                }, 
                stretch = {
                  object = {
                    i = 0xb2f395 <pure+1222357>
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0xb2f395 <pure+1222357>
                  }
                }
              }, 
              position = {
                charpos = 140737488317172, 
                bytepos = 140737488316728
              }, 
              current = {
                pos = {
                  charpos = 140737488316704, 
                  bytepos = 144115188081674002
                }, 
                overlay_string_index = 11727765, 
                string_pos = {
                  charpos = 140737488318904, 
                  bytepos = 140737488318736
                }, 
                dpvec_index = 6623553
              }, 
              from_overlay = {
                i = 0xb2f395 <pure+1222357>
              }, 
              area = RIGHT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0xe6bfc0 <lispsym>
              }
            }}, 
          sp = 0, 
          selective = 0, 
          what = 4294930592, 
          face_id = 32767, 
          selective_display_ellipsis_p = true, 
          ctl_arrow_p = false, 
          face_box_p = false, 
          start_of_box_run_p = false, 
          end_of_box_run_p = false, 
          overlay_strings_at_end_processed_p = false, 
          ignore_overlay_strings_at_pos_p = false, 
          glyph_not_available_p = true, 
          starts_in_middle_of_char_p = true, 
          face_before_selective_p = true, 
          constrain_row_ascent_descent_p = true, 
          line_number_produced_p = false, 
          line_wrap = TRUNCATE, 
          base_face_id = 2050, 
          c = 0, 
          len = 0, 
          cmp_it = {
            stop_pos = 25769767136, 
            id = 15122368, 
            ch = 0, 
            rule_idx = 15122368, 
            lookback = 98784247808, 
            nglyphs = 11727760, 
            reversed_p = false, 
            charpos = 5, 
            nchars = 11, 
            nbytes = 0, 
            from = 11727765, 
            to = 0, 
            width = 0
          }, 
          char_to_display = -36592, 
          glyphless_method = 32767, 
          image_id = 9747424, 
          xwidget = 0xb2f1c5 <pure+1221893>, 
          slice = {
            x = {
              i = 0x13272a8
            }, 
            y = {
              i = 0x7fffffff7190
            }, 
            width = {
              i = 0x650705 <Ffuncall+903>
            }, 
            height = {
              i = 0x7fffffff71b0
            }
          }, 
          space_width = {
            i = 0x3
          }, 
          voffset = 0, 
          tab_width = 0, 
          font_height = {
            i = 0x30058b781
          }, 
          object = {
            i = 0x1f5
          }, 
          position = {
            charpos = 2, 
            bytepos = 9747424
          }, 
          truncation_pixel_width = 2002, 
          continuation_pixel_width = 0, 
          first_visible_x = 0, 
          last_visible_x = 11727765, 
          last_visible_y = 0, 
          extra_line_spacing = 6494800, 
          max_extra_line_spacing = 0, 
          override_ascent = 10, 
          override_descent = 0, 
          override_boff = 2, 
          glyph_row = 0x6, 
          area = 10, 
          nglyphs = 0, 
          pixel_width = -34928, 
          ascent = 32767, 
          descent = 6970049, 
          max_ascent = 0, 
          max_descent = 11727301, 
          phys_ascent = 0, 
          phys_descent = 6, 
          max_phys_ascent = 0, 
          max_phys_descent = 0, 
          current_x = 0, 
          continuation_lines_width = 6, 
          eol_pos = {
            charpos = 2006, 
            bytepos = 2002
          }, 
          current_y = 92, 
          first_vpos = 0, 
          vpos = 0, 
          hpos = 0, 
          lnum = 11727301, 
          lnum_bytepos = 0, 
          lnum_width = -36320, 
          lnum_pixel_width = 32767, 
          pt_lnum = 5816684, 
          tab_offset = 11727301, 
          left_user_fringe_bitmap = 0, 
          right_user_fringe_bitmap = 0, 
          left_user_fringe_face_id = 492808, 
          right_user_fringe_face_id = 343817, 
          bidi_p = false, 
          bidi_it = {
            bytepos = 4451257376741460480, 
            charpos = 8871000590524291, 
            ch = 210305480, 
            nchars = 4759583527199325709, 
            ch_len = -8518241167867983595, 
            type = 404625182, 
            type_after_wn = 3407421129, 
            orig_type = 3469593798, 
            resolved_level = 5 '\005', 
            isolate_level = 33 '!', 
            invalid_levels = -3241234922252393264, 
            invalid_isolates = 2620633239920207060, 
            prev = {
              charpos = -8707426539787725357, 
              type = 4294932368, 
              orig_type = 32767
            }, 
            last_strong = {
              charpos = 6954694, 
              type = 1030, 
              orig_type = UNKNOWN_BT
            }, 
            next_for_neutral = {
              charpos = 1, 
              type = 50, 
              orig_type = UNKNOWN_BT
            }, 
            prev_for_neutral = {
              charpos = 140737488320880, 
              type = 11727301, 
              orig_type = UNKNOWN_BT
            }, 
            next_for_ws = {
              charpos = 0, 
              type = 11727268, 
              orig_type = UNKNOWN_BT
            }, 
            bracket_pairing_pos = 0, 
            bracket_enclosed_type = UNKNOWN_BT, 
            next_en_pos = 0, 
            next_en_type = UNKNOWN_BT, 
            sos = NEUTRAL_DIR, 
            scan_dir = 0, 
            disp_pos = 0, 
            disp_prop = 0, 
            stack_idx = 0, 
            level_stack = {{
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 6, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              } <repeats 41 times>, {
                next_for_neutral_pos = 6, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 2002, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 3, 
                level = 222 '\336', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320064, 
                next_for_neutral_type = 2, 
                last_strong_type = 7, 
                prev_for_neutral_type = 6, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 3, 
                level = 222 '\336', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320096, 
                next_for_neutral_type = 5, 
                last_strong_type = 7, 
                prev_for_neutral_type = 2, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 3, 
                level = 222 '\336', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320304, 
                next_for_neutral_type = 0, 
                last_strong_type = 2, 
                prev_for_neutral_type = 4, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 18892160, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 3, 
                level = 222 '\336', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 1, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 1, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 4, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 10, 
                next_for_neutral_type = 0, 
                last_strong_type = 3, 
                prev_for_neutral_type = 1, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488318984, 
                next_for_neutral_type = 0, 
                last_strong_type = 1, 
                prev_for_neutral_type = 0, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 140737488318880, 
                next_for_neutral_type = 0, 
                last_strong_type = 5, 
                prev_for_neutral_type = 1, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 104, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 7, 
                level = 231 '\347', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 14591712, 
                next_for_neutral_type = 7, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488321328, 
                next_for_neutral_type = 3, 
                last_strong_type = 4, 
                prev_for_neutral_type = 0, 
                level = 69 'E', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 1, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 4, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 18892165, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 32 ' ', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488320368, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320400, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 25064328, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 32 ' ', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488320464, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320480, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 18892165, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 32 ' ', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488320544, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320544, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 25064328, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320640, 
                next_for_neutral_type = 5, 
                last_strong_type = 7, 
                prev_for_neutral_type = 2, 
                level = 101 'e', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 19008947, 
                next_for_neutral_type = 0, 
                last_strong_type = 1, 
                prev_for_neutral_type = 6, 
                level = 126 '~', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 16944, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320640, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 2, 
                prev_for_neutral_type = 1, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320736, 
                next_for_neutral_type = 5, 
                last_strong_type = 3, 
                prev_for_neutral_type = 4, 
                level = 108 'l', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 16944, 
                next_for_neutral_type = 4, 
                last_strong_type = 0, 
                prev_for_neutral_type = 3, 
                level = 109 'm', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 19010371, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 5, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 5, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 1, 
                next_for_neutral_type = 0, 
                last_strong_type = 1, 
                prev_for_neutral_type = 6, 
                level = 126 '~', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488320768, 
                next_for_neutral_type = 5, 
                last_strong_type = 4, 
                prev_for_neutral_type = 0, 
                level = 108 'l', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 107399246728, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 2, 
                level = 44 ',', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488320800, 
                next_for_neutral_type = 1, 
                last_strong_type = 7, 
                prev_for_neutral_type = 3, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 19695781, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 2, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 140737488320832, 
                next_for_neutral_type = 7, 
                last_strong_type = 3, 
                prev_for_neutral_type = 4, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 2, 
                prev_for_neutral_type = 0, 
                level = 238 '\356', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320864, 
                next_for_neutral_type = 7, 
                last_strong_type = 3, 
                prev_for_neutral_type = 4, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 2, 
                level = 44 ',', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488320928, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488320928, 
                next_for_neutral_type = 5, 
                last_strong_type = 6, 
                prev_for_neutral_type = 2, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 2, 
                level = 44 ',', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488320992, 
                next_for_neutral_type = 3, 
                last_strong_type = 2, 
                prev_for_neutral_type = 5, 
                level = 81 'Q', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 15632917, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488321024, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488321296, 
                next_for_neutral_type = 2, 
                last_strong_type = 5, 
                prev_for_neutral_type = 1, 
                level = 109 'm', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 3, 
                next_for_neutral_type = 5, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 1, 
                next_for_neutral_type = 0, 
                last_strong_type = 4, 
                prev_for_neutral_type = 6, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 19008947, 
                next_for_neutral_type = 0, 
                last_strong_type = 1, 
                prev_for_neutral_type = 6, 
                level = 126 '~', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 16944, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488321264, 
                next_for_neutral_type = 5, 
                last_strong_type = 3, 
                prev_for_neutral_type = 4, 
                level = 108 'l', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 16944, 
                next_for_neutral_type = 3, 
                last_strong_type = 2, 
                prev_for_neutral_type = 0, 
                level = 183 '\267', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 19010371, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 5, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 5, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 7, 
                level = 231 '\347', 
                flags = 0 '\000'
              }}, 
            string = {
              lstring = {
                i = 0x4230
              }, 
              s = 0x17e7388 "\002", 
              schars = 140737488321296, 
              bufpos = 42956812837, 
              from_disp_str = false, 
              unibyte = false
            }, 
            w = 0x0, 
            paragraph_dir = (unknown: 4294933456), 
            separator_limit = 4513096, 
            first_elt = false, 
            new_paragraph = true, 
            frame_window_p = true
          }, 
          paragraph_embedding = (unknown: 4294933792)
        }
        wrap_data = 0x0
        may_wrap = false
        wrap_x = 22974368
        wrap_row_used = -1
        wrap_row_ascent = 1
        wrap_row_height = 0
        wrap_row_phys_ascent = 1
        wrap_row_phys_height = 0
        wrap_row_extra_line_spacing = 4508075
        wrap_row_min_pos = 140737488321776
        wrap_row_min_bpos = 1
        wrap_row_max_pos = 1
        wrap_row_max_bpos = 22974368
        cvpos = 0
        min_pos = 4
        max_pos = 0
        min_bpos = 22974368
        max_bpos = 1
        pending_handle_line_prefix = false
        header_line = 0
        hscroll_this_line = false
        first_visible_x = 0
        last_visible_x = 880
        x_incr = 0
        line_number_needed = false
#5  0x000000000047a011 in try_window (window=..., pos=..., flags=1) at xdisp.c:17778
        w = 0x15e8fa0
        it = {
          window = {
            i = 0x15e8fa5
          }, 
          w = 0x15e8fa0, 
          f = 0x15e7fa0, 
          method = GET_FROM_BUFFER, 
          stop_charpos = 3, 
          prev_stop = 1, 
          base_level_stop = 0, 
          end_charpos = 3, 
          s = 0x0, 
          string_nchars = 0, 
          redisplay_end_trigger_charpos = 0, 
          multibyte_p = true, 
          header_line_p = false, 
          string_from_display_prop_p = false, 
          string_from_prefix_prop_p = false, 
          from_disp_prop_p = false, 
          ellipsis_p = false, 
          avoid_cursor_p = false, 
          dp = 0x0, 
          dpvec = 0x0, 
          dpend = 0x0, 
          dpvec_char_len = 0, 
          dpvec_face_id = 0, 
          saved_face_id = 0, 
          ctl_chars = {{
              i = 0x0
            } <repeats 16 times>}, 
          start = {
            pos = {
              charpos = 1, 
              bytepos = 1
            }, 
            overlay_string_index = -1, 
            string_pos = {
              charpos = -1, 
              bytepos = -1
            }, 
            dpvec_index = -1
          }, 
          current = {
            pos = {
              charpos = 1, 
              bytepos = 1
            }, 
            overlay_string_index = -1, 
            string_pos = {
              charpos = -1, 
              bytepos = -1
            }, 
            dpvec_index = -1
          }, 
          n_overlay_strings = 0, 
          overlay_strings_charpos = 1, 
          overlay_strings = {{
              i = 0x0
            } <repeats 16 times>}, 
          string_overlays = {{
              i = 0x0
            } <repeats 16 times>}, 
          string = {
            i = 0x0
          }, 
          from_overlay = {
            i = 0x0
          }, 
          stack = {{
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }}, 
          sp = 0, 
          selective = 0, 
          what = IT_CHARACTER, 
          face_id = 17, 
          selective_display_ellipsis_p = true, 
          ctl_arrow_p = true, 
          face_box_p = false, 
          start_of_box_run_p = false, 
          end_of_box_run_p = false, 
          overlay_strings_at_end_processed_p = false, 
          ignore_overlay_strings_at_pos_p = false, 
          glyph_not_available_p = false, 
          starts_in_middle_of_char_p = false, 
          face_before_selective_p = false, 
          constrain_row_ascent_descent_p = false, 
          line_number_produced_p = false, 
          line_wrap = WINDOW_WRAP, 
          base_face_id = 0, 
          c = 59043, 
          len = 3, 
          cmp_it = {
            stop_pos = 1, 
            id = -1, 
            ch = -2, 
            rule_idx = 0, 
            lookback = 0, 
            nglyphs = 0, 
            reversed_p = false, 
            charpos = 0, 
            nchars = 0, 
            nbytes = 0, 
            from = 0, 
            to = 0, 
            width = 0
          }, 
          char_to_display = 59043, 
          glyphless_method = GLYPHLESS_DISPLAY_THIN_SPACE, 
          image_id = 0, 
          xwidget = 0x0, 
          slice = {
            x = {
              i = 0x0
            }, 
            y = {
              i = 0x0
            }, 
            width = {
              i = 0x0
            }, 
            height = {
              i = 0x0
            }
          }, 
          space_width = {
            i = 0x0
          }, 
          voffset = 0, 
          tab_width = 8, 
          font_height = {
            i = 0x0
          }, 
          object = {
            i = 0x1204585
          }, 
          position = {
            charpos = 1, 
            bytepos = 1
          }, 
          truncation_pixel_width = 0, 
          continuation_pixel_width = 11, 
          first_visible_x = 0, 
          last_visible_x = 880, 
          last_visible_y = 850, 
          extra_line_spacing = 0, 
          max_extra_line_spacing = 0, 
          override_ascent = -1, 
          override_descent = 0, 
          override_boff = 0, 
          glyph_row = 0x1bf5800, 
          area = TEXT_AREA, 
          nglyphs = 1, 
          pixel_width = 7, 
          ascent = 16, 
          descent = -5, 
          max_ascent = 0, 
          max_descent = 0, 
          phys_ascent = 9, 
          phys_descent = 5, 
          max_phys_ascent = 0, 
          max_phys_descent = 0, 
          current_x = 0, 
          continuation_lines_width = 0, 
          eol_pos = {
            charpos = 0, 
            bytepos = 0
          }, 
          current_y = 0, 
          first_vpos = 0, 
          vpos = 0, 
          hpos = 0, 
          lnum = 0, 
          lnum_bytepos = 0, 
          lnum_width = 0, 
          lnum_pixel_width = 0, 
          pt_lnum = 0, 
          tab_offset = 0, 
          left_user_fringe_bitmap = 0, 
          right_user_fringe_bitmap = 0, 
          left_user_fringe_face_id = 0, 
          right_user_fringe_face_id = 0, 
          bidi_p = true, 
          bidi_it = {
            bytepos = 1, 
            charpos = 1, 
            ch = 59043, 
            nchars = 1, 
            ch_len = 3, 
            type = STRONG_L, 
            type_after_wn = STRONG_L, 
            orig_type = STRONG_L, 
            resolved_level = 0 '\000', 
            isolate_level = 0 '\000', 
            invalid_levels = 0, 
            invalid_isolates = 0, 
            prev = {
              charpos = 1, 
              type = NEUTRAL_B, 
              orig_type = NEUTRAL_B
            }, 
            last_strong = {
              charpos = 0, 
              type = UNKNOWN_BT, 
              orig_type = UNKNOWN_BT
            }, 
            next_for_neutral = {
              charpos = -1, 
              type = UNKNOWN_BT, 
              orig_type = UNKNOWN_BT
            }, 
            prev_for_neutral = {
              charpos = 1, 
              type = STRONG_L, 
              orig_type = UNKNOWN_BT
            }, 
            next_for_ws = {
              charpos = -1, 
              type = UNKNOWN_BT, 
              orig_type = UNKNOWN_BT
            }, 
            bracket_pairing_pos = -1, 
            bracket_enclosed_type = UNKNOWN_BT, 
            next_en_pos = 0, 
            next_en_type = UNKNOWN_BT, 
            sos = L2R, 
            scan_dir = 1, 
            disp_pos = 3, 
            disp_prop = 0, 
            stack_idx = 0, 
            level_stack = {{
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              } <repeats 128 times>}, 
            string = {
              lstring = {
                i = 0x0
              }, 
              s = 0x0, 
              schars = 0, 
              bufpos = 0, 
              from_disp_str = false, 
              unibyte = false
            }, 
            w = 0x15e8fa0, 
            paragraph_dir = L2R, 
            separator_limit = -1, 
            first_elt = false, 
            new_paragraph = false, 
            frame_window_p = true
          }, 
          paragraph_embedding = L2R
        }
        last_text_row = 0x0
        f = 0x15e7fa0
        cursor_vpos = 0
        it_charpos = 15122368
#6  0x000000000047743d in redisplay_window (window=..., just_this_one_p=false) at xdisp.c:17225
        d2 = -23312
        d6 = -20768
        d1 = 32767
        d5 = 32513
        rtop = 0
        rbot = 1
        w = 0x15e8fa0
        f = 0x15e7fa0
        buffer = 0x1204580
        old = 0x1204580
        lpoint = {
          charpos = 1, 
          bytepos = 1
        }
        opoint = {
          charpos = 1, 
          bytepos = 1
        }
        startp = {
          charpos = 1, 
          bytepos = 1
        }
        update_mode_line = true
        tem = 0
        it = {
          window = {
            i = 0x0
          }, 
          w = 0x2c000000000, 
          f = 0x0, 
          method = 65, 
          stop_charpos = 1, 
          prev_stop = 65, 
          base_level_stop = 1, 
          end_charpos = 22978464, 
          s = 0x1 <error: Cannot access memory at address 0x1>, 
          string_nchars = 1, 
          redisplay_end_trigger_charpos = 140737488331968, 
          multibyte_p = true, 
          header_line_p = true, 
          string_from_display_prop_p = false, 
          string_from_prefix_prop_p = true, 
          from_disp_prop_p = false, 
          ellipsis_p = true, 
          avoid_cursor_p = false, 
          dp = 0x1, 
          dpvec = 0xffffffff00000001, 
          dpend = 0x15e9fa0, 
          dpvec_char_len = 0, 
          dpvec_face_id = 0, 
          saved_face_id = 22962949, 
          ctl_chars = {{
              i = 0x1
            }, {
              i = 0x1bd16b0
            }, {
              i = 0x1bd11d0
            }, {
              i = 0x7fffffffb840
            }, {
              i = 0x47a254 <try_window+893>
            }, {
              i = 0x1
            }, {
              i = 0x1
            }, {
              i = 0x15e9fa5
            }, {
              i = 0x0
            }, {
              i = 0x15e9fa5
            }, {
              i = 0x15e9fa0
            }, {
              i = 0x15e7fa0
            }, {
              i = 0x0
            }, {
              i = 0x42
            }, {
              i = 0x1
            }, {
              i = 0x0
            }}, 
          start = {
            pos = {
              charpos = 66, 
              bytepos = 0
            }, 
            overlay_string_index = 0, 
            string_pos = {
              charpos = 0, 
              bytepos = 1
            }, 
            dpvec_index = 0
          }, 
          current = {
            pos = {
              charpos = 0, 
              bytepos = 0
            }, 
            overlay_string_index = 0, 
            string_pos = {
              charpos = 0, 
              bytepos = 0
            }, 
            dpvec_index = 0
          }, 
          n_overlay_strings = 0, 
          overlay_strings_charpos = 0, 
          overlay_strings = {{
              i = 0x0
            } <repeats 12 times>, {
              i = 0x42
            }, {
              i = 0x42
            }, {
              i = 0xffffffffffffffff
            }, {
              i = 0xffffffffffffffff
            }}, 
          string_overlays = {{
              i = 0xffffffffffffffff
            }, {
              i = 0xffffffff
            }, {
              i = 0x42
            }, {
              i = 0x42
            }, {
              i = 0xffffffffffffffff
            }, {
              i = 0xffffffffffffffff
            }, {
              i = 0xffffffffffffffff
            }, {
              i = 0xffffffff
            }, {
              i = 0x0
            }, {
              i = 0x42
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }, {
              i = 0x0
            }}, 
          string = {
            i = 0x0
          }, 
          from_overlay = {
            i = 0x0
          }, 
          stack = {{
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }, {
              string = {
                i = 0x0
              }, 
              string_nchars = 0, 
              end_charpos = 0, 
              stop_charpos = 0, 
              prev_stop = 0, 
              base_level_stop = 0, 
              cmp_it = {
                stop_pos = 0, 
                id = 0, 
                ch = 0, 
                rule_idx = 0, 
                lookback = 0, 
                nglyphs = 0, 
                reversed_p = false, 
                charpos = 0, 
                nchars = 0, 
                nbytes = 0, 
                from = 0, 
                to = 0, 
                width = 0
              }, 
              face_id = 0, 
              u = {
                image = {
                  object = {
                    i = 0x0
                  }, 
                  slice = {
                    x = {
                      i = 0x0
                    }, 
                    y = {
                      i = 0x0
                    }, 
                    width = {
                      i = 0x0
                    }, 
                    height = {
                      i = 0x0
                    }
                  }, 
                  image_id = 0
                }, 
                stretch = {
                  object = {
                    i = 0x0
                  }
                }, 
                xwidget = {
                  object = {
                    i = 0x0
                  }
                }
              }, 
              position = {
                charpos = 0, 
                bytepos = 0
              }, 
              current = {
                pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                overlay_string_index = 0, 
                string_pos = {
                  charpos = 0, 
                  bytepos = 0
                }, 
                dpvec_index = 0
              }, 
              from_overlay = {
                i = 0x0
              }, 
              area = LEFT_MARGIN_AREA, 
              method = GET_FROM_BUFFER, 
              paragraph_embedding = NEUTRAL_DIR, 
              multibyte_p = false, 
              string_from_display_prop_p = false, 
              string_from_prefix_prop_p = false, 
              display_ellipsis_p = false, 
              avoid_cursor_p = false, 
              bidi_p = false, 
              from_disp_prop_p = false, 
              line_wrap = TRUNCATE, 
              voffset = 0, 
              space_width = {
                i = 0x0
              }, 
              font_height = {
                i = 0x0
              }
            }}, 
          sp = 0, 
          selective = 0, 
          what = IT_CHARACTER, 
          face_id = 0, 
          selective_display_ellipsis_p = false, 
          ctl_arrow_p = false, 
          face_box_p = false, 
          start_of_box_run_p = false, 
          end_of_box_run_p = false, 
          overlay_strings_at_end_processed_p = false, 
          ignore_overlay_strings_at_pos_p = false, 
          glyph_not_available_p = false, 
          starts_in_middle_of_char_p = false, 
          face_before_selective_p = false, 
          constrain_row_ascent_descent_p = false, 
          line_number_produced_p = false, 
          line_wrap = TRUNCATE, 
          base_face_id = 0, 
          c = 0, 
          len = 0, 
          cmp_it = {
            stop_pos = 0, 
            id = 0, 
            ch = 0, 
            rule_idx = 0, 
            lookback = 0, 
            nglyphs = 0, 
            reversed_p = false, 
            charpos = 0, 
            nchars = 0, 
            nbytes = 0, 
            from = 0, 
            to = 0, 
            width = 0
          }, 
          char_to_display = 0, 
          glyphless_method = GLYPHLESS_DISPLAY_THIN_SPACE, 
          image_id = 0, 
          xwidget = 0x0, 
          slice = {
            x = {
              i = 0x0
            }, 
            y = {
              i = 0x0
            }, 
            width = {
              i = 0x0
            }, 
            height = {
              i = 0x0
            }
          }, 
          space_width = {
            i = 0x0
          }, 
          voffset = 0, 
          tab_width = 0, 
          font_height = {
            i = 0x0
          }, 
          object = {
            i = 0x0
          }, 
          position = {
            charpos = 0, 
            bytepos = 5
          }, 
          truncation_pixel_width = 35, 
          continuation_pixel_width = 0, 
          first_visible_x = 2, 
          last_visible_x = 0, 
          last_visible_y = 46, 
          extra_line_spacing = 1, 
          max_extra_line_spacing = 0, 
          override_ascent = 63, 
          override_descent = 0, 
          override_boff = -1, 
          glyph_row = 0xfffffffe, 
          area = LEFT_MARGIN_AREA, 
          nglyphs = 0, 
          pixel_width = 0, 
          ascent = 0, 
          descent = 0, 
          max_ascent = 0, 
          max_descent = 0, 
          phys_ascent = 0, 
          phys_descent = 0, 
          max_phys_ascent = 0, 
          max_phys_descent = 0, 
          current_x = 0, 
          continuation_lines_width = 0, 
          eol_pos = {
            charpos = 46, 
            bytepos = 0
          }, 
          current_y = 0, 
          first_vpos = 0, 
          vpos = 0, 
          hpos = 0, 
          lnum = 0, 
          lnum_bytepos = 0, 
          lnum_width = 0, 
          lnum_pixel_width = 0, 
          pt_lnum = 0, 
          tab_offset = 524288, 
          left_user_fringe_bitmap = 0, 
          right_user_fringe_bitmap = 0, 
          left_user_fringe_face_id = 0, 
          right_user_fringe_face_id = 0, 
          bidi_p = false, 
          bidi_it = {
            bytepos = 15601013, 
            charpos = 66, 
            ch = 66, 
            nchars = 720896, 
            ch_len = 107374183280, 
            type = UNKNOWN_BT, 
            type_after_wn = UNKNOWN_BT, 
            orig_type = 4294967295, 
            resolved_level = 0 '\000', 
            isolate_level = 0 '\000', 
            invalid_levels = 0, 
            invalid_isolates = 29169584, 
            prev = {
              charpos = 4294967297, 
              type = RLO, 
              orig_type = WEAK_CS
            }, 
            last_strong = {
              charpos = 6, 
              type = UNKNOWN_BT, 
              orig_type = UNKNOWN_BT
            }, 
            next_for_neutral = {
              charpos = 0, 
              type = UNKNOWN_BT, 
              orig_type = UNKNOWN_BT
            }, 
            prev_for_neutral = {
              charpos = 0, 
              type = UNKNOWN_BT, 
              orig_type = UNKNOWN_BT
            }, 
            next_for_ws = {
              charpos = 0, 
              type = 25, 
              orig_type = UNKNOWN_BT
            }, 
            bracket_pairing_pos = 1, 
            bracket_enclosed_type = UNKNOWN_BT, 
            next_en_pos = 0, 
            next_en_type = UNKNOWN_BT, 
            sos = NEUTRAL_DIR, 
            scan_dir = 0, 
            disp_pos = 0, 
            disp_prop = 0, 
            stack_idx = 1048576, 
            level_stack = {{
                next_for_neutral_pos = 66, 
                next_for_neutral_type = 2, 
                last_strong_type = 0, 
                prev_for_neutral_type = 1, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 4294967295, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 1, 
                next_for_neutral_type = 6, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 6, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 1, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 81604378624, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 1, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 7, 
                last_strong_type = 7, 
                prev_for_neutral_type = 7, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 2, 
                last_strong_type = 0, 
                prev_for_neutral_type = 1, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 81604378625, 
                next_for_neutral_type = 7, 
                last_strong_type = 7, 
                prev_for_neutral_type = 7, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 7, 
                last_strong_type = 7, 
                prev_for_neutral_type = 7, 
                level = 255 '\377', 
                flags = 255 '\377'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 4294967296, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 66, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              } <repeats 90 times>, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 5, 
                level = 228 '\344', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336256, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336288, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336304, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 5, 
                level = 228 '\344', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336496, 
                next_for_neutral_type = 5, 
                last_strong_type = 7, 
                prev_for_neutral_type = 2, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 5, 
                level = 228 '\344', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 4, 
                level = 227 '\343', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336544, 
                next_for_neutral_type = 0, 
                last_strong_type = 2, 
                prev_for_neutral_type = 4, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 15601008, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 4, 
                level = 227 '\343', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 0, 
                next_for_neutral_type = 0, 
                last_strong_type = 2, 
                prev_for_neutral_type = 7, 
                level = 227 '\343', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 20181235, 
                next_for_neutral_type = 3, 
                last_strong_type = 7, 
                prev_for_neutral_type = 5, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336448, 
                next_for_neutral_type = 7, 
                last_strong_type = 6, 
                prev_for_neutral_type = 0, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 20181267, 
                next_for_neutral_type = 0, 
                last_strong_type = 6, 
                prev_for_neutral_type = 3, 
                level = 51 '3', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 20181235, 
                next_for_neutral_type = 0, 
                last_strong_type = 2, 
                prev_for_neutral_type = 7, 
                level = 227 '\343', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336528, 
                next_for_neutral_type = 3, 
                last_strong_type = 6, 
                prev_for_neutral_type = 7, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 20181267, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 7, 
                level = 230 '\346', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 82, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336528, 
                next_for_neutral_type = 1, 
                last_strong_type = 0, 
                prev_for_neutral_type = 6, 
                level = 88 'X', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336544, 
                next_for_neutral_type = 3, 
                last_strong_type = 2, 
                prev_for_neutral_type = 4, 
                level = 51 '3', 
                flags = 1 '\001'
              }, {
                next_for_neutral_pos = 140737488336576, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 4, 
                level = 98 'b', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488336592, 
                next_for_neutral_type = 0, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 50688, 
                next_for_neutral_type = 6, 
                last_strong_type = 0, 
                prev_for_neutral_type = 0, 
                level = 0 '\000', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 140737488337280, 
                next_for_neutral_type = 5, 
                last_strong_type = 2, 
                prev_for_neutral_type = 6, 
                level = 96 '`', 
                flags = 0 '\000'
              }, {
                next_for_neutral_pos = 82, 
                next_for_neutral_type = 6, 
                last_strong_type = 3, 
                prev_for_neutral_type = 1, 
                level = 0 '\000', 
                flags = 0 '\000'
              }}, 
            string = {
              lstring = {
                i = 0x0
              }, 
              s = 0x0, 
              schars = 0, 
              bufpos = 0, 
              from_disp_str = false, 
              unibyte = false
            }, 
            w = 0x0, 
            paragraph_dir = NEUTRAL_DIR, 
            separator_limit = 0, 
            first_elt = false, 
            new_paragraph = false, 
            frame_window_p = false
          }, 
          paragraph_embedding = NEUTRAL_DIR
        }
        current_matrix_up_to_date_p = false
        used_current_matrix_p = false
        buffer_unchanged_p = false
        temp_scroll_step = false
        count = 6
        rc = 0
        centering_position = -1
        last_line_misfit = false
        beg_unchanged = -1
        end_unchanged = 0
        frame_line_height = 25
        margin = 0
        use_desired_matrix = false
        itdata = 0x0
#7  0x000000000046f8b6 in redisplay_window_0 (window=...) at xdisp.c:14953
#8  0x000000000064c3bc in internal_condition_case_1
    (bfun=0x46f874 <redisplay_window_0>, arg=..., handlers=..., hfun=0x46f83c <redisplay_window_error>)
    at eval.c:1397
        val = {
          i = 0x7fffffffb960
        }
        c = 0x1873c00
#9  0x000000000046f80f in redisplay_windows (window=...) at xdisp.c:14933
        w = 0x15e8fa0
#10 0x000000000046e269 in redisplay_internal () at xdisp.c:14416
        gcscrollbars = true
        f_redisplay_flag = true
        f = 0x15e7fa0
        w = 0x15e8fa0
        sw = 0x15e8fa0
        fr = 0x15e7fa0
        pending = false
        must_finish = true
        match_p = true
        tlbufpos = {
          charpos = 0, 
          bytepos = 0
        }
        tlendpos = {
          charpos = 0, 
          bytepos = 0
        }
        number_of_visible_frames = 1
        count = 3
        sf = 0x15e7fa0
        polling_stopped_here = false
        tail = {
          i = 0x12b79b3
        }
        frame = {
          i = 0x15e7fa5
        }
        hscroll_retries = 0
        garbaged_frame_retries = 0
        consider_all_windows_p = true
        update_miniwindow_p = true
#11 0x000000000046bb38 in redisplay () at xdisp.c:13626
#12 0x000000000059a4cd in read_char
    (commandflag=1, map=..., prev_event=..., used_mouse_menu=0x7fffffffd36f, end_time=0x0) at keyboard.c:2460
        echo_current = false
        c = {
          i = 0x0
        }
        jmpcount = 34378743507
        local_getcjmp = {{
            __jmpbuf = {19005107, 15122368, 0, 0, 0, 5814145, 0, 0}, 
            __mask_was_saved = -11760, 
            __saved_mask = {
              __val = {5988948, 0, 0, 50688, 0, 0, 0, 0, 0, 0, 14942528, 140737488343408, 15122368, 0, 0, 0}
            }
          }}
        save_jump = {{
            __jmpbuf = {0, 15122368, 0, 0, 140737488343072, 5814145, 22668560, 24937552}, 
            __mask_was_saved = -12048, 
            __saved_mask = {
              __val = {5986346, 140737488343432, 0, 140737488343136, 15122368, 0, 0, 140737488343168, 5814145, 0, 5815351, 140737488343280, 6630563, 19005123, 3, 0}
            }
          }}
        tem = {
          i = 0x95c490
        }
        save = {
          i = 0x159e510
        }
        previous_echo_area_message = {
          i = 0x0
        }
        also_record = {
          i = 0x0
        }
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x1ac5750
#13 0x00000000005aaa9a in read_key_sequence
    (keybuf=0x7fffffffd530, prompt=..., dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9078
        interrupted_kboard = 0x1ac5750
        interrupted_frame = 0x15e7fa0
        key = {
          i = 0x16ad705
        }
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = {
          i = 0x7fffffffd3a0
        }
        count = 3
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = {
          i = 0x121fed3
        }
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {
          parent = {
            i = 0x12c5cf3
          }, 
          map = {
            i = 0x12c5cf3
          }, 
          start = 0, 
          end = 0
        }
        keytran = {
          parent = {
            i = 0xeab2b3
          }, 
          map = {
            i = 0xeab2b3
          }, 
          start = 0, 
          end = 0
        }
        indec = {
          parent = {
            i = 0x12c5d23
          }, 
          map = {
            i = 0x12c5d23
          }, 
          start = 0, 
          end = 0
        }
        shift_translated = false
        delayed_switch_frame = {
          i = 0x0
        }
        original_uppercase = {
          i = 0x100000002
        }
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0x1204580
        fake_prefixed_keys = {
          i = 0x0
        }
        first_event = {
          i = 0x0
        }
        second_event = {
          i = 0x0
        }
#14 0x0000000000596f7c in command_loop_1 () at keyboard.c:1347
        cmd = {
          i = 0x54f0
        }
        keybuf = {{
            i = 0x0
          }, {
            i = 0xe73cd0 <lispsym+32016>
          }, {
            i = 0x7d10
          }, {
            i = 0x0
          }, {
            i = 0x7fffffffd5c0
          }, {
            i = 0x6529ee <do_one_unbind+713>
          }, {
            i = 0x7f0100000002
          }, {
            i = 0x7fffffffd5e0
          }, {
            i = 0xed0890
          }, {
            i = 0x0
          }, {
            i = 0x7fffffffd5a0
          }, {
            i = 0xe6bfc0 <lispsym>
          }, {
            i = 0x0
          }, {
            i = 0x0
          }, {
            i = 0x7fffffffd5c0
          }, {
            i = 0x58b781 <builtin_lisp_symbol+44>
          }, {
            i = 0x93b650
          }, {
            i = 0x0
          }, {
            i = 0x7fffffffd630
          }, {
            i = 0x652ca3 <unbind_to+237>
          }, {
            i = 0x124e483
          }, {
            i = 0x3
          }, {
            i = 0x7
          }, {
            i = 0xe6bfc0 <lispsym>
          }, {
            i = 0x0
          }, {
            i = 0x0
          }, {
            i = 0x7fffffffd620
          }, {
            i = 0x58b781 <builtin_lisp_symbol+44>
          }, {
            i = 0x0
          }, {
            i = 0xe73cd0 <lispsym+32016>
          }}
        i = 0
        prev_modiff = 0
        prev_buffer = 0x0
        already_adjusted = false
#15 0x000000000064c2e2 in internal_condition_case
    (bfun=0x596b1f <command_loop_1>, handlers=..., hfun=0x59616e <cmd_error>) at eval.c:1373
        val = {
          i = 0x7fffffffd6e0
        }
        c = 0x1871320
#16 0x0000000000596738 in command_loop_2 (ignore=...) at keyboard.c:1088
        val = {
          i = 0x0
        }
#17 0x000000000064b7aa in internal_catch (tag=..., func=0x59670f <command_loop_2>, arg=...) at eval.c:1136
        val = {
          i = 0x0
        }
        c = 0x1871200
#18 0x00000000005966d8 in command_loop () at keyboard.c:1067
#19 0x0000000000595c72 in recursive_edit_1 () at keyboard.c:712
        count = 1
        val = {
          i = 0x7fffffffd7c0
        }
#20 0x0000000000595e5c in Frecursive_edit () at keyboard.c:783
        count = 0
        buffer = {
          i = 0x0
        }
#21 0x0000000000593a17 in main (argc=3, argv=0x7fffffffda28) at emacs.c:1722
        stack_bottom_variable = 0x7fffefc24300
        do_initial_setlocale = true
        dumping = false
        skip_args = 0
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
        rlim = {
          rlim_cur = 10022912, 
          rlim_max = 18446744073709551615
        }
        sockfd = -1

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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-27  8:54 bug#33885: 27.0.50; PUA character makes emacs crash Werner LEMBERG
@ 2018-12-27 10:36 ` Eli Zaretskii
  2018-12-27 11:33   ` Eli Zaretskii
  2018-12-28  8:33   ` Werner LEMBERG
  2022-02-12  8:42 ` Lars Ingebrigtsen
  1 sibling, 2 replies; 15+ messages in thread
From: Eli Zaretskii @ 2018-12-27 10:36 UTC (permalink / raw)
  To: 33885, wl

On December 27, 2018 10:54:59 AM GMT+02:00, Werner LEMBERG <wl@gnu.org> wrote:
> 
> Loading the attached file `bug.el' (containing the single PUA
> character U+E6A3) with
> 
>   emacs -Q bug.el
> 
> causes a crash:
> 
>   xdisp.c:28955:
>     Emacs fatal error:
>       assertion failed:
>         it->ascent >= 0 && it->descent >= 0
> 
> I've also attached the output of `bt full'.


Thanks.

Do you have some custom font setup, which is supposed to display this PUA character?  Because on my system, there's no font for this codepoint (as I'd expect), and therefore Emacs displays it as "glyphless" character, showing a box with the character's code in hex, and that avoids the assertion violation.

So please step through x_produce_glyphs when Emacs needs to produce a glyph for this character, and tell how you end up with both ascent and descent values zero.  It isn't supposed to happen with valid fonts.





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-27 10:36 ` Eli Zaretskii
@ 2018-12-27 11:33   ` Eli Zaretskii
  2018-12-28  8:33   ` Werner LEMBERG
  1 sibling, 0 replies; 15+ messages in thread
From: Eli Zaretskii @ 2018-12-27 11:33 UTC (permalink / raw)
  To: 33885, wl

On December 27, 2018 12:36:14 PM GMT+02:00, Eli Zaretskii <eliz@gnu.org> wrote:
> On December 27, 2018 10:54:59 AM GMT+02:00, Werner LEMBERG
> <wl@gnu.org> wrote:
> > 
> > Loading the attached file `bug.el' (containing the single PUA
> > character U+E6A3) with
> > 
> >   emacs -Q bug.el
> > 
> > causes a crash:
> > 
> >   xdisp.c:28955:
> >     Emacs fatal error:
> >       assertion failed:
> >         it->ascent >= 0 && it->descent >= 0
> > 
> > I've also attached the output of `bt full'.
> 
> 
> Thanks.
> 
> Do you have some custom font setup, which is supposed to display this
> PUA character?  Because on my system, there's no font for this
> codepoint (as I'd expect), and therefore Emacs displays it as
> "glyphless" character, showing a box with the character's code in hex,
> and that avoids the assertion violation.
> 
> So please step through x_produce_glyphs when Emacs needs to produce a
> glyph for this character, and tell how you end up with both ascent and
> descent values zero.  It isn't supposed to happen with valid fonts.

Sorry, I meant these values should be non-negatve.  It seems like in your case, descent is -5?  How come?





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-27 10:36 ` Eli Zaretskii
  2018-12-27 11:33   ` Eli Zaretskii
@ 2018-12-28  8:33   ` Werner LEMBERG
  2018-12-28  9:16     ` Eli Zaretskii
  1 sibling, 1 reply; 15+ messages in thread
From: Werner LEMBERG @ 2018-12-28  8:33 UTC (permalink / raw)
  To: eliz; +Cc: 33885


>> Loading the attached file `bug.el' (containing the single PUA
>> character U+E6A3) with
>> 
>>   emacs -Q bug.el
>> 
>> causes a crash:
>> 
>>   xdisp.c:28955:
>>     Emacs fatal error:
>>       assertion failed:
>>         it->ascent >= 0 && it->descent >= 0
>> 
>> I've also attached the output of `bt full'.
> 
> Do you have some custom font setup, which is supposed to display this
> PUA character?

No custom setup, but...

> Because on my system, there's no font for this codepoint (as I'd
> expect),

... a font that *does* have this character (following the MUFI
standard to display characters for medieval research).

  https://folk.uib.no/hnooh/mufi/

The font in question is `Cardo Regular', Version 1.045, which you
can freely download as

  http://scholarsfonts.net/cardo104.zip

(Note that the Google variant of this font doesn't contain the MUFI
characters.)

Character U+E6A3 gets mapped to glyph 3817, `uni00720325', which is
glyph `r' with a ring below; the `ttx' font disassembler shows the
following entry from the font's `glyf' table:

  <TTGlyph name="uni00720325" xMin="52" yMin="-510" xMax="747" yMax="927">
    <component glyphName="r" x="0" y="0" flags="0x204"/>
    <component glyphName="ring" x="-39" y="-1589" flags="0x4"/>
  </TTGlyph>

> and therefore Emacs displays it as "glyphless" character, showing a
> box with the character's code in hex, and that avoids the assertion
> violation.
> 
> So please step through x_produce_glyphs when Emacs needs to produce
> a glyph for this character, and tell how you end up with both ascent
> and descent values zero.  It isn't supposed to happen with valid
> fonts.

Uh, oh, I'm completely lost in this function; nowhere I can get
information on the font's name.  Additionally, there is no repeatable
way to set a breakpoint right before the crash; the number of
iterations are different each time.

However, calling `strace' and searching for `open(' helped me identify
the last font that Emacs opened.


    Werner





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28  8:33   ` Werner LEMBERG
@ 2018-12-28  9:16     ` Eli Zaretskii
  2018-12-28 12:38       ` Werner LEMBERG
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2018-12-28  9:16 UTC (permalink / raw)
  To: Werner LEMBERG; +Cc: 33885

> Date: Fri, 28 Dec 2018 09:33:33 +0100 (CET)
> Cc: bug-gnu-emacs@gnu.org, 33885@debbugs.gnu.org
> From: Werner LEMBERG <wl@gnu.org>
> 
> ... a font that *does* have this character (following the MUFI
> standard to display characters for medieval research).
> 
>   https://folk.uib.no/hnooh/mufi/
> 
> The font in question is `Cardo Regular', Version 1.045, which you
> can freely download as
> 
>   http://scholarsfonts.net/cardo104.zip
> 
> (Note that the Google variant of this font doesn't contain the MUFI
> characters.)
> 
> Character U+E6A3 gets mapped to glyph 3817, `uni00720325', which is
> glyph `r' with a ring below; the `ttx' font disassembler shows the
> following entry from the font's `glyf' table:
> 
>   <TTGlyph name="uni00720325" xMin="52" yMin="-510" xMax="747" yMax="927">
>     <component glyphName="r" x="0" y="0" flags="0x204"/>
>     <component glyphName="ring" x="-39" y="-1589" flags="0x4"/>
>   </TTGlyph>

Does this explain why the descent comes out negative?  (I'm not an
expert on font metrics.)

> > So please step through x_produce_glyphs when Emacs needs to produce
> > a glyph for this character, and tell how you end up with both ascent
> > and descent values zero.  It isn't supposed to happen with valid
> > fonts.
> 
> Uh, oh, I'm completely lost in this function; nowhere I can get
> information on the font's name.  Additionally, there is no repeatable
> way to set a breakpoint right before the crash; the number of
> iterations are different each time.

The way I would suggest to put a useful breakpoint there is this:

  break x_produce_glyphs if it->char_to_display == 0xe6a3

See also a few more questions I asked in the follow-up message.

(I will try to install that font, but that might take a few days.  In
the meantime, if you can report the additional information, I might be
able to come up with a patch even without installing the font and
reproducing the problem here.)

Thanks.





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28  9:16     ` Eli Zaretskii
@ 2018-12-28 12:38       ` Werner LEMBERG
  2018-12-28 13:30         ` Eli Zaretskii
  0 siblings, 1 reply; 15+ messages in thread
From: Werner LEMBERG @ 2018-12-28 12:38 UTC (permalink / raw)
  To: eliz; +Cc: 33885

>> Character U+E6A3 gets mapped to glyph 3817, `uni00720325', which is
>> glyph `r' with a ring below; the `ttx' font disassembler shows the
>> following entry from the font's `glyf' table:
>> 
>>   <TTGlyph name="uni00720325" xMin="52" yMin="-510" xMax="747" yMax="927">
>>     <component glyphName="r" x="0" y="0" flags="0x204"/>
>>     <component glyphName="ring" x="-39" y="-1589" flags="0x4"/>
>>   </TTGlyph>
> 
> Does this explain why the descent comes out negative?  (I'm not an
> expert on font metrics.)

No.  The `glyf' data of this glyph looks correct.

> The way I would suggest to put a useful breakpoint there is this:
> 
>   break x_produce_glyphs if it->char_to_display == 0xe6a3

OK, did that.  Here's the contents of `it' ($11), `face' ($12), and
`font' ($13), respectively, at xdisp.c:28221.  The `font' entry looks
very strange.

AFAICS, it's not a problem related to a single glyph.  We rather have
to check how the `Cardo' fonts get loaded into Emacs; it looks as if
the global font descent value is incorrect.  Please tell me (a) how to
identify the font used for U+E6A3, and (b) where to set a breakpoint
to see the font loading in action.

And indeed, ttx shows the following for the global values (in the
`hhea' table):

  <ascent value="1645"/>
  <descent value="620"/>

Compare this to, say, LiberationMono-Regular:

  <ascent value="1705"/>
  <descent value="-615"/>

So we have a font error in Cardo, setting the (Apple specific) descent
with the wrong sign.

Handling the ascent and descent in OpenType is a mess, since up to
three competing sets are present in the font.  See

  http://www.typophile.com/node/13081

for a quite exhaustive discussion.


    Werner

======================================================================

$11 = {
  window = {
    i = 0x15e8fa5
  }, 
  w = 0x15e8fa0, 
  f = 0x15e7fa0, 
  method = GET_FROM_BUFFER, 
  stop_charpos = 3, 
  prev_stop = 1, 
  base_level_stop = 0, 
  end_charpos = 3, 
  s = 0x0, 
  string_nchars = 0, 
  redisplay_end_trigger_charpos = 0, 
  multibyte_p = true, 
  header_line_p = false, 
  string_from_display_prop_p = false, 
  string_from_prefix_prop_p = false, 
  from_disp_prop_p = false, 
  ellipsis_p = false, 
  avoid_cursor_p = false, 
  dp = 0x0, 
  dpvec = 0x0, 
  dpend = 0x0, 
  dpvec_char_len = 0, 
  dpvec_face_id = 0, 
  saved_face_id = 0, 
  ctl_chars = {{
      i = 0x0
    } <repeats 16 times>}, 
  start = {
    pos = {
      charpos = 1, 
      bytepos = 1
    }, 
    overlay_string_index = -1, 
    string_pos = {
      charpos = -1, 
      bytepos = -1
    }, 
    dpvec_index = -1
  }, 
  current = {
    pos = {
      charpos = 1, 
      bytepos = 1
    }, 
    overlay_string_index = -1, 
    string_pos = {
      charpos = -1, 
      bytepos = -1
    }, 
    dpvec_index = -1
  }, 
  n_overlay_strings = 0, 
  overlay_strings_charpos = 1, 
  overlay_strings = {{
      i = 0x0
    } <repeats 16 times>}, 
  string_overlays = {{
      i = 0x0
    } <repeats 16 times>}, 
  string = {
    i = 0x0
  }, 
  from_overlay = {
    i = 0x0
  }, 
  stack = {{
      string = {
        i = 0x0
      }, 
      string_nchars = 0, 
      end_charpos = 0, 
      stop_charpos = 0, 
      prev_stop = 0, 
      base_level_stop = 0, 
      cmp_it = {
        stop_pos = 0, 
        id = 0, 
        ch = 0, 
        rule_idx = 0, 
        lookback = 0, 
        nglyphs = 0, 
        reversed_p = false, 
        charpos = 0, 
        nchars = 0, 
        nbytes = 0, 
        from = 0, 
        to = 0, 
        width = 0
      }, 
      face_id = 0, 
      u = {
        image = {
          object = {
            i = 0x0
          }, 
          slice = {
            x = {
              i = 0x0
            }, 
            y = {
              i = 0x0
            }, 
            width = {
              i = 0x0
            }, 
            height = {
              i = 0x0
            }
          }, 
          image_id = 0
        }, 
        stretch = {
          object = {
            i = 0x0
          }
        }, 
        xwidget = {
          object = {
            i = 0x0
          }
        }
      }, 
      position = {
        charpos = 0, 
        bytepos = 0
      }, 
      current = {
        pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        overlay_string_index = 0, 
        string_pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        dpvec_index = 0
      }, 
      from_overlay = {
        i = 0x0
      }, 
      area = LEFT_MARGIN_AREA, 
      method = GET_FROM_BUFFER, 
      paragraph_embedding = NEUTRAL_DIR, 
      multibyte_p = false, 
      string_from_display_prop_p = false, 
      string_from_prefix_prop_p = false, 
      display_ellipsis_p = false, 
      avoid_cursor_p = false, 
      bidi_p = false, 
      from_disp_prop_p = false, 
      line_wrap = TRUNCATE, 
      voffset = 0, 
      space_width = {
        i = 0x0
      }, 
      font_height = {
        i = 0x0
      }
    }, {
      string = {
        i = 0x0
      }, 
      string_nchars = 0, 
      end_charpos = 0, 
      stop_charpos = 0, 
      prev_stop = 0, 
      base_level_stop = 0, 
      cmp_it = {
        stop_pos = 0, 
        id = 0, 
        ch = 0, 
        rule_idx = 0, 
        lookback = 0, 
        nglyphs = 0, 
        reversed_p = false, 
        charpos = 0, 
        nchars = 0, 
        nbytes = 0, 
        from = 0, 
        to = 0, 
        width = 0
      }, 
      face_id = 0, 
      u = {
        image = {
          object = {
            i = 0x0
          }, 
          slice = {
            x = {
              i = 0x0
            }, 
            y = {
              i = 0x0
            }, 
            width = {
              i = 0x0
            }, 
            height = {
              i = 0x0
            }
          }, 
          image_id = 0
        }, 
        stretch = {
          object = {
            i = 0x0
          }
        }, 
        xwidget = {
          object = {
            i = 0x0
          }
        }
      }, 
      position = {
        charpos = 0, 
        bytepos = 0
      }, 
      current = {
        pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        overlay_string_index = 0, 
        string_pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        dpvec_index = 0
      }, 
      from_overlay = {
        i = 0x0
      }, 
      area = LEFT_MARGIN_AREA, 
      method = GET_FROM_BUFFER, 
      paragraph_embedding = NEUTRAL_DIR, 
      multibyte_p = false, 
      string_from_display_prop_p = false, 
      string_from_prefix_prop_p = false, 
      display_ellipsis_p = false, 
      avoid_cursor_p = false, 
      bidi_p = false, 
      from_disp_prop_p = false, 
      line_wrap = TRUNCATE, 
      voffset = 0, 
      space_width = {
        i = 0x0
      }, 
      font_height = {
        i = 0x0
      }
    }, {
      string = {
        i = 0x0
      }, 
      string_nchars = 0, 
      end_charpos = 0, 
      stop_charpos = 0, 
      prev_stop = 0, 
      base_level_stop = 0, 
      cmp_it = {
        stop_pos = 0, 
        id = 0, 
        ch = 0, 
        rule_idx = 0, 
        lookback = 0, 
        nglyphs = 0, 
        reversed_p = false, 
        charpos = 0, 
        nchars = 0, 
        nbytes = 0, 
        from = 0, 
        to = 0, 
        width = 0
      }, 
      face_id = 0, 
      u = {
        image = {
          object = {
            i = 0x0
          }, 
          slice = {
            x = {
              i = 0x0
            }, 
            y = {
              i = 0x0
            }, 
            width = {
              i = 0x0
            }, 
            height = {
              i = 0x0
            }
          }, 
          image_id = 0
        }, 
        stretch = {
          object = {
            i = 0x0
          }
        }, 
        xwidget = {
          object = {
            i = 0x0
          }
        }
      }, 
      position = {
        charpos = 0, 
        bytepos = 0
      }, 
      current = {
        pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        overlay_string_index = 0, 
        string_pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        dpvec_index = 0
      }, 
      from_overlay = {
        i = 0x0
      }, 
      area = LEFT_MARGIN_AREA, 
      method = GET_FROM_BUFFER, 
      paragraph_embedding = NEUTRAL_DIR, 
      multibyte_p = false, 
      string_from_display_prop_p = false, 
      string_from_prefix_prop_p = false, 
      display_ellipsis_p = false, 
      avoid_cursor_p = false, 
      bidi_p = false, 
      from_disp_prop_p = false, 
      line_wrap = TRUNCATE, 
      voffset = 0, 
      space_width = {
        i = 0x0
      }, 
      font_height = {
        i = 0x0
      }
    }, {
      string = {
        i = 0x0
      }, 
      string_nchars = 0, 
      end_charpos = 0, 
      stop_charpos = 0, 
      prev_stop = 0, 
      base_level_stop = 0, 
      cmp_it = {
        stop_pos = 0, 
        id = 0, 
        ch = 0, 
        rule_idx = 0, 
        lookback = 0, 
        nglyphs = 0, 
        reversed_p = false, 
        charpos = 0, 
        nchars = 0, 
        nbytes = 0, 
        from = 0, 
        to = 0, 
        width = 0
      }, 
      face_id = 0, 
      u = {
        image = {
          object = {
            i = 0x0
          }, 
          slice = {
            x = {
              i = 0x0
            }, 
            y = {
              i = 0x0
            }, 
            width = {
              i = 0x0
            }, 
            height = {
              i = 0x0
            }
          }, 
          image_id = 0
        }, 
        stretch = {
          object = {
            i = 0x0
          }
        }, 
        xwidget = {
          object = {
            i = 0x0
          }
        }
      }, 
      position = {
        charpos = 0, 
        bytepos = 0
      }, 
      current = {
        pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        overlay_string_index = 0, 
        string_pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        dpvec_index = 0
      }, 
      from_overlay = {
        i = 0x0
      }, 
      area = LEFT_MARGIN_AREA, 
      method = GET_FROM_BUFFER, 
      paragraph_embedding = NEUTRAL_DIR, 
      multibyte_p = false, 
      string_from_display_prop_p = false, 
      string_from_prefix_prop_p = false, 
      display_ellipsis_p = false, 
      avoid_cursor_p = false, 
      bidi_p = false, 
      from_disp_prop_p = false, 
      line_wrap = TRUNCATE, 
      voffset = 0, 
      space_width = {
        i = 0x0
      }, 
      font_height = {
        i = 0x0
      }
    }, {
      string = {
        i = 0x0
      }, 
      string_nchars = 0, 
      end_charpos = 0, 
      stop_charpos = 0, 
      prev_stop = 0, 
      base_level_stop = 0, 
      cmp_it = {
        stop_pos = 0, 
        id = 0, 
        ch = 0, 
        rule_idx = 0, 
        lookback = 0, 
        nglyphs = 0, 
        reversed_p = false, 
        charpos = 0, 
        nchars = 0, 
        nbytes = 0, 
        from = 0, 
        to = 0, 
        width = 0
      }, 
      face_id = 0, 
      u = {
        image = {
          object = {
            i = 0x0
          }, 
          slice = {
            x = {
              i = 0x0
            }, 
            y = {
              i = 0x0
            }, 
            width = {
              i = 0x0
            }, 
            height = {
              i = 0x0
            }
          }, 
          image_id = 0
        }, 
        stretch = {
          object = {
            i = 0x0
          }
        }, 
        xwidget = {
          object = {
            i = 0x0
          }
        }
      }, 
      position = {
        charpos = 0, 
        bytepos = 0
      }, 
      current = {
        pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        overlay_string_index = 0, 
        string_pos = {
          charpos = 0, 
          bytepos = 0
        }, 
        dpvec_index = 0
      }, 
      from_overlay = {
        i = 0x0
      }, 
      area = LEFT_MARGIN_AREA, 
      method = GET_FROM_BUFFER, 
      paragraph_embedding = NEUTRAL_DIR, 
      multibyte_p = false, 
      string_from_display_prop_p = false, 
      string_from_prefix_prop_p = false, 
      display_ellipsis_p = false, 
      avoid_cursor_p = false, 
      bidi_p = false, 
      from_disp_prop_p = false, 
      line_wrap = TRUNCATE, 
      voffset = 0, 
      space_width = {
        i = 0x0
      }, 
      font_height = {
        i = 0x0
      }
    }}, 
  sp = 0, 
  selective = 0, 
  what = IT_CHARACTER, 
  face_id = 17, 
  selective_display_ellipsis_p = true, 
  ctl_arrow_p = true, 
  face_box_p = false, 
  start_of_box_run_p = false, 
  end_of_box_run_p = false, 
  overlay_strings_at_end_processed_p = false, 
  ignore_overlay_strings_at_pos_p = false, 
  glyph_not_available_p = false, 
  starts_in_middle_of_char_p = false, 
  face_before_selective_p = false, 
  constrain_row_ascent_descent_p = false, 
  line_number_produced_p = false, 
  line_wrap = WINDOW_WRAP, 
  base_face_id = 0, 
  c = 59043, 
  len = 3, 
  cmp_it = {
    stop_pos = 1, 
    id = -1, 
    ch = -2, 
    rule_idx = 0, 
    lookback = 0, 
    nglyphs = 0, 
    reversed_p = false, 
    charpos = 0, 
    nchars = 0, 
    nbytes = 0, 
    from = 0, 
    to = 0, 
    width = 0
  }, 
  char_to_display = 59043, 
  glyphless_method = GLYPHLESS_DISPLAY_THIN_SPACE, 
  image_id = 0, 
  xwidget = 0x0, 
  slice = {
    x = {
      i = 0x0
    }, 
    y = {
      i = 0x0
    }, 
    width = {
      i = 0x0
    }, 
    height = {
      i = 0x0
    }
  }, 
  space_width = {
    i = 0x0
  }, 
  voffset = 0, 
  tab_width = 8, 
  font_height = {
    i = 0x0
  }, 
  object = {
    i = 0x120c2e5
  }, 
  position = {
    charpos = 1, 
    bytepos = 1
  }, 
  truncation_pixel_width = 0, 
  continuation_pixel_width = 11, 
  first_visible_x = 0, 
  last_visible_x = 880, 
  last_visible_y = 850, 
  extra_line_spacing = 0, 
  max_extra_line_spacing = 0, 
  override_ascent = -1, 
  override_descent = 0, 
  override_boff = 0, 
  glyph_row = 0x1c06800, 
  area = TEXT_AREA, 
  nglyphs = 1, 
  pixel_width = 0, 
  ascent = 0, 
  descent = 0, 
  max_ascent = 0, 
  max_descent = 0, 
  phys_ascent = 0, 
  phys_descent = 0, 
  max_phys_ascent = 0, 
  max_phys_descent = 0, 
  current_x = 0, 
  continuation_lines_width = 0, 
  eol_pos = {
    charpos = 0, 
    bytepos = 0
  }, 
  current_y = 0, 
  first_vpos = 0, 
  vpos = 0, 
  hpos = 0, 
  lnum = 0, 
  lnum_bytepos = 0, 
  lnum_width = 0, 
  lnum_pixel_width = 0, 
  pt_lnum = 0, 
  tab_offset = 0, 
  left_user_fringe_bitmap = 0, 
  right_user_fringe_bitmap = 0, 
  left_user_fringe_face_id = 0, 
  right_user_fringe_face_id = 0, 
  bidi_p = true, 
  bidi_it = {
    bytepos = 1, 
    charpos = 1, 
    ch = 59043, 
    nchars = 1, 
    ch_len = 3, 
    type = STRONG_L, 
    type_after_wn = STRONG_L, 
    orig_type = STRONG_L, 
    resolved_level = 0 '\000', 
    isolate_level = 0 '\000', 
    invalid_levels = 0, 
    invalid_isolates = 0, 
    prev = {
      charpos = 1, 
      type = NEUTRAL_B, 
      orig_type = NEUTRAL_B
    }, 
    last_strong = {
      charpos = 0, 
      type = UNKNOWN_BT, 
      orig_type = UNKNOWN_BT
    }, 
    next_for_neutral = {
      charpos = -1, 
      type = UNKNOWN_BT, 
      orig_type = UNKNOWN_BT
    }, 
    prev_for_neutral = {
      charpos = 1, 
      type = STRONG_L, 
      orig_type = UNKNOWN_BT
    }, 
    next_for_ws = {
      charpos = -1, 
      type = UNKNOWN_BT, 
      orig_type = UNKNOWN_BT
    }, 
    bracket_pairing_pos = -1, 
    bracket_enclosed_type = UNKNOWN_BT, 
    next_en_pos = 0, 
    next_en_type = UNKNOWN_BT, 
    sos = L2R, 
    scan_dir = 1, 
    disp_pos = 3, 
    disp_prop = 0, 
    stack_idx = 0, 
    level_stack = {{
        next_for_neutral_pos = 0, 
        next_for_neutral_type = 0, 
        last_strong_type = 0, 
        prev_for_neutral_type = 0, 
        level = 0 '\000', 
        flags = 0 '\000'
      } <repeats 128 times>}, 
    string = {
      lstring = {
        i = 0x0
      }, 
      s = 0x0, 
      schars = 0, 
      bufpos = 0, 
      from_disp_str = false, 
      unibyte = false
    }, 
    w = 0x15e8fa0, 
    paragraph_dir = L2R, 
    separator_limit = -1, 
    first_elt = false, 
    new_paragraph = false, 
    frame_window_p = true
  }, 
  paragraph_embedding = L2R
}
$12 = {
  lface = {{
      i = 0x5970
    }, {
      i = 0x1b645e4
    }, {
      i = 0x1b64624
    }, {
      i = 0x9de0
    }, {
      i = 0x1b2
    }, {
      i = 0x9de0
    }, {
      i = 0x9de0
    }, {
      i = 0x0
    }, {
      i = 0x0
    }, {
      i = 0x1b6ec74
    }, {
      i = 0x1b6ec94
    }, {
      i = 0x0
    }, {
      i = 0x0
    }, {
      i = 0x0
    }, {
      i = 0x0
    }, {
      i = 0x15f0085
    }, {
      i = 0x0
    }, {
      i = 0x1b720a4
    }, {
      i = 0xd5f0
    }}, 
  id = 17, 
  gc = 0x0, 
  stipple = 0, 
  foreground = 0, 
  background = 16777215, 
  underline_color = 0, 
  overline_color = 0, 
  strike_through_color = 0, 
  box_color = 0, 
  font = 0x226b780, 
  fontset = 3, 
  box_line_width = 0, 
  box = FACE_NO_BOX, 
  underline_type = FACE_UNDER_LINE, 
  use_box_color_for_shadows_p = false, 
  underline_p = false, 
  overline_p = false, 
  strike_through_p = false, 
  foreground_defaulted_p = false, 
  background_defaulted_p = false, 
  underline_defaulted_p = false, 
  overline_color_defaulted_p = false, 
  strike_through_color_defaulted_p = false, 
  box_color_defaulted_p = false, 
  tty_bold_p = false, 
  tty_italic_p = false, 
  tty_underline_p = false, 
  tty_reverse_p = false, 
  colors_copied_bitwise_p = true, 
  overstrike = false, 
  hash = 1344140, 
  next = 0x0, 
  prev = 0x191c150, 
  ascii_face = 0x191c150, 
  extra = 0x0
}
$13 = {
  header = {
    size = 4611686018880454673
  }, 
  props = {{
      i = 0xe7f0
    }, {
      i = 0x11d8390
    }, {
      i = 0x11d83c0
    }, {
      i = 0x0
    }, {
      i = 0x7f50
    }, {
      i = 0x19142
    }, {
      i = 0x19082
    }, {
      i = 0x19102
    }, {
      i = 0x4e
    }, {
      i = 0x0
    }, {
      i = 0x0
    }, {
      i = 0x2
    }, {
      i = 0x211e4b3
    }, {
      i = 0x0
    }, {
      i = 0x1cf1da4
    }, {
      i = 0x1cf1dc4
    }, {
      i = 0x20445d4
    }}, 
  min_width = 5, 
  max_width = 5, 
  pixel_size = 19, 
  height = 11, 
  space_width = 5, 
  average_width = 10, 
  ascent = 16, 
  descent = -5, 
  underline_thickness = 0, 
  underline_position = 1, 
  vertical_centering = false, 
  baseline_offset = 0, 
  relative_compose = 0, 
  default_ascent = 0, 
  encoding_charset = -1, 
  repertory_charset = -1, 
  driver = 0x7b5fa0 <xftfont_driver>
}





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28 12:38       ` Werner LEMBERG
@ 2018-12-28 13:30         ` Eli Zaretskii
  2018-12-28 14:58           ` Werner LEMBERG
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2018-12-28 13:30 UTC (permalink / raw)
  To: Werner LEMBERG; +Cc: 33885

> Date: Fri, 28 Dec 2018 13:38:56 +0100 (CET)
> Cc: 33885@debbugs.gnu.org
> From: Werner LEMBERG <wl@gnu.org>
> 
> >   break x_produce_glyphs if it->char_to_display == 0xe6a3
> 
> OK, did that.  Here's the contents of `it' ($11), `face' ($12), and
> `font' ($13), respectively, at xdisp.c:28221.  The `font' entry looks
> very strange.

Agreed, it looks like descent has the wrong sign.

> AFAICS, it's not a problem related to a single glyph.  We rather have
> to check how the `Cardo' fonts get loaded into Emacs; it looks as if
> the global font descent value is incorrect.  Please tell me (a) how to
> identify the font used for U+E6A3, and (b) where to set a breakpoint
> to see the font loading in action.

(a) font->props[2] names the font, so:

  (gdb) pp font->props[2]

should display its name in human-readable form.  To have the "pp"
command in GDB, you need to issue the command

  (gdb) source /path/to/emacs/src/.gdbinit

before you type the above.

(b) Given your list of features, which includes XFT, I think you want
to set a breakpoint in xftfont_open, where there's a call to
XftFontOpenPattern.

Thanks.





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28 13:30         ` Eli Zaretskii
@ 2018-12-28 14:58           ` Werner LEMBERG
  2018-12-28 15:33             ` Eli Zaretskii
  0 siblings, 1 reply; 15+ messages in thread
From: Werner LEMBERG @ 2018-12-28 14:58 UTC (permalink / raw)
  To: eliz; +Cc: 33885

>> We rather have to check how the `Cardo' fonts get loaded into
>> Emacs; it looks as if the global font descent value is incorrect.
>> Please tell me (a) how to identify the font used for U+E6A3, and
>> (b) where to set a breakpoint to see the font loading in action.
> 
> (a) font->props[2] names the font, so:
> 
>   (gdb) pp font->props[2]
> 
> should display its name in human-readable form.

Thanks.  This indeed gives `Cardo'.

> (b) Given your list of features, which includes XFT, I think you
> want to set a breakpoint in xftfont_open, where there's a call to
> XftFontOpenPattern.

OK.  `XftFontOpenPattern' returns the following data for `Cardo':

(gdb) p *xftfont
$12 = {
  ascent = 16, 
  descent = -5, 
  height = 6, 
  max_advance_width = 91, 
  charset = 0x7fffe23d52d8, 
  pattern = 0x1f01050
}

This is problematic, since it only reflects the Apple values for
ascent and descent (i.e., the data in the font's `hhea' table).  To
solve the issue, there are two possible solutions IMHO.

(1) Simply accept whatever `XftFontOpenPattern' returns, including
    negative values for `descent' – actually, such font might exist:
    for example, consider a special font that only contains dashes of
    different length.

(2) Improve the heuristics to get sensible global ascent and descent
    values of a font.  In particular, use the FreeType library to
    access a TrueType's or OpenType's `OS/2' table and compare its
    vertical metrics values with the `hhea' data to eliminate bugs in
    the font – sign problems with `descent' do happen especially in
    older fonts that were either designed for Apple or for Windows,
    and the fields for the `other' OS were filled out arbitrarily,
    more or less.


      Werner

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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28 14:58           ` Werner LEMBERG
@ 2018-12-28 15:33             ` Eli Zaretskii
  2018-12-28 17:03               ` Werner LEMBERG
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2018-12-28 15:33 UTC (permalink / raw)
  To: Werner LEMBERG; +Cc: 33885

> Date: Fri, 28 Dec 2018 15:58:50 +0100 (CET)
> Cc: 33885@debbugs.gnu.org
> From: Werner LEMBERG <wl@gnu.org>
> 
> OK.  `XftFontOpenPattern' returns the following data for `Cardo':
> 
> (gdb) p *xftfont
> $12 = {
>   ascent = 16, 
>   descent = -5, 
>   height = 6, 
>   max_advance_width = 91, 
>   charset = 0x7fffe23d52d8, 
>   pattern = 0x1f01050
> }
> 
> This is problematic, since it only reflects the Apple values for
> ascent and descent (i.e., the data in the font's `hhea' table).  To
> solve the issue, there are two possible solutions IMHO.
> 
> (1) Simply accept whatever `XftFontOpenPattern' returns, including
>     negative values for `descent' – actually, such font might exist:
>     for example, consider a special font that only contains dashes of
>     different length.

I don't think this is a good idea.

> (2) Improve the heuristics to get sensible global ascent and descent
>     values of a font.  In particular, use the FreeType library to
>     access a TrueType's or OpenType's `OS/2' table and compare its
>     vertical metrics values with the `hhea' data to eliminate bugs in
>     the font – sign problems with `descent' do happen especially in
>     older fonts that were either designed for Apple or for Windows,
>     and the fields for the `other' OS were filled out arbitrarily,
>     more or less.

I'd appreciate more details on how this could be done.  I'm no expert
on fonts nor on FreeType, and last I checked we have no one else.

Thanks.





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28 15:33             ` Eli Zaretskii
@ 2018-12-28 17:03               ` Werner LEMBERG
  2018-12-28 17:06                 ` Werner LEMBERG
  2018-12-28 19:15                 ` Eli Zaretskii
  0 siblings, 2 replies; 15+ messages in thread
From: Werner LEMBERG @ 2018-12-28 17:03 UTC (permalink / raw)
  To: eliz; +Cc: 33885

>> (2) Improve the heuristics to get sensible global ascent and
>>     descent values of a font.  In particular, use the FreeType
>>     library to access a TrueType's or OpenType's `OS/2' table and
>>     compare its vertical metrics values with the `hhea' data to
>>     eliminate bugs in the font – sign problems with `descent' do
>>     happen especially in older fonts that were either designed for
>>     Apple or for Windows, and the fields for the `other' OS were
>>     filled out arbitrarily, more or less.
> 
> I'd appreciate more details on how this could be done.  I'm no
> expert on fonts nor on FreeType, and last I checked we have no one
> else.

A possible workflow.

(0) Check that we have an SFNT font (which means either TrueType or
    OpenType):

      if (FT_IS_SFNT(ft_face))
        ...

(1) Use

      TT_OS2* os2_table;

      os2_table = (TT_OS2)FT_Get_Sfnt_Table(ft_face, FT_SFNT_OS2);

    to extract the `OS/2' table data from an existing `FT_Face' object
    for a given font.  We are interested in the fields

      fsSelection

      sTypoAscender
      sTypoDescender
      sTypoLineGap

      usWinAscent
      usWinDescent

    of FreeType's `TT_OS2' structure and in

      ascent
      descent

    of xft's `XftFont' structure; the latter is based on the
    `ascender' and `descender' fields of an OpenType font's `hhea'
    table (with `descent' having the opposite sign of of `descender').

    [Since `XftFont' doesn't provide `hhea's `lineGap' value it
     probably makes sense to use `FT_Get_Sfnt_Table' also to access
     this value.]

(2) Check that

      sTypoAscender - sTypoDescender > 0
      ascent + descent > 0
      usWinAscent + usWinDescent > 0

    and filter out the value pairs that don't fit.  For example, I've
    seen fonts where `sTypo*' values were all zero.

(3) Check that

      -sign(descent) == sign(sTypoDescender) == -sign(usWinDescent)

    If this holds, use `usWin*' or `sTypo*' values, depending on bit 7
    of `fsSelection'.  Maybe use `ascent/descent' if on a Mac.

    If this doesn't hold, try to sanitize the not-fitting value.


     Werner

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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28 17:03               ` Werner LEMBERG
@ 2018-12-28 17:06                 ` Werner LEMBERG
  2018-12-28 19:15                 ` Eli Zaretskii
  1 sibling, 0 replies; 15+ messages in thread
From: Werner LEMBERG @ 2018-12-28 17:06 UTC (permalink / raw)
  To: eliz; +Cc: 33885


> A possible workflow.

BTW, here's another useful page that gives some recommendations on
ascender and descender values.

  https://docs.microsoft.com/en-us/typography/opentype/otspec170/recom


    Werner





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-28 17:03               ` Werner LEMBERG
  2018-12-28 17:06                 ` Werner LEMBERG
@ 2018-12-28 19:15                 ` Eli Zaretskii
  1 sibling, 0 replies; 15+ messages in thread
From: Eli Zaretskii @ 2018-12-28 19:15 UTC (permalink / raw)
  To: Werner LEMBERG; +Cc: 33885

> Date: Fri, 28 Dec 2018 18:03:11 +0100 (CET)
> Cc: 33885@debbugs.gnu.org
> From: Werner LEMBERG <wl@gnu.org>
> 
> >> (2) Improve the heuristics to get sensible global ascent and
> >>     descent values of a font.  In particular, use the FreeType
> >>     library to access a TrueType's or OpenType's `OS/2' table and
> >>     compare its vertical metrics values with the `hhea' data to
> >>     eliminate bugs in the font – sign problems with `descent' do
> >>     happen especially in older fonts that were either designed for
> >>     Apple or for Windows, and the fields for the `other' OS were
> >>     filled out arbitrarily, more or less.
> > 
> > I'd appreciate more details on how this could be done.  I'm no
> > expert on fonts nor on FreeType, and last I checked we have no one
> > else.
> 
> A possible workflow.

Thanks, I will see what I can do about this.  Or maybe someone else
will beat me to it.





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2018-12-27  8:54 bug#33885: 27.0.50; PUA character makes emacs crash Werner LEMBERG
  2018-12-27 10:36 ` Eli Zaretskii
@ 2022-02-12  8:42 ` Lars Ingebrigtsen
  2022-02-12  8:57   ` Eli Zaretskii
  1 sibling, 1 reply; 15+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-12  8:42 UTC (permalink / raw)
  To: Werner LEMBERG; +Cc: 33885

Werner LEMBERG <wl@gnu.org> writes:

> Loading the attached file `bug.el' (containing the single PUA
> character U+E6A3) with
>
>   emacs -Q bug.el
>
> causes a crash:
>
>   xdisp.c:28955:
>     Emacs fatal error:
>       assertion failed:
>         it->ascent >= 0 && it->descent >= 0

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

I vaguely recall a similar problem being fixed recently (but not with
this specific character).  Would it be possible for you to try Emacs 28/29
and see whether the problem is still present there?

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





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2022-02-12  8:42 ` Lars Ingebrigtsen
@ 2022-02-12  8:57   ` Eli Zaretskii
  2022-03-12 22:43     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2022-02-12  8:57 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 33885

> Resent-From: Lars Ingebrigtsen <larsi@gnus.org>
> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
> Resent-CC: bug-gnu-emacs@gnu.org
> Resent-Sender: help-debbugs@gnu.org
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Date: Sat, 12 Feb 2022 09:42:16 +0100
> Cc: 33885@debbugs.gnu.org
> 
> Werner LEMBERG <wl@gnu.org> writes:
> 
> > Loading the attached file `bug.el' (containing the single PUA
> > character U+E6A3) with
> >
> >   emacs -Q bug.el
> >
> > causes a crash:
> >
> >   xdisp.c:28955:
> >     Emacs fatal error:
> >       assertion failed:
> >         it->ascent >= 0 && it->descent >= 0
> 
> (I'm going through old bug reports that unfortunately weren't resolved
> at the time.)
> 
> I vaguely recall a similar problem being fixed recently (but not with
> this specific character).  Would it be possible for you to try Emacs 28/29
> and see whether the problem is still present there?

Yes, we now do

      if (it->ascent < 0)
	it->ascent = 0;
      if (it->descent < 0)
	it->descent = 0;

so I think this assertion violation should not happen anymore.  (And
in a production build, the assertion goes away anyway.)





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

* bug#33885: 27.0.50; PUA character makes emacs crash
  2022-02-12  8:57   ` Eli Zaretskii
@ 2022-03-12 22:43     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 15+ messages in thread
From: Lars Ingebrigtsen @ 2022-03-12 22:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 33885

Eli Zaretskii <eliz@gnu.org> writes:

>> I vaguely recall a similar problem being fixed recently (but not with
>> this specific character).  Would it be possible for you to try Emacs 28/29
>> and see whether the problem is still present there?
>
> Yes, we now do
>
>       if (it->ascent < 0)
> 	it->ascent = 0;
>       if (it->descent < 0)
> 	it->descent = 0;
>
> so I think this assertion violation should not happen anymore.  (And
> in a production build, the assertion goes away anyway.)

And there wasn't any further response within a month, so I'm closing
this bug report.  If the problem still exists, please respond to this
email and we'll reopen the bug report.

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





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

end of thread, other threads:[~2022-03-12 22:43 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-27  8:54 bug#33885: 27.0.50; PUA character makes emacs crash Werner LEMBERG
2018-12-27 10:36 ` Eli Zaretskii
2018-12-27 11:33   ` Eli Zaretskii
2018-12-28  8:33   ` Werner LEMBERG
2018-12-28  9:16     ` Eli Zaretskii
2018-12-28 12:38       ` Werner LEMBERG
2018-12-28 13:30         ` Eli Zaretskii
2018-12-28 14:58           ` Werner LEMBERG
2018-12-28 15:33             ` Eli Zaretskii
2018-12-28 17:03               ` Werner LEMBERG
2018-12-28 17:06                 ` Werner LEMBERG
2018-12-28 19:15                 ` Eli Zaretskii
2022-02-12  8:42 ` Lars Ingebrigtsen
2022-02-12  8:57   ` Eli Zaretskii
2022-03-12 22:43     ` Lars Ingebrigtsen

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).