[comp.lang.c] $include

PAWKA@NOSC-TECR.arpa (11/25/87)

	While looking through some source for a SUN 3/160 running BSD 4.2, I
found the following:

#include <stdio.h>
#include ...
.
.
.
#include <frob.h>
$include <braz.h>

What's with the "$include", we have quite a few of these sprinkled throughout?

			
						Mike
						PAWKA@NOSC-TECR.ARPA

"Use An Accordian - Go To Jail !!"

dave@westmark.UUCP (Dave Levenson) (11/27/87)

In article <10528@brl-adm.ARPA>, PAWKA@NOSC-TECR.arpa writes:

> 	While looking through some source for a SUN 3/160 running BSD 4.2, I
> found the following:
> 
> #include <stdio.h>
> #include ...
> .
> .
> .
> #include <frob.h>
> $include <braz.h>
> 
> What's with the "$include", we have quite a few of these sprinkled throughout?


If you use Informix Embedded SQL/C (structured query language
embedded in C) their pre-processor allows you to mix SQL with C.
Each SQL statement is preceded by $.  You generally include a few
Informix headers with $include statements.  Could you have been
looking at ESQL/C code?

It might look something like:

$include sqlca.h
.
.
.
int get_stock_no(name)
$string name;
{
	$int i;

	$database bar;

	$select stock_number from item_table into $i where
	   item_name = $name;

	$close database;

	return i;
}
-- 
Dave Levenson
Westmark, Inc.		A node for news.
Warren, NJ USA
{rutgers | clyde | mtune | ihnp4}!westmark!dave

koblas@uoregon.UUCP (David Koblas) (11/28/87)

In article <10528@brl-adm.ARPA>, PAWKA@NOSC-TECR.arpa writes:
] 	While looking through some source for a SUN 3/160 running BSD 4.2, I
] found the following:
] 
] #include <stdio.h>
] #include ...
] .
] .
] .
] #include <frob.h>
] $include <braz.h>
] 
] What's with the "$include", we have quite a few of these sprinkled throughout?

One posibility is that the program was written using the UNIFY database,
since they have their own set of 'compilers' (really shell scripts, that
finally invoke the real thing).  If they are $including "file.h" this is
a good indication of what this is otherwise it would be hard to tell. 
Also if it is using functions like 'inscrf', 'acckey', 'ptube', 'pfield',
'makeset', this would be another good indication.


-- 
_______________________________________________________________________________

Name: David Koblas                   Place:     University of Oregon Chemstores
Path: ...!tektronix!uoregon!koblas   Domain: koblas@uoregon.{bitnet,UUCP,csnet}

tim@doug.UUCP (Tim J Ihde) (12/01/87)

In article <10528@brl-adm.ARPA>, PAWKA@NOSC-TECR.arpa writes:
> 	While looking through some source for a SUN 3/160 running BSD 4.2, I
> found the following:
> 
> $include <braz.h>
> 
> What's with the "$include", we have quite a few of these sprinkled throughout?


Some of the more popular database packages use $include in order to insure
sufficient confusion.  Both Informix ESQL and Unify use them.  At least
in the case of Unify, there is no real reason why a #include could not be
used; it seems to me that ESQL has a more valid excuse but its been awhile
since I've used it and I don't remember.  You should be able to tell what
is happening, becuase whatever is processing the $'s must be doing it in
a precompile phase, before cpp kicks in.  Usually you will find that the
Makefile is redefining CC to another program that processes the $includes
and then calls cc (for Unify, you use "CC=ucc").

In any case, I've noticed that the $'s really confuse programs such as
lint or nmake.  Ah well . . .

	tim

PAWKA@NOSC-TECR.arpa (12/03/87)

	Thanx to everyone for the info on UNIFY and it's pre-processing of
$includes.
					Mike