c-lang revision 299236
1#------------------------------------------------------------------------------
2# $File: c-lang,v 1.20 2015/07/27 14:33:10 christos Exp $
3# c-lang:  file(1) magic for C and related languages programs
4#
5
6# BCPL
70	search/8192	"libhdr"	BCPL source text
8!:mime	text/x-bcpl
90	search/8192	"LIBHDR"	BCPL source text
10!:mime	text/x-bcpl
11
12# C
130	regex	\^#include	C source text
14!:mime	text/x-c
150	regex	\^char[\ \t\n]+	C source text
16!:mime	text/x-c
170	regex	\^double[\ \t\n]+		C source text
18!:mime	text/x-c
190	regex	\^extern[\ \t\n]+		C source text
20!:mime	text/x-c
210	regex	\^float[\ \t\n]+		C source text
22!:mime	text/x-c
230	regex	\^struct[\ \t\n]+		C source text
24!:mime	text/x-c
250	regex	\^union[\ \t\n]+		C source text
26!:mime	text/x-c
270	search/8192	main(		C source text
28!:mime	text/x-c
29
30# C++
31# The strength of these rules is increased so they beat the C rules above
320	regex	\^template[\ \t]+<.*>[\ \t\n]+	C++ source text
33!:strength + 5
34!:mime	text/x-c++
350	regex	\^virtual[\ \t\n]+		C++ source text
36!:strength + 5
37!:mime	text/x-c++
380	regex	\^class[\ \t\n]+		C++ source text
39!:strength + 5
40!:mime	text/x-c++
410	regex	\^public:		C++ source text
42!:strength + 5
43!:mime	text/x-c++
440	regex	\^private:		C++ source text
45!:strength + 5
46!:mime	text/x-c++
47
48# From: Mikhail Teterin <mi@aldan.algebra.com> 
490	string		cscope		cscope reference data
50>7	string		x		version %.2s
51# We skip the path here, because it is often long (so file will
52# truncate it) and mostly redundant.
53# The inverted index functionality was added some time between
54# versions 11 and 15, so look for -q if version is above 14:
55>7	string		>14
56>>10	search/100	\ -q\ 		with inverted index
57>10	search/100	\ -c\ 		text (non-compressed)
58