From 3d12c94f42f91e957fa8a68efcd3b0387791e6cf Mon Sep 17 00:00:00 2001 From: bernd Date: Fri, 27 Apr 2007 17:58:48 +0000 Subject: Initial revision --- util.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 util.c (limited to 'util.c') diff --git a/util.c b/util.c new file mode 100644 index 0000000..4214ce6 --- /dev/null +++ b/util.c @@ -0,0 +1,72 @@ +/* + * calmwm - the calm window manager + * + * Copyright (c) 2004 Marius Aamodt Eriksen + * All rights reserved. + * + * $Id$ + */ + +#include "headers.h" +#include "calmwm.h" + +#define MAXARGLEN 20 + +int +u_spawn(char *argstr) +{ + char *args[MAXARGLEN], **ap; + char **end = &args[MAXARGLEN - 1]; + + switch (fork()) { + case 0: + ap = args; + while (ap < end && (*ap = strsep(&argstr, " \t")) != NULL) + ap++; + + *ap = NULL; + setsid(); + execvp(args[0], args); + err(1, args[0]); + break; + case -1: + warn("fork"); + return (-1); + default: + break; + } + + return (0); +} + +int dirent_exists(char *filename) { + struct stat buffer; + + return stat(filename, &buffer); +} + +int dirent_isdir(char *filename) { + struct stat buffer; + int return_value; + + return_value = stat(filename, &buffer); + + if(return_value == -1) + return 0; + else + return S_ISDIR(buffer.st_mode); +} + +int dirent_islink(char *filename) { + struct stat buffer; + int return_value; + + return_value = lstat(filename, &buffer); + + if(return_value == -1) + return 0; + else + return S_ISLNK(buffer.st_mode); +} + + -- cgit 1.4.1