Commit Graph

154 Commits (master)

Author SHA1 Message Date
C. McEnroe 0968a8ac7c Recalculate unreadHard on reflow 2020-09-02 21:29:03 -04:00
C. McEnroe 96386adac3 Hide ignored messages at the soft -> hard buffer layer
This restores normal scrolling behaviour.
2020-09-02 18:51:07 -04:00
C. McEnroe d00b3d3b70 Actually insert blank lines in the soft buffer
So they can be preserved forever!
2020-09-02 16:29:38 -04:00
C. McEnroe 149cafc5ab Render one main window from buffers
Still missing: split scrolling and preserving a blank on reflow either
from resize or ignore toggling.

Anecdata: on one of my instances of catgirl, RAM usage of the previous
release was ~30M, RAM usage of this commit was ~12M.
2020-09-02 00:27:16 -04:00
C. McEnroe 4dc87ab9cd Implement buffer line wrapping
Not yet rendered in the UI! Just done in parallel.
2020-09-01 22:54:26 -04:00
C. McEnroe ded2b6afb6 Factor buffer out of ui
In preparation for doing line wrapping outside of ncurses.
2020-09-01 20:36:50 -04:00
C. McEnroe a98fd70aac Move styleParse out of ui 2020-09-01 18:05:17 -04:00
C. McEnroe 8190d76086 Use a static buffer for base directory paths 2020-08-21 16:49:10 -04:00
C. McEnroe d9a0364cb4 Use configPath to load TLS cert/priv 2020-08-20 14:56:13 -04:00
C. McEnroe f432bd72fa Refactor base dir functions to iterate over paths 2020-08-20 14:08:51 -04:00
C. McEnroe 814c36223a Say "OpenSSL" in additional permission notices
LibreSSL is "a modified version of that library".
2020-08-04 12:19:14 -04:00
C. McEnroe 4c1b1fc6a3 Replace catf with something that tracks len
Also the old catf would be broken with -DNDEBUG oops!
2020-07-30 14:37:46 -04:00
C. McEnroe a142ebcf43 Define explicit_bzero using memset_s on macOS 2020-07-30 13:36:17 -04:00
C. McEnroe 5a3b63e444 Remove use of strlcat
catf is not better though and should really be replaced.
2020-07-30 13:05:24 -04:00
C. McEnroe 94fb9798c5 Bump ParamCap to 254
Apparently IRCds have decided that the 15-parameter limit doesn't matter
anymore. 254 is the maximum number of single-byte parameters (following
a single-byte command) which fit in a 512-byte CR-LF-terminated line.
When everyone decides that the 512-byte line length limit doesn't matter
either, I will delete my software and people can use some JavaScript
garbage instead.

This makes struct Message 2080 bytes, but there's only ever one or two
of them around at once. Avoid passing it by value to handle.
2020-06-24 13:36:24 -04:00
C. McEnroe 721c3a9ee6 Add additional permission for linking with LibreSSL
https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
2020-06-08 17:48:07 -04:00
Michael Forney bde0f47a70 Mark global variables in chat.h as extern
This fixes the build with gcc 10, which enables -fno-common by
default.
2020-05-07 20:00:33 -04:00
C. McEnroe 73bda18110 Check ignores against id
Otherwise they do not work correctly for QUIT and NICK. This also lets
you ignore private messages only by putting the nick in the third field.
2020-04-07 13:18:42 -04:00
C. McEnroe e3f7362241 Add M-q to collapse whitespace 2020-04-07 10:48:44 -04:00
C. McEnroe 25f419465f Add /ignore message filtering patterns 2020-03-31 14:30:42 -04:00
C. McEnroe a0dde10cb6 Add text macros 2020-03-30 14:56:26 -04:00
C. McEnroe d99f20c0ff Add logging functions
The mkdir dance is a bit awkward...
2020-03-25 18:56:09 -04:00
C. McEnroe 4f40ace9d4 Track MODE in replies 2020-03-23 16:52:24 -04:00
C. McEnroe cf1545870a Assume worst case for unknown user and host in splitMessage
The default USERLEN of 9 doesn't have a great source, the RFC only says
that nicks are length 9, so my assumption is that usernames are not
longer.
2020-03-23 13:25:10 -04:00
C. McEnroe eb6316c235 Track own host, handle CHGHOST 2020-03-22 14:32:20 -04:00
C. McEnroe 8570a62235 Implement the causal.agency/consumer capability 2020-02-29 01:03:46 -05:00
C. McEnroe 3c5e1c95a4 Add /mode, /except, /invex and handle lists replies 2020-02-25 02:12:35 -05:00
C. McEnroe 56de4668ac Add /ban, /unban and handle ban list replies 2020-02-19 21:47:16 -05:00
C. McEnroe b20be7cbad Various small cleanups
Haven't really gone through ui.c yet.
2020-02-16 23:05:43 -05:00
C. McEnroe ba524ed804 Replace a lot of snprintf with a catf implementation 2020-02-16 19:12:19 -05:00
C. McEnroe edd8855418 Track EXCEPTS and INVEX modes 2020-02-16 18:31:50 -05:00
C. McEnroe 700b5d5870 Replace small integers in size_t with uint 2020-02-15 22:19:55 -05:00
C. McEnroe 9b1ab69908 Track PREFIX modes and CHANMODES 2020-02-15 05:29:54 -05:00
C. McEnroe a91e5fc805 Enable multi-prefix 2020-02-15 04:59:50 -05:00
C. McEnroe 42d106260b Separate network info from self 2020-02-15 04:54:53 -05:00
C. McEnroe 39a343980b Add /invite 2020-02-14 21:36:58 -05:00
C. McEnroe 8aa6dd86f6 Add /away 2020-02-14 21:10:40 -05:00
C. McEnroe 46f61dfcdc Add /exec 2020-02-13 22:22:11 -05:00
C. McEnroe 1e226593ef Rename procPipe to utilPipe 2020-02-13 21:57:55 -05:00
C. McEnroe 92ccabaafd Refactor windows into array and add /move
Oof.
2020-02-13 05:05:53 -05:00
C. McEnroe 0a772ff139 Explicitly close the TLS connection
Just to be nice.
2020-02-13 01:01:23 -05:00
C. McEnroe 180bbc7b38 Add -N flag for notifications 2020-02-12 20:12:34 -05:00
multiplexd 1e544ce482 Implement source address selection
This commit adds a '-S' command line option and a "bind"
configuration file option to specify the source address to bind to when
connecting to the IRC server.
2020-02-13 00:05:52 +00:00
C. McEnroe 489df70c37 Add /list 2020-02-12 02:39:23 -05:00
C. McEnroe 14ae13f781 Add C-t transpose
Also in emacs, weechat.
2020-02-12 01:16:40 -05:00
C. McEnroe d73085eaa9 Allow for arguments to open/copy utilities 2020-02-12 00:48:43 -05:00
C. McEnroe 10ae7bedbd Add -R restricted flag 2020-02-11 22:39:29 -05:00
C. McEnroe 2771863299 Define ColorCap instead of hardcoding 100 2020-02-11 17:43:36 -05:00
C. McEnroe af87b4e68d Move hash to top of chat.h 2020-02-11 17:41:06 -05:00
C. McEnroe 83a8952cf5 Move base64 out of chat.h 2020-02-11 17:40:08 -05:00
C. McEnroe a50596c5c5 Move XDG_SUBDIR out of chat.h 2020-02-11 17:37:18 -05:00
C. McEnroe d91f588288 Declare strlcat 2020-02-11 03:45:26 -05:00
C. McEnroe 80a79467ef Only automatically switch to expected joins 2020-02-10 20:24:07 -05:00
C. McEnroe 99480a42e5 Factor out XDG base directory code
And add warnings to configOpen, since that's the only way to be accurate
if a weird error occurs.
2020-02-10 19:57:10 -05:00
C. McEnroe b59431bb15 Add -s to save and load buffers 2020-02-10 19:40:13 -05:00
C. McEnroe c8a6564670 Eliminate array in hash
I expected to have to remove some arbitrary colors, but it seems like
just the range 2-75 works fine.
2020-02-10 17:03:13 -05:00
C. McEnroe 0d93e66a68 Add -H 2020-02-10 05:50:28 -05:00
C. McEnroe a91f975e9b Hash to colors in the range 2-75
Colors 76-87 seem too light, some almost appearing white. Colors 88-98
are shades of gray.
2020-02-10 05:37:47 -05:00
C. McEnroe 3436cd1068 Add /whois 2020-02-09 16:45:49 -05:00
C. McEnroe 2aa2005339 Add C-y
This is weechat's binding for it.
2020-02-09 07:09:56 -05:00
C. McEnroe 5e637324c9 Add C-w and M-d 2020-02-09 04:32:32 -05:00
C. McEnroe 3cd830681e Rename kill ops 2020-02-09 04:22:41 -05:00
C. McEnroe b08c2d03ef Add M-b and M-f 2020-02-09 04:20:07 -05:00
C. McEnroe d7c96fc81b Add C-k
Also rename all the edit ops to something consistent.
2020-02-09 03:58:13 -05:00
C. McEnroe 282de9af30 Add C-d 2020-02-09 03:45:44 -05:00
C. McEnroe 2d62ea9e30 Simplify edit buffer conversion and input rendering 2020-02-09 01:28:24 -05:00
C. McEnroe a212a7ae2c Show realname on JOIN if it is different from nick 2020-02-09 00:55:41 -05:00
C. McEnroe 3e68684148 Add /copy 2020-02-08 21:44:50 -05:00
C. McEnroe 2db17e83a9 Allow overriding the /open utility 2020-02-08 21:21:21 -05:00
C. McEnroe f502260dd0 Scan messages for URLs 2020-02-08 18:29:01 -05:00
C. McEnroe 156282c95d Add procPipe for subprocesses 2020-02-08 17:42:19 -05:00
C. McEnroe b6bf6d62b0 Only show expected topic/names replies 2020-02-08 03:15:17 -05:00
C. McEnroe 943502ea82 Add /close 2020-02-08 02:26:00 -05:00
C. McEnroe fda510b876 Handle ID overflow
idk just shove it all in <network>.
2020-02-08 01:14:41 -05:00
C. McEnroe b5707af4b8 Handle KICK
See I knew the color cache in complete would be useful in at least one
place!
2020-02-08 00:58:17 -05:00
C. McEnroe 58e1d5b4e2 Handle NICK 2020-02-08 00:01:59 -05:00
C. McEnroe 8b7cc1a0ed Clear completion for ID on self-part 2020-02-07 23:44:03 -05:00
C. McEnroe d314523b90 Update completion on join, part, privmsg 2020-02-07 23:33:23 -05:00
C. McEnroe fe5fd89705 Populate completion with commands 2020-02-07 21:39:56 -05:00
C. McEnroe af244ad3cd Add some real line editing operations 2020-02-07 01:56:23 -05:00
C. McEnroe e9394bfff9 Set id color to Default on allocation 2020-02-06 04:19:56 -05:00
C. McEnroe 8b3bf897c2 Search for cert and priv in config dirs 2020-02-06 02:21:04 -05:00
C. McEnroe 27eaddb6b9 Use getopt_config to load options
I'm really getting a lot of use out of this config.c huh.
2020-02-05 22:49:56 -05:00
C. McEnroe b2cf873304 Add /window 2020-02-05 22:09:29 -05:00
C. McEnroe 7c0e9cf3d2 Add /quit 2020-02-05 21:57:23 -05:00
C. McEnroe b2d35edcb2 Change prompt depending on command 2020-02-05 19:00:54 -05:00
C. McEnroe 7414a8a11c Save own username for message echoing 2020-02-05 00:40:24 -05:00
C. McEnroe 4cce893eab Add extremely basic editing and message sending 2020-02-05 00:20:39 -05:00
C. McEnroe 9944dc484b Split showing style codes and word wrapping 2020-02-04 20:23:55 -05:00
C. McEnroe 43845c6115 Add beginnings of input handling 2020-02-04 03:58:56 -05:00
C. McEnroe 26e9dd9adf Use time_t rather than struct tm 2020-02-03 18:41:52 -05:00
C. McEnroe c9470b59a1 Add sequences for toggling focus/paste modes 2020-02-02 23:20:19 -05:00
C. McEnroe 5c328c7a88 Remove term.c in favor of more curses APIs 2020-02-02 19:34:35 -05:00
C. McEnroe 8ec17d4f8c Use tsl/fsl capabilities for title if available
Also manually fill them if TERM=xterm* because they really should be
there.
2020-02-02 18:40:21 -05:00
C. McEnroe 0d6a60cc66 Save NETWORK, CHANTYPES, PREFIX from ISUPPORT 2020-02-02 17:37:36 -05:00
C. McEnroe 052cd2ed26 Remove style string macros 2020-02-02 03:34:05 -05:00
C. McEnroe 8bb9ea7b7f Add idColors 2020-02-02 03:27:50 -05:00
C. McEnroe ec83332e15 Implement window switching and status line 2020-02-02 03:13:50 -05:00
C. McEnroe 3c824684e5 Add color hashing function 2020-02-02 02:31:20 -05:00
C. McEnroe e5363bcae0 Implement the beginnings of UI
It takes so much code to do anything in curses...
2020-02-01 19:37:55 -05:00