Bug 33714 - shell-ini-config добавляет пустую строку в конец файла
: shell-ini-config добавляет пустую строку в конец файла
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/libshell)
: unstable
: all Linux
: P3 minor
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2017-08-01 18:59 by
Modified: 2017-08-03 13:04 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2017-08-01 18:59:23
При удалении одной или всех переменных из секции в конец файла добавляется
пустая строка. Новые секции и переменные добавляются уже *после* этой путой
строки. В результате, после многих вызовов 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 From 2017-08-02 12:11:11 -------
Хорошо подметили. Я нашёл ещё одну багу в этом модуле. Спасибо.
------- Comment #2 From 2017-08-03 13:04:34 -------
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.