Changes in / [6df57d4:7483942]
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
commands.c
r6df57d4 rf89cc6f 1980 1980 } 1981 1981 /* check for a zwrite -m */ 1982 z = owl_zwrite_new( buff);1982 z = owl_zwrite_new(argc, argv); 1983 1983 if (!z) { 1984 1984 owl_function_error("Error in zwrite arguments"); -
doc/barnowl.1
rbad4496 r8135737 35 35 .TP 36 36 \fB\-c\fP, \fB\-\-config\-file\fP=\fIFILE\fP 37 Specify an alternate config file for \fBBarnOwl\fP to use. By default, 38 \fBBarnOwl\fP uses \fI~/.barnowlconf\fP if it exists, and \fI~/.owlconf\fP otherwise. 37 Specify an alternate config file for \fBBarnOwl\fP to use. The config file is 38 an arbitrary Perl script evaluated in the \fImain\fP package, and if it 39 overrides the \fIBarnOwl::startup\fP method that is run when \fBBarnOwl\fP 40 starts. (Compare \fI~/.owl/startup\fP, which contains \fBBarnOwl\fP commands 41 that are run at startup after the config file is loaded.) 42 43 By default, \fBBarnOwl\fP uses the first of \fI~/.owl/init.pl\fP, 44 \fI~/.barnowlconf\fP, or \fI~/.owlconf\fP that exists. 39 45 40 46 .TP -
functions.c
r6df57d4 recfbdcc 434 434 } 435 435 436 /* free the zwrite*/436 /* Clean up. */ 437 437 g_free(cryptmsg); 438 g_free(old_msg); 438 439 } 439 440 -
global.c
r9078f69 r219f52c 75 75 g_free(cd); 76 76 77 owl_messagelist_create(&(g->msglist));77 g->msglist = owl_messagelist_new(); 78 78 79 79 _owl_global_init_windows(g); … … 109 109 110 110 /* Create the widgets */ 111 owl_mainwin_init(&(g->mw),g->mainpanel.recwin);111 g->mw = owl_mainwin_new(g->mainpanel.recwin); 112 112 owl_msgwin_init(&(g->msgwin), g->mainpanel.msgwin); 113 113 owl_sepbar_init(g->mainpanel.sepwin); … … 241 241 /* windows */ 242 242 243 owl_mainwin *owl_global_get_mainwin(owl_global *g) { 244 return(&(g->mw)); 243 owl_mainwin *owl_global_get_mainwin(owl_global *g) 244 { 245 return g->mw; 245 246 } 246 247 … … 256 257 257 258 owl_messagelist *owl_global_get_msglist(owl_global *g) { 258 return (&(g->msglist));259 return g->msglist; 259 260 } 260 261 -
mainwin.c
r099597c rab88b05 4 4 static void owl_mainwin_resized(owl_window *w, void *user_data); 5 5 6 void owl_mainwin_init(owl_mainwin *mw,owl_window *window)6 CALLER_OWN owl_mainwin *owl_mainwin_new(owl_window *window) 7 7 { 8 owl_mainwin *mw = g_new(owl_mainwin, 1); 8 9 mw->curtruncated=0; 9 10 mw->lastdisplayed=-1; … … 16 17 /* For now, we do not bother with connecting up dependencies; that'll be a 17 18 * future refactor of the mainwin */ 19 20 return mw; 18 21 } 19 22 -
messagelist.c
rf271129 r219f52c 1 1 #include "owl.h" 2 2 3 void owl_messagelist_create(owl_messagelist *ml)3 CALLER_OWN owl_messagelist *owl_messagelist_new(void) 4 4 { 5 owl_messagelist *ml = g_new(owl_messagelist, 1); 5 6 ml->list = g_ptr_array_new(); 7 return ml; 6 8 } 7 9 8 void owl_messagelist_ cleanup(owl_messagelist *ml, bool free_messages)10 void owl_messagelist_delete(owl_messagelist *ml, bool free_messages) 9 11 { 10 12 if (free_messages) 11 13 g_ptr_array_foreach(ml->list, (GFunc)owl_message_delete, NULL); 12 14 g_ptr_array_free(ml->list, true); 15 g_free(ml); 13 16 } 14 17 -
owl.c
r3b17b57 r8135737 41 41 fprintf(stderr, " -v,--version print the Barnowl version number and exit\n"); 42 42 fprintf(stderr, " -h,--help print this help message\n"); 43 fprintf(stderr, " -c,--config-file specify an alternate config file\n");44 43 fprintf(stderr, " -s,--config-dir specify an alternate config dir (default ~/.owl)\n"); 44 fprintf(stderr, " -c,--config-file specify an alternate config file (default ~/.owl/init.pl)\n"); 45 45 fprintf(stderr, " -t,--tty set the tty name\n"); 46 46 } … … 585 585 ); 586 586 587 owl_function_debugmsg("startup: setting context interactive"); 588 589 owl_global_pop_context(&g); 590 owl_global_push_context(&g, OWL_CTX_INTERACTIVE|OWL_CTX_RECV, NULL, "recv", NULL); 591 587 592 /* process the startup file */ 588 593 owl_function_debugmsg("startup: processing startup file"); … … 596 601 owl_function_error("No such style: %s", owl_global_get_default_style(&g)); 597 602 598 owl_function_debugmsg("startup: setting context interactive");599 600 owl_global_pop_context(&g);601 owl_global_push_context(&g, OWL_CTX_INTERACTIVE|OWL_CTX_RECV, NULL, "recv", NULL);602 603 603 source = owl_window_redraw_source_new(); 604 604 g_source_attach(source, NULL); -
owl.h
rb9517cf r219f52c 452 452 char *name; 453 453 owl_filter *filter; 454 owl_messagelist ml;454 owl_messagelist *ml; 455 455 const owl_style *style; 456 456 int cachedmsgid; … … 533 533 534 534 typedef struct _owl_global { 535 owl_mainwin mw;535 owl_mainwin *mw; 536 536 owl_popwin *pw; 537 537 owl_msgwin msgwin; … … 551 551 int curmsg_vert_offset; 552 552 owl_view current_view; 553 owl_messagelist msglist;553 owl_messagelist *msglist; 554 554 WINDOW *input_pad; 555 555 owl_mainpanel mainpanel; -
perl/lib/BarnOwl.pm
r7803326 r8135737 329 329 our @all_commands; 330 330 331 if(!$configfile && -f $ENV{HOME} . "/.barnowlconf") { 332 $configfile = $ENV{HOME} . "/.barnowlconf"; 333 } 334 $configfile ||= $ENV{HOME}."/.owlconf"; 331 if(!$configfile) { 332 if (-f get_config_dir() . "/init.pl") { 333 $configfile = get_config_dir() . "/init.pl"; 334 } elsif (-f $ENV{HOME} . "/.barnowlconf") { 335 $configfile = $ENV{HOME} . "/.barnowlconf"; 336 } else { 337 $configfile = $ENV{HOME}."/.owlconf"; 338 } 339 } 335 340 336 341 # populate global variable space for legacy owlconf files -
perl/lib/BarnOwl/ModuleLoader.pm
rf544216 rf34728b 127 127 } 128 128 129 sub complete_module_name { 130 return sort(keys %modules); 131 } 132 129 133 sub register_keybindings { 130 134 BarnOwl::new_command('reload-modules', sub {BarnOwl::ModuleLoader->reload}, { … … 138 142 description => q{Reloads a single module located in ~/.owl/modules or the system modules directory} 139 143 }); 144 145 BarnOwl::Completion::register_completer('reload-module', \&complete_module_name); 140 146 } 141 147 -
perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
rb8a3e00 r678f607 1482 1482 } 1483 1483 1484 sub complete_jabberlogout { 1485 my $ctx = shift; 1486 if($ctx->word == 1) { 1487 return ("-A", complete_account() ); 1488 } else { 1489 return (); 1490 } 1491 } 1492 1484 1493 BarnOwl::Completion::register_completer(jwrite => sub { BarnOwl::Module::Jabber::complete_jwrite(@_) }); 1494 BarnOwl::Completion::register_completer(jabberlogout => sub { BarnOwl::Module::Jabber::complete_jabberlogout(@_) }); 1485 1495 1486 1496 1; -
util.c
r6646fdb r7b89e8c 262 262 CALLER_OWN char *owl_arg_quote(const char *arg) 263 263 { 264 GString *buf = g_string_new(""); ;264 GString *buf = g_string_new(""); 265 265 owl_string_append_quoted_arg(buf, arg); 266 return g_string_free(buf, false); 267 } 268 269 /* Returns a quoted version of argv. owl_parseline on the result should give 270 * back the input. */ 271 CALLER_OWN char *owl_argv_quote(int argc, const char *const *argv) 272 { 273 int i; 274 GString *buf = g_string_new(""); 275 for (i = 0; i < argc; i++) { 276 if (i > 0) 277 g_string_append_c(buf, ' '); 278 owl_string_append_quoted_arg(buf, argv[i]); 279 } 266 280 return g_string_free(buf, false); 267 281 } -
variable.c
rf271129 rd126a19 116 116 "both,in,out"), 117 117 118 OWLVAR_BOOL( "colorztext" /* %OwlVarStub */, 1, 119 "allow @color() in zephyrs to change color", 120 "Note that only messages received after this variable\n" 121 "is set will be affected." ), 118 OWLVAR_BOOL_FULL( "colorztext" /* %OwlVarStub */, 1, 119 "allow @color() in zephyrs to change color", 120 NULL, NULL, owl_variable_colorztext_set, NULL), 122 121 123 122 OWLVAR_BOOL( "fancylines" /* %OwlVarStub */, 1, … … 496 495 } 497 496 return owl_variable_bool_set_default(v, newval); 497 } 498 499 int owl_variable_colorztext_set(owl_variable *v, const void *newval) 500 { 501 int ret = owl_variable_bool_set_default(v, newval); 502 /* flush the format cache so that we see the update, but only if we're done initializing BarnOwl */ 503 if (owl_global_get_msglist(&g) != NULL) 504 owl_messagelist_invalidate_formats(owl_global_get_msglist(&g)); 505 if (owl_global_get_mainwin(&g) != NULL) { 506 owl_function_calculate_topmsg(OWL_DIRECTION_DOWNWARDS); 507 owl_mainwin_redisplay(owl_global_get_mainwin(&g)); 508 } 509 return ret; 498 510 } 499 511 -
view.c
rf271129 r219f52c 6 6 v->filter=f; 7 7 v->style=s; 8 owl_messagelist_create(&(v->ml));8 v->ml = owl_messagelist_new(); 9 9 owl_view_recalculate(v); 10 10 } … … 19 19 { 20 20 if (owl_filter_message_match(v->filter, m)) { 21 owl_messagelist_append_element( &(v->ml), m);21 owl_messagelist_append_element(v->ml, m); 22 22 } 23 23 } … … 30 30 int i, j; 31 31 const owl_messagelist *gml; 32 owl_messagelist *ml;33 32 owl_message *m; 34 33 35 34 gml=owl_global_get_msglist(&g); 36 ml=&(v->ml);37 35 38 36 /* nuke the old list, don't free the messages */ 39 owl_messagelist_ cleanup(ml, false);40 owl_messagelist_create(&(v->ml));37 owl_messagelist_delete(v->ml, false); 38 v->ml = owl_messagelist_new(); 41 39 42 40 /* find all the messages we want */ … … 45 43 m=owl_messagelist_get_element(gml, i); 46 44 if (owl_filter_message_match(v->filter, m)) { 47 owl_messagelist_append_element( ml, m);45 owl_messagelist_append_element(v->ml, m); 48 46 } 49 47 } … … 72 70 owl_message *owl_view_get_element(const owl_view *v, int index) 73 71 { 74 return (owl_messagelist_get_element(&(v->ml), index));72 return owl_messagelist_get_element(v->ml, index); 75 73 } 76 74 77 75 void owl_view_delete_element(owl_view *v, int index) 78 76 { 79 owl_messagelist_delete_element( &(v->ml), index);77 owl_messagelist_delete_element(v->ml, index); 80 78 } 81 79 82 80 void owl_view_undelete_element(owl_view *v, int index) 83 81 { 84 owl_messagelist_undelete_element( &(v->ml), index);82 owl_messagelist_undelete_element(v->ml, index); 85 83 } 86 84 87 85 int owl_view_get_size(const owl_view *v) 88 86 { 89 return (owl_messagelist_get_size(&(v->ml)));87 return owl_messagelist_get_size(v->ml); 90 88 } 91 89 … … 158 156 void owl_view_cleanup(owl_view *v) 159 157 { 160 owl_messagelist_ cleanup(&v->ml, false);158 owl_messagelist_delete(v->ml, false); 161 159 g_free(v->name); 162 160 } -
zephyr.c
rf271129 rd953ede 909 909 g_free(to); 910 910 911 z = owl_zwrite_new (tmpbuff);911 z = owl_zwrite_new_from_line(tmpbuff); 912 912 g_free(tmpbuff); 913 913 if (z == NULL) { -
zwrite.c
rf271129 ref4074b 1 1 #include "owl.h" 2 2 3 CALLER_OWN owl_zwrite *owl_zwrite_new (const char *line)3 CALLER_OWN owl_zwrite *owl_zwrite_new_from_line(const char *line) 4 4 { 5 5 owl_zwrite *z = g_new(owl_zwrite, 1); 6 if (owl_zwrite_create_from_line(z, line) <0) {7 owl_zwrite_delete(z);6 if (owl_zwrite_create_from_line(z, line) != 0) { 7 g_free(z); 8 8 return NULL; 9 9 } … … 11 11 } 12 12 13 CALLER_OWN owl_zwrite *owl_zwrite_new(int argc, const char *const *argv) 14 { 15 owl_zwrite *z = g_new(owl_zwrite, 1); 16 if (owl_zwrite_create(z, argc, argv) != 0) { 17 g_free(z); 18 return NULL; 19 } 20 return z; 21 } 22 13 23 G_GNUC_WARN_UNUSED_RESULT int owl_zwrite_create_from_line(owl_zwrite *z, const char *line) 14 24 { 15 int argc , badargs, myargc;25 int argc; 16 26 char **argv; 17 const char *const *myargv; 27 int ret; 28 29 /* parse the command line for options */ 30 argv = owl_parseline(line, &argc); 31 if (argc < 0) { 32 owl_function_error("Unbalanced quotes in zwrite"); 33 return -1; 34 } 35 ret = owl_zwrite_create(z, argc, strs(argv)); 36 g_strfreev(argv); 37 return ret; 38 } 39 40 G_GNUC_WARN_UNUSED_RESULT int owl_zwrite_create(owl_zwrite *z, int argc, const char *const *argv) 41 { 42 int badargs = 0; 18 43 char *msg = NULL; 19 20 badargs=0;21 44 22 45 /* start with null entries */ … … 31 54 z->noping=0; 32 55 z->recips = g_ptr_array_new(); 33 z->zwriteline = g_strdup(line); 34 35 /* parse the command line for options */ 36 argv=owl_parseline(line, &argc); 37 myargv=strs(argv); 38 if (argc<0) { 39 owl_function_error("Unbalanced quotes in zwrite"); 40 return(-1); 41 } 42 myargc=argc; 43 if (myargc && *(myargv[0])!='-') { 44 z->cmd=g_strdup(myargv[0]); 45 myargc--; 46 myargv++; 47 } 48 while (myargc) { 49 if (!strcmp(myargv[0], "-c")) { 50 if (myargc<2) { 51 badargs=1; 52 break; 53 } 54 z->class=owl_validate_utf8(myargv[1]); 55 myargv+=2; 56 myargc-=2; 57 } else if (!strcmp(myargv[0], "-i")) { 58 if (myargc<2) { 59 badargs=1; 60 break; 61 } 62 z->inst=owl_validate_utf8(myargv[1]); 63 myargv+=2; 64 myargc-=2; 65 } else if (!strcmp(myargv[0], "-r")) { 66 if (myargc<2) { 67 badargs=1; 68 break; 69 } 70 z->realm=owl_validate_utf8(myargv[1]); 71 myargv+=2; 72 myargc-=2; 73 } else if (!strcmp(myargv[0], "-s")) { 74 if (myargc<2) { 75 badargs=1; 76 break; 77 } 78 z->zsig=owl_validate_utf8(myargv[1]); 79 myargv+=2; 80 myargc-=2; 81 } else if (!strcmp(myargv[0], "-O")) { 82 if (myargc<2) { 83 badargs=1; 84 break; 85 } 86 z->opcode=owl_validate_utf8(myargv[1]); 87 myargv+=2; 88 myargc-=2; 89 } else if (!strcmp(myargv[0], "-m")) { 90 if (myargc<2) { 56 z->zwriteline = owl_argv_quote(argc, argv); 57 58 if (argc && *(argv[0])!='-') { 59 z->cmd=g_strdup(argv[0]); 60 argc--; 61 argv++; 62 } 63 while (argc) { 64 if (!strcmp(argv[0], "-c")) { 65 if (argc<2) { 66 badargs=1; 67 break; 68 } 69 z->class=owl_validate_utf8(argv[1]); 70 argv+=2; 71 argc-=2; 72 } else if (!strcmp(argv[0], "-i")) { 73 if (argc<2) { 74 badargs=1; 75 break; 76 } 77 z->inst=owl_validate_utf8(argv[1]); 78 argv+=2; 79 argc-=2; 80 } else if (!strcmp(argv[0], "-r")) { 81 if (argc<2) { 82 badargs=1; 83 break; 84 } 85 z->realm=owl_validate_utf8(argv[1]); 86 argv+=2; 87 argc-=2; 88 } else if (!strcmp(argv[0], "-s")) { 89 if (argc<2) { 90 badargs=1; 91 break; 92 } 93 z->zsig=owl_validate_utf8(argv[1]); 94 argv+=2; 95 argc-=2; 96 } else if (!strcmp(argv[0], "-O")) { 97 if (argc<2) { 98 badargs=1; 99 break; 100 } 101 z->opcode=owl_validate_utf8(argv[1]); 102 argv+=2; 103 argc-=2; 104 } else if (!strcmp(argv[0], "-m")) { 105 if (argc<2) { 91 106 badargs=1; 92 107 break; … … 99 114 100 115 /* Once we have -m, gobble up everything else on the line */ 101 myargv++;102 myargc--;103 msg = g_strjoinv(" ", (char**) myargv);116 argv++; 117 argc--; 118 msg = g_strjoinv(" ", (char**)argv); 104 119 break; 105 } else if (!strcmp( myargv[0], "-C")) {120 } else if (!strcmp(argv[0], "-C")) { 106 121 z->cc=1; 107 myargv++;108 myargc--;109 } else if (!strcmp( myargv[0], "-n")) {122 argv++; 123 argc--; 124 } else if (!strcmp(argv[0], "-n")) { 110 125 z->noping=1; 111 myargv++;112 myargc--;126 argv++; 127 argc--; 113 128 } else { 114 129 /* anything unattached is a recipient */ 115 g_ptr_array_add(z->recips, owl_validate_utf8( myargv[0]));116 myargv++;117 myargc--;130 g_ptr_array_add(z->recips, owl_validate_utf8(argv[0])); 131 argv++; 132 argc--; 118 133 } 119 134 } 120 135 121 g_strfreev(argv);122 123 136 if (badargs) { 137 owl_zwrite_cleanup(z); 124 138 return(-1); 125 139 } … … 129 143 z->recips->len == 0) { 130 144 owl_function_error("You must specify a recipient for zwrite"); 145 owl_zwrite_cleanup(z); 131 146 return(-1); 132 147 } … … 254 269 owl_zwrite z; 255 270 int rv; 256 rv =owl_zwrite_create_from_line(&z, cmd);257 if (rv ) return(rv);271 rv = owl_zwrite_create_from_line(&z, cmd); 272 if (rv != 0) return rv; 258 273 if (!owl_zwrite_is_message_set(&z)) { 259 274 owl_zwrite_set_message(&z, msg);
Note: See TracChangeset
for help on using the changeset viewer.