Still using wmdonkeymon's version of wmgeneral.* as it adds a new function not available in libdockapp yet. --- wmdonkeymon/wmdonkeymon/Makefile | 6 +- wmdonkeymon/wmgeneral/list.c | 169 --------------------------------------- wmdonkeymon/wmgeneral/list.h | 59 -------------- wmdonkeymon/wmgeneral/misc.c | 164 ------------------------------------- wmdonkeymon/wmgeneral/misc.h | 9 --- 5 files changed, 1 insertion(+), 406 deletions(-) delete mode 100644 wmdonkeymon/wmgeneral/list.c delete mode 100644 wmdonkeymon/wmgeneral/list.h delete mode 100644 wmdonkeymon/wmgeneral/misc.c delete mode 100644 wmdonkeymon/wmgeneral/misc.h
diff --git a/wmdonkeymon/wmdonkeymon/Makefile b/wmdonkeymon/wmdonkeymon/Makefile index 2b995ac..e97cbd7 100644 --- a/wmdonkeymon/wmdonkeymon/Makefile +++ b/wmdonkeymon/wmdonkeymon/Makefile @@ -1,10 +1,6 @@ LIBDIR = -L/usr/X11R6/lib LIBS = -lXpm -lXext -lX11 -OBJS = wmdonkeymon.o \ - ../wmgeneral/wmgeneral.o \ - ../wmgeneral/misc.o \ - ../wmgeneral/list.o - +OBJS = wmdonkeymon.o ../wmgeneral/wmgeneral.o .c.o: cc -c -O2 -Wall $< -o $*.o diff --git a/wmdonkeymon/wmgeneral/list.c b/wmdonkeymon/wmgeneral/list.c deleted file mode 100644 index d9f7329..0000000 --- a/wmdonkeymon/wmgeneral/list.c +++ /dev/null @@ -1,169 +0,0 @@ -/* Generic single linked list to keep various information - Copyright (C) 1993, 1994 Free Software Foundation, Inc. - - -Author: Kresten Krab Thorup - -Many modifications by Alfredo K. Kojima - - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ - -#include "list.h" -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#include <stdlib.h> - -/* Return a cons cell produced from (head . tail) */ - -INLINE LinkedList* -list_cons(void* head, LinkedList* tail) -{ - LinkedList* cell; - - cell = (LinkedList*)malloc(sizeof(LinkedList)); - cell->head = head; - cell->tail = tail; - return cell; -} - -/* Return the length of a list, list_length(NULL) returns zero */ - -INLINE int -list_length(LinkedList* list) -{ - int i = 0; - while(list) - { - i += 1; - list = list->tail; - } - return i; -} - -/* Return the Nth element of LIST, where N count from zero. If N - larger than the list length, NULL is returned */ - -INLINE void* -list_nth(int index, LinkedList* list) -{ - while(index-- != 0) - { - if(list->tail) - list = list->tail; - else - return 0; - } - return list->head; -} - -/* Remove the element at the head by replacing it by its successor */ - -INLINE void -list_remove_head(LinkedList** list) -{ - if (!*list) return; - if ((*list)->tail) - { - LinkedList* tail = (*list)->tail; /* fetch next */ - *(*list) = *tail; /* copy next to list head */ - free(tail); /* free next */ - } - else /* only one element in list */ - { - free(*list); - (*list) = 0; - } -} - - -/* Remove the element with `car' set to ELEMENT */ -/* -INLINE void -list_remove_elem(LinkedList** list, void* elem) -{ - while (*list) - { - if ((*list)->head == elem) - list_remove_head(list); - *list = (*list ? (*list)->tail : NULL); - } -}*/ - -INLINE LinkedList * -list_remove_elem(LinkedList* list, void* elem) -{ - LinkedList *tmp; - - if (list) { - if (list->head == elem) { - tmp = list->tail; - free(list); - return tmp; - } - list->tail = list_remove_elem(list->tail, elem); - return list; - } - return NULL; -} - - -/* Return element that has ELEM as car */ - -INLINE LinkedList* -list_find(LinkedList* list, void* elem) -{ - while(list) - { - if (list->head == elem) - return list; - list = list->tail; - } - return NULL; -} - -/* Free list (backwards recursive) */ - -INLINE void -list_free(LinkedList* list) -{ - if(list) - { - list_free(list->tail); - free(list); - } -} - -/* Map FUNCTION over all elements in LIST */ - -INLINE void -list_mapcar(LinkedList* list, void(*function)(void*)) -{ - while(list) - { - (*function)(list->head); - list = list->tail; - } -} diff --git a/wmdonkeymon/wmgeneral/list.h b/wmdonkeymon/wmgeneral/list.h deleted file mode 100644 index be101ef..0000000 --- a/wmdonkeymon/wmgeneral/list.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Generic single linked list to keep various information - Copyright (C) 1993, 1994 Free Software Foundation, Inc. - -Author: Kresten Krab Thorup - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ - -#ifndef __LIST_H_ -#define __LIST_H_ - -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -# define INLINE inline -#else -# define INLINE -#endif - -typedef struct LinkedList { - void *head; - struct LinkedList *tail; -} LinkedList; - -INLINE LinkedList* list_cons(void* head, LinkedList* tail); - -INLINE int list_length(LinkedList* list); - -INLINE void* list_nth(int index, LinkedList* list); - -INLINE void list_remove_head(LinkedList** list); - -INLINE LinkedList *list_remove_elem(LinkedList* list, void* elem); - -INLINE void list_mapcar(LinkedList* list, void(*function)(void*)); - -INLINE LinkedList*list_find(LinkedList* list, void* elem); - -INLINE void list_free(LinkedList* list); - -#endif diff --git a/wmdonkeymon/wmgeneral/misc.c b/wmdonkeymon/wmgeneral/misc.c deleted file mode 100644 index c36cdb4..0000000 --- a/wmdonkeymon/wmgeneral/misc.c +++ /dev/null @@ -1,164 +0,0 @@ -/* dock.c- built-in Dock module for WindowMaker - * - * WindowMaker window manager - * - * Copyright (c) 1997 Alfredo K. Kojima - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include <stdlib.h> -#include <string.h> -#include "list.h" -#include "misc.h" - -/* - *---------------------------------------------------------------------- - * parse_command-- - * Divides a command line into a argv/argc pair. - *---------------------------------------------------------------------- - */ -#define PRC_ALPHA 0 -#define PRC_BLANK 1 -#define PRC_ESCAPE 2 -#define PRC_DQUOTE 3 -#define PRC_EOS 4 -#define PRC_SQUOTE 5 - -typedef struct { - short nstate; - short output; -} DFA; - - -static DFA mtable[9][6] = { - {{3,1},{0,0},{4,0},{1,0},{8,0},{6,0}}, - {{1,1},{1,1},{2,0},{3,0},{5,0},{1,1}}, - {{1,1},{1,1},{1,1},{1,1},{5,0},{1,1}}, - {{3,1},{5,0},{4,0},{1,0},{5,0},{6,0}}, - {{3,1},{3,1},{3,1},{3,1},{5,0},{3,1}}, - {{-1,-1},{0,0},{0,0},{0,0},{0,0},{0,0}}, /* final state */ - {{6,1},{6,1},{7,0},{6,1},{5,0},{3,0}}, - {{6,1},{6,1},{6,1},{6,1},{5,0},{6,1}}, - {{-1,-1},{0,0},{0,0},{0,0},{0,0},{0,0}}, /* final state */ -}; - -char* -next_token(char *word, char **next) -{ - char *ptr; - char *ret, *t; - int state, ctype; - - t = ret = malloc(strlen(word)+1); - ptr = word; - - state = 0; - *t = 0; - while (1) { - if (*ptr==0) - ctype = PRC_EOS; - else if (*ptr=='\\') - ctype = PRC_ESCAPE; - else if (*ptr=='"') - ctype = PRC_DQUOTE; - else if (*ptr=='\'') - ctype = PRC_SQUOTE; - else if (*ptr==' ' || *ptr=='\t') - ctype = PRC_BLANK; - else - ctype = PRC_ALPHA; - - if (mtable[state][ctype].output) { - *t = *ptr; t++; - *t = 0; - } - state = mtable[state][ctype].nstate; - ptr++; - if (mtable[state][0].output<0) { - break; - } - } - - if (*ret==0) - t = NULL; - else - t = strdup(ret); - - free(ret); - - if (ctype==PRC_EOS) - *next = NULL; - else - *next = ptr; - - return t; -} - - -extern void -parse_command(char *command, char ***argv, int *argc) -{ - LinkedList *list = NULL; - char *token, *line; - int count, i; - - line = command; - do { - token = next_token(line, &line); - if (token) { - list = list_cons(token, list); - } - } while (token!=NULL && line!=NULL); - - count = list_length(list); - *argv = malloc(sizeof(char*)*count); - i = count; - while (list!=NULL) { - (*argv)[--i] = list->head; - list_remove_head(&list); - } - *argc = count; -} - -extern pid_t -execCommand(char *command) -{ - pid_t pid; - char **argv; - int argc; - - parse_command(command, &argv, &argc); - - if (argv==NULL) { - return 0; - } - - if ((pid=fork())==0) { - char **args; - int i; - - args = malloc(sizeof(char*)*(argc+1)); - if (!args) - exit(10); - for (i=0; i<argc; i++) { - args[i] = argv[i]; - } - args[argc] = NULL; - execvp(argv[0], args); - exit(10); - } - return pid; -} diff --git a/wmdonkeymon/wmgeneral/misc.h b/wmdonkeymon/wmgeneral/misc.h deleted file mode 100644 index 602e1b7..0000000 --- a/wmdonkeymon/wmgeneral/misc.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __MISC_H -#define __MISC_H - -#include <unistd.h> - -extern void parse_command(char *, char ***, int *); - -extern pid_t execCommand(char *); -#endif /* __MISC_H */ -- 2.7.4 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.