$ . /bin/shell-ini-config $ echo "[global]" > t $ ini_config_set t global 'param' "val" $ cat t [global] $ echo "exist_param = yes" >> t $ ini_config_set t global 'param' "val" $ cat t [global] exist_param = yes param = val Проблемы: 1. Если нет ни одного параметра в секции, то ничего не добавляется. 2. Добавляемая строка имеет пробел в начале строки.
При изменения значения существующего параметра пробел не добавляется.
У меня не воспроизводится. Я сделал: . ./shell-ini-config echo "[global]" > ./test.ini ini_config_set ./test.ini global 'param' "val" cat ./test.ini Получил: <=== test.ini === [global] <--->param = val ================> Если сделать "echo -n ...", то будет: <=== test.ini === [global] <--->param = val ================> Там не пробел, а табуляция. У меня в примере она отмечена как '<--->'.
По-моему, это был максимум FR на стилевой вопрос -- сделать ручку для выбора, ставить или нет leading \t (добавление которого перед новыми записями для libshell-0.1.7-alt1 подтверждаю).
Алексей, а это можно переназначить переменной в http://git.altlinux.org/gears/l/libshell.git?p=libshell.git;a=blob;f=libshell/shell-ini-config;h=ea11aecdfdc71377f46f0b769013699f9b5a78ff;hb=sisyphus#l81 Чтобы табуляция не была прибита явно для тех файлов, где отступов обычно нет (например, smb.conf, *.desktop)?
Аааа... Понял. Я согласен. Я сделаю как с комментариями.
Прошу проверить 0.1.7-alt1-1-g71fd341
(В ответ на комментарий №6) > Прошу проверить 0.1.7-alt1-1-g71fd341 Прекрасно работает при export shell_ini_config_prefix='' Ещё и сразу переформатирует файл в зависимости от установленного отступа. Думаю, можно отправлять.
libshell-0.1.8-alt1 -> sisyphus: * Wed Nov 14 2012 Alexey Gladkov <legion@altlinux> 0.1.8-alt1 - shell-ini-config changes: + Fix empty lines at EOF (ALT#27974). + Indentation in the ini-file can be configured by shell_ini_config_prefix (ALT#27915).