Skip to content
This repository has been archived by the owner on Jan 4, 2022. It is now read-only.

Commit

Permalink
ipc: add support for multiple arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
nuxshed committed Aug 25, 2021
1 parent f5c05ae commit 5c28631
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 35 deletions.
64 changes: 32 additions & 32 deletions config.def.h
Original file line number Diff line number Diff line change
Expand Up @@ -311,36 +311,36 @@ static Button buttons[] = {

static const char *ipcsockpath = "/tmp/dwm.sock";
static IPCCommand ipccommands[] = {
IPCCOMMAND( view, 1, {ARG_TYPE_UINT} ),
IPCCOMMAND( toggleview, 1, {ARG_TYPE_UINT} ),
IPCCOMMAND( tag, 1, {ARG_TYPE_UINT} ),
IPCCOMMAND( toggletag, 1, {ARG_TYPE_UINT} ),
IPCCOMMAND( tagmon, 1, {ARG_TYPE_UINT} ),
IPCCOMMAND( focusmon, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( focusstack, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( zoom, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( incnmaster, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( killclient, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( togglefloating, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( setattachmode, 1, {ARG_TYPE_STR} ),
IPCCOMMAND( setmfact, 1, {ARG_TYPE_FLOAT} ),
IPCCOMMAND( setlayoutsafe, 1, {ARG_TYPE_PTR} ),
IPCCOMMAND( quit, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( floatpos, 1, {ARG_TYPE_STR} ),
IPCCOMMAND( defaultgaps, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( incrgaps, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( incrigaps, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( incrogaps, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( incrihgaps, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( incrivgaps, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( incrohgaps, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( incrovgaps, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( incnmaster, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( rioresize, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( setlayoutex, 1, {ARG_TYPE_SINT} ),
IPCCOMMAND( togglebar, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( togglefullscreen, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( togglefakefullscreen,1, {ARG_TYPE_NONE} ),
IPCCOMMAND( togglefloating, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( togglegaps, 1, {ARG_TYPE_NONE} ),
IPCCOMMAND( view, ARG_TYPE_UINT ),
IPCCOMMAND( toggleview, ARG_TYPE_UINT ),
IPCCOMMAND( tag, ARG_TYPE_UINT ),
IPCCOMMAND( toggletag, ARG_TYPE_UINT ),
IPCCOMMAND( tagmon, ARG_TYPE_UINT ),
IPCCOMMAND( focusmon, ARG_TYPE_SINT ),
IPCCOMMAND( focusstack, ARG_TYPE_SINT ),
IPCCOMMAND( zoom, ARG_TYPE_NONE ),
IPCCOMMAND( incnmaster, ARG_TYPE_SINT ),
IPCCOMMAND( killclient, ARG_TYPE_NONE ),
IPCCOMMAND( togglefloating, ARG_TYPE_NONE ),
IPCCOMMAND( setattachmode, ARG_TYPE_STR ),
IPCCOMMAND( setmfact, ARG_TYPE_FLOAT ),
IPCCOMMAND( setlayoutsafe, ARG_TYPE_PTR ),
IPCCOMMAND( quit, ARG_TYPE_NONE ),
IPCCOMMAND( floatpos, ARG_TYPE_STR ),
IPCCOMMAND( defaultgaps, ARG_TYPE_NONE ),
IPCCOMMAND( incrgaps, ARG_TYPE_SINT ),
IPCCOMMAND( incrigaps, ARG_TYPE_SINT ),
IPCCOMMAND( incrogaps, ARG_TYPE_SINT ),
IPCCOMMAND( incrihgaps, ARG_TYPE_SINT ),
IPCCOMMAND( incrivgaps, ARG_TYPE_SINT ),
IPCCOMMAND( incrohgaps, ARG_TYPE_SINT ),
IPCCOMMAND( incrovgaps, ARG_TYPE_SINT ),
IPCCOMMAND( incnmaster, ARG_TYPE_SINT ),
IPCCOMMAND( rioresize, ARG_TYPE_NONE ),
IPCCOMMAND( setlayoutex, ARG_TYPE_SINT ),
IPCCOMMAND( togglebar, ARG_TYPE_NONE ),
IPCCOMMAND( togglefullscreen, ARG_TYPE_NONE ),
IPCCOMMAND( togglefakefullscreen, ARG_TYPE_NONE ),
IPCCOMMAND( togglefloating, ARG_TYPE_NONE ),
IPCCOMMAND( togglegaps, ARG_TYPE_NONE ),
};
1 change: 0 additions & 1 deletion dwm.c
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,6 @@ static pid_t winpid(Window w);

/* variables */
static const char broken[] = "broken";
static char rawstatustext[NUM_STATUSES][512];
static char stext[1024];
static int screen;
static int sw, sh; /* X display screen geometry width, height */
Expand Down
7 changes: 5 additions & 2 deletions lib/ipc/ipc.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@
#define IPC_MAGIC_ARR { 'D', 'W', 'M', '-', 'I', 'P', 'C'}
#define IPC_MAGIC_LEN 7 // Not including null char

#define IPCCOMMAND(FUNC, ARGC, TYPES) \
{ #FUNC, {FUNC }, ARGC, (ArgType[ARGC])TYPES }
#define IPCCOMMAND(FUNC, TYPE) \
{ #FUNC, {.single_param=FUNC }, 1, (ArgType[1]){TYPE} }

#define IPCCOMMANDS(FUNC, ARGC, ...) \
{ #FUNC, {.array_param=FUNC }, ARGC, (ArgType[ARGC]){__VA_ARGS__} }
// clang-format on

typedef enum IPCMessageType {
Expand Down

0 comments on commit 5c28631

Please sign in to comment.