X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/70279bd1cbd56a16b39cb09ac0b47b564db6949b..6d470bddb081435461b67f039b5c9960e23bea8e:/lib-src/ebrowse.c
diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c
index 60baf99c51..f8569fe374 100644
--- a/lib-src/ebrowse.c
+++ b/lib-src/ebrowse.c
@@ -1,6 +1,6 @@
/* ebrowse.c --- parsing files for the ebrowse C++ browser
-Copyright (C) 1992-2011 Free Software Foundation, Inc.
+Copyright (C) 1992-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -20,11 +20,7 @@ along with GNU Emacs. If not, see . */
#include
#include
-
-#ifdef HAVE_STDLIB_H
#include
-#endif
-
#include
#include
#include
@@ -47,18 +43,13 @@ along with GNU Emacs. If not, see . */
#define READ_CHUNK_SIZE (100 * 1024)
-/* The character used as a separator in path lists (like $PATH). */
-
-#if defined(__MSDOS__)
-#define PATH_LIST_SEPARATOR ';'
-#define FILENAME_EQ(X,Y) (strcasecmp(X,Y) == 0)
+#if defined (__MSDOS__)
+#define FILENAME_EQ(X,Y) (strcasecmp (X,Y) == 0)
#else
-#if defined(WINDOWSNT)
-#define PATH_LIST_SEPARATOR ';'
-#define FILENAME_EQ(X,Y) (stricmp(X,Y) == 0)
+#if defined (WINDOWSNT)
+#define FILENAME_EQ(X,Y) (stricmp (X,Y) == 0)
#else
-#define PATH_LIST_SEPARATOR ':'
-#define FILENAME_EQ(X,Y) (streq(X,Y))
+#define FILENAME_EQ(X,Y) (streq (X,Y))
#endif
#endif
/* The default output file name. */
@@ -77,7 +68,6 @@ along with GNU Emacs. If not, see . */
#define TREE_HEADER_STRUCT "[ebrowse-hs "
#define TREE_STRUCT "[ebrowse-ts "
#define MEMBER_STRUCT "[ebrowse-ms "
-#define BROWSE_STRUCT "[ebrowse-bs "
#define CLASS_STRUCT "[ebrowse-cs "
/* The name of the symbol table entry for global functions, variables,
@@ -379,7 +369,7 @@ int max_regexp = 50;
char *inbuffer;
char *in;
-int inbuffer_size;
+size_t inbuffer_size;
/* Return the current buffer position in the input file. */
@@ -468,10 +458,6 @@ static struct member *add_member (struct sym *, char *, int, int, unsigned);
static void class_definition (struct sym *, int, int, int);
static char *operator_name (int *);
static void parse_qualified_param_ident_or_type (char **);
-static void usage (int) NO_RETURN;
-static void version (void) NO_RETURN;
-
-
/***********************************************************************
Utilities
@@ -493,7 +479,7 @@ yyerror (const char *format, const char *s)
available. */
static void *
-xmalloc (int nbytes)
+xmalloc (size_t nbytes)
{
void *p = malloc (nbytes);
if (p == NULL)
@@ -508,7 +494,7 @@ xmalloc (int nbytes)
/* Like realloc but print an error and exit if out of memory. */
static void *
-xrealloc (void *p, int sz)
+xrealloc (void *p, size_t sz)
{
p = realloc (p, sz);
if (p == NULL)
@@ -986,7 +972,7 @@ make_namespace (char *name, struct sym *context)
}
-/* Find the symbol for namespace NAME. If not found, retrun NULL */
+/* Find the symbol for namespace NAME. If not found, return NULL */
static struct sym *
check_namespace (char *name, struct sym *context)
@@ -2516,7 +2502,7 @@ member (struct sym *cls, int vis)
/* A function or class may follow. */
case TEMPLATE:
- MATCH();
+ MATCH ();
SET_FLAG (flags, F_TEMPLATE);
/* Skip over template argument list */
SKIP_MATCHING_IF ('<');
@@ -2793,10 +2779,10 @@ parse_classname (void)
static char *
operator_name (int *sc)
{
- static int id_size = 0;
+ static size_t id_size = 0;
static char *id = NULL;
const char *s;
- int len;
+ size_t len;
MATCH ();
@@ -2812,7 +2798,7 @@ operator_name (int *sc)
len = strlen (s) + 10;
if (len > id_size)
{
- int new_size = max (len, 2 * id_size);
+ size_t new_size = max (len, 2 * id_size);
id = (char *) xrealloc (id, new_size);
id_size = new_size;
}
@@ -2833,7 +2819,7 @@ operator_name (int *sc)
}
else
{
- int tokens_matched = 0;
+ size_t tokens_matched = 0;
len = 20;
if (len > id_size)
@@ -2854,7 +2840,7 @@ operator_name (int *sc)
len += strlen (s) + 2;
if (len > id_size)
{
- int new_size = max (len, 2 * id_size);
+ size_t new_size = max (len, 2 * id_size);
id = (char *) xrealloc (id, new_size);
id_size = new_size;
}
@@ -2935,7 +2921,7 @@ parse_qualified_ident_or_type (char **last_id)
}
while (enter--)
- leave_namespace();
+ leave_namespace ();
return cls;
}
@@ -2952,7 +2938,9 @@ parse_qualified_param_ident_or_type (char **last_id)
static char *id = NULL;
static int id_size = 0;
- while (LOOKING_AT (IDENT))
+ assert (LOOKING_AT (IDENT));
+
+ do
{
int len = strlen (yytext) + 1;
if (len > id_size)
@@ -2975,6 +2963,7 @@ parse_qualified_param_ident_or_type (char **last_id)
else
break;
}
+ while (LOOKING_AT (IDENT));
}
@@ -3423,7 +3412,7 @@ add_search_path (char *path_list)
char *start = path_list;
struct search_path *p;
- while (*path_list && *path_list != PATH_LIST_SEPARATOR)
+ while (*path_list && *path_list != SEPCHAR)
++path_list;
p = (struct search_path *) xmalloc (sizeof *p);
@@ -3440,7 +3429,7 @@ add_search_path (char *path_list)
else
search_path = search_path_tail = p;
- while (*path_list == PATH_LIST_SEPARATOR)
+ while (*path_list == SEPCHAR)
++path_list;
}
}
@@ -3509,7 +3498,7 @@ Usage: ebrowse [options] {files}\n\
--version display version info\n\
"
-static void
+static _Noreturn void
usage (int error)
{
puts (USAGE);
@@ -3524,11 +3513,11 @@ usage (int error)
# define VERSION "21"
#endif
-static void
+static _Noreturn void
version (void)
{
/* Makes it easier to update automatically. */
- char emacs_copyright[] = "Copyright (C) 2011 Free Software Foundation, Inc.";
+ char emacs_copyright[] = "Copyright (C) 2012 Free Software Foundation, Inc.";
printf ("ebrowse %s\n", VERSION);
puts (emacs_copyright);
@@ -3548,7 +3537,7 @@ process_file (char *file)
fp = open_file (file);
if (fp)
{
- int nread, nbytes;
+ size_t nread, nbytes;
/* Give a progress indication if needed. */
if (f_very_verbose)
@@ -3572,12 +3561,10 @@ process_file (char *file)
}
nbytes = fread (inbuffer + nread, 1, READ_CHUNK_SIZE, fp);
- if (nbytes <= 0)
+ if (nbytes == 0)
break;
nread += nbytes;
}
- if (nread < 0)
- nread = 0;
inbuffer[nread] = '\0';
/* Reinitialize scanner and parser for the new input file. */