We add some additional checks into the config parser's
node_section_index, node_traverse and node_set_str functions. In
particular, we check if the requested node is of scalar or complex type
and whether this matches the value found in the config. If it does not
match, then a warning is issued appropriately and the config is
corrected.
The change introduced in #191 will crash irssi immediately if you
accidentally try to /reload certain broken config files. It is enough to
warn the user in this case, so we turn g_error into g_critical.
this adds the CONFIG_REC * to the config_node_section and
config_node_section_index APIs as they will require access to the config
cache later on to make the config parser more robust.
Fixes issue #187. It's a bit annoying this can't do anything other than
exit, however as there's no schema for the config it's only possible to
validate on use. This level of config can't be accessed from Perl so a
script can't cause Irssi to die (via this method at least).
Use g_string_append_printf() instead of g_string_sprintfa() (which is considered deprecated.)
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5003 dbcabf3a-b0e7-0310-adc4-f8d773084564
config_node_index() function. added config_node_section_index() for
adding/moving node to specified position in list.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2460 dbcabf3a-b0e7-0310-adc4-f8d773084564
and this is what I've been doing a few weeks now.. :) You really shouldn't
upgrade to this version without keeping a backup of the working one, since
this will break everything and at least notify list is broken - probably
something else too.
* On the way to 0.8.0 .. Major rewriting/rearranging code. There's
some changes in behaviour because I'm trying to make Irssi a bit
more compatible with EPIC.
* libPropList isn't needed anymore - I'm using my own configuration
library. This is mostly because different proplists worked a bit
differently everywhere and several people had problems with it.
It's also yet another extra library that you needed to compile
Irssi. New configuration library has several advantages:
You can add comments to configuration file and they also stay
there when it's saved.
It's not nearly as vulnerable as proplist. If some error occurs,
instead of just not reading anything it will try to continue if
possible. Also the error messages are written to irssi's text
window instead of stdout.
It can be managed more easily than proplist - setting/getting the
configuration is a lot more easier.
* Coding style changes - I'm not using gint, gchar etc. anymore,
they're just extra pain when moving code to non-glib projects and
syntax hilighting doesn't work by default with most editors ;)
Indentation style was also changed to K&R because of some political
reasons ;) And I'm already starting to like it.. :) It forces me
to split code to different functions more often and the result is
that the code gets more readable.
And finally I'm also using nst' all over the place.
+ /EVAL <commands> - Expand all the special variables from string and
run it. Commands can be split with ; character. See
docs/SPECIAL_VARS for more info.
+ Aliases are parsed just like /EVAL - arguments are in $0..$9.
+ Text formats are also parsed like /EVAL, arguments used to be in
$1..$9, now they're in $0..$8 so it messes up existing themes..
+ /SET [key [value]] - no more the '=' character. Boolean values
also need to be changed with ON/OFF/TOGGLE values (not yes/no).
Settings aren't saved to disk until you use /SAVE.
+ /TOGGLE <key> [ON/OFF] - same as /SET <key> TOGGLE
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@163 dbcabf3a-b0e7-0310-adc4-f8d773084564