Changeset 4fd3c04 for commands.c
- Timestamp:
- Oct 12, 2017, 8:28:02 PM (7 years ago)
- Branches:
- master
- Children:
- a882637
- Parents:
- ee6b30f
- git-author:
- Anders Kaseorg <andersk@mit.edu> (10/06/17 21:27:09)
- git-committer:
- Anders Kaseorg <andersk@mit.edu> (10/12/17 20:28:02)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
commands.c
r4511ac3 r4fd3c04 122 122 " Send to the specified opcode\n"), 123 123 124 OWLCMD_ARGS("aimwrite", owl_command_aimwrite, OWL_CTX_INTERACTIVE,125 "send an AIM message",126 "aimwrite <user> [-m <message...>]",127 "Send an aim message to a user.\n\n"128 "The following options are available:\n\n"129 "-m Specifies a message to send without prompting.\n"),130 131 124 OWLCMD_ARGS("loopwrite", owl_command_loopwrite, OWL_CTX_INTERACTIVE, 132 125 "send a loopback message", … … 234 227 "Execute the BarnOwl commands in <filename>.\n"), 235 228 236 OWLCMD_ARGS("aim", owl_command_aim, OWL_CTX_INTERACTIVE,237 "AIM specific commands",238 "aim search <email>",239 ""),240 241 229 OWLCMD_ARGS("addbuddy", owl_command_addbuddy, OWL_CTX_INTERACTIVE, 242 230 "add a buddy to a buddylist", 243 231 "addbuddy <protocol> <screenname>", 244 "Add the named buddy to your buddylist. <protocol> can be aim orzephyr\n"),232 "Add the named buddy to your buddylist. <protocol> must be zephyr\n"), 245 233 246 234 OWLCMD_ARGS("delbuddy", owl_command_delbuddy, OWL_CTX_INTERACTIVE, 247 235 "delete a buddy from a buddylist", 248 236 "delbuddy <protocol> <screenname>", 249 "Delete the named buddy from your buddylist. <protocol> can be aim or zephyr\n"), 250 251 OWLCMD_ARGS("join", owl_command_join, OWL_CTX_INTERACTIVE, 252 "join a chat group", 253 "join aim <groupname> [exchange]", 254 "Join the AIM chatroom with 'groupname'.\n"), 237 "Delete the named buddy from your buddylist. <protocol> must be zephyr\n"), 255 238 256 239 OWLCMD_ARGS("smartzpunt", owl_command_smartzpunt, OWL_CTX_INTERACTIVE, … … 308 291 "znol [-f file]", 309 292 "Print a znol-style listing of users logged in"), 310 311 OWLCMD_VOID("alist", owl_command_alist, OWL_CTX_INTERACTIVE,312 "List AIM users logged in",313 "alist",314 "Print a listing of AIM users logged in"),315 293 316 294 OWLCMD_VOID("blist", owl_command_blist, OWL_CTX_INTERACTIVE, … … 470 448 "use the default.\n"), 471 449 472 OWLCMD_ARGS("aaway", owl_command_aaway, OWL_CTX_INTERACTIVE,473 "Set, enable or disable AIM away message",474 "aaway [ on | off | toggle ]\n"475 "aaway <message>",476 "Turn on or off the AIM away message. If 'message' is\n"477 "specified turn on aaway with that message, otherwise\n"478 "use the default.\n"),479 480 450 OWLCMD_ARGS("away", owl_command_away, OWL_CTX_INTERACTIVE, 481 451 "Set, enable or disable all away messages", … … 486 456 "otherwise use the default.\n" 487 457 "\n" 488 "SEE ALSO: aaway,zaway"),458 "SEE ALSO: zaway"), 489 459 490 460 OWLCMD_ARGS("flush-logs", owl_command_flushlogs, OWL_CTX_ANY, … … 548 518 " body - message body\n" 549 519 " hostname - hostname of sending host\n" 550 " type - message type (zephyr, a im, admin)\n"520 " type - message type (zephyr, admin)\n" 551 521 " direction - either 'in' 'out' or 'none'\n" 552 522 " login - either 'login' 'logout' or 'none'\n" … … 772 742 "no argument, it makes search highlighting inactive."), 773 743 774 OWLCMD_ARGS("aimlogin", owl_command_aimlogin, OWL_CTX_ANY,775 "login to an AIM account",776 "aimlogin <screenname> [<password>]\n",777 ""),778 779 OWLCMD_ARGS("aimlogout", owl_command_aimlogout, OWL_CTX_ANY,780 "logout from AIM",781 "aimlogout\n",782 ""),783 784 744 OWLCMD_ARGS("error", owl_command_error, OWL_CTX_ANY, 785 745 "Display an error message", … … 1108 1068 } 1109 1069 } 1110 owl_function_buddylist( 0,1, file);1070 owl_function_buddylist(1, file); 1111 1071 return(NULL); 1112 1072 } 1113 1073 1114 void owl_command_alist(void)1115 {1116 owl_function_buddylist(1, 0, NULL);1117 }1118 1119 1074 void owl_command_blist(void) 1120 1075 { 1121 owl_function_buddylist(1, 1,NULL);1076 owl_function_buddylist(1, NULL); 1122 1077 } 1123 1078 … … 1135 1090 { 1136 1091 owl_function_makemsg("BarnOwl version %s", version); 1137 }1138 1139 char *owl_command_aim(int argc, const char *const *argv, const char *buff)1140 {1141 if (argc<2) {1142 owl_function_makemsg("not enough arguments to aim command");1143 return(NULL);1144 }1145 1146 if (!strcmp(argv[1], "search")) {1147 if (argc!=3) {1148 owl_function_makemsg("not enough arguments to aim search command");1149 return(NULL);1150 }1151 owl_aim_search(argv[2]);1152 } else {1153 owl_function_makemsg("unknown subcommand '%s' for aim command", argv[1]);1154 return(NULL);1155 }1156 return(NULL);1157 1092 } 1158 1093 … … 1164 1099 } 1165 1100 1166 if (!strcasecmp(argv[1], "aim")) { 1167 if (!owl_global_is_aimloggedin(&g)) { 1168 owl_function_makemsg("addbuddy: You must be logged into aim to use this command."); 1169 return(NULL); 1170 } 1171 /* 1172 owl_function_makemsg("This function is not yet operational. Stay tuned."); 1173 return(NULL); 1174 */ 1175 owl_aim_addbuddy(argv[2]); 1176 owl_function_makemsg("%s added as AIM buddy for %s", argv[2], owl_global_get_aim_screenname(&g)); 1177 } else if (!strcasecmp(argv[1], "zephyr")) { 1101 if (!strcasecmp(argv[1], "zephyr")) { 1178 1102 owl_zephyr_addbuddy(argv[2]); 1179 1103 owl_function_makemsg("%s added as zephyr buddy", argv[2]); 1180 1104 } else { 1181 owl_function_makemsg("addbuddy: currently the only supported protocol s are 'zephyr' and 'aim'");1105 owl_function_makemsg("addbuddy: currently the only supported protocol is 'zephyr'"); 1182 1106 } 1183 1107 … … 1192 1116 } 1193 1117 1194 if (!strcasecmp(argv[1], "aim")) { 1195 if (!owl_global_is_aimloggedin(&g)) { 1196 owl_function_makemsg("delbuddy: You must be logged into aim to use this command."); 1197 return(NULL); 1198 } 1199 owl_aim_delbuddy(argv[2]); 1200 owl_function_makemsg("%s deleted as AIM buddy for %s", argv[2], owl_global_get_aim_screenname(&g)); 1201 } else if (!strcasecmp(argv[1], "zephyr")) { 1118 if (!strcasecmp(argv[1], "zephyr")) { 1202 1119 owl_zephyr_delbuddy(argv[2]); 1203 1120 owl_function_makemsg("%s deleted as zephyr buddy", argv[2]); 1204 1121 } else { 1205 owl_function_makemsg("delbuddy: currently the only supported protocols are 'zephyr' and 'aim'"); 1206 } 1207 1208 return(NULL); 1209 } 1210 1211 char *owl_command_join(int argc, const char *const *argv, const char *buff) 1212 { 1213 if (argc!=3 && argc!=4) { 1214 owl_function_makemsg("usage: join <protocol> <buddyname> [exchange]"); 1215 return(NULL); 1216 } 1217 1218 if (!strcasecmp(argv[1], "aim")) { 1219 if (!owl_global_is_aimloggedin(&g)) { 1220 owl_function_makemsg("join aim: You must be logged into aim to use this command."); 1221 return(NULL); 1222 } 1223 if (argc==3) { 1224 owl_aim_chat_join(argv[2], 4); 1225 } else { 1226 owl_aim_chat_join(argv[2], atoi(argv[3])); 1227 } 1228 /* owl_function_makemsg("%s deleted as AIM buddy for %s", argv[2], owl_global_get_aim_screenname(&g)); */ 1229 } else { 1230 owl_function_makemsg("join: currently the only supported protocol is 'aim'"); 1231 } 1122 owl_function_makemsg("delbuddy: currently the only supported protocol is 'zephyr'"); 1123 } 1124 1232 1125 return(NULL); 1233 1126 } … … 1539 1432 1540 1433 1541 char *owl_command_aaway(int argc, const char *const *argv, const char *buff)1542 {1543 if ((argc==1) ||1544 ((argc==2) && !strcmp(argv[1], "on"))) {1545 owl_global_set_aaway_msg(&g, owl_global_get_aaway_msg_default(&g));1546 owl_function_aaway_on();1547 return NULL;1548 }1549 1550 if (argc==2 && !strcmp(argv[1], "off")) {1551 owl_function_aaway_off();1552 return NULL;1553 }1554 1555 if (argc==2 && !strcmp(argv[1], "toggle")) {1556 owl_function_aaway_toggle();1557 return NULL;1558 }1559 1560 buff = skiptokens(buff, 1);1561 owl_global_set_aaway_msg(&g, buff);1562 owl_function_aaway_on();1563 return NULL;1564 }1565 1566 1567 1434 char *owl_command_away(int argc, const char *const *argv, const char *buff) 1568 1435 { … … 1573 1440 (argc == 2 && !strcmp(argv[1], "on"))) { 1574 1441 away_off = false; 1575 owl_global_set_aaway_msg(&g, owl_global_get_aaway_msg_default(&g));1576 1442 owl_global_set_zaway_msg(&g, owl_global_get_zaway_msg_default(&g)); 1577 1443 } else if (argc == 2 && !strcmp(argv[1], "off")) { … … 1585 1451 1586 1452 if (away_off) { 1587 owl_function_aaway_off();1588 1453 owl_function_zaway_off(); 1589 1454 owl_perlconfig_perl_call_norv("BarnOwl::Hooks::_away_off", 0, NULL); 1590 1455 owl_function_makemsg("Away messages off."); 1591 1456 } else if (message != NULL) { 1592 owl_global_set_aaway_msg(&g, message);1593 1457 owl_global_set_zaway_msg(&g, message); 1594 owl_function_aaway_on();1595 1458 owl_function_zaway_on(); 1596 1459 owl_perlconfig_perl_call_norv("BarnOwl::Hooks::_away_on", 1, &message); 1597 1460 owl_function_makemsg("Away messages set (%s).", message); 1598 1461 } else { 1599 owl_function_aaway_on();1600 1462 owl_function_zaway_on(); 1601 1463 owl_perlconfig_perl_call_norv("BarnOwl::Hooks::_away_on", 0, NULL); … … 2038 1900 } 2039 1901 return(NULL); 2040 }2041 2042 char *owl_command_aimwrite(int argc, const char *const *argv, const char *buff)2043 {2044 char *message = NULL;2045 GString *recip = g_string_new("");2046 const char *const *myargv;2047 int myargc;2048 2049 if (!owl_global_is_aimloggedin(&g)) {2050 owl_function_error("You are not logged in to AIM.");2051 goto err;2052 }2053 2054 /* Skip argv[0]. */2055 myargv = argv+1;2056 myargc = argc-1;2057 while (myargc) {2058 if (!strcmp(myargv[0], "-m")) {2059 if (myargc <= 1) {2060 owl_function_error("No message specified.");2061 goto err;2062 }2063 /* Once we have -m, gobble up everything else on the line */2064 myargv++;2065 myargc--;2066 message = g_strjoinv(" ", (char**)myargv);2067 break;2068 } else {2069 /* squish arguments together to make one screenname w/o spaces for now */2070 g_string_append(recip, myargv[0]);2071 myargv++;2072 myargc--;2073 }2074 }2075 2076 if (recip->str[0] == '\0') {2077 owl_function_error("No recipient specified");2078 goto err;2079 }2080 2081 if (message != NULL)2082 owl_function_aimwrite(recip->str, message, false);2083 else2084 owl_function_aimwrite_setup(recip->str);2085 err:2086 g_string_free(recip, true);2087 g_free(message);2088 return NULL;2089 1902 } 2090 1903 … … 2654 2467 } 2655 2468 2656 char *owl_command_aimlogin(int argc, const char *const *argv, const char *buff)2657 {2658 if ((argc<2) || (argc>3)) {2659 owl_function_makemsg("Wrong number of arguments to aimlogin command");2660 return(NULL);2661 }2662 2663 /* if we get two arguments, ask for the password */2664 if (argc==2) {2665 owl_editwin *e = owl_function_start_password("AIM Password: ");2666 owl_editwin_set_cbdata(e, g_strdup(argv[1]), g_free);2667 owl_editwin_set_callback(e, owl_callback_aimlogin);2668 return(NULL);2669 } else {2670 owl_function_aimlogin(argv[1], argv[2]);2671 }2672 2673 /* this is a test */2674 return(NULL);2675 }2676 2677 char *owl_command_aimlogout(int argc, const char *const *argv, const char *buff)2678 {2679 /* clear the buddylist */2680 owl_buddylist_clear(owl_global_get_buddylist(&g));2681 2682 owl_aim_logout();2683 return(NULL);2684 }2685 2686 2469 CALLER_OWN char *owl_command_getstyle(int argc, const char *const *argv, const char *buff) 2687 2470 {
Note: See TracChangeset
for help on using the changeset viewer.