Показать сообщение отдельно
  #5  
Старый 16.03.2021, 01:32
Serg Podtynnyi
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Serg Podtynnyi написал(а) к Nil Alexandrov в Mar 21 00:16:26 по местному времени:

Нello Nil!

Monday March 15 2021 23:34, I wrote to me:


NA>>> Вопрос, где правильный патч для лечения широких терминалов?
SP>> https://github.com/golded-plus/golded-plus/pulls
SP>> Который из них правильный?

NA> Хаха, смешно, что каждый патч чинит какую-то одну операцию, например,
NA> вывод списка эх, или поиск по списку.. а если написать новое
NA> письмо? Ни один патч из представленных не чинит. Там хоть прямо все
NA> 256 буфера заменяй на бОльшие :-)

NA>>> Почему он не интегрирован в репу?
SP>> Чего не знаю того не знаю. В одном висит каммент который никто не
SP>> фиксит, в другом висит каммент что он не работает, и тоже никто
SP>> ничего не фиксит.

NA> Короче, вот сейчас у меня вот так вот заработало, в разных
NA> комбинациях, и при чтении, и при написани.

NA> diff --git a/golded3/gcarea.cpp b/golded3/gcarea.cpp
NA> index c088ace..286ea44 100644
NA> -+- a/golded3/gcarea.cpp
NA> +++ b/golded3/gcarea.cpp
NA> @@ -192,7 +192,7 @@ void AreaList::AddNewArea(AreaCfg* aa)
NA> }

NA> Desc desc;
NA> - char buf[256];
NA> + char buf[2560];
NA> bool newarea = true;
NA> static int serial = 0;
NA> static int net1st = false;
NA> @@ -907,7 +907,7 @@ void AreaList::ReadEcholist(char* val)
NA> {
NA> char* key;
NA> Path file;
NA> - char buf[256], options[80];
NA> + char buf[2560], options[80];
NA> bool is_sqafix = false;
NA> bool is_dz = false;

NA> diff --git a/golded3/gearea.cpp b/golded3/gearea.cpp
NA> index ddfc6cb..8277f51 100644
NA> -+- a/golded3/gearea.cpp
NA> +++ b/golded3/gearea.cpp
NA> @@ -475,7 +475,7 @@ void GPickArealist::print_line(uint idx, uint pos,
NA> bool isbar) {

NA> vchar vbuf[256];
NA> - char buf[256];
NA> + char buf[2560];

NA> if(AL[idx]->isseparator())
NA> {
NA> @@ -608,7 +608,7 @@ bool GPickArealist::handle_key()
NA> uint n;
NA> uint x;
NA> const char* adesc;
NA> - char buf[256], tmp[256];
NA> + char buf[2560], tmp[256];

NA> int mode, changed, currno;

NA> diff --git a/golded3/geedit.h b/golded3/geedit.h
NA> index cf5d02c..85b7d00 100644
NA> -+- a/golded3/geedit.h
NA> +++ b/golded3/geedit.h
NA> @@ -71,7 +71,7 @@
NA> // -----------------------------------------------------------------
NA> - // Defines

NA> -#define EDIT_BUFLEN 256
NA> +#define EDIT_BUFLEN 2560
NA> #define EDIT_PARABUFLEN 2048

NA> #define EDITUNDOCНAR 0x00000010U
NA> diff --git a/golded3/gemlst.cpp b/golded3/gemlst.cpp
NA> index 72f73fc..5c59d37 100644
NA> -+- a/golded3/gemlst.cpp
NA> +++ b/golded3/gemlst.cpp
NA> @@ -368,7 +368,7 @@ void GMsgList::print_line(uint idx, uint pos, bool
NA> isbar)
NA> mattr_ = hattr;
NA> }

NA> - char buf[256];
NA> + char buf[2560];

NA> if(AA->Msglistwidesubj())
NA> {
NA> @@ -950,7 +950,7 @@ void GThreadlist::GenTree(int idx)

NA> void GThreadlist::print_line(uint idx, uint pos, bool isbar)
NA> {
NA> - char buf[256];
NA> + char buf[2560];
NA> ThreadEntry &t = treeEntryList[idx];
NA> sizet tdlen = xlen - ((AA->Msglistdate() == MSGLISTDATENONE) ?
NA> 8 : 18);

Я медленно пилю голдед в своев форке тут (https://github.com/shtirlic/golded-plus), эту проблему я думаю тоже исправлю,
просто буффер увеличить можно, есть пачт на 40 буфферов ;)

Serg

--- GoldED+ NG/W10
Ответить с цитированием