mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-12-22 14:30:29 +00:00
172 lines
4.0 KiB
C
172 lines
4.0 KiB
C
|
/*
|
||
|
* ftypes.c
|
||
|
*
|
||
|
* data/routines to change an official Apple 3-letter filetype abbrevation
|
||
|
* into a full filetype/auxtype pair (or back, I suppose)
|
||
|
*
|
||
|
* also data/routines to change a language type (as specified in chtyp.1)
|
||
|
* into a filetype/auxtype pair.
|
||
|
*
|
||
|
* $Id: ftypes.c,v 1.1 1997/10/03 05:06:50 gdr Exp $
|
||
|
*/
|
||
|
|
||
|
#include <string.h>
|
||
|
|
||
|
static struct type_list {
|
||
|
char *name;
|
||
|
int file_type;
|
||
|
long aux_type;
|
||
|
} types[] = {
|
||
|
{ "non", 0x00, 0x0000 }, /* common abbrev for $00 */
|
||
|
{ "unk", 0x00, 0x0000 }, /* official abbrev for $00 */
|
||
|
{ "bad", 0x01, 0x0000 },
|
||
|
{ "pcd", 0x02, 0x0000 },
|
||
|
{ "ptx", 0x03, 0x0000 },
|
||
|
{ "txt", 0x04, 0x0000 },
|
||
|
{ "pda", 0x05, 0x0000 },
|
||
|
{ "bin", 0x06, 0x0000 },
|
||
|
{ "fnt", 0x07, 0x0000 },
|
||
|
{ "fot", 0x08, 0x0000 },
|
||
|
{ "ba3", 0x09, 0x0000 },
|
||
|
{ "da3", 0x0a, 0x0000 },
|
||
|
{ "wpf", 0x0b, 0x0000 },
|
||
|
{ "sos", 0x0c, 0x0000 },
|
||
|
{ "dir", 0x0f, 0x0000 },
|
||
|
{ "rpd", 0x10, 0x0000 },
|
||
|
{ "rpi", 0x11, 0x0000 },
|
||
|
{ "afd", 0x12, 0x0000 },
|
||
|
{ "afm", 0x13, 0x0000 },
|
||
|
{ "afr", 0x14, 0x0000 },
|
||
|
{ "scl", 0x15, 0x0000 },
|
||
|
{ "pfs", 0x16, 0x0000 },
|
||
|
{ "adb", 0x19, 0x0000 },
|
||
|
{ "awp", 0x1a, 0x0000 },
|
||
|
{ "asp", 0x1b, 0x0000 },
|
||
|
{ "tdm", 0x20, 0x0000 },
|
||
|
{ "8sc", 0x2a, 0x0000 },
|
||
|
{ "8ob", 0x2b, 0x0000 },
|
||
|
{ "8ic", 0x2c, 0x0000 },
|
||
|
{ "8ld", 0x2d, 0x0000 },
|
||
|
{ "p8c", 0x2e, 0x0000 },
|
||
|
{ "ptp", 0x2e, 0x8001 }, /* Point-to-point drivers */
|
||
|
{ "ftd", 0x42, 0x0000 },
|
||
|
{ "gwp", 0x50, 0x0000 },
|
||
|
{ "gss", 0x51, 0x0000 },
|
||
|
{ "gdb", 0x52, 0x0000 },
|
||
|
{ "drw", 0x53, 0x0000 },
|
||
|
{ "gdp", 0x54, 0x0000 },
|
||
|
{ "hmd", 0x55, 0x0000 },
|
||
|
{ "edu", 0x56, 0x0000 },
|
||
|
{ "stn", 0x57, 0x0000 },
|
||
|
{ "hlp", 0x58, 0x0000 },
|
||
|
{ "com", 0x59, 0x0000 },
|
||
|
{ "cfg", 0x5a, 0x0000 },
|
||
|
{ "anm", 0x5b, 0x0000 },
|
||
|
{ "mum", 0x5c, 0x0000 },
|
||
|
{ "ent", 0x5d, 0x0000 },
|
||
|
{ "dvu", 0x5e, 0x0000 },
|
||
|
{ "bio", 0x6b, 0x0000 },
|
||
|
{ "tdr", 0x6d, 0x0000 },
|
||
|
{ "pre", 0x6e, 0x0000 },
|
||
|
{ "hdv", 0x6f, 0x0000 },
|
||
|
{ "wp", 0xa0, 0x0000 },
|
||
|
{ "gsb", 0xab, 0x0000 },
|
||
|
{ "tdf", 0xac, 0x0000 },
|
||
|
{ "bdf", 0xad, 0x0000 },
|
||
|
{ "src", 0xb0, 0x0000 },
|
||
|
{ "obj", 0xb1, 0x0000 },
|
||
|
{ "lib", 0xb2, 0x0000 },
|
||
|
{ "s16", 0xb3, 0x0000 },
|
||
|
{ "rtl", 0xb4, 0x0000 },
|
||
|
{ "exe", 0xb5, 0x0000 },
|
||
|
{ "pif", 0xb6, 0x0000 },
|
||
|
{ "tif", 0xb7, 0x0000 },
|
||
|
{ "nda", 0xb8, 0x0000 },
|
||
|
{ "cda", 0xb9, 0x0000 },
|
||
|
{ "tol", 0xba, 0x0000 },
|
||
|
{ "dvr", 0xbb, 0x0000 },
|
||
|
{ "ldf", 0xbc, 0x0000 },
|
||
|
{ "fst", 0xbd, 0x0000 },
|
||
|
{ "doc", 0xbf, 0x0000 },
|
||
|
{ "pnt", 0xc0, 0x0000 },
|
||
|
{ "pic", 0xc1, 0x0000 },
|
||
|
{ "ani", 0xc2, 0x0000 },
|
||
|
{ "pal", 0xc3, 0x0000 },
|
||
|
{ "oog", 0xc5, 0x0000 },
|
||
|
{ "scr", 0xc6, 0x0000 },
|
||
|
{ "cdv", 0xc7, 0x0000 },
|
||
|
{ "fon", 0xc8, 0x0000 },
|
||
|
{ "fnd", 0xc9, 0x0000 },
|
||
|
{ "icn", 0xca, 0x0000 },
|
||
|
{ "mus", 0xd5, 0x0000 },
|
||
|
{ "ins", 0xd6, 0x0000 },
|
||
|
{ "mdi", 0xd7, 0x0000 },
|
||
|
{ "snd", 0xd8, 0x0000 },
|
||
|
{ "dbm", 0xdb, 0x0000 },
|
||
|
{ "lbr", 0xe0, 0x0000 },
|
||
|
{ "atk", 0xe2, 0x0000 },
|
||
|
{ "r16", 0xee, 0x0000 },
|
||
|
{ "pas", 0xef, 0x0000 },
|
||
|
{ "cmd", 0xf0, 0x0000 },
|
||
|
{ "os" , 0xf9, 0x0000 },
|
||
|
{ "int", 0xfa, 0x0000 },
|
||
|
{ "ivr", 0xfb, 0x0000 },
|
||
|
{ "bas", 0xfc, 0x0000 },
|
||
|
{ "var", 0xfd, 0x0000 },
|
||
|
{ "rel", 0xfe, 0x0000 },
|
||
|
{ "sys", 0xff, 0x0000 }
|
||
|
};
|
||
|
|
||
|
#define NUM_TYPES 98
|
||
|
|
||
|
static struct lang_list {
|
||
|
char *name;
|
||
|
int file_type;
|
||
|
long aux_type;
|
||
|
} langs[] = {
|
||
|
{ "apwtxt", 0xb0, 0x0001},
|
||
|
{ "asm", 0xb0, 0x0003},
|
||
|
{ "pascal", 0xb0, 0x0005},
|
||
|
{ "exec", 0xb0, 0x0006},
|
||
|
{ "cc", 0xb0, 0x0008},
|
||
|
{ "linker", 0xb0, 0x0009},
|
||
|
{ "apwc", 0xb0, 0x000a},
|
||
|
{ "desktop", 0xb0, 0x000c},
|
||
|
{ "rez", 0xb0, 0x0015},
|
||
|
{ "tmlpascal", 0xb0, 0x001e},
|
||
|
{ "disasm", 0xb0, 0x0115},
|
||
|
{ "sdeasm", 0xb0, 0x0503},
|
||
|
{ "sdecmd", 0xb0, 0x0506},
|
||
|
{ "ps", 0xb0, 0x0719},
|
||
|
};
|
||
|
|
||
|
#define NUM_LANGS 14
|
||
|
|
||
|
int find_type(char *type_str, int *f, long *a)
|
||
|
{
|
||
|
int i;
|
||
|
|
||
|
for(i = 0; i < NUM_TYPES; i++)
|
||
|
if(!stricmp(type_str, types[i].name)) {
|
||
|
*f = types[i].file_type;
|
||
|
*a = types[i].aux_type;
|
||
|
return(0);
|
||
|
}
|
||
|
|
||
|
return(-1);
|
||
|
}
|
||
|
|
||
|
int find_lang(char *lang_str, int *f, long *a)
|
||
|
{
|
||
|
int i;
|
||
|
|
||
|
for(i = 0; i < NUM_LANGS; i++)
|
||
|
if(!stricmp(lang_str, langs[i].name)) {
|
||
|
*f = langs[i].file_type;
|
||
|
*a = langs[i].aux_type;
|
||
|
return(0);
|
||
|
}
|
||
|
|
||
|
return(-1);
|
||
|
}
|