Merge commit 'meins/next' into next
authorAndre Noll <maan@systemlinux.org>
Thu, 9 Jul 2009 14:14:19 +0000 (16:14 +0200)
committerAndre Noll <maan@systemlinux.org>
Thu, 9 Jul 2009 14:14:19 +0000 (16:14 +0200)
65 files changed:
aac_afh.c
aacdec_filter.c
acl.c
afh.c
afh_common.c
afs.c
aft.c
alsa_write.c
amp_filter.c
attribute.c
audioc.c
audiod.c
audiod_command.c
blob.c
chunk_queue.c
client.c
client_common.c
close_on_fork.c
command.c
compress_filter.c
crypt.c
daemon.c
dccp_recv.c
dccp_send.c
error.h
exec.c
fade.c
fd.c
fec.c
fecdec_filter.c
file_write.c
filter.c
filter_common.c
grab_client.c
gui.c
http_recv.c
http_send.c
mood.c
mp3_afh.c
mp3dec_filter.c
net.c
ogg_afh.c
oggdec_filter.c
oss_write.c
playlist.c
prebuffer_filter.c
recv.c
recv_common.c
ringbuffer.c
sched.c
score.c
send_common.c
server.c
stat.c
stdin.c
stdout.c
string.c
string.h
udp_recv.c
udp_send.c
user_list.c
vss.c
wav_filter.c
write.c
write_common.c

index 0446117..7de7370 100644 (file)
--- a/aac_afh.c
+++ b/aac_afh.c
@@ -10,6 +10,7 @@
 
 /** \file aac_afh.c para_server's aac audio format handler */
 
+#include <regex.h>
 #include <osl.h>
 
 #include "para.h"
index 1ceca1f..59c4989 100644 (file)
@@ -10,8 +10,9 @@
 
 /** \file aacdec_filter.c paraslash's aac (m4a) decoder. */
 
-#include "para.h"
+#include <regex.h>
 
+#include "para.h"
 #include "list.h"
 #include "sched.h"
 #include "ggo.h"
diff --git a/acl.c b/acl.c
index ffcd168..087ea0c 100644 (file)
--- a/acl.c
+++ b/acl.c
@@ -6,6 +6,8 @@
 
 /** \file acl.c Access control lists for paraslash senders. */
 
+#include <regex.h>
+
 #include "para.h"
 #include "error.h"
 #include "string.h"
diff --git a/afh.c b/afh.c
index 894cd78..c006449 100644 (file)
--- a/afh.c
+++ b/afh.c
@@ -6,6 +6,7 @@
 
 /** \file afh.c Paraslash's standalone audio format handler tool. */
 
+#include <regex.h>
 #include <dirent.h>
 #include <sys/time.h>
 
index 7470146..bb04453 100644 (file)
@@ -10,6 +10,7 @@
 #include <sys/time.h> /* gettimeofday */
 #include <sys/types.h>
 #include <dirent.h>
+#include <regex.h>
 
 #include "para.h"
 #include "error.h"
diff --git a/afs.c b/afs.c
index b40fe8e..8e3aa92 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -6,6 +6,7 @@
 
 /** \file afs.c Paraslash's audio file selector. */
 
+#include <regex.h>
 #include <signal.h>
 #include <fnmatch.h>
 #include <openssl/rc4.h>
diff --git a/aft.c b/aft.c
index 6b74b0a..220e019 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -6,18 +6,18 @@
 
 /** \file aft.c Audio file table functions. */
 
+#include <regex.h>
 #include <dirent.h> /* readdir() */
 #include <openssl/rc4.h>
-
+#include <sys/mman.h>
+#include <fnmatch.h>
+#include <sys/shm.h>
 #include <osl.h>
+
 #include "para.h"
 #include "error.h"
 #include "crypt.h"
 #include "string.h"
-#include <sys/mman.h>
-#include <fnmatch.h>
-#include <sys/shm.h>
-
 #include "afh.h"
 #include "afs.h"
 #include "net.h"
index cf0f335..3c7c03b 100644 (file)
@@ -12,6 +12,7 @@
  * based on the vplay program by Michael Beck.
  */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <alsa/asoundlib.h>
index a62344a..63b1b9a 100644 (file)
@@ -6,6 +6,8 @@
 
 /** \file amp_filter.c Paraslash's amplify filter. */
 
+#include <regex.h>
+
 #include "para.h"
 #include "amp_filter.cmdline.h"
 #include "list.h"
index 41a1005..b962661 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file attribute.c Attribute handling functions. */
 
+#include <regex.h>
 #include <openssl/rc4.h>
 #include <osl.h>
 
index 5c081da..81e5d1c 100644 (file)
--- a/audioc.c
+++ b/audioc.c
@@ -6,6 +6,7 @@
 
 /** \file audioc.c the client program used to connect to para_audiod */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
index 29a8aa3..32c8394 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -5,6 +5,7 @@
  */
 
 /** \file audiod.c the paraslash's audio daemon */
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <signal.h>
index da5a2dc..b331294 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file audiod_command.c commands for para_audiod */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
@@ -17,7 +18,6 @@
 #include "ggo.h"
 #include "filter.h"
 #include "grab_client.h"
-
 #include "error.h"
 #include "audiod.h"
 #include "net.h"
diff --git a/blob.c b/blob.c
index 38e5cb5..6f10f0a 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -6,6 +6,7 @@
 
 /** \file blob.c Macros and functions for blob handling. */
 
+#include <regex.h>
 #include <fnmatch.h>
 #include <openssl/rc4.h>
 #include <osl.h>
index fa31718..bb97c69 100644 (file)
@@ -6,6 +6,8 @@
 
 /** \file chunk_queue.c Queuing functions for paraslash senders. */
 
+#include <regex.h>
+
 #include "para.h"
 #include "list.h"
 #include "afh.h"
index fef6ba4..b7c1644 100644 (file)
--- a/client.c
+++ b/client.c
@@ -6,6 +6,7 @@
 
 /** \file client.c the client program used to connect to para_server */
 
+#include <regex.h>
 #include <openssl/rc4.h>
 
 #include "para.h"
index dd951c1..eb05358 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file client_common.c Common functions of para_client and para_audiod. */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <openssl/rc4.h>
index 378799c..fb19064 100644 (file)
@@ -5,6 +5,9 @@
  */
 
 /** \file close_on_fork.c Manage a list of fds that should be closed on fork. */
+
+#include <regex.h>
+
 #include "para.h"
 #include "list.h"
 #include "string.h"
index a9eb03f..8fdb839 100644 (file)
--- a/command.c
+++ b/command.c
@@ -6,6 +6,7 @@
 
 /** \file command.c Client authentication and server commands. */
 
+#include <regex.h>
 #include <signal.h>
 #include <sys/time.h>
 #include <sys/types.h>
index 65bc8e5..2e263e8 100644 (file)
@@ -10,6 +10,8 @@
  * Uses ideas of AudioCompress, (C) 2002-2004  M. Hari Nezumi <magenta@trikuare.cx>
  */
 
+#include <regex.h>
+
 #include "para.h"
 #include "compress_filter.cmdline.h"
 #include "list.h"
diff --git a/crypt.c b/crypt.c
index a264292..352c5b8 100644 (file)
--- a/crypt.c
+++ b/crypt.c
@@ -6,6 +6,7 @@
 
 /** \file crypt.c openssl-based RSA encryption/decryption routines */
 
+#include <regex.h>
 #include <dirent.h>
 #include <sys/types.h>
 #include <sys/socket.h>
index cae63ea..7f4aa6f 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -5,12 +5,14 @@
  */
 
 /** \file daemon.c Some helpers for programs that detach from the console. */
-#include "para.h"
-#include "daemon.h"
+
+#include <regex.h>
 #include <pwd.h>
 #include <sys/types.h> /* getgrnam() */
 #include <grp.h>
 
+#include "para.h"
+#include "daemon.h"
 #include "string.h"
 #include "color.h"
 
index 93dea80..4d4ac86 100644 (file)
@@ -11,6 +11,7 @@
  * (C) 2005 Ian McDonald <imcdnzl@gmail.com>
  */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
index 1e62d28..d2f81dd 100644 (file)
@@ -11,6 +11,7 @@
  * (C) 2005 Ian McDonald <imcdnzl@gmail.com>
  */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <osl.h>
diff --git a/error.h b/error.h
index f2e92c6..1cc40e7 100644 (file)
--- a/error.h
+++ b/error.h
@@ -274,7 +274,8 @@ extern const char **para_errlist[];
        PARA_ERROR(STRTOLL, "unknown strtoll error"), \
        PARA_ERROR(ATOI_NO_DIGITS, "no digits found in string"), \
        PARA_ERROR(ATOI_JUNK_AT_END, "further characters after number"), \
-       PARA_ERROR(SIZE_PREFIX, "bad size prefix") \
+       PARA_ERROR(SIZE_PREFIX, "bad size prefix"), \
+       PARA_ERROR(REGEX, "regular expression error") \
 
 
 #define EXEC_ERRORS \
diff --git a/exec.c b/exec.c
index 7fc4ae0..b603809 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -5,12 +5,15 @@
  */
 
 /** \file exec.c Helper functions for spawning new processes. */
+
+#include <regex.h>
 #include <dirent.h>
+
 #include "para.h"
 #include "close_on_fork.h"
 #include "error.h"
-#include "string.h"
 #include "fd.h"
+#include "string.h"
 
 /**
  * Spawn a new process and redirect fd 0, 1, and 2.
diff --git a/fade.c b/fade.c
index 7f88447..0304f4c 100644 (file)
--- a/fade.c
+++ b/fade.c
@@ -6,13 +6,9 @@
 
 /** \file fade.c A volume fader and alarm clock for linux. */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
-
-#include "fade.cmdline.h"
-#include "para.h"
-#include "fd.h"
-
 #include <sys/ioctl.h>
 #include <ctype.h>
 #include <stdlib.h> /* EXIT_SUCCESS */
 #include <string.h>
 #include <limits.h>
 #include <sys/soundcard.h>
+
+#include "fade.cmdline.h"
+#include "para.h"
+#include "fd.h"
 #include "string.h"
 #include "error.h"
 
-
 INIT_FADE_ERRLISTS;
 struct fade_args_info conf;
 
diff --git a/fd.c b/fd.c
index 23b89b5..3dc490c 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -6,6 +6,7 @@
 
 /** \file fd.c Helper functions for file descriptor handling. */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <sys/mman.h>
@@ -15,6 +16,7 @@
 #include "para.h"
 #include "error.h"
 #include "string.h"
+
 /**
  * Write a buffer to a file descriptor, re-write on short writes.
  *
diff --git a/fec.c b/fec.c
index e4cdbaf..d097b77 100644 (file)
--- a/fec.c
+++ b/fec.c
@@ -33,6 +33,7 @@
  * OF SUCH DAMAGE.
  */
 
+#include <regex.h>
 
 #include "para.h"
 #include "error.h"
index a3cba9b..7fe8743 100644 (file)
@@ -6,6 +6,8 @@
 
 /** \file fecdec_filter.c A filter fec-decodes an audio stream. */
 
+#include <regex.h>
+
 #include <dirent.h>
 #include "para.h"
 #include "error.h"
index 1c534ae..3286ea8 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file file_write.c simple output plugin for testing purposes */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <sys/time.h>
index b8a7c5c..4113690 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -6,8 +6,9 @@
 
 /** \file filter.c The stand-alone filter program. */
 
-#include "para.h"
+#include <regex.h>
 
+#include "para.h"
 #include "filter.cmdline.h"
 #include "list.h"
 #include "sched.h"
index fbc5b66..cfe08dd 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file filter_common.c Common helper functions for filter input/output. */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
index df5b40a..67db505 100644 (file)
@@ -11,6 +11,7 @@
  * \sa filter_chain filter_chain_info filter.
  */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
diff --git a/gui.c b/gui.c
index e734b10..4866979 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -6,14 +6,16 @@
 
 /** \file gui.c Curses-based interface for paraslash. */
 
+#include <regex.h>
 #include <signal.h>
 #include <sys/types.h>
 #include <dirent.h>
+#include <curses.h>
+
 #include "gui.cmdline.h"
 #include "para.h"
 #include "gui.h"
 #include "string.h"
-#include <curses.h>
 #include "ringbuffer.h"
 #include "fd.h"
 #include "error.h"
index 7f13034..f644233 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file http_recv.c paraslash's http receiver */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
index feb1a84..3959cad 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file http_send.c paraslash's http sender */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <osl.h>
diff --git a/mood.c b/mood.c
index cb1534b..f16d9c4 100644 (file)
--- a/mood.c
+++ b/mood.c
@@ -6,8 +6,10 @@
 
 /** \file mood.c Paraslash's mood handling functions. */
 
+#include <regex.h>
 #include <fnmatch.h>
 #include <osl.h>
+
 #include "para.h"
 #include "error.h"
 #include "string.h"
@@ -63,11 +65,11 @@ typedef int mood_score_function(const char *path, const struct afs_info *afsi,
  * Some mood parsers pre-process the data given in the mood line to compute a
  * structure which depends of the particular mood_method and which is used
  * later in the mood_score_function of the mood_method. The mood_parser may
- * store a pointer to its structure via the second argument.
+ * store a pointer to its structure via the void** pointer.
  *
  * \sa mood_open(), mood_cleanup_function, mood_score_function.
  */
-typedef int mood_parser(const char *, void **);
+typedef int mood_parser(int, char **, void **);
 
 /**
  * Deallocate resources which were allocated by the mood_parser.
@@ -165,11 +167,10 @@ static uint64_t int_sqrt(uint64_t x)
        return res;
 }
 
-static int mm_no_attributes_set_parser(const char *arg, __a_unused void **ignored)
+static int mm_no_attributes_set_parser(int argc, __a_unused char **argv,
+               __a_unused void **ignored)
 {
-       if (arg && *arg)
-               PARA_WARNING_LOG("ignored junk at eol: %s\n", arg);
-       return 1;
+       return argc? -E_MOOD_SYNTAX : 1;
 }
 
 static int mm_no_attributes_set_score_function(__a_unused const char *path,
@@ -198,11 +199,10 @@ static int mm_played_rarely_score_function(__a_unused const char *path,
        return -100;
 }
 
-static int mm_played_rarely_parser(const char *arg, __a_unused void **ignored)
+static int mm_played_rarely_parser(int argc, __a_unused char **argv,
+               __a_unused void **ignored)
 {
-       if (arg && *arg)
-               PARA_WARNING_LOG("ignored junk at eol: %s\n", arg);
-       return 1;
+       return argc? -E_MOOD_SYNTAX : 1;
 }
 
 static int mm_path_matches_score_function(const char *path,
@@ -215,9 +215,11 @@ static int mm_path_matches_score_function(const char *path,
        return 100;
 }
 
-static int mm_path_matches_parser(const char *arg, void **data)
+static int mm_path_matches_parser(int argc, char **argv, void **data)
 {
-       *data = para_strdup(arg);
+       if (argc != 1)
+               return -E_MOOD_SYNTAX;
+       *data = para_strdup(argv[1]);
        return 1;
 }
 
@@ -226,16 +228,20 @@ static void mm_path_matches_cleanup(void *data)
        free(data);
 }
 
-static int mm_is_set_parser(const char *arg, void **bitnum)
+static int mm_is_set_parser(int argc, char **argv, void **bitnum)
 {
-       unsigned char *c = para_malloc(1);
-       int ret = get_attribute_bitnum_by_name(arg, c);
+       int ret;
+       unsigned char c, *res;
 
-       if (ret >= 0)
-               *bitnum = c;
-       else
-               free(c);
-       return ret;
+       if (argc != 1)
+               return -E_MOOD_SYNTAX;
+       ret = get_attribute_bitnum_by_name(argv[1], &c);
+       if (ret < 0)
+               return ret;
+       res = para_malloc(1);
+       *res = c;
+       *bitnum = res;
+       return 1;
 }
 
 static int mm_is_set_score_function(__a_unused const char *path,
@@ -476,8 +482,8 @@ check_for_if:
        ret = -E_MOOD_SYNTAX;
        if (!mood_methods[i].parser)
                goto out;
-       w++;
-       ret = mood_methods[i].parser(*w, &mi->parser_data);
+       ret = mood_methods[i].parser(num_words - 1 - (w - argv), w,
+               &mi->parser_data);
        if (ret < 0)
                goto out;
        mi->method = &mood_methods[i];
index ff133ca..5eacf63 100644 (file)
--- a/mp3_afh.c
+++ b/mp3_afh.c
@@ -16,7 +16,9 @@
  *                      Johannes Overmann <overmann@iname.com>
  */
 
+#include <regex.h>
 #include <osl.h>
+
 #include "para.h"
 #include "error.h"
 #include "afh.h"
index 92da4a5..aceee9a 100644 (file)
@@ -6,6 +6,9 @@
 
 /** \file mp3dec_filter.c Paraslash's mp3 decoder. */
 
+#include <mad.h>
+#include <regex.h>
+
 #include "para.h"
 #include "mp3dec_filter.cmdline.h"
 #include "list.h"
@@ -13,7 +16,6 @@
 #include "ggo.h"
 #include "filter.h"
 #include "error.h"
-#include <mad.h>
 #include "string.h"
 
 /** Convert a sample value from libmad to a signed short. */
diff --git a/net.c b/net.c
index b3588f6..61f50dd 100644 (file)
--- a/net.c
+++ b/net.c
@@ -88,7 +88,8 @@ static bool is_v4_dot_quad(const char *address)
        bool result;
        regex_t r;
 
-       assert(!regcomp(&r, "^([0-9]+\\.){3}[0-9]+$", REG_EXTENDED|REG_NOSUB));
+       assert(para_regcomp(&r, "^([0-9]+\\.){3}[0-9]+$",
+               REG_EXTENDED | REG_NOSUB) >= 0);
        result = regexec(&r, address, 0, NULL, 0) == 0;
        regfree(&r);
        return result;
index f0c1e43..65573cf 100644 (file)
--- a/ogg_afh.c
+++ b/ogg_afh.c
@@ -5,6 +5,7 @@
  */
 /** \file ogg_afh.c para_server's ogg vorbis audio format handler */
 
+#include <regex.h>
 #include <inttypes.h>
 #include <ogg/ogg.h>
 #include <vorbis/codec.h>
index b158a5e..02f04b4 100644 (file)
@@ -6,8 +6,10 @@
 
 /** \file oggdec_filter.c Paraslash's ogg vorbis decoder. */
 
-#include "para.h"
+#include <regex.h>
+#include <vorbis/vorbisfile.h>
 
+#include "para.h"
 #include "oggdec_filter.cmdline.h"
 #include "list.h"
 #include "sched.h"
@@ -16,8 +18,6 @@
 #include "error.h"
 #include "string.h"
 
-#include <vorbis/vorbisfile.h>
-
 /** Determine byte sex. */
 #ifdef WORDS_BIGENDIAN
 #define ENDIAN 1
index 552d5b9..103b14e 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file oss_write.c Paraslash's oss output plugin. */
 
+#include <regex.h>
 #include <sys/ioctl.h>
 #include <fcntl.h>
 #include <dirent.h>
index d1e16f8..852ffd7 100644 (file)
@@ -4,7 +4,9 @@
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
 
+#include <regex.h>
 #include <osl.h>
+
 #include "para.h"
 #include "error.h"
 #include "string.h"
index 1ad5f44..f23e4e5 100644 (file)
@@ -6,6 +6,8 @@
 
 /** \file prebuffer_filter.c Paraslash's prebuffering filter. */
 
+#include <regex.h>
+
 #include "para.h"
 #include "prebuffer_filter.cmdline.h"
 #include "list.h"
diff --git a/recv.c b/recv.c
index 5de9c6b..42fd335 100644 (file)
--- a/recv.c
+++ b/recv.c
@@ -6,6 +6,7 @@
 
 /** \file recv.c the stand-alone audio stream receiver */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
index c2ca29d..a568939 100644 (file)
@@ -6,8 +6,9 @@
 
 /** \file recv_common.c common functions of para_recv and para_audiod */
 
-#include "para.h"
+#include <regex.h>
 
+#include "para.h"
 #include "list.h"
 #include "sched.h"
 #include "ggo.h"
index b27fd8e..eee2ca1 100644 (file)
@@ -6,6 +6,8 @@
 
 /** \file ringbuffer.c Simple ringbuffer implementation */
 
+#include <regex.h>
+
 #include "para.h"
 #include "ringbuffer.h"
 #include "string.h"
diff --git a/sched.c b/sched.c
index 6f3f1fa..44e66c9 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -6,6 +6,7 @@
 
 /** \file sched.c Paraslash's scheduling functions. */
 
+#include <regex.h>
 #include <dirent.h> /* readdir() */
 #include <assert.h>
 #include <sys/time.h>
diff --git a/score.c b/score.c
index 3557b04..bc40668 100644 (file)
--- a/score.c
+++ b/score.c
@@ -5,7 +5,9 @@
  */
 
 /** \file score.c Scoring functions to determine the audio file streaming order. */
+#include <regex.h>
 #include <osl.h>
+
 #include "para.h"
 #include "error.h"
 #include "string.h"
index a1757a5..388fde0 100644 (file)
@@ -6,8 +6,10 @@
 
 /** \file send_common.c Functions used by more than one paraslash sender. */
 
+#include <regex.h>
 #include <dirent.h>
 #include <osl.h>
+
 #include "para.h"
 #include "error.h"
 #include "string.h"
index 2455626..be97516 100644 (file)
--- a/server.c
+++ b/server.c
@@ -64,6 +64,7 @@
 #include <dirent.h>
 #include <sys/time.h>
 #include <openssl/rc4.h>
+#include <regex.h>
 #include <osl.h>
 
 #include "para.h"
diff --git a/stat.c b/stat.c
index 1062da3..03d00d7 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -9,7 +9,7 @@
  *  and para_audiod.
  */
 
-
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
diff --git a/stdin.c b/stdin.c
index fea30dd..8eb86de 100644 (file)
--- a/stdin.c
+++ b/stdin.c
@@ -9,9 +9,7 @@
 #include <dirent.h> /* readdir() */
 #include <assert.h>
 
-
 #include "para.h"
-#include "string.h"
 #include "list.h"
 #include "sched.h"
 #include "fd.h"
index e178fe0..d64586b 100644 (file)
--- a/stdout.c
+++ b/stdout.c
@@ -10,7 +10,6 @@
 #include <assert.h>
 
 #include "para.h"
-#include "string.h"
 #include "list.h"
 #include "sched.h"
 #include "fd.h"
index 5479e5b..bb63120 100644 (file)
--- a/string.c
+++ b/string.c
@@ -6,14 +6,14 @@
 
 /** \file string.c Memory allocation and string handling functions. */
 
-#include "para.h"
-#include "string.h"
-
 #include <sys/time.h> /* gettimeofday */
 #include <pwd.h>
 #include <sys/utsname.h> /* uname() */
 #include <string.h>
+#include <regex.h>
 
+#include "para.h"
+#include "string.h"
 #include "error.h"
 
 /**
@@ -735,3 +735,19 @@ err:
        free(argv);
        return ret;
 }
+
+int para_regcomp(regex_t *preg, const char *regex, int cflags)
+{
+       char *buf;
+       size_t size;
+       int ret = regcomp(preg, regex, cflags);
+
+       if (ret == 0)
+               return 1;
+       size = regerror(ret, preg, NULL, 0);
+       buf = para_malloc(size);
+       regerror(ret, preg, buf, size);
+       PARA_ERROR_LOG("%s\n", buf);
+       free(buf);
+       return -E_REGEX;
+}
index b3b960a..922ba69 100644 (file)
--- a/string.h
+++ b/string.h
@@ -81,3 +81,4 @@ int get_loglevel_by_name(const char *txt);
 int read_size_header(const char *buf);
 int create_argv(const char *buf, const char *delim, char ***result);
 void free_argv(char **argv);
+int para_regcomp(regex_t *preg, const char *regex, int cflags);
index ad8d51f..7bbd4b0 100644 (file)
@@ -5,6 +5,7 @@
  */
 /** \file udp_recv.c Paraslash's udp receiver */
 
+#include <regex.h>
 #include <dirent.h>
 #include <sys/socket.h>
 #include <net/if.h>
index 499af66..f8cce2b 100644 (file)
@@ -7,6 +7,7 @@
 /** \file udp_send.c Para_server's udp sender. */
 
 
+#include <regex.h>
 #include <sys/time.h>
 #include <dirent.h>
 #include <sys/socket.h>
index 1d3f21c..3c0b4f8 100644 (file)
@@ -6,6 +6,7 @@
 
 /** \file user_list.c User handling for para_server. */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <openssl/rc4.h>
diff --git a/vss.c b/vss.c
index 57e531e..21f4cb4 100644 (file)
--- a/vss.c
+++ b/vss.c
@@ -11,6 +11,7 @@
  * senders.
  */
 
+#include <regex.h>
 #include <dirent.h>
 #include <osl.h>
 
index 1c0da18..3c69311 100644 (file)
@@ -6,9 +6,10 @@
 
 /** \file wav_filter.c A filter that inserts a wave header. */
 
+#include <regex.h>
+
 #include "para.h"
 #include "error.h"
-
 #include "list.h"
 #include "sched.h"
 #include "ggo.h"
diff --git a/write.c b/write.c
index c12736a..34cea48 100644 (file)
--- a/write.c
+++ b/write.c
@@ -6,6 +6,7 @@
 
 /** \file write.c Paraslash's standalone wav/raw player. */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 
index 476df8f..5eb6b79 100644 (file)
@@ -6,6 +6,8 @@
 
 /** \file write_common.c common functions of para_audiod and para_write */
 
+#include <regex.h>
+
 #include "para.h"
 #include "string.h"
 #include "list.h"