Commit graph

67 commits

Author SHA1 Message Date
altffour
7904d0bbba
xdg: fix memory leaks of special XDG paths variables
use g_strdup_printf() instead of g_build_filename()
2021-01-12 08:38:38 +03:00
altffour
9c634657ce
xdg: add get_irssi_config_dir()
- add get_irssi_config_dir()
- supply autorun_startup(void) with user config directory, rather than
data dir
2021-01-11 23:06:47 +03:00
altffour
b01d0c021d
xdg: use if/else in place of shortened if 2021-01-11 16:31:26 +03:00
altffour
a554e624ff
xdg: fix bug when specifying home directory
When specifying home-dir using --home would skip the part where
irssi_cache_dir & irssi_runtime_dir to be uninitialized. Fix that by
correctly assigning the variables in question, when irssi_dir == NULL.
2021-01-11 16:18:55 +03:00
altffour
059c2a04ea
xdg: apply clang-format patch 2021-01-11 15:58:33 +03:00
altffour
a3ff6baafb
xdg: replace stat() with g_file_test()
- title
- resolve dirp being leaked if XDG directory is found
2021-01-11 15:51:38 +03:00
altffour
4059827741
xdg: implement a better way
Brief about changes:
- add get_irssi_cache_dir()
- add get_irssi_runtime_dir()
- remove is_xdg_supported()

About the proposed implementation:
- use XDG only when the user has the XDG_CONFIG_HOME/irssi directory
- irssi_dir would equal XDG_DATA_HOME/irssi or ~/.irssi, depending on
whether XDG is enabled or not, respectively.
- if xdg is enabled, variables irssi_cache, irssi_runtime, would equal
their respective XDG paths.
- if xdg is *not* enabled, variables irssi_cache, irssi_runtime, would
equal irssi_dir

Notes for future code:
- functions that use the irssi config file would use get_irssi_config()
- functions that use the irssi data directory would use get_irssi_dir()
- functions that use the irssi cache directory would use
get_irssi_cache_dir()
- functions that use the irssi runtime directory would use
get_irssi_runtime_dir()

Stuff that are still missing for complete implementation:
- add checks to ensure the new referenced directories are present
- docs
2021-01-07 13:26:45 +03:00
altffour
9123c6f178
add logic to default to XDG disabled
- defaults to XDG disabled unless the directory is present
2021-01-06 19:46:52 +03:00
altffour
dad31bdfde
add themes XDG support
- fix is_xdg_supported() not being in common.h
- themes are now loaded from $XDG_DATA_HOME, if and only if xdg paths
are being used
2021-01-06 19:20:09 +03:00
altffour
e6b9a07f9a
implement API changes to accomodate for XDG
- add is_xdg_supported() (C and Perl).
- use $XDG_CONFIG_HOME/irssi/ only when it is present.
- fallback mechanism added.
- scripts are run from $XDG_DATA_HOME/irssi/scripts/[autorun], if and
only if xdg is used.
2021-01-06 19:07:18 +03:00
altffour
bfb9ca19f5
fix typos 2021-01-06 18:02:42 +03:00
altffour
f972d05025
add: xdg-support
- config file XDG support inspired from #511
- added support to try loading scripts from XDG_DATA_HOME, if not present try
  loading from XDG_CONFIG_HOME, if not present try loading the usual way.
2021-01-06 17:34:33 +03:00
ailin-nemui
6b93d6e338 implement expando cache
- the expando values need to be stored now that the lines are
  reformattable, otherwise the old values are lost (and they depend on
  context only available at the time the line is initially printed)

- the cache is collected from the special-vars evaluation code

- the cache is controlled by the textbuffer-formats code, and stored in
  the text_buffer_format_rec
2020-04-26 20:42:02 +02:00
=
1bfe27c66e Used Tabs instead of spaces and increased ABI_VERSION 2020-04-06 17:04:35 +02:00
Dennis Pentmeier
f9595c03b1 Changed to async-signal safe method as suggested by dequis 2020-04-04 18:07:08 +02:00
ailin-nemui
cae37e37ca run git-clang-format 2020-04-04 01:12:03 +02:00
Pinguin1234
81dc94c406 Added option to quit in SIGHUP 2020-04-04 00:55:58 +02:00
ailin-nemui
ad7ad063ca implement reference counted strings
- on glib >=2.58, use the implementation provided by glib
- otherwise, a hash table will contain the strings
2019-08-14 20:50:44 +02:00
ailin-nemui
7e6e1f2e10 Use full paths to includes 2019-05-01 22:08:45 +02:00
dequis
0d8632943d Add a wrapper of wcwidth() that picks the best implementation
This adds a i_wcwidth() function that replaces mk_wcwidth(), and a
'wcwidth_implementation' setting to pick which one it wraps.

Values:

- old: uses our local mk_wcwidth() which implements unicode 5.0
- system: uses the libc-provided wcwidth(), which may be better or worse
  than ours depending on how up to date the system is.
- auto: tests the system one against two characters that became
  fullwidth in unicode 5.2 and 9.0 respectively. If either of them pass,
  pick the system implementation, otherwise pick ours.

It defaults to auto.

mk_wcwidth() is still preferable in some cases, since the way it uses
ranges for fullwidth characters means most CJK blocks are covered even
if their characters didn't exist back then.

The "system" implementation is also wrapped to never return -1, but to
assume those unknown characters use one cell. Quoting the code:

    /* Treat all unknown characters as taking one cell. This is
     * the reason mk_wcwidth and other outdated implementations
     * mostly worked with newer unicode, while glibc's wcwidth
     * needs updating to recognize new characters.
     *
     * Instead of relying on that, we keep the behavior of assuming
     * one cell even for glibc's implementation, which is still
     * highly accurate and less of a headache overall.
     */
2018-08-23 02:30:26 -03:00
Edward Tomasz Napierala
0c49a84ffb Add back some ifdefs.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-09 11:06:36 +01:00
Edward Tomasz Napierala
8c04c2be14 Fix build without Capsicum.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
56c94570b4 Implement /cap_enter.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
dequis
96766b7f05 Remove all WIN32 ifdefs (unifdef -UWIN32)
Just use cygwin.

This looks like it wasn't enough to do anything useful, and I don't
think anyone cares about supporting win32 the hard way.
2015-12-09 15:20:59 -03:00
dequis
ef55e0f653 Add missing null terminator to the g_build_path() varargs
Lemon broke it a few commits ago.
2015-10-02 13:48:23 -03:00
LemonBoy
b545bc96a9 Fix a memory leak.
g_get_current_dir() returns a heap-allocated string.
2015-10-02 12:39:08 +02:00
Emanuele Giaquinta
ad66af3c10 Remove useless net-sendbuffer init/deinit functions.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4971 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-12-22 00:11:33 +00:00
Emanuele Giaquinta
e32e6fea4b Make some variables static.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4814 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-04-28 09:27:13 +00:00
Emanuele Giaquinta
ab8da71d29 Remove popt and use glib GOption commandline option parser
(glib-2.6 is now the minimum required version).


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4700 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-02-03 16:48:02 +00:00
Emanuele Giaquinta
fda5181dbd Oops.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4524 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-26 12:00:15 +00:00
Emanuele Giaquinta
841cd8d0cf Cleanup option handling.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4510 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-24 00:25:36 +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
b549e83321 Fix core_init definition.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4437 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-04-07 14:20:00 +00:00
Emanuele Giaquinta
9da0ca72a5 uptime command by Lauri Nurmi with some modifications by me, bug #458.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4389 dbcabf3a-b0e7-0310-adc4-f8d773084564
2006-10-20 12:50:08 +00:00
Emanuele Giaquinta
49d7e3981e Change default value of override_coredump_limit to FALSE.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4388 dbcabf3a-b0e7-0310-adc4-f8d773084564
2006-10-20 12:14:06 +00:00
Timo Sirainen
226a567562 Recode patch by decadix/senneth
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3283 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-08-20 00:03:40 +00:00
Timo Sirainen
fe4cdce6e6 Handle correctly g_get_home_dir() returning NULL, assume it's the current
directory then.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2968 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-10-19 17:48:10 +00:00
Timo Sirainen
0d54e4e299 SIGHUP now does /RELOAD - useful with for example /SBAR prompt DISABLE when
you don't have an input line to recover :)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2556 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-03-10 15:20:44 +00:00
Timo Sirainen
99c3c13f13 fixed module_uniq_destroy() calls
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2444 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-15 08:37:06 +00:00
Timo Sirainen
464ff76954 added #define IRSSI_HOME_CONFIG
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2419 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-10 14:33:42 +00:00
Timo Sirainen
2891a871b7 only the first of --home / --config parameters were parsed, which broke eg.
irssi which was started with --config and /UPGRADEd.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2401 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-02-07 19:30:58 +00:00
Timo Sirainen
855f467474 Use static arrays, so it works with non-ansi C compilers.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2294 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-04 21:20:32 +00:00
Timo Sirainen
bbbb36cf19 /UPGRADE - upgrade-on-the-fly feature. Currently only moves the active
server connections to the new irssi process, but that should be enough to
never quit from IRC again :)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2070 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-19 01:48:58 +00:00
Timo Sirainen
ae1b5b0d50 added irssi_init_finished variable to core.h which is TRUE after "irssi init
finished" signal is sent.

Perl scripts aren't now autoloaded until irssi_init_finished is TRUE (fixes
the crash at startup).


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1879 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-21 13:22:28 +00:00
Timo Sirainen
460281eb8a /SET override_coredump_limit - sets core file size to unlimited if set ON
(default).


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1783 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-09-10 19:50:53 +00:00
Timo Sirainen
803d805016 Module loading updates - /LOAD shows now also the statically loaded modules.
You can't /LOAD the same module twice. Syntax changed to /LOAD <module>
[<submodule>], /UNLOAD <module> [<submodule>].

NOTE: all modules now need to call register_module() in their init()
function.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1748 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-08-14 00:41:59 +00:00
Timo Sirainen
40c7fa1190 --home, --config parameters now expand relative paths to absolute at startup.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1635 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-16 16:56:52 +00:00
Timo Sirainen
316bd7d142 Moved awaylog to core.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1629 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-15 14:07:48 +00:00
Timo Sirainen
79d1d7089a Added --home and --config command line parameters to irssi to specify
locations for ~/.irssi and ~/.irssi/config


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1626 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-07-15 00:39:48 +00:00