itInitial commit - xmenu - drop-down menu for X11 Err z3bra.org 70 hgit clone git://git.z3bra.org/xmenu.git URL:git://git.z3bra.org/xmenu.git z3bra.org 70 1Log /scm/xmenu/log.gph z3bra.org 70 1Files /scm/xmenu/files.gph z3bra.org 70 1Refs /scm/xmenu/refs.gph z3bra.org 70 i--- Err z3bra.org 70 1commit 6aa884a39d72c6c64ccb4efdf2417c90df0fef72 /scm/xmenu/commit/6aa884a39d72c6c64ccb4efdf2417c90df0fef72.gph z3bra.org 70 hAuthor: Willy Goiffon URL:mailto:dev@z3bra.org z3bra.org 70 iDate: Fri, 8 Nov 2019 21:33:28 +0100 Err z3bra.org 70 i Err z3bra.org 70 iInitial commit Err z3bra.org 70 i Err z3bra.org 70 iDiffstat: Err z3bra.org 70 i A arg.h | 65 +++++++++++++++++++++++++++++++ Err z3bra.org 70 i A config.def.h | 0 Err z3bra.org 70 i A config.mk | 12 ++++++++++++ Err z3bra.org 70 i A makefile | 18 ++++++++++++++++++ Err z3bra.org 70 i A xmenu.c | 31 +++++++++++++++++++++++++++++++ Err z3bra.org 70 i Err z3bra.org 70 i5 files changed, 126 insertions(+), 0 deletions(-) Err z3bra.org 70 i--- Err z3bra.org 70 1diff --git a/arg.h b/arg.h /scm/xmenu/file/arg.h.gph z3bra.org 70 it@@ -0,0 +1,65 @@ Err z3bra.org 70 i+/* Err z3bra.org 70 i+ * Copy me if you can. Err z3bra.org 70 i+ * by 20h Err z3bra.org 70 i+ */ Err z3bra.org 70 i+ Err z3bra.org 70 i+#ifndef ARG_H__ Err z3bra.org 70 i+#define ARG_H__ Err z3bra.org 70 i+ Err z3bra.org 70 i+extern char *argv0; Err z3bra.org 70 i+ Err z3bra.org 70 i+/* use main(int argc, char *argv[]) */ Err z3bra.org 70 i+#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\ Err z3bra.org 70 i+ argv[0] && argv[0][1]\ Err z3bra.org 70 i+ && argv[0][0] == '-';\ Err z3bra.org 70 i+ argc--, argv++) {\ Err z3bra.org 70 i+ char argc_;\ Err z3bra.org 70 i+ char **argv_;\ Err z3bra.org 70 i+ int brk_;\ Err z3bra.org 70 i+ if (argv[0][1] == '-' && argv[0][2] == '\0') {\ Err z3bra.org 70 i+ argv++;\ Err z3bra.org 70 i+ argc--;\ Err z3bra.org 70 i+ break;\ Err z3bra.org 70 i+ }\ Err z3bra.org 70 i+ for (brk_ = 0, argv[0]++, argv_ = argv;\ Err z3bra.org 70 i+ argv[0][0] && !brk_;\ Err z3bra.org 70 i+ argv[0]++) {\ Err z3bra.org 70 i+ if (argv_ != argv)\ Err z3bra.org 70 i+ break;\ Err z3bra.org 70 i+ argc_ = argv[0][0];\ Err z3bra.org 70 i+ switch (argc_) Err z3bra.org 70 i+ Err z3bra.org 70 i+/* Handles obsolete -NUM syntax */ Err z3bra.org 70 i+#define ARGNUM case '0':\ Err z3bra.org 70 i+ case '1':\ Err z3bra.org 70 i+ case '2':\ Err z3bra.org 70 i+ case '3':\ Err z3bra.org 70 i+ case '4':\ Err z3bra.org 70 i+ case '5':\ Err z3bra.org 70 i+ case '6':\ Err z3bra.org 70 i+ case '7':\ Err z3bra.org 70 i+ case '8':\ Err z3bra.org 70 i+ case '9' Err z3bra.org 70 i+ Err z3bra.org 70 i+#define ARGEND }\ Err z3bra.org 70 i+ } Err z3bra.org 70 i+ Err z3bra.org 70 i+#define ARGC() argc_ Err z3bra.org 70 i+ Err z3bra.org 70 i+#define ARGNUMF() (brk_ = 1, estrtonum(argv[0], 0, INT_MAX)) Err z3bra.org 70 i+ Err z3bra.org 70 i+#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\ Err z3bra.org 70 i+ ((x), abort(), (char *)0) :\ Err z3bra.org 70 i+ (brk_ = 1, (argv[0][1] != '\0')?\ Err z3bra.org 70 i+ (&argv[0][1]) :\ Err z3bra.org 70 i+ (argc--, argv++, argv[0]))) Err z3bra.org 70 i+ Err z3bra.org 70 i+#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\ Err z3bra.org 70 i+ (char *)0 :\ Err z3bra.org 70 i+ (brk_ = 1, (argv[0][1] != '\0')?\ Err z3bra.org 70 i+ (&argv[0][1]) :\ Err z3bra.org 70 i+ (argc--, argv++, argv[0]))) Err z3bra.org 70 i+ Err z3bra.org 70 i+#define LNGARG() &argv[0][0] Err z3bra.org 70 i+ Err z3bra.org 70 i+#endif Err z3bra.org 70 1diff --git a/config.def.h b/config.def.h /scm/xmenu/file/config.def.h.gph z3bra.org 70 1diff --git a/config.mk b/config.mk /scm/xmenu/file/config.mk.gph z3bra.org 70 it@@ -0,0 +1,12 @@ Err z3bra.org 70 i+VERSION = 0.0 Err z3bra.org 70 i+ Err z3bra.org 70 i+CC = cc Err z3bra.org 70 i+LD = $(CC) Err z3bra.org 70 i+ Err z3bra.org 70 i+PREFIX = /usr/local Err z3bra.org 70 i+MANDIR = ${PREFIX}/man Err z3bra.org 70 i+ Err z3bra.org 70 i+CPPFLAGS = -DVERSION=\"${VERSION}\" Err z3bra.org 70 i+CFLAGS = $(CPPFLAGS) -Wall -Wextra -pedantic Err z3bra.org 70 i+LDFLAGS = Err z3bra.org 70 i+LDLIBS = -lxcb Err z3bra.org 70 1diff --git a/makefile b/makefile /scm/xmenu/file/makefile.gph z3bra.org 70 it@@ -0,0 +1,18 @@ Err z3bra.org 70 i+include config.mk Err z3bra.org 70 i+ Err z3bra.org 70 i+xmenu: xmenu.o Err z3bra.org 70 i+xmenu.o: xmenu.c config.h Err z3bra.org 70 i+ Err z3bra.org 70 i+config.h: config.def.h Err z3bra.org 70 i+ cp config.def.h config.h Err z3bra.org 70 i+ Err z3bra.org 70 i+clean: Err z3bra.org 70 i+ rm -f xmenu *.o Err z3bra.org 70 i+ Err z3bra.org 70 i+install: xmenu Err z3bra.org 70 i+ mkdir -p $(DESTDIR)$(PREFIX)/bin Err z3bra.org 70 i+ cp xmenu $(DESTDIR)$(PREFIX)/bin/xmenu Err z3bra.org 70 i+ chmod 755 $(DESTDIR)$(PREFIX)/bin/xmenu Err z3bra.org 70 i+ Err z3bra.org 70 i+uninstall: Err z3bra.org 70 i+ rm $(DESTDIR)$(PREFIX)/bin/xmenu Err z3bra.org 70 1diff --git a/xmenu.c b/xmenu.c /scm/xmenu/file/xmenu.c.gph z3bra.org 70 it@@ -0,0 +1,31 @@ Err z3bra.org 70 i+#include Err z3bra.org 70 i+#include Err z3bra.org 70 i+ Err z3bra.org 70 i+#include Err z3bra.org 70 i+ Err z3bra.org 70 i+#include "arg.h" Err z3bra.org 70 i+#include "config.h" Err z3bra.org 70 i+ Err z3bra.org 70 i+void Err z3bra.org 70 i+usage(FILE *fd, char *name) Err z3bra.org 70 i+{ Err z3bra.org 70 i+ fprintf(fd, "usage: %s [-h]\n", name); Err z3bra.org 70 i+} Err z3bra.org 70 i+ Err z3bra.org 70 i+int Err z3bra.org 70 i+main(int argc, char *argv[]) Err z3bra.org 70 i+{ Err z3bra.org 70 i+ char *argv0; Err z3bra.org 70 i+ ARGBEGIN { Err z3bra.org 70 i+ case 'h': Err z3bra.org 70 i+ usage(stdout, argv0); Err z3bra.org 70 i+ return 0; Err z3bra.org 70 i+ break; Err z3bra.org 70 i+ default: Err z3bra.org 70 i+ usage(stderr, argv0); Err z3bra.org 70 i+ return -1; Err z3bra.org 70 i+ break; Err z3bra.org 70 i+ } ARGEND; Err z3bra.org 70 i+ Err z3bra.org 70 i+ return 0; Err z3bra.org 70 i+} Err z3bra.org 70 .