OSDN Git Service

Merge functional code from get_word() and get_word_sep() into a single
authorRonald S. Bultje <rsbultje@gmail.com>
Sat, 21 Mar 2009 20:54:47 +0000 (20:54 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Sat, 21 Mar 2009 20:54:47 +0000 (20:54 +0000)
function, since they both do approximately the same thing. At the same time,
remove redir_isspace() altogether since code elsewhere (including
get_word_sep()) uses strchr() for the same purpose. See summary in "[PATCH]
rtsp.c small cleanups" thread.

Originally committed as revision 18122 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtsp.c

index 3907eb4..769d202 100644 (file)
@@ -57,11 +57,8 @@ static int rtsp_probe(AVProbeData *p)
     return 0;
 }
 
-static int redir_isspace(int c)
-{
-    return c == ' ' || c == '\t' || c == '\n' || c == '\r';
-}
-
+#define SPACE_CHARS " \t\r\n"
+#define redir_isspace(c) strchr(SPACE_CHARS, c)
 static void skip_spaces(const char **pp)
 {
     const char *p;
@@ -71,15 +68,13 @@ static void skip_spaces(const char **pp)
     *pp = p;
 }
 
-static void get_word_sep(char *buf, int buf_size, const char *sep,
-                         const char **pp)
+static void get_word_until_chars(char *buf, int buf_size,
+                                 const char *sep, const char **pp)
 {
     const char *p;
     char *q;
 
     p = *pp;
-    if (*p == '/')
-        p++;
     skip_spaces(&p);
     q = buf;
     while (!strchr(sep, *p) && *p != '\0') {
@@ -92,22 +87,16 @@ static void get_word_sep(char *buf, int buf_size, const char *sep,
     *pp = p;
 }
 
-static void get_word(char *buf, int buf_size, const char **pp)
+static void get_word_sep(char *buf, int buf_size, const char *sep,
+                         const char **pp)
 {
-    const char *p;
-    char *q;
+    if (**pp == '/') (*pp)++;
+    get_word_until_chars(buf, buf_size, sep, pp);
+}
 
-    p = *pp;
-    skip_spaces(&p);
-    q = buf;
-    while (!redir_isspace(*p) && *p != '\0') {
-        if ((q - buf) < buf_size - 1)
-            *q++ = *p;
-        p++;
-    }
-    if (buf_size > 0)
-        *q = '\0';
-    *pp = p;
+static void get_word(char *buf, int buf_size, const char **pp)
+{
+    get_word_until_chars(buf, buf_size, SPACE_CHARS, pp);
 }
 
 /* parse the rtpmap description: <codec_name>/<clock_rate>[/<other