diff options
author | Jens Arnold <amiconn@rockbox.org> | 2007-05-19 19:13:56 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2007-05-19 19:13:56 +0000 |
commit | 52986fb79ea70f09fff8000d13dc56b8e1e237d4 (patch) | |
tree | d78254d88cb558bc8b5a1826d3b4c367c2d44578 /apps/plugins/zxbox/zxmisc.c | |
parent | a352c62ad0cb16eaae104b713c89b21491e3706a (diff) | |
download | rockbox-52986fb79ea70f09fff8000d13dc56b8e1e237d4.tar.gz rockbox-52986fb79ea70f09fff8000d13dc56b8e1e237d4.zip |
Fix name collision on misc.h between zxbox and core.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13420 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/zxbox/zxmisc.c')
-rw-r--r-- | apps/plugins/zxbox/zxmisc.c | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/apps/plugins/zxbox/zxmisc.c b/apps/plugins/zxbox/zxmisc.c new file mode 100644 index 0000000000..df147be7bf --- /dev/null +++ b/apps/plugins/zxbox/zxmisc.c @@ -0,0 +1,139 @@ +/* + * Copyright (C) 1996-1998 Szeredi Miklos + * Email: mszeredi@inf.bme.hu + * + * 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. See the file COPYING. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "zxmisc.h" +#include "zxconfig.h" +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <ctype.h> +#include "helpers.h" +#include "zxconfig.h" +#define DIR_SEP_CHAR '/' + +char *get_base_name(char *fname) +{ + char *p; + + p = fname; + for(; *p; p++); + for(; p >= fname && *p != DIR_SEP_CHAR; p--); + return ++p; +} + + +int check_ext(const char *filename, const char *ext) +{ + int flen, elen; + int i; + + flen = (int) rb->strlen(filename); + elen = (int) rb->strlen(ext); + + if(flen <= elen + 1) return 0; + + if(filename[flen-elen-1] != '.') return 0; + for(i = 0; i < elen; i++) if(filename[flen-elen+i] != toupper(ext[i])) break; + if(i == elen) return 1; + for(i = 0; i < elen; i++) if(filename[flen-elen+i] != tolower(ext[i])) break; + if(i == elen) return 1; + return 0; +} + +void add_extension(char *filename, const char *ext) +{ + int i; + int upper; + + i = (int) rb->strlen(filename); + if(filename[i] > 64 && filename[i] < 96) upper = 1; + else upper = 0; + + filename[i++] = '.'; + if(upper) + for(; *ext; i++, ext++) filename[i] = toupper(*ext); + else + for(; *ext; i++, ext++) filename[i] = tolower(*ext); +} + +int file_exist(const char *filename) +{ + /*FILE *fp;*/ + int fd; + + fd = rb->open(filename, O_RDONLY); + if(fd != NULL) { + rb->close(fd); + return 1; + } + else return 0; +/* if(errno == ENOENT) return 0; + return 1;*/ +} + +int try_extension(char *filename, const char *ext) +{ + int tend; + + tend = (int) rb->strlen(filename); + add_extension(filename, ext); + if(file_exist(filename)) return 1; + + filename[tend] = '\0'; + return 0; +} + +void *malloc_err(size_t size) +{ + char *p; + + p = (char *) my_malloc(size); + if(p == NULL) { + // fprintf(stderr, "Out of memory!\n"); + /*exit(1);*/ + } + return (void *) p; +} + +char *make_string(char *ostr, const char *nstr) +{ + if(ostr != NULL) /*free(ostr)*/ostr=0; + ostr = malloc_err(rb->strlen(nstr) + 1); + rb->strcpy(ostr, nstr); + return ostr; +} + +void free_string(char *ostr) +{ + if(ostr != NULL) /*free(ostr)*/ostr=0; +} + +int mis_strcasecmp(const char *s1, const char *s2) +{ + int c1, c2; + + for(;; s1++, s2++) { + c1 = tolower(*s1); + c2 = tolower(*s2); + + if(!c1 || c1 != c2) break; + } + return c1-c2; +} |