ref: ba91abba1f8ce3746bb9aa7a92298e518a7fe75d
parent: 6628909e8fadac1de99da3a664d3b2a91c0902a2
author: cinap_lenrek <cinap_lenrek@centraldogma>
date: Fri Nov 4 18:39:43 EDT 2011
file: recognize .ico and .cur files
--- a/sys/src/cmd/file.c
+++ b/sys/src/cmd/file.c
@@ -155,6 +155,7 @@
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 @@
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 @@
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
};
@@ -1451,6 +1453,24 @@
{ if (buf[0] == 0x4d && buf[1] == 0x5a){print(mime ? "application/x-msdownload\n" : "MSDOS executable\n");
+ return 1;
+ }
+ return 0;
+}
+
+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;
--
⑨