aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compat/Makefile.am2
-rw-r--r--compat/Makefile.in2
-rw-r--r--compat/strcasestr.c96
-rw-r--r--compat/strchrnul.c15
-rwxr-xr-xconfigure38
-rw-r--r--configure.in2
-rw-r--r--include/cfg.h2
-rw-r--r--include/compat/strcasestr.h4
-rw-r--r--include/compat/strchrnul.h4
-rw-r--r--include/config.h.in6
-rw-r--r--include/duser.h9
-rw-r--r--include/version.h2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in1
-rw-r--r--src/log.c2
-rw-r--r--src/user.c21
16 files changed, 105 insertions, 103 deletions
diff --git a/compat/Makefile.am b/compat/Makefile.am
index 3482755..88a2689 100644
--- a/compat/Makefile.am
+++ b/compat/Makefile.am
@@ -1,6 +1,6 @@
noinst_LIBRARIES = libdusercompat.a
-AM_CPPFLAGS = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include/compat
libdusercompat_a_SOURCES= strcasestr.c \
strchrnul.c
diff --git a/compat/Makefile.in b/compat/Makefile.in
index 7faf34c..f54ed4e 100644
--- a/compat/Makefile.in
+++ b/compat/Makefile.in
@@ -186,7 +186,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
noinst_LIBRARIES = libdusercompat.a
-AM_CPPFLAGS = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include/compat
libdusercompat_a_SOURCES = strcasestr.c \
strchrnul.c
diff --git a/compat/strcasestr.c b/compat/strcasestr.c
index 2312733..1238616 100644
--- a/compat/strcasestr.c
+++ b/compat/strcasestr.c
@@ -1,51 +1,61 @@
-/**
-* duser - Manage MajorDomo lists
-* Copyright (C) 2011 Joseph Hunkeler <jhunkeler@gmail.com, jhunk@stsci.edu>
-*
-* This file is part of duser.
-*
-* duser 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 3 of the License, or
-* (at your option) any later version.
-*
-* duser 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 duser. If not, see <http://www.gnu.org/licenses/>.
-**/
+/* $OpenBSD: strcasestr.c,v 1.3 2006/03/31 05:34:55 deraadt Exp $ */
+/* $NetBSD: strcasestr.c,v 1.2 2005/02/09 21:35:47 kleink Exp $ */
+
+/*-
+ * Copyright (c) 1990, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chris Torek.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
-#include <stdio.h>
-#include <string.h>
#include <ctype.h>
+#include <string.h>
+#include "strcasestr.h"
/*
- * Locate substring
- *
- * The strstr() function finds the first occurrence of the substring needle
- * in the string haystack. The terminating '\0' characters are not compared.
- *
- * The strcasestr() function is like strstr(), but ignores the
- * case of both arguments.
+ * Find the first occurrence of find in s, ignore case.
*/
-char *strcasestr(const char *s, const char *find)
+char *
+strcasestr(const char *s, const char *find)
{
- char c, sc;
- size_t len;
+ char c, sc;
+ size_t len;
- if ((c = *find++) != 0) {
- c = tolower((unsigned char)c);
- len = strlen(find);
- do {
- do {
- if ((sc = *s++) == 0)
- return (NULL);
- } while ((char)tolower((unsigned char)sc) != c);
- } while (strncasecmp(s, find, len) != 0);
- s--;
- }
- return ((char *)s);
+ if ((c = *find++) != 0) {
+ c = (char)tolower((unsigned char)c);
+ len = strlen(find);
+ do {
+ do {
+ if ((sc = *s++) == 0)
+ return (NULL);
+ } while ((char)tolower((unsigned char)sc) != c);
+ } while (strncasecmp(s, find, len) != 0);
+ s--;
+ }
+ return ((char *)s);
}
diff --git a/compat/strchrnul.c b/compat/strchrnul.c
index ffc4f85..da8898b 100644
--- a/compat/strchrnul.c
+++ b/compat/strchrnul.c
@@ -18,9 +18,8 @@
* along with duser. If not, see <http://www.gnu.org/licenses/>.
**/
-#include <stdio.h>
#include <string.h>
-#include <ctype.h>
+#include "strchrnul.h"
/*
* Locate a char in a string
@@ -35,10 +34,12 @@
* if c is not found in s, then it returns a pointer to the
* null byte at the end of s, rather than NULL.
*/
-char *strchrnul(const char* s, int c)
+char *
+strchrnul (const char *s, int c_in)
{
- while(*s && *s != c)
- {
- s++;
- }
+ char c = c_in;
+ while (*s && (*s != c))
+ s++;
+
+ return (char *) s;
}
diff --git a/configure b/configure
index 9ada32c..35c11e9 100755
--- a/configure
+++ b/configure
@@ -1952,8 +1952,6 @@ ac_func_list="$ac_func_list strdup"
ac_func_list="$ac_func_list strerror"
ac_func_list="$ac_func_list strncasecmp"
ac_func_list="$ac_func_list strstr"
-ac_func_list="$ac_func_list strchrnul"
-ac_func_list="$ac_func_list strcasestr"
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@@ -4821,13 +4819,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:4824: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:4822: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:4827: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:4825: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:4830: output\"" >&5)
+ (eval echo "\"\$as_me:4828: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6033,7 +6031,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 6036 "configure"' > conftest.$ac_ext
+ echo '#line 6034 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -7856,11 +7854,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7859: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7857: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7863: \$? = $ac_status" >&5
+ echo "$as_me:7861: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8195,11 +8193,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8198: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8196: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8202: \$? = $ac_status" >&5
+ echo "$as_me:8200: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8300,11 +8298,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8303: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8301: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8307: \$? = $ac_status" >&5
+ echo "$as_me:8305: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8355,11 +8353,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8358: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8356: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8362: \$? = $ac_status" >&5
+ echo "$as_me:8360: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11158,7 +11156,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11161 "configure"
+#line 11159 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11254,7 +11252,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11257 "configure"
+#line 11255 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12150,14 +12148,6 @@ done
-
-
-
-
-
-
-
-
# Detect if the host operating system is SunOS/Solaris as it behaves slightly different
# than GNU/Linux
case "$host_os" in
diff --git a/configure.in b/configure.in
index 212f199..63a1747 100644
--- a/configure.in
+++ b/configure.in
@@ -33,7 +33,7 @@ AC_TYPE_SIZE_T
# Checks for library functions.
AC_FUNC_MALLOC
-AC_CHECK_FUNCS_ONCE([memset strcasecmp strdup strerror strncasecmp strstr strchrnul strcasestr])
+AC_CHECK_FUNCS_ONCE([memset strcasecmp strdup strerror strncasecmp strstr])
# Detect if the host operating system is SunOS/Solaris as it behaves slightly different
# than GNU/Linux
diff --git a/include/cfg.h b/include/cfg.h
index d3814f3..b50c16b 100644
--- a/include/cfg.h
+++ b/include/cfg.h
@@ -23,7 +23,7 @@
#define CFG_MAX 255
int cfg_open(const char* filename);
-void cfg_close();
+void cfg_close(void);
int cfg_get_key(char* val, const char* key);
#endif
diff --git a/include/compat/strcasestr.h b/include/compat/strcasestr.h
new file mode 100644
index 0000000..67917d0
--- /dev/null
+++ b/include/compat/strcasestr.h
@@ -0,0 +1,4 @@
+#ifndef STRCASESTR_H
+#define STRCASESTR_H
+char *strcasestr(const char *s, const char *find);
+#endif
diff --git a/include/compat/strchrnul.h b/include/compat/strchrnul.h
new file mode 100644
index 0000000..ca12806
--- /dev/null
+++ b/include/compat/strchrnul.h
@@ -0,0 +1,4 @@
+#ifndef STRCHRNUL_H
+#define STRCHRNUL_H
+char *strchrnul(const char* s, int c);
+#endif
diff --git a/include/config.h.in b/include/config.h.in
index 4b1d187..65ae69b 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -37,12 +37,6 @@
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
-/* Define to 1 if you have the `strcasestr' function. */
-#undef HAVE_STRCASESTR
-
-/* Define to 1 if you have the `strchrnul' function. */
-#undef HAVE_STRCHRNUL
-
/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRDUP
diff --git a/include/duser.h b/include/duser.h
index d562b33..345bf49 100644
--- a/include/duser.h
+++ b/include/duser.h
@@ -58,11 +58,11 @@ typedef struct record_t
int pad3;
} record_t;
-void usage();
+void usage(void);
int strval(const char* str);
int strfind(const char* str1, const char* str2);
-int logcleanup();
-int COM(const char* func, char *format, ...);
+int logcleanup(void);
+int COM(const char* func, const char *format, ...);
record_t* find_in_file(const char* filename, const char* needle);
int get_file_count(const char* path);
char** get_file_list(const char* path, int count);
@@ -77,6 +77,5 @@ int user_cmd(const int argc, char* argv[]);
int user_choice(char c);
int user_add(const char* filename, const char* needle);
int user_new_list(const char* fname);
-char *strcasestr(const char *s, const char *find);
-char *strchrnul(const char* s, int c);
+int check_cmd_string(char** args, const char* str2, int count);
#endif
diff --git a/include/version.h b/include/version.h
index 52763c1..ddbf2b7 100644
--- a/include/version.h
+++ b/include/version.h
@@ -5,5 +5,5 @@
#define VER_MINOR "0"
#define VER_OTH " "
-void version();
+void version(void);
#endif
diff --git a/src/Makefile.am b/src/Makefile.am
index ecfb6de..db132b6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,5 @@
sbin_PROGRAMS= duser
-LIBCOMPAT_LDADDS= $(top_builddir)/compat/libdusercompat.a
-
AM_CPPFLAGS= -I$(top_srcdir)/include
duser_LDFLAGS= -L$(top_srcdir)/compat
diff --git a/src/Makefile.in b/src/Makefile.in
index 15a1e3a..7f1b5d6 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -189,7 +189,6 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-LIBCOMPAT_LDADDS = $(top_builddir)/compat/libdusercompat.a
AM_CPPFLAGS = -I$(top_srcdir)/include
duser_LDFLAGS = -L$(top_srcdir)/compat
duser_SOURCES = duser.c \
diff --git a/src/log.c b/src/log.c
index c0c1051..0d58f54 100644
--- a/src/log.c
+++ b/src/log.c
@@ -43,7 +43,7 @@ int logcleanup()
return status;
}
-int COM(const char* func, char *format, ...)
+int COM(const char* func, const char *format, ...)
{
struct tm *logtm;
time_t logtime = time(NULL);
diff --git a/src/user.c b/src/user.c
index 3ff49b4..3c6ffd0 100644
--- a/src/user.c
+++ b/src/user.c
@@ -159,16 +159,16 @@ int user_del(record_t* rec)
int bytes = 0;
int bytes_total = 0;
char buf[REGEX_MAX];
- char tmpfile[255];
- snprintf(tmpfile, sizeof(tmpfile), "/tmp/duser.%s.XXXXXX", basename(rec->file));
- if((fd = mkstemp(tmpfile)) < 0 || (tfp = fdopen(fd, "r+")) == NULL)
+ char _tmpfile[255];
+ snprintf(_tmpfile, sizeof(_tmpfile), "/tmp/duser.%s.XXXXXX", basename(rec->file));
+ if((fd = mkstemp(_tmpfile)) < 0 || (tfp = fdopen(fd, "r+")) == NULL)
{
if(fd != -1)
{
close(fd);
- unlink(tmpfile);
+ unlink(_tmpfile);
}
- fprintf(stderr, "FATAL: %s: %s: %s\n", SELF, tmpfile, strerror(errno));
+ fprintf(stderr, "FATAL: %s: %s: %s\n", SELF, _tmpfile, strerror(errno));
exit(1);
}
@@ -220,7 +220,10 @@ int user_del(record_t* rec)
fclose(fp);
close(fd);
- unlink(tmpfile);
+
+ /* unistd.h requires this be a (const char *) not (struct FILE * (*)(void)) */
+ /* -- extrarius -- */
+ unlink((const char *)tmpfile);
if(bytes_total)
return bytes_total;
@@ -266,7 +269,7 @@ record_t* find_in_file(const char* filename, const char* needle)
rptr->index = 0;
rptr->match = 0;
- int index = 0;
+ int _index = 0;
FILE *fp;
char *fname = strdup(filename);
@@ -287,9 +290,9 @@ record_t* find_in_file(const char* filename, const char* needle)
{
snprintf(rptr->name, REGEX_MAX, "%s", cmp);
rptr->match = 1;
- rptr->index = index;
+ rptr->index = _index;
}
- index++;
+ _index++;
processed.lines++;
}