summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@centraldogma>2011-11-04 22:39:43 +0100
committercinap_lenrek <cinap_lenrek@centraldogma>2011-11-04 22:39:43 +0100
commitf21719ea46e6c060cc8fadaffb41b7dfb89be62e (patch)
tree43eb2bbed4bd80a6dd633fbad3d27801df60b31d
parent092930f337275fba85be63a6fbbb34720b9e73fe (diff)
file: recognize .ico and .cur files
-rw-r--r--sys/src/cmd/file.c22
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 */