Smartcard related updates
[gnupg.git] / common / xreadline.c
index 85f0af0..4ea10d7 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * GnuPG is distributed in the hope that it will be useful,
@@ -14,8 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
    maximum allowed allocation.  
 
    Returns the length of the line. EOF is indicated by a line of
-   length zero. A truncated line is indicated my setting the value at
+   length zero. A truncated line is indicated by setting the value at
    MAX_LENGTH to 0.  If the returned value is less then 0 not enough
    memory was enable and ERRNO is set accordingly.
 
    If a line has been truncated, the file pointer is moved forward to
-   the end of the line so that the next read start with tghe next
-   line.  Note that MAX_LENGTH must be re-initialzied in this case..
+   the end of the line so that the next read starts with the next
+   line.  Note that MAX_LENGTH must be re-initialzied in this case.
 
    Note: The returned buffer is allocated with enough extra space to
    append a CR,LF,Nul
@@ -96,8 +95,10 @@ read_line (FILE *fp,
             {
               int save_errno = errno;
               xfree (buffer); 
-              *length_of_buffer = *max_length = 0;
-              errno = save_errno;
+              *length_of_buffer = 0;
+              if (max_length)
+                *max_length = 0;
+              gpg_err_set_errno (save_errno);
               return -1;
             }
           buffer = *addr_of_buffer;