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
C. McEnroe
e289ff6b18
Add term stuff
...
Copied almost verbatim from existing catgirl... I think I did a better
job on that state machine this time tbh.
2020-02-01 02:55:07 -05:00