|
|
| version 1.2, 2003/11/16 16:43:45 | version 1.5, 2003/11/18 14:41:52 |
|---|---|
| Line 2 | Line 2 |
| #include <sys/stat.h> | #include <sys/stat.h> |
| #include <time.h> | #include <time.h> |
| #if defined(WIN32) | |
| #include <direct.h> | |
| #endif | |
| #include "codecnv.h" | #include "codecnv.h" |
| #include "dosio.h" | #include "dosio.h" |
| Line 34 dosio_term(void) | Line 31 dosio_term(void) |
| FILEH | FILEH |
| file_open(const char *path) | file_open(const char *path) |
| { | { |
| FILEH fh; | |
| fh = fopen(path, "rb+"); | |
| if (fh) | |
| return fh; | |
| return fopen(path, "rb"); | return fopen(path, "rb"); |
| } | } |
| Line 100 file_attr(const char *path) | Line 101 file_attr(const char *path) |
| if (stat(path, &sb) == 0) { | if (stat(path, &sb) == 0) { |
| if (S_ISDIR(sb.st_mode)) { | if (S_ISDIR(sb.st_mode)) { |
| return(FILEATTR_DIRECTORY); | return FILEATTR_DIRECTORY; |
| } | } |
| attr = 0; | attr = 0; |
| if (!(sb.st_mode & S_IWUSR)) { | if (!(sb.st_mode & S_IWUSR)) { |
| Line 215 file_attr_c(const char *sjis) | Line 216 file_attr_c(const char *sjis) |
| return file_attr_c(curpath); | return file_attr_c(curpath); |
| } | } |
| #if 0 | |
| static int | static int |
| euckanji1st(const char *str, int pos) | euckanji1st(const char *str, int pos) |
| { | { |
| Line 228 euckanji1st(const char *str, int pos) | Line 227 euckanji1st(const char *str, int pos) |
| } | } |
| return ret; | return ret; |
| } | } |
| #endif | |
| void | |
| file_cpyname(char *dst, const char *src, int maxlen) | |
| { | |
| int i; | |
| if (maxlen--) { | |
| for (i = 0; i < maxlen && src[i] != '\0'; i++) { | |
| dst[i] = src[i]; | |
| } | |
| if (i > 0) { | |
| if (euckanji1st(src, i-1)) { | |
| i--; | |
| } | |
| } | |
| dst[i] = '\0'; | |
| } | |
| } | |
| void | void |
| file_catname(char *path, const char *sjis, int maxlen) | file_catname(char *path, const char *sjis, int maxlen) |
| Line 243 file_catname(char *path, const char *sji | Line 259 file_catname(char *path, const char *sji |
| } | } |
| if (maxlen) { | if (maxlen) { |
| codecnv_sjis2euc(path, maxlen, sjis, (UINT)-1); | codecnv_sjis2euc(path, maxlen, sjis, (UINT)-1); |
| for (;;) { | for (; path[0] != '\0'; path++) { |
| if (!ISKANJI(*path)) { | if (!ISKANJI(path[0])) { |
| if (*(path+1) == '\0') { | if (path[1] == '\0') { |
| break; | break; |
| } | } |
| path++; | path++; |
| } else if ((((*path) - 0x41) & 0xff) < 26) { | } else if ((((path[0]) - 0x41) & 0xff) < 26) { |
| *path |= 0x20; | path[0] |= 0x20; |
| } else if (*path == '\\') { | } else if (path[0] == '\\') { |
| *path = '/'; | path[0] = '/'; |
| } else if (*path == '\0') { | |
| break; | |
| } | } |
| path++; | |
| } | } |
| } | } |
| } | } |
| BOOL | |
| file_cmpname(const char *path, const char *sjis) | |
| { | |
| char euc[MAX_PATH]; | |
| codecnv_sjis2euc(euc, sizeof(euc), sjis, (UINT)-1); | |
| return strcmp(path, euc); | |
| } | |
| char * | char * |
| file_getname(char *path) | file_getname(char *path) |
| { | { |