Changeset ce7b824 for commands.c


Ignore:
Timestamp:
Aug 11, 2007, 1:04:07 AM (13 years ago)
Author:
Nelson Elhage <nelhage@mit.edu>
Branches:
master, barnowl_perlaim, debian, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
Children:
18fb3d4f
Parents:
ad15610
Message:
Implement :punt and :unpunt to punt arbitrary filters, rather than
just z-triplets. closes #6
File:
1 edited

Legend:

Unmodified
Added
Removed
  • commands.c

    rad15610 rce7b824  
    280280              "suppressed to be received again.\n\n"
    281281              "SEE ALSO:  zpunt, show zpunts\n"),
     282
     283  OWLCMD_ARGS("punt", owl_command_punt, OWL_CTX_ANY,
     284              "suppress an arbitrary filter",
     285              "punt <filter-name>",
     286              "punt <filter-text (multiple words)>\n"
     287              "The punt command will supress message to the specified\n"
     288              "filter\n\n"
     289              "SEE ALSO:  unpunt, zpunt, show zpunts\n"),
     290
     291  OWLCMD_ARGS("unpunt", owl_command_unpunt, OWL_CTX_ANY,
     292              "remove an entry from the punt list",
     293              "zpunt <filter-name>\n"
     294              "zpunt <filter-text>\n"
     295              "zpunt <number>\n",
     296              "The unpunt command will remove an entry from the puntlist.\n"
     297              "The first two forms correspond to the first two forms of the :punt\n"
     298              "command. The latter allows you to remove a specific entry from the\n"
     299              "the list (see :show zpunts)\n\n"
     300              "SEE ALSO:  punt, zpunt, zunpunt, show zpunts\n"),
    282301
    283302  OWLCMD_VOID("info", owl_command_info, OWL_CTX_INTERACTIVE,
     
    22942313}
    22952314
    2296 
    22972315void owl_command_zpunt_and_zunpunt(int argc, char **argv, int type)
    22982316{
     
    23442362}
    23452363
     2364char *owl_command_punt(int argc, char **argv, char *buff)
     2365{
     2366  owl_command_punt_unpunt(argc, argv, buff, 0);
     2367  return NULL;
     2368}
     2369
     2370char *owl_command_unpunt(int argc, char **argv, char *buff)
     2371{
     2372  owl_command_punt_unpunt(argc, argv, buff, 1);
     2373  return NULL;
     2374}
     2375
     2376void owl_command_punt_unpunt(int argc, char ** argv, char *buff, int unpunt)
     2377{
     2378  owl_list * fl;
     2379  owl_filter * f;
     2380  char * text;
     2381  int i;
     2382
     2383  fl = owl_global_get_puntlist(&g);
     2384  if(argc == 1) {
     2385    owl_function_show_zpunts();
     2386  }
     2387
     2388  if(argc == 2) {
     2389    /* Handle :unpunt <number> */
     2390    if(unpunt && (i=atoi(argv[1])) !=0) {
     2391      i--;      /* Accept 1-based indexing */
     2392      if(i < owl_list_get_size(fl)) {
     2393        f = (owl_filter*)owl_list_get_element(fl, i);
     2394        owl_list_remove_element(fl, i);
     2395        owl_filter_free(f);
     2396        return;
     2397      } else {
     2398        owl_function_error("No such filter number: %d", i+1);
     2399      }
     2400    }
     2401    text = owl_sprintf("filter %s", argv[1]);
     2402  } else {
     2403    text = skiptokens(buff, 1);
     2404  }
     2405
     2406  owl_function_punt(text, unpunt);
     2407}
     2408
     2409
    23462410char *owl_command_getview(int argc, char **argv, char *buff)
    23472411{
Note: See TracChangeset for help on using the changeset viewer.