Avoid "definition without prototype" warnings
[pspp] / src / data / por-file-reader.c
index 4fb6c5fb452de7fbf64a00cf3001124594d85d0e..058a0a81c5e12355b2d55f761a5d989819eb7ce0 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -255,7 +255,7 @@ static void read_documents (struct pfm_reader *, struct dictionary *);
 /* Reads the dictionary from file with handle H, and returns it in a
    dictionary structure.  This dictionary may be modified in order to
    rename, reorder, and delete variables, etc. */
-struct any_reader *
+static struct any_reader *
 pfm_open (struct file_handle *fh)
 {
   struct pool *volatile pool = NULL;
@@ -322,7 +322,7 @@ pfm_open (struct file_handle *fh)
   return NULL;
 }
 
-struct casereader *
+static struct casereader *
 pfm_decode (struct any_reader *r_, const char *encoding UNUSED,
             struct dictionary **dictp, struct any_read_info *info)
 {
@@ -922,9 +922,9 @@ por_file_casereader_read (struct casereader *reader, void *r_)
   return c;
 }
 
-/* Returns true if FILE is an SPSS portable file,
-   false otherwise. */
-int
+/* Detects whether FILE is an SPSS portable file.  Returns 1 if so, 0 if not,
+   and a negative errno value if there is an error reading FILE. */
+static int
 pfm_detect (FILE *file)
 {
   unsigned char header[464];
@@ -938,7 +938,7 @@ pfm_detect (FILE *file)
     {
       int c = getc (file);
       if (c == EOF || raw_cnt++ > 512)
-        return 0;
+        return ferror (file) ? -errno : 0;
       else if (c == '\n')
         {
           while (line_len < 80 && cooked_cnt < sizeof header)