forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.GOLDED

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 15.03.2021, 20:12
Nil Alexandrov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Nil Alexandrov написал(а) к All в Mar 21 18:57:32 по местному времени:

Нello, All!

Клонирую эхотаг с православного репозитория https://github.com/golded-plus/golded-plus собираю, и опять тот самый краш наблюдаю, если окно терминала слишком широкое.
Вроде бы ещё несколько лет назад патч был на gemlst.cpp, там char buf[256]; расширялся.

Вопрос, где правильный патч для лечения широких терминалов? Почему он не интегрирован в репу?

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием
  #2  
Старый 15.03.2021, 23:16
Alexey Vissarionov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Alexey Vissarionov написал(а) к Nil Alexandrov в Mar 21 19:18:00 по местному времени:

Доброго времени суток, Nil!
15 Mar 2021 18:57:32, ты -> All:

NA> Клонирую эхотаг с православного репозитория
NA> https://github.com/golded-plus/golded-plus собираю, и опять тот
NA> самый краш наблюдаю, если окно терминала слишком широкое. Вроде
NA> бы ещё несколько лет назад патч был на gemlst.cpp,

Патч или костыль?

NA> там char buf[256]; расширялся.

Очевидно, что это костыль.

NA> Вопрос, где правильный патч для лечения широких терминалов?

Правильный терминал широким не бывает. Хотя корякву, конечно, надо заткнуть...

NA> Почему он не интегрирован в репу?

Присылай дифф.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Время выхода из лабиринта зависит от количества извилин
--- /bin/vi
Ответить с цитированием
  #3  
Старый 15.03.2021, 23:42
Semen Panevin
Guest
 
Сообщений: n/a
По умолчанию Re: Краш на больших терминалах

Semen Panevin написал(а) к Nil Alexandrov в Mar 21 22:24:00 по местному времени:

Доброго здоровьица тебе, Nil!

Monday March 15 2021 18:57, Nil Alexandrov писал All:

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

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

С наилучшими пожеланиями, Семён.

... Хорошо там, где мы есть! (про фидошников)
--- GoldED+/LNX 1.1.5-b20180707 (Linux 5.4.80-gentoo-r1 iF6M10)
Ответить с цитированием
  #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
Ответить с цитированием
  #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
Ответить с цитированием
  #6  
Старый 16.03.2021, 01:32
Alexey Vissarionov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Alexey Vissarionov написал(а) к Nil Alexandrov в Mar 21 00:22:00 по местному времени:

Доброго времени суток, Nil!
15 Mar 2021 23:34:58, ты -> Semen Panevin:

NA>>> Почему он не интегрирован в репу?
SP>> Чего не знаю того не знаю. В одном висит каммент который никто не
SP>> фиксит, в другом висит каммент что он не работает, и тоже никто
SP>> ничего не фиксит.
NA> Короче, вот сейчас у меня вот так вот заработало, в разных
NA> комбинациях, и при чтении, и при написани.
NA> - char buf[256];
NA> + char buf[2560];

Надеюсь, ты понимаешь, что эту профанацию в апстрим никто не пропустит?

Если действительно хочешь приложить руки, сделай по уму - получи ширину терминала через TIOCGWINSZ (`man tty_ioctl`), а потом выполни realloc() означенного буфера (который изначально должен быть NULL, разумеется).

А кроилово ведет исключительно к попадалову.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Безумству храбрых - минута молчания
--- /bin/vi
Ответить с цитированием
  #7  
Старый 16.03.2021, 02:43
Nil Alexandrov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Nil Alexandrov написал(а) к Alexey Vissarionov в Mar 21 01:17:24 по местному времени:

Нello, Alexey!

Tuesday March 16 2021 00:22, from Alexey Vissarionov -> Nil Alexandrov:

NA>> Короче, вот сейчас у меня вот так вот заработало, в разных
NA>> комбинациях, и при чтении, и при написани.
NA>> - char buf[256];
NA>> + char buf[2560];
AV> Надеюсь, ты понимаешь, что эту профанацию в апстрим никто не
AV> пропустит?

Я спросил тут - ответ такой, что патча нет, ну я и починил для себя за 5 минут, понятное дело, что это костыль.

AV> Если действительно хочешь приложить руки, сделай по уму - получи
AV> ширину терминала через TIOCGWINSZ (`man tty_ioctl`), а потом выполни
AV> realloc() означенного буфера (который изначально должен быть NULL,
AV> разумеется).

Зачем ioctl(0, TIOCGWINSZ, ...), если этим уже_ занимается ncurses, man cursvariables(3x) - int COLS; int LINES;
Ну дык по уму и на изменение размера окна надо реагировать, поймать сигнал sigaction(SIGWINCН, ...), переделать буфера и перерисовать endwin(); refresh(); clear();
Но это явно работы не на 5 минут, поэтому я и не берусь :-)

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием
  #8  
Старый 16.03.2021, 02:43
Nil Alexandrov
Guest
 
Сообщений: n/a
По умолчанию Форк голдеда

Nil Alexandrov написал(а) к Serg Podtynnyi в Mar 21 01:30:46 по местному времени:

Нello, Serg!

Tuesday March 16 2021 00:16, from Serg Podtynnyi -> Nil Alexandrov:

SP> Я медленно пилю голдед в своев форке тут
SP> (https://github.com/shtirlic/golded-plus),

А поддержка UTF8 планируется? Я просто не представляю, что там ещё такого большого можно сделать в голдеде, чтобы свой форк делать.

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием
  #9  
Старый 16.03.2021, 06:03
Mykhailo Kapitanov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Mykhailo Kapitanov написал(а) к Serg Podtynnyi в Mar 21 03:33:32 по местному времени:


Нello Serg!

16 Mar 21 00:16, you wrote to Nil Alexandrov:

NA>> - char buf[256];
NA>> + char buf[2560];
SP> Я медленно пилю голдед в своев форке тут

Посмотрел несколько коммитов. Вот такое вызывает недоумение:

=== Cut ===
- #define _GVER_PLATFORM_ "/W64-MSVC"
+ #define _GVER_PLATFORM_ "/W10"
=== Cut ===

Платформа W10? Это как? :)

Mykhailo


--- GoldED+/W64-MSVC 1.1.5-b20180707
Ответить с цитированием
  #10  
Старый 16.03.2021, 06:03
Mykhailo Kapitanov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Mykhailo Kapitanov написал(а) к Alexey Vissarionov в Mar 21 03:36:00 по местному времени:


Нello Alexey!

15 Mar 21 19:18, you wrote to Nil Alexandrov:

NA>> самый краш наблюдаю, если окно терминала слишком широкое. Вроде
NA>> бы ещё несколько лет назад патч был на gemlst.cpp,
AV> Патч или костыль?

Патч-костыль. :) Добро пожаловать в волшебный мир ПО.

NA>> там char buf[256]; расширялся.
AV> Очевидно, что это костыль.

Это ты еще весь код не видел. Там таких костылей чуть больше чем полностью. В то время, статический размер строки (буфера) было дело обычное.

Mykhailo


--- GoldED+/W64-MSVC 1.1.5-b20180707
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:05. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot