mirror of
https://github.com/leahneukirchen/cwm.git
synced 2023-08-10 21:13:12 +03:00
Simplification; use asprintf where appropriate now.
This commit is contained in:
parent
174537f29e
commit
9bf750b054
8
calmwm.h
8
calmwm.h
@ -260,7 +260,7 @@ TAILQ_HEAD(mousebind_q, bind_ctx);
|
|||||||
struct cmd_ctx {
|
struct cmd_ctx {
|
||||||
TAILQ_ENTRY(cmd_ctx) entry;
|
TAILQ_ENTRY(cmd_ctx) entry;
|
||||||
char *name;
|
char *name;
|
||||||
char path[PATH_MAX];
|
char *path;
|
||||||
};
|
};
|
||||||
TAILQ_HEAD(cmd_q, cmd_ctx);
|
TAILQ_HEAD(cmd_q, cmd_ctx);
|
||||||
TAILQ_HEAD(wm_q, cmd_ctx);
|
TAILQ_HEAD(wm_q, cmd_ctx);
|
||||||
@ -298,13 +298,13 @@ struct conf {
|
|||||||
int snapdist;
|
int snapdist;
|
||||||
struct gap gap;
|
struct gap gap;
|
||||||
char *color[CWM_COLOR_NITEMS];
|
char *color[CWM_COLOR_NITEMS];
|
||||||
char known_hosts[PATH_MAX];
|
|
||||||
char *font;
|
char *font;
|
||||||
char *wmname;
|
char *wmname;
|
||||||
Cursor cursor[CF_NITEMS];
|
Cursor cursor[CF_NITEMS];
|
||||||
int xrandr;
|
int xrandr;
|
||||||
int xrandr_event_base;
|
int xrandr_event_base;
|
||||||
char *homedir;
|
char *homedir;
|
||||||
|
char *known_hosts;
|
||||||
char *wm_argv;
|
char *wm_argv;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -540,9 +540,9 @@ int conf_bind_mouse(struct conf *, const char *,
|
|||||||
const char *);
|
const char *);
|
||||||
void conf_clear(struct conf *);
|
void conf_clear(struct conf *);
|
||||||
void conf_client(struct client_ctx *);
|
void conf_client(struct client_ctx *);
|
||||||
int conf_cmd_add(struct conf *, const char *,
|
void conf_cmd_add(struct conf *, const char *,
|
||||||
const char *);
|
const char *);
|
||||||
int conf_wm_add(struct conf *, const char *,
|
void conf_wm_add(struct conf *, const char *,
|
||||||
const char *);
|
const char *);
|
||||||
void conf_cursor(struct conf *);
|
void conf_cursor(struct conf *);
|
||||||
void conf_grab_kbd(Window);
|
void conf_grab_kbd(Window);
|
||||||
|
58
conf.c
58
conf.c
@ -33,7 +33,6 @@
|
|||||||
#include "calmwm.h"
|
#include "calmwm.h"
|
||||||
|
|
||||||
static const char *conf_bind_getmask(const char *, unsigned int *);
|
static const char *conf_bind_getmask(const char *, unsigned int *);
|
||||||
static void conf_cmd_remove(struct conf *, const char *);
|
|
||||||
static void conf_unbind_key(struct conf *, struct bind_ctx *);
|
static void conf_unbind_key(struct conf *, struct bind_ctx *);
|
||||||
static void conf_unbind_mouse(struct conf *, struct bind_ctx *);
|
static void conf_unbind_mouse(struct conf *, struct bind_ctx *);
|
||||||
|
|
||||||
@ -279,8 +278,7 @@ conf_init(struct conf *c)
|
|||||||
|
|
||||||
conf_wm_add(c, "cwm", "cwm");
|
conf_wm_add(c, "cwm", "cwm");
|
||||||
|
|
||||||
(void)snprintf(c->known_hosts, sizeof(c->known_hosts), "%s/%s",
|
xasprintf(&c->known_hosts, "%s/%s", c->homedir, ".ssh/known_hosts");
|
||||||
c->homedir, ".ssh/known_hosts");
|
|
||||||
|
|
||||||
c->font = xstrdup("sans-serif:pixelsize=14:bold");
|
c->font = xstrdup("sans-serif:pixelsize=14:bold");
|
||||||
c->wmname = xstrdup("CWM");
|
c->wmname = xstrdup("CWM");
|
||||||
@ -298,11 +296,13 @@ conf_clear(struct conf *c)
|
|||||||
while ((cmd = TAILQ_FIRST(&c->cmdq)) != NULL) {
|
while ((cmd = TAILQ_FIRST(&c->cmdq)) != NULL) {
|
||||||
TAILQ_REMOVE(&c->cmdq, cmd, entry);
|
TAILQ_REMOVE(&c->cmdq, cmd, entry);
|
||||||
free(cmd->name);
|
free(cmd->name);
|
||||||
|
free(cmd->path);
|
||||||
free(cmd);
|
free(cmd);
|
||||||
}
|
}
|
||||||
while ((wm = TAILQ_FIRST(&c->wmq)) != NULL) {
|
while ((wm = TAILQ_FIRST(&c->wmq)) != NULL) {
|
||||||
TAILQ_REMOVE(&c->wmq, wm, entry);
|
TAILQ_REMOVE(&c->wmq, wm, entry);
|
||||||
free(wm->name);
|
free(wm->name);
|
||||||
|
free(wm->path);
|
||||||
free(wm);
|
free(wm);
|
||||||
}
|
}
|
||||||
while ((kb = TAILQ_FIRST(&c->keybindq)) != NULL) {
|
while ((kb = TAILQ_FIRST(&c->keybindq)) != NULL) {
|
||||||
@ -327,57 +327,49 @@ conf_clear(struct conf *c)
|
|||||||
for (i = 0; i < CWM_COLOR_NITEMS; i++)
|
for (i = 0; i < CWM_COLOR_NITEMS; i++)
|
||||||
free(c->color[i]);
|
free(c->color[i]);
|
||||||
|
|
||||||
|
free(c->known_hosts);
|
||||||
free(c->font);
|
free(c->font);
|
||||||
free(c->wmname);
|
free(c->wmname);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
void
|
||||||
conf_cmd_add(struct conf *c, const char *name, const char *path)
|
conf_cmd_add(struct conf *c, const char *name, const char *path)
|
||||||
{
|
{
|
||||||
struct cmd_ctx *cmd;
|
struct cmd_ctx *cmd, *cmdtmp = NULL, *cmdnxt;
|
||||||
|
|
||||||
cmd = xmalloc(sizeof(*cmd));
|
cmd = xmalloc(sizeof(*cmd));
|
||||||
cmd->name = xstrdup(name);
|
cmd->name = xstrdup(name);
|
||||||
if (strlcpy(cmd->path, path, sizeof(cmd->path)) >= sizeof(cmd->path)) {
|
cmd->path = xstrdup(path);
|
||||||
free(cmd->name);
|
|
||||||
free(cmd);
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
conf_cmd_remove(c, name);
|
|
||||||
|
|
||||||
TAILQ_INSERT_TAIL(&c->cmdq, cmd, entry);
|
TAILQ_FOREACH_SAFE(cmdtmp, &c->cmdq, entry, cmdnxt) {
|
||||||
return(1);
|
if (strcmp(cmdtmp->name, name) == 0) {
|
||||||
}
|
TAILQ_REMOVE(&c->cmdq, cmdtmp, entry);
|
||||||
|
free(cmdtmp->name);
|
||||||
static void
|
free(cmdtmp->path);
|
||||||
conf_cmd_remove(struct conf *c, const char *name)
|
free(cmdtmp);
|
||||||
{
|
|
||||||
struct cmd_ctx *cmd = NULL, *cmdnxt;
|
|
||||||
|
|
||||||
TAILQ_FOREACH_SAFE(cmd, &c->cmdq, entry, cmdnxt) {
|
|
||||||
if (strcmp(cmd->name, name) == 0) {
|
|
||||||
TAILQ_REMOVE(&c->cmdq, cmd, entry);
|
|
||||||
free(cmd->name);
|
|
||||||
free(cmd);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
TAILQ_INSERT_TAIL(&c->cmdq, cmd, entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
void
|
||||||
conf_wm_add(struct conf *c, const char *name, const char *path)
|
conf_wm_add(struct conf *c, const char *name, const char *path)
|
||||||
{
|
{
|
||||||
struct cmd_ctx *wm;
|
struct cmd_ctx *wm, *wmtmp = NULL, *wmnxt;
|
||||||
|
|
||||||
wm = xmalloc(sizeof(*wm));
|
wm = xmalloc(sizeof(*wm));
|
||||||
wm->name = xstrdup(name);
|
wm->name = xstrdup(name);
|
||||||
if (strlcpy(wm->path, path, sizeof(wm->path)) >= sizeof(wm->path)) {
|
wm->path = xstrdup(path);
|
||||||
free(wm->name);
|
|
||||||
free(wm);
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
TAILQ_FOREACH_SAFE(wmtmp, &c->cmdq, entry, wmnxt) {
|
||||||
|
if (strcmp(wmtmp->name, name) == 0) {
|
||||||
|
TAILQ_REMOVE(&c->wmq, wmtmp, entry);
|
||||||
|
free(wmtmp->name);
|
||||||
|
free(wmtmp->path);
|
||||||
|
free(wmtmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
TAILQ_INSERT_TAIL(&c->wmq, wm, entry);
|
TAILQ_INSERT_TAIL(&c->wmq, wm, entry);
|
||||||
return(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
10
parse.y
10
parse.y
@ -137,22 +137,24 @@ main : FONTNAME STRING {
|
|||||||
conf->snapdist = $2;
|
conf->snapdist = $2;
|
||||||
}
|
}
|
||||||
| COMMAND STRING string {
|
| COMMAND STRING string {
|
||||||
if (!conf_cmd_add(conf, $2, $3)) {
|
if (strlen($3) >= PATH_MAX) {
|
||||||
yyerror("command name/path too long");
|
yyerror("%s command path too long", $2);
|
||||||
free($2);
|
free($2);
|
||||||
free($3);
|
free($3);
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
|
conf_cmd_add(conf, $2, $3);
|
||||||
free($2);
|
free($2);
|
||||||
free($3);
|
free($3);
|
||||||
}
|
}
|
||||||
| WM STRING string {
|
| WM STRING string {
|
||||||
if (!conf_wm_add(conf, $2, $3)) {
|
if (strlen($3) >= PATH_MAX) {
|
||||||
yyerror("wm name/path too long");
|
yyerror("%s wm path too long", $2);
|
||||||
free($2);
|
free($2);
|
||||||
free($3);
|
free($3);
|
||||||
YYERROR;
|
YYERROR;
|
||||||
}
|
}
|
||||||
|
conf_wm_add(conf, $2, $3);
|
||||||
free($2);
|
free($2);
|
||||||
free($3);
|
free($3);
|
||||||
}
|
}
|
||||||
|
6
search.c
6
search.c
@ -162,12 +162,11 @@ static void
|
|||||||
match_path_type(struct menu_q *resultq, char *search, int flag)
|
match_path_type(struct menu_q *resultq, char *search, int flag)
|
||||||
{
|
{
|
||||||
struct menu *mi;
|
struct menu *mi;
|
||||||
char pattern[PATH_MAX];
|
char *pattern;
|
||||||
glob_t g;
|
glob_t g;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
(void)strlcpy(pattern, search, sizeof(pattern));
|
xasprintf(&pattern, "%s*", search);
|
||||||
(void)strlcat(pattern, "*", sizeof(pattern));
|
|
||||||
if (glob(pattern, GLOB_MARK, NULL, &g) != 0)
|
if (glob(pattern, GLOB_MARK, NULL, &g) != 0)
|
||||||
return;
|
return;
|
||||||
for (i = 0; i < g.gl_pathc; i++) {
|
for (i = 0; i < g.gl_pathc; i++) {
|
||||||
@ -178,6 +177,7 @@ match_path_type(struct menu_q *resultq, char *search, int flag)
|
|||||||
TAILQ_INSERT_TAIL(resultq, mi, resultentry);
|
TAILQ_INSERT_TAIL(resultq, mi, resultentry);
|
||||||
}
|
}
|
||||||
globfree(&g);
|
globfree(&g);
|
||||||
|
free(pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user