The .c File Template
Note:
Substrings of the form "@NAME@" should be replaced by a module-specific string.
/* @THISFILE@:
*
****************************************************************
* Copyright (C) @YEAR@ @NAME@
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
/* Includes
*
* This section should contain exactly (a) those `#include' directives
* needed to make this file compilable plus (b) an include
* directive which includes the `.h' file corresponding to this
* `.c' file.
*
* (Including the `.h' file, while not always strictly necessary,
* helps to ensure that the definitions in this file agree with
* the declarations in that file.)
*
* Consequently, there must always be at least one `#include'
* directive:
*/
#include "@HFILE@"
/* Typedefs
*
* Declare structure, union, and enum tags and file-specific
* `typedef'-s here. Do /not/ declare structure, union, or
* enum types here (only their tags).
*/
/* __STDC__ prototypes for static functions */
/* This section must contain static declarations for all functions
* defined as `static' in this file.
*
* \\/NOTE/\\ This section is often deleted and replaced by
* automatically calculated declarations. It is therefore vital
* that this section contain nothing other than such declarations.
*/
/* Type and Global Declarations
*
* Declare all types declared in this file and define all
* global variables used in this file in this section.
*
* Macros used in more than one function should be defined here
* as well.
*/
/* Code */
/* This section may be expanded into several pages.
*
* Almost always, each page should contain exactly one
* function definition. In exceptional cases, if
* a static one or two line "helper function" is needed by only
* one function in the file, it may be included on the same
* page as that function, after that function's definition.
*
* (The one-function-per-page rule make the file easier
* to navigate using the paging commands found in most editors.
* The rule to put helper functions *after* the function that
* needs them preserves the property that if the cursor is
* located near a page separator character, you can probably see the
* name of the function defined on the page following that
* character.)
*
* All but the most trivial functions must use the standard
* template for `libarch' functions. That template is separate
* from this one which is for the overall structure of a `.c'
* file.
*/
/* arch-tag: @NAME@ @DATE@ (@THISFILE@)
*/
Copyright
Copyright (C) 2004 Tom Lord
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
See the file COPYING for further information about
the copyright and warranty status of this work.