Bug 33714

Summary: shell-ini-config добавляет пустую строку в конец файла
Product: Sisyphus Reporter: manowar <manowar>
Component: libshellAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: minor    
Priority: P3 CC: legion
Version: unstable   
Hardware: all   
OS: Linux   

Description manowar@altlinux.org 2017-08-01 18:59:23 MSK
При удалении одной или всех переменных из секции в конец файла добавляется пустая строка. Новые секции и переменные добавляются уже *после* этой путой строки. В результате, после многих вызовов ini_config_set и ini_config_del, файл получается очень разряженным — человеку его потом редактировать крайне неудобно.

$ echo '[mysection]' >test.ini
$ echo 'myvar = myval' >>test.ini
$ cat test.ini 
[mysection]
myvar = myval
$ . shell-ini-config
$ ini_config_del test.ini mysection
$ cat test.ini 
[mysection]

$ rpm -qf /bin/shell-ini-config
libshell-0.4.1-alt1


Workaround:
Помогает sed -i -e '$ { /^$/ d }' "$CONFIG" после каждого вызова ini_config_del.
Comment 1 Alexey Gladkov 2017-08-02 12:11:11 MSK
Хорошо подметили. Я нашёл ещё одну багу в этом модуле. Спасибо.
Comment 2 Repository Robot 2017-08-03 13:04:34 MSK
libshell-0.4.3-alt1 -> sisyphus:

Thu Aug 03 2017 Alexey Gladkov <legion@altlinux.ru> 0.4.3-alt1
- New version (0.4.3).
- shell-ini-config changes:
  + Do not add new line after deletion (ALT#33714).
  + Preserve spaces in comments.
- shell-git-config changes:
  + Add includeIf support.
- shell-var changes:
  + Add shell_var_is_number.