Introduction
Introduction Statistics Contact Development Disclaimer Help
tEverything on separate files - spoon - dwm status utility (2f30 fork)
git clone git://src.adamsgaard.dk/spoon
Log
Files
Refs
LICENSE
---
commit 57cba38800da81ab96354b669cd4ab8f6962fe5f
parent e12c3d3c4d8ba3ddd7734b1cfacecbd609b33b40
Author: lostd <[email protected]>
Date: Thu, 13 Oct 2016 00:42:22 +0100
Everything on separate files
Also make sure we only include what we use.
Diffstat:
M Makefile | 7 ++++---
A date.c | 19 +++++++++++++++++++
A mpd.c | 54 +++++++++++++++++++++++++++++…
M spoon.c | 120 +----------------------------…
A xkblayout.c | 55 +++++++++++++++++++++++++++++…
5 files changed, 134 insertions(+), 121 deletions(-)
---
diff --git a/Makefile b/Makefile
t@@ -1,9 +1,10 @@
VERSION = 0.2
PREFIX = /usr/local
-DISTFILES = spoon.c batt.c wifi.c cpu.c temp.c mix.c\
- strlcpy.c strlcat.c util.h config.def.h\
+DISTFILES = spoon.c batt.c wifi.c cpu.c temp.c mix.c date.c mpd.c\
+ xkblayout.c strlcpy.c strlcat.c util.h config.def.h\
Makefile LICENSE configure
-OBJ = spoon.o batt.o wifi.o cpu.o temp.o mix.o strlcpy.o strlcat.o
+OBJ = spoon.o batt.o wifi.o cpu.o temp.o mix.o date.o mpd.o xkblayout.o\
+ strlcpy.o strlcat.o
BIN = spoon
include config.mk
diff --git a/date.c b/date.c
t@@ -0,0 +1,19 @@
+#include <sys/types.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+
+int
+dateread(char *buf, size_t len)
+{
+ struct tm *now;
+ time_t t;
+
+ time(&t);
+ now = localtime(&t);
+ if (now == NULL)
+ return -1;
+ strftime(buf, len, "%a %d %b %Y %H:%M %Z", now);
+ return 0;
+}
diff --git a/mpd.c b/mpd.c
t@@ -0,0 +1,54 @@
+#include <err.h>
+#include <stddef.h>
+#include <stdio.h>
+
+#include <mpd/client.h>
+
+#include "util.h"
+
+int
+mpdread(char *buf, size_t len)
+{
+ static struct mpd_connection *conn;
+ struct mpd_song *song;
+ const char *artist, *title, *name;
+
+ if (conn == NULL) {
+ conn = mpd_connection_new(NULL, 0, 0);
+ if (conn == NULL)
+ return -1;
+ if (mpd_connection_get_error(conn) != MPD_ERROR_SUCCESS)
+ goto out;
+ }
+ mpd_send_current_song(conn);
+ song = mpd_recv_song(conn);
+ if (song == NULL) {
+ if (mpd_connection_get_error(conn) != MPD_ERROR_SUCCESS)
+ goto out;
+ /* if no song is playing, reuse connection next time */
+ return -1;
+ }
+ artist = mpd_song_get_tag(song, MPD_TAG_ARTIST, 0);
+ title = mpd_song_get_tag(song, MPD_TAG_TITLE, 0);
+ if (artist != NULL && title != NULL) {
+ snprintf(buf, len, "%s - %s", artist, title);
+ } else if (title != NULL) {
+ strlcpy(buf, title, len);
+ } else {
+ name = mpd_song_get_uri(song);
+ if (name == NULL) {
+ mpd_song_free(song);
+ goto out;
+ }
+ strlcpy(buf, name, len);
+ }
+ mpd_song_free(song);
+ if (!mpd_response_finish(conn))
+ goto out;
+ return 0;
+out:
+ warnx("failed to talk to mpd");
+ mpd_connection_free(conn);
+ conn = NULL;
+ return -1;
+}
diff --git a/spoon.c b/spoon.c
t@@ -1,19 +1,9 @@
/* See LICENSE file for copyright and license details. */
-#include <sys/types.h>
-
#include <err.h>
+#include <stddef.h>
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <X11/XKBlib.h>
-#include <X11/extensions/XKBrules.h>
-#include <mpd/client.h>
-
-#include "util.h"
+#include <X11/Xlib.h>
#define LEN(x) (sizeof (x) / sizeof *(x))
t@@ -41,112 +31,6 @@ dummyread(char *buf, size_t len)
return 0;
}
-int
-mpdread(char *buf, size_t len)
-{
- static struct mpd_connection *conn;
- struct mpd_song *song;
- const char *artist, *title, *name;
-
- if (conn == NULL) {
- conn = mpd_connection_new(NULL, 0, 0);
- if (conn == NULL)
- return -1;
- if (mpd_connection_get_error(conn) != MPD_ERROR_SUCCESS)
- goto out;
- }
- mpd_send_current_song(conn);
- song = mpd_recv_song(conn);
- if (song == NULL) {
- if (mpd_connection_get_error(conn) != MPD_ERROR_SUCCESS)
- goto out;
- /* if no song is playing, reuse connection next time */
- return -1;
- }
- artist = mpd_song_get_tag(song, MPD_TAG_ARTIST, 0);
- title = mpd_song_get_tag(song, MPD_TAG_TITLE, 0);
- if (artist != NULL && title != NULL) {
- snprintf(buf, len, "%s - %s", artist, title);
- } else if (title != NULL) {
- strlcpy(buf, title, len);
- } else {
- name = mpd_song_get_uri(song);
- if (name == NULL) {
- mpd_song_free(song);
- goto out;
- }
- strlcpy(buf, name, len);
- }
- mpd_song_free(song);
- if (!mpd_response_finish(conn))
- goto out;
- return 0;
-out:
- warnx("failed to talk to mpd");
- mpd_connection_free(conn);
- conn = NULL;
- return -1;
-}
-
-int
-dateread(char *buf, size_t len)
-{
- struct tm *now;
- time_t t;
-
- time(&t);
- now = localtime(&t);
- if (now == NULL)
- return -1;
- strftime(buf, len, "%a %d %b %Y %H:%M %Z", now);
- return 0;
-}
-
-int
-xkblayoutread(char *buf, size_t len)
-{
- Display *dpy;
- XkbStateRec state;
- XkbRF_VarDefsRec vd;
- char *tmp = NULL, *str, *tok;
- int i, ret = 0;
-
- dpy = XOpenDisplay(NULL);
- if (dpy == NULL) {
- warnx("cannot open display");
- return -1;
- }
- XkbGetState(dpy, XkbUseCoreKbd, &state);
- if (XkbRF_GetNamesProp(dpy, &tmp, &vd) == 0){
- warnx("cannot extract keyboard properties");
- ret = -1;
- goto out0;
- }
- str = strdup(vd.layout);
- if (str == NULL) {
- ret = -1;
- goto out1;
- }
- tok = strtok(str, ",");
- for (i = 0; i < state.group; i++) {
- tok = strtok(NULL, ",");
- if (tok == NULL) {
- warnx("cannot extract layout");
- ret = -1;
- goto out2;
- }
- }
- strlcpy(buf, tok, len);
-out2:
- free(str);
-out1:
- free(tmp);
- XFree(vd.options);
-out0:
- XCloseDisplay(dpy);
- return ret;
-}
-
void
entcat(char *line, size_t len)
{
diff --git a/xkblayout.c b/xkblayout.c
t@@ -0,0 +1,55 @@
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <X11/Xlib.h>
+#include <X11/XKBlib.h>
+#include <X11/extensions/XKBrules.h>
+
+#include "util.h"
+
+int
+xkblayoutread(char *buf, size_t len)
+{
+ Display *dpy;
+ XkbStateRec state;
+ XkbRF_VarDefsRec vd;
+ char *tmp = NULL, *str, *tok;
+ int i, ret = 0;
+
+ dpy = XOpenDisplay(NULL);
+ if (dpy == NULL) {
+ warnx("cannot open display");
+ return -1;
+ }
+ XkbGetState(dpy, XkbUseCoreKbd, &state);
+ if (XkbRF_GetNamesProp(dpy, &tmp, &vd) == 0){
+ warnx("cannot extract keyboard properties");
+ ret = -1;
+ goto out0;
+ }
+ str = strdup(vd.layout);
+ if (str == NULL) {
+ ret = -1;
+ goto out1;
+ }
+ tok = strtok(str, ",");
+ for (i = 0; i < state.group; i++) {
+ tok = strtok(NULL, ",");
+ if (tok == NULL) {
+ warnx("cannot extract layout");
+ ret = -1;
+ goto out2;
+ }
+ }
+ strlcpy(buf, tok, len);
+out2:
+ free(str);
+out1:
+ free(tmp);
+ XFree(vd.options);
+out0:
+ XCloseDisplay(dpy);
+ return ret;
+}
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.