]> git.ipfire.org Git - thirdparty/make.git/commitdiff
Resolve most of the Windows Visual Studio warnings.
authorPaul Smith <psmith@gnu.org>
Mon, 2 Jul 2018 00:00:53 +0000 (20:00 -0400)
committerPaul Smith <psmith@gnu.org>
Mon, 2 Jul 2018 11:54:07 +0000 (07:54 -0400)
* Convert integer types to size_t where necessary.
* Align other integral types to avoid casts and type warnings.

32 files changed:
src/ar.c
src/commands.c
src/dep.h
src/dir.c
src/expand.c
src/file.c
src/function.c
src/hash.c
src/implicit.c
src/job.c
src/load.c
src/loadapi.c
src/main.c
src/makeint.h
src/misc.c
src/output.c
src/read.c
src/remake.c
src/remote-cstms.c
src/remote-stub.c
src/rule.c
src/rule.h
src/signame.c
src/strcache.c
src/variable.c
src/variable.h
src/vpath.c
src/w32/compat/dirent.c
src/w32/pathstuff.c
src/w32/subproc/misc.c
src/w32/subproc/proc.h
src/w32/subproc/sub_proc.c

index f8dfb56bd82cdf41f2d5f8b7a4610e5b9d3a9b76..bddb05eb7187f58342ae03a0af4828c901c74a16 100644 (file)
--- a/src/ar.c
+++ b/src/ar.c
@@ -186,7 +186,7 @@ struct ar_glob_state
 #ifdef VMS
     char *suffix;
 #endif
-    unsigned int size;
+    size_t size;
     struct nameseq *chain;
     unsigned int n;
   };
@@ -258,7 +258,7 @@ ar_glob_pattern_p (const char *pattern, int quote)
    Return a malloc'd chain of matching elements (or nil if none).  */
 
 struct nameseq *
-ar_glob (const char *arname, const char *member_pattern, unsigned int size)
+ar_glob (const char *arname, const char *member_pattern, size_t size)
 {
   struct ar_glob_state state;
   struct nameseq *n;
index afa24fc13aec462c315458303764435955c062ea..fbf5714f56bd4cf8f940f5d334ec73275c91aaa9 100644 (file)
@@ -72,7 +72,7 @@ set_file_variables (struct file *file)
 
   if (ar_name (file->name))
     {
-      unsigned int len;
+      size_t len;
       const char *cp;
       char *p;
 
@@ -101,7 +101,7 @@ set_file_variables (struct file *file)
          any suffix in the .SUFFIXES list stripped off for
          explicit rules.  We store this in the 'stem' member.  */
       const char *name;
-      unsigned int len;
+      size_t len;
 
 #ifndef NO_ARCHIVES
       if (ar_name (file->name))
@@ -118,7 +118,7 @@ set_file_variables (struct file *file)
 
       for (d = enter_file (strcache_add (".SUFFIXES"))->deps; d ; d = d->next)
         {
-          unsigned int slen = strlen (dep_name (d));
+          size_t slen = strlen (dep_name (d));
           if (len > slen && strneq (dep_name (d), name + (len - slen), slen))
             {
               file->stem = strcache_add_len (name, len - slen);
@@ -159,14 +159,14 @@ set_file_variables (struct file *file)
 
   {
     static char *plus_value=0, *bar_value=0, *qmark_value=0;
-    static unsigned int plus_max=0, bar_max=0, qmark_max=0;
+    static size_t plus_max=0, bar_max=0, qmark_max=0;
 
-    unsigned int qmark_len, plus_len, bar_len;
+    size_t qmark_len, plus_len, bar_len;
     char *cp;
     char *caret_value;
     char *qp;
     char *bp;
-    unsigned int len;
+    size_t len;
 
     struct hash_table dep_hash;
     void **slot;
@@ -326,7 +326,8 @@ set_file_variables (struct file *file)
 void
 chop_commands (struct commands *cmds)
 {
-  unsigned int nlines, idx;
+  unsigned int nlines;
+  unsigned short idx;
   char **lines;
 
   /* If we don't have any commands,
@@ -339,7 +340,7 @@ chop_commands (struct commands *cmds)
 
   if (one_shell)
     {
-      int l = strlen (cmds->commands);
+      size_t l = strlen (cmds->commands);
 
       nlines = 1;
       lines = xmalloc (nlines * sizeof (char *));
@@ -382,7 +383,7 @@ chop_commands (struct commands *cmds)
               nlines += 2;
               lines = xrealloc (lines, nlines * sizeof (char *));
             }
-          lines[idx++] = xstrndup (p, end - p);
+          lines[idx++] = xstrndup (p, (size_t) (end - p));
           p = end;
           if (*p != '\0')
             ++p;
@@ -401,7 +402,7 @@ chop_commands (struct commands *cmds)
   if (nlines > USHRT_MAX)
     ON (fatal, &cmds->fileinfo, _("Recipe has too many lines (%ud)"), nlines);
 
-  cmds->ncommand_lines = nlines;
+  cmds->ncommand_lines = (unsigned short)nlines;
   cmds->command_lines = lines;
 
   cmds->any_recurse = 0;
index df452a9594922eb75ec517e033f3d6de4c03fce5..fd9a6ecce07d43059726841db74e8cd4f89ef9f8 100644 (file)
--- a/src/dep.h
+++ b/src/dep.h
@@ -62,7 +62,7 @@ struct dep
 struct goaldep
   {
     DEP (struct goaldep);
-    unsigned short error;
+    int error;
     floc floc;
   };
 
@@ -83,14 +83,14 @@ struct goaldep
 #ifdef VMS
 void *parse_file_seq ();
 #else
-void *parse_file_seq (char **stringp, unsigned int size,
+void *parse_file_seq (char **stringp, size_t size,
                       int stopmap, const char *prefix, int flags);
 #endif
 
 char *tilde_expand (const char *name);
 
 #ifndef NO_ARCHIVES
-struct nameseq *ar_glob (const char *arname, const char *member_pattern, unsigned int size);
+struct nameseq *ar_glob (const char *arname, const char *member_pattern, size_t size);
 #endif
 
 #define dep_name(d)        ((d)->name ? (d)->name : (d)->file->name)
index d53342d996050706f6477d807e263293f94be403..0e64113837249f5ba73af6833b982443ab1790ad 100644 (file)
--- a/src/dir.c
+++ b/src/dir.c
@@ -426,7 +426,7 @@ dirfile_hash_cmp (const void *xv, const void *yv)
 {
   const struct dirfile *x = xv;
   const struct dirfile *y = yv;
-  int result = x->length - y->length;
+  int result = (int) (x->length - y->length);
   if (result)
     return result;
   return_ISTRING_COMPARE (x->name, y->name);
@@ -687,7 +687,7 @@ dir_contents_file_exists_p (struct directory_contents *dir,
   while (1)
     {
       /* Enter the file in the hash table.  */
-      unsigned int len;
+      size_t len;
       struct dirfile dirfile_key;
       struct dirfile **dirfile_slot;
 
@@ -1208,7 +1208,7 @@ static struct dirent *
 read_dirstream (__ptr_t stream)
 {
   static char *buf;
-  static unsigned int bufsz;
+  static size_t bufsz;
 
   struct dirstream *const ds = (struct dirstream *) stream;
   struct directory_contents *dc = ds->contents;
@@ -1221,8 +1221,8 @@ read_dirstream (__ptr_t stream)
         {
           /* The glob interface wants a 'struct dirent', so mock one up.  */
           struct dirent *d;
-          unsigned int len = df->length + 1;
-          unsigned int sz = sizeof (*d) - sizeof (d->d_name) + len;
+          size_t len = df->length + 1;
+          size_t sz = sizeof (*d) - sizeof (d->d_name) + len;
           if (sz > bufsz)
             {
               bufsz *= 2;
index c6f2d02952eb734bb95472377b50987aec7d713f..7d54d1a5af4ec4b231ab7f5cbceac0e015004a25 100644 (file)
@@ -42,7 +42,7 @@ const floc **expanding_var = &reading_file;
 
 #define VARIABLE_BUFFER_ZONE    5
 
-static unsigned int variable_buffer_length;
+static size_t variable_buffer_length;
 char *variable_buffer;
 
 /* Subroutine of variable_expand and friends:
@@ -53,13 +53,13 @@ char *variable_buffer;
    the following call.  */
 
 char *
-variable_buffer_output (char *ptr, const char *string, unsigned int length)
+variable_buffer_output (char *ptr, const char *string, size_t length)
 {
-  unsigned int newlen = length + (ptr - variable_buffer);
+  size_t newlen = length + (ptr - variable_buffer);
 
   if ((newlen + VARIABLE_BUFFER_ZONE) > variable_buffer_length)
     {
-      unsigned int offset = ptr - variable_buffer;
+      size_t offset = ptr - variable_buffer;
       variable_buffer_length = (newlen + 100 > 2 * variable_buffer_length
                                 ? newlen + 100
                                 : 2 * variable_buffer_length);
@@ -157,7 +157,7 @@ recursively_expand_for_file (struct variable *v, struct file *file)
 __inline
 #endif
 static char *
-reference_variable (char *o, const char *name, unsigned int length)
+reference_variable (char *o, const char *name, size_t length)
 {
   struct variable *v;
   char *value;
@@ -191,13 +191,13 @@ reference_variable (char *o, const char *name, unsigned int length)
    NULL.
  */
 char *
-variable_expand_string (char *line, const char *string, long length)
+variable_expand_string (char *line, const char *string, size_t length)
 {
   struct variable *v;
   const char *p, *p1;
   char *save;
   char *o;
-  unsigned int line_offset;
+  size_t line_offset;
 
   if (!line)
     line = initialize_variable_output ();
@@ -213,7 +213,7 @@ variable_expand_string (char *line, const char *string, long length)
   /* We need a copy of STRING: due to eval, it's possible that it will get
      freed as we process it (it might be the value of a variable that's reset
      for example).  Also having a nil-terminated string is handy.  */
-  save = length < 0 ? xstrdup (string) : xstrndup (string, length);
+  save = length == SIZE_MAX ? xstrdup (string) : xstrndup (string, length);
   p = save;
 
   while (1)
@@ -224,7 +224,7 @@ variable_expand_string (char *line, const char *string, long length)
 
       p1 = strchr (p, '$');
 
-      o = variable_buffer_output (o, p, p1 != 0 ? (unsigned int)(p1 - p) : strlen (p) + 1);
+      o = variable_buffer_output (o, p, p1 != 0 ? (size_t) (p1 - p) : strlen (p) + 1);
 
       if (p1 == 0)
         break;
@@ -414,7 +414,7 @@ variable_expand_string (char *line, const char *string, long length)
 char *
 variable_expand (const char *line)
 {
-  return variable_expand_string (NULL, line, (long)-1);
+  return variable_expand_string (NULL, line, SIZE_MAX);
 }
 \f
 /* Expand an argument for an expansion function.
@@ -485,7 +485,7 @@ variable_expand_for_file (const char *line, struct file *file)
    any upper variable sets.  Then expand the resulting value.  */
 
 static char *
-variable_append (const char *name, unsigned int length,
+variable_append (const char *name, size_t length,
                  const struct variable_set_list *set, int local)
 {
   const struct variable *v;
@@ -535,7 +535,7 @@ allocated_variable_append (const struct variable *v)
   /* Construct the appended variable value.  */
 
   char *obuf = variable_buffer;
-  unsigned int olen = variable_buffer_length;
+  size_t olen = variable_buffer_length;
 
   variable_buffer = 0;
 
@@ -559,7 +559,7 @@ allocated_variable_expand_for_file (const char *line, struct file *file)
   char *value;
 
   char *obuf = variable_buffer;
-  unsigned int olen = variable_buffer_length;
+  size_t olen = variable_buffer_length;
 
   variable_buffer = 0;
 
@@ -575,7 +575,7 @@ allocated_variable_expand_for_file (const char *line, struct file *file)
    safe-keeping.  */
 
 void
-install_variable_buffer (char **bufp, unsigned int *lenp)
+install_variable_buffer (char **bufp, size_t *lenp)
 {
   *bufp = variable_buffer;
   *lenp = variable_buffer_length;
@@ -588,7 +588,7 @@ install_variable_buffer (char **bufp, unsigned int *lenp)
  */
 
 void
-restore_variable_buffer (char *buf, unsigned int len)
+restore_variable_buffer (char *buf, size_t len)
 {
   free (variable_buffer);
 
index 9e3208ccbfefd21bbbd823a15213add4b6c577f3..4835e4f856c97a6e7ff19b97fea7bd224c6ff29b 100644 (file)
@@ -492,7 +492,7 @@ enter_prereqs (struct dep *deps, const char *stem)
       while (dp != 0)
         {
           char *percent;
-          int nl = strlen (dp->name) + 1;
+          size_t nl = strlen (dp->name) + 1;
           char *nm = alloca (nl);
           memcpy (nm, dp->name, nl);
           percent = find_percent (nm);
@@ -1100,8 +1100,8 @@ build_target_list (char *value)
 
   if (files.ht_fill != last_targ_count)
     {
-      unsigned long max = EXPANSION_INCREMENT (strlen (value));
-      unsigned long len;
+      size_t max = EXPANSION_INCREMENT (strlen (value));
+      size_t len;
       char *p;
       struct file **fp = (struct file **) files.ht_vec;
       struct file **end = &fp[files.ht_size];
@@ -1115,12 +1115,12 @@ build_target_list (char *value)
         if (!HASH_VACANT (*fp) && (*fp)->is_target)
           {
             struct file *f = *fp;
-            int l = strlen (f->name);
+            size_t l = strlen (f->name);
 
             len += l + 1;
             if (len > max)
               {
-                unsigned long off = p - value;
+                size_t off = p - value;
 
                 max += EXPANSION_INCREMENT (l + 1);
                 value = xrealloc (value, max);
index 3d97998efb8790f840b2358f9b98bacbd851326c..2b3a538611c43b33ce88986ef353e10568471e06 100644 (file)
@@ -78,7 +78,7 @@ static struct hash_table function_table;
 
 char *
 subst_expand (char *o, const char *text, const char *subst, const char *replace,
-              unsigned int slen, unsigned int rlen, int by_word)
+              size_t slen, size_t rlen, int by_word)
 {
   const char *t = text;
   const char *p;
@@ -148,10 +148,10 @@ patsubst_expand_pat (char *o, const char *text,
                      const char *pattern, const char *replace,
                      const char *pattern_percent, const char *replace_percent)
 {
-  unsigned int pattern_prepercent_len, pattern_postpercent_len;
-  unsigned int replace_prepercent_len, replace_postpercent_len;
+  size_t pattern_prepercent_len, pattern_postpercent_len;
+  size_t replace_prepercent_len, replace_postpercent_len;
   const char *t;
-  unsigned int len;
+  size_t len;
   int doneany = 0;
 
   /* Record the length of REPLACE before and after the % so we don't have to
@@ -280,7 +280,7 @@ lookup_function (const char *s)
     return NULL;
 
   function_table_entry_key.name = s;
-  function_table_entry_key.len = e - s;
+  function_table_entry_key.len = (unsigned char) (e - s);
 
   return hash_find_item (&function_table, &function_table_entry_key);
 }
@@ -291,11 +291,11 @@ lookup_function (const char *s)
 int
 pattern_matches (const char *pattern, const char *percent, const char *str)
 {
-  unsigned int sfxlen, strlength;
+  size_t sfxlen, strlength;
 
   if (percent == 0)
     {
-      unsigned int len = strlen (pattern) + 1;
+      size_t len = strlen (pattern) + 1;
       char *new_chars = alloca (len);
       memcpy (new_chars, pattern, len);
       percent = find_percent (new_chars);
@@ -357,9 +357,9 @@ static char *
 string_glob (char *line)
 {
   static char *result = 0;
-  static unsigned int length;
+  static size_t length;
   struct nameseq *chain;
-  unsigned int idx;
+  size_t idx;
 
   chain = PARSE_FILE_SEQ (&line, struct nameseq, MAP_NUL, NULL,
                           /* We do not want parse_file_seq to strip './'s.
@@ -377,7 +377,7 @@ string_glob (char *line)
   while (chain != 0)
     {
       struct nameseq *next = chain->next;
-      unsigned int len = strlen (chain->name);
+      size_t len = strlen (chain->name);
 
       if (idx + len + 1 > length)
         {
@@ -430,7 +430,7 @@ func_join (char *o, char **argv, const char *funcname UNUSED)
   const char *list2_iterator = argv[1];
   do
     {
-      unsigned int len1, len2;
+      size_t len1, len2;
 
       tp = find_next_token (&list1_iterator, &len1);
       if (tp != 0)
@@ -519,7 +519,7 @@ func_notdir_suffix (char *o, char **argv, const char *funcname)
   const char *list_iterator = argv[0];
   const char *p2;
   int doneany =0;
-  unsigned int len=0;
+  size_t len=0;
 
   int is_suffix = funcname[0] == 's';
   int is_notdir = !is_suffix;
@@ -595,7 +595,7 @@ func_basename_dir (char *o, char **argv, const char *funcname)
   const char *p3 = argv[0];
   const char *p2;
   int doneany = 0;
-  unsigned int len = 0;
+  size_t len = 0;
 
   int is_basename = funcname[0] == 'b';
   int is_dir = !is_basename;
@@ -668,14 +668,14 @@ func_basename_dir (char *o, char **argv, const char *funcname)
 static char *
 func_addsuffix_addprefix (char *o, char **argv, const char *funcname)
 {
-  int fixlen = strlen (argv[0]);
+  size_t fixlen = strlen (argv[0]);
   const char *list_iterator = argv[1];
   int is_addprefix = funcname[3] == 'p';
   int is_addsuffix = !is_addprefix;
 
   int doneany = 0;
   const char *p;
-  unsigned int len;
+  size_t len;
 
   while ((p = find_next_token (&list_iterator, &len)) != 0)
     {
@@ -708,7 +708,7 @@ func_subst (char *o, char **argv, const char *funcname UNUSED)
 static char *
 func_firstword (char *o, char **argv, const char *funcname UNUSED)
 {
-  unsigned int i;
+  size_t i;
   const char *words = argv[0];    /* Use a temp variable for find_next_token */
   const char *p = find_next_token (&words, &i);
 
@@ -721,12 +721,12 @@ func_firstword (char *o, char **argv, const char *funcname UNUSED)
 static char *
 func_lastword (char *o, char **argv, const char *funcname UNUSED)
 {
-  unsigned int i;
+  size_t i;
   const char *words = argv[0];    /* Use a temp variable for find_next_token */
   const char *p = NULL;
   const char *t;
 
-  while ((t = find_next_token (&words, &i)))
+  while ((t = find_next_token (&words, &i)) != NULL)
     p = t;
 
   if (p != 0)
@@ -871,7 +871,7 @@ func_foreach (char *o, char **argv, const char *funcname UNUSED)
   int doneany = 0;
   const char *list_iterator = list;
   const char *p;
-  unsigned int len;
+  size_t len;
   struct variable *var;
 
   /* Clean up the variable name by removing whitespace.  */
@@ -913,7 +913,7 @@ struct a_word
   struct a_word *next;
   struct a_word *chain;
   char *str;
-  int length;
+  size_t length;
   int matched;
 };
 
@@ -932,7 +932,7 @@ a_word_hash_2 (const void *key)
 static int
 a_word_hash_cmp (const void *x, const void *y)
 {
-  int result = ((struct a_word const *) x)->length - ((struct a_word const *) y)->length;
+  int result = (int) ((struct a_word const *) x)->length - ((struct a_word const *) y)->length;
   if (result)
     return result;
   return_STRING_COMPARE (((struct a_word const *) x)->str,
@@ -944,7 +944,7 @@ struct a_pattern
   struct a_pattern *next;
   char *str;
   char *percent;
-  int length;
+  size_t length;
 };
 
 static char *
@@ -965,7 +965,7 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
   int words = 0;
   int hashing = 0;
   char *p;
-  unsigned int len;
+  size_t len;
 
   /* Chop ARGV[0] up into patterns to match against the words.
      We don't need to preserve it because our caller frees all the
@@ -1115,7 +1115,7 @@ func_error (char *o, char **argv, const char *funcname)
 {
   char **argvp;
   char *msg, *p;
-  int len;
+  size_t len;
 
   /* The arguments will be broken on commas.  Rather than create yet
      another special case where function arguments aren't broken up,
@@ -1168,7 +1168,7 @@ func_sort (char *o, char **argv, const char *funcname UNUSED)
   char **words;
   int wordi;
   char *p;
-  unsigned int len;
+  size_t len;
 
   /* Find the maximum number of words we'll have.  */
   t = argv[0];
@@ -1292,7 +1292,7 @@ func_or (char *o, char **argv, const char *funcname UNUSED)
       const char *begp = *argv;
       const char *endp = begp + strlen (*argv) - 1;
       char *expansion;
-      int result = 0;
+      size_t result = 0;
 
       /* Find the result of the condition: if it's false keep going.  */
 
@@ -1343,7 +1343,7 @@ func_and (char *o, char **argv, const char *funcname UNUSED)
     {
       const char *begp = *argv;
       const char *endp = begp + strlen (*argv) - 1;
-      int result;
+      size_t result;
 
       /* An empty condition is always false.  */
       strip_whitespace (&begp, &endp);
@@ -1398,7 +1398,7 @@ static char *
 func_eval (char *o, char **argv, const char *funcname UNUSED)
 {
   char *buf;
-  unsigned int len;
+  size_t len;
 
   /* Eval the buffer.  Pop the current variable buffer setting so that the
      eval'd code can use its own without conflicting.  */
@@ -1430,7 +1430,7 @@ func_value (char *o, char **argv, const char *funcname UNUSED)
   \r is replaced on UNIX as well. Is this desirable?
  */
 static void
-fold_newlines (char *buffer, unsigned int *length, int trim_newlines)
+fold_newlines (char *buffer, size_t *length, int trim_newlines)
 {
   char *dst = buffer;
   char *src = buffer;
@@ -1806,7 +1806,7 @@ func_shell_base (char *o, char **argv, int trim_newlines)
 
   {
     char *buffer;
-    unsigned int maxlen, i;
+    size_t maxlen, i;
     int cc;
 
     /* Record the PID for reap_children.  */
@@ -1916,11 +1916,11 @@ func_shell_base (char *o, char **argv, int trim_newlines)
 
   BPTR child_stdout;
   char tmp_output[FILENAME_MAX];
-  unsigned int maxlen = 200, i;
+  size_t maxlen = 200, i;
   int cc;
   char * buffer, * ptr;
   char ** aptr;
-  int len = 0;
+  size_t len = 0;
   char* batch_filename = NULL;
 
   /* Construct the argument list.  */
@@ -2104,7 +2104,7 @@ abspath (const char *name, char *apath)
 
   for (start = end = name; *start != '\0'; start = end)
     {
-      unsigned long len;
+      size_t len;
 
       /* Skip sequence of multiple path-separators.  */
       while (STOP_SET (*start, MAP_DIRSEP))
@@ -2158,7 +2158,7 @@ func_realpath (char *o, char **argv, const char *funcname UNUSED)
   const char *p = argv[0];
   const char *path = 0;
   int doneany = 0;
-  unsigned int len = 0;
+  size_t len = 0;
 
   while ((path = find_next_token (&p, &len)) != 0)
     {
@@ -2227,7 +2227,7 @@ func_file (char *o, char **argv, const char *funcname UNUSED)
 
       if (argv[1])
         {
-          int l = strlen (argv[1]);
+          size_t l = strlen (argv[1]);
           int nl = l == 0 || argv[1][l-1] != '\n';
 
           if (fputs (argv[1], fp) == EOF || (nl && fputc ('\n', fp) == EOF))
@@ -2291,7 +2291,7 @@ func_abspath (char *o, char **argv, const char *funcname UNUSED)
   const char *p = argv[0];
   const char *path = 0;
   int doneany = 0;
-  unsigned int len = 0;
+  size_t len = 0;
 
   while ((path = find_next_token (&p, &len)) != 0)
     {
@@ -2498,7 +2498,7 @@ handle_function (char **op, const char **stringp)
           ++nargs;
 
           if (nargs == entry_p->maximum_args
-              || (! (next = find_next_argument (openparen, closeparen, p, end))))
+              || ((next = find_next_argument (openparen, closeparen, p, end)) == NULL))
             next = end;
 
           *argvp = expand_argument (p, next);
@@ -2507,7 +2507,7 @@ handle_function (char **op, const char **stringp)
     }
   else
     {
-      int len = end - beg;
+      size_t len = end - beg;
       char *p, *aend;
 
       abeg = xmalloc (len+1);
@@ -2522,7 +2522,7 @@ handle_function (char **op, const char **stringp)
           ++nargs;
 
           if (nargs == entry_p->maximum_args
-              || (! (next = find_next_argument (openparen, closeparen, p, aend))))
+              || ((next = find_next_argument (openparen, closeparen, p, aend)) == NULL))
             next = aend;
 
           *argvp = p;
@@ -2556,7 +2556,7 @@ func_call (char *o, char **argv, const char *funcname UNUSED)
   static int max_args = 0;
   char *fname;
   char *body;
-  int flen;
+  size_t flen;
   int i;
   int saved_args;
   const struct function_table_entry *entry_p;
@@ -2670,9 +2670,9 @@ define_new_function (const floc *flocp, const char *name,
 
   ent = xmalloc (sizeof (struct function_table_entry));
   ent->name = name;
-  ent->len = len;
-  ent->minimum_args = min;
-  ent->maximum_args = max;
+  ent->len = (unsigned char) len;
+  ent->minimum_args = (unsigned char) min;
+  ent->maximum_args = (unsigned char) max;
   ent->expand_args = ANY_SET(flags, GMK_FUNC_NOEXPAND) ? 0 : 1;
   ent->alloc_fn = 1;
   ent->fptr.alloc_func_ptr = func;
index c138aaf6b5d2adee12332b19e4441c3cdc36c794..d04f2bc0e96de348d25146f59d54390601e0bf97 100644 (file)
@@ -17,7 +17,7 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "makeint.h"
 #include "hash.h"
 
-#define        CALLOC(t, n) ((t *) xcalloc (sizeof (t) * (n)))
+#define CALLOC(t, n) ((t *) xcalloc (sizeof (t) * (n)))
 #define MALLOC(t, n) ((t *) xmalloc (sizeof (t) * (n)))
 #define REALLOC(o, t, n) ((t *) xrealloc ((o), sizeof (t) * (n)))
 #define CLONE(o, t, n) ((t *) memcpy (MALLOC (t, (n)), (o), sizeof (t) * (n)))
@@ -473,5 +473,5 @@ unsigned jhash_string(unsigned const char *k)
   }
 
   jhash_final(a, b, c);
-  return c + (k - start);
+  return c + (unsigned) (k - start);
 }
index e08e3a3b473839e4eb1df73125b332e054939902..97b50cb4676f5f855dbb6495e06bb72122bfe3bd 100644 (file)
@@ -66,7 +66,7 @@ try_implicit_rule (struct file *file, unsigned int depth)
    length of the word.  */
 
 static const char *
-get_next_word (const char *buffer, unsigned int *length)
+get_next_word (const char *buffer, size_t *length)
 {
   const char *p = buffer, *beg;
   char c;
@@ -161,12 +161,12 @@ struct tryrule
   {
     struct rule *rule;
 
+    /* Stem length for this match. */
+    size_t stemlen;
+
     /* Index of the target in this rule that matched the file. */
     unsigned int matches;
 
-    /* Stem length for this match. */
-    unsigned int stemlen;
-
     /* Definition order of this rule. Used to implement stable sort.*/
     unsigned int order;
 
@@ -179,8 +179,8 @@ stemlen_compare (const void *v1, const void *v2)
 {
   const struct tryrule *r1 = v1;
   const struct tryrule *r2 = v2;
-  int r = r1->stemlen - r2->stemlen;
-  return r != 0 ? r : (int)(r1->order - r2->order);
+  int r = (int) (r1->stemlen - r2->stemlen);
+  return r != 0 ? r : (int) (r1->order - r2->order);
 }
 
 /* Search the pattern rules for a rule with an existing dependency to make
@@ -205,7 +205,7 @@ pattern_search (struct file *file, int archive,
   const char *filename = archive ? strchr (file->name, '(') : file->name;
 
   /* Length of FILENAME.  */
-  unsigned int namelen = strlen (filename);
+  size_t namelen = strlen (filename);
 
   /* The last slash in FILENAME (or nil if there is none).  */
   const char *lastslash;
@@ -225,8 +225,8 @@ pattern_search (struct file *file, int archive,
 
   /* The start and length of the stem of FILENAME for the current rule.  */
   const char *stem = 0;
-  unsigned int stemlen = 0;
-  unsigned int fullstemlen = 0;
+  size_t stemlen = 0;
+  size_t fullstemlen = 0;
 
   /* Buffer in which we store all the rules that are possibly applicable.  */
   struct tryrule *tryrules = xmalloc (num_pattern_rules * max_pattern_targets
@@ -252,7 +252,7 @@ pattern_search (struct file *file, int archive,
   struct rule *rule;
 
   char *pathdir = NULL;
-  unsigned long pathlen;
+  size_t pathlen;
 
   PATH_VAR (stem_str); /* @@ Need to get rid of stem, stemlen, etc. */
 
@@ -573,7 +573,7 @@ pattern_search (struct file *file, int archive,
               else
                 {
                   int add_dir = 0;
-                  unsigned int len;
+                  size_t len;
                   struct dep **dptr;
 
                   nptr = get_next_word (nptr, &len);
@@ -607,7 +607,7 @@ pattern_search (struct file *file, int archive,
                     }
                   else
                     {
-                      unsigned int i = p - nptr;
+                      size_t i = p - nptr;
                       memcpy (depname, nptr, i);
                       memcpy (depname + i, "$*", 2);
                       memcpy (depname + i + 2, p + 1, len - i - 1);
@@ -672,7 +672,7 @@ pattern_search (struct file *file, int archive,
 
               if (deps_found > max_deps)
                 {
-                  unsigned int l = pat - deplist;
+                  size_t l = pat - deplist;
                   /* This might have changed due to recursion.  */
                   max_pattern_deps = MAX(max_pattern_deps, deps_found);
                   max_deps = max_pattern_deps;
@@ -931,7 +931,7 @@ pattern_search (struct file *file, int archive,
     }
   else
     {
-      int dirlen = (lastslash + 1) - filename;
+      size_t dirlen = (lastslash + 1) - filename;
       char *sp;
 
       /* We want to prepend the directory from
index 06227f989d8575755054eb26c9cba11e7e2825ce..88539e8d228584bb8730ac57f1612755965cb183 100644 (file)
--- a/src/job.c
+++ b/src/job.c
@@ -29,10 +29,10 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Default shell to use.  */
 #ifdef WINDOWS32
-#ifdef HAVE_STRINGS_H
-#include <strings.h>   /* for strcasecmp, strncasecmp */
-#endif
-#include <windows.h>
+# ifdef HAVE_STRINGS_H
+#  include <strings.h> /* for strcasecmp, strncasecmp */
+# endif
+# include <windows.h>
 
 const char *default_shell = "sh.exe";
 int no_default_sh_exe = 1;
@@ -281,7 +281,7 @@ create_batch_file (char const *base, int unixy, int *fd)
      launches the next one.  */
   static unsigned uniq = 0;
   static int second_loop = 0;
-  const unsigned sizemax = strlen (base) + strlen (ext) + 10;
+  const size_t sizemax = strlen (base) + strlen (ext) + 10;
 
   if (path_size == 0)
     {
@@ -451,7 +451,7 @@ is_bourne_compatible_shell (const char *path)
   for (s = unix_shells; *s != NULL; ++s)
     {
 #if defined(WINDOWS32) || defined(__MSDOS__)
-      unsigned int len = strlen (*s);
+      size_t len = strlen (*s);
       if ((strlen (name) >= len && STOP_SET (name[len], MAP_DOT|MAP_NUL))
           && strncasecmp (name, *s, len) == 0)
 #else
@@ -2637,7 +2637,7 @@ construct_command_argv_internal (char *line, char **restp, const char *shell,
   static const char *sh_chars_sh =  "#;\"*?[]&|<>(){}$`^~!";
 # endif  /* HAVE_DOS_PATHS */
 #endif
-  int i;
+  size_t i;
   char *p;
 #ifndef NDEBUG
   char *end;
@@ -3049,9 +3049,9 @@ construct_command_argv_internal (char *line, char **restp, const char *shell,
        argument list.  */
 
     char *new_line;
-    unsigned int shell_len = strlen (shell);
-    unsigned int line_len = strlen (line);
-    unsigned int sflags_len = shellflags ? strlen (shellflags) : 0;
+    size_t shell_len = strlen (shell);
+    size_t line_len = strlen (line);
+    size_t sflags_len = shellflags ? strlen (shellflags) : 0;
 #ifdef WINDOWS32
     char *command_ptr = NULL; /* used for batch_mode_shell mode */
 #endif
@@ -3208,7 +3208,7 @@ construct_command_argv_internal (char *line, char **restp, const char *shell,
             {
               const char *s = shellflags;
               char *t;
-              unsigned int len;
+              size_t len;
               while ((t = find_next_token (&s, &len)) != 0)
                 new_argv[n++] = xstrndup (t, len);
             }
index 51a26acd14ecbfe82c0696ab24cf27a799564b1b..ecf66cbae171bda5e0649aaf10f9fdb0fc1cf949 100644 (file)
@@ -121,7 +121,7 @@ load_object (const floc *flocp, int noerror, const char *ldname,
 int
 load_file (const floc *flocp, const char **ldname, int noerror)
 {
-  int nmlen = strlen (*ldname);
+  size_t nmlen = strlen (*ldname);
   char *new = alloca (nmlen + CSTRLEN (SYMBOL_EXTENSION) + 1);
   char *symname = NULL;
   char *loaded;
@@ -142,7 +142,7 @@ load_file (const floc *flocp, const char **ldname, int noerror)
       ep = strchr (fp+1, ')');
       if (ep && ep[1] == '\0')
         {
-          int l = fp - *ldname;;
+          size_t l = fp - *ldname;;
 
           ++fp;
           if (fp == ep)
index df7b6dfa52149491d63000d31bb7297fe3dd02ae..b43322db0555eccf460ad5442348a1e8fb41cab0 100644 (file)
@@ -41,7 +41,7 @@ gmk_eval (const char *buffer, const gmk_floc *gfloc)
 {
   /* Preserve existing variable buffer context.  */
   char *pbuf;
-  unsigned int plen;
+  size_t plen;
   char *s;
   floc fl;
   floc *flp;
index bc900153bdaaccfa05dd0bcb708f22edef38e555..31b7eac5a040aebbc2ca9e8b72a4cfb2e305387f 100644 (file)
@@ -105,7 +105,7 @@ static void clean_jobserver (int status);
 static void print_data_base (void);
 static void print_version (void);
 static void decode_switches (int argc, const char **argv, int env);
-static void decode_env_switches (const char *envar, unsigned int len);
+static void decode_env_switches (const char *envar, size_t len);
 static struct variable *define_makeflags (int all, int makefile);
 static char *quote_for_env (char *out, const char *in);
 static void initialize_global_hash_tables (void);
@@ -1355,7 +1355,7 @@ main (int argc, char **argv, char **envp)
         const char *ep = envp[i];
         /* By default, export all variables culled from the environment.  */
         enum variable_export export = v_export;
-        unsigned int len;
+        size_t len;
 
         while (! STOP_SET (*ep, MAP_EQUALS))
           ++ep;
@@ -1648,7 +1648,7 @@ main (int argc, char **argv, char **envp)
     {
       struct command_variable *cv;
       struct variable *v;
-      unsigned int len = 0;
+      size_t len = 0;
       char *value, *p;
 
       /* Figure out how much space will be taken up by the command-line
@@ -1828,7 +1828,7 @@ main (int argc, char **argv, char **envp)
             while (!feof (stdin) && ! ferror (stdin))
               {
                 char buf[2048];
-                unsigned int n = fread (buf, 1, sizeof (buf), stdin);
+                size_t n = fread (buf, 1, sizeof (buf), stdin);
                 if (n > 0 && fwrite (buf, 1, n, outfile) != n)
                   pfatal_with_name (_("fwrite (temporary file)"));
               }
@@ -1925,7 +1925,7 @@ main (int argc, char **argv, char **envp)
     {
       char *p, *value;
       unsigned int i;
-      unsigned int len = (CSTRLEN ("--eval=") + 1) * eval_strings->idx;
+      size_t len = (CSTRLEN ("--eval=") + 1) * eval_strings->idx;
 
       for (i = 0; i < eval_strings->idx; ++i)
         {
@@ -2646,7 +2646,7 @@ init_switches (void)
       long_options[i].flag = 0;
       long_options[i].val = switches[i].c;
       if (short_option (switches[i].c))
-        *p++ = switches[i].c;
+        *p++ = (char) switches[i].c;
       switch (switches[i].type)
         {
         case flag:
@@ -2769,7 +2769,7 @@ handle_non_switch_argument (const char *arg, int env)
         else
           {
             /* Paste the old and new values together */
-            unsigned int oldlen, newlen;
+            size_t oldlen, newlen;
             char *vp;
 
             oldlen = strlen (gv->value);
@@ -2890,7 +2890,7 @@ decode_switches (int argc, const char **argv, int env)
                       const char *op = opt;
 
                       if (short_option (cs->c))
-                        opt[0] = cs->c;
+                        opt[0] = (char) cs->c;
                       else
                         op = cs->long_name;
 
@@ -3013,7 +3013,7 @@ decode_switches (int argc, const char **argv, int env)
    decode_switches.  */
 
 static void
-decode_env_switches (const char *envar, unsigned int len)
+decode_env_switches (const char *envar, size_t len)
 {
   char *varref = alloca (2 + len + 2);
   char *value, *p, *buf;
@@ -3125,7 +3125,7 @@ define_makeflags (int all, int makefile)
     };
   struct flag *flags = 0;
   struct flag *last = 0;
-  unsigned int flagslen = 0;
+  size_t flagslen = 0;
 #define ADD_FLAG(ARG, LEN) \
   do {                                                                        \
     struct flag *new = alloca (sizeof (struct flag));                         \
@@ -3247,7 +3247,7 @@ define_makeflags (int all, int makefile)
   /* Add simple options as a group.  */
   while (flags != 0 && !flags->arg && short_option (flags->cs->c))
     {
-      *p++ = flags->cs->c;
+      *p++ = (char) flags->cs->c;
       flags = flags->next;
     }
 
@@ -3259,7 +3259,7 @@ define_makeflags (int all, int makefile)
 
       /* Add the flag letter or name to the string.  */
       if (short_option (flags->cs->c))
-        *p++ = flags->cs->c;
+        *p++ = (char) flags->cs->c;
       else
         {
           /* Long options require a double-dash.  */
index c5905a4a07c6c3d5e0860399f8612c3cadceebce..fab20faac92cf0da053e159e22b66516513dc3d9 100644 (file)
@@ -514,12 +514,12 @@ void die (int) __attribute__ ((noreturn));
 void pfatal_with_name (const char *) __attribute__ ((noreturn));
 void perror_with_name (const char *, const char *);
 #define xstrlen(_s) ((_s)==NULL ? 0 : strlen (_s))
-void *xmalloc (unsigned int);
-void *xcalloc (unsigned int);
-void *xrealloc (void *, unsigned int);
+void *xmalloc (size_t);
+void *xcalloc (size_t);
+void *xrealloc (void *, size_t);
 char *xstrdup (const char *);
-char *xstrndup (const char *, unsigned int);
-char *find_next_token (const char **, unsigned int *);
+char *xstrndup (const char *, size_t);
+char *find_next_token (const char **, size_t *);
 char *next_token (const char *);
 char *end_of_token (const char *);
 void collapse_continuations (char *);
@@ -568,7 +568,7 @@ void build_vpath_lists (void);
 void construct_vpath_list (char *pattern, char *dirpath);
 const char *vpath_search (const char *file, FILE_TIMESTAMP *mtime_ptr,
                           unsigned int* vpath_index, unsigned int* path_index);
-int gpath_search (const char *file, unsigned int len);
+int gpath_search (const char *file, size_t len);
 
 void construct_include_path (const char **arg_dirs);
 
@@ -585,7 +585,7 @@ void strcache_init (void);
 void strcache_print_stats (const char *prefix);
 int strcache_iscached (const char *str);
 const char *strcache_add (const char *str);
-const char *strcache_add_len (const char *str, unsigned int len);
+const char *strcache_add_len (const char *str, size_t len);
 
 /* Guile support  */
 int guile_gmake_setup (const floc *flocp);
@@ -711,7 +711,7 @@ int start_remote_job (char **, char **, int, int *, int *, int *);
 int remote_status (int *, int *, int *, int);
 void block_remote_children (void);
 void unblock_remote_children (void);
-int remote_kill (int id, int sig);
+int remote_kill (pid_t id, int sig);
 void print_variable_data_base (void);
 void print_vpath_data_base (void);
 
index 533404676ac799841a1ae1f5d4eb8aad35e03e14..f3594ad344113fe24fdf5d446be841787b3cdd92 100644 (file)
@@ -67,7 +67,7 @@ collapse_continuations (char *line)
     {
       char *p = q;
       int i;
-      int out_line_length;
+      size_t out_line_length;
 
       if (q > line && q[-1] == '\\')
         {
@@ -132,9 +132,9 @@ print_spaces (unsigned int n)
 const char *
 concat (unsigned int num, ...)
 {
-  static unsigned int rlen = 0;
+  static size_t rlen = 0;
   static char *result = NULL;
-  unsigned int ri = 0;
+  size_t ri = 0;
   va_list args;
 
   va_start (args, num);
@@ -142,7 +142,7 @@ concat (unsigned int num, ...)
   while (num-- > 0)
     {
       const char *s = va_arg (args, const char *);
-      unsigned int l = xstrlen (s);
+      size_t l = xstrlen (s);
 
       if (l == 0)
         continue;
@@ -203,7 +203,7 @@ strerror (int errnum)
 #undef xstrdup
 
 void *
-xmalloc (unsigned int size)
+xmalloc (size_t size)
 {
   /* Make sure we don't allocate 0, for pre-ISO implementations.  */
   void *result = malloc (size ? size : 1);
@@ -214,7 +214,7 @@ xmalloc (unsigned int size)
 
 
 void *
-xcalloc (unsigned int size)
+xcalloc (size_t size)
 {
   /* Make sure we don't allocate 0, for pre-ISO implementations.  */
   void *result = calloc (size ? size : 1, 1);
@@ -225,7 +225,7 @@ xcalloc (unsigned int size)
 
 
 void *
-xrealloc (void *ptr, unsigned int size)
+xrealloc (void *ptr, size_t size)
 {
   void *result;
 
@@ -263,7 +263,7 @@ xstrdup (const char *ptr)
 #endif  /* HAVE_DMALLOC_H */
 
 char *
-xstrndup (const char *str, unsigned int length)
+xstrndup (const char *str, size_t length)
 {
   char *result;
 
@@ -321,7 +321,7 @@ next_token (const char *s)
    of the token, so this function can be called repeatedly in a loop.  */
 
 char *
-find_next_token (const char **ptr, unsigned int *lengthptr)
+find_next_token (const char **ptr, size_t *lengthptr)
 {
   const char *p = next_token (*ptr);
 
index b237a31e0955a447f8018cf9265e75c6de3868ba..8557de27e44cf49e42bebe3f4a626a96f218532b 100644 (file)
@@ -86,7 +86,7 @@ _outputs (struct output *out, int is_err, const char *msg)
   else
     {
       int fd = is_err ? out->err : out->out;
-      int len = strlen (msg);
+      size_t len = strlen (msg);
       int r;
       EINTRLOOP (r, lseek (fd, 0, SEEK_END));
       output_write (fd, msg, len);
@@ -100,8 +100,8 @@ static int
 log_working_directory (int entering)
 {
   static char *buf = NULL;
-  static unsigned int len = 0;
-  unsigned int need;
+  static size_t len = 0;
+  size_t need;
   const char *fmt;
   char *p;
 
index dc8fbee4b5378287110f5ebd48da203f4801fec4..6801eebd333e85e61c77f8605218bfe590fa60ac 100644 (file)
@@ -51,7 +51,7 @@ struct ebuffer
     char *buffer;       /* Start of the current line in the buffer.  */
     char *bufnext;      /* Start of the next line in the buffer.  */
     char *bufstart;     /* Start of the entire buffer.  */
-    unsigned int size;  /* Malloc'd size of buffer. */
+    size_t size;        /* Malloc'd size of buffer. */
     FILE *fp;           /* File, or NULL if this is an internal buffer.  */
     floc floc;          /* Info on the file in fp (if any).  */
   };
@@ -122,7 +122,7 @@ static const char **include_directories;
 
 /* Maximum length of an element of the above.  */
 
-static unsigned int max_incl_len;
+static size_t max_incl_len;
 
 /* The filename and pointer to line number of the
    makefile currently being read in.  */
@@ -133,7 +133,7 @@ const floc *reading_file = 0;
 
 static struct goaldep *read_files = 0;
 
-static struct goaldep *eval_makefile (const char *filename, int flags);
+static struct goaldep *eval_makefile (const char *filename, unsigned short flags);
 static void eval (struct ebuffer *buffer, int flags);
 
 static long readline (struct ebuffer *ebuf);
@@ -141,18 +141,18 @@ static void do_undefine (char *name, enum variable_origin origin,
                          struct ebuffer *ebuf);
 static struct variable *do_define (char *name, enum variable_origin origin,
                                    struct ebuffer *ebuf);
-static int conditional_line (char *line, int len, const floc *flocp);
+static int conditional_line (char *line, size_t len, const floc *flocp);
 static void record_files (struct nameseq *filenames, const char *pattern,
                           const char *pattern_percent, char *depstr,
                           unsigned int cmds_started, char *commands,
-                          unsigned int commands_idx, int two_colon,
+                          size_t commands_idx, int two_colon,
                           char prefix, const floc *flocp);
 static void record_target_var (struct nameseq *filenames, char *defn,
                                enum variable_origin origin,
                                struct vmodifiers *vmod,
                                const floc *flocp);
 static enum make_word_type get_next_mword (char *buffer, char *delim,
-                                           char **startp, unsigned int *length);
+                                           char **startp, size_t *length);
 static void remove_comments (char *line);
 static char *find_map_unquote (char *string, int map);
 static char *find_char_unquote (char *string, int stop);
@@ -186,7 +186,7 @@ read_all_makefiles (const char **makefiles)
   {
     char *value;
     char *name, *p;
-    unsigned int length;
+    size_t length;
 
     {
       /* Turn off --warn-undefined-variables while we expand MAKEFILES.  */
@@ -314,7 +314,7 @@ restore_conditionals (struct conditionals *saved)
 }
 \f
 static struct goaldep *
-eval_makefile (const char *filename, int flags)
+eval_makefile (const char *filename, unsigned short flags)
 {
   struct goaldep *deps;
   struct ebuffer ebuf;
@@ -504,12 +504,12 @@ parse_var_assignment (const char *line, struct vmodifiers *vmod)
   /* Find the start of the next token.  If there isn't one we're done.  */
   NEXT_TOKEN (line);
   if (*line == '\0')
-    return (char *)line;
+    return (char *) line;
 
   p = line;
   while (1)
     {
-      int wlen;
+      size_t wlen;
       const char *p2;
       struct variable v;
 
@@ -545,12 +545,12 @@ parse_var_assignment (const char *line, struct vmodifiers *vmod)
         }
       else
         /* Not a variable or modifier: this is not a variable assignment.  */
-        return (char *)line;
+        return (char *) line;
 
       /* It was a modifier.  Try the next word.  */
       p = next_token (p2);
       if (*p == '\0')
-        return (char *)line;
+        return (char *) line;
     }
 
   /* Found a variable assignment or undefine.  */
@@ -567,10 +567,10 @@ static void
 eval (struct ebuffer *ebuf, int set_default)
 {
   char *collapsed = 0;
-  unsigned int collapsed_length = 0;
-  unsigned int commands_len = 200;
+  size_t collapsed_length = 0;
+  size_t commands_len = 200;
   char *commands;
-  unsigned int commands_idx = 0;
+  size_t commands_idx = 0;
   unsigned int cmds_started, tgts_started;
   int ignoring = 0, in_ignored_define = 0;
   int no_targets = 0;           /* Set when reading a rule without targets.  */
@@ -620,9 +620,9 @@ eval (struct ebuffer *ebuf, int set_default)
 
   while (1)
     {
-      unsigned int linelen;
+      size_t linelen;
       char *line;
-      unsigned int wlen;
+      size_t wlen;
       char *p;
       char *p2;
       struct vmodifiers vmod;
@@ -639,20 +639,22 @@ eval (struct ebuffer *ebuf, int set_default)
       line = ebuf->buffer;
 
       /* If this is the first line, check for a UTF-8 BOM and skip it.  */
-      if (ebuf->floc.lineno == 1 && line[0] == (char)0xEF
-          && line[1] == (char)0xBB && line[2] == (char)0xBF)
+      if (ebuf->floc.lineno == 1)
         {
-          line += 3;
-          if (ISDB(DB_BASIC))
+          unsigned char *ul = (unsigned char *) line;
+          if (ul[0] == 0xEF && ul[1] == 0xBB && ul[2] == 0xBF)
             {
-              if (ebuf->floc.filenm)
-                printf (_("Skipping UTF-8 BOM in makefile '%s'\n"),
-                        ebuf->floc.filenm);
-              else
-                printf (_("Skipping UTF-8 BOM in makefile buffer\n"));
+              line += 3;
+              if (ISDB(DB_BASIC))
+                {
+                  if (ebuf->floc.filenm)
+                    printf (_("Skipping UTF-8 BOM in makefile '%s'\n"),
+                            ebuf->floc.filenm);
+                  else
+                    printf (_("Skipping UTF-8 BOM in makefile buffer\n"));
+                }
             }
         }
-
       /* If this line is empty, skip it.  */
       if (line[0] == '\0')
         continue;
@@ -803,7 +805,7 @@ eval (struct ebuffer *ebuf, int set_default)
             export_all_variables = exporting;
           else
             {
-              unsigned int l;
+              size_t l;
               const char *cp;
               char *ap;
 
@@ -830,7 +832,7 @@ eval (struct ebuffer *ebuf, int set_default)
         {
           const char *cp;
           char *vpat;
-          unsigned int l;
+          size_t l;
 
           /* vpath ends the previous rule.  */
           record_waiting_files ();
@@ -895,9 +897,9 @@ eval (struct ebuffer *ebuf, int set_default)
           while (files != 0)
             {
               struct nameseq *next = files->next;
-              int flags = (RM_INCLUDED | RM_NO_TILDE
-                           | (noerror ? RM_DONTCARE : 0)
-                           | (set_default ? 0 : RM_NO_DEFAULT_GOAL));
+              unsigned short flags = (RM_INCLUDED | RM_NO_TILDE
+                                      | (noerror ? RM_DONTCARE : 0)
+                                      | (set_default ? 0 : RM_NO_DEFAULT_GOAL));
 
               struct goaldep *d = eval_makefile (files->name, flags);
 
@@ -992,7 +994,7 @@ eval (struct ebuffer *ebuf, int set_default)
       {
         enum make_word_type wtype;
         char *cmdleft, *semip, *lb_next;
-        unsigned int plen = 0;
+        size_t plen = 0;
         char *colonp;
         const char *end, *beg; /* Helpers for whitespace stripping. */
 
@@ -1054,8 +1056,8 @@ eval (struct ebuffer *ebuf, int set_default)
 
                 if (cmdleft != 0)
                   {
-                    unsigned long p2_off = p2 - variable_buffer;
-                    unsigned long cmd_off = cmdleft - variable_buffer;
+                    size_t p2_off = p2 - variable_buffer;
+                    size_t cmd_off = cmdleft - variable_buffer;
                     char *pend = p2 + strlen (p2);
 
                     /* Append any remnants of lb, then cut the line short
@@ -1070,7 +1072,7 @@ eval (struct ebuffer *ebuf, int set_default)
                        entirely consistent, since we do an unconditional
                        expand below once we know we don't have a
                        target-specific variable. */
-                    (void)variable_expand_string (pend, lb_next, (long)-1);
+                    variable_expand_string (pend, lb_next, SIZE_MAX);
                     lb_next += strlen (lb_next);
                     p2 = variable_buffer + p2_off;
                     cmdleft = variable_buffer + cmd_off + 1;
@@ -1150,7 +1152,7 @@ eval (struct ebuffer *ebuf, int set_default)
            of the unparsed section of p2, for later.  */
         if (*lb_next != '\0')
           {
-            unsigned int l = p2 - variable_buffer;
+            size_t l = p2 - variable_buffer;
             plen = strlen (p2);
             variable_buffer_output (p2+plen, lb_next, strlen (lb_next)+1);
             p2 = variable_buffer + l;
@@ -1163,7 +1165,7 @@ eval (struct ebuffer *ebuf, int set_default)
                after it.  */
             if (semip)
               {
-                unsigned int l = p2 - variable_buffer;
+                size_t l = p2 - variable_buffer;
                 *(--semip) = ';';
                 collapse_continuations (semip);
                 variable_buffer_output (p2 + strlen (p2),
@@ -1190,8 +1192,8 @@ eval (struct ebuffer *ebuf, int set_default)
         /* Expand the dependencies, etc.  */
         if (*lb_next != '\0')
           {
-            unsigned int l = p2 - variable_buffer;
-            (void) variable_expand_string (p2 + plen, lb_next, (long)-1);
+            size_t l = p2 - variable_buffer;
+            variable_expand_string (p2 + plen, lb_next, SIZE_MAX);
             p2 = variable_buffer + l;
 
             /* Look for a semicolon in the expanded line.  */
@@ -1281,7 +1283,7 @@ eval (struct ebuffer *ebuf, int set_default)
         if (cmdleft != 0)
           {
             /* Semicolon means rest of line is a command.  */
-            unsigned int l = strlen (cmdleft);
+            size_t l = strlen (cmdleft);
 
             cmds_started = fstart->lineno;
 
@@ -1347,7 +1349,7 @@ eval (struct ebuffer *ebuf, int set_default)
                       }
                     for (d2 = suffix_file->deps; d2 != 0; d2 = d2->next)
                       {
-                        unsigned int l = strlen (dep_name (d2));
+                        size_t l = strlen (dep_name (d2));
                         if (!strneq (name, dep_name (d2), l))
                           continue;
                         if (streq (name + l, dep_name (d)))
@@ -1442,9 +1444,9 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
   struct variable var;
   floc defstart;
   int nlevels = 1;
-  unsigned int length = 100;
+  size_t length = 100;
   char *definition = xmalloc (length);
-  unsigned int idx = 0;
+  size_t idx = 0;
   char *p, *n;
 
   defstart = ebuf->floc;
@@ -1475,7 +1477,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
   /* Now read the value of the variable.  */
   while (1)
     {
-      unsigned int len;
+      size_t len;
       char *line;
       long nlines = readline (ebuf);
 
@@ -1556,7 +1558,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
    1 if following text should be ignored.  */
 
 static int
-conditional_line (char *line, int len, const floc *flocp)
+conditional_line (char *line, size_t len, const floc *flocp)
 {
   const char *cmdname;
   enum { c_ifdef, c_ifndef, c_ifeq, c_ifneq, c_else, c_endif } cmdtype;
@@ -1689,6 +1691,7 @@ conditional_line (char *line, int len, const floc *flocp)
 
   if (cmdtype == c_ifdef || cmdtype == c_ifndef)
     {
+      size_t l;
       char *var;
       struct variable *v;
       char *p;
@@ -1699,13 +1702,13 @@ conditional_line (char *line, int len, const floc *flocp)
 
       /* Make sure there's only one variable name to test.  */
       p = end_of_token (var);
-      i = p - var;
+      l = p - var;
       NEXT_TOKEN (p);
       if (*p != '\0')
         return -1;
 
-      var[i] = '\0';
-      v = lookup_variable (var, i);
+      var[l] = '\0';
+      v = lookup_variable (var, l);
 
       conditionals->ignoring[o] =
         ((v != 0 && *v->value != '\0') == (cmdtype == c_ifndef));
@@ -1716,7 +1719,7 @@ conditional_line (char *line, int len, const floc *flocp)
     {
       /* "ifeq" or "ifneq".  */
       char *s1, *s2;
-      unsigned int l;
+      size_t l;
       char termin = *line == '(' ? ',' : *line;
 
       if (termin != ',' && termin != '"' && termin != '\'')
@@ -1899,7 +1902,7 @@ record_target_var (struct nameseq *filenames, char *defn,
       if (v->origin != o_override)
         {
           struct variable *gv;
-          int len = strlen (v->name);
+          size_t len = strlen (v->name);
 
           gv = lookup_variable (v->name, len);
           if (gv && v != gv
@@ -1930,7 +1933,7 @@ static void
 record_files (struct nameseq *filenames, const char *pattern,
               const char *pattern_percent, char *depstr,
               unsigned int cmds_started, char *commands,
-              unsigned int commands_idx, int two_colon,
+              size_t commands_idx, int two_colon,
               char prefix, const floc *flocp)
 {
   struct commands *cmds;
@@ -1999,7 +2002,7 @@ record_files (struct nameseq *filenames, const char *pattern,
     {
       struct nameseq *nextf;
       const char **targets, **target_pats;
-      unsigned int c;
+      unsigned short c;
 
       if (pattern != 0)
         O (fatal, flocp, _("mixed implicit and static pattern rules"));
@@ -2234,7 +2237,7 @@ record_files (struct nameseq *filenames, const char *pattern,
 static char *
 find_map_unquote (char *string, int stopmap)
 {
-  unsigned int string_len = 0;
+  size_t string_len = 0;
   char *p = string;
 
   /* Always stop on NUL.  */
@@ -2316,7 +2319,7 @@ find_map_unquote (char *string, int stopmap)
 static char *
 find_char_unquote (char *string, int stop)
 {
-  unsigned int string_len = 0;
+  size_t string_len = 0;
   char *p = string;
 
   while (1)
@@ -2366,7 +2369,7 @@ unescape_char (char *string, int c)
       if (*s == '\\')
         {
           char *e = s;
-          int l;
+          size_t l;
 
           /* We found a backslash.  See if it's escaping our character.  */
           while (*e == '\\')
@@ -2420,7 +2423,7 @@ find_percent_cached (const char **string)
 {
   const char *p = *string;
   char *new = 0;
-  int slen = 0;
+  size_t slen = 0;
 
   /* If the first char is a % return now.  This lets us avoid extra tests
      inside the loop.  */
@@ -2478,7 +2481,7 @@ find_percent_cached (const char **string)
     {
       *string = strcache_add (*string);
       if (p)
-       p = *string + (p - new);
+        p = *string + (p - new);
     }
 
   /* If we didn't find a %, return NULL.  Otherwise return a ptr to it.  */
@@ -2562,10 +2565,10 @@ readline (struct ebuffer *ebuf)
   end = p + ebuf->size;
   *p = '\0';
 
-  while (fgets (p, (int)(end - p), ebuf->fp) != 0)
+  while (fgets (p, (int) (end - p), ebuf->fp) != 0)
     {
       char *p2;
-      unsigned long len;
+      size_t len;
       int backslash;
 
       len = strlen (p);
@@ -2626,7 +2629,7 @@ readline (struct ebuffer *ebuf)
          Make sure to preserve the current offset of p.  */
     more_buffer:
       {
-        unsigned long off = p - start;
+        size_t off = p - start;
         ebuf->size *= 2;
         start = ebuf->buffer = ebuf->bufstart = xrealloc (start, ebuf->size);
         p = start + off;
@@ -2665,7 +2668,7 @@ readline (struct ebuffer *ebuf)
    in a command list, etc.)  */
 
 static enum make_word_type
-get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
+get_next_mword (char *buffer, char *delim, char **startp, size_t *length)
 {
   enum make_word_type wtype;
   char *p = buffer, *beg;
@@ -2847,7 +2850,7 @@ construct_include_path (const char **arg_dirs)
 #endif
   const char **dirs;
   const char **cpp;
-  unsigned int idx;
+  size_t idx;
 
   /* Compute the number of pointers we need in the table.  */
   idx = sizeof (default_include_directories) / sizeof (const char *);
@@ -2885,7 +2888,7 @@ construct_include_path (const char **arg_dirs)
         EINTRLOOP (e, stat (dir, &stbuf));
         if (e == 0 && S_ISDIR (stbuf.st_mode))
           {
-            unsigned int len = strlen (dir);
+            size_t len = strlen (dir);
             /* If dir name is written with trailing slashes, discard them.  */
             while (len > 1 && dir[len - 1] == '/')
               --len;
@@ -2907,7 +2910,7 @@ construct_include_path (const char **arg_dirs)
 
     if (djdir)
       {
-        unsigned int len = strlen (djdir->value) + 8;
+        size_t len = strlen (djdir->value) + 8;
         char *defdir = alloca (len + 1);
 
         strcat (strcpy (defdir, djdir->value), "/include");
@@ -2926,7 +2929,7 @@ construct_include_path (const char **arg_dirs)
       EINTRLOOP (e, stat (*cpp, &stbuf));
       if (e == 0 && S_ISDIR (stbuf.st_mode))
         {
-          unsigned int len = strlen (*cpp);
+          size_t len = strlen (*cpp);
           /* If dir name is written with trailing slashes, discard them.  */
           while (len > 1 && (*cpp)[len - 1] == '/')
             --len;
@@ -3043,7 +3046,7 @@ tilde_expand (const char *name)
   */
 
 void *
-parse_file_seq (char **stringp, unsigned int size, int stopmap,
+parse_file_seq (char **stringp, size_t size, int stopmap,
                 const char *prefix, int flags)
 {
   /* tmp points to tmpbuf after the prefix, if any.
@@ -3077,8 +3080,8 @@ parse_file_seq (char **stringp, unsigned int size, int stopmap,
 
   /* Get enough temporary space to construct the largest possible target.  */
   {
-    static int tmpbuf_len = 0;
-    int l = strlen (*stringp) + 1;
+    static size_t tmpbuf_len = 0;
+    size_t l = strlen (*stringp) + 1;
     if (l > tmpbuf_len)
       {
         tmpbuf = xrealloc (tmpbuf, l);
@@ -3100,7 +3103,7 @@ parse_file_seq (char **stringp, unsigned int size, int stopmap,
       char *memname = 0;
 #endif
       char *s;
-      int nlen;
+      size_t nlen;
       int i;
 
       /* Skip whitespace; at the end of the string or STOPCHAR we're done.  */
index fcef049014934d7534d353f7f25a5f41354b5bd8..8c888b64cf11afa4d7f7ff838bff43d67f939a24 100644 (file)
@@ -1255,7 +1255,7 @@ FILE_TIMESTAMP
 f_mtime (struct file *file, int search)
 {
   FILE_TIMESTAMP mtime;
-  int propagate_timestamp;
+  unsigned int propagate_timestamp;
 
   /* File's mtime is not known; must get it from the system.  */
 
@@ -1284,7 +1284,7 @@ f_mtime (struct file *file, int search)
              Change the archive-member reference accordingly.  */
 
           char *name;
-          unsigned int arlen, memlen;
+          size_t arlen, memlen;
 
           arlen = strlen (arfile->hname);
           memlen = strlen (memname);
@@ -1332,7 +1332,7 @@ f_mtime (struct file *file, int search)
               || (file->name[0] == '-' && file->name[1] == 'l'
                   && (name = library_search (file->name, &mtime)) != 0))
             {
-              int name_len;
+              size_t name_len;
 
               if (mtime != UNKNOWN_MTIME)
                 /* vpath_search and library_search store UNKNOWN_MTIME
@@ -1480,29 +1480,29 @@ name_mtime (const char *name)
        succeeds ONLY if "foo" is a directory. */
     if (p > name)
       {
-       memcpy (tem, name, p - name + 1);
-       tstart = tem;
-       if (tstart[1] == ':')
-         tstart += 2;
-       tend = tem + (p - name - 1);
-       if (*tend == '.' && tend > tstart)
-         tend--;
-       if (*tend == '.' && tend > tstart)
-         tend--;
-       for ( ; tend > tstart && (*tend == '/' || *tend == '\\'); tend--)
-         *tend = '\0';
+        memcpy (tem, name, p - name + 1);
+        tstart = tem;
+        if (tstart[1] == ':')
+          tstart += 2;
+        tend = tem + (p - name - 1);
+        if (*tend == '.' && tend > tstart)
+          tend--;
+        if (*tend == '.' && tend > tstart)
+          tend--;
+        for ( ; tend > tstart && (*tend == '/' || *tend == '\\'); tend--)
+          *tend = '\0';
       }
     else
       {
-       tem[0] = '\0';
-       tend = &tem[0];
+        tem[0] = '\0';
+        tend = &tem[0];
       }
 
     e = stat (tem, &st);
     if (e == 0 && !_S_ISDIR (st.st_mode) && tend < tem + (p - name - 1))
       {
-       errno = ENOTDIR;
-       e = -1;
+        errno = ENOTDIR;
+        e = -1;
       }
   }
 #else
@@ -1622,8 +1622,8 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
   /* Loop variables for the libpatterns value.  */
   char *p;
   const char *p2;
-  unsigned int len;
-  unsigned int liblen;
+  size_t len;
+  size_t liblen;
 
   /* Information about the earliest (in the vpath sequence) match.  */
   unsigned int best_vpath = 0, best_path = 0;
@@ -1643,8 +1643,8 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
   while ((p = find_next_token (&p2, &len)) != 0)
     {
       static char *buf = NULL;
-      static unsigned int buflen = 0;
-      static int libdir_maxlen = -1;
+      static size_t buflen = 0;
+      static size_t libdir_maxlen = 0;
       static unsigned int std_dirs = 0;
       char *libbuf = variable_expand ("");
 
@@ -1709,7 +1709,7 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
         {
           for (dp = dirs; *dp != 0; ++dp)
             {
-              int l = strlen (*dp);
+              size_t l = strlen (*dp);
               if (l > libdir_maxlen)
                 libdir_maxlen = l;
               std_dirs++;
index 62203350fd1b58f8dc32b71b9aa2dc8d3f9c3778..a123380297303cdea0895e3b581bfd329cbbf7d6 100644 (file)
@@ -294,7 +294,7 @@ unblock_remote_children (void)
 
 /* Send signal SIG to child ID.  Return 0 if successful, -1 if not.  */
 int
-remote_kill (int id, int sig)
+remote_kill (pid_t id, int sig)
 {
   return -1;
 }
index 6e8876722f6022c2f565c690532b1b4c0dbe8292..d63b81647bb7bd2134ec73d951a51dffdc9c8010 100644 (file)
@@ -93,7 +93,7 @@ unblock_remote_children (void)
 
 /* Send signal SIG to child ID.  Return 0 if successful, -1 if not.  */
 int
-remote_kill (int id UNUSED, int sig UNUSED)
+remote_kill (pid_t id UNUSED, int sig UNUSED)
 {
   return -1;
 }
index 1042ea5bd3b0ac1c44ad159995c561b79a640566..4bd3ff0972f04ef5fc5f121c5b0989a7adbb2aa1 100644 (file)
@@ -49,7 +49,7 @@ unsigned int max_pattern_deps;
 
 /* Maximum length of the name of a dependencies of any pattern rule.  */
 
-unsigned int max_pattern_dep_length;
+size_t max_pattern_dep_length;
 
 /* Pointer to structure for the file .SUFFIXES
    whose dependencies are the suffixes to be searched.  */
@@ -58,7 +58,7 @@ struct file *suffix_file;
 
 /* Maximum length of a suffix.  */
 
-unsigned int maxsuffix;
+static size_t maxsuffix;
 \f
 /* Compute the maximum dependency length and maximum number of
    dependencies of all implicit rules.  Also sets the subdir
@@ -69,7 +69,7 @@ void
 count_implicit_rule_limits (void)
 {
   char *name;
-  int namelen;
+  size_t namelen;
   struct rule *rule;
 
   num_pattern_rules = max_pattern_targets = max_pattern_deps = 0;
@@ -92,7 +92,7 @@ count_implicit_rule_limits (void)
       for (dep = rule->deps; dep != 0; dep = dep->next)
         {
           const char *dname = dep_name (dep);
-          unsigned int len = strlen (dname);
+          size_t len = strlen (dname);
 
 #ifdef VMS
           const char *p = strrchr (dname, ']');
@@ -115,7 +115,7 @@ count_implicit_rule_limits (void)
                  Extract the directory name.  */
               if (p == dname)
                 ++p;
-              if (p - dname > namelen)
+              if ((size_t) (p - dname) > namelen)
                 {
                   namelen = p - dname;
                   name = xrealloc (name, namelen + 1);
@@ -173,7 +173,7 @@ convert_suffix_rule (const char *target, const char *source,
   else
     {
       /* Construct the target name.  */
-      unsigned int len = strlen (target);
+      size_t len = strlen (target);
       char *p = alloca (1 + len + 1);
       p[0] = '%';
       memcpy (p + 1, target, len + 1);
@@ -186,7 +186,7 @@ convert_suffix_rule (const char *target, const char *source,
   else
     {
       /* Construct the dependency name.  */
-      unsigned int len = strlen (source);
+      size_t len = strlen (source);
       char *p = alloca (1 + len + 1);
       p[0] = '%';
       memcpy (p + 1, source, len + 1);
@@ -214,7 +214,7 @@ convert_to_pattern (void)
   maxsuffix = 0;
   for (d = suffix_file->deps; d != 0; d = d->next)
     {
-      unsigned int l = strlen (dep_name (d));
+      size_t l = strlen (dep_name (d));
       if (l > maxsuffix)
         maxsuffix = l;
     }
@@ -224,7 +224,7 @@ convert_to_pattern (void)
 
   for (d = suffix_file->deps; d != 0; d = d->next)
     {
-      unsigned int slen;
+      size_t slen;
 
       /* Make a rule that is just the suffix, with no deps or commands.
          This rule exists solely to disqualify match-anything rules.  */
@@ -242,7 +242,7 @@ convert_to_pattern (void)
       for (d2 = suffix_file->deps; d2 != 0; d2 = d2->next)
         {
           struct file *f;
-          unsigned int s2len;
+          size_t s2len;
 
           s2len = strlen (dep_name (d2));
 
@@ -365,7 +365,7 @@ install_pattern_rule (struct pspec *p, int terminal)
   r->suffixes = xmalloc (sizeof (const char *));
   r->lens = xmalloc (sizeof (unsigned int));
 
-  r->lens[0] = strlen (p->target);
+  r->lens[0] = (unsigned int) strlen (p->target);
   r->targets[0] = p->target;
   r->suffixes[0] = find_percent_cached (&r->targets[0]);
   assert (r->suffixes[0] != NULL);
@@ -376,7 +376,7 @@ install_pattern_rule (struct pspec *p, int terminal)
 
   if (new_pattern_rule (r, 0))
     {
-      r->terminal = terminal;
+      r->terminal = terminal ? 1 : 0;
       r->cmds = xmalloc (sizeof (struct commands));
       r->cmds->fileinfo.filenm = 0;
       r->cmds->fileinfo.lineno = 0;
@@ -442,7 +442,7 @@ freerule (struct rule *rule, struct rule *lastrule)
 
 void
 create_pattern_rule (const char **targets, const char **target_percents,
-                     unsigned int n, int terminal, struct dep *deps,
+                     unsigned short n, int terminal, struct dep *deps,
                      struct commands *commands, int override)
 {
   unsigned int i;
@@ -457,13 +457,13 @@ create_pattern_rule (const char **targets, const char **target_percents,
 
   for (i = 0; i < n; ++i)
     {
-      r->lens[i] = strlen (targets[i]);
+      r->lens[i] = (unsigned int) strlen (targets[i]);
       assert (r->suffixes[i] != NULL);
       ++r->suffixes[i];
     }
 
   if (new_pattern_rule (r, override))
-    r->terminal = terminal;
+    r->terminal = terminal ? 1 : 0;
 }
 \f
 /* Print the data base of rules.  */
index 7382f89ea8446a701ccea4cbc249d8f59e428177..b8dfe4dc4e48a73c21fab32b8b802bcd58b50bea 100644 (file)
@@ -43,16 +43,15 @@ extern unsigned int num_pattern_rules;
 
 extern unsigned int max_pattern_deps;
 extern unsigned int max_pattern_targets;
-extern unsigned int max_pattern_dep_length;
+extern size_t max_pattern_dep_length;
 
 extern struct file *suffix_file;
-extern unsigned int maxsuffix;
 
 
 void count_implicit_rule_limits (void);
 void convert_to_pattern (void);
 void install_pattern_rule (struct pspec *p, int terminal);
 void create_pattern_rule (const char **targets, const char **target_percents,
-                          unsigned int num, int terminal, struct dep *deps,
+                          unsigned short num, int terminal, struct dep *deps,
                           struct commands *commands, int override);
 void print_rule_data_base (void);
index fbb7322dae7d340ad134c35c25b315aecddd2257..3cfa40001093a10027bc2ec0dd4a5defcc7b8973 100644 (file)
@@ -237,7 +237,7 @@ strsignal (int sig)
 # elif HAVE_DECL___SYS_SIGLIST
 #  define sys_siglist __sys_siglist
 # else
-  static char sig_initted = 0;
+  static int sig_initted = 0;
 
   if (!sig_initted)
     sig_initted = signame_init ();
index 2debefae38106b24511c023b17420243c79f4c80..acae43841db722acb77abd31442c1ff1d3b51f78 100644 (file)
@@ -72,7 +72,7 @@ new_cache (struct strcache **head, sc_buflen_t buflen)
 }
 
 static const char *
-copy_string (struct strcache *sp, const char *str, unsigned int len)
+copy_string (struct strcache *sp, const char *str, sc_buflen_t len)
 {
   /* Add the string to this cache.  */
   char *res = &sp->buffer[sp->end];
@@ -87,13 +87,13 @@ copy_string (struct strcache *sp, const char *str, unsigned int len)
 }
 
 static const char *
-add_string (const char *str, unsigned int len)
+add_string (const char *str, sc_buflen_t len)
 {
   const char *res;
   struct strcache *sp;
   struct strcache **spp = &strcache;
   /* We need space for the nul char.  */
-  unsigned int sz = len + 1;
+  sc_buflen_t sz = len + 1;
 
   ++total_strings;
   total_size += sz;
@@ -143,7 +143,7 @@ struct hugestring {
 static struct hugestring *hugestrings = NULL;
 
 static const char *
-add_hugestring (const char *str, unsigned int len)
+add_hugestring (const char *str, size_t len)
 {
   struct hugestring *new = xmalloc (sizeof (struct hugestring) + len);
   memcpy (new->buffer, str, len);
@@ -179,7 +179,7 @@ static struct hash_table strings;
 static unsigned long total_adds = 0;
 
 static const char *
-add_hash (const char *str, unsigned int len)
+add_hash (const char *str, size_t len)
 {
   char *const *slot;
   const char *key;
@@ -200,7 +200,7 @@ add_hash (const char *str, unsigned int len)
     return key;
 
   /* Not there yet so add it to a buffer, then into the hash table.  */
-  key = add_string (str, len);
+  key = add_string (str, (sc_buflen_t)len);
   hash_insert_at (&strings, key, slot);
   return key;
 }
@@ -238,7 +238,7 @@ strcache_add (const char *str)
 }
 
 const char *
-strcache_add_len (const char *str, unsigned int len)
+strcache_add_len (const char *str, size_t len)
 {
   /* If we're not given a nul-terminated string we have to create one, because
      the hashing functions expect it.  */
@@ -305,16 +305,16 @@ strcache_print_stats (const char *prefix)
           prefix, numbuffs + 1, fullbuffs, total_strings, total_size,
           (total_size / total_strings));
 
-  printf (_("%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"),
+  printf (_("%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %u B\n"),
           prefix, (sc_buflen_t)BUFSIZE, strcache->end, strcache->count,
-          (strcache->end / strcache->count));
+          (unsigned int) (strcache->end / strcache->count));
 
   if (numbuffs)
     {
       /* Show information about non-current buffers.  */
       unsigned long sz = total_size - strcache->end;
       unsigned long cnt = total_strings - strcache->count;
-      sc_buflen_t avgfree = totfree / numbuffs;
+      sc_buflen_t avgfree = (sc_buflen_t) (totfree / numbuffs);
 
       printf (_("%s other used: total = %lu B / count = %lu / avg = %lu B\n"),
               prefix, sz, cnt, sz / cnt);
index d7d714adee80354066d7c49dc5c79f89b6fc8dd7..11acbdfe1cc84f6e6df6bda761e03c3ff931d7b0 100644 (file)
@@ -50,7 +50,7 @@ static struct pattern_var *last_pattern_vars[256];
 struct pattern_var *
 create_pattern_var (const char *target, const char *suffix)
 {
-  unsigned int len = strlen (target);
+  size_t len = strlen (target);
   struct pattern_var *p = xcalloc (sizeof (struct pattern_var));
 
   if (pattern_vars != 0)
@@ -101,12 +101,12 @@ static struct pattern_var *
 lookup_pattern_var (struct pattern_var *start, const char *target)
 {
   struct pattern_var *p;
-  unsigned int targlen = strlen (target);
+  size_t targlen = strlen (target);
 
   for (p = start ? start->next : pattern_vars; p != 0; p = p->next)
     {
       const char *stem;
-      unsigned int stemlen;
+      size_t stemlen;
 
       if (p->len > targlen)
         /* It can't possibly match.  */
@@ -193,7 +193,7 @@ init_hash_global_variable_set (void)
    that it should be recursively re-expanded.  */
 
 struct variable *
-define_variable_in_set (const char *name, unsigned int length,
+define_variable_in_set (const char *name, size_t length,
                         const char *value, enum variable_origin origin,
                         int recursive, struct variable_set *set,
                         const floc *flocp)
@@ -206,7 +206,7 @@ define_variable_in_set (const char *name, unsigned int length,
     set = &global_variable_set;
 
   var_key.name = (char *) name;
-  var_key.length = length;
+  var_key.length = (unsigned int) length;
   var_slot = (struct variable **) hash_find_slot (&set->table, &var_key);
   v = *var_slot;
 
@@ -269,7 +269,7 @@ define_variable_in_set (const char *name, unsigned int length,
 
   v = xmalloc (sizeof (struct variable));
   v->name = xstrndup (name, length);
-  v->length = length;
+  v->length = (unsigned int) length;
   hash_insert_at (&set->table, v, var_slot);
   if (set == &global_variable_set)
     ++variable_changenum;
@@ -330,7 +330,7 @@ free_variable_set (struct variable_set_list *list)
 }
 
 void
-undefine_variable_in_set (const char *name, unsigned int length,
+undefine_variable_in_set (const char *name, size_t length,
                           enum variable_origin origin,
                           struct variable_set *set)
 {
@@ -342,7 +342,7 @@ undefine_variable_in_set (const char *name, unsigned int length,
     set = &global_variable_set;
 
   var_key.name = (char *) name;
-  var_key.length = length;
+  var_key.length = (unsigned int) length;
   var_slot = (struct variable **) hash_find_slot (&set->table, &var_key);
 
   if (env_overrides && origin == o_env)
@@ -412,8 +412,8 @@ lookup_special_var (struct variable *var)
 
   if (variable_changenum != last_changenum && streq (var->name, ".VARIABLES"))
     {
-      unsigned long max = EXPANSION_INCREMENT (strlen (var->value));
-      unsigned long len;
+      size_t max = EXPANSION_INCREMENT (strlen (var->value));
+      size_t len;
       char *p;
       struct variable **vp = (struct variable **) global_variable_set.table.ht_vec;
       struct variable **end = &vp[global_variable_set.table.ht_size];
@@ -433,7 +433,7 @@ lookup_special_var (struct variable *var)
             len += l + 1;
             if (len > max)
               {
-                unsigned long off = p - var->value;
+                size_t off = p - var->value;
 
                 max += EXPANSION_INCREMENT (l + 1);
                 var->value = xrealloc (var->value, max);
@@ -460,14 +460,14 @@ lookup_special_var (struct variable *var)
    on the variable, or nil if no such variable is defined.  */
 
 struct variable *
-lookup_variable (const char *name, unsigned int length)
+lookup_variable (const char *name, size_t length)
 {
   const struct variable_set_list *setlist;
   struct variable var_key;
   int is_parent = 0;
 
   var_key.name = (char *) name;
-  var_key.length = length;
+  var_key.length = (unsigned int) length;
 
   for (setlist = current_variable_set_list;
        setlist != 0; setlist = setlist->next)
@@ -547,13 +547,13 @@ lookup_variable (const char *name, unsigned int length)
    on the variable, or nil if no such variable is defined.  */
 
 struct variable *
-lookup_variable_in_set (const char *name, unsigned int length,
+lookup_variable_in_set (const char *name, size_t length,
                         const struct variable_set *set)
 {
   struct variable var_key;
 
   var_key.name = (char *) name;
-  var_key.length = length;
+  var_key.length = (unsigned int) length;
 
   return (struct variable *) hash_find_item ((struct hash_table *) &set->table, &var_key);
 }
@@ -1138,7 +1138,7 @@ static char *
 shell_result (const char *p)
 {
   char *buf;
-  unsigned int len;
+  size_t len;
   char *args[2];
   char *result;
 
@@ -1237,7 +1237,7 @@ do_variable_definition (const floc *flocp, const char *varname,
           {
             /* Paste the old and new values together in VALUE.  */
 
-            unsigned int oldlen, vallen;
+            size_t oldlen, vallen;
             const char *val;
             char *tp = NULL;
 
@@ -1567,7 +1567,7 @@ parse_variable_definition (const char *p, struct variable *var)
         return NULL;
     }
 
-  var->length = e - var->name;
+  var->length = (unsigned int) (e - var->name);
   var->value = next_token (p);
   return (char *)p;
 }
@@ -1788,7 +1788,7 @@ print_target_variables (const struct file *file)
 {
   if (file->variables != 0)
     {
-      int l = strlen (file->name);
+      size_t l = strlen (file->name);
       char *t = alloca (l + 3);
 
       strcpy (t, file->name);
index 5b3dffce15c1e97f317406f97b84fffadb23d143..43da96a1efbf4f8ff511632fc55c8ba7b239c0a0 100644 (file)
@@ -53,7 +53,7 @@ struct variable
     char *name;                 /* Variable name.  */
     char *value;                /* Variable value.  */
     floc fileinfo;              /* Where the variable was defined.  */
-    int length;                 /* strlen (name) */
+    unsigned int length;        /* strlen (name) */
     unsigned int recursive:1;   /* Gets recursively re-evaluated.  */
     unsigned int append:1;      /* Nonzero if an appending target-specific
                                    variable.  */
@@ -104,7 +104,7 @@ struct pattern_var
     struct pattern_var *next;
     const char *suffix;
     const char *target;
-    unsigned int len;
+    size_t len;
     struct variable variable;
   };
 
@@ -114,22 +114,26 @@ extern struct variable *default_goal_var;
 extern struct variable shell_var;
 
 /* expand.c */
-char *variable_buffer_output (char *ptr, const char *string, unsigned int length);
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t)~(size_t)0)
+#endif
+
+char *variable_buffer_output (char *ptr, const char *string, size_t length);
 char *variable_expand (const char *line);
 char *variable_expand_for_file (const char *line, struct file *file);
 char *allocated_variable_expand_for_file (const char *line, struct file *file);
 #define allocated_variable_expand(line) \
   allocated_variable_expand_for_file (line, (struct file *) 0)
 char *expand_argument (const char *str, const char *end);
-char *variable_expand_string (char *line, const char *string, long length);
-void install_variable_buffer (char **bufp, unsigned int *lenp);
-void restore_variable_buffer (char *buf, unsigned int len);
+char *variable_expand_string (char *line, const char *string, size_t length);
+void install_variable_buffer (char **bufp, size_t *lenp);
+void restore_variable_buffer (char *buf, size_t len);
 
 /* function.c */
 int handle_function (char **op, const char **stringp);
 int pattern_matches (const char *pattern, const char *percent, const char *str);
 char *subst_expand (char *o, const char *text, const char *subst,
-                    const char *replace, unsigned int slen, unsigned int rlen,
+                    const char *replace, size_t slen, size_t rlen,
                     int by_word);
 char *patsubst_expand_pat (char *o, const char *text, const char *pattern,
                            const char *replace, const char *pattern_percent,
@@ -169,11 +173,11 @@ void hash_init_function_table (void);
 void define_new_function(const floc *flocp, const char *name,
                          unsigned int min, unsigned int max, unsigned int flags,
                          gmk_func_ptr func);
-struct variable *lookup_variable (const char *name, unsigned int length);
-struct variable *lookup_variable_in_set (const char *name, unsigned int length,
+struct variable *lookup_variable (const char *name, size_t length);
+struct variable *lookup_variable_in_set (const char *name, size_t length,
                                          const struct variable_set *set);
 
-struct variable *define_variable_in_set (const char *name, unsigned int length,
+struct variable *define_variable_in_set (const char *name, size_t length,
                                          const char *value,
                                          enum variable_origin origin,
                                          int recursive,
@@ -208,7 +212,7 @@ struct variable *define_variable_in_set (const char *name, unsigned int length,
 #define define_variable_for_file(n,l,v,o,r,f) \
           define_variable_in_set((n),(l),(v),(o),(r),(f)->variables->set,NILF)
 
-void undefine_variable_in_set (const char *name, unsigned int length,
+void undefine_variable_in_set (const char *name, size_t length,
                                enum variable_origin origin,
                                struct variable_set *set);
 
index 3a5932c3f86a8565beffd9b44590563802c975a6..79fbe8db47e63b5f9949b31759d592507ffe0efb 100644 (file)
@@ -26,12 +26,12 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 struct vpath
   {
-    struct vpath *next; /* Pointer to next struct in the linked list.  */
-    const char *pattern;/* The pattern to match.  */
-    const char *percent;/* Pointer into 'pattern' where the '%' is.  */
-    unsigned int patlen;/* Length of the pattern.  */
+    struct vpath *next;      /* Pointer to next struct in the linked list.  */
+    const char *pattern;     /* The pattern to match.  */
+    const char *percent;     /* Pointer into 'pattern' where the '%' is.  */
+    size_t patlen;           /* Length of the pattern.  */
     const char **searchpath; /* Null-terminated list of directories.  */
-    unsigned int maxlen;/* Maximum length of any entry in the list.  */
+    size_t maxlen;           /* Maximum length of any entry in the list.  */
   };
 
 /* Linked-list of all selective VPATHs.  */
@@ -160,7 +160,7 @@ construct_vpath_list (char *pattern, char *dirpath)
   unsigned int elem;
   char *p;
   const char **vpath;
-  unsigned int maxvpath;
+  size_t maxvpath;
   unsigned int maxelem;
   const char *percent = NULL;
 
@@ -229,7 +229,7 @@ construct_vpath_list (char *pattern, char *dirpath)
   while (*p != '\0')
     {
       char *v;
-      unsigned int len;
+      size_t len;
 
       /* Find the end of this entry.  */
       v = p;
@@ -304,7 +304,7 @@ construct_vpath_list (char *pattern, char *dirpath)
    in.  If it is found, return 1.  Otherwise we return 0.  */
 
 int
-gpath_search (const char *file, unsigned int len)
+gpath_search (const char *file, size_t len)
 {
   if (gpaths && (len <= gpaths->maxlen))
     {
@@ -333,9 +333,9 @@ selective_vpath_search (struct vpath *path, const char *file,
   const char *n;
   const char *filename;
   const char **vpath = path->searchpath;
-  unsigned int maxvpath = path->maxlen;
+  size_t maxvpath = path->maxlen;
   unsigned int i;
-  unsigned int flen, name_dplen;
+  size_t flen, name_dplen;
   int exists = 0;
 
   /* Find out if *FILE is a target.
@@ -376,7 +376,7 @@ selective_vpath_search (struct vpath *path, const char *file,
     {
       int exists_in_cache = 0;
       char *p = name;
-      unsigned int vlen = strlen (vpath[i]);
+      size_t vlen = strlen (vpath[i]);
 
       /* Put the next VPATH entry into NAME at P and increment P past it.  */
       memcpy (p, vpath[i], vlen);
index 6803b5069688871bd8fc5e68b99f32e649760085..47cf243b4befafa3b16434dc712840cb0adca2f3 100644 (file)
@@ -30,7 +30,7 @@ opendir(const char* pDirName)
         struct stat sb;
         DIR*    pDir;
         char*   pEndDirName;
-        int     nBufferLen;
+        size_t  nBufferLen;
 
         /* sanity checks */
         if (!pDirName) {
index c8d7796654bce06e52acbf30c5e8264b403f4814..3f30f6eefb050e168206cdfc7c7f2676cdf0d0bf 100644 (file)
@@ -65,7 +65,7 @@ convert_Path_to_windows32(char *Path, char to_delim)
                 /* found one to count, handle things like '.' */
                 *etok = to_delim;
                 p = ++etok;
-            } else if ((*etok == ':') && (etok = strpbrk(etok+1, ":;"))) {
+            } else if ((*etok == ':') && ((etok = strpbrk(etok+1, ":;")) != NULL)) {
                 /* found one to count, handle drive letter */
                 *etok = to_delim;
                 p = ++etok;
index 105832335cad09ff148d4597d5a6b9edfb6957f7..8718876fbb2bdcbb488b409307e301fcf9d79202 100644 (file)
@@ -36,10 +36,10 @@ int _cdecl compare(const void *a1, const void *a2)
         return _stricoll(*((char**)a1),*((char**)a2));
 }
 bool_t
-arr2envblk(char **arr, char **envblk_out, int *envsize_needed)
+arr2envblk(char **arr, char **envblk_out, size_t *envsize_needed)
 {
         char **tmp;
-        int size_needed;
+        size_t size_needed;
         int arrcnt;
         char *ptr;
 
index 149c53118ada1d81cdcb3d4350a9f59d1c6128da..f2a1a7b12f86ee53ac8e9c5ae2efc5078f76f786 100644 (file)
@@ -24,6 +24,6 @@ typedef int bool_t;
 #define E_NO_MEM        103
 #define E_FORK          104
 
-extern bool_t arr2envblk(char **arr, char **envblk_out, int *envsize_needed);
+extern bool_t arr2envblk(char **arr, char **envblk_out, size_t *envsize_needed);
 
 #endif
index ca3ef6f1243a11f893938677d2ac127387f19634..9ff136f4d883d24569371d261d5abb48258c2056 100644 (file)
@@ -66,8 +66,8 @@ typedef struct sub_process_t {
 
 /* keep track of children so we can implement a waitpid-like routine */
 static sub_process *proc_array[GMAKE_MAXIMUM_WAIT_OBJECTS];
-static int proc_index = 0;
-static int fake_exits_pending = 0;
+static unsigned int proc_index = 0;
+static unsigned int fake_exits_pending = 0;
 
 /*
  * Address the scalability limit intrisic to WaitForMultipleOjects by
@@ -98,30 +98,30 @@ DWORD process_wait_for_multiple_objects(
       assert(dwMilliseconds == 0 || dwMilliseconds == INFINITE); /* No support for timeouts */
 
       for (; objectCount > 0; blockCount++) {
-       DWORD n = objectCount <= MAXIMUM_WAIT_OBJECTS ? objectCount : MAXIMUM_WAIT_OBJECTS;
-       objectCount -= n;
-       retVal = WaitForMultipleObjects(n, &lpHandles[blockCount * MAXIMUM_WAIT_OBJECTS],
-                                           FALSE, 0);
-       switch (retVal) {
-         case WAIT_TIMEOUT:
-           retVal = GMAKE_WAIT_TIMEOUT;
-           continue;
-           break;
-         case WAIT_FAILED:
-           fprintf(stderr,"WaitForMultipleOjbects failed waiting with error %d\n", GetLastError());
-           break;
-         default:
-           if (retVal >= WAIT_ABANDONED_0) {
-             assert(retVal < WAIT_ABANDONED_0 + MAXIMUM_WAIT_OBJECTS);
-             retVal += blockCount * MAXIMUM_WAIT_OBJECTS - WAIT_ABANDONED_0 + GMAKE_WAIT_ABANDONED_0;
-           } else {
-             assert(retVal < WAIT_OBJECT_0 + MAXIMUM_WAIT_OBJECTS);
-             retVal += blockCount * MAXIMUM_WAIT_OBJECTS;
-           }
-           break;
-       }
-
-       return retVal;
+        DWORD n = objectCount <= MAXIMUM_WAIT_OBJECTS ? objectCount : MAXIMUM_WAIT_OBJECTS;
+        objectCount -= n;
+        retVal = WaitForMultipleObjects(n, &lpHandles[blockCount * MAXIMUM_WAIT_OBJECTS],
+                                            FALSE, 0);
+        switch (retVal) {
+          case WAIT_TIMEOUT:
+            retVal = GMAKE_WAIT_TIMEOUT;
+            continue;
+            break;
+          case WAIT_FAILED:
+            fprintf(stderr,"WaitForMultipleOjbects failed waiting with error %d\n", GetLastError());
+            break;
+          default:
+            if (retVal >= WAIT_ABANDONED_0) {
+              assert(retVal < WAIT_ABANDONED_0 + MAXIMUM_WAIT_OBJECTS);
+              retVal += blockCount * MAXIMUM_WAIT_OBJECTS - WAIT_ABANDONED_0 + GMAKE_WAIT_ABANDONED_0;
+            } else {
+              assert(retVal < WAIT_OBJECT_0 + MAXIMUM_WAIT_OBJECTS);
+              retVal += blockCount * MAXIMUM_WAIT_OBJECTS;
+            }
+            break;
+        }
+
+        return retVal;
 
       }
 
@@ -139,7 +139,7 @@ DWORD
 process_set_handles(HANDLE *handles)
 {
     DWORD count = 0;
-    int i;
+    unsigned int i;
 
     /* Build array of handles to wait for */
     for (i = 0; i < proc_index; i++) {
@@ -160,7 +160,7 @@ process_set_handles(HANDLE *handles)
 static void
 process_adjust_wait_state(sub_process* pproc)
 {
-        int i;
+        unsigned int i;
 
         if (!proc_index)
                 return;
@@ -186,7 +186,7 @@ process_wait_for_any_private(int block, DWORD* pdwWaitStatus)
 {
         HANDLE handles[GMAKE_MAXIMUM_WAIT_OBJECTS];
         DWORD retval, which;
-        int i;
+        unsigned int i;
 
         if (!proc_index)
                 return NULL;
@@ -578,7 +578,7 @@ process_begin(
         STARTUPINFO startInfo;
         PROCESS_INFORMATION procInfo;
         char *envblk=NULL;
-        int envsize_needed = 0;
+        size_t envsize_needed = 0;
         int pass_null_exec_path = 0;
 
         /*
@@ -615,7 +615,7 @@ process_begin(
                 if (exec_path[0] == '/') {
                         char *new_argv0;
                         char **argvi = argv;
-                        int arglen = 0;
+                        size_t arglen = 0;
 
                         strcpy(buf, variable_expand ("$(SHELL)"));
                         shell_name = &buf[0];
@@ -708,7 +708,8 @@ process_begin(
                     && _stricmp(exec_path, argv[0]) == 0) {
                         char *new_argv, *p;
                         char **argvi;
-                        int arglen, i;
+                        size_t arglen;
+                        int i;
                         pass_null_exec_path = 1;
                         /* Rewrite argv[] replacing argv[0] with exec_fname.  */
                         for (argvi = argv + 1, arglen = strlen(exec_fname) + 1;
@@ -743,7 +744,7 @@ process_begin(
                         if ((pproc->last_err == ERROR_INVALID_PARAMETER
                              || pproc->last_err == ERROR_MORE_DATA)
                             && envsize_needed > 32*1024) {
-                                fprintf (stderr, "CreateProcess failed, probably because environment is too large (%d bytes).\n",
+                                fprintf (stderr, "CreateProcess failed, probably because environment is too large (%Iu bytes).\n",
                                          envsize_needed);
                         }
                         pproc->last_err = 0;
@@ -1196,13 +1197,13 @@ process_cleanup(
 static char *
 make_command_line( char *shell_name, char *full_exec_path, char **argv)
 {
-        int             argc = 0;
-        char**          argvi;
-        int*            enclose_in_quotes = NULL;
-        int*            enclose_in_quotes_i;
-        unsigned int    bytes_required = 0;
-        char*           command_line;
-        char*           command_line_i;
+        int    argc = 0;
+        char** argvi;
+        int*   enclose_in_quotes = NULL;
+        int*   enclose_in_quotes_i;
+        size_t bytes_required = 0;
+        char*  command_line;
+        char*  command_line_i;
         int have_sh = 0; /* HAVE_CYGWIN_SHELL */
         int cygwin_mode = 0; /* HAVE_CYGWIN_SHELL */