xref: /freebsd/contrib/file/magic/Magdir/c-lang (revision 09a53ad8f1318c5daae6cfb19d97f4f6459f0013)
1#------------------------------------------------------------------------------
2# $File: c-lang,v 1.23 2016/05/21 14:28:27 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# From: Mikhail Teterin <mi@aldan.algebra.com>
520	string		cscope		cscope reference data
53>7	string		x		version %.2s
54# We skip the path here, because it is often long (so file will
55# truncate it) and mostly redundant.
56# The inverted index functionality was added some time between
57# versions 11 and 15, so look for -q if version is above 14:
58>7	string		>14
59>>10	search/100	\ -q\ 		with inverted index
60>10	search/100	\ -c\ 		text (non-compressed)
61