summaryrefslogtreecommitdiff
path: root/util.h
diff options
context:
space:
mode:
Diffstat (limited to 'util.h')
-rw-r--r--util.h132
1 files changed, 132 insertions, 0 deletions
diff --git a/util.h b/util.h
new file mode 100644
index 0000000..d49fd5b
--- /dev/null
+++ b/util.h
@@ -0,0 +1,132 @@
+/*
+
+ viDOOM - level editor for DOOM
+
+ Copyright (C) 2000 Ian Cowburn (ianc@noddybox.demon.co.uk)
+
+ 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
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ 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
+
+ -------------------------------------------------------------------------
+
+ Various utility functions
+
+ $Id$
+
+
+*/
+
+#ifndef VIDOOM_UTIL_H
+
+#define VIDOOM_UTIL_H
+
+#include "config.h"
+#include <stdio.h>
+
+/* Returns a static copy of the string, which if it is over n characters long
+ will be trimmed to n-3 character and "..." appended.
+
+ Note this function's return is static, but there can be 10 invocations
+ before the same memory is used (ie. it's safe to use more than once in
+ function calls).
+
+ Note that string longer than a certain length will be trimmed regardless.
+*/
+char *TrimStr(char *p, int n);
+
+
+/* Alters the string so that all occurances of '\r\n' are converted to '\n'.
+ The return is the same pointer passed in p, after the conversion.
+
+ NULL is returned unaltered.
+*/
+char *UnMSDOS(char *p);
+
+
+/* Alters the string so that all occurances of '\n' are converted to '\r\n'.
+ If rel is TRUE, the passed pointer p is released with Release() after
+ conversion.
+
+ The return is a newly allocated copy of the converted string.
+*/
+char *ApplyMSDOS(char *p, int rel);
+
+
+/* Uppercase the supplied string
+*/
+void UCase(char *p);
+
+
+/* Lowercase the supplied string
+*/
+void LCase(char *p);
+
+
+/* Read a byte from a file
+*/
+Byte GetByte(FILE *fp);
+
+
+/* Read a word from a file, and macros to read Short and UShort
+*/
+Word GetWord(FILE *fp);
+
+#define GetShort(fp) ((Short)GetWord(fp))
+#define GetUShort(fp) ((UShort)GetWord(fp))
+
+
+/* Read a long from a file
+*/
+Long GetLong(FILE *fp);
+
+
+/* Put a byte to a file
+*/
+void PutByte(FILE *fp,Byte b);
+
+
+/* Put a short to a file
+*/
+void PutShort(FILE *fp,Short s);
+
+
+/* Put an unsigned short to a file
+*/
+void PutUShort(FILE *fp,UShort s);
+
+
+/* Put a long to a file
+*/
+void PutLong(FILE *fp,Long l);
+
+
+/* A skin over fread(), that does any necessary looping. Returns 'size' on
+ sucess, -1 on failure. size is in bytes.
+*/
+int FRead(FILE *fp, void *buff, int size);
+
+
+/* A skin over fwrite(), that does any necessary looping. Returns 'size' on
+ sucess, -1 on failure. size is in bytes.
+*/
+int FWrite(FILE *fp, void *buff, int size);
+
+
+/* Returns the size of a file. Does this by seeking to end and getting the
+ position. Note that the original position is restored.
+*/
+long FLen(FILE *fp);
+
+
+#endif