Показать сообщение отдельно
  #4  
Старый 16.03.2021, 00:42
Nil Alexandrov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Nil Alexandrov написал(а) к Semen Panevin в Mar 21 23:34:58 по местному времени:

Нello, Semen!

Monday March 15 2021 22:24, from Semen Panevin -> Nil Alexandrov:

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

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

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

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

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

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

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

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

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

int mode, changed, currno;

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

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

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

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

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

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


Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием