]> git.sur5r.net Git - openocd/blobdiff - src/helper/fileio.c
- only some cosmetic changes, convert \r\n to unix
[openocd] / src / helper / fileio.c
index 742bc6892c3c81912e3c2479a8f01e2bc5a23772..3ee0b18bc6651f6d58abc7e3b479ca2c0319dd83 100644 (file)
@@ -284,6 +284,29 @@ int fileio_read_u32(fileio_t *fileio, u32 *data)
        return ERROR_OK;
 }
 
+int fileio_local_fgets(fileio_t *fileio, u32 size, u8 *buffer)
+{
+       fileio_local_t *fileio_local = fileio->location_private;
+       
+       if( fgets(buffer, size, fileio_local->file) == NULL)
+               return ERROR_FILEIO_OPERATION_FAILED;
+       
+       return ERROR_OK;
+}
+
+int fileio_fgets(fileio_t *fileio, u32 size, u8 *buffer)
+{
+       switch (fileio->location)
+       {
+               case FILEIO_LOCAL:
+                       return fileio_local_fgets(fileio, size, buffer);
+                       break;
+               default:
+                       ERROR("BUG: should never get here");
+                       exit(-1);
+       }
+}
+
 int fileio_local_write(fileio_t *fileio, u32 size, u8 *buffer, u32 *size_written)
 {
        fileio_local_t *fileio_local = fileio->location_private;
@@ -295,16 +318,22 @@ int fileio_local_write(fileio_t *fileio, u32 size, u8 *buffer, u32 *size_written
 
 int fileio_write(fileio_t *fileio, u32 size, u8 *buffer, u32 *size_written)
 {
+       int retval;
+       
        switch (fileio->location)
        {
                case FILEIO_LOCAL:
-                       return fileio_local_write(fileio, size, buffer, size_written);
+                       retval = fileio_local_write(fileio, size, buffer, size_written);
                        break;
                default:
                        ERROR("BUG: should never get here");
+                       exit(-1);
        }
        
-       return ERROR_OK;
+       if (retval == ERROR_OK)
+               fileio->size += *size_written;
+       
+       return retval;;
 }
 
 int fileio_write_u32(fileio_t *fileio, u32 data)