xref: /freebsd/contrib/file/magic/Magdir/c-lang (revision 63d1fd5970ec814904aa0f4580b10a0d302d08b2)
1#------------------------------------------------------------------------------
2# $File: c-lang,v 1.24 2016/07/01 23:31:13 christos Exp $
3# c-lang:  file(1) magic for C and related languages programs
4#
5# The strength is to beat standard HTML
6
7# BCPL
80	search/8192	"libhdr"	BCPL source text
9!:mime	text/x-bcpl
100	search/8192	"LIBHDR"	BCPL source text
11!:mime	text/x-bcpl
12
13# C
140	regex	\^#include	C source text
15!:strength +25
16!:mime	text/x-c
170	regex	\^char[\ \t\n]+	C source text
18!:mime	text/x-c
190	regex	\^double[\ \t\n]+		C source text
20!:mime	text/x-c
210	regex	\^extern[\ \t\n]+		C source text
22!:mime	text/x-c
230	regex	\^float[\ \t\n]+		C source text
24!:mime	text/x-c
250	regex	\^struct[\ \t\n]+		C source text
26!:mime	text/x-c
270	regex	\^union[\ \t\n]+		C source text
28!:mime	text/x-c
290	search/8192	main(		C source text
30!:mime	text/x-c
31
32# C++
33# The strength of these rules is increased so they beat the C rules above
340	regex	\^template[\ \t]+<.*>[\ \t\n]+	C++ source text
35!:strength + 30
36!:mime	text/x-c++
370	regex	\^virtual[\ \t\n]+		C++ source text
38!:strength + 30
39!:mime	text/x-c++
400	regex	\^class[\ \t\n]+		C++ source text
41# But class is reduced to avoid beating php (Jens Schleusener)
42!:strength + 13
43!:mime	text/x-c++
440	regex	\^public:		C++ source text
45!:strength + 30
46!:mime	text/x-c++
470	regex	\^private:		C++ source text
48!:strength + 30
49!:mime	text/x-c++
50
51# Objective-C
520	regex	\^#import	Objective-C source text
53!:strength +25
54!:mime	text/x-objective-c
55
56# From: Mikhail Teterin <mi@aldan.algebra.com>
570	string		cscope		cscope reference data
58>7	string		x		version %.2s
59# We skip the path here, because it is often long (so file will
60# truncate it) and mostly redundant.
61# The inverted index functionality was added some time between
62# versions 11 and 15, so look for -q if version is above 14:
63>7	string		>14
64>>10	search/100	\ -q\ 		with inverted index
65>10	search/100	\ -c\ 		text (non-compressed)
66