OberonCore
https://forum.oberoncore.ru/

Знак % в сообщениях (исправление бага в Linux)
https://forum.oberoncore.ru/viewtopic.php?f=134&t=6938
Страница 1 из 1

Автор:  arisu [ Четверг, 16 Март, 2023 08:16 ]
Заголовок сообщения:  Знак % в сообщениях (исправление бага в Linux)

и, кстати. в линукс-версии во всех кусках, где модальные данетки и прочая показывается, всё тот же любимый баг с "%s". `gtk_message_dialog_new()` на вход принимает printf-style формат, а мы туда суём сразу строку. попадётся где-то в запросе процент — и приехали. я так починил:

добавил `strptr` в прототип:
Код:
   PROCEDURE [ccall16] gtk_message_dialog_new* (parent:GtkWindow; flags:SET;  type:GtkMessageType;buttons:GtkButtonsType;IN message_format:String(*...*); strptr: INTEGER): GtkMessageDialog;


и везде делаю нечто вроде:
Код:
      dlg := Gtk.gtk_message_dialog_new(NIL,
         Gtk.GTK_DIALOG_MODAL + Gtk.GTK_DIALOG_DESTROY_WITH_PARENT,
         type,
         bt,
         "%s", SYSTEM.ADR(uMsg[0]));

ну, думаю, идея фикса понятна. просто забрать у меня не выйдет, потому что я вынес это в отдельный модуль, чтобы рассыпуху по коду не искать. ну, или можно как у меня: всё в модуль HostMsgBoxForm, и обращаться уже только к нему. ;-)

p.s.: я туда полез потому что грязнохачу модальные окошки, и собираюсь сделать эту штуку не гткшной, а формой. хак будет очень-очень грязный, правда, но в теории — работоспособный. ;-)

Автор:  Иван Денисов [ Четверг, 16 Март, 2023 12:58 ]
Заголовок сообщения:  Re: BlackBox 2.0

"Тысяча чертей", да вы правы. И первый раз кто-то на это обратил внимание. А баг весьма лютый.
Вложение:
getOkTest.png
getOkTest.png [ 123.72 КБ | Просмотров: 6618 ]

Но лучше вот так указатель на строку PString сделать ведь?

Автор:  arisu [ Четверг, 16 Март, 2023 17:01 ]
Заголовок сообщения:  Re: BlackBox 2.0

ну, у меня немного другой код просто, мне конкретно тогда было удобней адрес, я и воткнул. тут, мне кажется, без разницы, действительно ли строка, или что другое, лишь бы починить. я увидел и сразу побежал сообщать.

кстати. надо бы сделать поддержку `…` для ccall в компиляторе. никаких особенных проблем с этим нет.

Автор:  arisu [ Пятница, 17 Март, 2023 03:38 ]
Заголовок сообщения:  Re: BlackBox 2.0

rстати. там же в HostGui/Lin ещё printf есть, тоже надо починить на write, например. он, кажется, особо не взывается, но всё равно…

Автор:  Иван Денисов [ Пятница, 17 Март, 2023 08:52 ]
Заголовок сообщения:  Re: BlackBox 2.0

arisu писал(а):
кстати. надо бы сделать поддержку `…` для ccall в компиляторе. никаких особенных проблем с этим нет.

Да вроде нет какой-то нужды в этом. По крайней мере для доработки текущей версии — точно.

Автор:  arisu [ Пятница, 17 Март, 2023 09:28 ]
Заголовок сообщения:  Re: BlackBox 2.0

но ведь и не мешает! ;-)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/