file(1): recognise unified diff output

This commit is contained in:
Alex Musolino 2019-06-08 15:56:03 +09:30
parent 78c7cd0c01
commit 26dc73c763

View file

@ -167,6 +167,7 @@ int longoff(void);
int istar(void);
int isface(void);
int isexec(void);
int isudiff(void);
int p9bitnum(char*, int*);
int p9subfont(uchar*);
void print_utf(void);
@ -183,6 +184,7 @@ int (*call[])(void) =
iff, /* interchange file format (strings) */
longoff, /* recognizable by 4 bytes at some offset */
isoffstr, /* recognizable by string at some offset */
isudiff, /* unified diff output */
isrfc822, /* email file */
ismbox, /* mail box */
istar, /* recognizable by tar checksum */
@ -982,6 +984,25 @@ char* html_string[] = {
0,
};
int
isudiff(void)
{
char *p;
p = (char*)buf;
if((p = strstr(p, "diff")) != nil)
if((p = strchr(p, '\n')) != nil)
if(strncmp(++p, "--- ", 4) == 0)
if((p = strchr(p, '\n')) != nil)
if(strncmp(++p, "+++ ", 4) == 0)
if((p = strchr(p, '\n')) != nil)
if(strncmp(++p, "@@ ", 3) == 0){
print("%s\n", mime ? "text/plain" : "unified diff output");
return 1;
}
return 0;
}
int
ishtml(void)
{