Thank you; I'm aware of these (along with others). If anyone is waiting for me, please be patient while I find a working laptop/desktop setup.
On Wed, Apr 30, 2014 at 5:07 PM, Kent R. Spillner <[email protected]> wrote: > Ping. > > On Wed, Apr 23, 2014 at 12:44:38PM -0500, Kent R. Spillner wrote: >> I think I sent this out a long time ago but never followed up on it. :( >> >> According to cwmrc(5) you can configure an autogroup like so: >> >> autogroup group windowname,windowclass >> >> However, parse.y doesn't actually accept that syntax; you have to put >> quotes around windowname,windowclass so they're recognized as a single >> string value, and then conf_autogroup() splits them apart later. >> >> This diff adds support to parse.y for recognizing the literal syntax >> as specified in the man page without the need for quotes (while >> retaining support for the quoted values for backwards compatibility). >> >> For example, today you have to put this in your .cwmrc: >> >> autogroup 2 "Navigator,Firefox" >> >> But with this diff you could use the following instead: >> >> autogroup 2 Navigator,Firefox >> >> >> Index: calmwm.h >> =================================================================== >> RCS file: /work/cvsroot/xenocara/app/cwm/calmwm.h,v >> retrieving revision 1.259 >> diff -p -u -r1.259 calmwm.h >> --- calmwm.h 8 Feb 2014 02:49:30 -0000 1.259 >> +++ calmwm.h 23 Apr 2014 17:32:02 -0000 >> @@ -500,7 +500,8 @@ void menuq_clear(struct menu_q *); >> int parse_config(const char *, struct conf *); >> >> void conf_atoms(void); >> -void conf_autogroup(struct conf *, int, const char *); >> +void conf_autogroup(struct conf *, int, const char *, >> + const char *); >> int conf_bind_kbd(struct conf *, const char *, >> const char *); >> int conf_bind_mouse(struct conf *, const char *, >> Index: conf.c >> =================================================================== >> RCS file: /work/cvsroot/xenocara/app/cwm/conf.c,v >> retrieving revision 1.173 >> diff -p -u -r1.173 conf.c >> --- conf.c 21 Apr 2014 12:52:14 -0000 1.173 >> +++ conf.c 23 Apr 2014 17:18:11 -0000 >> @@ -78,19 +78,31 @@ conf_cmd_remove(struct conf *c, const ch >> } >> } >> void >> -conf_autogroup(struct conf *c, int no, const char *val) >> +conf_autogroup(struct conf *c, int no, const char *class, const char *name) >> { >> struct autogroupwin *aw; >> char *p; >> + const char *tmp; >> >> aw = xcalloc(1, sizeof(*aw)); >> >> - if ((p = strchr(val, ',')) == NULL) { >> - aw->name = NULL; >> - aw->class = xstrdup(val); >> + if ((p = strchr(class, ',')) == NULL) { >> + if (name == NULL) >> + aw->name = NULL; >> + else >> + aw->name = xstrdup(name); >> + >> + aw->class = xstrdup(class); >> } else { >> + tmp = class; >> + >> *(p++) = '\0'; >> - aw->name = xstrdup(val); >> + >> + if (name == NULL) >> + aw->name = xstrdup(tmp); >> + else >> + aw->name = xstrdup(name); >> + >> aw->class = xstrdup(p); >> } >> aw->num = no; >> Index: parse.y >> =================================================================== >> RCS file: /work/cvsroot/xenocara/app/cwm/parse.y,v >> retrieving revision 1.58 >> diff -p -u -r1.58 parse.y >> --- parse.y 30 Jan 2014 22:41:16 -0000 1.58 >> +++ parse.y 23 Apr 2014 17:10:49 -0000 >> @@ -152,8 +152,18 @@ main : FONTNAME STRING { >> yyerror("invalid autogroup: %d", $2); >> YYERROR; >> } >> - conf_autogroup(conf, $2, $3); >> + conf_autogroup(conf, $2, $3, NULL); >> free($3); >> + } >> + | AUTOGROUP NUMBER STRING ',' STRING { >> + if ($2 < 0 || $2 > 9) { >> + free($3); >> + yyerror("invalid autogroup: %d", $2); >> + YYERROR; >> + } >> + conf_autogroup(conf, $2, $5, $3); >> + free($3); >> + free($5); >> } >> | IGNORE STRING { >> conf_ignore(conf, $2); >> >
