diff file.c @ 3:94c885692eb5

Partial set of fixes and enhancements from Linux box
author Mike Pavone <pavone@retrodev.com>
date Wed, 29 Apr 2009 03:21:23 -0400
parents 76568becd6d6
children 20d40cb8abf3
line wrap: on
line diff
--- a/file.c	Wed Apr 29 02:58:03 2009 -0400
+++ b/file.c	Wed Apr 29 03:21:23 2009 -0400
@@ -541,3 +541,25 @@
 	inputlist[0]->c.integers.num_a = size;
 	return 0;
 }
+
+int vis_file_truncate(datum ** inputlist, queue_entry * worker_entry)
+{
+	file_data * file;
+	inputlist[0] = copy_datum(inputlist[0], 0);
+	file = inputlist[0]->c.generic.data;
+	VIS_EnterCriticalSection(file->shared->lock);
+		switch(file->shared->status)
+		{
+			case FILE_READ:
+			case FILE_WRITE:
+				fclose(file->shared->file);
+			default:
+				break;
+		}
+		file->shared->file = fopen(file->shared->name,"wb");
+		file->shared->size = 0;
+		file->shared->status = FILE_WRITE;
+	VIS_LeaveCriticalSection(file->shared->lock);
+	file->offset = 0;
+	return 0;
+}