diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-11-04 22:39:43 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-11-04 22:39:43 +0100 |
commit | f21719ea46e6c060cc8fadaffb41b7dfb89be62e (patch) | |
tree | 43eb2bbed4bd80a6dd633fbad3d27801df60b31d /sys/src/cmd/file.c | |
parent | 092930f337275fba85be63a6fbbb34720b9e73fe (diff) |
file: recognize .ico and .cur files
Diffstat (limited to 'sys/src/cmd/file.c')
-rw-r--r-- | sys/src/cmd/file.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/sys/src/cmd/file.c b/sys/src/cmd/file.c index 0b1f88ee3..5d1547840 100644 --- a/sys/src/cmd/file.c +++ b/sys/src/cmd/file.c @@ -155,6 +155,7 @@ int isp9bit(void); int isp9font(void); int isrtf(void); int ismsdos(void); +int isicocur(void); int iself(void); int istring(void); int isoffstr(void); @@ -192,6 +193,7 @@ int (*call[])(void) = isp9bit, /* plan 9 image (as from /dev/window) */ isrtf, /* rich text format */ ismsdos, /* msdos exe (virus file attachement) */ + isicocur, /* windows icon or cursor file */ isface, /* ascii face file */ /* last resorts */ @@ -871,7 +873,7 @@ struct offstr ulong off; struct FILE_STRING; } offstrs[] = { - 32*1024, "\001CD001\001", "ISO9660 CD image", 7, OCTET, + 32*1024, "\001CD001\001", "ISO9660 CD image", 7, "application/x-iso9660-image", 0, 0, 0, 0, 0 }; @@ -1457,6 +1459,24 @@ ismsdos(void) } int +isicocur(void) +{ + if(buf[0] || buf[1] || buf[3] || buf[9]) + return 0; + if(buf[4] == 0x00 && buf[5] == 0x00) + return 0; + switch(buf[2]){ + case 1: + print(mime ? "image/x-icon\n" : "Microsoft icon file\n"); + return 1; + case 2: + print(mime ? "image/x-icon\n" : "Microsoft cursor file\n"); + return 1; + } + return 0; +} + +int iself(void) { static char *cpu[] = { /* NB: incomplete and arbitary list */ |