mirror of https://github.com/irssi/irssi.git synced 2024-06-16 06:25:24 +00:00
Commit Graph

75 Commits

Author SHA1 Message Date
Ailin Nemui
1131a881cf change realpath to use syntax based on _POSIX_VERSION 2023-08-08 07:59:31 +02:00
Ailin Nemui
8d7449d26f add list_of_lists to config and more error messages 2022-12-18 12:20:07 +01:00
Ailin Nemui
b8736225cf good-bye and thanks, autotools 2022-02-19 21:44:10 +01:00
Ailin Nemui
e7f3946583 configure automake with nostdinc
the current directoryh won't be added to the compiler's -I path
2021-02-02 00:24:34 +01:00
Merge pull request #1246 from ailin-nemui/wrong-prefixes
correct wrong function prefixes

Module authors will have to adapt these changes:

    [M] 'constant I_INPUT_READ'    {G_INPUT_READ}
    [M] 'constant I_INPUT_WRITE'    {G_INPUT_WRITE}
    [M] 'function int i_input_add(GIOChannel*, int, GInputFunction, void*)'    {g_input_add}
    [M] 'function int i_input_add_full(GIOChannel*, int, int, GInputFunction, void*)'    {g_input_add_full}
    [M] 'function int i_input_add_poll(int, int, int, GInputFunction, void*)'    {g_input_add_poll}
    [M] 'function GIOChannel* i_io_channel_new(int)'    {g_io_channel_new}
    [M] 'function int i_io_channel_read_block(GIOChannel*, void*, int)'    {g_io_channel_read_block}
    [M] 'function int i_io_channel_write_block(GIOChannel*, void*, int)'    {g_io_channel_write_block}
    [M] 'function int i_istr_cmp(gconstpointer, gconstpointer)'    {g_istr_cmp}
    [M] 'function int i_istr_equal(gconstpointer, gconstpointer)'    {g_istr_equal}
    [M] 'function guint i_istr_hash(gconstpointer)'    {g_istr_hash}
    [M] 'function void i_log_func(const char*, GLogLevelFlags, const char*)'    {glog_func}
    [M] 'function GSList* i_slist_delete_string(GSList*, const char*, GDestroyNotify)'    {gslist_delete_string}
    [M] 'function GSList* i_slist_find_icase_string(GSList*, const char*)'    {gslist_find_icase_string}
    [M] 'function GSList* i_slist_find_string(GSList*, const char*)'    {gslist_find_string}
    [M] 'function void* i_slist_foreach_find(GSList*, FOREACH_FIND_FUNC, void*)'    {gslist_foreach_find}
    [M] 'function void i_slist_free_full(GSList*, GDestroyNotify)'    {gslist_free_full}
    [M] 'function GSList* i_slist_remove_string(GSList*, const char*)'    {gslist_remove_string}
    [M] 'function char* i_slist_to_string(GSList*, const char*)'    {gslist_to_string}
2021-01-30 21:09:26 +01:00
Ailin Nemui
9181796472 correct wrong function prefixes: g_istr -> i_istr 2021-01-07 10:09:45 +01:00
Ailin Nemui
1f05f86167 package the meson.build files 2021-01-06 22:12:46 +01:00
Ailin Nemui
db16a0a853 meson build support 2019-07-10 09:25:26 +02:00
9e13892e28 fix realpath on old solaris
POSIX.1-2001 did not implement realpath(..., NULL) yet.
Fixes #1042
2019-05-13 15:15:46 +02:00
37f7c7f374 update include guard names 2019-05-01 22:22:22 +02:00
7e6e1f2e10 Use full paths to includes 2019-05-01 22:08:45 +02:00
f9beedd2d0 add more config checks and assertions 2019-01-22 15:24:52 +01:00
3351c54a2f Fix /save not working if the config didn't previously exist
realpath() was supposed to resolve symlinks but it also fails with
ENOENT (no such file or directory) if the file just isn't there.
2018-09-01 19:12:17 -03:00
Lukas Waymann
7d3eb47ab5 Fix potential rename(3) across file systems
Make sure the temporary file in the `config_write` function is created
on the same file system as the file we `rename` it to later.
2018-08-12 10:55:47 +00:00
Lukas Waymann
764f8215a9 Fix /save replacing symlinks with regular files
A side-effect of 8deb618 is that `/save` may replace configuration files
that are symlinks with regular files.  Fix this by resolving all
symlinks before renaming the temporary file.
2018-08-12 07:22:14 +00:00
8deb6182c6 Make config_write more atomic to prevent truncation when out of space
This is modeled after glib's g_file_set_contents. It doesn't use that
function directly because the writing is done with GIOChannel
streaming-like writes and g_file_set_contents expects the whole thing to
be in-memory.

Main differences with g_file_set_contents:

- complete lack of win32 special casing (cygwin/WSL should work though)
- no fallocate() (linux only, but we don't know the size upfront, anyway)
- always calls fsync (glib skips it on btrfs or when not overwriting)

Other than that, it's the same old mkstemp + fsync + rename.
2018-04-08 15:52:09 -03:00
7fb84b5b7d Enforce the is_node_list contract in lib-config setters.
An assertion failure is better than a segfault.
2016-11-29 23:08:45 +01:00
Peder Stray
6b56f098e9 Change g_hash_table_contains() for compatibility with glib < 2.32 2015-04-20 08:01:01 +02:00
Alexander Færøy
eb0f09073c Merge pull request #199 from ailin-nemui/config-parser
Make config parser more robust
2015-04-17 21:23:03 +02:00
f14199d9c1 Change all strcmp() to g_strcmp0() to handle nulls gracefully
Just a string replacement (but i did check every one of them)

    sed -i 's/strcmp(/g_strcmp0(/g' **/*.c
2015-04-07 22:41:05 -03:00
Ailin Nemui
fef25d6a35 Make the config parser more robust
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
2015-02-17 09:50:55 +01:00
Ailin Nemui
af6b789d2a Warn the user instead of crashing on wrong config
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.
2015-02-17 09:50:55 +01:00
Ailin Nemui
96d4fb9156 add CONFIG_REC to config_node_section* APIs
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.
2015-02-17 09:50:55 +01:00
David Leadbeater
db62ddfd55 Die if the wrong type of node is found when traversing config
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).
2014-12-16 12:14:23 +00:00
Dave Reisner
Silences warnings on recent automake such as:

src/core/Makefile.am:3: warning: 'INCLUDES' is the old name for
2014-06-27 09:06:21 -04:00
David Hill
0d4f13d20f Replace deprecated g_str[n]casecmp with g_ascii_str[n]cmp. 2014-06-10 12:06:19 -04:00
Emanuele Giaquinta
b38b75bbb4 Add forgotten g_io_channel_set_close_on_unref call to close the config file fd
after saving, patch by Sven Wegener.

git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5101 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-10-23 21:17:03 +00:00
Alexander Færøy
c561ba35e6 Code Cleanup:
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
2009-02-08 17:22:42 +00:00
Emanuele Giaquinta
4534ef242d Use an io channel to write the config file.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4990 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-16 17:12:27 +00:00
Emanuele Giaquinta
1da5914177 Remove unused and odd function.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4985 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-14 17:53:57 +00:00
Emanuele Giaquinta
01042aec2d Fix typos.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4984 dbcabf3a-b0e7-0310-adc4-f8d773084564
2009-01-14 17:19:42 +00:00
Emanuele Giaquinta
169c55b949 Simplify, use 'o' printf conversion specifier to print number in octal.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4904 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-11-12 23:13:57 +00:00
Emanuele Giaquinta
30aee7b46c Move lib-config typedefs in iconfig.h.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4759 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-03-11 14:55:46 +00:00
Emanuele Giaquinta
9da9751aca Document config_node_set_str.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4757 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-03-11 14:32:04 +00:00
Emanuele Giaquinta
4ca476d465 Fix typos.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4756 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-03-11 13:26:33 +00:00
Emanuele Giaquinta
75352a5998 Keep documentation for public api only in headers to avoid duplication.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4755 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-03-11 13:25:33 +00:00
Emanuele Giaquinta
3c7c3941d7 Remove .cvsignore files.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4672 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-01-21 11:49:10 +00:00
Wouter Coekaerts
9c2d621cc6 Oops. Update address correctly now.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4490 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:41:10 +00:00
Wouter Coekaerts
023026e12b Update FSF address
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4489 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:16:58 +00:00
Emanuele Giaquinta
bcbadbb74f Allow identifiers to start with a digit, bug #177.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4409 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-01-11 23:11:30 +00:00
Timo Sirainen
777bb76195 noinst_HEADERS -> pkginc_HEADERS
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3250 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-05-10 20:30:57 +00:00
Timo Sirainen
b05cfc62e0 config_node_nth() and config_node_index() don't count comments in config
anymore. fixes problems having comments in channels and servers block.

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2971 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-10-25 13:57:16 +00:00
Timo Sirainen
7b2f9bc50a removed useless functions
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2804 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-05-17 21:00:38 +00:00
Timo Sirainen
b38f4da166 renamed old config_node_index() to config_node_nth(). added new
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
2002-02-15 22:18:35 +00:00
Timo Sirainen
f4897860b5 toupper(), tolower(), isspace(), is..etc..() aren't safe with chars in some
systems, use our own is_...() functions now instead.

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2348 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-27 20:45:59 +00:00
Timo Sirainen
0ffcbdc9b4 Removed memory debugging code. It's a lot easier to check for buffer
overflows with electric fence and memory leaks with memprof.

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2095 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-19 20:30:19 +00:00
Timo Sirainen
6a82e806b4 Moved $(GLIB_CFLAGS) after -I includes, to make sure our own .h files get before possibly identically named headers in the glib's include directory.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1975 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-05 14:48:03 +00:00
Timo Sirainen
80df4378d3 added config_node_first() function to get the first non-comment node.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1812 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-22 15:24:40 +00:00
Timo Sirainen
5976d82fa7 config_node_next() - Returns the next non-comment node in list. Use this
function when reading blocks/lists in config file.

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1811 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-22 14:53:54 +00:00
Timo Sirainen
8d6d0ee43e config_node_remove() - NULL parent is treated as root node
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1490 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-05-11 19:53:39 +00:00