aboutsummaryrefslogtreecommitdiff
path: root/src/cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd.c')
-rw-r--r--src/cmd.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/cmd.c b/src/cmd.c
index ea6d6cf..e871240 100644
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -13,6 +13,7 @@ char *command, *arg1, *arg2, *arg3;
static char *target;
static void do_away(void);
+static void do_bell(void);
static void do_color(void);
static void do_ctcp(void);
static void do_info(void);
@@ -41,6 +42,7 @@ typedef struct {
*/
cmd_t command_defs[] = {
{ "AWAY", do_away, 1 },
+ { "BELL", do_bell, 1 },
{ "COLOR", do_color, 1 },
{ "CTCP", do_ctcp, 1 },
{ "INFO", do_info, 0 },
@@ -227,9 +229,20 @@ static void send_ctcp(void) {
txbuf_send();
}
+long read_rtclok(void) {
+ return (OS.rtclok[0] << 16) | (OS.rtclok[1] << 8) | OS.rtclok[2];
+}
+
+static void rtclok_to_numbuf(void) {
+ long r;
+ r = read_rtclok();
+ ltoa(r, numbuf, 10);
+}
+
static void do_ctcp_ping(void) {
arg2 = "PING";
- arg3 = "0xdeadbeef";
+ rtclok_to_numbuf();
+ arg3 = numbuf;
send_ctcp();
}
@@ -353,6 +366,10 @@ static void do_away(void) {
txbuf_send();
}
+static void do_bell(void) {
+ bell_type = *arg1 - '0';
+}
+
static int cmd_local(void) {
arg1 = nextarg(command);