This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
libcdl clean-up
- From: Bart Veer <bartv at ecoscentric dot com>
- To: ecos-patches at sourceware dot org
- Date: Thu, 14 Aug 2008 22:31:20 +0100
- Subject: libcdl clean-up
This patch fixes a bunch of compiler warnings when building libcdl and
a documentation typo. Most of the warnings relate to g++ now
preferring const char* for static strings.
Bart
2008-08-14 Bart Veer <bartv@ecoscentric.com>
* doc/reference.sgml: fix typo.
* wizard.cxx, value.cxx, parse.cxx, package.cxx, option.cxx,
interp.cxx, interface.cxx, dialog.cxx, database.cxx, conflict.cxx,
config.cxx, component.cxx, cdlmisc.cxx, cdlcore.hxx, cdl.hxx,
build.cxx: fix various compiler warnings.
Index: build.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/build.cxx,v
retrieving revision 1.9
diff -u -p -r1.9 build.cxx
--- build.cxx 26 Mar 2003 17:57:58 -0000 1.9
+++ build.cxx 14 Aug 2008 21:20:13 -0000
@@ -48,6 +48,8 @@
// ----------------------------------------------------------------------------
#include "cdlconfig.h"
+#include <cstring>
+
// Get the infrastructure types, assertions, tracing and similar
// facilities.
#include <cyg/infra/cyg_ass.h>
@@ -212,7 +214,7 @@ int
CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const char* argv[])
{
CYG_REPORT_FUNCNAMETYPE("parse_compile", "result %d");
- static char* options[] = {
+ static const char* options[] = {
"library:",
0
};
@@ -391,7 +393,7 @@ int
CdlBuildableBody::parse_make(CdlInterpreter interp, int argc, const char* argv[])
{
CYG_REPORT_FUNCNAMETYPE("parse_make", "result %d");
- static char* options[] = {
+ static const char* options[] = {
"priority:",
0
};
@@ -445,7 +447,7 @@ int
CdlBuildableBody::parse_make_object(CdlInterpreter interp, int argc, const char* argv[])
{
CYG_REPORT_FUNCNAMETYPE("parse_make_object", "result %d");
- static char* options[] = {
+ static const char* options[] = {
"library:",
"priority:",
0
@@ -466,7 +468,7 @@ int
CdlBuildableBody::parse_object(CdlInterpreter interp, int argc, const char* argv[])
{
CYG_REPORT_FUNCNAMETYPE("parse_object", "result %d");
- static char* options[] = {
+ static const char* options[] = {
"library:",
0
};
@@ -702,11 +704,11 @@ CdlBuildableBody::update_all_build_info(
// ----------------------------------------------------------------------------
// This variable controls the default library that should be generated.
// Some applications may wish to override this.
-char* CdlBuildLoadableBody::default_library_name = "libtarget.a";
+const char* CdlBuildLoadableBody::default_library_name = "libtarget.a";
// The pattern that should be used to identify header files.
// FIXME: this information should come out of a data file
-char* CdlBuildLoadableBody::default_headers_glob_pattern = "*.h *.hxx *.inl *.si *.inc";
+const char* CdlBuildLoadableBody::default_headers_glob_pattern = "*.h *.hxx *.inl *.si *.inc";
//}}}
//{{{ The simple stuff
@@ -1424,7 +1426,7 @@ CdlDefinableBody::parse_define(CdlInterp
{
CYG_REPORT_FUNCNAMETYPE("parse_define", "result %d");
- static char* options[] = {
+ static const char* options[] = {
"file:",
"format:",
0
@@ -1507,7 +1509,7 @@ CdlDefinableBody::parse_if_define(CdlInt
{
CYG_REPORT_FUNCNAMETYPE("parse_if_define", "result %d");
- char* options[] = {
+ const char* options[] = {
"file:",
0
};
Index: cdl.hxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/cdl.hxx,v
retrieving revision 1.6
diff -u -p -r1.6 cdl.hxx
--- cdl.hxx 26 Mar 2003 17:57:58 -0000 1.6
+++ cdl.hxx 14 Aug 2008 21:21:39 -0000
@@ -216,7 +216,7 @@ class CdlPackagesDatabaseBody {
// This allows test cases to overwrite the name of the file
// containing the database information.
- static char* database_name;
+ static const char* database_name;
// Control whether or not minor problems with the database should be
// reported.
Index: cdlcore.hxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/cdlcore.hxx,v
retrieving revision 1.10
diff -u -p -r1.10 cdlcore.hxx
--- cdlcore.hxx 26 Mar 2003 17:57:58 -0000 1.10
+++ cdlcore.hxx 14 Aug 2008 21:22:12 -0000
@@ -1341,7 +1341,7 @@ class CdlInterpreterBody
static int tcl_command_proc(ClientData, Tcl_Interp*, int, const char*[]);
// This key is used to access the CdlInterpreter assoc data.
- static char* cdlinterpreter_assoc_data_key;
+ static const char* cdlinterpreter_assoc_data_key;
// Do not allow static instances of a Cdl interpreter. There are too
// many possible failure conditions. Cdl interpreters can only be
@@ -3326,7 +3326,7 @@ class CdlParse {
// Utility routines.
static std::string get_tcl_cmd_name(std::string);
static std::string concatenate_argv(int, const char*[], int);
- static int parse_options(CdlInterpreter, std::string /* diag_prefix */, char** /* options */,
+ static int parse_options(CdlInterpreter, std::string /* diag_prefix */, const char** /* options */,
int /* argc */, const char*[] /* argv */, int /* start_index */,
std::vector<std::pair<std::string,std::string> >& /* result */);
static std::string construct_diagnostic(CdlInterpreter, std::string /* classification */,
@@ -3351,26 +3351,26 @@ class CdlParse {
// Utility parsing routines
static int parse_minimal_property(CdlInterpreter, int, const char*[], std::string,
- char**, void (*)(CdlInterpreter, CdlProperty_Minimal));
+ const char**, void (*)(CdlInterpreter, CdlProperty_Minimal));
static int parse_string_property(CdlInterpreter, int, const char*[], std::string,
- char**, void (*)(CdlInterpreter, CdlProperty_String));
+ const char**, void (*)(CdlInterpreter, CdlProperty_String));
static int parse_tclcode_property(CdlInterpreter, int, const char*[], std::string,
- char**, void (*)(CdlInterpreter, CdlProperty_TclCode));
+ const char**, void (*)(CdlInterpreter, CdlProperty_TclCode));
static int parse_stringvector_property(CdlInterpreter, int, const char*[], std::string,
- char**, void (*)(CdlInterpreter, CdlProperty_StringVector),
+ const char**, void (*)(CdlInterpreter, CdlProperty_StringVector),
bool /* allow_empty */ = false);
static int parse_reference_property(CdlInterpreter, int, const char*[], std::string,
- char**, void (*)(CdlInterpreter, CdlProperty_Reference),
+ const char**, void (*)(CdlInterpreter, CdlProperty_Reference),
bool /* allow_empty */,
CdlUpdateHandler);
static int parse_expression_property(CdlInterpreter, int, const char*[], std::string,
- char **, void (*)(CdlInterpreter, CdlProperty_Expression),
+ const char **, void (*)(CdlInterpreter, CdlProperty_Expression),
CdlUpdateHandler);
static int parse_listexpression_property(CdlInterpreter, int, const char*[], std::string,
- char **, void (*)(CdlInterpreter, CdlProperty_ListExpression),
+ const char **, void (*)(CdlInterpreter, CdlProperty_ListExpression),
CdlUpdateHandler);
static int parse_goalexpression_property(CdlInterpreter, int, const char*[], std::string,
- char **, void (*)(CdlInterpreter, CdlProperty_GoalExpression),
+ const char **, void (*)(CdlInterpreter, CdlProperty_GoalExpression),
CdlUpdateHandler);
};
@@ -4276,7 +4276,7 @@ class CdlValuableBody : virtual public C
static void wizard_update_handler(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
// Persistence suppot
- void save(CdlInterpreter, Tcl_Channel, int, bool /* modifiable */, bool /* minimal */);
+ void save_valuable(CdlInterpreter, Tcl_Channel, int, bool /* modifiable */, bool /* minimal */);
bool value_savefile_entry_needed() const;
static void initialize_savefile_support(CdlToplevel, std::string);
static int savefile_value_source_command(CdlInterpreter, int, const char*[]);
@@ -5395,12 +5395,12 @@ class CdlBuildLoadableBody : virtual pub
// By default any compiled files will go into libtarget.a, which
// is the default value for this variable. Individual applications may
// specify an alternative default library.
- static char* default_library_name;
+ static const char* default_library_name;
// When filling in a build_info structure the library needs to know
// what constitutes a header file. A glob pattern can be used for this.
// NOTE: in the long term this should come out of a data file.
- static char* default_headers_glob_pattern;
+ static const char* default_headers_glob_pattern;
virtual std::string get_class_name() const;
bool check_this(cyg_assert_class_zeal = cyg_quick) const;
Index: cdlmisc.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/cdlmisc.cxx,v
retrieving revision 1.3
diff -u -p -r1.3 cdlmisc.cxx
--- cdlmisc.cxx 23 Jun 2000 17:06:31 -0000 1.3
+++ cdlmisc.cxx 14 Aug 2008 21:22:49 -0000
@@ -67,6 +67,9 @@
// For access to strtod()
#include <cstdlib>
+// For strcpy()
+#include <cstring>
+
// strtod() involves errno...
#include <cerrno>
@@ -661,7 +664,7 @@ Cdl::double_to_integer(double value, cdl
// Conversions between strings and flavors.
static struct {
- char* name;
+ const char* name;
CdlValueFlavor flavor;
} valid_flavors[] = {
{ "none", CdlValueFlavor_None },
@@ -735,7 +738,7 @@ Cdl::flavor_to_string(CdlValueFlavor fla
// Similar support for value sources.
static struct {
- char* name;
+ const char* name;
CdlValueSource source;
} valid_sources[] = {
{ "default", CdlValueSource_Default },
Index: component.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/component.cxx,v
retrieving revision 1.4
diff -u -p -r1.4 component.cxx
--- component.cxx 21 Sep 2002 22:05:09 -0000 1.4
+++ component.cxx 14 Aug 2008 21:23:15 -0000
@@ -392,7 +392,7 @@ CdlComponentBody::save(CdlInterpreter in
// Deal with the value
bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
!this->has_property(CdlPropertyId_Calculated);
- this->CdlValuableBody::save(interp, chan, indentation + 4, modifiable, minimal);
+ this->CdlValuableBody::save_valuable(interp, chan, indentation + 4, modifiable, minimal);
// And with any unrecognised data
this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
Index: config.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/config.cxx,v
retrieving revision 1.8
diff -u -p -r1.8 config.cxx
--- config.cxx 19 Aug 2003 22:34:40 -0000 1.8
+++ config.cxx 14 Aug 2008 21:23:45 -0000
@@ -1782,7 +1782,7 @@ CdlConfigurationBody::savefile_package_c
CdlPackage pkg = 0;
std::vector<std::pair<std::string,std::string> > options;
- static char* optlist[] = {
+ static const char* optlist[] = {
"template:f",
"hardware:f",
0
Index: conflict.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/conflict.cxx,v
retrieving revision 1.2
diff -u -p -r1.2 conflict.cxx
--- conflict.cxx 17 Jul 2000 14:42:27 -0000 1.2
+++ conflict.cxx 14 Aug 2008 21:24:20 -0000
@@ -791,7 +791,7 @@ CdlConflict_EvalExceptionBody::get_expla
CYG_PRECONDITION_THISC();
std::string result = node->get_name() + ", property " + property->get_property_name() + "\n";
- result += "Error while evaluation expression: ";
+ result += "Error while evaluating expression: ";
if ("" != explanation) {
result += explanation;
}
Index: database.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/database.cxx,v
retrieving revision 1.7
diff -u -p -r1.7 database.cxx
--- database.cxx 26 Mar 2003 17:57:58 -0000 1.7
+++ database.cxx 14 Aug 2008 21:24:46 -0000
@@ -71,7 +71,7 @@
// ----------------------------------------------------------------------------
// Some test cases may want to read in a file other than
// "ecos.db", e.g. to facilitate testing the error conditions.
-char*
+const char*
CdlPackagesDatabaseBody::database_name = "ecos.db";
// Should warnings be issued for minor database inconsistencies?
Index: dialog.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/dialog.cxx,v
retrieving revision 1.4
diff -u -p -r1.4 dialog.cxx
--- dialog.cxx 21 Sep 2002 22:05:09 -0000 1.4
+++ dialog.cxx 14 Aug 2008 21:25:12 -0000
@@ -106,8 +106,8 @@ CdlDialogBody::dialogs_are_enabled()
// There is no data associated with a custom dialog object.
CdlDialogBody::CdlDialogBody(std::string name_arg)
: CdlNodeBody(name_arg),
- CdlParentableBody(),
- CdlUserVisibleBody()
+ CdlUserVisibleBody(),
+ CdlParentableBody()
{
CYG_REPORT_FUNCNAME("CdlDialogBody:: constructor");
CYG_REPORT_FUNCARG1XV(this);
Index: interface.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/interface.cxx,v
retrieving revision 1.5
diff -u -p -r1.5 interface.cxx
--- interface.cxx 21 Sep 2002 22:05:09 -0000 1.5
+++ interface.cxx 14 Aug 2008 21:25:43 -0000
@@ -367,7 +367,7 @@ CdlInterfaceBody::save(CdlInterpreter in
interp->write_data(chan, data);
// Deal with the value
- this->CdlValuableBody::save(interp, chan, indentation + 4, false, minimal);
+ this->CdlValuableBody::save_valuable(interp, chan, indentation + 4, false, minimal);
// Close the cdl_interface body. A blank line is added here.
data = "};\n\n";
Index: interp.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/interp.cxx,v
retrieving revision 1.8
diff -u -p -r1.8 interp.cxx
--- interp.cxx 23 Jun 2004 13:27:57 -0000 1.8
+++ interp.cxx 14 Aug 2008 21:26:08 -0000
@@ -68,7 +68,7 @@
// ----------------------------------------------------------------------------
// This key is used for accessing AssocData in the Tcl interpreters,
// specifically the CdlInterpreter object.
-char* CdlInterpreterBody::cdlinterpreter_assoc_data_key = "__cdlinterpreter";
+const char* CdlInterpreterBody::cdlinterpreter_assoc_data_key = "__cdlinterpreter";
CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlInterpreterBody);
Index: option.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/option.cxx,v
retrieving revision 1.4
diff -u -p -r1.4 option.cxx
--- option.cxx 21 Sep 2002 22:05:09 -0000 1.4
+++ option.cxx 14 Aug 2008 21:26:30 -0000
@@ -295,7 +295,7 @@ CdlOptionBody::save(CdlInterpreter inter
// Deal with the value
bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
!this->has_property(CdlPropertyId_Calculated);
- this->CdlValuableBody::save(interp, chan, indentation + 4, modifiable, minimal);
+ this->CdlValuableBody::save_valuable(interp, chan, indentation + 4, modifiable, minimal);
// And with any unrecognised data
this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
Index: package.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/package.cxx,v
retrieving revision 1.5
diff -u -p -r1.5 package.cxx
--- package.cxx 26 Mar 2003 17:57:58 -0000 1.5
+++ package.cxx 14 Aug 2008 21:26:54 -0000
@@ -498,7 +498,7 @@ CdlPackageBody::save(CdlInterpreter inte
interp->write_data(chan, data);
// Deal with the value
- this->CdlValuableBody::save(interp, chan, indentation + 4, false, minimal);
+ this->CdlValuableBody::save_valuable(interp, chan, indentation + 4, false, minimal);
// And with any unrecognised data
this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
Index: parse.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/parse.cxx,v
retrieving revision 1.5
diff -u -p -r1.5 parse.cxx
--- parse.cxx 21 Sep 2002 22:05:09 -0000 1.5
+++ parse.cxx 14 Aug 2008 21:27:20 -0000
@@ -49,6 +49,8 @@
// ----------------------------------------------------------------------------
#include "cdlconfig.h"
+#include <cstring>
+
// Get the infrastructure types, assertions, tracing and similar
// facilities.
#include <cyg/infra/cyg_ass.h>
@@ -210,7 +212,7 @@ CdlParse::concatenate_argv(int argc, con
// or terminating flags.
static std::string
-get_option_string(char* name)
+get_option_string(const char* name)
{
std::string result = "";
while ((*name != ':') && (*name != '\0')) {
@@ -220,7 +222,7 @@ get_option_string(char* name)
}
int
-CdlParse::parse_options(CdlInterpreter interp, std::string diag_prefix, char** options,
+CdlParse::parse_options(CdlInterpreter interp, std::string diag_prefix, const char** options,
int argc, const char* argv[], int index,
std::vector<std::pair<std::string,std::string> >& result)
{
@@ -295,7 +297,7 @@ CdlParse::parse_options(CdlInterpreter i
// The option has been identified successfully. Extract the flags.
bool flag_flag = false;
bool multiple_flag = false;
- char* tmp = options[opt_index];
+ const char* tmp = options[opt_index];
while (('\0' != *tmp) && (':' != *tmp)) {
tmp++;
}
@@ -731,7 +733,7 @@ CdlParse::report_property_parse_warning(
int
CdlParse::parse_minimal_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Minimal))
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Minimal))
{
CYG_REPORT_FUNCNAME("parse_minimal_property");
CYG_PRECONDITION_CLASSC(interp);
@@ -772,7 +774,7 @@ CdlParse::parse_minimal_property(CdlInte
int
CdlParse::parse_string_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_String))
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_String))
{
CYG_REPORT_FUNCNAME("parse_string_property");
CYG_PRECONDITION_CLASSC(interp);
@@ -814,7 +816,7 @@ CdlParse::parse_string_property(CdlInter
int
CdlParse::parse_tclcode_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_TclCode))
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_TclCode))
{
CYG_REPORT_FUNCNAME("parse_tclcode_property");
CYG_PRECONDITION_CLASSC(interp);
@@ -857,7 +859,7 @@ CdlParse::parse_tclcode_property(CdlInte
int
CdlParse::parse_stringvector_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_StringVector),
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_StringVector),
bool allow_empty)
{
CYG_REPORT_FUNCNAME("parse_tclcode_property");
@@ -902,7 +904,7 @@ CdlParse::parse_stringvector_property(Cd
int
CdlParse::parse_reference_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Reference),
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Reference),
bool allow_empty, CdlUpdateHandler update_handler)
{
CYG_REPORT_FUNCNAME("parse_reference_property");
@@ -948,7 +950,7 @@ CdlParse::parse_reference_property(CdlIn
int
CdlParse::parse_expression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Expression),
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Expression),
CdlUpdateHandler update_handler)
{
CYG_REPORT_FUNCNAME("parse_expression_property");
@@ -1007,7 +1009,7 @@ CdlParse::parse_expression_property(CdlI
int
CdlParse::parse_listexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_ListExpression),
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_ListExpression),
CdlUpdateHandler update_handler)
{
CYG_REPORT_FUNCNAME("parse_list_expression_property");
@@ -1061,7 +1063,7 @@ CdlParse::parse_listexpression_property(
int
CdlParse::parse_goalexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
- char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_GoalExpression),
+ const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_GoalExpression),
CdlUpdateHandler update_handler)
{
CYG_REPORT_FUNCNAMETYPE("parse_goal_expression_property", "result %d");
Index: value.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/value.cxx,v
retrieving revision 1.10
diff -u -p -r1.10 value.cxx
--- value.cxx 21 Sep 2002 22:05:09 -0000 1.10
+++ value.cxx 14 Aug 2008 21:28:08 -0000
@@ -3694,7 +3694,7 @@ follow_expr_references(CdlProperty prope
// ----------------------------------------------------------------------------
void
-CdlValuableBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bool modifiable, bool minimal)
+CdlValuableBody::save_valuable(CdlInterpreter interp, Tcl_Channel chan, int indentation, bool modifiable, bool minimal)
{
CYG_REPORT_FUNCNAME("CdlValuable::save");
CYG_REPORT_FUNCARG5XV(this, interp, chan, indentation, minimal);
Index: wizard.cxx
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/wizard.cxx,v
retrieving revision 1.4
diff -u -p -r1.4 wizard.cxx
--- wizard.cxx 21 Sep 2002 22:05:09 -0000 1.4
+++ wizard.cxx 14 Aug 2008 21:28:34 -0000
@@ -73,8 +73,8 @@ CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlWizardB
// Constructor. The real work is actually done in the parse routine.
CdlWizardBody::CdlWizardBody(std::string name_arg)
: CdlNodeBody(name_arg),
- CdlParentableBody(),
- CdlUserVisibleBody()
+ CdlUserVisibleBody(),
+ CdlParentableBody()
{
CYG_REPORT_FUNCNAME("CdlWizardBody:: constructor");
CYG_REPORT_FUNCARG1XV(this);
Index: doc/reference.sgml
===================================================================
RCS file: /cvs/ecos/ecos/host/libcdl/doc/reference.sgml,v
retrieving revision 1.2
diff -u -p -r1.2 reference.sgml
--- doc/reference.sgml 15 Sep 2002 22:09:08 -0000 1.2
+++ doc/reference.sgml 14 Aug 2008 21:29:08 -0000
@@ -1709,7 +1709,7 @@ sufficient. Sometimes it is useful to ha
<literal>#define's</literal> get generated.
</para>
<para>
-The &define; property can be used to generate an addition
+The &define; property can be used to generate an additional
<literal>#define</literal> if the option is both active and enabled,
for example:
</para>