summaryrefslogtreecommitdiffstats
path: root/libidu
diff options
context:
space:
mode:
Diffstat (limited to 'libidu')
-rw-r--r--libidu/idfile.h4
-rw-r--r--libidu/scanners.c7
-rw-r--r--libidu/scanners.h10
-rw-r--r--libidu/walker.c10
4 files changed, 18 insertions, 13 deletions
diff --git a/libidu/idfile.h b/libidu/idfile.h
index 19e265b..5f55073 100644
--- a/libidu/idfile.h
+++ b/libidu/idfile.h
@@ -121,7 +121,7 @@ struct member_file
{
struct file_link *mf_link;
struct lang_args const *mf_lang_args;
- short mf_index; /* order in ID file */
+ long mf_index; /* order in ID file */
};
#if HAVE_LINK
@@ -199,7 +199,7 @@ extern enum separator_style parse_separator_style __P((char const *arg));
extern void walk_flink __P((struct file_link *flink, struct dynvec *sub_dirs_vec));
extern int chdir_to_link __P((struct file_link* dir_link));
void prune_file_names __P((char *str, struct file_link *from_link));
-char **vectorize_string __P((char *string, char *delimiter_class));
+char **vectorize_string __P((char *string, char const *delimiter_class));
void include_languages __P((char *lang_names));
void exclude_languages __P((char *lang_names));
diff --git a/libidu/scanners.c b/libidu/scanners.c
index 65a002f..a4a0b70 100644
--- a/libidu/scanners.c
+++ b/libidu/scanners.c
@@ -40,6 +40,7 @@ struct obstack lang_args_obstack;
struct lang_args *lang_args_default = 0;
struct lang_args *lang_args_list = 0;
struct obstack tokens_obstack;
+int log_8_member_files = 0;
extern void usage __P((void));
extern char *program_name;
@@ -491,7 +492,7 @@ get_token_c (FILE *in_FILE, void const *args, int *flags)
unsigned char *id = id_0;
int c;
- obstack_blank (&tokens_obstack, offsetof (struct token, tok_name));
+ obstack_blank (&tokens_obstack, OFFSETOF_TOKEN_NAME);
top:
c = getc (in_FILE);
@@ -876,7 +877,7 @@ get_token_asm (FILE *in_FILE, void const *args, int *flags)
unsigned char *id = id_0;
int c;
- obstack_blank (&tokens_obstack, offsetof (struct token, tok_name));
+ obstack_blank (&tokens_obstack, OFFSETOF_TOKEN_NAME);
top:
c = getc (in_FILE);
@@ -1161,7 +1162,7 @@ get_token_text (FILE *in_FILE, void const *args, int *flags)
int c;
unsigned char *id = id_0;
- obstack_blank (&tokens_obstack, offsetof (struct token, tok_name));
+ obstack_blank (&tokens_obstack, OFFSETOF_TOKEN_NAME);
top:
c = getc (in_FILE);
diff --git a/libidu/scanners.h b/libidu/scanners.h
index ca95310..aa25aac 100644
--- a/libidu/scanners.h
+++ b/libidu/scanners.h
@@ -21,16 +21,20 @@
#include "xobstack.h"
-#define MAX_LEVELS 5 /* log_8 of the max # of files: log_8 (32768) == 5 */
+extern int log_8_member_files; /* log base 8 of the # of files.
+ e.g., log_8 (32768) == 5 */
struct token
{
unsigned short tok_count;
unsigned char tok_flags;
- unsigned char tok_hits[MAX_LEVELS];
- char tok_name[1];
+ unsigned char tok_hits_name[1];
};
+#define TOKEN_HITS(TOKEN) ((TOKEN)->tok_hits_name)
+#define TOKEN_NAME(TOKEN) ((TOKEN)->tok_hits_name + log_8_member_files)
+#define OFFSETOF_TOKEN_NAME (offsetof (struct token, tok_hits_name) + log_8_member_files)
+
typedef struct token *(*get_token_func_t) __P((FILE *in_FILE, void const *args, int *flags));
typedef void *(*parse_args_func_t) __P((char **argv, int argc));
typedef void (*help_me_func_t) __P((void));
diff --git a/libidu/walker.c b/libidu/walker.c
index 80d1b59..63fba09 100644
--- a/libidu/walker.c
+++ b/libidu/walker.c
@@ -46,7 +46,7 @@ struct file_link *make_link_from_dirent __P((struct dirent *dirent, struct file_
struct file_link *get_link_from_string __P((char const *name, struct file_link *parent));
struct file_link *make_link_from_string __P((char const *name, struct file_link *parent));
int lang_wanted __P((char const *lang_name));
-char **append_strings_to_vector __P((char **vector_0, char *string, char *delimiter_class));
+char **append_strings_to_vector __P((char **vector_0, char *string, char const *delimiter_class));
int vector_length __P((char **vector));
int string_in_vector __P((char const *string, char **vector));
static int same_as_dot __P((char const *cwd));
@@ -77,7 +77,7 @@ struct member_file *maybe_get_member_file __P((struct file_link *flink, struct s
static struct file_link *current_dir_link = 0;
-static char white_space[] = " \t\r\n\v\f";
+static char const white_space[] = " \t\r\n\v\f";
char* xgetcwd __P((void));
@@ -242,7 +242,7 @@ mark_member_file_links (struct idhead *idhp)
0, member_file_qsort_compare);
struct member_file **end = &members_0[idhp->idh_member_file_table.ht_fill];
struct member_file **members;
- int new_index = 0;
+ long new_index = 0;
for (members = members_0; members < end; members++)
{
@@ -467,7 +467,7 @@ exclude_languages (char *lang_names)
}
char **
-append_strings_to_vector (char **vector_0, char *string, char *delimiter_class)
+append_strings_to_vector (char **vector_0, char *string, char const *delimiter_class)
{
char **vector;
if (vector_0)
@@ -650,7 +650,7 @@ chdir_to_link (struct file_link *dir_link)
}
char **
-vectorize_string (char *string, char *delimiter_class)
+vectorize_string (char *string, char const *delimiter_class)
{
char **vector_0 = MALLOC (char *, 2 + strlen (string) / 2);
char **vector = vector_0;