Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Jan 20, 2020 4:37 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 21 posts ]  Go to page Previous 1 2
Author Message
PostPosted: Thu Dec 05, 2019 1:34 am 
Offline

Joined: Sun Dec 01, 2019 5:20 pm
Posts: 12
GerdtR wrote:
passerby, а посмотри, есть ли в конце файла icon.ini пустая строка? Если нет, то попробуй добавить несколько, и снова поэкспериментируй с иконками. Помнится, в libini был глюк из-за этого. Я тогда так и не довёл до ума библиотеку, хотя и поубирал пару багов.
И наверно, после добавления иконки и её исчезновения где-то в icon.ini будут секции с пустыми значениями x,y... Хотя это не так важно.


Пустая строка есть. Но непосредственную причину я обнаружил.

Вот как выглядит конец файла icon.ini после добавления, пересохранения образа и перезагрузки (напомню, добавлялась SCRSHOOT):
========
[22]
name=NSINSTALL
path=/sys/NETWORK/NSINSTALL
param=
i
[23]
name=ScrShoot
path=/sys/SCRSHOOT
param=
ico=60
x=357
y=489
=========

А вот как выглядел исходный конец:
=========
[21]
name=CALC
path=CALC
param=
ico=4
x=204
y=0
[22]
name=NSINSTALL
path=/sys/NETWORK/NSINSTALL
param=
ico=51
x=204
y=136
=========

Т.е. от предыдущей иконки от ico=51 осталась одна буква "i", координаты удалены, а остальное осталось . В результате не только иконку этой секции не показывало, но и следующую (добавленную мною) из-за этой грязи тоже (секция же добавленной иконки корректная, насколько могу видеть).

А вот почему уж так обрезало предыдущую, это я не скажу, это к вам. И к сожалению, сейчас не скажу, удалял ли я иконку NSINSTALL, или ее так без удаления обрезало.

Будет время, на днях повторю все еще раз шаг за шагом, с контролем в процессе содержимого icon.ini


Top
   
PostPosted: Thu Dec 05, 2019 2:17 am 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 448
This should be fixed in r7705.

Function ini.del_section lost the very last byte of file each time the user deletes an icon. First it cut '\n', then '\r', then digits of 'y' field. When the last line becomes 'y=', it's unclear where to draw corresponding icon and it is skipped.


Top
   
PostPosted: Fri Dec 06, 2019 2:07 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 813
Предлагаю сделать в функции ini.del_section следующие оптимизации:
1) убрать метку .searchEndSect, потому что она нигде не используется
2) строки
Code:
jnz   @f
   jmp   .SaveToFile
      @@:

заменить на
Code:
jz   .SaveToFile

3) lodsb и stosb заменить на movsb


I suggest making the following optimizations in the ini.del_section function:
1) remove the label .searchEndSect, because it is not used anywhere
2) lines
Code:
 jnz @f
jmp .SaveToFile
       @@:

replaced by
Code:
 jz .SaveToFile 

3) replace lodsb and stosb with movsb
Spoiler: Show
Attachment:
libini_opt.png
libini_opt.png [ 12.6 KiB | Viewed 245 times ]


Top
   
PostPosted: Fri Dec 06, 2019 8:05 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 448
2) jecxz?

Ok.


Top
   
PostPosted: Fri Dec 13, 2019 7:30 pm 
Offline

Joined: Sun Dec 01, 2019 5:20 pm
Posts: 12
Не претендуя на глубокое тестирование, рискну все же сказать, что этот баг пофиксен (изгалялся как мог - удалял, добавлял, перемещал иконки, выстраивал из и в ручную и по сетке, откреплял, закреплял, сохранял, разве только их переименованием как-то не стал заниматься). Тестировал русскую сборку из архива latest-img-.7z от 4.12.19 (в ней внесены коррективы r7704 и r7705, но, судя по датам, еще не учтены советы уважаемого IgorA от Пт дек 06, 2019 2:07 am).

Кстати, при тестировании столкнулся с тем, что F6 в KFAR не функционирует. Впрочем, это вы, уверен, знаете и без меня, и вопрос уже к разработчику KFAR.


Top
   
PostPosted: Sun Jan 19, 2020 12:54 pm 
Offline

Joined: Sun Dec 01, 2019 5:20 pm
Posts: 12
Решение все же оказалось недостаточно надежным.

Так вчера после цикла удаления, сохранения и перезагрузки у меня на столе обнаружилось ДВЕ иконки Fplay, ни одной zSea (хотя таковую я не удалял), а линк от иконки архиватора указывал на браузер (иконка браузера на столе тоже была и указывала правильно). Впрочем, по последнему (по линку от иконки архиватора) не могу сказать наверняка, произошло ли то в результате указанного выше цикла, либо то была ошибка в исходнике (последняя версия KolubryN10).


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 21 posts ]  Go to page Previous 1 2

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited