Benedikt Heine
fb5926b6fa
Add tests for queue teardown
2018-11-24 15:22:18 +01:00
Benedikt Heine
e04003e291
Add Framework for queues tests
2018-11-24 15:22:18 +01:00
Benedikt Heine
cb16fe9d96
Fix DoS in notification_format_message
...
When using a format with a trailing % character, dunst ends in an
endless loop, searching for a % char, while pointing exactly with the
haystack on the % character.
Increasing the substring pointer will shift the pointer forwards onto
the actual NULL character and stop the loop.
2018-11-24 15:22:18 +01:00
Nikos Tsipinakis
5f3960b171
Fix id replacement not assigning id if no notification has it
...
In previous releases when a replace request came in with an id that
doesn't exist we created a new notification with it anyway.
This is used by some to imitate the behaviour of `stack_tag` and while
not recommended (as it will break if another notification gets assigned
that id) we want to avoid such subtle breakages without consideration.
This bug was introduced in d879d70da060ea78fe735d62249a0afdf3e61bc8.
2018-11-24 15:22:18 +01:00
Benedikt Heine
28f30d182b
Rename queues teardown function
...
Make it consistent with the queues_init function
2018-11-23 13:50:46 +01:00
Benedikt Heine
e82b7bfb2d
Use return value as success indicator
2018-11-21 10:55:44 +01:00
Benedikt Heine
92543cce22
Remove GLib requirement check
...
The requirement for GLib above 2.36 is already included in the
configuration file. So this type check is redundant.
2018-11-20 19:50:15 +01:00
Benedikt Heine
ed341dfca3
Add S2US macro
2018-11-15 15:17:48 +01:00
Benedikt Heine
9b45a111f1
Sort includes alphabetically
2018-11-15 15:17:48 +01:00
Benedikt Heine
feb62a0c4c
Remove displaced comment
2018-11-15 15:17:48 +01:00
Benedikt Heine
a6abfdf7c5
Include all local files relatively
2018-11-15 15:17:48 +01:00
Benedikt Heine
eba6913faa
Test version number in unittests
...
Enforces a version number as intended in the Makefile. This check is
necessary, as there is no ability to check via Macros for an empty
string.
2018-11-12 15:32:58 +01:00
Nikos Tsipinakis
27c6a1682d
Merge pull request #552 from Gravemind/x-canonical-private-synchronous
...
Implement x-canonical-private-synchronous hint
2018-11-11 19:55:05 +02:00
Benedikt Heine
2d2a9c893c
Add doxygen docs for markup and utils files
2018-11-11 17:27:11 +01:00
Benedikt Heine
413c0d68af
Use assertions and NULL checks in markup and utils
2018-11-11 17:26:14 +01:00
Benedikt Heine
ae1b20881e
Use isspace to test for whitespace
2018-11-11 15:18:56 +01:00
Benedikt Heine
d8d457f500
Remove string_replace()
...
string_replace_at does almost the same and string_replace is only used
once, where additionally string_replace_at would be the better choice.
2018-11-11 15:18:56 +01:00
Jordan Galby
d879d70da0
Implement stack_tag, implementing x-canonical-private-synchronous
...
Implements "x-dunst-stack-tag", "x-canonical-private-synchronous",
"private-synchronous", and "synchronous" hints via the "stack_tag" feature.
2018-11-10 14:59:32 +01:00
Nikos Tsipinakis
b805273fb9
Merge pull request #558 from tsipinakis/feature/markup-escape
...
Implement smarter markup escaping
2018-11-06 21:04:35 +02:00
Nikos Tsipinakis
2c6cb8ebf3
Implement smarter markup escaping
...
Automatically detect and escape invalid and unsupported & entities.
Fixes #546
2018-11-06 20:49:47 +02:00
Benedikt Heine
851f8a7339
Rename dbus methods consistently
2018-10-31 15:19:24 +01:00
Benedikt Heine
9cd600f0bf
Remove unused function get_filename_ext
...
This function had been copied 100% out of the stackoverflow answer
https://stackoverflow.com/a/24976006
2018-10-31 15:19:24 +01:00
Benedikt Heine
a24a464fbc
Remove superfluous pause_signal_handler func
2018-10-31 15:19:24 +01:00
Benedikt Heine
08019dc268
Move context_menu into right header
2018-10-31 15:19:24 +01:00
Andrew Benson
f48a939dbf
Add error message for failed regex initialization
2018-10-29 07:32:19 -07:00
Nikos Tsipinakis
f12f1094ed
Merge pull request #550 from bebehei/misc
...
Misc patches
2018-10-10 17:59:30 +03:00
Benedikt Heine
c0e2a2a7e3
Move all strcmp operations to STR*EQ macros
2018-10-09 10:08:17 +02:00
Benedikt Heine
bb02897bc8
Introduce STR_EQ and STRN_EQ macros
2018-10-09 10:08:17 +02:00
Benedikt Heine
52c47524f2
Test notification referencing
2018-10-08 18:27:11 +02:00
Benedikt Heine
fe7d82380e
Use GLib to spawn browser and dmenu
2018-10-08 18:27:11 +02:00
Benedikt Heine
778a6857d8
Move clean_value function to utils.c
...
This is a typical string manipulation function an has no necessity to
stay in option_parser.
2018-10-08 18:27:11 +02:00
Benedikt Heine
6cc7ca361a
Allow half quoted values
...
Previously config lines like
[rule]
script = mail -s "New notif"
were only possible to get written with additional full quotes,
which makes no sense in command line expressions.
2018-10-08 18:27:11 +02:00
Benedikt Heine
357c4309e6
Pass URLs to browser as a single argument
...
Parsing the arguments with g_shell_parse_argv is more safe than just
splitting it by spaces. Also this allows to pass values with spaces to
the browser command.
2018-10-08 18:27:11 +02:00
Benedikt Heine
851953f5ef
Start dmenu in a separate thread
2018-10-08 18:27:11 +02:00
Benedikt Heine
516161e765
Typo
2018-10-08 17:38:00 +02:00
Benedikt Heine
1f4cd4bd15
Use STR_(EMPTY|FULL) for string emptyness checks
2018-10-08 17:38:00 +02:00
Benedikt Heine
da846d8442
Do not count longer than necessary
...
And also use g_strndup. This makes allocation easier and also ensures a
null-byte at the end of the string.
2018-10-08 17:38:00 +02:00
Benedikt Heine
c80e3e9a42
Harness dispatch_menu_result against stupid input
2018-10-06 13:44:01 +02:00
Benedikt Heine
38c788c367
Split plain dmenu call into separate function
2018-10-06 13:44:01 +02:00
Benedikt Heine
958aa2bc96
Lock notifications while executing dmenu
...
When executing dmenu, the current notifications get "locked", by setting
their timeout temporarily to 0 and referencing them. So the notification
won't get closed (exept forcefully) and won't get freed while dmenu is
opened.
This is currently pointless, but as the dmenu call will become threaded,
it's necessary later.
2018-10-06 13:44:01 +02:00
Benedikt Heine
974bcb776e
Remember if the notification is living on a valid connection
...
The notification spec says, that a notification gets invalidated when
closed. So the client won't listen anymore to ActionInvoked signals and
won't listen to NotificationClosed signals.
Remembering the actual status of the notification helps the standard and
makes the behavior clearer.
2018-10-06 13:44:01 +02:00
Benedikt Heine
837b4fe125
Implement refcounting for notifications
2018-10-06 13:43:49 +02:00
Benedikt Heine
2ef74c0d64
Respect follow mode from defaults struct
2018-10-05 02:10:41 +02:00
Benedikt Heine
403e4cc176
Remove libxdg-basedir dependency
...
GLib's g_get_user_config_dir function does exactly the same thing and
we don't need libxdg-basedir for something else.
2018-10-05 02:10:41 +02:00
Benedikt Heine
0306446efb
Scale PixBuf easier
2018-10-05 02:10:41 +02:00
Benedikt Heine
3b3ed0328e
Free layouts inline
2018-10-01 15:05:42 +02:00
Benedikt Heine
0231fabbd3
Make parse_follow_mode a real parser function
2018-10-01 14:58:36 +02:00
Benedikt Heine
4b5cc2c9bc
Remove superfluous fflush call
...
The blame reveals commit 820cfe73, which introduced printing of
notifications similar to notification_print(). The fflush call is still
left over since porting the printfs into their dedicated method.
As notification_print() is called after this fflush() call, it's not
necessary anymore.
2018-10-01 14:58:36 +02:00
Nikos Tsipinakis
740ebdd5a3
Merge pull request #545 from tsipinakis/bugfix/x11-opt
...
Draw event optimizations
2018-09-24 20:25:17 +03:00
Nikos Tsipinakis
7ac054b3cc
Simplify window showing and hiding
...
As suggested by @bebehei make x_win_{show,hide} callable at any time and
avoid double checking the queue length.
2018-09-20 10:49:40 +03:00