static int GetFileExt(char* filename) { char* p; char* n; int ftype; p = file_getext((char *)filename); n = file_getname((char *)filename); if ((!milstr_cmp(p, str_d88)) || (!milstr_cmp(p, str_d98))) { ftype = FTYPE_D88; } else if ((!milstr_cmp(p, str_ini))) { ftype = FTYPE_INI; } else if ((!milstr_cmp(p, str_bmp))) { ftype = FTYPE_BMP; } else if ((!milstr_cmp(p, str_thd))) { ftype = FTYPE_THD; } else if ((!milstr_cmp(p, str_nhd))) { ftype = FTYPE_NHD; } else if ((!milstr_cmp(p, str_hdi))) { ftype = FTYPE_HDI; } else if ((!milstr_cmp(p, str_hdd))) { ftype = FTYPE_HDD; } else if ((!milstr_cmp(p, str_fdi))) { ftype = FTYPE_FDI; } else if ((!milstr_cmp(p, "xdf")) || (!milstr_cmp(p, "dup")) || (!milstr_cmp(p, "hdm"))) { ftype = FTYPE_BETA; } else if ( (!file_cmpname(n, v98fontname)) || (!file_cmpname(n, pc88ankname)) || (!file_cmpname(n, pc88knj1name))|| (!file_cmpname(n, pc88knj2name))|| (!file_cmpname(n, fm7ankname)) || (!file_cmpname(n, fm7knjname)) || (!file_cmpname(n, x1ank1name)) || (!file_cmpname(n, x1ank2name)) || (!file_cmpname(n, x1knjname)) || (!file_cmpname(n, x68kfontname))) { ftype = FTYPE_SMIL; } else { ftype = FTYPE_NONE; } return(ftype); }
static BRESULT fappend(LISTARRAY flist, FLINFO *fli) { FLIST fl; FLIST *st; FLIST cur; fl = (FLIST)listarray_append(flist, NULL); if (fl == NULL) { return(FAILURE); } fl->isdir = (fli->attr & 0x10)?1:0; file_cpyname(fl->name, fli->path, NELEMENTS(fl->name)); st = &filesel.fbase; while(1) { cur = *st; if (cur == NULL) { break; } if (fl->isdir > cur->isdir) { break; } if ((fl->isdir == cur->isdir) && (file_cmpname(fl->name, cur->name) < 0)) { break; } st = &cur->next; } fl->next = *st; *st = fl; return(SUCCESS); }
static void VERMOUTHCL pathadd(MIDIMOD mod, const OEMCHAR *path) { _PATHLIST pl; PATHLIST p; ZeroMemory(&pl, sizeof(pl)); if (path) { pl.path[0] = '\0'; // separator change! file_catname(pl.path, path, NELEMENTS(pl.path)); if (path[0]) { #if defined(SUPPORT_ARC) if (milstr_chr(pl.path, '#') == NULL) #endif file_setseparator(pl.path, NELEMENTS(pl.path)); } } pl.next = mod->pathlist; p = pl.next; while(p) { if (!file_cmpname(p->path, pl.path)) { return; } p = p->next; } p = (PATHLIST)listarray_append(mod->pathtbl, &pl); if (p) { mod->pathlist = p; } }
static void pathadd(MIDIMOD mod, const OEMCHAR *path) { _PATHLIST pl; PATHLIST p; ZeroMemory(&pl, sizeof(pl)); if (path) { pl.path[0] = '\0'; // separator change! file_catname(pl.path, path, NELEMENTS(pl.path)); if (path[0]) { file_setseparator(pl.path, NELEMENTS(pl.path)); } } pl.next = mod->pathlist; p = pl.next; while(p) { if (!file_cmpname(p->path, pl.path)) { return; } p = p->next; } p = (PATHLIST)listarray_append(mod->pathtbl, &pl); if (p) { mod->pathlist = p; } }
static BOOL setflist(WIN32_FIND_DATA *w32fd, FLINFO *fli) { if ((w32fd->dwFileAttributes & FILEATTR_DIRECTORY) && ((!file_cmpname(w32fd->cFileName, ".")) || (!file_cmpname(w32fd->cFileName, "..")))) { return(FAILURE); } fli->caps = FLICAPS_SIZE | FLICAPS_ATTR; fli->size = w32fd->nFileSizeLow; fli->attr = w32fd->dwFileAttributes; if (cnvdatetime(&w32fd->ftLastWriteTime, &fli->date, &fli->time) == SUCCESS) { fli->caps |= FLICAPS_DATE | FLICAPS_TIME; } file_cpyname(fli->path, w32fd->cFileName, sizeof(fli->path)); return(SUCCESS); }
BRESULT sxsicd_open(SXSIDEV sxsi, const OEMCHAR *fname) { const OEMCHAR *ext; ext = file_getext(fname); if (!file_cmpname(ext, str_cue)) { return(opencue(sxsi, fname)); } return(openimg(sxsi, fname, NULL, 0)); }
static BRESULT setflist(WIN32_FIND_DATA *w32fd, FLINFO *fli) { if ((w32fd->dwFileAttributes & FILEATTR_DIRECTORY) && ((!file_cmpname(w32fd->cFileName, ".")) || (!file_cmpname(w32fd->cFileName, "..")))) { return(FAILURE); } fli->caps = FLICAPS_SIZE | FLICAPS_ATTR; fli->size = w32fd->nFileSizeLow; fli->attr = w32fd->dwFileAttributes; if (cnvdatetime(&w32fd->ftLastWriteTime, &fli->date, &fli->time) == SUCCESS) { fli->caps |= FLICAPS_DATE | FLICAPS_TIME; } #if defined(OSLANG_UTF8) codecnv_sjistoutf8(fli->path, sizeof(fli->path), w32fd->cFileName, (UINT)-1); #else file_cpyname(fli->path, w32fd->cFileName, sizeof(fli->path)); #endif return(SUCCESS); }
void dialog_writebmp(HWND hWnd) { SCRNSAVE ss; int type; FSPARAM fp; TCHAR szPath[MAX_PATH]; LPCTSTR pszExt; ss = scrnsave_create(); if (ss == NULL) { return; } type = scrnsave_gettype(ss); fp.lpszTitle = MAKEINTRESOURCE(IDS_BMPTITLE); fp.lpszDefExt = MAKEINTRESOURCE(IDS_BMPEXT); fp.lpszFilter = lpszBmpFilter[type]; fp.nFilterIndex = 1; file_cpyname(szPath, bmpfilefolder, NELEMENTS(szPath)); file_cutname(szPath); file_catname(szPath, szBmpFile, NELEMENTS(szPath)); if (dlgs_createfilenum(hWnd, &fp, szPath, NELEMENTS(szPath))) { file_cpyname(bmpfilefolder, szPath, NELEMENTS(bmpfilefolder)); sysmng_update(SYS_UPDATEOSCFG); pszExt = file_getext(szPath); if ((type <= SCRNSAVE_8BIT) && (!file_cmpname(pszExt, TEXT("gif")))) { scrnsave_writegif(ss, szPath, SCRNSAVE_AUTO); } else if (!file_cmpname(pszExt, str_bmp)) { scrnsave_writebmp(ss, szPath, SCRNSAVE_AUTO); } } scrnsave_destroy(ss); }
static BOOL checkext(OEMCHAR *path, const OEMCHAR *ext) { const OEMCHAR *p; if (ext == NULL) { return(TRUE); } p = file_getext(path); while(*ext) { if (!file_cmpname(p, ext)) { return(TRUE); } ext += OEMSTRLEN(ext) + 1; } return(FALSE); }
BRESULT sxsihdd_open(SXSIDEV sxsi, const OEMCHAR *fname) { FILEH fh; const OEMCHAR *ext; REG8 iftype; long totals; UINT32 headersize; UINT32 surfaces; UINT32 cylinders; UINT32 sectors; UINT32 size; fh = file_open(fname); if (fh == FILEH_INVALID) { goto sxsiope_err1; } ext = file_getext(fname); iftype = sxsi->drv & SXSIDRV_IFMASK; if ((iftype == SXSIDRV_SASI) && (!file_cmpname(ext, str_thd))) { THDHDR thd; // T98 HDD (IDE) if (file_read(fh, &thd, sizeof(thd)) != sizeof(thd)) { goto sxsiope_err2; } headersize = 256; surfaces = 8; cylinders = LOADINTELWORD(thd.cylinders); sectors = 33; size = 256; totals = cylinders * sectors * surfaces; } else if ((iftype == SXSIDRV_SASI) && (!file_cmpname(ext, str_nhd))) { NHDHDR nhd; // T98Next HDD (IDE) if ((file_read(fh, &nhd, sizeof(nhd)) != sizeof(nhd)) || (memcmp(nhd.sig, sig_nhd, 15))) { goto sxsiope_err2; } headersize = LOADINTELDWORD(nhd.headersize); surfaces = LOADINTELWORD(nhd.surfaces); cylinders = LOADINTELDWORD(nhd.cylinders); sectors = LOADINTELWORD(nhd.sectors); size = LOADINTELWORD(nhd.sectorsize); totals = cylinders * sectors * surfaces; } else if ((iftype == SXSIDRV_SASI) && (!file_cmpname(ext, str_hdi))) { HDIHDR hdi; // ANEX86 HDD (SASI) thanx Mamiya if (file_read(fh, &hdi, sizeof(hdi)) != sizeof(hdi)) { goto sxsiope_err2; } headersize = LOADINTELDWORD(hdi.headersize); surfaces = LOADINTELDWORD(hdi.surfaces); cylinders = LOADINTELDWORD(hdi.cylinders); sectors = LOADINTELDWORD(hdi.sectors); size = LOADINTELDWORD(hdi.sectorsize); totals = cylinders * sectors * surfaces; } else if ((iftype == SXSIDRV_SCSI) && (!file_cmpname(ext, str_hdd))) { VHDHDR vhd; // Virtual98 HDD (SCSI) if ((file_read(fh, &vhd, sizeof(vhd)) != sizeof(vhd)) || (memcmp(vhd.sig, sig_vhd, 5))) { goto sxsiope_err2; } headersize = sizeof(vhd); surfaces = vhd.surfaces; cylinders = LOADINTELWORD(vhd.cylinders); sectors = vhd.sectors; size = LOADINTELWORD(vhd.sectorsize); totals = (SINT32)LOADINTELDWORD(vhd.totals); } else { goto sxsiope_err2; } // フォーマット確認〜 if ((surfaces == 0) || (surfaces >= 256) || (cylinders == 0) || (cylinders >= 65536) || (sectors == 0) || (sectors >= 256) || (size == 0) || ((size & (size - 1)) != 0)) { goto sxsiope_err2; } if (iftype == SXSIDRV_SCSI) { if (!(size & 0x700)) { // not 256,512,1024 goto sxsiope_err2; } } sxsi->reopen = hdd_reopen; sxsi->read = hdd_read; sxsi->write = hdd_write; sxsi->format = hdd_format; sxsi->close = hdd_close; sxsi->hdl = (INTPTR)fh; sxsi->totals = totals; sxsi->cylinders = (UINT16)cylinders; sxsi->size = (UINT16)size; sxsi->sectors = (UINT8)sectors; sxsi->surfaces = (UINT8)surfaces; sxsi->headersize = headersize; sxsi->mediatype = gethddtype(sxsi); return(SUCCESS); sxsiope_err2: file_close(fh); sxsiope_err1: return(FAILURE); }
/** * Retrieves the font type of the specified file. * @param[in] fname The name of the font file * @return font type */ static UINT8 fonttypecheck(const OEMCHAR *fname) { const OEMCHAR *p; p = file_getext(fname); if (!file_cmpname(p, str_bmp)) { return(FONTTYPE_PC98); } p = file_getname(fname); if (!file_cmpname(p, v98fontname)) { return(FONTTYPE_V98); } if ((!file_cmpname(p, pc88ankname)) || (!file_cmpname(p, pc88knj1name)) || (!file_cmpname(p, pc88knj2name))) { return(FONTTYPE_PC88); } if ((!file_cmpname(p, fm7ankname)) || (!file_cmpname(p, fm7knjname))) { return(FONTTYPE_FM7); } if ((!file_cmpname(p, x1ank1name)) || (!file_cmpname(p, x1ank2name)) || (!file_cmpname(p, x1knjname))) { return(FONTTYPE_X1); } if (!file_cmpname(p, x68kfontname)) { return(FONTTYPE_X68); } return(FONTTYPE_NONE); }