diff --git a/.gitignore b/.gitignore index fe334db..49316e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -*.o *~ +*.o dispatch irc - diff --git a/bot b/bot index 989616e..c86723e 100755 --- a/bot +++ b/bot @@ -2,6 +2,11 @@ nickname=$1; export nickname -echo "NICK $1" 1>&6 -echo "USER $1 $1 $1 :I'm a little printf, short and stdout." 1>&6 +( + # UCSPI wants input on FD 7, and sets $PROTO + [ -n "$PROTO" ] && exec 1>&7 + echo "NICK $1" + echo "USER $1 $1 $1 :I'm a little printf, short and stdout." +) + exec ./dispatch ./irc ./$1-handler diff --git a/cobalt-handler b/cobalt-handler index 3375144..3f1089e 100755 --- a/cobalt-handler +++ b/cobalt-handler @@ -21,7 +21,9 @@ join () { case $command in 001) - join "#cobalt" + for chan in ${CHANNELS:-#cobalt}; do + join $chan + done ;; 433) raw "NICK bottimus" diff --git a/dispatch.c b/dispatch.c index f38140c..37e5a34 100644 --- a/dispatch.c +++ b/dispatch.c @@ -173,10 +173,8 @@ call_with_lines(char *buf, while ((p = memchr(b, '\n', l))) { size_t n = p - b + 1; - size_t buflen = n; - if ('\r' == *(p-1)) buflen -= 1; - func(b, buflen); + func(b, n); l -= n; b += n; } diff --git a/firebot b/firebot index df47296..4567d53 100755 --- a/firebot +++ b/firebot @@ -1,5 +1,7 @@ #! /bin/sh +exec 2>&1 + cmd=${1%% *} [ "$cmd" = "$1" ] || args=${1#* } case $cmd in @@ -16,3 +18,6 @@ case $cmd in exit 1 ;; esac + + + diff --git a/irc.c b/irc.c index 24a7a96..6601253 100644 --- a/irc.c +++ b/irc.c @@ -65,6 +65,10 @@ main(int argc, char *argv[]) line += 1; } } + + /* Strip trailing carriage return */ + while (*line) line += 1; + if ('\r' == *(line-1)) *(line-1) = '\0'; } /* Set command, converting to upper case */ diff --git a/whuffie b/whuffie index ab35b46..b2f4a0c 100755 --- a/whuffie +++ b/whuffie @@ -13,7 +13,7 @@ put () { } adj () { - who=${text%%$1$1} + who=${text%%$1$1*} if [ "$who" = "$sender" ]; then echo "Nice try, $sender." else @@ -23,15 +23,15 @@ adj () { case "$text" in - whuffie\ *) - who=${text##whuffie } + .whuffie\ *) + who=${text#.whuffie } amt=$(get "$who") - echo "$who has $amt whuffie" + echo "$who has whuffie score of $amt" ;; - *++) + *++|*++\ *) adj + ;; - *--) + *--|*--\ *) adj - ;; *)