Merge branch 'obsd-master'

pull/714/head
Thomas Adam 2017-01-09 20:01:12 +00:00
commit 95f5d406e5
4 changed files with 29 additions and 16 deletions

10
cfg.c
View File

@ -27,11 +27,11 @@
#include "tmux.h"
char *cfg_file;
int cfg_finished;
static char **cfg_causes;
static u_int cfg_ncauses;
struct client *cfg_client;
char *cfg_file;
int cfg_finished;
static char **cfg_causes;
static u_int cfg_ncauses;
struct client *cfg_client;
static enum cmd_retval
cfg_done(__unused struct cmdq_item *item, __unused void *data)

View File

@ -18,7 +18,10 @@
#include <sys/types.h>
#include <errno.h>
#include <glob.h>
#include <stdlib.h>
#include <string.h>
#include "tmux.h"
@ -48,23 +51,30 @@ cmd_source_file_exec(struct cmd *self, struct cmdq_item *item)
struct client *c = item->client;
int quiet;
struct cmdq_item *new_item;
enum cmd_retval retval;
glob_t g;
int i;
quiet = args_has(args, 'q');
switch (load_cfg(args->argv[0], c, item, quiet)) {
case -1:
if (cfg_finished)
cfg_print_causes(item);
if (glob(args->argv[0], 0, NULL, &g) != 0) {
if (quiet && errno == ENOENT)
return (CMD_RETURN_NORMAL);
cmdq_error(item, "%s: %s", args->argv[0], strerror(errno));
return (CMD_RETURN_ERROR);
case 0:
if (cfg_finished)
cfg_print_causes(item);
return (CMD_RETURN_NORMAL);
}
retval = CMD_RETURN_NORMAL;
for (i = 0; i < g.gl_pathc; i++) {
if (load_cfg(g.gl_pathv[i], c, item, quiet) != 0)
retval = CMD_RETURN_ERROR;
}
if (cfg_finished) {
new_item = cmdq_get_callback(cmd_source_file_done, NULL);
cmdq_insert_after(item, new_item);
}
return (CMD_RETURN_NORMAL);
globfree(&g);
return (retval);
}
static enum cmd_retval

5
tmux.1
View File

@ -925,7 +925,10 @@ show debugging information about jobs and terminals.
.Xc
.D1 (alias: Ic source )
Execute commands from
.Ar path .
.Ar path
(which may be a
.Xr glob 3
pattern).
If
.Fl q
is given, no error will be returned if

2
tmux.h
View File

@ -78,7 +78,7 @@ struct tmuxproc;
#define READ_CHANGE_HITS 3
/* Attribute to make gcc check printf-like arguments. */
/* Attribute to make GCC check printf-like arguments. */
#define printflike(a, b) __attribute__ ((format (printf, a, b)))
/* Number of items in array. */