diff options
-rw-r--r-- | generic/Output.cpp | 2 | ||||
-rw-r--r-- | includes/fileutils.h | 42 | ||||
-rw-r--r-- | includes/generic.h | 2 | ||||
-rw-r--r-- | lib/cdreader.cpp | 60 |
4 files changed, 32 insertions, 74 deletions
diff --git a/generic/Output.cpp b/generic/Output.cpp index 1d7981e..55ab158 100644 --- a/generic/Output.cpp +++ b/generic/Output.cpp @@ -15,7 +15,7 @@ Output::Output(String no, int create, int trunc) throw (GeneralException) : Handle(no.strlen() ? open(no.to_charp(), O_WRONLY | (O_CREAT * (create ? 1 : 0)) | (trunc ? O_TRUNC : O_APPEND) -#ifdef __linux__ +#if defined __linux__ || defined __CYGWIN32__ , 00666 #endif ) : dup(1)), diff --git a/includes/fileutils.h b/includes/fileutils.h deleted file mode 100644 index a552477..0000000 --- a/includes/fileutils.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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 - */ - -#ifndef __FILEUTILS_H__ -#define __FILEUTILS_H__ - -#include <stdio.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <fcntl.h> - -unsigned long filesize(int f_iso); -void copy(int s, int d, long size = -1); - -unsigned long filesize(FILE * f_iso); -void copy(FILE * s, FILE * d, long size = -1); - -#if defined __linux__ || defined __CYGWIN32__ -#define MKDIR(name) mkdir(name, 0777) -#elif defined __MINGW32_VERSION -#define MKDIR mkdir -#else -#error Unknow compiler/platform -#endif - -#endif diff --git a/includes/generic.h b/includes/generic.h index 5586953..168c9d3 100644 --- a/includes/generic.h +++ b/includes/generic.h @@ -117,7 +117,7 @@ inline T MIN(T a, T b) { #if defined __linux__ || defined __CYGWIN32__ #define MKDIR(name) mkdir(name, 0777) -#elif defined __MINGW32_VERSION +#elif defined __WIN32__ #define MKDIR mkdir #else #error Unknow compiler/platform diff --git a/lib/cdreader.cpp b/lib/cdreader.cpp index cdb2671..59c8127 100644 --- a/lib/cdreader.cpp +++ b/lib/cdreader.cpp @@ -14,32 +14,6 @@ #define _(x) x #endif -#ifdef __linux__ -#include <sys/ioctl.h> -#include <linux/cdrom.h> - -cdreader::cdreader(const String & no) throw (GeneralException) : - Handle(open(no.to_charp(), O_RDONLY)), n(no), sector(0) { - -#ifdef DEBUG - fprintf(stderr, "Opening file %s, cdreader at %p\n", no.to_charp(), this); -#endif - - if (GetHandle() < 0) { - throw IOGeneral(String(_("Error opening file ")) + no + _(" for reading: ") + strerror(errno)); - } - - struct stat s; - fstat(GetHandle(), &s); - - if (!S_ISBLK(s.st_mode)) { - throw GeneralException(no + " is not a block device."); - } -} - -cdreader::cdreader(const cdreader & i) : Handle(i), n(i.n) { -} - bool cdreader::CanWrite() { return 0; } @@ -94,6 +68,36 @@ ssize_t cdreader::read(void *buf, size_t count) throw (GeneralException) { return r; } +void cdreader::sectorseek(int sec) { + sector = sec; +} + +#ifdef __linux__ +#include <sys/ioctl.h> +#include <linux/cdrom.h> + +cdreader::cdreader(const String & no) throw (GeneralException) : + Handle(open(no.to_charp(), O_RDONLY)), n(no), sector(0) { + +#ifdef DEBUG + fprintf(stderr, "Opening file %s, cdreader at %p\n", no.to_charp(), this); +#endif + + if (GetHandle() < 0) { + throw IOGeneral(String(_("Error opening file ")) + no + _(" for reading: ") + strerror(errno)); + } + + struct stat s; + fstat(GetHandle(), &s); + + if (!S_ISBLK(s.st_mode)) { + throw GeneralException(no + " is not a block device."); + } +} + +cdreader::cdreader(const cdreader & i) : Handle(i), n(i.n) { +} + void cdreader::getsector(void *buf, int sec) throw (GeneralException) { struct cdrom_msf * msf = (struct cdrom_msf *) buf; if (sec >= 0) @@ -117,8 +121,4 @@ void cdreader::getsector(void *buf, int sec) throw (GeneralException) { sector++; } -void cdreader::sectorseek(int sec) { - sector = sec; -} - #endif |