Разные недочеты/баги

mix-7
Posts: 1052
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

Не обошлось без багов
Составил в CudaText текстовый файлик для другого компа в сети в папку
smb://192.168.8.xxx/work/ЗАЯВКИ/

Запросил при сохранении root-пароль

Сообщение:

Code: Select all

EFileNotFoundException
Cannot find "pkexec" program to copy as root.
Saved to a temporary file:
/tmp/cudatext_00000.tmp
Подумал, нашел причину:
в имени были двоеточия (разделитель времени)
А компьютер 192.168.8.xxx с Win10

Заменил ":" на "-", сохранил штатно.

Не совсем баг, но просто наблюдение.
main Alexey
Posts: 2826
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

может надо приделать замену невалидных символов вроде ':' при сохранении на "_". делают ли так другие редакторы? как они определяют что сетевой ПК это винда и надо менять символы?
mix-7
Posts: 1052
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

> может надо приделать замену невалидных символов вроде ':' при сохранении на "_".

А нужно ли?
Я не сразу, но догадался.
Хотя сообщение было похоже на ошибку сохранения в сетевом файле.

Если сочтете возможным, то стоит давать предупреждение, что символы недопустимые.
Если подменять - предлагать подмену?
Для Linux только "/" недопустим, насколько помню.

> как они определяют что сетевой ПК это винда и надо менять символы?

Может, есть какой запрос, в какой файловой системе сохранения.
У меня нет под рукой Win, а если в Win попытаться сохранить в файл с недопустимым символом в имени, с ":"?
Может, будет похожая ошибка.

(В коде на Python, помню по WikidPad и его Clipboard Catcher, была проверка на ОС и ветвление.
Мы же благодаря идее Veksha создали универсальный плагин для буфера обмена.)

Есть в Lazarus проверки на OS, вернее, на тип файловой системы при сохранении?
Свойства каталога, в котором сохраняешь?

> делают ли так другие редакторы?

Уже после праздников теперь, наверное. Не подумал проверить. Хотя да, интересно.
Колонка с ИИ подсказала, что многие редакторы предупреждают о недопустимых символах в имени файла, например,
жалкое подобие CT - ST и Np++.
main Alexey
Posts: 2826
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

>Есть в Lazarus проверки на OS, вернее, на тип файловой системы при сохранении?
Свойства каталога, в котором сохраняешь?

такого АПИ нет если считать только верхнее АПИ без IO_CTL. можно заменять ":" но только для всех ОС сразу, а это не хорошо.
mix-7
Posts: 1052
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

Да, я вспомнил, что у меня на ПК с Ubuntu есть на диске раздел NTFS.
Т.е. никак не определить тип ФС при сохранении?

Может тогда обернуть save / save as в assertion (?) c предупреждением о проблеме с сохранением?
main Alexey
Posts: 2826
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

если под *nix делать проверку на ":" в имени файла при save/save_as, то не знаю как юзеры воспримут. мешать будет при сохранении иногда. не знаю
АПИ для детекта file system я не знаю.
main Alexey
Posts: 2826
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

Grok дал ответ про АПИ для паскаля.
https://grok.com/c/003d65c7-e471-44dc-b ... de4f459c10
подумаю, может заюзать, но это некрасивый код вродебы.
main Alexey
Posts: 2826
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

а что делают в том же случае VSCode / SublimeText / Geany / Kate? если они както это обрабатывают и не пускают символ ":" то повод сделать то же.
mix-7
Posts: 1052
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

Надо посмотреть, как в Linux в случае smb-ntfs/ntfs/fat32 сохраняют gedit, Pluma, ST
Думаю, пока достаточно предупреждения, если сохранение происходит с ошибкой.
Можно отловить этот Exception и сообщить пользователю "проблема с сохранением, заданный файл не может быть создан"?

А в чем некрасивость кода, подсказанного Grok?
main Alexey
Posts: 2826
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

EFileNotFoundException (он указан в вашем посте вверху) можно конечно отловить но я не знаю в каких еще случая оно может прийти, и не уверен что этот код ошибки именно про то что "в имени есть кривые символы".

> в чем некрасивость кода, подсказанного Grok?

там используются константы которые специфичны для линукс (берутся их сорцов линукс) и для BSD/solaris/haiku они не катят.
Post Reply