diff options
Diffstat (limited to 'generic')
-rw-r--r-- | generic/Buffer.cpp | 2 | ||||
-rw-r--r-- | generic/Exceptions.cpp | 2 | ||||
-rw-r--r-- | generic/fileutils.cpp | 74 | ||||
-rw-r--r-- | generic/generic.cpp | 56 |
4 files changed, 132 insertions, 2 deletions
diff --git a/generic/Buffer.cpp b/generic/Buffer.cpp index edd70bc..940b0a8 100644 --- a/generic/Buffer.cpp +++ b/generic/Buffer.cpp @@ -1,6 +1,6 @@ #include <string.h> #include "Buffer.h" -#include "General.h" +#include "generic.h" #ifdef HAVE_CONFIG_H #include "config.h" #else diff --git a/generic/Exceptions.cpp b/generic/Exceptions.cpp index b541235..564362e 100644 --- a/generic/Exceptions.cpp +++ b/generic/Exceptions.cpp @@ -5,7 +5,7 @@ #include <stddef.h> #include "String.h" #include "Exceptions.h" -#include "General.h" +#include "generic.h" #ifdef HAVE_CONFIG_H #include "config.h" #else diff --git a/generic/fileutils.cpp b/generic/fileutils.cpp new file mode 100644 index 0000000..b04a414 --- /dev/null +++ b/generic/fileutils.cpp @@ -0,0 +1,74 @@ +/* + * PSX-Tools Bundle Pack + * Copyright (C) 2002 Nicolas "Pixel" Noble + * + * 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 + */ + +#include <string.h> +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <unistd.h> +#include "generic.h" + +unsigned long filesize(int f_iso) +{ + long curpos, length; + + curpos = lseek(f_iso, 0, SEEK_CUR); + length = lseek(f_iso, 0, SEEK_END); + lseek(f_iso, curpos, SEEK_SET); + return length; +} + +void copy(int s, int d, long size) { + long i; + unsigned char c; + long r; + + for (i = 0; (i < size) || (size < 0); i++) { + r = read(s, &c, 1); + if (r == 0) { + break; + } + write(d, &c, 1); + } +} + +unsigned long filesize(FILE * f_iso) +{ + long curpos, length; + + curpos = ftell(f_iso); + fseek(f_iso, 0, SEEK_END); + length = ftell(f_iso); + fseek(f_iso, curpos, SEEK_SET); + return length; +} + +void copy(FILE * s, FILE * d, long size) { + long i; + unsigned char c; + long r; + + for (i = 0; (i < size) || (size < 0); i++) { + r = fread(&c, 1, 1, s); + if (r == 0) { + break; + } + fwrite(&c, 1, 1, d); + } +} diff --git a/generic/generic.cpp b/generic/generic.cpp new file mode 100644 index 0000000..d165d27 --- /dev/null +++ b/generic/generic.cpp @@ -0,0 +1,56 @@ +/* + * PSX-Tools Bundle Pack + * Copyright (C) 2002 Nicolas "Pixel" Noble + * + * 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 + */ + +#include <stdio.h> +#include <stdarg.h> + +char verbosity = 0; + +char * heads[] = {"EE", "--", "WW", "II"}; + +void printm(int level, char * m, ...) { + va_list ap; + + if (verbosity < level) { + return; + } + + if (level >= 0) { + fprintf(stderr, "(%s) ", heads[level]); + } + + va_start(ap, m); + vfprintf(stderr, m, ap); + va_end(ap); +} + +char ** split(char * s, char t) { + static char * p[100]; + int i; + + for (i = 1, p[0] = s; *s; s++) { + if (*s == t) { + *s = 0; + p[i++] = s + 1; + } + } + p[i] = 0; + + return p; +} |