Nil A
2023-11-11 18:16:34 UTC
Hello, All!
Не часто он был, но сейчас научился воспроизводить.
- берём широкий терминал, больше 200 символов
- начинаем новое сообщение
- нажимаем F2, edit headers
- добавляем любой атрибут, например Alt-K
(gdb) bt
#0 DispHeadAttrs (msg=0x62300001c100) at
/home/fido/src/golded-plus/golded3/gemenu.cpp:41
#1 0x00000000006c92ec in DispHeadAttrs () at
/home/fido/src/golded-plus/golded3/gemenu.cpp:53
#2 0x00000000006c9da8 in toggle_kill () at
/home/fido/src/golded-plus/golded3/gemenu.cpp:158
#3 0x00000000006cedf9 in ProcessAttrs (key=@0x7fffffffb650: 65489) at
/home/fido/src/golded-plus/golded3/gemenu.cpp:567
#4 0x000000000067b43b in GMsgHeaderEdit::handle_other_keys
(this=0x7fffffffb950, key=@0x7fffffffb650: 65489) at
/home/fido/src/golded-plus/golded3/gehdre.cpp:80
#5 0x0000000000bc1905 in gwinput::handle_key (this=0x7fffffffb950, key=65489)
at /home/fido/src/golded-plus/goldlib/gcui/gwinput2.cpp:808
#6 0x0000000000bca9b7 in gwinput2::run (this=0x7fffffffb950, helpcat=4000) at
/home/fido/src/golded-plus/goldlib/gcui/gwinput2.cpp:1425
#7 0x00000000006861d5 in EditHeaderinfo (mode=512, view=..., doedithdr=true)
at /home/fido/src/golded-plus/golded3/gehdre.cpp:498
#8 0x000000000071befb in GMenuEditfile::Run (this=0x7fffffffc280,
__msg=0x62300001c100) at /home/fido/src/golded-plus/golded3/gemnus.cpp:637
#9 0x0000000000774699 in MakeMsg2 (mode=@0x7fffffffc890: 256,
status=@0x7fffffffc830: 114, forwstat=@0x7fffffffc880: 0,
topline=@0x7fffffffc840: 0, msg=0x62300001c100, oldmsg=0x623000000100,
cmpmsg=0x62300001f900) at /home/fido/src/golded-plus/golded3/gepost.cpp:741
#10 0x0000000000781a36 in MakeMsg (mode=256, omsg=0x623000000100,
ignore_replyto=false) at /home/fido/src/golded-plus/golded3/gepost.cpp:1275
#11 0x00000000008271a2 in NewMsg () at
/home/fido/src/golded-plus/golded3/getpls.cpp:1151
#12 0x00000000007bfee8 in Reader () at
/home/fido/src/golded-plus/golded3/geread.cpp:898
#13 0x00000000006c8868 in main (argc=2, argv=0x7fffffffe0b8) at
/home/fido/src/golded-plus/golded3/gemain.cpp:54
(gdb) list
36 void DispHeadAttrs(GMsg* msg)
37 {
38
39 char atrs[200];
40 MakeAttrStr(atrs, sizeof(atrs), &msg->attr);
41 strsetsz(atrs, MAXCOL-CFG->disphdrnodeset.pos);
42
43 HeaderView->window.prints(1, CFG->disphdrnodeset.pos,
HeaderView->window_color, atrs);
44 HeaderView->window.prints(4, 0, HeaderView->window_color,
(msg->attr.att() or msg->attr.frq() or msg->attr.urq()) ? LNG->File :
LNG->Subj);
45 }
(gdb) p MAXCOL
$1 = 364
(gdb) p CFG->disphdrnodeset.pos
$2 = 44
Ну и как обычно такой же патчик
diff --git a/golded3/gemenu.cpp b/golded3/gemenu.cpp
--- a/golded3/gemenu.cpp
+++ b/golded3/gemenu.cpp
@@ -35,8 +35,7 @@ GMsg* MenuMsgPtr;
void DispHeadAttrs(GMsg* msg)
{
-
- char atrs[200];
+ CREATEBUFFER(char, atrs, MAXCOL+1);
MakeAttrStr(atrs, sizeof(atrs), &msg->attr);
strsetsz(atrs, MAXCOL-CFG->disphdrnodeset.pos);
Best Regards, Nil
Не часто он был, но сейчас научился воспроизводить.
- берём широкий терминал, больше 200 символов
- начинаем новое сообщение
- нажимаем F2, edit headers
- добавляем любой атрибут, например Alt-K
(gdb) bt
#0 DispHeadAttrs (msg=0x62300001c100) at
/home/fido/src/golded-plus/golded3/gemenu.cpp:41
#1 0x00000000006c92ec in DispHeadAttrs () at
/home/fido/src/golded-plus/golded3/gemenu.cpp:53
#2 0x00000000006c9da8 in toggle_kill () at
/home/fido/src/golded-plus/golded3/gemenu.cpp:158
#3 0x00000000006cedf9 in ProcessAttrs (key=@0x7fffffffb650: 65489) at
/home/fido/src/golded-plus/golded3/gemenu.cpp:567
#4 0x000000000067b43b in GMsgHeaderEdit::handle_other_keys
(this=0x7fffffffb950, key=@0x7fffffffb650: 65489) at
/home/fido/src/golded-plus/golded3/gehdre.cpp:80
#5 0x0000000000bc1905 in gwinput::handle_key (this=0x7fffffffb950, key=65489)
at /home/fido/src/golded-plus/goldlib/gcui/gwinput2.cpp:808
#6 0x0000000000bca9b7 in gwinput2::run (this=0x7fffffffb950, helpcat=4000) at
/home/fido/src/golded-plus/goldlib/gcui/gwinput2.cpp:1425
#7 0x00000000006861d5 in EditHeaderinfo (mode=512, view=..., doedithdr=true)
at /home/fido/src/golded-plus/golded3/gehdre.cpp:498
#8 0x000000000071befb in GMenuEditfile::Run (this=0x7fffffffc280,
__msg=0x62300001c100) at /home/fido/src/golded-plus/golded3/gemnus.cpp:637
#9 0x0000000000774699 in MakeMsg2 (mode=@0x7fffffffc890: 256,
status=@0x7fffffffc830: 114, forwstat=@0x7fffffffc880: 0,
topline=@0x7fffffffc840: 0, msg=0x62300001c100, oldmsg=0x623000000100,
cmpmsg=0x62300001f900) at /home/fido/src/golded-plus/golded3/gepost.cpp:741
#10 0x0000000000781a36 in MakeMsg (mode=256, omsg=0x623000000100,
ignore_replyto=false) at /home/fido/src/golded-plus/golded3/gepost.cpp:1275
#11 0x00000000008271a2 in NewMsg () at
/home/fido/src/golded-plus/golded3/getpls.cpp:1151
#12 0x00000000007bfee8 in Reader () at
/home/fido/src/golded-plus/golded3/geread.cpp:898
#13 0x00000000006c8868 in main (argc=2, argv=0x7fffffffe0b8) at
/home/fido/src/golded-plus/golded3/gemain.cpp:54
(gdb) list
36 void DispHeadAttrs(GMsg* msg)
37 {
38
39 char atrs[200];
40 MakeAttrStr(atrs, sizeof(atrs), &msg->attr);
41 strsetsz(atrs, MAXCOL-CFG->disphdrnodeset.pos);
42
43 HeaderView->window.prints(1, CFG->disphdrnodeset.pos,
HeaderView->window_color, atrs);
44 HeaderView->window.prints(4, 0, HeaderView->window_color,
(msg->attr.att() or msg->attr.frq() or msg->attr.urq()) ? LNG->File :
LNG->Subj);
45 }
(gdb) p MAXCOL
$1 = 364
(gdb) p CFG->disphdrnodeset.pos
$2 = 44
Ну и как обычно такой же патчик
diff --git a/golded3/gemenu.cpp b/golded3/gemenu.cpp
--- a/golded3/gemenu.cpp
+++ b/golded3/gemenu.cpp
@@ -35,8 +35,7 @@ GMsg* MenuMsgPtr;
void DispHeadAttrs(GMsg* msg)
{
-
- char atrs[200];
+ CREATEBUFFER(char, atrs, MAXCOL+1);
MakeAttrStr(atrs, sizeof(atrs), &msg->attr);
strsetsz(atrs, MAXCOL-CFG->disphdrnodeset.pos);
Best Regards, Nil