aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd.c9
-rw-r--r--src/irc.c12
-rw-r--r--src/screen.c5
3 files changed, 18 insertions, 8 deletions
diff --git a/src/cmd.c b/src/cmd.c
index 0c6f1a6..0ef8617 100644
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -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) {
diff --git a/src/irc.c b/src/irc.c
index 9777392..fa39df5 100644
--- a/src/irc.c
+++ b/src/irc.c
@@ -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);