On Friday, 3 August 2007 18:36, Alon Bar-Lev wrote: > On Friday 03 August 2007, Rafael J. Wysocki wrote: > > On Friday, 3 August 2007 01:16, Alon Bar-Lev wrote: > > > > > > config.* conflicts with autoconf files. > > > Rename the to configparser.*. > > > > > > After applying this patch, you should rename: > > > config.h->configparser.h > > > config.c->configparser.c > > > > OK > > > > > I did not want to include the removal/addition in patch. > > > > Please do, it's easier to apply complete patches. > > > > Greetings, > > Rafael > > But it is less easy to review :) > And it takes much more space... > We should have patch rename command... Something like: > @@ RENAME from, to @@ > > OK... Here it is.
Thanks. I'm going to apply it if no one objects. Greetings, Rafael > --- > > diff -urNp suspend.org/resume.c suspend-0.6_beta1/resume.c > --- suspend.org/resume.c 2007-05-13 20:53:13.000000000 +0300 > +++ suspend-0.6_beta1/resume.c 2007-08-01 23:05:59.000000000 +0300 > @@ -34,3 +34,3 @@ > #include "swsusp.h" > -#include "config.h" > +#include "configparser.h" > #include "md5.h" > diff -urNp suspend.org/s2ram.c suspend-0.6_beta1/s2ram.c > --- suspend.org/s2ram.c 2007-06-17 23:51:30.000000000 +0300 > +++ suspend-0.6_beta1/s2ram.c 2007-08-02 17:36:49.000000000 +0300 > @@ -16,7 +17,7 @@ > #endif > #include "vt.h" > #include "s2ram.h" > -#include "config.h" > +#include "configparser.h" > > > /* Actually enter the suspend. May be ran on frozen system. */ > diff -urNp suspend.org/s2ram-x86.c suspend-0.6_beta1/s2ram-x86.c > --- suspend.org/s2ram-x86.c 2007-08-03 00:33:20.000000000 +0300 > +++ suspend-0.6_beta1/s2ram-x86.c 2007-08-02 23:50:33.000000000 +0300 > @@ -16,7 +17,7 @@ > #include "vbetool/vbetool.h" > #include "vt.h" > #include "s2ram.h" > -#include "config.h" > +#include "configparser.h" > > /* From dmidecode.c */ > void dmi_scan(void); > diff -urNp suspend.org/suspend.c suspend-0.6_beta1/suspend.c > --- suspend.org/suspend.c 2007-07-29 21:30:27.000000000 +0300 > +++ suspend-0.6_beta1/suspend.c 2007-08-02 23:55:20.000000000 +0300 > @@ -42,4 +41,4 @@ > #include "swsusp.h" > -#include "config.h" > +#include "configparser.h" > #include "md5.h" > #include "splash.h" > --- suspend.org/Makefile 2007-07-29 21:30:27.000000000 +0300 > +++ suspend-0.6_beta1/Makefile 2007-08-03 01:14:35.000000000 +0300 > @@ -23,7 +23,7 @@ LD_FLAGS=-L/usr/local/lib > BINARIES=s2disk s2both s2ram swap-offset resume > BINARIES_MIN=s2disk swap-offset > > -S2RAM_OBJ=vt.o config.o > -SWSUSP_OBJ=vt.o md5.o encrypt.o config.o loglevel.o splash.o bootsplash.o > +S2RAM_OBJ=vt.o configparser.o > +SWSUSP_OBJ=vt.o md5.o encrypt.o configparser.o loglevel.o splash.o > bootsplash.o > > S2RAM_LD_FLAGS = $(LD_FLAGS) > @@ -94,7 +94,7 @@ md5.o encrypt.o: %.o : %.c %.h md5.h > $(CC) $(CC_FLAGS) -DHAVE_INTTYPES_H -DHAVE_STDINT_H -c $< -o $@ > > # Simple objects with header > -config.o vt.o bootsplash.o splash.o splashy_funcs.o vbetool/vbetool.o > s2ram-ppc.o: %.o : %.c %.h > +configparser.o vt.o bootsplash.o splash.o splashy_funcs.o vbetool/vbetool.o > s2ram-ppc.o: %.o : %.c %.h > $(CC) $(CC_FLAGS) -c $< -o $@ > > # Simple object without header > --- suspend.org/config.h 2007-05-13 20:53:13.000000000 +0300 > +++ suspend.inter/config.h 1970-01-01 02:00:00.000000000 +0200 > @@ -1,28 +0,0 @@ > -/* > - * config.h > - * > - * Configuration file-related definitions for user space suspend and resume > - * tools. > - * > - * Copyright (C) 2006 Rafael J. Wysocki <[EMAIL PROTECTED]> > - * > - * This file is released under the GPLv2. > - * > - */ > - > -#include <getopt.h> > - > -#define MAX_STR_LEN 256 > - > -struct config_par { > - char *name; > - char *fmt; > - void *ptr; > - unsigned int len; > -}; > - > -int parse(char *my_name, char *file_name, int parc, struct config_par *parv); > - > -void usage(char *my_name, struct option options[], const char > *short_options); > - > -#define CONFIG_FILE "/etc/suspend.conf" > --- suspend.org/config.c 2007-05-13 20:53:13.000000000 +0300 > +++ suspend.inter/config.c 1970-01-01 02:00:00.000000000 +0200 > @@ -1,131 +0,0 @@ > -/* > - * config.c > - * > - * Configuration file parser for userland suspend tools > - * > - * Copyright (C) 2006 Rafael J. Wysocki <[EMAIL PROTECTED]> > - * > - * This file is released under the GPLv2. > - * > - */ > - > -#include <sys/types.h> > -#include <sys/stat.h> > -#include <fcntl.h> > -#include <unistd.h> > -#include <stdio.h> > -#include <errno.h> > -#include <string.h> > -#include <getopt.h> > - > -#include "config.h" > -#include "encrypt.h" > - > -/** > - * parse - read and parse the configuration file > - * note that a non-present config file is not considered an error here > - */ > - > -int parse(char *my_name, char *file_name, int parc, struct config_par *parv) > -{ > - char *str, *dst, *fmt, buf[MAX_STR_LEN]; > - struct stat stat_buf; > - FILE *file; > - int error, i, j, k; > - > - if (stat(file_name, &stat_buf)) { > - fprintf(stderr, "%s: Could not stat configuration file\n", > - my_name); > - return 0; > - } > - file = fopen(file_name, "r"); > - if (!file) { > - fprintf(stderr, "%s: Could not open configuration file\n", > - my_name); > - return 0; > - } > - error = 0; > - i = 0; > - do { > - str = fgets(buf, MAX_STR_LEN, file); > - if (!str) > - break; > - i++; > - /* Ignore comments */ > - if (*str == '#') > - continue; > - /* Skip white space */ > - while (*str == ' ' || *str == '\t' || *str == '\r' || *str == > '\n') > - str++; > - /* Skip the lines containing white space only */ > - if (!*str) > - continue; > - /* Compare with parameter names */ > - for (j = 0; j < parc; j++) { > - k = strlen(parv[j].name); > - if (!strncmp(parv[j].name, str, k)) { > - if (!parv[j].ptr) > - break; > - str += k; > - while (*str == ' ' || *str == '\t') > - str++; > - if (*str != ':' && *str != '=') { > - error = -EINVAL; > - break; > - } > - str++; > - while (*str == ' ' || *str == '\t') > - str++; > - if (*str) { > - fmt = parv[j].fmt; > - if (!strncmp(fmt, "%s", 2)) { > - dst = parv[j].ptr; > - k = parv[j].len; > - strncpy(dst, str, k - 1); > - k = strlen(dst) - 1; > - if (dst[k] == '\n') > - dst[k] = '\0'; > - } else { > - k = sscanf(str, fmt, > parv[j].ptr); > - if (k <= 0) > - error = -EINVAL; > - } > - break; > - } > - } > - } > - if (j >= parc) > - error = -EINVAL; > - } while (!error); > - fclose(file); > - if (error) > - fprintf(stderr, "%s: Error in configuration file, line %d\n", > - my_name, i); > - return error; > -} > - > -/* We're abusing struct option a bit. usage() expects an \0 in the > - * name string, and after that a comment. > - */ > -void usage(char *my_name, struct option *options, const char *short_options) > -{ > - struct option *opt; > - > - printf("Usage: %s [options]", my_name); > - for (opt = options; opt->name; opt++) > - { > - const char *descr = opt->name + strlen(opt->name) + 1; > - if (strchr(short_options,opt->val)) > - printf("\n -%c, --%s", opt->val, opt->name); > - else > - printf("\n --%s", opt->name); > - > - if (opt->has_arg) > - printf(" <%s>", opt->name); > - > - if (strlen(descr)) > - printf("\t%s",descr); > - } > - > - printf("\n"); > -} > --- suspend.org/configparser.c 1970-01-01 02:00:00.000000000 +0200 > +++ suspend.inter/configparser.c 2007-08-03 02:07:23.000000000 +0300 > @@ -0,0 +1,131 @@ > +/* > + * configparser.c > + * > + * Configuration file parser for userland suspend tools > + * > + * Copyright (C) 2006 Rafael J. Wysocki <[EMAIL PROTECTED]> > + * > + * This file is released under the GPLv2. > + * > + */ > + > +#include <sys/types.h> > +#include <sys/stat.h> > +#include <fcntl.h> > +#include <unistd.h> > +#include <stdio.h> > +#include <errno.h> > +#include <string.h> > +#include <getopt.h> > + > +#include "configparser.h" > +#include "encrypt.h" > + > +/** > + * parse - read and parse the configuration file > + * note that a non-present config file is not considered an error here > + */ > + > +int parse(char *my_name, char *file_name, int parc, struct config_par *parv) > +{ > + char *str, *dst, *fmt, buf[MAX_STR_LEN]; > + struct stat stat_buf; > + FILE *file; > + int error, i, j, k; > + > + if (stat(file_name, &stat_buf)) { > + fprintf(stderr, "%s: Could not stat configuration file\n", > + my_name); > + return 0; > + } > + file = fopen(file_name, "r"); > + if (!file) { > + fprintf(stderr, "%s: Could not open configuration file\n", > + my_name); > + return 0; > + } > + error = 0; > + i = 0; > + do { > + str = fgets(buf, MAX_STR_LEN, file); > + if (!str) > + break; > + i++; > + /* Ignore comments */ > + if (*str == '#') > + continue; > + /* Skip white space */ > + while (*str == ' ' || *str == '\t' || *str == '\r' || *str == > '\n') > + str++; > + /* Skip the lines containing white space only */ > + if (!*str) > + continue; > + /* Compare with parameter names */ > + for (j = 0; j < parc; j++) { > + k = strlen(parv[j].name); > + if (!strncmp(parv[j].name, str, k)) { > + if (!parv[j].ptr) > + break; > + str += k; > + while (*str == ' ' || *str == '\t') > + str++; > + if (*str != ':' && *str != '=') { > + error = -EINVAL; > + break; > + } > + str++; > + while (*str == ' ' || *str == '\t') > + str++; > + if (*str) { > + fmt = parv[j].fmt; > + if (!strncmp(fmt, "%s", 2)) { > + dst = parv[j].ptr; > + k = parv[j].len; > + strncpy(dst, str, k - 1); > + k = strlen(dst) - 1; > + if (dst[k] == '\n') > + dst[k] = '\0'; > + } else { > + k = sscanf(str, fmt, > parv[j].ptr); > + if (k <= 0) > + error = -EINVAL; > + } > + break; > + } > + } > + } > + if (j >= parc) > + error = -EINVAL; > + } while (!error); > + fclose(file); > + if (error) > + fprintf(stderr, "%s: Error in configuration file, line %d\n", > + my_name, i); > + return error; > +} > + > +/* We're abusing struct option a bit. usage() expects an \0 in the > + * name string, and after that a comment. > + */ > +void usage(char *my_name, struct option *options, const char *short_options) > +{ > + struct option *opt; > + > + printf("Usage: %s [options]", my_name); > + for (opt = options; opt->name; opt++) > + { > + const char *descr = opt->name + strlen(opt->name) + 1; > + if (strchr(short_options,opt->val)) > + printf("\n -%c, --%s", opt->val, opt->name); > + else > + printf("\n --%s", opt->name); > + > + if (opt->has_arg) > + printf(" <%s>", opt->name); > + > + if (strlen(descr)) > + printf("\t%s",descr); > + } > + > + printf("\n"); > +} > --- suspend.org/configparser.h 1970-01-01 02:00:00.000000000 +0200 > +++ suspend.inter/configparser.h 2007-05-13 20:53:13.000000000 +0300 > @@ -0,0 +1,28 @@ > +/* > + * configparser.h > + * > + * Configuration file-related definitions for user space suspend and resume > + * tools. > + * > + * Copyright (C) 2006 Rafael J. Wysocki <[EMAIL PROTECTED]> > + * > + * This file is released under the GPLv2. > + * > + */ > + > +#include <getopt.h> > + > +#define MAX_STR_LEN 256 > + > +struct config_par { > + char *name; > + char *fmt; > + void *ptr; > + unsigned int len; > +}; > + > +int parse(char *my_name, char *file_name, int parc, struct config_par *parv); > + > +void usage(char *my_name, struct option options[], const char > *short_options); > + > +#define CONFIG_FILE "/etc/suspend.conf" > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Suspend-devel mailing list > Suspend-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/suspend-devel > > -- "Premature optimization is the root of all evil." - Donald Knuth ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Suspend-devel mailing list Suspend-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/suspend-devel