diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-03-11 23:43:58 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-03-11 23:43:58 -0400 |
| commit | 819095bcf226d6b1a1cd71f8b0150710bc9850a0 (patch) | |
| tree | 2213f46d29b818d24172486a6c3193264f01da6b /src | |
| parent | 4ac4aa49d77da3f471ca34a025074cf4a10be841 (diff) | |
| download | fujinet-chat-819095bcf226d6b1a1cd71f8b0150710bc9850a0.tar.gz | |
Add Start+T, dup checking in scr_create().
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd.c | 9 | ||||
| -rw-r--r-- | src/irc.c | 12 | ||||
| -rw-r--r-- | src/screen.c | 5 |
3 files changed, 18 insertions, 8 deletions
@@ -167,8 +167,7 @@ static void do_j(void) { } if(have_commas()) return; - if(!scr_getbyname(arg1)) - scr_create(arg1, 1); + scr_create(arg1, 1); do_j1(); } @@ -355,18 +354,16 @@ static void do_color(void) { } static void do_query(void) { - /* don't create a query if we already got one! */ - if(scr_getbyname(arg1)) - return; - if(scr_create(arg1, 1) == 0xff) { err_marker(); scr_print_current("Can't create query, all screens in use\n"); return; } + /* scr_print_current("Starting conversation with "); scr_print_current(arg1); scr_eol_current(); + */ } static void do_msg(void) { @@ -292,7 +292,7 @@ static void do_topic(void) { static void do_kick(void) { scr_print_active(msg_src); scr_print_active(" has kicked "); - scr_print_active(msg_args[2]); + scr_print_active(msg_args[1]); scr_print_active(" from "); scr_print_active(msg_dest); print_reason(); @@ -768,6 +768,13 @@ void ui_whois_or_ping(char is_ping) { } } +void ui_topic(void) { + if(!cur_is_chan()) + return; + txbuf_set_str2("TOPIC ", scr_names[scr_current]); + txbuf_send(); +} + void ui_part(void) { if(!cur_is_chan()) return; @@ -863,6 +870,9 @@ static void start_keystroke(void) { case 'p': ui_whois_or_ping(1); return; + case 't': + ui_topic(); + break; case 's': edbox_hide(); /* fall thru */ diff --git a/src/screen.c b/src/screen.c index cae2585..5852208 100644 --- a/src/screen.c +++ b/src/screen.c @@ -61,10 +61,13 @@ void scr_init(void) { scr_display(0); } -/* TODO: don't create screen if it already exists! */ char scr_create(const char *name, char display) { int i; + /* don't create a duplicate screen */ + if( (i = scr_getbyname(name)) ) + return i; + for(i = 0; i < MAX_SCREENS; i++) { if(scr_status[i] == SCR_UNUSED) { strcpy(scr_names[i], name); |
