From: Michael Welsh Duggan <mwd@cert.org>
To: martin rudalics <rudalics@gmx.at>
Cc: Michael Welsh Duggan <mwd@md5i.com>,
"schwab@linux-m68k.org" <schwab@linux-m68k.org>,
"47244@debbugs.gnu.org" <47244@debbugs.gnu.org>
Subject: bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs
Date: Mon, 05 Apr 2021 15:57:06 -0400 [thread overview]
Message-ID: <y2tdefim507be5.fsf@lx-birch.ad.sei.cmu.edu> (raw)
In-Reply-To: <ddac8795-6e62-9881-7be3-1cd654a301c3@gmx.at> (martin rudalics's message of "Mon, 5 Apr 2021 14:45:19 -0400")
martin rudalics <rudalics@gmx.at> writes:
> > buffer_window_count of the *Server* buffer was 1. There were three
> > frames that we looped over in the FOR_EACH_FRAME() loop. Of these, only
> > the first is interesting. In this case window_list_1() in window_loop()
> > returned three windows. For each window, in the
> > REPLACE_BUFFER_IN_WINDOWS_SAFELY case branch, EQ (w->contents, obj)
> > returned false. As a result, best_window is Qnil at the end, and
> > replace-buffer_in_windows_safely_count never gets incremented. For the
> > other two frames the return value of window_list_1() was Qnil.
>
> Astonishing. What are the names of these three buffers via
>
> p XBUFFER (w->contents)->name_
>
> Do they tell you anything about the Gnus configuration you wanted to
> quit? I wouldn't be surprised if one of these were a dead buffer.
Surprisingly, no. Three frames were checked. The only buffers in
windows involved in the entire process were:
"build.ninja" - I had that file in another frame
" *Minibuf-0*" - Looks like this was in the same frame as build.ninja?
"*Server*" - This was the window whose buffer is being deleted
"*scratch*" - The only window in the third frame
I trace through everything in detail here. Maybe too much detail.
Maybe not enough. Hopefully you can follow this session by following
the line numbers (mostly in window.c) and see what is going on. The gdb
session, of course, still exists, and I now know I can recursively "call
replace-buffer_in_windows_safely(XIL(0x5555573fd885))" to trace through
it again, if you need me to.
(gdb) s
3443 if (buffer_window_count (XBUFFER (buffer)))
(gdb) n
3450 FOR_EACH_FRAME (tail, frame)
(gdb) n
3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame);
(gdb) s
window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885),
mini=true, frames=XIL(0x55555820ef55)) at ../../master/src/window.c:2967
2967 bool frame_best_window_flag = false;
(gdb) n
2973 if (FRAMEP (frames))
(gdb)
2974 f = XFRAME (frames);
(gdb)
2980 if (f)
(gdb)
2981 frame_arg = Qlambda;
(gdb)
2994 if (WINDOWP (obj))
(gdb) n
2996 else if (f)
(gdb) n
2997 window = FRAME_SELECTED_WINDOW (f);
(gdb) n
3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg);
(gdb) n
3002 best_window = Qnil;
(gdb) p windows
$52 = XIL(0x555558be6443)
(gdb) ptype
type = union Lisp_X {
<incomplete type>
} *
(gdb) n
3004 for (; CONSP (windows); windows = XCDR (windows))
(gdb) n
3008 window = XCAR (windows);
(gdb) n
3009 w = XWINDOW (window);
(gdb) n
3014 if (!MINI_WINDOW_P (w)
(gdb) p w->contents
$53 = XIL(0x5555578be555)
(gdb) xbuffer
$54 = (struct buffer *) 0x5555578be550
0x555557241db0 "build.ninja"
(gdb) n
3046 if (EQ (w->contents, obj))
(gdb) p obj
$55 = XIL(0x5555573fd885)
(gdb) xbuffer
$56 = (struct buffer *) 0x5555573fd880
0x5555571c18a0 "*Server*"
(gdb) n
3063 break;
(gdb) n
3004 for (; CONSP (windows); windows = XCDR (windows))
(gdb) n
3008 window = XCAR (windows);
(gdb) n
3009 w = XWINDOW (window);
(gdb) n
3014 if (!MINI_WINDOW_P (w)
(gdb) p w->contents
$57 = XIL(0x7ffff2a3cb15)
(gdb) xbuffer
$58 = (struct buffer *) 0x7ffff2a3cb10
0x7ffff2d244ea " *Minibuf-0*"
(gdb) n
3017 || type == REPLACE_BUFFER_IN_WINDOWS_SAFELY
(gdb)
3046 if (EQ (w->contents, obj))
(gdb)
3063 break;
(gdb)
3004 for (; CONSP (windows); windows = XCDR (windows))
(gdb)
3097 return best_window;
(gdb)
3098 }
(gdb)
replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885))
at ../../master/src/window.c:3450
3450 FOR_EACH_FRAME (tail, frame)
(gdb)
3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame);
(gdb) s
window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885),
mini=true, frames=XIL(0x555556fa294d)) at ../../master/src/window.c:2967
2967 bool frame_best_window_flag = false;
(gdb) n
2973 if (FRAMEP (frames))
(gdb)
2974 f = XFRAME (frames);
(gdb)
2980 if (f)
(gdb)
2981 frame_arg = Qlambda;
(gdb)
2994 if (WINDOWP (obj))
(gdb)
2996 else if (f)
(gdb)
2997 window = FRAME_SELECTED_WINDOW (f);
(gdb)
3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg);
(gdb) p window
$59 = XIL(0x55555734b355)
(gdb) xwindow
$60 = (struct window *) 0x55555734b350
84x59+0+0
(gdb) p $60->contents
$61 = XIL(0x5555573fd885)
(gdb) xbuffer
$62 = (struct buffer *) 0x5555573fd880
0x5555571c18a0 "*Server*"
(gdb) s
builtin_lisp_symbol (index=1) at ../../master/src/lisp.h:1007
1007 return make_lisp_symbol (&lispsym[index]);
(gdb) n
1008 }
(gdb) s
window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30),
all_frames=XIL(0xc0)) at ../../master/src/window.c:2863
2863 decode_next_window_args (&window, &minibuf, &all_frames);
(gdb) s
decode_next_window_args (window=0x7fffffffc858, minibuf=0x7fffffffc850,
all_frames=0x7fffffffc848) at ../../master/src/window.c:2672
2672 struct window *w = decode_live_window (*window);
(gdb) s
decode_live_window (window=XIL(0x55555734b355))
at ../../master/src/window.c:246
246 if (NILP (window))
(gdb) n
249 CHECK_LIVE_WINDOW (window);
(gdb) n
250 return XWINDOW (window);
(gdb) n
251 }
(gdb) n
decode_next_window_args (window=0x7fffffffc858, minibuf=0x7fffffffc850,
all_frames=0x7fffffffc848) at ../../master/src/window.c:2673
2673 Lisp_Object miniwin = XFRAME (w->frame)->minibuffer_window;
(gdb) p w->contents
$63 = XIL(0x5555573fd885)
(gdb) xbuffer
$64 = (struct buffer *) 0x5555573fd880
0x5555571c18a0 "*Server*"
(gdb) n
2675 XSETWINDOW (*window, w);
(gdb) n
2678 if (NILP (*minibuf))
(gdb) n
2682 else if (!EQ (*minibuf, Qt))
(gdb) n
2690 if (NILP (*all_frames))
(gdb) n
2695 else if (EQ (*all_frames, Qvisible))
(gdb) n
2697 else if (EQ (*all_frames, make_fixnum (0)))
(gdb) n
2699 else if (FRAMEP (*all_frames))
(gdb) n
2701 else if (!EQ (*all_frames, Qt))
(gdb) n
2702 *all_frames = Qnil;
(gdb) n
2703 }
(gdb) n
window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30),
all_frames=XIL(0)) at ../../master/src/window.c:2864
2864 list = Qnil;
(gdb) n
2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail))
(gdb) s
window_list () at ../../master/src/window.c:2563
2563 if (!CONSP (Vwindow_list))
(gdb) n
2581 return Vwindow_list;
(gdb) p Vwindow_list
$65 = XIL(0x555558bc6353)
(gdb) ptype
type = union Lisp_X {
<incomplete type>
} *
(gdb) xcons
$66 = (struct Lisp_Cons *) 0x555558bc6350
{
u = {
s = {
car = XIL(0x5555571ebfc5),
u = {
cdr = XIL(0x555558bc6363),
chain = 0x555558bc6363
}
},
gcaligned = 0xc5
}
}
(gdb) n
2582 }
(gdb) n
window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30),
all_frames=XIL(0)) at ../../master/src/window.c:2867
2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames))
(gdb) s
candidate_window_p (window=XIL(0x5555571ebfc5), owindow=XIL(0x55555734b355),
minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605
2605 struct window *w = XWINDOW (window);
(gdb) n
2606 struct frame *f = XFRAME (w->frame);
(gdb) p w->contents
$67 = XIL(0x5555578be555)
(gdb) xbuffer
$68 = (struct buffer *) 0x5555578be550
0x555557241db0 "build.ninja"
(gdb) n
2607 bool candidate_p = true;
(gdb)
2609 if (!BUFFERP (w->contents))
(gdb)
2611 else if (MINI_WINDOW_P (w)
(gdb)
2619 else if (EQ (all_frames, Qt))
(gdb)
2621 else if (NILP (all_frames))
(gdb)
2623 eassert (WINDOWP (owindow));
(gdb) n
2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame);
(gdb) n
2661 return candidate_p;
(gdb) p candidate_p
$69 = false
(gdb) n
2662 }
(gdb) n
window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30),
all_frames=XIL(0)) at ../../master/src/window.c:2866
2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail))
(gdb) n
2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames))
(gdb) s
candidate_window_p (window=XIL(0x55555820f3cd), owindow=XIL(0x55555734b355),
minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605
2605 struct window *w = XWINDOW (window);
(gdb) n
2606 struct frame *f = XFRAME (w->frame);
(gdb) p w->contents
$70 = XIL(0x7ffff2a3cb15)
(gdb) xbuffer
$71 = (struct buffer *) 0x7ffff2a3cb10
0x7ffff2d244ea " *Minibuf-0*"
(gdb) n
2607 bool candidate_p = true;
(gdb) n
2609 if (!BUFFERP (w->contents))
(gdb) n
2611 else if (MINI_WINDOW_P (w)
(gdb) n
2612 && (EQ (minibuf, Qlambda)
(gdb) n
2613 || (WINDOWP (minibuf) && !EQ (minibuf, window))))
(gdb) n
2619 else if (EQ (all_frames, Qt))
(gdb) n
2621 else if (NILP (all_frames))
(gdb) n
2623 eassert (WINDOWP (owindow));
(gdb) n
2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame);
(gdb) n
2661 return candidate_p;
(gdb) p candidate_p
$72 = false
(gdb) n
2662 }
(gdb)
window_list_1 (window=XIL(0x55555734b355), minibuf=XIL(0x30),
all_frames=XIL(0)) at ../../master/src/window.c:2866
2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail))
(gdb)
2871 list = Fnreverse (list);
(gdb) n
2872 rest = Fmemq (window, list);
(gdb) p list
$73 = XIL(0)
(gdb) n
2873 if (!NILP (rest) && !EQ (rest, list))
(gdb) p rest
$74 = XIL(0)
(gdb) n
2880 return list;
(gdb) n
2881 }
(gdb) n
window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885),
mini=true, frames=XIL(0x555556fa294d)) at ../../master/src/window.c:3002
3002 best_window = Qnil;
(gdb) p windows
$75 = XIL(0)
(gdb) p window
$76 = XIL(0x55555734b355)
(gdb) xwindow
$77 = (struct window *) 0x55555734b350
84x59+0+0
(gdb) p $77->contents
$78 = XIL(0x5555573fd885)
(gdb) xbuffer
$79 = (struct buffer *) 0x5555573fd880
0x5555571c18a0 "*Server*"
(gdb) n
3004 for (; CONSP (windows); windows = XCDR (windows))
(gdb)
3097 return best_window;
(gdb)
3098 }
(gdb)
replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885))
at ../../master/src/window.c:3450
3450 FOR_EACH_FRAME (tail, frame)
(gdb)
3451 window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, true, frame);
(gdb) s
window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885),
mini=true, frames=XIL(0x555555eff9dd)) at ../../master/src/window.c:2967
2967 bool frame_best_window_flag = false;
(gdb) n
2973 if (FRAMEP (frames))
(gdb)
2974 f = XFRAME (frames);
(gdb)
2980 if (f)
(gdb)
2981 frame_arg = Qlambda;
(gdb)
2994 if (WINDOWP (obj))
(gdb)
2996 else if (f)
(gdb)
2997 window = FRAME_SELECTED_WINDOW (f);
(gdb)
3001 windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg);
(gdb) p window
$80 = XIL(0x555555effc45)
(gdb) xwindow
$81 = (struct window *) 0x555555effc40
80x23+0+1
(gdb) p $81->contents
$82 = XIL(0x7ffff256f6fd)
(gdb) xbuffer
$83 = (struct buffer *) 0x7ffff256f6f8
0x7ffff2d2003a "*scratch*"
(gdb) s
builtin_lisp_symbol (index=1) at ../../master/src/lisp.h:1007
1007 return make_lisp_symbol (&lispsym[index]);
(gdb) n
1008 }
(gdb) s
window_list_1 (window=XIL(0x555555effc45), minibuf=XIL(0x30),
all_frames=XIL(0xc0)) at ../../master/src/window.c:2863
2863 decode_next_window_args (&window, &minibuf, &all_frames);
(gdb) n
2864 list = Qnil;
(gdb)
2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail))
(gdb)
2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames))
(gdb) s
candidate_window_p (window=XIL(0x5555571ebfc5), owindow=XIL(0x555555effc45),
minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605
2605 struct window *w = XWINDOW (window);
(gdb) n
2606 struct frame *f = XFRAME (w->frame);
(gdb) p w->contents
$87 = XIL(0x5555578be555)
(gdb) xbuffer
$88 = (struct buffer *) 0x5555578be550
0x555557241db0 "build.ninja"
(gdb) n
2607 bool candidate_p = true;
(gdb) n
2609 if (!BUFFERP (w->contents))
(gdb) n
2611 else if (MINI_WINDOW_P (w)
(gdb) n
2619 else if (EQ (all_frames, Qt))
(gdb) n
2621 else if (NILP (all_frames))
(gdb) n
2623 eassert (WINDOWP (owindow));
(gdb) n
2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame);
(gdb) n
2661 return candidate_p;
(gdb) p candidate_p
$89 = false
(gdb) n
2662 }
(gdb) n
window_list_1 (window=XIL(0x555555effc45), minibuf=XIL(0x30),
all_frames=XIL(0)) at ../../master/src/window.c:2866
2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail))
(gdb) n
2867 if (candidate_window_p (XCAR (tail), window, minibuf, all_frames))
(gdb) s
candidate_window_p (window=XIL(0x55555820f3cd), owindow=XIL(0x555555effc45),
minibuf=XIL(0x30), all_frames=XIL(0)) at ../../master/src/window.c:2605
2605 struct window *w = XWINDOW (window);
(gdb) n
2606 struct frame *f = XFRAME (w->frame);
(gdb) p w->contents
$90 = XIL(0x7ffff2a3cb15)
(gdb) xbuffer
$91 = (struct buffer *) 0x7ffff2a3cb10
0x7ffff2d244ea " *Minibuf-0*"
(gdb) n
2607 bool candidate_p = true;
(gdb) n
2609 if (!BUFFERP (w->contents))
(gdb) n
2611 else if (MINI_WINDOW_P (w)
(gdb) n
2612 && (EQ (minibuf, Qlambda)
(gdb) n
2613 || (WINDOWP (minibuf) && !EQ (minibuf, window))))
(gdb) n
2619 else if (EQ (all_frames, Qt))
(gdb) n
2621 else if (NILP (all_frames))
(gdb) n
2623 eassert (WINDOWP (owindow));
(gdb) n
2624 candidate_p = EQ (w->frame, XWINDOW (owindow)->frame);
(gdb) n
2661 return candidate_p;
(gdb) p candidate_p
$92 = false
(gdb) n
2662 }
(gdb) n
window_list_1 (window=XIL(0x555555effc45), minibuf=XIL(0x30),
all_frames=XIL(0)) at ../../master/src/window.c:2866
2866 for (tail = window_list (); CONSP (tail); tail = XCDR (tail))
(gdb) n
2871 list = Fnreverse (list);
(gdb) n
2872 rest = Fmemq (window, list);
(gdb) n
2873 if (!NILP (rest) && !EQ (rest, list))
(gdb) n
2880 return list;
(gdb) p list
$93 = XIL(0)
(gdb) n
2881 }
(gdb) n
window_loop (type=REPLACE_BUFFER_IN_WINDOWS_SAFELY, obj=XIL(0x5555573fd885),
mini=true, frames=XIL(0x555555eff9dd)) at ../../master/src/window.c:3002
3002 best_window = Qnil;
(gdb) n
3004 for (; CONSP (windows); windows = XCDR (windows))
(gdb) n
3097 return best_window;
(gdb) n
3098 }
(gdb) n
replace_buffer_in_windows_safely (buffer=XIL(0x5555573fd885))
at ../../master/src/window.c:3450
3450 FOR_EACH_FRAME (tail, frame)
(gdb) n
3454 eassert (count == replace_buffer_in_windows_safely_count);
(gdb) p count
$94 = 1
(gdb) p replace_buffer_in_windows_safely_count
$95 = 0
--
Michael Welsh Duggan
(mwd@cert.org)
next prev parent reply other threads:[~2021-04-05 19:57 UTC|newest]
Thread overview: 160+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-18 15:39 bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs Michael Welsh Duggan
2021-03-18 15:42 ` Michael Welsh Duggan
2021-03-18 15:49 ` Michael Welsh Duggan
2021-03-18 16:02 ` Andreas Schwab
2021-03-18 16:02 ` Eli Zaretskii
2021-03-18 16:27 ` Michael Welsh Duggan
2021-03-18 16:45 ` Eli Zaretskii
2021-03-18 16:54 ` Michael Welsh Duggan
2021-03-18 18:41 ` Eli Zaretskii
2021-03-18 18:54 ` Michael Welsh Duggan
2021-03-18 19:16 ` Eli Zaretskii
2021-03-18 19:24 ` Michael Welsh Duggan
2021-03-18 19:51 ` Eli Zaretskii
2021-03-18 20:13 ` Andreas Schwab
2021-03-18 20:27 ` Eli Zaretskii
2021-03-19 1:50 ` Michael Welsh Duggan
2021-03-19 6:47 ` Eli Zaretskii
2021-03-19 13:37 ` Michael Welsh Duggan
2021-03-19 13:41 ` Michael Welsh Duggan
2021-03-19 13:51 ` Eli Zaretskii
2021-03-19 13:49 ` Eli Zaretskii
2021-03-19 14:18 ` Michael Welsh Duggan
2021-03-19 14:21 ` Michael Welsh Duggan
2021-03-19 15:00 ` Eli Zaretskii
2021-03-19 15:14 ` Michael Welsh Duggan
2021-03-23 14:18 ` Michael Welsh Duggan
2021-03-23 15:02 ` Eli Zaretskii
2021-03-23 15:08 ` Michael Welsh Duggan
2021-03-23 16:42 ` Eli Zaretskii
2021-03-23 15:23 ` martin rudalics
2021-03-23 15:53 ` Michael Welsh Duggan
2021-03-23 16:45 ` Eli Zaretskii
2021-03-24 6:53 ` martin rudalics
2021-03-24 14:14 ` Michael Welsh Duggan
2021-03-24 16:09 ` martin rudalics
2021-03-25 2:19 ` Michael Welsh Duggan
2021-03-25 6:25 ` Eli Zaretskii
2021-03-29 14:06 ` Michael Welsh Duggan
2021-03-29 14:28 ` Eli Zaretskii
2021-03-29 14:39 ` Michael Welsh Duggan
2021-03-29 15:02 ` Eli Zaretskii
2021-03-29 15:07 ` Eli Zaretskii
2021-03-29 15:21 ` Michael Welsh Duggan
2021-03-29 15:26 ` Michael Welsh Duggan
2021-03-29 15:27 ` Eli Zaretskii
2021-03-29 15:33 ` Michael Welsh Duggan
2021-03-29 15:34 ` Michael Welsh Duggan
2021-03-29 15:41 ` Eli Zaretskii
2021-03-29 16:23 ` Michael Welsh Duggan
2021-03-29 15:21 ` Eli Zaretskii
2021-03-29 16:05 ` martin rudalics
2021-03-29 16:26 ` Michael Welsh Duggan
2021-03-29 17:33 ` martin rudalics
2021-03-29 19:12 ` Michael Welsh Duggan
2021-03-30 7:30 ` martin rudalics
2021-03-30 13:39 ` Michael Welsh Duggan
2021-03-30 14:36 ` martin rudalics
2021-03-30 14:51 ` Michael Welsh Duggan
2021-03-30 15:05 ` martin rudalics
2021-03-30 14:13 ` Michael Welsh Duggan
2021-03-30 14:36 ` martin rudalics
2021-03-30 14:48 ` Eli Zaretskii
2021-03-30 15:05 ` martin rudalics
2021-03-30 15:13 ` Eli Zaretskii
2021-03-30 16:52 ` martin rudalics
2021-03-30 17:05 ` Eli Zaretskii
2021-03-31 6:41 ` martin rudalics
2021-03-31 7:09 ` Eli Zaretskii
2021-03-30 15:03 ` Michael Welsh Duggan
2021-03-30 16:52 ` martin rudalics
2021-03-31 13:23 ` Michael Welsh Duggan
2021-03-31 13:53 ` Michael Welsh Duggan
2021-03-31 14:01 ` Eli Zaretskii
2021-03-31 14:32 ` martin rudalics
2021-03-31 14:48 ` Michael Welsh Duggan
2021-03-31 15:49 ` martin rudalics
2021-03-31 17:01 ` Michael Welsh Duggan
2021-03-31 18:41 ` martin rudalics
2021-03-31 19:14 ` Michael Welsh Duggan
2021-03-31 19:18 ` Michael Welsh Duggan
2021-04-01 7:14 ` martin rudalics
2021-04-01 7:45 ` Eli Zaretskii
2021-04-01 13:20 ` Michael Welsh Duggan
2021-04-01 13:22 ` Eli Zaretskii
2021-04-01 13:54 ` Michael Welsh Duggan
2021-04-01 14:56 ` martin rudalics
2021-04-01 18:30 ` Michael Welsh Duggan
2021-04-01 19:31 ` Michael Welsh Duggan
2021-04-02 6:48 ` martin rudalics
2021-04-05 18:15 ` Michael Welsh Duggan
2021-04-05 18:45 ` martin rudalics
2021-04-05 19:57 ` Michael Welsh Duggan [this message]
2021-04-05 20:39 ` martin rudalics
2021-04-05 20:56 ` Michael Welsh Duggan
2021-04-06 8:10 ` martin rudalics
2021-04-06 14:40 ` Michael Welsh Duggan
2021-04-06 16:12 ` martin rudalics
2021-04-06 16:48 ` Michael Welsh Duggan
2021-04-06 17:00 ` martin rudalics
2021-04-06 17:24 ` Michael Welsh Duggan
2021-04-07 2:22 ` Michael Welsh Duggan
2021-04-07 7:52 ` Andreas Schwab
2021-04-07 9:00 ` martin rudalics
2021-04-07 12:42 ` Michael Welsh Duggan
2021-04-07 13:35 ` martin rudalics
2021-04-07 15:29 ` Michael Welsh Duggan
2021-04-07 16:16 ` martin rudalics
2021-04-07 17:37 ` Michael Welsh Duggan
2021-04-07 17:55 ` Michael Welsh Duggan
2021-04-07 18:31 ` Michael Welsh Duggan
2021-04-07 19:25 ` Michael Welsh Duggan
2021-04-07 20:25 ` martin rudalics
2021-04-07 20:32 ` Michael Welsh Duggan
2021-04-08 6:59 ` martin rudalics
2021-04-08 10:47 ` Gregory Heytings
2021-04-08 11:39 ` Eli Zaretskii
2021-04-08 12:06 ` Andreas Schwab
2021-04-08 12:29 ` Eli Zaretskii
2021-04-08 12:43 ` Gregory Heytings
2021-04-08 12:59 ` Eli Zaretskii
2021-04-08 16:20 ` Gregory Heytings
2021-04-08 12:03 ` martin rudalics
2021-04-08 12:24 ` Gregory Heytings
2021-04-08 13:39 ` Michael Welsh Duggan
2021-04-08 14:35 ` Michael Welsh Duggan
2021-04-08 15:08 ` Eli Zaretskii
2021-04-08 15:24 ` Andreas Schwab
2021-04-08 15:21 ` Michael Welsh Duggan
2021-04-08 15:33 ` Michael Welsh Duggan
2021-04-08 15:48 ` martin rudalics
2021-04-08 16:01 ` Michael Welsh Duggan
2021-04-08 16:14 ` martin rudalics
2021-04-08 16:35 ` Eli Zaretskii
2021-04-08 16:42 ` Michael Welsh Duggan
2021-04-08 15:58 ` Eli Zaretskii
2021-04-08 16:05 ` Michael Welsh Duggan
2021-04-08 16:28 ` Eli Zaretskii
2021-04-08 16:37 ` Michael Welsh Duggan
2021-04-08 16:49 ` Eli Zaretskii
2021-04-08 17:15 ` Michael Welsh Duggan
2021-04-08 17:11 ` Michael Welsh Duggan
2021-04-08 17:46 ` Eli Zaretskii
2021-04-08 17:51 ` Michael Welsh Duggan
2021-04-08 18:52 ` martin rudalics
2021-04-09 20:59 ` Michael Welsh Duggan
2021-04-10 7:15 ` martin rudalics
2021-04-10 14:53 ` Michael Welsh Duggan
2021-04-10 18:57 ` martin rudalics
2021-04-17 8:01 ` martin rudalics
2021-04-20 14:03 ` Michael Welsh Duggan
2021-04-07 19:40 ` Eli Zaretskii
2021-04-07 18:48 ` martin rudalics
2021-04-07 18:53 ` Michael Welsh Duggan
2021-04-07 20:25 ` martin rudalics
2021-04-07 9:00 ` martin rudalics
2021-03-19 8:15 ` martin rudalics
2021-03-19 8:19 ` Eli Zaretskii
2021-03-19 9:18 ` martin rudalics
2021-03-19 9:37 ` martin rudalics
2021-03-19 11:55 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=y2tdefim507be5.fsf@lx-birch.ad.sei.cmu.edu \
--to=mwd@cert.org \
--cc=47244@debbugs.gnu.org \
--cc=mwd@md5i.com \
--cc=rudalics@gmx.at \
--cc=schwab@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).