*** gnulib/lib/error.h	2005-05-14 08:03:58.000000000 +0200
--- srclib/error.h	2005-05-20 23:06:02.000000000 +0200
***************
*** 50,63 ****
  /* If NULL, error will flush stdout, then print on stderr the program
     name, a colon and a space.  Otherwise, error will call this
     function without parameters instead.  */
! extern void (*error_print_progname) (void);
  
  /* This variable is incremented each time 'error' is called.  */
! extern unsigned int error_message_count;
  
  /* Sometimes we want to have at most one error per line.  This
     variable controls whether this mode is selected or not.  */
! extern int error_one_per_line;
  
  #ifdef	__cplusplus
  }
--- 50,63 ----
  /* If NULL, error will flush stdout, then print on stderr the program
     name, a colon and a space.  Otherwise, error will call this
     function without parameters instead.  */
! extern DLL_VARIABLE void (*error_print_progname) (void);
  
  /* This variable is incremented each time 'error' is called.  */
! extern DLL_VARIABLE unsigned int error_message_count;
  
  /* Sometimes we want to have at most one error per line.  This
     variable controls whether this mode is selected or not.  */
! extern DLL_VARIABLE int error_one_per_line;
  
  #ifdef	__cplusplus
  }
