Status: | Merged |
---|---|
Merged at revision: | 43 |
Proposed branch: | lp:~reg-hugonweb/spods/2.0dev |
Merge into: | lp:spods |
Diff against target: |
12267 lines (+10872/-253) 79 files modified
.bzrignore (+32/-0) README (+1/-1) SConstruct (+21/-5) build.sh (+1/-1) docs/SConscript (+76/-0) docs/src/conf.py (+244/-0) docs/src/index.rst (+22/-0) docs/src/readme.rst (+144/-0) docs/src/spodsConfig.rst (+500/-0) external/SConscript (+2/-1) external/tclap/AUTHORS (+6/-0) external/tclap/COPYING (+25/-0) external/tclap/ChangeLog (+1760/-0) external/tclap/INSTALL (+182/-0) external/tclap/NEWS (+95/-0) external/tclap/README (+16/-0) external/tclap/include/tclap/Arg.h (+692/-0) external/tclap/include/tclap/ArgException.h (+200/-0) external/tclap/include/tclap/ArgTraits.h (+87/-0) external/tclap/include/tclap/CmdLine.h (+633/-0) external/tclap/include/tclap/CmdLineInterface.h (+150/-0) external/tclap/include/tclap/CmdLineOutput.h (+74/-0) external/tclap/include/tclap/Constraint.h (+68/-0) external/tclap/include/tclap/DocBookOutput.h (+299/-0) external/tclap/include/tclap/HelpVisitor.h (+76/-0) external/tclap/include/tclap/IgnoreRestVisitor.h (+52/-0) external/tclap/include/tclap/MultiArg.h (+433/-0) external/tclap/include/tclap/MultiSwitchArg.h (+216/-0) external/tclap/include/tclap/OptionalUnlabeledTracker.h (+62/-0) external/tclap/include/tclap/StandardTraits.h (+208/-0) external/tclap/include/tclap/StdOutput.h (+298/-0) external/tclap/include/tclap/SwitchArg.h (+266/-0) external/tclap/include/tclap/UnlabeledMultiArg.h (+301/-0) external/tclap/include/tclap/UnlabeledValueArg.h (+340/-0) external/tclap/include/tclap/ValueArg.h (+425/-0) external/tclap/include/tclap/ValuesConstraint.h (+148/-0) external/tclap/include/tclap/VersionVisitor.h (+81/-0) external/tclap/include/tclap/Visitor.h (+53/-0) external/tclap/include/tclap/XorHandler.h (+166/-0) external/tclap/include/tclap/ZshCompletionOutput.h (+323/-0) include/HepMCImporter.h (+3/-2) include/POUtilities.h (+6/-1) include/PhysicsObjectBuilder.h (+13/-5) include/PhysicsObjectFunctions.h (+43/-1) include/PileupBackendBase.h (+29/-0) include/PileupBackendHepMC.h (+31/-0) include/PileupBackendTTree.h (+35/-0) include/PileupSystem.h (+39/-0) include/YamlConfig.h (+18/-4) include/YamlReader.h (+4/-1) src/HepMCImporter.cc (+52/-68) src/POUtilities.cc (+106/-1) src/PhysicsObjectBuilder.cc (+121/-47) src/PileupBackendHepMC.cc (+45/-0) src/PileupBackendTTree.cc (+38/-0) src/PileupSystem.cc (+74/-0) src/SPODS.cc (+126/-18) src/YamlConfig.cc (+85/-31) src/YamlReader.cc (+73/-1) test/SConscript (+1/-1) test/SConstruct (+1/-1) test/atlasConfig.yaml (+158/-0) test/cmsConfig.yaml (+44/-6) test/getMetadata.py (+26/-0) test/hepmcParticleGun.py (+37/-2) test/makeWjj.sh (+1/-1) test/noSmearingConfig.yaml (+50/-12) test/particleGun.cc (+1/-1) test/runMemcheck.py (+92/-0) test/runPythia.sh (+1/-1) test/runTests.py (+627/-3) test/silly.yaml (+0/-29) test/style.py (+94/-0) test/test1.cc (+1/-1) test/test2.cc (+1/-1) test/test3.cc (+6/-3) test/testMRes.cc (+1/-1) test/testReader.cc (+5/-1) test/testYaml.cc (+6/-1) |
To merge this branch: | bzr merge lp:~reg-hugonweb/spods/2.0dev |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Justin | Pending | ||
Review via email: mp+161856@code.launchpad.net |
Commit message
Adds many 2.0 features:
Skimming
Documentation
Pileup
Preliminary Atlas config
tclap command line arguments
configurable random number seed
metadata tree
let TClonesArray handle max number of entries
jet background subtraction
Description of the change
Adds many 2.0 features:
Skimming
Documentation
Pileup
Preliminary Atlas config
tclap command line arguments
configurable random number seed
metadata tree
let TClonesArray handle max number of entries
jet background subtraction
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file '.bzrignore' |
2 | --- .bzrignore 1970-01-01 00:00:00 +0000 |
3 | +++ .bzrignore 2013-05-01 15:50:43 +0000 |
4 | @@ -0,0 +1,32 @@ |
5 | +docs/html/genindex.html |
6 | +docs/html/_images |
7 | +docs/html/index.html |
8 | +docs/html/objects.inv |
9 | +docs/html/readme.html |
10 | +docs/html/search.html |
11 | +docs/html/searchindex.js |
12 | +docs/html/_sources |
13 | +docs/html/spodsConfig.html |
14 | +docs/html/_static |
15 | +docs/latex/fncychap.sty |
16 | +docs/latex/Makefile |
17 | +docs/latex/python.ist |
18 | +docs/latex/sphinxhowto.cls |
19 | +docs/latex/sphinxmanual.cls |
20 | +docs/latex/sphinx.sty |
21 | +docs/latex/spods.tex |
22 | +docs/latex/tabulary.sty |
23 | +docs/text/index.txt |
24 | +docs/text/readme.txt |
25 | +docs/text/spodsConfig.txt |
26 | +docs/man/spods.1 |
27 | +.sconf_temp |
28 | +.sconsign.dblite |
29 | +config.log |
30 | +diff.txt |
31 | +texput.log |
32 | +docs/html/.doctrees |
33 | +docs/html/.buildinfo |
34 | +docs/latex/.doctrees |
35 | +docs/man/.doctrees |
36 | +docs/text/.doctrees |
37 | |
38 | === modified file 'README' |
39 | --- README 2012-07-03 14:52:36 +0000 |
40 | +++ README 2013-05-01 15:50:43 +0000 |
41 | @@ -1,6 +1,6 @@ |
42 | |
43 | SPODS--Simple Physics Object based Detector Simulation |
44 | -Copyright (C) 2011, 2012 Justin Hugon |
45 | +Copyright (C) 2011, 2012, 2013 Justin Hugon |
46 | |
47 | SPODS is a detector simulation for particle physics collider experiments. |
48 | It reconstructs muons, electrons, jets, and MET from generator events in |
49 | |
50 | === modified file 'SConstruct' |
51 | --- SConstruct 2012-08-18 11:50:47 +0000 |
52 | +++ SConstruct 2013-05-01 15:50:43 +0000 |
53 | @@ -1,18 +1,25 @@ |
54 | |
55 | # SPODS--Simple Physics Object based Detector Simulation |
56 | -# Copyright (C) 2011, 2012 Justin Hugon |
57 | +# Copyright (C) 2011, 2012, 2013 Justin Hugon |
58 | |
59 | # Main SCONS Build Configuration File |
60 | |
61 | import os |
62 | import glob |
63 | |
64 | +buildDocs = False |
65 | +#buildDocs = True |
66 | +AddOption("--gccdebug",action="store_true",dest="gccdebug",default=False,help="turns on the debug flag in GCC") |
67 | + |
68 | env = Environment(ENV = {'PATH':os.environ['PATH']} ) |
69 | |
70 | includes = ["#include"] |
71 | libpath = ["#lib"] |
72 | libs = [] |
73 | -env.MergeFlags('-fPIC -O2 -lm') |
74 | +if GetOption('gccdebug'): |
75 | + env.MergeFlags('-g -lm -fPIC') # For Debugging |
76 | +else: |
77 | + env.MergeFlags('-O2 -lm -fPIC ') |
78 | |
79 | #root |
80 | env.ParseConfig('root-config --cflags') |
81 | @@ -48,19 +55,28 @@ |
82 | |
83 | #fastjet |
84 | includes.append("#external/fastjet/include") |
85 | +includes.append("#external/fastjet/tools") |
86 | libpath.append("#external/fastjet/lib") |
87 | +libs.append("fastjettools") |
88 | libs.append("fastjet") |
89 | |
90 | +#tclap |
91 | +includes.append("#external/tclap/include") |
92 | + |
93 | env.Append(CPPPATH=includes) |
94 | env.Append(LIBPATH=libpath) |
95 | env.Append(LIBS=libs) |
96 | |
97 | libSources = glob.glob("src/*") |
98 | |
99 | -SConscript([ |
100 | +sconscripts = [ |
101 | "#test/SConscript", |
102 | - "#external/SConscript" |
103 | - ],exports="env") |
104 | + "#external/SConscript", |
105 | + ] |
106 | +if buildDocs: |
107 | + sconscripts.append("#docs/SConscript") |
108 | + |
109 | +SConscript(sconscripts,exports="env") |
110 | |
111 | env.StaticLibrary(target="lib/spods", source=libSources) |
112 | #env.SharedLibrary(target="lib/spods", source=libSources) |
113 | |
114 | === modified file 'build.sh' |
115 | --- build.sh 2012-04-25 09:31:26 +0000 |
116 | +++ build.sh 2013-05-01 15:50:43 +0000 |
117 | @@ -1,7 +1,7 @@ |
118 | #/bin/bash |
119 | |
120 | # SPODS--Simple Physics Object based Detector Simulation |
121 | -# Copyright (C) 2011, 2012 Justin Hugon |
122 | +# Copyright (C) 2011, 2012, 2013 Justin Hugon |
123 | |
124 | #script to build SPODS, use -jN for multi-processor building, and -c to clean up |
125 | |
126 | |
127 | === added directory 'docs' |
128 | === added file 'docs/SConscript' |
129 | --- docs/SConscript 1970-01-01 00:00:00 +0000 |
130 | +++ docs/SConscript 2013-05-01 15:50:43 +0000 |
131 | @@ -0,0 +1,76 @@ |
132 | + |
133 | +## SPODS--Simple Physics Object based Detector Simulation |
134 | +## Copyright (C) 2011, 2012, 2013 Justin Hugon |
135 | + |
136 | +import os |
137 | +import glob |
138 | + |
139 | +def checkSphinx(context): |
140 | + context.Message("Checking for sphinx-build...") |
141 | + tryBuild = env.Command("","","sphinx-build -h") |
142 | + ret = context.TryAction(tryBuild) |
143 | + context.Result(ret[0]) |
144 | + return ret[0] |
145 | + |
146 | +def checkLatex(context): |
147 | + context.Message("Checking for latex...") |
148 | + tryBuild = env.Command("","","latex --help") |
149 | + ret = context.TryAction(tryBuild) |
150 | + context.Result(ret[0]) |
151 | + return ret[0] |
152 | + |
153 | +def checkPdfLatex(context): |
154 | + context.Message("Checking for pdflatex...") |
155 | + tryBuild = env.Command("","","pdflatex --help") |
156 | + ret = context.TryAction(tryBuild) |
157 | + context.Result(ret[0]) |
158 | + return ret[0] |
159 | + |
160 | + |
161 | +def checkDviPng(context): |
162 | + context.Message("Checking for dvipng...") |
163 | + tryBuild = env.Command("","","dvipng --help") |
164 | + ret = context.TryAction(tryBuild) |
165 | + context.Result(ret[0]) |
166 | + return ret[0] |
167 | + |
168 | +tests = { |
169 | + "CheckSphinx":checkSphinx, |
170 | + "CheckLatex":checkLatex, |
171 | + "CheckPdfLatex":checkPdfLatex, |
172 | + "CheckDviPng":checkDviPng |
173 | +} |
174 | + |
175 | +################### |
176 | +#For Particle Gun |
177 | +env = Environment(ENV = {'PATH':os.environ['PATH']} ) |
178 | + |
179 | +doSphinx = False |
180 | +doSphinxHtml = False |
181 | +doSphinxPdf = False |
182 | + |
183 | +if not env.GetOption("clean"): |
184 | + conf = Configure(env, custom_tests = tests) |
185 | + if conf.CheckSphinx(): |
186 | + doSphinx = True |
187 | + if conf.CheckLatex() and conf.CheckDviPng(): |
188 | + doSphinxHtml = True |
189 | + #if conf.CheckPdfLatex(): |
190 | + # doSphinxPdf = True |
191 | + env = conf.Finish() |
192 | + |
193 | +sphinxOutputs = ["latex","text","man"] |
194 | +if doSphinxHtml: |
195 | + sphinxOutputs.append("html") |
196 | + |
197 | +if doSphinx: |
198 | + for outputFormat in sphinxOutputs: |
199 | + name = Dir(outputFormat) |
200 | + source = Dir("src") |
201 | + targets = env.Command(name,source,"sphinx-build -b {0} $SOURCE $TARGET".format(outputFormat)) |
202 | + env.Depends(targets, source) |
203 | + env.AlwaysBuild(name) |
204 | + if outputFormat == "latex" and doSphinxPdf: |
205 | + pdfTarget = env.Command("latex/spods.pdf","latex/spods.tex","pdflatex spods.tex",chdir=True) |
206 | + env.Depends(pdfTarget,"latex/spods.tex") |
207 | + |
208 | |
209 | === added directory 'docs/html' |
210 | === added directory 'docs/latex' |
211 | === added directory 'docs/man' |
212 | === added directory 'docs/src' |
213 | === added file 'docs/src/conf.py' |
214 | --- docs/src/conf.py 1970-01-01 00:00:00 +0000 |
215 | +++ docs/src/conf.py 2013-05-01 15:50:43 +0000 |
216 | @@ -0,0 +1,244 @@ |
217 | +# -*- coding: utf-8 -*- |
218 | +# |
219 | +# SPODS documentation build configuration file, created by |
220 | +# sphinx-quickstart on Sat Aug 18 09:24:05 2012. |
221 | +# |
222 | +# This file is execfile()d with the current directory set to its containing dir. |
223 | +# |
224 | +# Note that not all possible configuration values are present in this |
225 | +# autogenerated file. |
226 | +# |
227 | +# All configuration values have a default; values that are commented out |
228 | +# serve to show the default. |
229 | + |
230 | +import sys, os |
231 | + |
232 | +# If extensions (or modules to document with autodoc) are in another directory, |
233 | +# add these directories to sys.path here. If the directory is relative to the |
234 | +# documentation root, use os.path.abspath to make it absolute, like shown here. |
235 | +#sys.path.insert(0, os.path.abspath('.')) |
236 | + |
237 | +# -- General configuration ----------------------------------------------------- |
238 | + |
239 | +# If your documentation needs a minimal Sphinx version, state it here. |
240 | +#needs_sphinx = '1.0' |
241 | + |
242 | +# Add any Sphinx extension module names here, as strings. They can be extensions |
243 | +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. |
244 | +extensions = ["sphinx.ext.pngmath"] |
245 | + |
246 | +# Add any paths that contain templates here, relative to this directory. |
247 | +#templates_path = ['_templates'] |
248 | + |
249 | +# The suffix of source filenames. |
250 | +source_suffix = '.rst' |
251 | + |
252 | +# The encoding of source files. |
253 | +#source_encoding = 'utf-8-sig' |
254 | + |
255 | +# The master toctree document. |
256 | +master_doc = 'index' |
257 | + |
258 | +# General information about the project. |
259 | +project = u'SPODS' |
260 | +copyright = u'2011, 2012, Justin Hugon' |
261 | + |
262 | +# The version info for the project you're documenting, acts as replacement for |
263 | +# |version| and |release|, also used in various other places throughout the |
264 | +# built documents. |
265 | +# |
266 | +# The short X.Y version. |
267 | +version = '1.0' |
268 | +# The full version, including alpha/beta/rc tags. |
269 | +release = '1.0' |
270 | + |
271 | +# The language for content autogenerated by Sphinx. Refer to documentation |
272 | +# for a list of supported languages. |
273 | +#language = None |
274 | + |
275 | +# There are two options for replacing |today|: either, you set today to some |
276 | +# non-false value, then it is used: |
277 | +#today = '' |
278 | +# Else, today_fmt is used as the format for a strftime call. |
279 | +#today_fmt = '%B %d, %Y' |
280 | + |
281 | +# List of patterns, relative to source directory, that match files and |
282 | +# directories to ignore when looking for source files. |
283 | +#exclude_patterns = ['_build'] |
284 | + |
285 | +# The reST default role (used for this markup: `text`) to use for all documents. |
286 | +#default_role = None |
287 | + |
288 | +# If true, '()' will be appended to :func: etc. cross-reference text. |
289 | +#add_function_parentheses = True |
290 | + |
291 | +# If true, the current module name will be prepended to all description |
292 | +# unit titles (such as .. function::). |
293 | +#add_module_names = True |
294 | + |
295 | +# If true, sectionauthor and moduleauthor directives will be shown in the |
296 | +# output. They are ignored by default. |
297 | +#show_authors = False |
298 | + |
299 | +# The name of the Pygments (syntax highlighting) style to use. |
300 | +pygments_style = 'sphinx' |
301 | + |
302 | +# A list of ignored prefixes for module index sorting. |
303 | +#modindex_common_prefix = [] |
304 | + |
305 | + |
306 | +# -- Options for HTML output --------------------------------------------------- |
307 | + |
308 | +# The theme to use for HTML and HTML Help pages. See the documentation for |
309 | +# a list of builtin themes. |
310 | +#html_theme = 'default' |
311 | +#html_theme = 'haiku' |
312 | +html_theme = 'agogo' |
313 | + |
314 | +# Theme options are theme-specific and customize the look and feel of a theme |
315 | +# further. For a list of options available for each theme, see the |
316 | +# documentation. |
317 | +#html_theme_options = {} |
318 | + |
319 | +# Add any paths that contain custom themes here, relative to this directory. |
320 | +#html_theme_path = [] |
321 | + |
322 | +# The name for this set of Sphinx documents. If None, it defaults to |
323 | +# "<project> v<release> documentation". |
324 | +#html_title = None |
325 | + |
326 | +# A shorter title for the navigation bar. Default is the same as html_title. |
327 | +#html_short_title = None |
328 | + |
329 | +# The name of an image file (relative to this directory) to place at the top |
330 | +# of the sidebar. |
331 | +#html_logo = None |
332 | + |
333 | +# The name of an image file (within the static path) to use as favicon of the |
334 | +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 |
335 | +# pixels large. |
336 | +#html_favicon = None |
337 | + |
338 | +# Add any paths that contain custom static files (such as style sheets) here, |
339 | +# relative to this directory. They are copied after the builtin static files, |
340 | +# so a file named "default.css" will overwrite the builtin "default.css". |
341 | +#html_static_path = ['_static'] |
342 | + |
343 | +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, |
344 | +# using the given strftime format. |
345 | +#html_last_updated_fmt = '%b %d, %Y' |
346 | + |
347 | +# If true, SmartyPants will be used to convert quotes and dashes to |
348 | +# typographically correct entities. |
349 | +#html_use_smartypants = True |
350 | + |
351 | +# Custom sidebar templates, maps document names to template names. |
352 | +#html_sidebars = {} |
353 | + |
354 | +# Additional templates that should be rendered to pages, maps page names to |
355 | +# template names. |
356 | +#html_additional_pages = {} |
357 | + |
358 | +# If false, no module index is generated. |
359 | +#html_domain_indices = True |
360 | + |
361 | +# If false, no index is generated. |
362 | +#html_use_index = True |
363 | + |
364 | +# If true, the index is split into individual pages for each letter. |
365 | +#html_split_index = False |
366 | + |
367 | +# If true, links to the reST sources are added to the pages. |
368 | +#html_show_sourcelink = True |
369 | + |
370 | +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. |
371 | +#html_show_sphinx = True |
372 | + |
373 | +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. |
374 | +#html_show_copyright = True |
375 | + |
376 | +# If true, an OpenSearch description file will be output, and all pages will |
377 | +# contain a <link> tag referring to it. The value of this option must be the |
378 | +# base URL from which the finished HTML is served. |
379 | +#html_use_opensearch = '' |
380 | + |
381 | +# This is the file name suffix for HTML files (e.g. ".xhtml"). |
382 | +#html_file_suffix = None |
383 | + |
384 | +# Output file base name for HTML help builder. |
385 | +htmlhelp_basename = 'spodsdoc' |
386 | + |
387 | + |
388 | +# -- Options for LaTeX output -------------------------------------------------- |
389 | + |
390 | +latex_elements = { |
391 | +# The paper size ('letterpaper' or 'a4paper'). |
392 | +#'papersize': 'letterpaper', |
393 | + |
394 | +# The font size ('10pt', '11pt' or '12pt'). |
395 | +#'pointsize': '10pt', |
396 | + |
397 | +# Additional stuff for the LaTeX preamble. |
398 | +#'preamble': '', |
399 | +} |
400 | + |
401 | +# Grouping the document tree into LaTeX files. List of tuples |
402 | +# (source start file, target name, title, author, documentclass [howto/manual]). |
403 | +latex_documents = [ |
404 | + ('index', 'spods.tex', u'SPODS Documentation', |
405 | + u'Justin Hugon', 'howto'), |
406 | +] |
407 | + |
408 | +# The name of an image file (relative to this directory) to place at the top of |
409 | +# the title page. |
410 | +#latex_logo = None |
411 | + |
412 | +# For "manual" documents, if this is true, then toplevel headings are parts, |
413 | +# not chapters. |
414 | +#latex_use_parts = False |
415 | + |
416 | +# If true, show page references after internal links. |
417 | +#latex_show_pagerefs = False |
418 | + |
419 | +# If true, show URL addresses after external links. |
420 | +#latex_show_urls = False |
421 | + |
422 | +# Documents to append as an appendix to all manuals. |
423 | +#latex_appendices = [] |
424 | + |
425 | +# If false, no module index is generated. |
426 | +#latex_domain_indices = True |
427 | + |
428 | + |
429 | +# -- Options for manual page output -------------------------------------------- |
430 | + |
431 | +# One entry per manual page. List of tuples |
432 | +# (source start file, name, description, authors, manual section). |
433 | +man_pages = [ |
434 | + ('index', 'spods', u'SPODS Documentation', |
435 | + [u'Justin Hugon'], 1) |
436 | +] |
437 | + |
438 | +# If true, show URL addresses after external links. |
439 | +#man_show_urls = False |
440 | + |
441 | + |
442 | +# -- Options for Texinfo output ------------------------------------------------ |
443 | + |
444 | +# Grouping the document tree into Texinfo files. List of tuples |
445 | +# (source start file, target name, title, author, |
446 | +# dir menu entry, description, category) |
447 | +texinfo_documents = [ |
448 | + ('index', 'SPODS', u'SPODS Documentation', |
449 | + u'Justin Hugon', 'SPODS', 'One line description of project.', |
450 | + 'Miscellaneous'), |
451 | +] |
452 | + |
453 | +# Documents to append as an appendix to all manuals. |
454 | +#texinfo_appendices = [] |
455 | + |
456 | +# If false, no module index is generated. |
457 | +#texinfo_domain_indices = True |
458 | + |
459 | +# How to display URL addresses: 'footnote', 'no', or 'inline'. |
460 | +#texinfo_show_urls = 'footnote' |
461 | |
462 | === added file 'docs/src/index.rst' |
463 | --- docs/src/index.rst 1970-01-01 00:00:00 +0000 |
464 | +++ docs/src/index.rst 2013-05-01 15:50:43 +0000 |
465 | @@ -0,0 +1,22 @@ |
466 | +.. SPODS documentation master file, created by |
467 | + sphinx-quickstart on Sat Aug 18 09:24:05 2012. |
468 | + You can adapt this file completely to your liking, but it should at least |
469 | + contain the root `toctree` directive. |
470 | + |
471 | +Welcome to SPODS's documentation! |
472 | +================================= |
473 | + |
474 | +Contents: |
475 | + |
476 | +.. toctree:: |
477 | + :maxdepth: 2 |
478 | + |
479 | + readme |
480 | + spodsConfig |
481 | + |
482 | +.. Indices and tables |
483 | + ================== |
484 | + |
485 | +.. * :ref:`genindex` |
486 | + * :ref:`modindex` |
487 | + * :ref:`search` |
488 | |
489 | === added file 'docs/src/readme.rst' |
490 | --- docs/src/readme.rst 1970-01-01 00:00:00 +0000 |
491 | +++ docs/src/readme.rst 2013-05-01 15:50:43 +0000 |
492 | @@ -0,0 +1,144 @@ |
493 | + |
494 | +SPODS--Simple Physics Object based Detector Simulation |
495 | +========================================================= |
496 | + |
497 | +Copyright (C) 2011, 2012, 2013 Justin Hugon |
498 | + |
499 | +SPODS is a detector simulation for particle physics collider experiments. |
500 | +It reconstructs muons, electrons, jets, and MET from generator events in |
501 | +the HepMC event format. These "physics objects" are then smeared by |
502 | +Gaussians parameterized to the response of various detectors, and |
503 | +output in a root tree. |
504 | + |
505 | +Building |
506 | +----------- |
507 | + |
508 | +Executing ./build.sh will build SPODS. The script will accept the -jN |
509 | +option for parallel compilation, and -c to clean up the build. |
510 | + |
511 | +SPODS only requirements are a C++ compiler, python, and an installation |
512 | +of ROOT. The python version should be between v2.4 and v2.7. The |
513 | +ROOT executable, ``root``, and build configuration lister ``root-config``, |
514 | +should be in the ``$PATH``. |
515 | + |
516 | +SPODS has been tested with these versions: |
517 | + |
518 | +====== ======= ======== |
519 | +gcc ROOT python |
520 | +====== ======= ======== |
521 | +4.1.2 5.32 2.4.3 |
522 | +4.5.2 5.30 2.7.1 |
523 | +4.6.3 5.32 2.7.3 |
524 | +4.7.2 5.34 2.7.3 |
525 | +====== ======= ======== |
526 | + |
527 | +Running |
528 | +---------- |
529 | + |
530 | +The executable can be run as: :: |
531 | + |
532 | + ./bin/SPODS <configFile.yaml> <inFile.hepmc> <outFile.root> |
533 | + |
534 | +Example config files are in the test directory. |
535 | + |
536 | +Analyzing Output |
537 | +------------------ |
538 | + |
539 | +A ROOT TTree is written to the output file, named "tree". Within this |
540 | +file, each physics object is represented by a TClonesArray of TParticles. |
541 | +The TParticles' momentum magnitudes are smeared. Other information can be |
542 | +accessed through the functions present in include/PhysicsObjectFunctions.h. |
543 | +Included are functions to get the factor to scale the momentum to return |
544 | +it to the generator value, b-tagging variables, and isolation variables. |
545 | + |
546 | +An example of reading the output is in test/testReader.cc |
547 | + |
548 | +It is important to note that jets are made out of all particles besides |
549 | +muons. This means that an isolated electron or photon will appear |
550 | +in the jet collection if the "jetVeto*" parameters are relaxed too much. |
551 | + |
552 | +In addition to the arrays of particles, the output root files contain an |
553 | +additional tree called "metadata". This tree contains useful information |
554 | +such as the SPODS input and output filenames, a dump of the configuration, |
555 | +and the total number of events, sum of weights, and sum of weights squared |
556 | +in the processed input file. These numbers can be useful when computing |
557 | +efficiencies or scaling a sample to a specific cross-section and luminosity. |
558 | +Functions to easily access them are provided in include/PhysicsObjectFunctions.h. |
559 | + |
560 | +Making Input Files with Pythia 8 |
561 | +------------------------------------- |
562 | + |
563 | +To make HepMC files with PYTHIA 8, follow these steps: |
564 | + |
565 | +#. Build SPODS |
566 | + |
567 | +#. Download and untar PYTHIA 8, and cd into its working directory |
568 | + |
569 | +#. Run:: |
570 | + |
571 | + ./configure --with-hepmc=<SPODSDIR>/external/HepMC --with-hepmcversion=2 |
572 | + |
573 | +#. ``make`` |
574 | + |
575 | +#. Go into examples/, and run:: |
576 | + |
577 | + make main42 |
578 | + |
579 | +(main32 in older versions of pythia8!) |
580 | + |
581 | +#. PYTHIA 8 requires an environmental variable to run:: |
582 | + |
583 | + export PYTHIA8DATA=<PYTHIADIR>/xmldoc |
584 | + |
585 | +#. The executable ``./main42.exe`` takes PYTHIA 8 .cmnd input files, and produces |
586 | +HepMC event files. The ``<SPODSDIR>/test/\*.cmnd`` are further examples. |
587 | +Run like:: |
588 | + |
589 | + ./main42.exe <infile.cmnd> <outfilename.hepmc> |
590 | + |
591 | +#. To make a SPODS ROOT file out of the HepMC file without detector smearing, |
592 | +go back to the SPODS directory and run:: |
593 | + |
594 | + ./bin/SPODS test/noSmearingConfig.yaml <filename.hepmc> <outfilename.root> |
595 | + |
596 | +It is faster and takes less space to avoid writing the intermediate .hepmc |
597 | +file to disk. You can write it to a named pipe and direct it into SPODS:: |
598 | + |
599 | + mkfifo tmpPipe.hepmc |
600 | + <PYTHIADIR>/examples/main42.exe <config.cmnd> tmpPipe.hepmc & |
601 | + <SPODSDIR>/bin/SPODS <config.yaml> tmpPipe.hepmc <outfile.root> |
602 | + rm tmpPipe.hepmc |
603 | + |
604 | +Pileup Usage |
605 | +------------------------------------- |
606 | + |
607 | +SPODS can simulate the effects of pileup, extra collisions happening at the |
608 | +same time as a collision of interest. The distribution of the number of |
609 | +pileup collisions is configurable in the config file. |
610 | + |
611 | +The more efficient mode of pileup involves first running SPODS on a |
612 | +minbias sample of a few thousand events, making sure the option |
613 | +``keepGenParticles`` is set to true. Then, SPODS is run on the |
614 | +sample of interest, and random events are selected from the |
615 | +minbias sample for pileup. The commands required are: :: |
616 | + |
617 | + ./bin/SPODS config.yaml minbias.hepmc minbias.root |
618 | + ./bin/SPODS config.yaml -p minbias.root input.hepmc output.root |
619 | + |
620 | +The same minbias file can be used for many different samples of interest. |
621 | + |
622 | +The other mode of operation is to have a sufficiently large sample of |
623 | +minbias in HepMC format (or a named pipe of minbias as discussed in the last |
624 | +section). These events will be piled up in-order on top of the sample of |
625 | +interest. For example, with PYTHIA 8 using named pipes, run: :: |
626 | + |
627 | + mkfifo tmpPipe.hepmc |
628 | + mkfifo minbiasPipe.hepmc |
629 | + <PYTHIADIR>/examples/main42.exe <config.cmnd> tmpPipe.hepmc & |
630 | + <PYTHIADIR>/examples/main42.exe <minbias.cmnd> minbiasPipe.hepmc & |
631 | + <SPODSDIR>/bin/SPODS <config.yaml> -p minbiasPipe.hepmc tmpPipe.hepmc <outfile.root> |
632 | + rm tmpPipe.hepmc |
633 | + rm minbiasPipe.hepmc |
634 | + |
635 | +This method will take much more time than the first method. |
636 | + |
637 | |
638 | === added file 'docs/src/spodsConfig.rst' |
639 | --- docs/src/spodsConfig.rst 1970-01-01 00:00:00 +0000 |
640 | +++ docs/src/spodsConfig.rst 2013-05-01 15:50:43 +0000 |
641 | @@ -0,0 +1,500 @@ |
642 | +SPODS Configuration File Syntax |
643 | +================================== |
644 | + |
645 | +Copyright (C) 2011, 2012, 2013 Justin Hugon |
646 | + |
647 | +The SPODS configuration file defines parameters related to cuts on generator |
648 | +objects, as well as how those objects are smeared. Each option must be in |
649 | +the config file for SPODS to run correctly. All options are described below. |
650 | + |
651 | +The configuration file syntax is `YAML <http://www.yaml.org/>`_ |
652 | + |
653 | +Run Parameters |
654 | +------------------ |
655 | + |
656 | +.. describe:: maxEvents: <integer> |
657 | + |
658 | + The maximum number of events to process from the input file. |
659 | + |
660 | +.. describe:: keepGenParticles: <bool> |
661 | + |
662 | + Set true to keep the original particles from the generator, false otherwise. |
663 | + |
664 | +.. describe:: keepNonFinalStateGenParticles: <bool> |
665 | + |
666 | + If keepGenParticles is true, controls whether particles with states != 1 are kept. Set true to keep them, false otherwise. |
667 | + |
668 | +Max Particle Parameters |
669 | +---------------------------- |
670 | + |
671 | +.. describe:: maxGenParticles: <integer> |
672 | + |
673 | + The maximum number of generator particles to read in (per event). |
674 | + |
675 | +.. describe:: maxElectrons: <integer> |
676 | + |
677 | + The maximum number of electrons to write out to the ROOT tree. |
678 | + |
679 | +.. describe:: maxMuons: <integer> |
680 | + |
681 | + The maximum number of muons to write out to the ROOT tree. |
682 | + |
683 | +.. describe:: maxPhotons: <integer> |
684 | + |
685 | + The maximum number of photons to write out to the ROOT tree. |
686 | + |
687 | +.. describe:: maxJets: <integer> |
688 | + |
689 | + The maximum number of jets to write out to the ROOT tree. |
690 | + |
691 | +Particle Cut Parameters |
692 | +-------------------------- |
693 | + |
694 | +.. describe:: etaElectronMax: <float> |
695 | + |
696 | + Max \|eta\| Cut |
697 | + |
698 | +.. describe:: etaMuonMax: <float> |
699 | + |
700 | + Max \|eta\| Cut |
701 | + |
702 | +.. describe:: etaPhotonMax: <float> |
703 | + |
704 | + Max \|eta\| Cut |
705 | + |
706 | +.. describe:: etaJetMax: <float> |
707 | + |
708 | + Max \|eta\| cut for particles clustered into jets. |
709 | + |
710 | +.. describe:: etaMetMax: <float> |
711 | + |
712 | + Max \|eta\| cut for particles included in the MET calculation. |
713 | + |
714 | + |
715 | +.. describe:: ptElectronMin: <float> |
716 | + |
717 | + Min pt Cut |
718 | + |
719 | +.. describe:: ptMuonMin: <float> |
720 | + |
721 | + Min pt Cut |
722 | + |
723 | +.. describe:: ptPhotonMin: <float> |
724 | + |
725 | + Min pt Cut |
726 | + |
727 | +.. describe:: ptJetMin: <float> |
728 | + |
729 | + Min pt cut for jets. |
730 | + |
731 | +Jet Configuration |
732 | +-------------------- |
733 | + |
734 | +.. describe:: jetAlg: <kt|ca|antikt> |
735 | + |
736 | + Jet Algorithm name for `FastJet <http://fastjet.fr>`_ to cluster with. |
737 | + |
738 | + kt |
739 | + Longitudinally invariant kt algorithm |
740 | + |
741 | + ca |
742 | + Longitudinally invariant inclusive Cambridge/Aachen algorithm |
743 | + |
744 | + antikt |
745 | + anti-kt algorithm |
746 | + |
747 | +.. describe:: jetAlgR: <float> |
748 | + |
749 | + Radius parameter for the jet algorithm |
750 | + |
751 | +.. describe:: jetVetoNPartMin: <int> |
752 | + |
753 | + Minimum number of particles in a jet (for jet-ID) |
754 | + |
755 | +.. describe:: jetVetoNChargMin: <int> |
756 | + |
757 | + Minimum number of charged particles in a jet (for jet-ID) |
758 | + |
759 | +.. describe:: jetVetoNHadMin: <int> |
760 | + |
761 | + Minimum number of hadron particles in a jet (for jet-ID) |
762 | + |
763 | +Isolation Configuration |
764 | +------------------------- |
765 | + |
766 | +.. describe:: muonIsoType: <trk|calo|comb> |
767 | + |
768 | + Type of Isolation |
769 | + |
770 | + trk |
771 | + Sum all charged particle pt in the isolation cone |
772 | + calo |
773 | + Sum all non-neutrino non-muon particle pt in the isolation cone |
774 | + combined |
775 | + Sum all non-neutrino particle pt in the isolation cone |
776 | + |
777 | +.. describe:: muonIsoConeSize: <float> |
778 | + |
779 | + Radius of isolation cone in |
780 | + :math:`\Delta R = \sqrt{(\Delta \phi)^2 + (\Delta \eta)^2}` |
781 | + |
782 | +.. describe:: muonIsoMinPt: <float> |
783 | + |
784 | + Min particle pt to include in the isolation calculation |
785 | + |
786 | +.. describe:: electronIsoType: <trk|calo|comb> |
787 | + |
788 | + Type of Isolation |
789 | + |
790 | + trk |
791 | + Sum all charged particle pt in the isolation cone |
792 | + calo |
793 | + Sum all non-neutrino non-muon particle pt in the isolation cone |
794 | + combined |
795 | + Sum all non-neutrino particle pt in the isolation cone |
796 | + |
797 | +.. describe:: electronIsoConeSize: <float> |
798 | + |
799 | + Radius of isolation cone in |
800 | + :math:`\Delta R = \sqrt{(\Delta \phi)^2 + (\Delta \eta)^2}` |
801 | + |
802 | +.. describe:: electronIsoMinPt: <float> |
803 | + |
804 | + Min particle pt to include in the isolation calculation |
805 | + |
806 | +.. describe:: photonIsoType: <trk|calo|comb> |
807 | + |
808 | + Type of Isolation |
809 | + |
810 | + trk |
811 | + Sum all charged particle pt in the isolation cone |
812 | + calo |
813 | + Sum all non-neutrino non-muon particle pt in the isolation cone |
814 | + combined |
815 | + Sum all non-neutrino particle pt in the isolation cone |
816 | + |
817 | +.. describe:: photonIsoConeSize: <float> |
818 | + |
819 | + Radius of isolation cone in |
820 | + :math:`\Delta R = \sqrt((\Delta \phi)^2 + (\Delta \eta)^2)` |
821 | + |
822 | +.. describe:: photonIsoMinPt: <float> |
823 | + |
824 | + Min particle pt to include in the isolation calculation |
825 | + |
826 | +b-Tagging Parameters |
827 | +--------------------- |
828 | + |
829 | +.. describe:: bTagEff: <float> |
830 | + |
831 | + b-Tagging Efficiency on Jets Identified to contain b-particles |
832 | + |
833 | +.. describe:: bTagMistagRate: <float> |
834 | + |
835 | + b-Tagging Mistagging Rate on jets not containing b-particles |
836 | + |
837 | +Skimming Parameters |
838 | +--------------------- |
839 | + |
840 | +The skimming parameters control whether an event is written to the output file or not, based on the physics objects in the event. **All** skim cuts must |
841 | +be passed for an event to be written out (put together through a logical AND). |
842 | + |
843 | +The syntax for skimming is to have:: |
844 | + |
845 | + skim: |
846 | + xxx: X |
847 | + yyyy: Y |
848 | + |
849 | +Each statement after ``skim:`` must be indented by the same amount. |
850 | + |
851 | +All of these cuts are applied after pt smearing and after the detector |
852 | +pt and eta cuts are applied. |
853 | + |
854 | +.. describe:: minPO: <integer> |
855 | + |
856 | + Require a minimum number of physics objects in the event. If |
857 | + nMuons + nElectrons + nJets + nPhotons < minPO, then the event |
858 | + will not be written to the output file. To be included in the |
859 | + count, each of the physics objects will have to pass the pt*Min |
860 | + cuts described below, after smearing. |
861 | + |
862 | +.. describe:: minLeptons: <integer> |
863 | + |
864 | + Require a minimum number of leptons in the event. If |
865 | + nMuons + nElectrons < minLeptons, then the event |
866 | + will not be written to the output file. To be included in the |
867 | + count, each of the leptons will have to pass the pt*Min |
868 | + cuts described below, after smearing. |
869 | + |
870 | +.. describe:: minMuons: <integer> |
871 | + |
872 | + Require a minimum number of muons in the event. If |
873 | + nMuons < minMuons, then the event |
874 | + will not be written to the output file. To be included in the |
875 | + count, each of the muons will have to pass the ``ptMuonMin`` |
876 | + cut described below, after smearing. |
877 | + |
878 | +.. describe:: minElectrons: <integer> |
879 | + |
880 | + Require a minimum number of electrons in the event. If |
881 | + nElectrons < minElectrons, then the event |
882 | + will not be written to the output file. To be included in the |
883 | + count, each of the electrons will have to pass the ``ptElectronMin`` |
884 | + cut described below, after smearing. |
885 | + |
886 | +.. describe:: minPhotons: <integer> |
887 | + |
888 | + Require a minimum number of photons in the event. If |
889 | + nPhotons < minPhotons, then the event |
890 | + will not be written to the output file. To be included in the |
891 | + count, each of the photons will have to pass the ``ptPhotonMin`` |
892 | + cut described below, after smearing. |
893 | + |
894 | +.. describe:: minJets: <integer> |
895 | + |
896 | + Require a minimum number of jets in the event. If |
897 | + nJets < minJets, then the event |
898 | + will not be written to the output file. To be included in the |
899 | + count, each of the jets will have to pass the ``ptJetMin`` |
900 | + cut described below, after smearing. |
901 | + |
902 | +.. describe:: ptMuonMin: <float> |
903 | + |
904 | + To be included in the above counts, a muon must pass this |
905 | + pt cut, after smearing. |
906 | + |
907 | +.. describe:: ptElectronMin: <float> |
908 | + |
909 | + To be included in the above counts, an electron must pass this |
910 | + pt cut, after smearing. |
911 | + |
912 | +.. describe:: ptPhotonMin: <float> |
913 | + |
914 | + To be included in the above counts, a photon must pass this |
915 | + pt cut, after smearing. |
916 | + |
917 | +.. describe:: ptJetMin: <float> |
918 | + |
919 | + To be included in the above counts, a jet must pass this |
920 | + pt cut, after smearing. This cut is also applied before a jet |
921 | + is included in the :math:`H_T` sum. |
922 | + |
923 | +.. describe:: metMin: <float> |
924 | + |
925 | + The minimum amount of missing transverse energy |
926 | + (transverse energy imbalance). |
927 | + |
928 | +.. describe:: htMin: <float> |
929 | + |
930 | + The minimum amount of :math:`H_T`, defined as the scalar sum |
931 | + of jet pt. Jets are only considered if the pass the minimum |
932 | + jet pt threshold ``ptJetMin``, above. |
933 | + |
934 | +Pileup Parameters |
935 | +------------------------------- |
936 | + |
937 | +.. describe:: pileupN: <integer> |
938 | + |
939 | + The desired amount of pileup. Behavior differs depending on |
940 | + pileupType parameter. |
941 | + |
942 | +.. describe:: pileupType: <poisson|flat|pileupN> |
943 | + |
944 | + Choose the distribution of pileup events. |
945 | + |
946 | + poisson |
947 | + Take the number of pileup interactions from the Poisson distribution |
948 | + with mean "pileupN". |
949 | + |
950 | + flat |
951 | + Take the number of pileup interactions from a uniform distribution |
952 | + from [0,pileupN]. |
953 | + |
954 | + pileupN |
955 | + All events will have "pileupN" pileup events. |
956 | + |
957 | +Jet Background Subtraction (Pileup Subtraction) |
958 | +------------------------------------------------- |
959 | + |
960 | +Jet area pileup subtraction using the `FastJet <http://fastjet.fr>`_ |
961 | +package may be performed. See the fastjet documentation for details. |
962 | + |
963 | +.. describe:: jetBakOn: <bool> |
964 | + |
965 | + Set true to enable jet background subtraction, false to disable. |
966 | + |
967 | +.. describe:: jetBakAlg: <kt|ca|antikt> |
968 | + |
969 | + The jet algorithm to use for background estimation. These options are |
970 | + the same as the ones for "jetAlg". "antikt" is not recommended. |
971 | + |
972 | +.. describe:: jetBakAlgR: <float> |
973 | + |
974 | + The size parameter for the background estimation jet algorithm. The |
975 | + fastjet documentation recommends sizes from 0.4 to 0.6, favoring |
976 | + smaller values for busy events. |
977 | + |
978 | +.. describe:: jetBakAreaType: <active_area_explicit_ghosts|active_area|passive_area|one_ghost_passive_area> |
979 | + |
980 | + The type of jet area. See fastjet documentation for details. |
981 | + |
982 | +Muon Resolution Parameters |
983 | +------------------------------- |
984 | + |
985 | +.. describe:: muonResEtaRanges; |
986 | + |
987 | + A list of \|eta\| Ranges. This list allows for different resolutions in |
988 | + different \|eta\| regions. Each range is itself a two element list. |
989 | + :: |
990 | + |
991 | + muonResEtaRanges: |
992 | + - [minEta, MaxEta] #first eta range |
993 | + - [minEta, MaxEta] #second eta range |
994 | + |
995 | +.. describe:: muonResConstTerm: |
996 | + |
997 | + A list of muon resolution constant terms. This must be the same length as |
998 | + muonResEtaRanges |
999 | + |
1000 | +.. describe:: muonResSqrtTerm: |
1001 | + |
1002 | + A list of muon resolution coefficients for Sqrt(momentum) terms, |
1003 | + for momentum in TeV. |
1004 | + This must be the same length as muonResEtaRanges |
1005 | + |
1006 | +.. describe:: muonResHighPtCut: |
1007 | + |
1008 | + A list of muon resolution HighPtCuts, for momentum in GeV. |
1009 | + Above this cut, the following HighPt parameters are used. |
1010 | + This must be the same length as muonResEtaRanges |
1011 | + |
1012 | +.. describe:: muonResHighPtConstTerm: |
1013 | + |
1014 | + A list of muon resolution constant terms, for use above the |
1015 | + muonResHighPtCut. |
1016 | + This must be the same length as muonResEtaRanges. |
1017 | + |
1018 | +.. describe:: muonResHighPtConstTerm: |
1019 | + |
1020 | + A list of muon resolution constant terms, for use above the |
1021 | + muonResHighPtCut. |
1022 | + This must be the same length as muonResEtaRanges. |
1023 | + |
1024 | +.. describe:: muonResHighPtSqrtTerm: |
1025 | + |
1026 | + A list of muon resolution coefficients for Sqrt(momentum) terms, |
1027 | + for momentum in TeV, |
1028 | + for use above the muonResHighPtCut. |
1029 | + This must be the same length as muonResEtaRanges. |
1030 | + |
1031 | +Photon and Electron Resolution Parameters |
1032 | +------------------------------------------- |
1033 | + |
1034 | +Photon Resolution is given by the equation: |
1035 | + |
1036 | +.. math:: |
1037 | + |
1038 | + \sigma = \sqrt{(a/E)^2+(b/Sqrt(E))^2+(c)^2} |
1039 | + |
1040 | +Below, these options are described as |
1041 | + |
1042 | +a |
1043 | + 1/E Term |
1044 | + |
1045 | +b |
1046 | + 1/Sqrt(E) Term |
1047 | + |
1048 | +c |
1049 | + Constant Term |
1050 | + |
1051 | +Electron resolution is treated the same, except at low pt, where the tracker |
1052 | +makes the resolution better. Below a given pt cut, the electron resolution |
1053 | +is considered constant. |
1054 | + |
1055 | +.. describe:: photonResEtaRanges; |
1056 | + |
1057 | + A list of \|eta\| Ranges. This list allows for different resolutions in |
1058 | + different \|eta\| regions. Each range is itself a two element list. |
1059 | + :: |
1060 | + |
1061 | + photonResEtaRanges: |
1062 | + - [minEta, MaxEta] #first eta range |
1063 | + - [minEta, MaxEta] #second eta range |
1064 | + |
1065 | +.. describe:: photonResConstTerm: |
1066 | + |
1067 | + A list of photon resolution constant terms. This must be the same length as |
1068 | + photonResEtaRanges |
1069 | + |
1070 | +.. describe:: photonResOneOverETerm: |
1071 | + |
1072 | + A list of photon coefficients to 1/E terms. This must be the same length as |
1073 | + photonResEtaRanges |
1074 | + |
1075 | +.. describe:: photonResOneOverSqrtETerm: |
1076 | + |
1077 | + A list of photon coefficients to 1/Sqrt(E) terms. |
1078 | + This must be the same length as |
1079 | + photonResEtaRanges |
1080 | + |
1081 | +.. describe:: electronResPtCut: <float> |
1082 | + |
1083 | + Below this pt, electrons will have a constant resolution, given below. |
1084 | + Above this pt, electrons will be smeared the same as photons. |
1085 | + |
1086 | +.. describe:: electronResConstantTerm: <float> |
1087 | + |
1088 | + Below the electronResPtCut, this constant resolution is applied. |
1089 | + |
1090 | + |
1091 | +Jet Resolution Parameters |
1092 | +------------------------------- |
1093 | + |
1094 | +Jet Resolution is given by the equation: |
1095 | + |
1096 | +.. math:: |
1097 | + |
1098 | + \sigma = \sqrt{(a/E)^2+(b/Sqrt(E))^2+(c)^2} |
1099 | + |
1100 | +Below, these options are described as |
1101 | + |
1102 | +a |
1103 | + 1/E Term |
1104 | + |
1105 | +b |
1106 | + 1/Sqrt(E) Term |
1107 | + |
1108 | +c |
1109 | + Constant Term |
1110 | + |
1111 | +.. describe:: jetResEtaRanges; |
1112 | + |
1113 | + A list of \|eta\| Ranges. This list allows for different resolutions in |
1114 | + different \|eta\| regions. Each range is itself a two element list. |
1115 | + :: |
1116 | + |
1117 | + jetResEtaRanges: |
1118 | + - [minEta, MaxEta] #first eta range |
1119 | + - [minEta, MaxEta] #second eta range |
1120 | + |
1121 | +.. describe:: jetResConstTerm: |
1122 | + |
1123 | + A list of jet resolution constant terms. This must be the same length as |
1124 | + jetResEtaRanges |
1125 | + |
1126 | +.. describe:: jetResOneOverETerm: |
1127 | + |
1128 | + A list of jet coefficients to 1/E terms. This must be the same length as |
1129 | + jetResEtaRanges |
1130 | + |
1131 | +.. describe:: jetResOneOverSqrtETerm: |
1132 | + |
1133 | + A list of jet coefficients to 1/Sqrt(E) terms. |
1134 | + This must be the same length as |
1135 | + jetResEtaRanges |
1136 | + |
1137 | +.. describe:: jetResPtCut: |
1138 | + |
1139 | + Below this pt, jets are not smeared. This can be used to keep many low-pt |
1140 | + jets from being smeared by resolution parameters that are not applicable |
1141 | + to low-pt. |
1142 | |
1143 | === added directory 'docs/text' |
1144 | === removed file 'external/HepMC/.sconsign.dblite' |
1145 | Binary files external/HepMC/.sconsign.dblite 2012-02-17 10:56:24 +0000 and external/HepMC/.sconsign.dblite 1970-01-01 00:00:00 +0000 differ |
1146 | === modified file 'external/SConscript' |
1147 | --- external/SConscript 2012-04-25 09:31:26 +0000 |
1148 | +++ external/SConscript 2013-05-01 15:50:43 +0000 |
1149 | @@ -1,11 +1,12 @@ |
1150 | # SPODS--Simple Physics Object based Detector Simulation |
1151 | -# Copyright (C) 2011, 2012 Justin Hugon |
1152 | +# Copyright (C) 2011, 2012, 2013 Justin Hugon |
1153 | |
1154 | #Versions |
1155 | # scons: 2.1.0 |
1156 | # yaml-cpp: 0.2.7 |
1157 | # HepMC: 2.06.05 |
1158 | # fastjet: 3.0.1 |
1159 | +# tclap: 1.2.1 |
1160 | |
1161 | SConscript([ |
1162 | "yaml-cpp/SConscript", |
1163 | |
1164 | === removed file 'external/fastjet/.sconsign.dblite' |
1165 | Binary files external/fastjet/.sconsign.dblite 2012-02-17 10:56:24 +0000 and external/fastjet/.sconsign.dblite 1970-01-01 00:00:00 +0000 differ |
1166 | === added directory 'external/tclap' |
1167 | === added file 'external/tclap/AUTHORS' |
1168 | --- external/tclap/AUTHORS 1970-01-01 00:00:00 +0000 |
1169 | +++ external/tclap/AUTHORS 2013-05-01 15:50:43 +0000 |
1170 | @@ -0,0 +1,6 @@ |
1171 | + |
1172 | +original author: Michael E. Smoot |
1173 | +invaluable contributions: Daniel Aarno |
1174 | +more contributions: Erik Zeek |
1175 | +more contributions: Fabien Carmagnac (Tinbergen-AM) |
1176 | +outstanding editing: Carol Smoot |
1177 | |
1178 | === added file 'external/tclap/COPYING' |
1179 | --- external/tclap/COPYING 1970-01-01 00:00:00 +0000 |
1180 | +++ external/tclap/COPYING 2013-05-01 15:50:43 +0000 |
1181 | @@ -0,0 +1,25 @@ |
1182 | + |
1183 | + |
1184 | +Copyright (c) 2003 Michael E. Smoot |
1185 | + |
1186 | +Permission is hereby granted, free of charge, to any person |
1187 | +obtaining a copy of this software and associated documentation |
1188 | +files (the "Software"), to deal in the Software without restriction, |
1189 | +including without limitation the rights to use, copy, modify, merge, |
1190 | +publish, distribute, sublicense, and/or sell copies of the Software, |
1191 | +and to permit persons to whom the Software is furnished to do so, |
1192 | +subject to the following conditions: |
1193 | + |
1194 | +The above copyright notice and this permission notice shall be |
1195 | +included in all copies or substantial portions of the Software. |
1196 | + |
1197 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
1198 | +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
1199 | +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
1200 | +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
1201 | +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN |
1202 | +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR |
1203 | +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
1204 | +THE SOFTWARE. |
1205 | + |
1206 | + |
1207 | |
1208 | === added file 'external/tclap/ChangeLog' |
1209 | --- external/tclap/ChangeLog 1970-01-01 00:00:00 +0000 |
1210 | +++ external/tclap/ChangeLog 2013-05-01 15:50:43 +0000 |
1211 | @@ -0,0 +1,1760 @@ |
1212 | +2011-04-10 17:08 mes5k |
1213 | + |
1214 | + * include/tclap/Arg.h: patch that allows arg start strings to be |
1215 | + pound defined to easily conform to different platforms |
1216 | + |
1217 | +2011-04-09 11:58 mes5k |
1218 | + |
1219 | + * docs/Makefile.am: being slightly more precise about what we clean |
1220 | + |
1221 | +2011-04-09 11:30 mes5k |
1222 | + |
1223 | + * include/tclap/: DocBookOutput.h, StdOutput.h, |
1224 | + ZshCompletionOutput.h: fixed shadow variable name problem |
1225 | + |
1226 | +2011-04-09 11:05 mes5k |
1227 | + |
1228 | + * include/tclap/CmdLine.h: fixed minor memory leak |
1229 | + |
1230 | +2011-03-15 04:26 macbishop |
1231 | + |
1232 | + * configure.in, config/ac_cxx_warn_effective_cxx.m4: Check if |
1233 | + compiler supports Weffec++ and if so use it (fixes compilation |
1234 | + issue with e.g. SunStudio compiler) |
1235 | + |
1236 | +2011-01-15 09:45 macbishop |
1237 | + |
1238 | + * include/tclap/ArgTraits.h: Updated documentation for ArgTraits to |
1239 | + reference StringLike and ValueLike classes. |
1240 | + |
1241 | +2011-01-15 09:32 macbishop |
1242 | + |
1243 | + * examples/test10.cpp: Added explicit cast to supress warning about |
1244 | + deprecated conversion from string constant to char* |
1245 | + |
1246 | +2011-01-02 17:18 mes5k |
1247 | + |
1248 | + * docs/Makefile.am: now using a slightly different variable for doc |
1249 | + install to support out-of-tree builds |
1250 | + |
1251 | +2011-01-02 16:37 mes5k |
1252 | + |
1253 | + * configure.in: bumped version number to 1.2.1 |
1254 | + |
1255 | +2011-01-02 16:30 mes5k |
1256 | + |
1257 | + * docs/style.css: tweaked style so it doesn't blink |
1258 | + |
1259 | +2011-01-02 16:21 mes5k |
1260 | + |
1261 | + * tests/: test57.out, test57.sh, test76.out: tweaked tests to |
1262 | + reflect fix for mutually exclusive switches |
1263 | + |
1264 | +2011-01-02 16:20 mes5k |
1265 | + |
1266 | + * include/tclap/: SwitchArg.h, XorHandler.h: finally fixed bug |
1267 | + relating to mutually exclusive combined switched |
1268 | + |
1269 | +2011-01-02 15:12 mes5k |
1270 | + |
1271 | + * include/tclap/Arg.h: minor reformat |
1272 | + |
1273 | +2011-01-02 15:10 mes5k |
1274 | + |
1275 | + * include/tclap/CmdLine.h: minor reformatting |
1276 | + |
1277 | +2011-01-02 12:13 mes5k |
1278 | + |
1279 | + * examples/Makefile.am, examples/test20.cpp, tests/Makefile.am, |
1280 | + tests/test74.out, tests/test74.sh, tests/test75.out, |
1281 | + tests/test75.sh, tests/test76.out, tests/test76.sh, |
1282 | + tests/test77.out, tests/test77.sh: added failing tests for XOR |
1283 | + error message bug |
1284 | + |
1285 | +2011-01-02 11:52 mes5k |
1286 | + |
1287 | + * include/tclap/StandardTraits.h: applied Tom Fogal's win64 patch |
1288 | + for size_t |
1289 | + |
1290 | +2011-01-02 11:38 mes5k |
1291 | + |
1292 | + * docs/Makefile.am: hopefully fixed out-of-tree doc installation |
1293 | + |
1294 | +2011-01-02 10:50 mes5k |
1295 | + |
1296 | + * include/tclap/: Arg.h, ArgTraits.h, CmdLine.h, HelpVisitor.h, |
1297 | + MultiArg.h, ValueArg.h, ValuesConstraint.h, VersionVisitor.h, |
1298 | + XorHandler.h, ZshCompletionOutput.h: fixed all effective c++ |
1299 | + warnings based on patch from Andrew Marlow |
1300 | + |
1301 | +2010-12-06 22:41 mes5k |
1302 | + |
1303 | + * configure.in: added more compiler warnings |
1304 | + |
1305 | +2009-10-24 20:49 mes5k |
1306 | + |
1307 | + * include/tclap/SwitchArg.h, include/tclap/ValueArg.h, |
1308 | + tests/test22.out, tests/test24.out: make error message a bit more |
1309 | + meaningful |
1310 | + |
1311 | +2009-10-23 14:42 mes5k |
1312 | + |
1313 | + * include/tclap/StandardTraits.h: added a check for wchar_t to deal |
1314 | + with a potential problem with MS compilers |
1315 | + |
1316 | +2009-09-28 11:28 mes5k |
1317 | + |
1318 | + * docs/index.html: updated for 1.2.0 |
1319 | + |
1320 | +2009-09-26 14:41 mes5k |
1321 | + |
1322 | + * docs/Makefile.am: another update to support older automake |
1323 | + |
1324 | +2009-09-26 14:23 mes5k |
1325 | + |
1326 | + * docs/Makefile.am: removed an errant space |
1327 | + |
1328 | +2009-09-26 14:15 mes5k |
1329 | + |
1330 | + * docs/Makefile.am: added a definition for docdir, which doesnt |
1331 | + exist for old versions of automake |
1332 | + |
1333 | +2009-09-26 14:02 mes5k |
1334 | + |
1335 | + * docs/Makefile.am: corrected the doc install directory structure |
1336 | + |
1337 | +2009-09-26 13:55 mes5k |
1338 | + |
1339 | + * NEWS: updated for 1.2.0 |
1340 | + |
1341 | +2009-09-26 13:53 mes5k |
1342 | + |
1343 | + * docs/: manual.html, manual.xml: updated for 1.2.0 including text |
1344 | + on ArgTraits |
1345 | + |
1346 | +2009-08-22 12:26 mes5k |
1347 | + |
1348 | + * Makefile.am, configure.in, tclap.pc.in, docs/Makefile.am, |
1349 | + examples/Makefile.am: applying patches to make gnu compiler args |
1350 | + conditional, to install docs, and to add pkgconfig support to the |
1351 | + installation |
1352 | + |
1353 | +2009-07-28 12:49 mes5k |
1354 | + |
1355 | + * configure.in, tests/Makefile.am, tests/test73.out, |
1356 | + tests/test73.sh: added test 73 based on bug reported by user |
1357 | + |
1358 | +2009-07-15 08:09 mes5k |
1359 | + |
1360 | + * include/tclap/UnlabeledValueArg.h: updated incorrect api docs |
1361 | + again |
1362 | + |
1363 | +2009-07-15 08:04 mes5k |
1364 | + |
1365 | + * include/tclap/UnlabeledValueArg.h: updated incorrect api doc |
1366 | + |
1367 | +2009-01-09 16:10 mes5k |
1368 | + |
1369 | + * AUTHORS: added author |
1370 | + |
1371 | +2009-01-09 16:05 mes5k |
1372 | + |
1373 | + * include/tclap/: Arg.h, CmdLine.h, CmdLineInterface.h, MultiArg.h, |
1374 | + MultiSwitchArg.h, SwitchArg.h, ValueArg.h: added support for |
1375 | + resetting a command line |
1376 | + |
1377 | +2008-11-07 12:04 mes5k |
1378 | + |
1379 | + * docs/manual.html, docs/manual.xml, examples/Makefile.am, |
1380 | + examples/test19.cpp, include/tclap/Arg.h, tests/Makefile.am, |
1381 | + tests/test29.out, tests/test29.sh, tests/test71.out, |
1382 | + tests/test71.sh, tests/test72.out, tests/test72.sh: added support |
1383 | + for parsing hex and octal ints as well as small fix to support |
1384 | + gcc 4.4 |
1385 | + |
1386 | +2008-09-10 11:29 mes5k |
1387 | + |
1388 | + * docs/manual.xml: updated note on xor |
1389 | + |
1390 | +2008-09-10 11:21 mes5k |
1391 | + |
1392 | + * docs/manual.xml: added note on xor |
1393 | + |
1394 | +2008-08-19 15:18 zeekec |
1395 | + |
1396 | + * examples/test18.cpp, include/tclap/CmdLine.h, tests/Makefile.am, |
1397 | + tests/test70.out, tests/test70.sh: Rethrow ExitExceptions if |
1398 | + we're not handling exceptions. |
1399 | + |
1400 | +2008-08-19 14:52 zeekec |
1401 | + |
1402 | + * include/tclap/Arg.h: Silence some compiler warnings. The const |
1403 | + on return-by-value is ignored. |
1404 | + |
1405 | +2008-07-21 10:20 zeekec |
1406 | + |
1407 | + * include/tclap/CmdLine.h, examples/Makefile.am, |
1408 | + examples/test18.cpp, tests/Makefile.am, tests/test69.out, |
1409 | + tests/test69.sh: Allow internal handling of parse errors to be |
1410 | + turned off. This allows exceptions for parse errors to be |
1411 | + propagated to the caller. Exiting the program in parse is a bad |
1412 | + idea generally, as we have no way of knowing what cleanup needs |
1413 | + to be done in the main program. |
1414 | + |
1415 | +2008-06-17 09:48 mes5k |
1416 | + |
1417 | + * include/tclap/StdOutput.h: bug in while loop |
1418 | + |
1419 | +2008-05-23 15:15 mes5k |
1420 | + |
1421 | + * include/tclap/: CmdLine.h, SwitchArg.h: added length checks to |
1422 | + strings that can otherwise break with Metroworks compilers |
1423 | + |
1424 | +2008-05-21 14:21 macbishop |
1425 | + |
1426 | + * examples/: Makefile.am, test17-a.cpp, test17.cpp: Added test that |
1427 | + tclap does not define any hard symbols (bug 1907017) |
1428 | + |
1429 | +2008-05-13 12:04 mes5k |
1430 | + |
1431 | + * include/tclap/CmdLine.h: added a new include to support exit in |
1432 | + environments where it isnt defined |
1433 | + |
1434 | +2008-05-05 23:02 mes5k |
1435 | + |
1436 | + * examples/test7.cpp, include/tclap/Arg.h, tests/test46.out: |
1437 | + tweaked tests to support dashes in arg names |
1438 | + |
1439 | +2008-05-05 22:28 mes5k |
1440 | + |
1441 | + * include/tclap/Arg.h: allowed dash char in arg names |
1442 | + |
1443 | +2008-01-18 15:05 zeekec |
1444 | + |
1445 | + * include/tclap/Makefile.am: Added Traits files to the list of |
1446 | + files to be installed. |
1447 | + |
1448 | +2007-10-09 11:18 macbishop |
1449 | + |
1450 | + * examples/test14.cpp, examples/test15.cpp, examples/test16.cpp, |
1451 | + include/tclap/Arg.h, include/tclap/ArgTraits.h, |
1452 | + include/tclap/StandardTraits.h, configure.in, |
1453 | + config/ac_cxx_have_long_long.m4, examples/Makefile.am: |
1454 | + Refactoring of the arg-traits functionality. The purpose is to |
1455 | + make it easier to make you own classes, and types defined in the |
1456 | + standard library work well with tclap. I'll try to write up some |
1457 | + documenation of how to achieve this as-well. |
1458 | + |
1459 | +2007-10-01 23:33 mes5k |
1460 | + |
1461 | + * examples/test13.cpp: added attribution |
1462 | + |
1463 | +2007-10-01 23:30 mes5k |
1464 | + |
1465 | + * examples/test13.cpp: fixed a warning message |
1466 | + |
1467 | +2007-10-01 23:27 mes5k |
1468 | + |
1469 | + * examples/Makefile.am, examples/test13.cpp, |
1470 | + include/tclap/SwitchArg.h, tests/Makefile.am, tests/test68.out, |
1471 | + tests/test68.sh: a bug fix for parsing vectors of strings and |
1472 | + making sure that combined switches dont get confused |
1473 | + |
1474 | +2007-09-27 13:49 mes5k |
1475 | + |
1476 | + * include/tclap/OptionalUnlabeledTracker.h: added inline |
1477 | + |
1478 | +2007-09-12 19:09 mes5k |
1479 | + |
1480 | + * include/tclap/Arg.h, tests/test42.out, tests/test54.out: fixed |
1481 | + the delimiter in Arg::longID and Arg::shortID |
1482 | + |
1483 | +2007-09-01 01:17 macbishop |
1484 | + |
1485 | + * examples/Makefile.am, include/tclap/Arg.h, |
1486 | + include/tclap/DocBookOutput.h, |
1487 | + include/tclap/ZshCompletionOutput.h: Suppress some warnings, |
1488 | + compile with -Wextra by default |
1489 | + |
1490 | +2007-06-14 14:02 macbishop |
1491 | + |
1492 | + * include/tclap/Arg.h, include/tclap/MultiArg.h, |
1493 | + include/tclap/ValueArg.h, tests/runtests.sh, tests/test63.out, |
1494 | + tests/test63.sh, tests/test64.out, tests/test64.sh, |
1495 | + tests/test65.out, tests/test65.sh, tests/test66.out, |
1496 | + tests/test66.sh, tests/test67.out, tests/test67.sh, |
1497 | + tests/testCheck.sh, examples/Makefile.am, examples/test11.cpp, |
1498 | + examples/test12.cpp: Use ArgTraits instead of ValueExtractor |
1499 | + specialization Bug 1711487 |
1500 | + |
1501 | +2007-05-02 13:11 macbishop |
1502 | + |
1503 | + * examples/Makefile.am, examples/test10.cpp, |
1504 | + include/tclap/CmdLine.h, include/tclap/CmdLineInterface.h: Run |
1505 | + CmdLine::parse with argv as pointer to const pointer to const |
1506 | + char |
1507 | + |
1508 | +2007-04-20 22:28 mes5k |
1509 | + |
1510 | + * include/tclap/Arg.h, tests/test18.out: changed the blankChar to |
1511 | + the bell character instead of * |
1512 | + |
1513 | +2007-03-04 11:28 mes5k |
1514 | + |
1515 | + * examples/test4.cpp, include/tclap/DocBookOutput.h, |
1516 | + include/tclap/Makefile.am, include/tclap/ZshCompletionOutput.h: |
1517 | + added patches for ZSH and DocBook output |
1518 | + |
1519 | +2007-03-04 11:08 mes5k |
1520 | + |
1521 | + * include/tclap/: CmdLine.h, CmdLineInterface.h: added a new parse |
1522 | + method that accepts a vector |
1523 | + |
1524 | +2007-02-17 06:59 macbishop |
1525 | + |
1526 | + * include/tclap/: MultiArg.h, MultiSwitchArg.h, |
1527 | + UnlabeledMultiArg.h, UnlabeledValueArg.h, ValueArg.h: Supressed |
1528 | + some warnings |
1529 | + |
1530 | +2007-02-17 06:59 macbishop |
1531 | + |
1532 | + * include/tclap/CmdLine.h: Catch ExitException and exit. This |
1533 | + allows all resources used during parsing to be released, bug |
1534 | + 1662188. |
1535 | + |
1536 | +2007-02-17 06:57 macbishop |
1537 | + |
1538 | + * include/tclap/: DocBookOutput.h, HelpVisitor.h, StdOutput.h, |
1539 | + VersionVisitor.h: raise ExitException instead of calling exit |
1540 | + |
1541 | +2007-02-17 06:54 macbishop |
1542 | + |
1543 | + * include/tclap/ArgException.h: Added exit-exception class |
1544 | + |
1545 | +2007-02-17 06:52 macbishop |
1546 | + |
1547 | + * tests/testCheck.sh: Exit with exit status 1 if a test fails |
1548 | + (required by runtests.sh) |
1549 | + |
1550 | +2007-02-17 06:52 macbishop |
1551 | + |
1552 | + * tests/runtests.sh: Run the correct tests (not 0) |
1553 | + |
1554 | +2007-02-17 06:51 macbishop |
1555 | + |
1556 | + * examples/: test4.cpp, test7.cpp: Supressed warnings |
1557 | + |
1558 | +2007-02-07 18:12 mes5k |
1559 | + |
1560 | + * include/tclap/StdOutput.h: minor change to support a bug in |
1561 | + VisualC++ 2005 |
1562 | + |
1563 | +2006-11-26 10:42 mes5k |
1564 | + |
1565 | + * docs/: README, manual.html, manual.xml: updated docs to reflect |
1566 | + that Output must handle the exit rather than the CmdLine object |
1567 | + |
1568 | +2006-11-26 10:32 mes5k |
1569 | + |
1570 | + * include/tclap/: CmdLine.h, DocBookOutput.h, StdOutput.h: moved |
1571 | + exit from CmdLine to StdOutput to provide users more control over |
1572 | + when/how the exit happens |
1573 | + |
1574 | +2006-11-26 10:29 mes5k |
1575 | + |
1576 | + * examples/test4.cpp: added exit() to failure method |
1577 | + |
1578 | +2006-11-26 10:13 mes5k |
1579 | + |
1580 | + * docs/: manual.html, manual.xml: fixed typo in SwitchArg |
1581 | + constructors |
1582 | + |
1583 | +2006-11-04 14:05 mes5k |
1584 | + |
1585 | + * include/tclap/CmdLine.h, tests/Makefile.am, tests/test10.out, |
1586 | + tests/test17.out, tests/test4.out, tests/test51.out, |
1587 | + tests/test62.out, tests/test62.sh: printing more useful message |
1588 | + when missing required args and catching ArgException reference |
1589 | + |
1590 | +2006-10-06 09:49 mes5k |
1591 | + |
1592 | + * include/tclap/SwitchArg.h, tests/Makefile.am, tests/test61.out, |
1593 | + tests/test61.sh: made a fix for a bug where - chars were within |
1594 | + unlabeled value args |
1595 | + |
1596 | +2006-08-21 23:13 mes5k |
1597 | + |
1598 | + * include/tclap/StdOutput.h: minor tweak to a min function |
1599 | + signature |
1600 | + |
1601 | +2006-08-18 20:05 mes5k |
1602 | + |
1603 | + * docs/index.html: updated for 1.1.0 |
1604 | + |
1605 | +2006-08-18 20:04 mes5k |
1606 | + |
1607 | + * AUTHORS: new author |
1608 | + |
1609 | +2006-05-14 17:55 mes5k |
1610 | + |
1611 | + * config/Makefile.am: so that m4 macros will be included in release |
1612 | + files to ease incorporation of tclap in other projects |
1613 | + |
1614 | +2006-05-14 17:36 mes5k |
1615 | + |
1616 | + * include/tclap/CmdLine.h: removed a deprecated constructor |
1617 | + |
1618 | +2006-05-14 17:35 mes5k |
1619 | + |
1620 | + * docs/: manual.xml, manual.html: manual update |
1621 | + |
1622 | +2006-05-14 13:11 mes5k |
1623 | + |
1624 | + * Makefile.am, configure.in: added m4 macros to help others |
1625 | + distributing the software and updated the version number |
1626 | + |
1627 | +2006-05-14 12:52 mes5k |
1628 | + |
1629 | + * config/bb_enable_doxygen.m4: for some reason, the AS_HELP_STRING |
1630 | + function was messing up autoconf 2.57 -- maybe that's just an old |
1631 | + version? We can change it back as necessary |
1632 | + |
1633 | +2006-05-14 12:51 mes5k |
1634 | + |
1635 | + * examples/test8.cpp, include/tclap/SwitchArg.h: SwitchArg |
1636 | + interface change |
1637 | + |
1638 | +2006-04-18 03:59 macbishop |
1639 | + |
1640 | + * docs/: manual.html, manual.xml: Updated the example |
1641 | + |
1642 | +2006-04-05 23:44 mes5k |
1643 | + |
1644 | + * include/tclap/ArgException.h: patch for a mem leak in |
1645 | + ArgException |
1646 | + |
1647 | +2006-03-18 11:16 mes5k |
1648 | + |
1649 | + * include/tclap/: CmdLineOutput.h, Visitor.h: added virtual |
1650 | + destructors |
1651 | + |
1652 | +2006-02-21 18:15 zeekec |
1653 | + |
1654 | + * examples/: test1.cpp, test2.cpp, test3.cpp, test4.cpp, test5.cpp, |
1655 | + test6.cpp, test7.cpp, test8.cpp, test9.cpp: Use local header |
1656 | + files first instead of installed headers. |
1657 | + |
1658 | +2006-02-21 18:12 zeekec |
1659 | + |
1660 | + * Makefile.am: Added ACLOCAL_AMFLAGS for autoreconf. |
1661 | + |
1662 | +2006-02-21 18:10 zeekec |
1663 | + |
1664 | + * config/: ac_cxx_have_sstream.m4, ac_cxx_have_strstream.m4: Moved |
1665 | + the requires, header check, and language save and restore outside |
1666 | + of the cache check. |
1667 | + |
1668 | +2006-02-21 04:00 zeekec |
1669 | + |
1670 | + * config/: stamp-h.in, stamp-h1: Removed timestamp files (generated |
1671 | + by configure). |
1672 | + |
1673 | +2006-02-21 03:05 zeekec |
1674 | + |
1675 | + * include/tclap/Constraint.h: Added virtual destructor to silence |
1676 | + warnings. |
1677 | + |
1678 | +2006-02-21 03:01 zeekec |
1679 | + |
1680 | + * ChangeLog: Generated with cvs2cl. |
1681 | + |
1682 | +2005-09-10 16:25 mes5k |
1683 | + |
1684 | + * config/stamp-h1, examples/test2.cpp, examples/test3.cpp, |
1685 | + examples/test5.cpp, examples/test8.cpp, include/tclap/Arg.h, |
1686 | + include/tclap/CmdLine.h, include/tclap/MultiArg.h, |
1687 | + include/tclap/StdOutput.h, include/tclap/UnlabeledMultiArg.h, |
1688 | + include/tclap/UnlabeledValueArg.h, include/tclap/ValueArg.h, |
1689 | + include/tclap/XorHandler.h: added gcc warning patch |
1690 | + |
1691 | +2005-07-12 20:36 zeekec |
1692 | + |
1693 | + * examples/Makefile.am: Set INCLUDES to top_srcdir for out of |
1694 | + source builds. |
1695 | + |
1696 | +2005-07-12 20:33 zeekec |
1697 | + |
1698 | + * include/tclap/: UnlabeledMultiArg.h, UnlabeledValueArg.h: Add |
1699 | + using toString statements (for gcc >= 3.4). |
1700 | + |
1701 | +2005-07-12 20:31 zeekec |
1702 | + |
1703 | + * config/bb_enable_doxygen.m4: Properly quote BB_ENABLE_DOXYGEN. |
1704 | + |
1705 | +2005-06-29 15:04 mes5k |
1706 | + |
1707 | + * include/tclap/Arg.h: merged some new changes |
1708 | + |
1709 | +2005-06-08 08:28 mes5k |
1710 | + |
1711 | + * docs/index.html: fixed spelling mistake |
1712 | + |
1713 | +2005-06-02 19:35 mes5k |
1714 | + |
1715 | + * include/tclap/: Makefile.am, OptionalUnlabeledTracker.h, |
1716 | + UnlabeledMultiArg.h, UnlabeledValueArg.h: fix to handle optional |
1717 | + unlabeled args |
1718 | + |
1719 | +2005-06-02 19:33 mes5k |
1720 | + |
1721 | + * examples/: test2.cpp, test3.cpp, test7.cpp, test8.cpp, test9.cpp: |
1722 | + Unlabeled changes |
1723 | + |
1724 | +2005-02-03 15:04 mes5k |
1725 | + |
1726 | + * include/tclap/: Arg.h, DocBookOutput.h, MultiArg.h: updated |
1727 | + docbook output |
1728 | + |
1729 | +2005-02-03 08:08 mes5k |
1730 | + |
1731 | + * include/tclap/: ValuesConstraint.h, XorHandler.h: add std:: |
1732 | + prefix to some finds |
1733 | + |
1734 | +2005-02-01 13:35 zeekec |
1735 | + |
1736 | + * include/tclap/CmdLine.h: Made deleteOnExit's protected to |
1737 | + facilitate derivation. |
1738 | + |
1739 | +2005-02-01 13:30 zeekec |
1740 | + |
1741 | + * config/config.h.in: Removed autotools generated file. |
1742 | + |
1743 | +2005-01-28 13:26 zeekec |
1744 | + |
1745 | + * configure.in, docs/Doxyfile.in, tests/Makefile.am, |
1746 | + tests/test1.sh, tests/test10.sh, tests/test11.sh, |
1747 | + tests/test12.sh, tests/test13.sh, tests/test14.sh, |
1748 | + tests/test15.sh, tests/test16.sh, tests/test17.sh, |
1749 | + tests/test18.sh, tests/test19.sh, tests/test2.sh, |
1750 | + tests/test20.sh, tests/test21.sh, tests/test22.sh, |
1751 | + tests/test23.sh, tests/test24.sh, tests/test25.sh, |
1752 | + tests/test26.sh, tests/test27.sh, tests/test28.sh, |
1753 | + tests/test29.sh, tests/test3.sh, tests/test30.sh, |
1754 | + tests/test31.sh, tests/test32.sh, tests/test33.sh, |
1755 | + tests/test34.sh, tests/test35.sh, tests/test36.sh, |
1756 | + tests/test37.sh, tests/test38.sh, tests/test39.sh, |
1757 | + tests/test4.sh, tests/test40.sh, tests/test41.sh, |
1758 | + tests/test42.sh, tests/test43.sh, tests/test44.sh, |
1759 | + tests/test45.sh, tests/test46.sh, tests/test47.sh, |
1760 | + tests/test48.sh, tests/test49.sh, tests/test5.sh, |
1761 | + tests/test50.sh, tests/test51.sh, tests/test52.sh, |
1762 | + tests/test53.sh, tests/test54.sh, tests/test55.sh, |
1763 | + tests/test56.sh, tests/test57.sh, tests/test58.sh, |
1764 | + tests/test59.sh, tests/test6.sh, tests/test60.sh, tests/test7.sh, |
1765 | + tests/test8.sh, tests/test9.sh: Made changes to directory |
1766 | + references to allow out of source builds. |
1767 | + |
1768 | +2005-01-26 10:25 mes5k |
1769 | + |
1770 | + * aclocal.m4: doh |
1771 | + |
1772 | +2005-01-23 19:18 mes5k |
1773 | + |
1774 | + * include/tclap/CmdLine.h: removed -v from version switch |
1775 | + |
1776 | +2005-01-23 19:14 mes5k |
1777 | + |
1778 | + * include/tclap/Arg.h: removed value required |
1779 | + |
1780 | +2005-01-23 19:03 mes5k |
1781 | + |
1782 | + * examples/: test2.cpp, test3.cpp, test6.cpp, test8.cpp, test9.cpp: |
1783 | + UnlabeledValueArg change |
1784 | + |
1785 | +2005-01-23 19:02 mes5k |
1786 | + |
1787 | + * tests/: test10.out, test11.out, test12.out, test15.out, |
1788 | + test16.out, test17.out, test22.out, test23.out, test24.out, |
1789 | + test26.out, test27.out, test28.out, test29.out, test30.out, |
1790 | + test31.out, test32.out, test35.out, test36.out, test38.out, |
1791 | + test39.out, test4.out, test40.out, test41.out, test42.out, |
1792 | + test43.out, test44.out, test45.out, test46.out, test49.out, |
1793 | + test50.out, test51.out, test52.out, test53.out, test54.out, |
1794 | + test57.out, test59.out, test60.out, test7.out: new output for |
1795 | + default version and value required |
1796 | + |
1797 | +2005-01-23 19:01 mes5k |
1798 | + |
1799 | + * tests/: test59.sh, test8.sh: new style version and required |
1800 | + UnlabeledValueArgs |
1801 | + |
1802 | +2005-01-23 18:59 mes5k |
1803 | + |
1804 | + * tests/testCheck.sh: a script to compare test output |
1805 | + |
1806 | +2005-01-23 17:54 mes5k |
1807 | + |
1808 | + * include/tclap/UnlabeledValueArg.h: now optionally required |
1809 | + |
1810 | +2005-01-23 16:33 mes5k |
1811 | + |
1812 | + * tests/: test58.out, test59.out, test58.sh, test59.sh, test60.out, |
1813 | + test60.sh, Makefile.am: tests for MultiSwitchArg |
1814 | + |
1815 | +2005-01-23 16:27 mes5k |
1816 | + |
1817 | + * include/tclap/Makefile.am, examples/Makefile.am, |
1818 | + examples/test9.cpp: MultiSwitchArg |
1819 | + |
1820 | +2005-01-23 16:26 mes5k |
1821 | + |
1822 | + * include/tclap/: CmdLine.h, CmdLineInterface.h, StdOutput.h: added |
1823 | + a bool to the constructor that allows automatic -h and -v to be |
1824 | + turned off |
1825 | + |
1826 | +2005-01-23 14:57 mes5k |
1827 | + |
1828 | + * docs/: manual.html, manual.xml: added MultiSwitchArg docs |
1829 | + |
1830 | +2005-01-23 14:33 mes5k |
1831 | + |
1832 | + * include/tclap/MultiSwitchArg.h: fixed typo |
1833 | + |
1834 | +2005-01-23 14:29 mes5k |
1835 | + |
1836 | + * include/tclap/SwitchArg.h: Fixed minor bug involving combined |
1837 | + switch error messages: now they're consistent. |
1838 | + |
1839 | +2005-01-23 14:28 mes5k |
1840 | + |
1841 | + * include/tclap/MultiSwitchArg.h: initial checkin |
1842 | + |
1843 | +2005-01-22 20:41 mes5k |
1844 | + |
1845 | + * include/tclap/UnlabeledMultiArg.h: added alreadySet |
1846 | + |
1847 | +2005-01-20 20:13 mes5k |
1848 | + |
1849 | + * tests/Makefile.am: xor test |
1850 | + |
1851 | +2005-01-20 20:04 mes5k |
1852 | + |
1853 | + * examples/test5.cpp: change for xor bug |
1854 | + |
1855 | +2005-01-20 20:04 mes5k |
1856 | + |
1857 | + * tests/: test20.out, runtests.sh, test20.sh, test21.out, |
1858 | + test21.sh, test22.out, test23.out, test24.out, test25.out, |
1859 | + test25.sh, test33.out, test33.sh, test44.out, test57.out, |
1860 | + test57.sh: changes for xor bug |
1861 | + |
1862 | +2005-01-20 20:03 mes5k |
1863 | + |
1864 | + * include/tclap/: Arg.h, MultiArg.h, UnlabeledMultiArg.h, |
1865 | + XorHandler.h: fixed xor bug |
1866 | + |
1867 | +2005-01-17 12:48 macbishop |
1868 | + |
1869 | + * include/tclap/Arg.h: Removed check on description in |
1870 | + Arg::operator== since multiple args should be able to have the |
1871 | + same description. |
1872 | + |
1873 | +2005-01-06 20:41 mes5k |
1874 | + |
1875 | + * NEWS: updated for constraints |
1876 | + |
1877 | +2005-01-06 20:37 mes5k |
1878 | + |
1879 | + * docs/: manual.html, manual.xml: updated for constraints |
1880 | + |
1881 | +2005-01-06 20:05 mes5k |
1882 | + |
1883 | + * examples/test7.cpp: changed for constraint |
1884 | + |
1885 | +2005-01-06 20:00 mes5k |
1886 | + |
1887 | + * include/tclap/: MultiArg.h, ValueArg.h: fixed exceptions and |
1888 | + typeDesc for constraints |
1889 | + |
1890 | +2005-01-06 19:59 mes5k |
1891 | + |
1892 | + * tests/: test35.out, test36.out, test38.out, test39.out: changed |
1893 | + for constraints |
1894 | + |
1895 | +2005-01-06 19:07 mes5k |
1896 | + |
1897 | + * examples/test6.cpp: changed to constraint |
1898 | + |
1899 | +2005-01-06 19:06 mes5k |
1900 | + |
1901 | + * include/tclap/Makefile.am: added constraints |
1902 | + |
1903 | +2005-01-06 19:05 mes5k |
1904 | + |
1905 | + * include/tclap/: Constraint.h, ValuesConstraint.h: initial checkin |
1906 | + |
1907 | +2005-01-06 19:05 mes5k |
1908 | + |
1909 | + * include/tclap/StdOutput.h: comment change |
1910 | + |
1911 | +2005-01-06 19:01 mes5k |
1912 | + |
1913 | + * include/tclap/CmdLine.h: added Constraint includes |
1914 | + |
1915 | +2005-01-06 18:55 mes5k |
1916 | + |
1917 | + * include/tclap/: MultiArg.h, UnlabeledMultiArg.h, |
1918 | + UnlabeledValueArg.h, ValueArg.h: Changed allowedList to |
1919 | + Constraint |
1920 | + |
1921 | +2005-01-05 16:08 mes5k |
1922 | + |
1923 | + * configure.in: next vers |
1924 | + |
1925 | +2005-01-05 12:13 mes5k |
1926 | + |
1927 | + * NEWS: update |
1928 | + |
1929 | +2005-01-05 10:51 mes5k |
1930 | + |
1931 | + * docs/: manual.html, manual.xml: fixed output override bug |
1932 | + |
1933 | +2005-01-05 10:45 mes5k |
1934 | + |
1935 | + * tests/: test18.out, test43.out: change for output override bug |
1936 | + |
1937 | +2005-01-05 10:28 mes5k |
1938 | + |
1939 | + * examples/test4.cpp: fixed output override bug |
1940 | + |
1941 | +2005-01-05 10:22 mes5k |
1942 | + |
1943 | + * include/tclap/: CmdLine.h, HelpVisitor.h, VersionVisitor.h: fixed |
1944 | + output bug |
1945 | + |
1946 | +2005-01-04 14:01 mes5k |
1947 | + |
1948 | + * configure.in: 1.0.4 |
1949 | + |
1950 | +2005-01-04 13:16 mes5k |
1951 | + |
1952 | + * examples/test7.cpp: changed for long prog names bug |
1953 | + |
1954 | +2005-01-04 13:15 mes5k |
1955 | + |
1956 | + * tests/: test38.out, test39.out, test46.out: changed test7 for |
1957 | + long prog names |
1958 | + |
1959 | +2005-01-04 12:31 mes5k |
1960 | + |
1961 | + * NEWS: updates for 1.0.3a |
1962 | + |
1963 | +2005-01-04 12:21 mes5k |
1964 | + |
1965 | + * docs/manual.html, docs/manual.xml, include/tclap/CmdLine.h: fixed |
1966 | + output memory leak |
1967 | + |
1968 | +2004-12-08 21:10 mes5k |
1969 | + |
1970 | + * include/tclap/StdOutput.h: hacky fix to long prog name bug |
1971 | + |
1972 | +2004-12-07 19:57 mes5k |
1973 | + |
1974 | + * configure.in: 1.0.3a |
1975 | + |
1976 | +2004-12-07 19:53 mes5k |
1977 | + |
1978 | + * tests/: Makefile.am, test15.out, test16.out, test17.out, |
1979 | + test31.out, test32.out, test13.sh, test14.sh, test15.sh, |
1980 | + test16.sh, test17.sh, test42.out, test55.out, test55.sh, |
1981 | + test56.out, test56.sh: updated for - arg bug |
1982 | + |
1983 | +2004-12-07 19:51 mes5k |
1984 | + |
1985 | + * examples/test3.cpp: tweaked to support tests for '-' arg bug |
1986 | + |
1987 | +2004-12-07 18:16 mes5k |
1988 | + |
1989 | + * include/tclap/Arg.h: fixed a bug involving blank _flags and - as |
1990 | + an UnlabeledValueArg |
1991 | + |
1992 | +2004-12-03 12:19 mes5k |
1993 | + |
1994 | + * docs/style.css: minor tweak for h1 |
1995 | + |
1996 | +2004-12-03 12:10 mes5k |
1997 | + |
1998 | + * NEWS: update |
1999 | + |
2000 | +2004-12-03 11:39 mes5k |
2001 | + |
2002 | + * include/tclap/CmdLine.h: removed ostream include |
2003 | + |
2004 | +2004-11-30 19:11 mes5k |
2005 | + |
2006 | + * include/tclap/: Arg.h, CmdLine.h, CmdLineOutput.h, StdOutput.h: |
2007 | + cleaned up iterator names |
2008 | + |
2009 | +2004-11-30 19:10 mes5k |
2010 | + |
2011 | + * include/tclap/DocBookOutput.h: removed ostream |
2012 | + |
2013 | +2004-11-30 18:35 mes5k |
2014 | + |
2015 | + * configure.in, docs/Doxyfile.in: added dot check |
2016 | + |
2017 | +2004-11-24 19:58 mes5k |
2018 | + |
2019 | + * configure.in: 1.0.3 |
2020 | + |
2021 | +2004-11-24 19:57 mes5k |
2022 | + |
2023 | + * include/tclap/: UnlabeledMultiArg.h, UnlabeledValueArg.h: removed |
2024 | + two stage lookup ifdefs |
2025 | + |
2026 | +2004-11-24 19:56 mes5k |
2027 | + |
2028 | + * docs/index.html: updated |
2029 | + |
2030 | +2004-11-24 19:45 mes5k |
2031 | + |
2032 | + * docs/: manual.html, manual.xml: updates for using stuff and new |
2033 | + output |
2034 | + |
2035 | +2004-11-05 21:05 mes5k |
2036 | + |
2037 | + * include/tclap/: DocBookOutput.h, Makefile.am: adding docbook |
2038 | + stuff |
2039 | + |
2040 | +2004-11-04 21:07 mes5k |
2041 | + |
2042 | + * examples/test4.cpp: reflects new output handling |
2043 | + |
2044 | +2004-11-04 21:07 mes5k |
2045 | + |
2046 | + * include/tclap/: Arg.h, CmdLine.h, CmdLineInterface.h, |
2047 | + CmdLineOutput.h, HelpVisitor.h, Makefile.am, StdOutput.h, |
2048 | + VersionVisitor.h, XorHandler.h: changed output around |
2049 | + |
2050 | +2004-11-04 21:06 mes5k |
2051 | + |
2052 | + * include/tclap/PrintSensibly.h: subsumed by StdOutput |
2053 | + |
2054 | +2004-10-31 14:13 mes5k |
2055 | + |
2056 | + * docs/manual.html: tweak |
2057 | + |
2058 | +2004-10-30 15:58 mes5k |
2059 | + |
2060 | + * NEWS, README: updates |
2061 | + |
2062 | +2004-10-30 15:51 mes5k |
2063 | + |
2064 | + * docs/Makefile.am: added manual.xml |
2065 | + |
2066 | +2004-10-30 15:47 mes5k |
2067 | + |
2068 | + * docs/: manual.html, manual.xml, style.css: minor tweaks |
2069 | + |
2070 | +2004-10-30 15:34 mes5k |
2071 | + |
2072 | + * configure.in: 1.0.2 |
2073 | + |
2074 | +2004-10-30 15:30 mes5k |
2075 | + |
2076 | + * docs/README: init |
2077 | + |
2078 | +2004-10-30 15:30 mes5k |
2079 | + |
2080 | + * docs/style.css: new style |
2081 | + |
2082 | +2004-10-30 15:30 mes5k |
2083 | + |
2084 | + * docs/: manual.html, manual.xml: manual.html is now generated from |
2085 | + manual.xml |
2086 | + |
2087 | +2004-10-30 15:26 mes5k |
2088 | + |
2089 | + * include/tclap/: MultiArg.h, ValueArg.h: yet another fix for |
2090 | + HAVE_SSTREAM stuff |
2091 | + |
2092 | +2004-10-30 08:42 mes5k |
2093 | + |
2094 | + * NEWS: 1.0.1 |
2095 | + |
2096 | +2004-10-30 08:03 mes5k |
2097 | + |
2098 | + * configure.in: new release |
2099 | + |
2100 | +2004-10-28 09:41 mes5k |
2101 | + |
2102 | + * include/tclap/: ValueArg.h, MultiArg.h: fixed config.h problems |
2103 | + |
2104 | +2004-10-27 19:44 mes5k |
2105 | + |
2106 | + * docs/manual.xml: manual as docbook |
2107 | + |
2108 | +2004-10-22 08:56 mes5k |
2109 | + |
2110 | + * docs/style.css: added visited color to links |
2111 | + |
2112 | +2004-10-22 07:38 mes5k |
2113 | + |
2114 | + * docs/index.html: fixed mailto |
2115 | + |
2116 | +2004-10-21 18:58 mes5k |
2117 | + |
2118 | + * docs/: manual.html: minor tweaks |
2119 | + |
2120 | +2004-10-21 18:13 mes5k |
2121 | + |
2122 | + * docs/manual.html: updated for new test1 |
2123 | + |
2124 | +2004-10-21 18:02 mes5k |
2125 | + |
2126 | + * include/tclap/CmdLine.h: catch by ref |
2127 | + |
2128 | +2004-10-21 18:01 mes5k |
2129 | + |
2130 | + * examples/: test1.cpp, test2.cpp, test3.cpp, test4.cpp, test5.cpp, |
2131 | + test6.cpp, test7.cpp, test8.cpp: changed test1 and now catching |
2132 | + exceptions by ref |
2133 | + |
2134 | +2004-10-21 17:38 mes5k |
2135 | + |
2136 | + * tests/: test1.out, test1.sh, test2.out, test3.out, test3.sh, |
2137 | + test4.out, test40.out: changes for new test1 |
2138 | + |
2139 | +2004-10-21 15:50 mes5k |
2140 | + |
2141 | + * examples/test1.cpp: fixed includes |
2142 | + |
2143 | +2004-10-21 10:03 mes5k |
2144 | + |
2145 | + * docs/index.html: changed link |
2146 | + |
2147 | +2004-10-21 09:02 mes5k |
2148 | + |
2149 | + * include/tclap/: ValueArg.h, MultiArg.h: changed enum names |
2150 | + because of alpha conflicts |
2151 | + |
2152 | +2004-10-20 20:04 mes5k |
2153 | + |
2154 | + * include/tclap/: CmdLine.h, CmdLineInterface.h, MultiArg.h, |
2155 | + PrintSensibly.h, SwitchArg.h, UnlabeledMultiArg.h, |
2156 | + UnlabeledValueArg.h, ValueArg.h, XorHandler.h: cleaned up some |
2157 | + includes and added ifdefs for sstream |
2158 | + |
2159 | +2004-10-20 19:00 mes5k |
2160 | + |
2161 | + * examples/test5.cpp: fixed a bizarre bug |
2162 | + |
2163 | +2004-10-20 18:59 mes5k |
2164 | + |
2165 | + * tests/: test20.out, test21.out, test25.out, test33.out: fixed a |
2166 | + test5 bug |
2167 | + |
2168 | +2004-10-20 16:17 mes5k |
2169 | + |
2170 | + * Makefile.am: added msc |
2171 | + |
2172 | +2004-10-20 16:06 mes5k |
2173 | + |
2174 | + * configure.in: added msc stuff |
2175 | + |
2176 | +2004-10-20 16:05 mes5k |
2177 | + |
2178 | + * msc/: examples/Makefile.am, Makefile.am: init |
2179 | + |
2180 | +2004-10-20 16:00 mes5k |
2181 | + |
2182 | + * NEWS: update |
2183 | + |
2184 | +2004-10-20 15:58 mes5k |
2185 | + |
2186 | + * msc/README: init |
2187 | + |
2188 | +2004-10-20 15:47 mes5k |
2189 | + |
2190 | + * msc/: tclap-beta.ncb, tclap-beta.sln, tclap-beta.suo, |
2191 | + tclap-beta.vcproj, examples/test1.vcproj, examples/test2.vcproj, |
2192 | + examples/test3.vcproj, examples/test4.vcproj, |
2193 | + examples/test5.vcproj, examples/test6.vcproj, |
2194 | + examples/test7.vcproj, examples/test8.vcproj: init |
2195 | + |
2196 | +2004-10-19 11:18 mes5k |
2197 | + |
2198 | + * docs/Makefile.am: added stylesheet |
2199 | + |
2200 | +2004-10-19 10:51 mes5k |
2201 | + |
2202 | + * AUTHORS: more |
2203 | + |
2204 | +2004-10-19 10:39 mes5k |
2205 | + |
2206 | + * NEWS, AUTHORS: added 1.0 notes |
2207 | + |
2208 | +2004-10-14 13:04 mes5k |
2209 | + |
2210 | + * examples/test4.cpp: shows how to alter output |
2211 | + |
2212 | +2004-10-14 13:03 mes5k |
2213 | + |
2214 | + * tests/test18.out: updated output |
2215 | + |
2216 | +2004-10-14 12:03 mes5k |
2217 | + |
2218 | + * include/tclap/CmdLineInterface.h: added failure to the interface |
2219 | + |
2220 | +2004-10-14 11:07 mes5k |
2221 | + |
2222 | + * include/tclap/ArgException.h: doh. now what() is proper |
2223 | + |
2224 | +2004-10-14 10:44 mes5k |
2225 | + |
2226 | + * include/tclap/CmdLine.h: made destructor virtual |
2227 | + |
2228 | +2004-10-14 10:20 mes5k |
2229 | + |
2230 | + * include/tclap/CmdLine.h: moved all output handling into separate |
2231 | + methods |
2232 | + |
2233 | +2004-10-14 10:19 mes5k |
2234 | + |
2235 | + * include/tclap/Arg.h: made processArg pure virtual |
2236 | + |
2237 | +2004-10-14 10:19 mes5k |
2238 | + |
2239 | + * include/tclap/ArgException.h: fixed documentation omission |
2240 | + |
2241 | +2004-10-12 14:09 mes5k |
2242 | + |
2243 | + * docs/style.css: tweak |
2244 | + |
2245 | +2004-10-07 11:22 mes5k |
2246 | + |
2247 | + * docs/style.css: color change |
2248 | + |
2249 | +2004-10-01 10:54 mes5k |
2250 | + |
2251 | + * include/tclap/ArgException.h: added type description |
2252 | + |
2253 | +2004-09-30 18:16 mes5k |
2254 | + |
2255 | + * docs/: index.html, manual.html, style.css: added CSS style |
2256 | + |
2257 | +2004-09-30 09:17 mes5k |
2258 | + |
2259 | + * docs/manual.html: more updates |
2260 | + |
2261 | +2004-09-29 08:24 mes5k |
2262 | + |
2263 | + * docs/: index.html, manual.html: proofing updates |
2264 | + |
2265 | +2004-09-27 14:37 mes5k |
2266 | + |
2267 | + * docs/: index.html, manual.html: xhtml and tidied |
2268 | + |
2269 | +2004-09-27 14:36 mes5k |
2270 | + |
2271 | + * docs/Doxyfile.in: added dot handling |
2272 | + |
2273 | +2004-09-27 14:30 mes5k |
2274 | + |
2275 | + * include/tclap/: Arg.h, ArgException.h, CmdLine.h, MultiArg.h, |
2276 | + SwitchArg.h, ValueArg.h: added new Exception classes |
2277 | + |
2278 | +2004-09-27 12:53 mes5k |
2279 | + |
2280 | + * include/tclap/ArgException.h: minor tweaks |
2281 | + |
2282 | +2004-09-26 19:32 mes5k |
2283 | + |
2284 | + * docs/manual.html: updates yet again |
2285 | + |
2286 | +2004-09-26 19:00 mes5k |
2287 | + |
2288 | + * docs/manual.html: updates |
2289 | + |
2290 | +2004-09-26 18:50 mes5k |
2291 | + |
2292 | + * docs/manual.html: substantial updates |
2293 | + |
2294 | +2004-09-26 16:54 mes5k |
2295 | + |
2296 | + * include/tclap/: Arg.h, CmdLine.h, CmdLineInterface.h, MultiArg.h, |
2297 | + PrintSensibly.h, ValueArg.h: minor formatting |
2298 | + |
2299 | +2004-09-26 15:50 mes5k |
2300 | + |
2301 | + * docs/manual.html: updates |
2302 | + |
2303 | +2004-09-26 15:17 mes5k |
2304 | + |
2305 | + * tests/runtests.sh: minor fix so that we run all tests |
2306 | + |
2307 | +2004-09-26 11:51 macbishop |
2308 | + |
2309 | + * docs/Doxyfile.in: Removed src subdir |
2310 | + |
2311 | +2004-09-26 11:49 macbishop |
2312 | + |
2313 | + * examples/Makefile.am: Removed libtclap.a deps |
2314 | + |
2315 | +2004-09-26 11:46 macbishop |
2316 | + |
2317 | + * configure.in: Removed creation of src/Makefile |
2318 | + |
2319 | +2004-09-26 11:34 macbishop |
2320 | + |
2321 | + * Makefile.am: Removed src subdir |
2322 | + |
2323 | +2004-09-26 11:31 macbishop |
2324 | + |
2325 | + * src/: Arg.cpp, CmdLine.cpp, Makefile.am, PrintSensibly.cpp, |
2326 | + SwitchArg.cpp, XorHandler.cpp: Implementation now in header files |
2327 | + |
2328 | +2004-09-26 11:27 macbishop |
2329 | + |
2330 | + * include/tclap/: Arg.h, ArgException.h, CmdLine.h, HelpVisitor.h, |
2331 | + Makefile.am, MultiArg.h, PrintSensibly.h, SwitchArg.h, |
2332 | + UnlabeledMultiArg.h, UnlabeledValueArg.h, ValueArg.h, |
2333 | + VersionVisitor.h, XorHandler.h, CmdLineInterface.h, |
2334 | + CommandLine.h: Moving the implementation of tclap to the header |
2335 | + files presented me with two major problems. 1) There where static |
2336 | + functions and variables that could cause link errors if tclap |
2337 | + where used in different files (e.g. file1.cc and file2.cc |
2338 | + included tclap then compiling both files would give hard symbols |
2339 | + for some variables which would produce multiple definition when |
2340 | + linking) 2) The dependencies of tclap was a bit strange (CmdLine |
2341 | + depends on Args and Args depends on CmdLine for instance) |
2342 | + |
2343 | + The first problem I solved by removing all static variables |
2344 | + putting them in static member functions (which are weak-symbols). |
2345 | + So for instance every where there previously was something like x |
2346 | + = _delimiter there now is x = delimiter() or in case of write |
2347 | + acces delimiterRef() = x instead of _delimiter = x (I had to |
2348 | + append the Ref because there where already functions with the |
2349 | + same name as the variables). To solve the problem with static |
2350 | + functions I simply inlined them. This causes the compiler to |
2351 | + produce a weak symbol or inline if appropriate. We can put the |
2352 | + functions inside the class declaration later to make the code |
2353 | + look better. This worked fine in all but two cases. In the |
2354 | + ValueArg and MultiArg classes I had to do a "hack" to work around |
2355 | + the specialization template for extractValue<std::string>. The |
2356 | + code for this is very simple but it might look strange an stupid |
2357 | + at first but it is only to resolve the specialisation to a weak |
2358 | + symbol. What I did was I put the implementations of extractValue |
2359 | + in a helper class and I could then create a specialized class |
2360 | + instead of function and everything worked out. I think now in |
2361 | + retrospect there might be better solutions to this but I'll think |
2362 | + a bit more on it (maybe some type of inlining on the specialized |
2363 | + version would suffice but I'm not sure). |
2364 | + |
2365 | + To handle the dependencies I had to do some rewriting. The first |
2366 | + step was to introduce a new class CmdLineInterface that is a |
2367 | + purely abstract base of CmdLine that specifies the functions |
2368 | + needed by Arg and friends. Thus Arg classes now takes an |
2369 | + CmdLineInterface object as input instead (however only CmdLine |
2370 | + can ever be instantiated of-course). With this extra class |
2371 | + cleaning up the dependencies was quite simple, I've attached a |
2372 | + dependency graph to the mail (depgraph.png). I also cleaned up |
2373 | + the #includes so now only what actually needs inclusion is |
2374 | + included. A nice side effect of this is that the impl. of CmdLine |
2375 | + is now put back into CmdLine.h (where I guess you wanted it) |
2376 | + which (recursivly) includes everything else needed. |
2377 | + |
2378 | + Just to make things clear for myself regarding the class |
2379 | + dependencies I made a class TCLAP::Exception that inherits from |
2380 | + std::exception and is a base of ArgException (Exception does |
2381 | + nothing currently). If we don't want the Exception class it can |
2382 | + be removed, however I think it could be a nice logic to have a |
2383 | + base Exception class that every exception inherits from, but we |
2384 | + can discuss that when we decide how to handle exceptions. |
2385 | + |
2386 | +2004-09-26 08:07 macbishop |
2387 | + |
2388 | + * tests/runtests.sh: Now return 0 if all tests fail and 1 if any |
2389 | + test fail |
2390 | + |
2391 | +2004-09-26 07:58 macbishop |
2392 | + |
2393 | + * tests/runtests.sh: Runs all tests and sumarizes the result |
2394 | + |
2395 | +2004-09-20 17:09 mes5k |
2396 | + |
2397 | + * include/tclap/CommandLine.h: added some comments |
2398 | + |
2399 | +2004-09-20 17:08 mes5k |
2400 | + |
2401 | + * src/CmdLine.cpp: formatting only |
2402 | + |
2403 | +2004-09-20 10:05 macbishop |
2404 | + |
2405 | + * include/tclap/CommandLine.h: Recommit because something is |
2406 | + strange. The changes are that memory allocated in _construct is |
2407 | + deallocated when the CmdLine obj is destroyed |
2408 | + |
2409 | +2004-09-19 11:32 macbishop |
2410 | + |
2411 | + * src/CmdLine.cpp: Memory allocated in _constructor is now deleted |
2412 | + when the object is destroyed |
2413 | + |
2414 | +2004-09-18 09:54 mes5k |
2415 | + |
2416 | + * include/tclap/: Arg.h, ArgException.h, CmdLine.h, CommandLine.h, |
2417 | + HelpVisitor.h, IgnoreRestVisitor.h, MultiArg.h, PrintSensibly.h, |
2418 | + SwitchArg.h, UnlabeledMultiArg.h, UnlabeledValueArg.h, |
2419 | + ValueArg.h, VersionVisitor.h, Visitor.h, XorHandler.h: changed |
2420 | + ifndef labels |
2421 | + |
2422 | +2004-09-18 07:53 macbishop |
2423 | + |
2424 | + * include/tclap/Arg.h: Had to make ~Arg() public because it won't |
2425 | + be possible to delete Arg*s if it is not, and we want that (I |
2426 | + think). |
2427 | + |
2428 | +2004-09-15 21:24 mes5k |
2429 | + |
2430 | + * configure.in: version 1.0.0 |
2431 | + |
2432 | +2004-09-15 20:54 mes5k |
2433 | + |
2434 | + * include/tclap/Arg.h, include/tclap/ArgException.h, |
2435 | + include/tclap/HelpVisitor.h, include/tclap/IgnoreRestVisitor.h, |
2436 | + include/tclap/MultiArg.h, include/tclap/SwitchArg.h, |
2437 | + include/tclap/UnlabeledMultiArg.h, include/tclap/ValueArg.h, |
2438 | + include/tclap/VersionVisitor.h, include/tclap/Visitor.h, |
2439 | + src/Arg.cpp, src/SwitchArg.cpp: cleaned up a bunch of things |
2440 | + |
2441 | +2004-09-11 19:35 mes5k |
2442 | + |
2443 | + * tests/: Makefile.am, test47.out, test47.sh, test48.out, |
2444 | + test48.sh, test49.out, test49.sh, test50.out, test50.sh, |
2445 | + test51.out, test51.sh, test52.out, test52.sh, test53.out, |
2446 | + test53.sh, test54.out, test54.sh: added tests for CmdLine arg |
2447 | + |
2448 | +2004-09-11 19:33 mes5k |
2449 | + |
2450 | + * examples/: Makefile.am, test8.cpp: added new test for CmdLine arg |
2451 | + |
2452 | +2004-09-11 19:32 mes5k |
2453 | + |
2454 | + * src/Arg.cpp, src/SwitchArg.cpp, include/tclap/Arg.h, |
2455 | + include/tclap/MultiArg.h, include/tclap/SwitchArg.h, |
2456 | + include/tclap/UnlabeledMultiArg.h, |
2457 | + include/tclap/UnlabeledValueArg.h, include/tclap/ValueArg.h: got |
2458 | + CmdLine arg working |
2459 | + |
2460 | +2004-09-09 19:08 mes5k |
2461 | + |
2462 | + * configure: shouldn't be in cvs |
2463 | + |
2464 | +2004-09-09 12:56 macbishop |
2465 | + |
2466 | + * src/: Arg.cpp, SwitchArg.cpp: Added support for automatic |
2467 | + addition to a CmdLine parser |
2468 | + |
2469 | +2004-09-09 12:55 macbishop |
2470 | + |
2471 | + * include/tclap/: Arg.h, MultiArg.h, SwitchArg.h, |
2472 | + UnlabeledMultiArg.h, UnlabeledValueArg.h, ValueArg.h: Support for |
2473 | + automatic addition to a CmdLine parser |
2474 | + |
2475 | +2004-09-08 20:09 mes5k |
2476 | + |
2477 | + * src/CmdLine.cpp: fixed a warning in MSVC++ |
2478 | + |
2479 | +2004-09-07 16:11 mes5k |
2480 | + |
2481 | + * include/tclap/Makefile.in, docs/Makefile.in, |
2482 | + examples/Makefile.in, tests/Makefile.in: not needed |
2483 | + |
2484 | +2004-09-07 16:08 mes5k |
2485 | + |
2486 | + * Makefile.in, src/Makefile.in, include/Makefile.in: not needed |
2487 | + |
2488 | +2004-09-07 15:14 mes5k |
2489 | + |
2490 | + * src/CmdLine.cpp: now throws exception on matching |
2491 | + names/flags/desc |
2492 | + |
2493 | +2004-09-07 15:12 mes5k |
2494 | + |
2495 | + * examples/test4.cpp, examples/test7.cpp, tests/test38.out, |
2496 | + tests/test39.out, tests/test43.out, tests/test46.out: fixed to |
2497 | + handle new exception on matching names/flags/desc |
2498 | + |
2499 | +2004-09-07 13:25 mes5k |
2500 | + |
2501 | + * docs/Doxyfile.in: updated Doxyfile for newer doxygen |
2502 | + |
2503 | +2004-09-07 11:27 mes5k |
2504 | + |
2505 | + * examples/: test1.cpp, test2.cpp, test3.cpp, test4.cpp, test5.cpp, |
2506 | + test6.cpp: changed namespace std handling |
2507 | + |
2508 | +2004-09-07 11:25 mes5k |
2509 | + |
2510 | + * examples/test7.cpp: added more args to better test output |
2511 | + printing |
2512 | + |
2513 | +2004-09-07 11:24 mes5k |
2514 | + |
2515 | + * src/Arg.cpp, src/CmdLine.cpp, src/PrintSensibly.cpp, |
2516 | + src/SwitchArg.cpp, src/XorHandler.cpp, include/tclap/Arg.h, |
2517 | + include/tclap/ArgException.h, include/tclap/CommandLine.h, |
2518 | + include/tclap/MultiArg.h, include/tclap/PrintSensibly.h, |
2519 | + include/tclap/SwitchArg.h, include/tclap/UnlabeledMultiArg.h, |
2520 | + include/tclap/UnlabeledValueArg.h, include/tclap/ValueArg.h, |
2521 | + include/tclap/XorHandler.h: changed namespace std handling |
2522 | + |
2523 | +2004-09-07 11:24 mes5k |
2524 | + |
2525 | + * tests/: test15.out, test16.out, test17.out, test22.out, |
2526 | + test23.out, test24.out, test31.out, test32.out, test38.out, |
2527 | + test39.out, test42.out, test44.out, test46.out: fixed test output |
2528 | + for new formatting |
2529 | + |
2530 | +2004-09-04 14:09 macbishop |
2531 | + |
2532 | + * include/tclap/: UnlabeledMultiArg.h, UnlabeledValueArg.h: |
2533 | + Compilation was broken due to undef. symbols in compilers with 2 |
2534 | + stage name-lookup (such as gcc >= 3.4). The fix for this is to |
2535 | + tell the compiler what symbols to use withlines like: using |
2536 | + MultiArg<T>::_name; |
2537 | + |
2538 | + This is now done and everything compiles fine. Since I'm not sure |
2539 | + about the support for things like using MultiArg<T>::_name; on |
2540 | + all compilers it is ifdef:ed away by default. To get 2 stage |
2541 | + name-lookup to work you have to add -DTWO_STAGE_NAME_LOOKUP to |
2542 | + your CXXFLAGS before running configure. |
2543 | + |
2544 | +2004-08-18 12:34 mes5k |
2545 | + |
2546 | + * src/PrintSensibly.cpp: smartened printing even further |
2547 | + |
2548 | +2004-08-10 20:35 mes5k |
2549 | + |
2550 | + * src/PrintSensibly.cpp: fixed int messiness |
2551 | + |
2552 | +2004-08-10 20:32 mes5k |
2553 | + |
2554 | + * autotools.sh: made path explicit |
2555 | + |
2556 | +2004-08-10 20:05 mes5k |
2557 | + |
2558 | + * include/tclap/: MultiArg.h, ValueArg.h: changed allowed separator |
2559 | + |
2560 | +2004-08-10 19:53 mes5k |
2561 | + |
2562 | + * tests/: Makefile.am, test10.out, test11.out, test12.out, |
2563 | + test15.out, test16.out, test17.out, test18.out, test22.out, |
2564 | + test23.out, test24.out, test26.out, test27.out, test28.out, |
2565 | + test29.out, test30.out, test31.out, test32.out, test35.out, |
2566 | + test36.out, test38.out, test39.out, test4.out, test40.out, |
2567 | + test40.sh, test41.out, test41.sh, test42.out, test42.sh, |
2568 | + test43.out, test43.sh, test44.out, test44.sh, test45.out, |
2569 | + test45.sh, test46.out, test46.sh, test7.out, test7.sh: changed |
2570 | + error output and added usage stuff |
2571 | + |
2572 | +2004-08-10 19:52 mes5k |
2573 | + |
2574 | + * NEWS, README: updated |
2575 | + |
2576 | +2004-08-10 19:47 mes5k |
2577 | + |
2578 | + * configure.in: changed to 0.9.9 |
2579 | + |
2580 | +2004-08-10 19:46 mes5k |
2581 | + |
2582 | + * examples/test7.cpp: tweaked for usage |
2583 | + |
2584 | +2004-08-10 19:45 mes5k |
2585 | + |
2586 | + * include/tclap/: CmdLine.h, CommandLine.h, Makefile.am, |
2587 | + PrintSensibly.h, XorHandler.h: added usage stuff |
2588 | + |
2589 | +2004-08-10 19:43 mes5k |
2590 | + |
2591 | + * src/: CmdLine.cpp, Makefile.am, PrintSensibly.cpp, |
2592 | + XorHandler.cpp: tweaked usage |
2593 | + |
2594 | +2004-07-05 19:02 mes5k |
2595 | + |
2596 | + * docs/manual.html: updated for allowed |
2597 | + |
2598 | +2004-07-03 20:01 mes5k |
2599 | + |
2600 | + * tests/: test34.out, test34.sh, test35.out, test35.sh, test36.out, |
2601 | + test36.sh, test37.out, test37.sh, test38.out, test38.sh, |
2602 | + test39.out, test39.sh, Makefile.am: allow tests |
2603 | + |
2604 | +2004-07-03 19:56 mes5k |
2605 | + |
2606 | + * include/tclap/ValueArg.h: doh |
2607 | + |
2608 | +2004-07-03 19:34 mes5k |
2609 | + |
2610 | + * NEWS: allow |
2611 | + |
2612 | +2004-07-03 19:31 mes5k |
2613 | + |
2614 | + * include/tclap/Arg.h: made isReq virtual |
2615 | + |
2616 | +2004-07-03 19:30 mes5k |
2617 | + |
2618 | + * include/tclap/: MultiArg.h, UnlabeledMultiArg.h, |
2619 | + UnlabeledValueArg.h, ValueArg.h: added allow |
2620 | + |
2621 | +2004-07-03 19:29 mes5k |
2622 | + |
2623 | + * examples/: Makefile.am, test6.cpp, test7.cpp: added tests for |
2624 | + allowed |
2625 | + |
2626 | +2004-07-03 19:28 mes5k |
2627 | + |
2628 | + * docs/: index.html, manual.html: minor typos |
2629 | + |
2630 | +2004-04-26 08:18 mes5k |
2631 | + |
2632 | + * Makefile.am, autotools.sh, examples/Makefile.am, src/Makefile.am: |
2633 | + fixed for autotools for mandrake |
2634 | + |
2635 | +2004-02-13 20:09 mes5k |
2636 | + |
2637 | + * configure.in: 0.9.8a |
2638 | + |
2639 | +2004-02-13 15:23 mes5k |
2640 | + |
2641 | + * tests/: test22.out, test23.out, test24.out: output updates |
2642 | + |
2643 | +2004-02-13 15:21 mes5k |
2644 | + |
2645 | + * include/tclap/: Arg.h, UnlabeledMultiArg.h, UnlabeledValueArg.h: |
2646 | + now the Arg adds itself to the CmdLine arglist |
2647 | + |
2648 | +2004-02-13 15:20 mes5k |
2649 | + |
2650 | + * src/: Arg.cpp, CmdLine.cpp: reworked how we add args to list |
2651 | + |
2652 | +2004-02-10 08:52 mes5k |
2653 | + |
2654 | + * NEWS: update |
2655 | + |
2656 | +2004-02-09 21:04 mes5k |
2657 | + |
2658 | + * examples/test5.cpp: change |
2659 | + |
2660 | +2004-02-09 21:03 mes5k |
2661 | + |
2662 | + * src/SwitchArg.cpp: allowing blank flags |
2663 | + |
2664 | +2004-02-09 20:54 mes5k |
2665 | + |
2666 | + * configure.in: 0.9.8 |
2667 | + |
2668 | +2004-02-09 20:52 mes5k |
2669 | + |
2670 | + * tests/: Makefile.am, test20.out, test21.out, test22.out, |
2671 | + test23.out, test24.out, test25.out, test33.out, test33.sh: |
2672 | + updates |
2673 | + |
2674 | +2004-02-09 20:39 mes5k |
2675 | + |
2676 | + * docs/manual.html: blank args |
2677 | + |
2678 | +2004-02-09 20:16 mes5k |
2679 | + |
2680 | + * tests/: test15.out, test16.out, test17.out, test20.out, |
2681 | + test20.sh, test21.out, test21.sh, test22.out, test23.out, |
2682 | + test24.out, test25.out, test25.sh, test31.out, test32.out: |
2683 | + updates |
2684 | + |
2685 | +2004-02-09 20:05 mes5k |
2686 | + |
2687 | + * examples/: test5.cpp, test3.cpp: minor fixes and new args |
2688 | + |
2689 | +2004-02-09 19:56 mes5k |
2690 | + |
2691 | + * include/tclap/Arg.h: added new var |
2692 | + |
2693 | +2004-02-09 19:54 mes5k |
2694 | + |
2695 | + * src/: Arg.cpp, CmdLine.cpp, SwitchArg.cpp: allowing blank flags |
2696 | + |
2697 | +2004-02-07 15:37 mes5k |
2698 | + |
2699 | + * src/XorHandler.cpp: fix for the output |
2700 | + |
2701 | +2004-02-06 17:41 mes5k |
2702 | + |
2703 | + * NEWS: added info |
2704 | + |
2705 | +2004-02-06 17:24 mes5k |
2706 | + |
2707 | + * tests/: test12.out, test15.out, test16.out, test17.out: fixed |
2708 | + test3 stuff |
2709 | + |
2710 | +2004-02-06 17:20 mes5k |
2711 | + |
2712 | + * tests/: test26.out, test26.sh, test27.out, test27.sh, test28.out, |
2713 | + test28.sh, test29.out, test29.sh, test30.out, test30.sh, |
2714 | + test31.out, test31.sh, test32.out, test32.sh, Makefile.am: added |
2715 | + tests for reading extra incorrect values from arg |
2716 | + |
2717 | +2004-02-06 17:18 mes5k |
2718 | + |
2719 | + * examples/test3.cpp: add multi float |
2720 | + |
2721 | +2004-02-06 17:18 mes5k |
2722 | + |
2723 | + * include/tclap/: MultiArg.h, ValueArg.h: fixed error reading |
2724 | + incorrect extra values in an arg |
2725 | + |
2726 | +2004-02-04 18:56 mes5k |
2727 | + |
2728 | + * include/tclap/XorHandler.h: added include |
2729 | + |
2730 | +2004-02-03 20:21 mes5k |
2731 | + |
2732 | + * include/tclap/XorHandler.h: added doxyen |
2733 | + |
2734 | +2004-02-03 20:00 mes5k |
2735 | + |
2736 | + * docs/manual.html: xor stuff |
2737 | + |
2738 | +2004-02-03 19:56 mes5k |
2739 | + |
2740 | + * examples/test5.cpp: prettified |
2741 | + |
2742 | +2004-02-03 19:27 mes5k |
2743 | + |
2744 | + * examples/: Makefile.am, test5.cpp: xor stuff |
2745 | + |
2746 | +2004-02-03 19:24 mes5k |
2747 | + |
2748 | + * configure.in: 0.9.7 |
2749 | + |
2750 | +2004-02-03 19:22 mes5k |
2751 | + |
2752 | + * src/: Arg.cpp, CmdLine.cpp, Makefile.am, XorHandler.cpp: added |
2753 | + xor |
2754 | + |
2755 | +2004-02-03 19:20 mes5k |
2756 | + |
2757 | + * include/tclap/: Arg.h, CmdLine.h, CommandLine.h, |
2758 | + UnlabeledValueArg.h, XorHandler.h, Makefile.am: xor stuff |
2759 | + |
2760 | +2004-02-03 19:14 mes5k |
2761 | + |
2762 | + * tests/: test1.sh, test10.sh, test11.sh, test12.sh, test13.sh, |
2763 | + test14.sh, test15.sh, test16.sh, test17.sh, test18.sh, test19.sh, |
2764 | + test2.sh, test20.sh, test21.sh, test22.sh, test23.sh, test24.sh, |
2765 | + test25.sh, test3.sh, test4.sh, test5.sh, test6.sh, test7.sh, |
2766 | + test8.sh, test9.sh, Makefile.am, test20.out, test21.out, |
2767 | + test22.out, test23.out, test24.out, test25.out: added new tests |
2768 | + and comments |
2769 | + |
2770 | +2004-01-29 20:36 mes5k |
2771 | + |
2772 | + * include/tclap/: CmdLine.h, CommandLine.h, MultiArg.h, ValueArg.h: |
2773 | + fix for strings with spaces |
2774 | + |
2775 | +2004-01-10 09:39 mes5k |
2776 | + |
2777 | + * docs/index.html: spelling |
2778 | + |
2779 | +2004-01-07 22:18 mes5k |
2780 | + |
2781 | + * docs/: index.html, manual.html: updates |
2782 | + |
2783 | +2004-01-07 21:51 mes5k |
2784 | + |
2785 | + * NEWS: update |
2786 | + |
2787 | +2004-01-07 21:30 mes5k |
2788 | + |
2789 | + * include/tclap/CmdLine.h, src/CmdLine.cpp: added backward |
2790 | + compatibility |
2791 | + |
2792 | +2004-01-07 21:11 mes5k |
2793 | + |
2794 | + * src/Arg.cpp: fixed warning |
2795 | + |
2796 | +2004-01-07 21:04 mes5k |
2797 | + |
2798 | + * examples/: Makefile.am, test4.cpp: added new test |
2799 | + |
2800 | +2004-01-07 21:00 mes5k |
2801 | + |
2802 | + * tests/Makefile.am: added two new tests |
2803 | + |
2804 | +2004-01-07 20:59 mes5k |
2805 | + |
2806 | + * include/tclap/: Arg.h, ArgException.h, CmdLine.h, HelpVisitor.h, |
2807 | + IgnoreRestVisitor.h, MultiArg.h, SwitchArg.h, |
2808 | + UnlabeledMultiArg.h, UnlabeledValueArg.h, ValueArg.h, |
2809 | + VersionVisitor.h, Visitor.h: fixed combined switch stuff and |
2810 | + added doxygen comments |
2811 | + |
2812 | +2004-01-07 20:58 mes5k |
2813 | + |
2814 | + * src/: Arg.cpp, CmdLine.cpp, SwitchArg.cpp: fixed some combined |
2815 | + switch stuff |
2816 | + |
2817 | +2004-01-07 20:50 mes5k |
2818 | + |
2819 | + * tests/: test18.out, test18.sh, test19.out, test19.sh: new tests |
2820 | + |
2821 | +2003-12-21 18:32 mes5k |
2822 | + |
2823 | + * autotools.sh: init |
2824 | + |
2825 | +2003-12-21 18:31 mes5k |
2826 | + |
2827 | + * include/tclap/UnlabeledMultiArg.h: delim stuff |
2828 | + |
2829 | +2003-12-21 18:14 mes5k |
2830 | + |
2831 | + * examples/test1.cpp: new fangled |
2832 | + |
2833 | +2003-12-21 18:11 mes5k |
2834 | + |
2835 | + * configure.in: 0.9.6 |
2836 | + |
2837 | +2003-12-21 18:10 mes5k |
2838 | + |
2839 | + * tests/: test13.sh, test14.sh: updated |
2840 | + |
2841 | +2003-12-21 18:09 mes5k |
2842 | + |
2843 | + * tests/: test10.out, test11.out, test12.out, test13.out, |
2844 | + test14.out, test15.out, test16.out, test4.out: updates |
2845 | + |
2846 | +2003-12-21 18:07 mes5k |
2847 | + |
2848 | + * tests/Makefile.am: added test |
2849 | + |
2850 | +2003-12-21 18:06 mes5k |
2851 | + |
2852 | + * tests/: test17.out, test17.sh: first checkin |
2853 | + |
2854 | +2003-12-21 18:01 mes5k |
2855 | + |
2856 | + * src/Arg.cpp: removed message |
2857 | + |
2858 | +2003-12-21 17:59 mes5k |
2859 | + |
2860 | + * examples/Makefile.am: added warnings |
2861 | + |
2862 | +2003-12-21 17:58 mes5k |
2863 | + |
2864 | + * examples/: test2.cpp, test3.cpp: fixed warnings |
2865 | + |
2866 | +2003-12-21 17:53 mes5k |
2867 | + |
2868 | + * Makefile.am: added warnings |
2869 | + |
2870 | +2003-12-21 17:52 mes5k |
2871 | + |
2872 | + * src/Arg.cpp, src/CmdLine.cpp, src/SwitchArg.cpp, |
2873 | + examples/test3.cpp: added delimiter |
2874 | + |
2875 | +2003-12-21 17:50 mes5k |
2876 | + |
2877 | + * src/Makefile.am: added warnings |
2878 | + |
2879 | +2003-12-21 17:48 mes5k |
2880 | + |
2881 | + * include/tclap/: Arg.h, ArgException.h, CmdLine.h, MultiArg.h, |
2882 | + UnlabeledValueArg.h, ValueArg.h: delimiter changes |
2883 | + |
2884 | +2003-04-03 10:26 mes5k |
2885 | + |
2886 | + * include/tclap/Makefile.am: added new visitor |
2887 | + |
2888 | +2003-04-03 10:20 mes5k |
2889 | + |
2890 | + * include/tclap/Makefile.am: updates |
2891 | + |
2892 | +2003-04-03 10:13 mes5k |
2893 | + |
2894 | + * config/: mkinstalldirs, install-sh, missing, depcomp: init |
2895 | + checkin |
2896 | + |
2897 | +2003-04-03 10:11 mes5k |
2898 | + |
2899 | + * NEWS: update |
2900 | + |
2901 | +2003-04-03 10:06 mes5k |
2902 | + |
2903 | + * examples/Makefile.am, examples/test1.cpp, examples/test2.cpp, |
2904 | + examples/test3.cpp, INSTALL, Makefile.in: updates |
2905 | + |
2906 | +2003-04-03 10:01 mes5k |
2907 | + |
2908 | + * Makefile.am, configure.in: added tests |
2909 | + |
2910 | +2003-04-03 10:00 mes5k |
2911 | + |
2912 | + * docs/: index.html, manual.html: updated docs |
2913 | + |
2914 | +2003-04-03 09:59 mes5k |
2915 | + |
2916 | + * include/tclap/: Arg.h, CmdLine.h, IgnoreRestVisitor.h, |
2917 | + MultiArg.h, SwitchArg.h, UnlabeledMultiArg.h, |
2918 | + UnlabeledValueArg.h, ValueArg.h: big update |
2919 | + |
2920 | +2003-04-03 09:57 mes5k |
2921 | + |
2922 | + * src/: CmdLine.cpp, SwitchArg.cpp, Arg.cpp: new update |
2923 | + |
2924 | +2003-04-03 09:56 mes5k |
2925 | + |
2926 | + * tests/: test10.sh, test11.sh, test12.sh, test1.sh, test13.sh, |
2927 | + test14.sh, test15.sh, test16.sh, test2.sh, test3.sh, test4.sh, |
2928 | + test5.sh, test6.sh, test7.sh, test8.sh, test9.sh, test10.out, |
2929 | + test11.out, test12.out, test13.out, test14.out, test15.out, |
2930 | + test16.out, test1.out, test2.out, test3.out, test4.out, |
2931 | + test5.out, test6.out, test7.out, Makefile.am, test8.out, |
2932 | + test9.out, Makefile.in, genOut.pl: initial checkin |
2933 | + |
2934 | +2003-03-18 18:39 mes5k |
2935 | + |
2936 | + * NEWS, configure.in, AUTHORS, COPYING, ChangeLog, Makefile.am, |
2937 | + Makefile.in, README, aclocal.m4, configure, |
2938 | + config/ac_cxx_have_sstream.m4, config/ac_cxx_have_strstream.m4, |
2939 | + config/ac_cxx_namespaces.m4, config/bb_enable_doxygen.m4, |
2940 | + config/config.h.in, config/stamp-h.in, config/stamp-h1, |
2941 | + examples/Makefile.am, examples/Makefile.in, examples/test1.cpp, |
2942 | + examples/test2.cpp, include/Makefile.am, include/Makefile.in, |
2943 | + include/tclap/Arg.h, include/tclap/ArgException.h, |
2944 | + include/tclap/CmdLine.h, include/tclap/HelpVisitor.h, |
2945 | + include/tclap/MultiArg.h, docs/Doxyfile.in, docs/Makefile.am, |
2946 | + docs/Makefile.in, docs/index.html, docs/manual.html, |
2947 | + include/tclap/Makefile.am, include/tclap/Makefile.in, |
2948 | + include/tclap/SwitchArg.h, include/tclap/ValueArg.h, |
2949 | + include/tclap/VersionVisitor.h, include/tclap/Visitor.h, |
2950 | + src/Arg.cpp, src/CmdLine.cpp, src/Makefile.am, src/Makefile.in, |
2951 | + src/SwitchArg.cpp: Initial revision |
2952 | + |
2953 | +2003-03-18 18:39 mes5k |
2954 | + |
2955 | + * NEWS, configure.in, AUTHORS, COPYING, ChangeLog, Makefile.am, |
2956 | + Makefile.in, README, aclocal.m4, configure, |
2957 | + config/ac_cxx_have_sstream.m4, config/ac_cxx_have_strstream.m4, |
2958 | + config/ac_cxx_namespaces.m4, config/bb_enable_doxygen.m4, |
2959 | + config/config.h.in, config/stamp-h.in, config/stamp-h1, |
2960 | + examples/Makefile.am, examples/Makefile.in, examples/test1.cpp, |
2961 | + examples/test2.cpp, include/Makefile.am, include/Makefile.in, |
2962 | + include/tclap/Arg.h, include/tclap/ArgException.h, |
2963 | + include/tclap/CmdLine.h, include/tclap/HelpVisitor.h, |
2964 | + include/tclap/MultiArg.h, docs/Doxyfile.in, docs/Makefile.am, |
2965 | + docs/Makefile.in, docs/index.html, docs/manual.html, |
2966 | + include/tclap/Makefile.am, include/tclap/Makefile.in, |
2967 | + include/tclap/SwitchArg.h, include/tclap/ValueArg.h, |
2968 | + include/tclap/VersionVisitor.h, include/tclap/Visitor.h, |
2969 | + src/Arg.cpp, src/CmdLine.cpp, src/Makefile.am, src/Makefile.in, |
2970 | + src/SwitchArg.cpp: initial release |
2971 | + |
2972 | |
2973 | === added file 'external/tclap/INSTALL' |
2974 | --- external/tclap/INSTALL 1970-01-01 00:00:00 +0000 |
2975 | +++ external/tclap/INSTALL 2013-05-01 15:50:43 +0000 |
2976 | @@ -0,0 +1,182 @@ |
2977 | +Basic Installation |
2978 | +================== |
2979 | + |
2980 | + These are generic installation instructions. |
2981 | + |
2982 | + The `configure' shell script attempts to guess correct values for |
2983 | +various system-dependent variables used during compilation. It uses |
2984 | +those values to create a `Makefile' in each directory of the package. |
2985 | +It may also create one or more `.h' files containing system-dependent |
2986 | +definitions. Finally, it creates a shell script `config.status' that |
2987 | +you can run in the future to recreate the current configuration, a file |
2988 | +`config.cache' that saves the results of its tests to speed up |
2989 | +reconfiguring, and a file `config.log' containing compiler output |
2990 | +(useful mainly for debugging `configure'). |
2991 | + |
2992 | + If you need to do unusual things to compile the package, please try |
2993 | +to figure out how `configure' could check whether to do them, and mail |
2994 | +diffs or instructions to the address given in the `README' so they can |
2995 | +be considered for the next release. If at some point `config.cache' |
2996 | +contains results you don't want to keep, you may remove or edit it. |
2997 | + |
2998 | + The file `configure.in' is used to create `configure' by a program |
2999 | +called `autoconf'. You only need `configure.in' if you want to change |
3000 | +it or regenerate `configure' using a newer version of `autoconf'. |
3001 | + |
3002 | +The simplest way to compile this package is: |
3003 | + |
3004 | + 1. `cd' to the directory containing the package's source code and type |
3005 | + `./configure' to configure the package for your system. If you're |
3006 | + using `csh' on an old version of System V, you might need to type |
3007 | + `sh ./configure' instead to prevent `csh' from trying to execute |
3008 | + `configure' itself. |
3009 | + |
3010 | + Running `configure' takes awhile. While running, it prints some |
3011 | + messages telling which features it is checking for. |
3012 | + |
3013 | + 2. Type `make' to compile the package. |
3014 | + |
3015 | + 3. Optionally, type `make check' to run any self-tests that come with |
3016 | + the package. |
3017 | + |
3018 | + 4. Type `make install' to install the programs and any data files and |
3019 | + documentation. |
3020 | + |
3021 | + 5. You can remove the program binaries and object files from the |
3022 | + source code directory by typing `make clean'. To also remove the |
3023 | + files that `configure' created (so you can compile the package for |
3024 | + a different kind of computer), type `make distclean'. There is |
3025 | + also a `make maintainer-clean' target, but that is intended mainly |
3026 | + for the package's developers. If you use it, you may have to get |
3027 | + all sorts of other programs in order to regenerate files that came |
3028 | + with the distribution. |
3029 | + |
3030 | +Compilers and Options |
3031 | +===================== |
3032 | + |
3033 | + Some systems require unusual options for compilation or linking that |
3034 | +the `configure' script does not know about. You can give `configure' |
3035 | +initial values for variables by setting them in the environment. Using |
3036 | +a Bourne-compatible shell, you can do that on the command line like |
3037 | +this: |
3038 | + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure |
3039 | + |
3040 | +Or on systems that have the `env' program, you can do it like this: |
3041 | + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure |
3042 | + |
3043 | +Compiling For Multiple Architectures |
3044 | +==================================== |
3045 | + |
3046 | + You can compile the package for more than one kind of computer at the |
3047 | +same time, by placing the object files for each architecture in their |
3048 | +own directory. To do this, you must use a version of `make' that |
3049 | +supports the `VPATH' variable, such as GNU `make'. `cd' to the |
3050 | +directory where you want the object files and executables to go and run |
3051 | +the `configure' script. `configure' automatically checks for the |
3052 | +source code in the directory that `configure' is in and in `..'. |
3053 | + |
3054 | + If you have to use a `make' that does not supports the `VPATH' |
3055 | +variable, you have to compile the package for one architecture at a time |
3056 | +in the source code directory. After you have installed the package for |
3057 | +one architecture, use `make distclean' before reconfiguring for another |
3058 | +architecture. |
3059 | + |
3060 | +Installation Names |
3061 | +================== |
3062 | + |
3063 | + By default, `make install' will install the package's files in |
3064 | +`/usr/local/bin', `/usr/local/man', etc. You can specify an |
3065 | +installation prefix other than `/usr/local' by giving `configure' the |
3066 | +option `--prefix=PATH'. |
3067 | + |
3068 | + You can specify separate installation prefixes for |
3069 | +architecture-specific files and architecture-independent files. If you |
3070 | +give `configure' the option `--exec-prefix=PATH', the package will use |
3071 | +PATH as the prefix for installing programs and libraries. |
3072 | +Documentation and other data files will still use the regular prefix. |
3073 | + |
3074 | + In addition, if you use an unusual directory layout you can give |
3075 | +options like `--bindir=PATH' to specify different values for particular |
3076 | +kinds of files. Run `configure --help' for a list of the directories |
3077 | +you can set and what kinds of files go in them. |
3078 | + |
3079 | + If the package supports it, you can cause programs to be installed |
3080 | +with an extra prefix or suffix on their names by giving `configure' the |
3081 | +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. |
3082 | + |
3083 | +Optional Features |
3084 | +================= |
3085 | + |
3086 | + Some packages pay attention to `--enable-FEATURE' options to |
3087 | +`configure', where FEATURE indicates an optional part of the package. |
3088 | +They may also pay attention to `--with-PACKAGE' options, where PACKAGE |
3089 | +is something like `gnu-as' or `x' (for the X Window System). The |
3090 | +`README' should mention any `--enable-' and `--with-' options that the |
3091 | +package recognizes. |
3092 | + |
3093 | + For packages that use the X Window System, `configure' can usually |
3094 | +find the X include and library files automatically, but if it doesn't, |
3095 | +you can use the `configure' options `--x-includes=DIR' and |
3096 | +`--x-libraries=DIR' to specify their locations. |
3097 | + |
3098 | +Specifying the System Type |
3099 | +========================== |
3100 | + |
3101 | + There may be some features `configure' can not figure out |
3102 | +automatically, but needs to determine by the type of host the package |
3103 | +will run on. Usually `configure' can figure that out, but if it prints |
3104 | +a message saying it can not guess the host type, give it the |
3105 | +`--host=TYPE' option. TYPE can either be a short name for the system |
3106 | +type, such as `sun4', or a canonical name with three fields: |
3107 | + CPU-COMPANY-SYSTEM |
3108 | + |
3109 | +See the file `config.sub' for the possible values of each field. If |
3110 | +`config.sub' isn't included in this package, then this package doesn't |
3111 | +need to know the host type. |
3112 | + |
3113 | + If you are building compiler tools for cross-compiling, you can also |
3114 | +use the `--target=TYPE' option to select the type of system they will |
3115 | +produce code for and the `--build=TYPE' option to select the type of |
3116 | +system on which you are compiling the package. |
3117 | + |
3118 | +Sharing Defaults |
3119 | +================ |
3120 | + |
3121 | + If you want to set default values for `configure' scripts to share, |
3122 | +you can create a site shell script called `config.site' that gives |
3123 | +default values for variables like `CC', `cache_file', and `prefix'. |
3124 | +`configure' looks for `PREFIX/share/config.site' if it exists, then |
3125 | +`PREFIX/etc/config.site' if it exists. Or, you can set the |
3126 | +`CONFIG_SITE' environment variable to the location of the site script. |
3127 | +A warning: not all `configure' scripts look for a site script. |
3128 | + |
3129 | +Operation Controls |
3130 | +================== |
3131 | + |
3132 | + `configure' recognizes the following options to control how it |
3133 | +operates. |
3134 | + |
3135 | +`--cache-file=FILE' |
3136 | + Use and save the results of the tests in FILE instead of |
3137 | + `./config.cache'. Set FILE to `/dev/null' to disable caching, for |
3138 | + debugging `configure'. |
3139 | + |
3140 | +`--help' |
3141 | + Print a summary of the options to `configure', and exit. |
3142 | + |
3143 | +`--quiet' |
3144 | +`--silent' |
3145 | +`-q' |
3146 | + Do not print messages saying which checks are being made. To |
3147 | + suppress all normal output, redirect it to `/dev/null' (any error |
3148 | + messages will still be shown). |
3149 | + |
3150 | +`--srcdir=DIR' |
3151 | + Look for the package's source code in directory DIR. Usually |
3152 | + `configure' can determine that directory automatically. |
3153 | + |
3154 | +`--version' |
3155 | + Print the version of Autoconf used to generate the `configure' |
3156 | + script, and exit. |
3157 | + |
3158 | +`configure' also accepts some other, not widely useful, options. |
3159 | |
3160 | === added file 'external/tclap/NEWS' |
3161 | --- external/tclap/NEWS 1970-01-01 00:00:00 +0000 |
3162 | +++ external/tclap/NEWS 2013-05-01 15:50:43 +0000 |
3163 | @@ -0,0 +1,95 @@ |
3164 | + |
3165 | +4/3/03 - Checked in a good sized update that move support of the library |
3166 | +closer to that of the POSIX/GNU standards. Switches can now be combined into |
3167 | +single arguments, -- is supported and MultiArgs now allow for multiple labeled |
3168 | +args. I've also changed things a bit by subclassing MultiArg and ValueArg |
3169 | +to get unlabeled versions of these classes. I think this is a bit cleaner |
3170 | +design, despite two new classes. |
3171 | + |
3172 | +1/7/04 - ... and with great trepidation, I release 0.9.6. Loads of changes. |
3173 | +The big change is that you can now define the delimiter used to separate |
3174 | +argument flags and argument values. So if you prefer arguments of the style |
3175 | +"-s=asdf" instead of "-s asdf", you can do so. I've also fixed a number of |
3176 | +warnings generated and fixed a few pathologic bugs related to combined |
3177 | +switches. That said, I suspect that there may be a few significant bugs |
3178 | +in this release that I haven't uncovered yet. Please let me know ASAP if |
3179 | +you find any. |
3180 | + |
3181 | +2/6/04 - Another big release: 0.9.7. First is a bugfix submitted by |
3182 | +Matthias Stiller that specializes the _extractValue method in a couple of |
3183 | +places that allows strings with spaces to be correctly read by tclap. A |
3184 | +second bug found by John Ling has been fixed so that exceptions are thrown |
3185 | +if more than one value is parsed from a single arg or if the second value |
3186 | +parsed is invalid. A big new feature has been added that allows args to |
3187 | +be xor'd. This means that two (or more) args can be specified such that |
3188 | +one and only one of the args is required. If a second arg is found an |
3189 | +exception is thrown. See the manual for details. As always, let me know |
3190 | +if you run into any problems. |
3191 | + |
3192 | +2/10/04 - A minor release: 0.9.8. A couple of bug fixes for 0.9.7 are |
3193 | +included and a feature has been added that allows Args to be specified |
3194 | +without short options, meaning the user is forced to use only long options. |
3195 | +This is useful for programs with more options than map sensibly to single |
3196 | +chars. |
3197 | + |
3198 | +7/3/04 - Added a new constructor and handling to the various value args |
3199 | +that allows the user to provide a list of values that the input arg values |
3200 | +should be restricted to. |
3201 | + |
3202 | +8/9/04 - Created a function to print the output nicely, meaning line wraps |
3203 | +are handled somewhat sensibly now. Also changed error handling slightly. |
3204 | +Instead of printing the entire usage, I just print a short usage. If |
3205 | +someone really hates this, its easy to change back. Let me know if this |
3206 | +causes problems. I think this equals release 0.9.9! |
3207 | + |
3208 | +10/19/04 - A number of changes that should substantially improve the library. |
3209 | +The most important being that we've moved the implementation of the library |
3210 | +entirely into the header files. This means there is no longer a library to |
3211 | +complile against, you simply have to #include <tclap/CmdLine.h>. New |
3212 | +constructors have been added to the various Arg classes that allow them to |
3213 | +be constructed with a CmdLine reference so that you no longer need to call |
3214 | +the add method if you prefer it that way. The output generated by the library |
3215 | +has been confined to a few methods in the CmdLine class. This means to |
3216 | +generate different output you can extend CmdLine and override the offending |
3217 | +methods. A number of style changes have been made in the code base to |
3218 | +conform better to C++ best practices. A thoughtful user has contributed |
3219 | +project files for the building the examples Microsoft Visual Studio. See |
3220 | +the README file in the msc directory for more details |
3221 | + |
3222 | +And so we have release 1.0! |
3223 | + |
3224 | +10/30/04 - A few bugfixes. Now checking for include.h before including it. |
3225 | +This will help Windows users who don't have it. Also changed test1 so that |
3226 | +it doesn't use toupper, which apparently causes problem for non-ASCII |
3227 | +character sets. |
3228 | + |
3229 | +10/31/04 - A few more tweaks, none of which should be noticeable to people |
3230 | +who are already using the lib without trouble. Maybe I shouldn't release |
3231 | +things early in the morning! Also note that manual.html is now generated |
3232 | +from manual.xml. If you have your own docbook xsl style that you prefer, |
3233 | +then have at it. |
3234 | + |
3235 | +12/3/04 - Some minor bug fixes including the removal of the two stage name |
3236 | +lookup ifdefs which means that the software should work out of the box |
3237 | +for gcc 3.4+. Isolated output in a separate class that should make |
3238 | +customization of output easier. I also included a rudimentary output class |
3239 | +that generated a (bad) Docbook command summary when used. |
3240 | + |
3241 | +1/4/05 - Several bug fixes, but no new features. Fixed a bug when mandatory |
3242 | +long args and unlabeled args were used together and weren't working properly. |
3243 | +Now they can be used together. Fixed another bug in spacePrint where long |
3244 | +program names caused an infinite loop. Finally, fixed a small memory leak. |
3245 | + |
3246 | +1/6/05 - Fixed a bug where setting the output object for a CmdLine didn't |
3247 | +register for version or usage generation. Doh! Created a Constraint interface |
3248 | +that should facilitate the creation of different constraints on Args. |
3249 | +This has involved changing the constructor interface, so if you've been using |
3250 | +allowed lists, you'll need to make a small modification to your existing code. |
3251 | +See examples/test6.cpp for details. |
3252 | + |
3253 | +9/26/09 - Whoa, long break. Primarily a bug-fix release, but we did switch |
3254 | +to using traits, which necessitates the minor version bump. Take a look |
3255 | +at test11.cpp and test12.cpp for examples on using ArgTraits for extending |
3256 | +tclap for different types. |
3257 | + |
3258 | +4/16/11 - Another long break! Several minor bug and memory leak fixes. |
3259 | |
3260 | === added file 'external/tclap/README' |
3261 | --- external/tclap/README 1970-01-01 00:00:00 +0000 |
3262 | +++ external/tclap/README 2013-05-01 15:50:43 +0000 |
3263 | @@ -0,0 +1,16 @@ |
3264 | + |
3265 | +TCLAP - Templatized Command Line Argument Parser |
3266 | + |
3267 | +This is a simple C++ library that facilitates parsing command line |
3268 | +arguments in a type independent manner. It doesn't conform exactly |
3269 | +to either the GNU or POSIX standards, although it is close. See |
3270 | +docs/manual.html for descriptions of how things work or look at the |
3271 | +simple examples in the examples dir. |
3272 | + |
3273 | +To find out what the latest changes are read the NEWS file in this directory. |
3274 | + |
3275 | + |
3276 | +Any and all feedback is welcome to: Mike Smoot <mes@aescon.com> |
3277 | + |
3278 | + |
3279 | + |
3280 | |
3281 | === added directory 'external/tclap/include' |
3282 | === added directory 'external/tclap/include/tclap' |
3283 | === added file 'external/tclap/include/tclap/Arg.h' |
3284 | --- external/tclap/include/tclap/Arg.h 1970-01-01 00:00:00 +0000 |
3285 | +++ external/tclap/include/tclap/Arg.h 2013-05-01 15:50:43 +0000 |
3286 | @@ -0,0 +1,692 @@ |
3287 | +// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- |
3288 | + |
3289 | +/****************************************************************************** |
3290 | + * |
3291 | + * file: Arg.h |
3292 | + * |
3293 | + * Copyright (c) 2003, Michael E. Smoot . |
3294 | + * Copyright (c) 2004, Michael E. Smoot, Daniel Aarno . |
3295 | + * All rights reverved. |
3296 | + * |
3297 | + * See the file COPYING in the top directory of this distribution for |
3298 | + * more information. |
3299 | + * |
3300 | + * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS |
3301 | + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
3302 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
3303 | + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
3304 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
3305 | + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
3306 | + * DEALINGS IN THE SOFTWARE. |
3307 | + * |
3308 | + *****************************************************************************/ |
3309 | + |
3310 | + |
3311 | +#ifndef TCLAP_ARGUMENT_H |
3312 | +#define TCLAP_ARGUMENT_H |
3313 | + |
3314 | +#ifdef HAVE_CONFIG_H |
3315 | +#include <config.h> |
3316 | +#else |
3317 | +#define HAVE_SSTREAM |
3318 | +#endif |
3319 | + |
3320 | +#include <string> |
3321 | +#include <vector> |
3322 | +#include <list> |
3323 | +#include <iostream> |
3324 | +#include <iomanip> |
3325 | +#include <cstdio> |
3326 | + |
3327 | +#if defined(HAVE_SSTREAM) |
3328 | +#include <sstream> |
3329 | +typedef std::istringstream istringstream; |
3330 | +#elif defined(HAVE_STRSTREAM) |
3331 | +#include <strstream> |
3332 | +typedef std::istrstream istringstream; |
3333 | +#else |
3334 | +#error "Need a stringstream (sstream or strstream) to compile!" |
3335 | +#endif |
3336 | + |
3337 | +#include <tclap/ArgException.h> |
3338 | +#include <tclap/Visitor.h> |
3339 | +#include <tclap/CmdLineInterface.h> |
3340 | +#include <tclap/ArgTraits.h> |
3341 | +#include <tclap/StandardTraits.h> |
3342 | + |
3343 | +namespace TCLAP { |
3344 | + |
3345 | +/** |
3346 | + * A virtual base class that defines the essential data for all arguments. |
3347 | + * This class, or one of its existing children, must be subclassed to do |
3348 | + * anything. |
3349 | + */ |
3350 | +class Arg |
3351 | +{ |
3352 | + private: |
3353 | + /** |
3354 | + * Prevent accidental copying. |
3355 | + */ |
3356 | + Arg(const Arg& rhs); |
3357 | + |
3358 | + /** |
3359 | + * Prevent accidental copying. |
3360 | + */ |
3361 | + Arg& operator=(const Arg& rhs); |
3362 | + |
3363 | + /** |
3364 | + * Indicates whether the rest of the arguments should be ignored. |
3365 | + */ |
3366 | + static bool& ignoreRestRef() { static bool ign = false; return ign; } |
3367 | + |
3368 | + /** |
3369 | + * The delimiter that separates an argument flag/name from the |
3370 | + * value. |
3371 | + */ |
3372 | + static char& delimiterRef() { static char delim = ' '; return delim; } |
3373 | + |
3374 | + protected: |
3375 | + |
3376 | + /** |
3377 | + * The single char flag used to identify the argument. |
3378 | + * This value (preceded by a dash {-}), can be used to identify |
3379 | + * an argument on the command line. The _flag can be blank, |
3380 | + * in fact this is how unlabeled args work. Unlabeled args must |
3381 | + * override appropriate functions to get correct handling. Note |
3382 | + * that the _flag does NOT include the dash as part of the flag. |
3383 | + */ |
3384 | + std::string _flag; |
3385 | + |
3386 | + /** |
3387 | + * A single work namd indentifying the argument. |
3388 | + * This value (preceded by two dashed {--}) can also be used |
3389 | + * to identify an argument on the command line. Note that the |
3390 | + * _name does NOT include the two dashes as part of the _name. The |
3391 | + * _name cannot be blank. |
3392 | + */ |
3393 | + std::string _name; |
3394 | + |
3395 | + /** |
3396 | + * Description of the argument. |
3397 | + */ |
3398 | + std::string _description; |
3399 | + |
3400 | + /** |
3401 | + * Indicating whether the argument is required. |
3402 | + */ |
3403 | + bool _required; |
3404 | + |
3405 | + /** |
3406 | + * Label to be used in usage description. Normally set to |
3407 | + * "required", but can be changed when necessary. |
3408 | + */ |
3409 | + std::string _requireLabel; |
3410 | + |
3411 | + /** |
3412 | + * Indicates whether a value is required for the argument. |
3413 | + * Note that the value may be required but the argument/value |
3414 | + * combination may not be, as specified by _required. |
3415 | + */ |
3416 | + bool _valueRequired; |
3417 | + |
3418 | + /** |
3419 | + * Indicates whether the argument has been set. |
3420 | + * Indicates that a value on the command line has matched the |
3421 | + * name/flag of this argument and the values have been set accordingly. |
3422 | + */ |
3423 | + bool _alreadySet; |
3424 | + |
3425 | + /** |
3426 | + * A pointer to a vistitor object. |
3427 | + * The visitor allows special handling to occur as soon as the |
3428 | + * argument is matched. This defaults to NULL and should not |
3429 | + * be used unless absolutely necessary. |
3430 | + */ |
3431 | + Visitor* _visitor; |
3432 | + |
3433 | + /** |
3434 | + * Whether this argument can be ignored, if desired. |
3435 | + */ |
3436 | + bool _ignoreable; |
3437 | + |
3438 | + /** |
3439 | + * Indicates that the arg was set as part of an XOR and not on the |
3440 | + * command line. |
3441 | + */ |
3442 | + bool _xorSet; |
3443 | + |
3444 | + bool _acceptsMultipleValues; |
3445 | + |
3446 | + /** |
3447 | + * Performs the special handling described by the Vistitor. |
3448 | + */ |
3449 | + void _checkWithVisitor() const; |
3450 | + |
3451 | + /** |
3452 | + * Primary constructor. YOU (yes you) should NEVER construct an Arg |
3453 | + * directly, this is a base class that is extended by various children |
3454 | + * that are meant to be used. Use SwitchArg, ValueArg, MultiArg, |
3455 | + * UnlabeledValueArg, or UnlabeledMultiArg instead. |
3456 | + * |
3457 | + * \param flag - The flag identifying the argument. |
3458 | + * \param name - The name identifying the argument. |
3459 | + * \param desc - The description of the argument, used in the usage. |
3460 | + * \param req - Whether the argument is required. |
3461 | + * \param valreq - Whether the a value is required for the argument. |
3462 | + * \param v - The visitor checked by the argument. Defaults to NULL. |
3463 | + */ |
3464 | + Arg( const std::string& flag, |
3465 | + const std::string& name, |
3466 | + const std::string& desc, |
3467 | + bool req, |
3468 | + bool valreq, |
3469 | + Visitor* v = NULL ); |
3470 | + |
3471 | + public: |
3472 | + /** |
3473 | + * Destructor. |
3474 | + */ |
3475 | + virtual ~Arg(); |
3476 | + |
3477 | + /** |
3478 | + * Adds this to the specified list of Args. |
3479 | + * \param argList - The list to add this to. |
3480 | + */ |
3481 | + virtual void addToList( std::list<Arg*>& argList ) const; |
3482 | + |
3483 | + /** |
3484 | + * Begin ignoring arguments since the "--" argument was specified. |
3485 | + */ |
3486 | + static void beginIgnoring() { ignoreRestRef() = true; } |
3487 | + |
3488 | + /** |
3489 | + * Whether to ignore the rest. |
3490 | + */ |
3491 | + static bool ignoreRest() { return ignoreRestRef(); } |
3492 | + |
3493 | + /** |
3494 | + * The delimiter that separates an argument flag/name from the |
3495 | + * value. |
3496 | + */ |
3497 | + static char delimiter() { return delimiterRef(); } |
3498 | + |
3499 | + /** |
3500 | + * The char used as a place holder when SwitchArgs are combined. |
3501 | + * Currently set to the bell char (ASCII 7). |
3502 | + */ |
3503 | + static char blankChar() { return (char)7; } |
3504 | + |
3505 | + /** |
3506 | + * The char that indicates the beginning of a flag. Defaults to '-', but |
3507 | + * clients can define TCLAP_FLAGSTARTCHAR to override. |
3508 | + */ |
3509 | +#ifndef TCLAP_FLAGSTARTCHAR |
3510 | +#define TCLAP_FLAGSTARTCHAR '-' |
3511 | +#endif |
3512 | + static char flagStartChar() { return TCLAP_FLAGSTARTCHAR; } |
3513 | + |
3514 | + /** |
3515 | + * The sting that indicates the beginning of a flag. Defaults to "-", but |
3516 | + * clients can define TCLAP_FLAGSTARTSTRING to override. Should be the same |
3517 | + * as TCLAP_FLAGSTARTCHAR. |
3518 | + */ |
3519 | +#ifndef TCLAP_FLAGSTARTSTRING |
3520 | +#define TCLAP_FLAGSTARTSTRING "-" |
3521 | +#endif |
3522 | + static const std::string flagStartString() { return TCLAP_FLAGSTARTSTRING; } |
3523 | + |
3524 | + /** |
3525 | + * The sting that indicates the beginning of a name. Defaults to "--", but |
3526 | + * clients can define TCLAP_NAMESTARTSTRING to override. |
3527 | + */ |
3528 | +#ifndef TCLAP_NAMESTARTSTRING |
3529 | +#define TCLAP_NAMESTARTSTRING "--" |
3530 | +#endif |
3531 | + static const std::string nameStartString() { return TCLAP_NAMESTARTSTRING; } |
3532 | + |
3533 | + /** |
3534 | + * The name used to identify the ignore rest argument. |
3535 | + */ |
3536 | + static const std::string ignoreNameString() { return "ignore_rest"; } |
3537 | + |
3538 | + /** |
3539 | + * Sets the delimiter for all arguments. |
3540 | + * \param c - The character that delimits flags/names from values. |
3541 | + */ |
3542 | + static void setDelimiter( char c ) { delimiterRef() = c; } |
3543 | + |
3544 | + /** |
3545 | + * Pure virtual method meant to handle the parsing and value assignment |
3546 | + * of the string on the command line. |
3547 | + * \param i - Pointer the the current argument in the list. |
3548 | + * \param args - Mutable list of strings. What is |
3549 | + * passed in from main. |
3550 | + */ |
3551 | + virtual bool processArg(int *i, std::vector<std::string>& args) = 0; |
3552 | + |
3553 | + /** |
3554 | + * Operator ==. |
3555 | + * Equality operator. Must be virtual to handle unlabeled args. |
3556 | + * \param a - The Arg to be compared to this. |
3557 | + */ |
3558 | + virtual bool operator==(const Arg& a) const; |
3559 | + |
3560 | + /** |
3561 | + * Returns the argument flag. |
3562 | + */ |
3563 | + const std::string& getFlag() const; |
3564 | + |
3565 | + /** |
3566 | + * Returns the argument name. |
3567 | + */ |
3568 | + const std::string& getName() const; |
3569 | + |
3570 | + /** |
3571 | + * Returns the argument description. |
3572 | + */ |
3573 | + std::string getDescription() const; |
3574 | + |
3575 | + /** |
3576 | + * Indicates whether the argument is required. |
3577 | + */ |
3578 | + virtual bool isRequired() const; |
3579 | + |
3580 | + /** |
3581 | + * Sets _required to true. This is used by the XorHandler. |
3582 | + * You really have no reason to ever use it. |
3583 | + */ |
3584 | + void forceRequired(); |
3585 | + |
3586 | + /** |
3587 | + * Sets the _alreadySet value to true. This is used by the XorHandler. |
3588 | + * You really have no reason to ever use it. |
3589 | + */ |
3590 | + void xorSet(); |
3591 | + |
3592 | + /** |
3593 | + * Indicates whether a value must be specified for argument. |
3594 | + */ |
3595 | + bool isValueRequired() const; |
3596 | + |
3597 | + /** |
3598 | + * Indicates whether the argument has already been set. Only true |
3599 | + * if the arg has been matched on the command line. |
3600 | + */ |
3601 | + bool isSet() const; |
3602 | + |
3603 | + /** |
3604 | + * Indicates whether the argument can be ignored, if desired. |
3605 | + */ |
3606 | + bool isIgnoreable() const; |
3607 | + |
3608 | + /** |
3609 | + * A method that tests whether a string matches this argument. |
3610 | + * This is generally called by the processArg() method. This |
3611 | + * method could be re-implemented by a child to change how |
3612 | + * arguments are specified on the command line. |
3613 | + * \param s - The string to be compared to the flag/name to determine |
3614 | + * whether the arg matches. |
3615 | + */ |
3616 | + virtual bool argMatches( const std::string& s ) const; |
3617 | + |
3618 | + /** |
3619 | + * Returns a simple string representation of the argument. |
3620 | + * Primarily for debugging. |
3621 | + */ |
3622 | + virtual std::string toString() const; |
3623 | + |
3624 | + /** |
3625 | + * Returns a short ID for the usage. |
3626 | + * \param valueId - The value used in the id. |
3627 | + */ |
3628 | + virtual std::string shortID( const std::string& valueId = "val" ) const; |
3629 | + |
3630 | + /** |
3631 | + * Returns a long ID for the usage. |
3632 | + * \param valueId - The value used in the id. |
3633 | + */ |
3634 | + virtual std::string longID( const std::string& valueId = "val" ) const; |
3635 | + |
3636 | + /** |
3637 | + * Trims a value off of the flag. |
3638 | + * \param flag - The string from which the flag and value will be |
3639 | + * trimmed. Contains the flag once the value has been trimmed. |
3640 | + * \param value - Where the value trimmed from the string will |
3641 | + * be stored. |
3642 | + */ |
3643 | + virtual void trimFlag( std::string& flag, std::string& value ) const; |
3644 | + |
3645 | + /** |
3646 | + * Checks whether a given string has blank chars, indicating that |
3647 | + * it is a combined SwitchArg. If so, return true, otherwise return |
3648 | + * false. |
3649 | + * \param s - string to be checked. |
3650 | + */ |
3651 | + bool _hasBlanks( const std::string& s ) const; |
3652 | + |
3653 | + /** |
3654 | + * Sets the requireLabel. Used by XorHandler. You shouldn't ever |
3655 | + * use this. |
3656 | + * \param s - Set the requireLabel to this value. |
3657 | + */ |
3658 | + void setRequireLabel( const std::string& s ); |
3659 | + |
3660 | + /** |
3661 | + * Used for MultiArgs and XorHandler to determine whether args |
3662 | + * can still be set. |
3663 | + */ |
3664 | + virtual bool allowMore(); |
3665 | + |
3666 | + /** |
3667 | + * Use by output classes to determine whether an Arg accepts |
3668 | + * multiple values. |
3669 | + */ |
3670 | + virtual bool acceptsMultipleValues(); |
3671 | + |
3672 | + /** |
3673 | + * Clears the Arg object and allows it to be reused by new |
3674 | + * command lines. |
3675 | + */ |
3676 | + virtual void reset(); |
3677 | +}; |
3678 | + |
3679 | +/** |
3680 | + * Typedef of an Arg list iterator. |
3681 | + */ |
3682 | +typedef std::list<Arg*>::iterator ArgListIterator; |
3683 | + |
3684 | +/** |
3685 | + * Typedef of an Arg vector iterator. |
3686 | + */ |
3687 | +typedef std::vector<Arg*>::iterator ArgVectorIterator; |
3688 | + |
3689 | +/** |
3690 | + * Typedef of a Visitor list iterator. |
3691 | + */ |
3692 | +typedef std::list<Visitor*>::iterator VisitorListIterator; |
3693 | + |
3694 | +/* |
3695 | + * Extract a value of type T from it's string representation contained |
3696 | + * in strVal. The ValueLike parameter used to select the correct |
3697 | + * specialization of ExtractValue depending on the value traits of T. |
3698 | + * ValueLike traits use operator>> to assign the value from strVal. |
3699 | + */ |
3700 | +template<typename T> void |
3701 | +ExtractValue(T &destVal, const std::string& strVal, ValueLike vl) |
3702 | +{ |
3703 | + static_cast<void>(vl); // Avoid warning about unused vl |
3704 | + std::istringstream is(strVal); |
3705 | + |
3706 | + int valuesRead = 0; |
3707 | + while ( is.good() ) { |
3708 | + if ( is.peek() != EOF ) |
3709 | +#ifdef TCLAP_SETBASE_ZERO |
3710 | + is >> std::setbase(0) >> destVal; |
3711 | +#else |
3712 | + is >> destVal; |
3713 | +#endif |
3714 | + else |
3715 | + break; |
3716 | + |
3717 | + valuesRead++; |
3718 | + } |
3719 | + |
3720 | + if ( is.fail() ) |
3721 | + throw( ArgParseException("Couldn't read argument value " |
3722 | + "from string '" + strVal + "'")); |
3723 | + |
3724 | + |
3725 | + if ( valuesRead > 1 ) |
3726 | + throw( ArgParseException("More than one valid value parsed from " |
3727 | + "string '" + strVal + "'")); |
3728 | + |
3729 | +} |
3730 | + |
3731 | +/* |
3732 | + * Extract a value of type T from it's string representation contained |
3733 | + * in strVal. The ValueLike parameter used to select the correct |
3734 | + * specialization of ExtractValue depending on the value traits of T. |
3735 | + * StringLike uses assignment (operator=) to assign from strVal. |
3736 | + */ |
3737 | +template<typename T> void |
3738 | +ExtractValue(T &destVal, const std::string& strVal, StringLike sl) |
3739 | +{ |
3740 | + static_cast<void>(sl); // Avoid warning about unused sl |
3741 | + SetString(destVal, strVal); |
3742 | +} |
3743 | + |
3744 | +////////////////////////////////////////////////////////////////////// |
3745 | +//BEGIN Arg.cpp |
3746 | +////////////////////////////////////////////////////////////////////// |
3747 | + |
3748 | +inline Arg::Arg(const std::string& flag, |
3749 | + const std::string& name, |
3750 | + const std::string& desc, |
3751 | + bool req, |
3752 | + bool valreq, |
3753 | + Visitor* v) : |
3754 | + _flag(flag), |
3755 | + _name(name), |
3756 | + _description(desc), |
3757 | + _required(req), |
3758 | + _requireLabel("required"), |
3759 | + _valueRequired(valreq), |
3760 | + _alreadySet(false), |
3761 | + _visitor( v ), |
3762 | + _ignoreable(true), |
3763 | + _xorSet(false), |
3764 | + _acceptsMultipleValues(false) |
3765 | +{ |
3766 | + if ( _flag.length() > 1 ) |
3767 | + throw(SpecificationException( |
3768 | + "Argument flag can only be one character long", toString() ) ); |
3769 | + |
3770 | + if ( _name != ignoreNameString() && |
3771 | + ( _flag == Arg::flagStartString() || |
3772 | + _flag == Arg::nameStartString() || |
3773 | + _flag == " " ) ) |
3774 | + throw(SpecificationException("Argument flag cannot be either '" + |
3775 | + Arg::flagStartString() + "' or '" + |
3776 | + Arg::nameStartString() + "' or a space.", |
3777 | + toString() ) ); |
3778 | + |
3779 | + if ( ( _name.substr( 0, Arg::flagStartString().length() ) == Arg::flagStartString() ) || |
3780 | + ( _name.substr( 0, Arg::nameStartString().length() ) == Arg::nameStartString() ) || |
3781 | + ( _name.find( " ", 0 ) != std::string::npos ) ) |
3782 | + throw(SpecificationException("Argument name begin with either '" + |
3783 | + Arg::flagStartString() + "' or '" + |
3784 | + Arg::nameStartString() + "' or space.", |
3785 | + toString() ) ); |
3786 | + |
3787 | +} |
3788 | + |
3789 | +inline Arg::~Arg() { } |
3790 | + |
3791 | +inline std::string Arg::shortID( const std::string& valueId ) const |
3792 | +{ |
3793 | + std::string id = ""; |
3794 | + |
3795 | + if ( _flag != "" ) |
3796 | + id = Arg::flagStartString() + _flag; |
3797 | + else |
3798 | + id = Arg::nameStartString() + _name; |
3799 | + |
3800 | + if ( _valueRequired ) |
3801 | + id += std::string( 1, Arg::delimiter() ) + "<" + valueId + ">"; |
3802 | + |
3803 | + if ( !_required ) |
3804 | + id = "[" + id + "]"; |
3805 | + |
3806 | + return id; |
3807 | +} |
3808 | + |
3809 | +inline std::string Arg::longID( const std::string& valueId ) const |
3810 | +{ |
3811 | + std::string id = ""; |
3812 | + |
3813 | + if ( _flag != "" ) |
3814 | + { |
3815 | + id += Arg::flagStartString() + _flag; |
3816 | + |
3817 | + if ( _valueRequired ) |
3818 | + id += std::string( 1, Arg::delimiter() ) + "<" + valueId + ">"; |
3819 | + |
3820 | + id += ", "; |
3821 | + } |
3822 | + |
3823 | + id += Arg::nameStartString() + _name; |
3824 | + |
3825 | + if ( _valueRequired ) |
3826 | + id += std::string( 1, Arg::delimiter() ) + "<" + valueId + ">"; |
3827 | + |
3828 | + return id; |
3829 | + |
3830 | +} |
3831 | + |
3832 | +inline bool Arg::operator==(const Arg& a) const |
3833 | +{ |
3834 | + if ( ( _flag != "" && _flag == a._flag ) || _name == a._name) |
3835 | + return true; |
3836 | + else |
3837 | + return false; |
3838 | +} |
3839 | + |
3840 | +inline std::string Arg::getDescription() const |
3841 | +{ |
3842 | + std::string desc = ""; |
3843 | + if ( _required ) |
3844 | + desc = "(" + _requireLabel + ") "; |
3845 | + |
3846 | +// if ( _valueRequired ) |
3847 | +// desc += "(value required) "; |
3848 | + |
3849 | + desc += _description; |
3850 | + return desc; |
3851 | +} |
3852 | + |
3853 | +inline const std::string& Arg::getFlag() const { return _flag; } |
3854 | + |
3855 | +inline const std::string& Arg::getName() const { return _name; } |
3856 | + |
3857 | +inline bool Arg::isRequired() const { return _required; } |
3858 | + |
3859 | +inline bool Arg::isValueRequired() const { return _valueRequired; } |
3860 | + |
3861 | +inline bool Arg::isSet() const |
3862 | +{ |
3863 | + if ( _alreadySet && !_xorSet ) |
3864 | + return true; |
3865 | + else |
3866 | + return false; |
3867 | +} |
3868 | + |
3869 | +inline bool Arg::isIgnoreable() const { return _ignoreable; } |
3870 | + |
3871 | +inline void Arg::setRequireLabel( const std::string& s) |
3872 | +{ |
3873 | + _requireLabel = s; |
3874 | +} |
3875 | + |
3876 | +inline bool Arg::argMatches( const std::string& argFlag ) const |
3877 | +{ |
3878 | + if ( ( argFlag == Arg::flagStartString() + _flag && _flag != "" ) || |
3879 | + argFlag == Arg::nameStartString() + _name ) |
3880 | + return true; |
3881 | + else |
3882 | + return false; |
3883 | +} |
3884 | + |
3885 | +inline std::string Arg::toString() const |
3886 | +{ |
3887 | + std::string s = ""; |
3888 | + |
3889 | + if ( _flag != "" ) |
3890 | + s += Arg::flagStartString() + _flag + " "; |
3891 | + |
3892 | + s += "(" + Arg::nameStartString() + _name + ")"; |
3893 | + |
3894 | + return s; |
3895 | +} |
3896 | + |
3897 | +inline void Arg::_checkWithVisitor() const |
3898 | +{ |
3899 | + if ( _visitor != NULL ) |
3900 | + _visitor->visit(); |
3901 | +} |
3902 | + |
3903 | +/** |
3904 | + * Implementation of trimFlag. |
3905 | + */ |
3906 | +inline void Arg::trimFlag(std::string& flag, std::string& value) const |
3907 | +{ |
3908 | + int stop = 0; |
3909 | + for ( int i = 0; static_cast<unsigned int>(i) < flag.length(); i++ ) |
3910 | + if ( flag[i] == Arg::delimiter() ) |
3911 | + { |
3912 | + stop = i; |
3913 | + break; |
3914 | + } |
3915 | + |
3916 | + if ( stop > 1 ) |
3917 | + { |
3918 | + value = flag.substr(stop+1); |
3919 | + flag = flag.substr(0,stop); |
3920 | + } |
3921 | + |
3922 | +} |
3923 | + |
3924 | +/** |
3925 | + * Implementation of _hasBlanks. |
3926 | + */ |
3927 | +inline bool Arg::_hasBlanks( const std::string& s ) const |
3928 | +{ |
3929 | + for ( int i = 1; static_cast<unsigned int>(i) < s.length(); i++ ) |
3930 | + if ( s[i] == Arg::blankChar() ) |
3931 | + return true; |
3932 | + |
3933 | + return false; |
3934 | +} |
3935 | + |
3936 | +inline void Arg::forceRequired() |
3937 | +{ |
3938 | + _required = true; |
3939 | +} |
3940 | + |
3941 | +inline void Arg::xorSet() |
3942 | +{ |
3943 | + _alreadySet = true; |
3944 | + _xorSet = true; |
3945 | +} |
3946 | + |
3947 | +/** |
3948 | + * Overridden by Args that need to added to the end of the list. |
3949 | + */ |
3950 | +inline void Arg::addToList( std::list<Arg*>& argList ) const |
3951 | +{ |
3952 | + argList.push_front( const_cast<Arg*>(this) ); |
3953 | +} |
3954 | + |
3955 | +inline bool Arg::allowMore() |
3956 | +{ |
3957 | + return false; |
3958 | +} |
3959 | + |
3960 | +inline bool Arg::acceptsMultipleValues() |
3961 | +{ |
3962 | + return _acceptsMultipleValues; |
3963 | +} |
3964 | + |
3965 | +inline void Arg::reset() |
3966 | +{ |
3967 | + _xorSet = false; |
3968 | + _alreadySet = false; |
3969 | +} |
3970 | + |
3971 | +////////////////////////////////////////////////////////////////////// |
3972 | +//END Arg.cpp |
3973 | +////////////////////////////////////////////////////////////////////// |
3974 | + |
3975 | +} //namespace TCLAP |
3976 | + |
3977 | +#endif |
3978 | + |
3979 | |
3980 | === added file 'external/tclap/include/tclap/ArgException.h' |
3981 | --- external/tclap/include/tclap/ArgException.h 1970-01-01 00:00:00 +0000 |
3982 | +++ external/tclap/include/tclap/ArgException.h 2013-05-01 15:50:43 +0000 |
3983 | @@ -0,0 +1,200 @@ |
3984 | +// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- |
3985 | + |
3986 | +/****************************************************************************** |
3987 | + * |
3988 | + * file: ArgException.h |
3989 | + * |
3990 | + * Copyright (c) 2003, Michael E. Smoot . |
3991 | + * All rights reverved. |
3992 | + * |
3993 | + * See the file COPYING in the top directory of this distribution for |
3994 | + * more information. |
3995 | + * |
3996 | + * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS |
3997 | + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
3998 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
3999 | + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
4000 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
4001 | + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
4002 | + * DEALINGS IN THE SOFTWARE. |
4003 | + * |
4004 | + *****************************************************************************/ |
4005 | + |
4006 | + |
4007 | +#ifndef TCLAP_ARG_EXCEPTION_H |
4008 | +#define TCLAP_ARG_EXCEPTION_H |
4009 | + |
4010 | +#include <string> |
4011 | +#include <exception> |
4012 | + |
4013 | +namespace TCLAP { |
4014 | + |
4015 | +/** |
4016 | + * A simple class that defines and argument exception. Should be caught |
4017 | + * whenever a CmdLine is created and parsed. |
4018 | + */ |
4019 | +class ArgException : public std::exception |
4020 | +{ |
4021 | + public: |
4022 | + |
4023 | + /** |
4024 | + * Constructor. |
4025 | + * \param text - The text of the exception. |
4026 | + * \param id - The text identifying the argument source. |
4027 | + * \param td - Text describing the type of ArgException it is. |
4028 | + * of the exception. |
4029 | + */ |
4030 | + ArgException( const std::string& text = "undefined exception", |
4031 | + const std::string& id = "undefined", |
4032 | + const std::string& td = "Generic ArgException") |
4033 | + : std::exception(), |
4034 | + _errorText(text), |
4035 | + _argId( id ), |
4036 | + _typeDescription(td) |
4037 | + { } |
4038 | + |
4039 | + /** |
4040 | + * Destructor. |
4041 | + */ |
4042 | + virtual ~ArgException() throw() { } |
4043 | + |
4044 | + /** |
4045 | + * Returns the error text. |
4046 | + */ |
4047 | + std::string error() const { return ( _errorText ); } |
4048 | + |
4049 | + /** |
4050 | + * Returns the argument id. |
4051 | + */ |
4052 | + std::string argId() const |
4053 | + { |
4054 | + if ( _argId == "undefined" ) |
4055 | + return " "; |
4056 | + else |
4057 | + return ( "Argument: " + _argId ); |
4058 | + } |
4059 | + |
4060 | + /** |
4061 | + * Returns the arg id and error text. |
4062 | + */ |
4063 | + const char* what() const throw() |
4064 | + { |
4065 | + static std::string ex; |
4066 | + ex = _argId + " -- " + _errorText; |
4067 | + return ex.c_str(); |
4068 | + } |
4069 | + |
4070 | + /** |
4071 | + * Returns the type of the exception. Used to explain and distinguish |
4072 | + * between different child exceptions. |
4073 | + */ |
4074 | + std::string typeDescription() const |
4075 | + { |
4076 | + return _typeDescription; |
4077 | + } |
4078 | + |
4079 | + |
4080 | + private: |
4081 | + |
4082 | + /** |
4083 | + * The text of the exception message. |
4084 | + */ |
4085 | + std::string _errorText; |
4086 | + |
4087 | + /** |
4088 | + * The argument related to this exception. |
4089 | + */ |
4090 | + std::string _argId; |
4091 | + |
4092 | + /** |
4093 | + * Describes the type of the exception. Used to distinguish |
4094 | + * between different child exceptions. |
4095 | + */ |
4096 | + std::string _typeDescription; |
4097 | + |
4098 | +}; |
4099 | + |
4100 | +/** |
4101 | + * Thrown from within the child Arg classes when it fails to properly |
4102 | + * parse the argument it has been passed. |
4103 | + */ |
4104 | +class ArgParseException : public ArgException |
4105 | +{ |
4106 | + public: |
4107 | + /** |
4108 | + * Constructor. |
4109 | + * \param text - The text of the exception. |
4110 | + * \param id - The text identifying the argument source |
4111 | + * of the exception. |
4112 | + */ |
4113 | + ArgParseException( const std::string& text = "undefined exception", |
4114 | + const std::string& id = "undefined" ) |
4115 | + : ArgException( text, |
4116 | + id, |
4117 | + std::string( "Exception found while parsing " ) + |
4118 | + std::string( "the value the Arg has been passed." )) |
4119 | + { } |
4120 | +}; |
4121 | + |
4122 | +/** |
4123 | + * Thrown from CmdLine when the arguments on the command line are not |
4124 | + * properly specified, e.g. too many arguments, required argument missing, etc. |
4125 | + */ |
4126 | +class CmdLineParseException : public ArgException |
4127 | +{ |
4128 | + public: |
4129 | + /** |
4130 | + * Constructor. |
4131 | + * \param text - The text of the exception. |
4132 | + * \param id - The text identifying the argument source |
4133 | + * of the exception. |
4134 | + */ |
4135 | + CmdLineParseException( const std::string& text = "undefined exception", |
4136 | + const std::string& id = "undefined" ) |
4137 | + : ArgException( text, |
4138 | + id, |
4139 | + std::string( "Exception found when the values ") + |
4140 | + std::string( "on the command line do not meet ") + |
4141 | + std::string( "the requirements of the defined ") + |
4142 | + std::string( "Args." )) |
4143 | + { } |
4144 | +}; |
4145 | + |
4146 | +/** |
4147 | + * Thrown from Arg and CmdLine when an Arg is improperly specified, e.g. |
4148 | + * same flag as another Arg, same name, etc. |
4149 | + */ |
4150 | +class SpecificationException : public ArgException |
4151 | +{ |
4152 | + public: |
4153 | + /** |
4154 | + * Constructor. |
4155 | + * \param text - The text of the exception. |
4156 | + * \param id - The text identifying the argument source |
4157 | + * of the exception. |
4158 | + */ |
4159 | + SpecificationException( const std::string& text = "undefined exception", |
4160 | + const std::string& id = "undefined" ) |
4161 | + : ArgException( text, |
4162 | + id, |
4163 | + std::string("Exception found when an Arg object ")+ |
4164 | + std::string("is improperly defined by the ") + |
4165 | + std::string("developer." )) |
4166 | + { } |
4167 | + |
4168 | +}; |
4169 | + |
4170 | +class ExitException { |
4171 | +public: |
4172 | + ExitException(int estat) : _estat(estat) {} |
4173 | + |
4174 | + int getExitStatus() const { return _estat; } |
4175 | + |
4176 | +private: |
4177 | + int _estat; |
4178 | +}; |
4179 | + |
4180 | +} // namespace TCLAP |
4181 | + |
4182 | +#endif |
4183 | + |
4184 | |
4185 | === added file 'external/tclap/include/tclap/ArgTraits.h' |
4186 | --- external/tclap/include/tclap/ArgTraits.h 1970-01-01 00:00:00 +0000 |
4187 | +++ external/tclap/include/tclap/ArgTraits.h 2013-05-01 15:50:43 +0000 |
4188 | @@ -0,0 +1,87 @@ |
4189 | +// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- |
4190 | + |
4191 | +/****************************************************************************** |
4192 | + * |
4193 | + * file: ArgTraits.h |
4194 | + * |
4195 | + * Copyright (c) 2007, Daniel Aarno, Michael E. Smoot . |
4196 | + * All rights reverved. |
4197 | + * |
4198 | + * See the file COPYING in the top directory of this distribution for |
4199 | + * more information. |
4200 | + * |
4201 | + * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS |
4202 | + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
4203 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
4204 | + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
4205 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
4206 | + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
4207 | + * DEALINGS IN THE SOFTWARE. |
4208 | + * |
4209 | + *****************************************************************************/ |
4210 | + |
4211 | +// This is an internal tclap file, you should probably not have to |
4212 | +// include this directly |
4213 | + |
4214 | +#ifndef TCLAP_ARGTRAITS_H |
4215 | +#define TCLAP_ARGTRAITS_H |
4216 | + |
4217 | +namespace TCLAP { |
4218 | + |
4219 | +// We use two empty structs to get compile type specialization |
4220 | +// function to work |
4221 | + |
4222 | +/** |
4223 | + * A value like argument value type is a value that can be set using |
4224 | + * operator>>. This is the default value type. |
4225 | + */ |
4226 | +struct ValueLike { |
4227 | + typedef ValueLike ValueCategory; |
4228 | + virtual ~ValueLike() {} |
4229 | +}; |
4230 | + |
4231 | +/** |
4232 | + * A string like argument value type is a value that can be set using |
4233 | + * operator=(string). Usefull if the value type contains spaces which |
4234 | + * will be broken up into individual tokens by operator>>. |
4235 | + */ |
4236 | +struct StringLike { |
4237 | + virtual ~StringLike() {} |
4238 | +}; |
4239 | + |
4240 | +/** |
4241 | + * A class can inherit from this object to make it have string like |
4242 | + * traits. This is a compile time thing and does not add any overhead |
4243 | + * to the inherenting class. |
4244 | + */ |
4245 | +struct StringLikeTrait { |
4246 | + typedef StringLike ValueCategory; |
4247 | + virtual ~StringLikeTrait() {} |
4248 | +}; |
4249 | + |
4250 | +/** |
4251 | + * A class can inherit from this object to make it have value like |
4252 | + * traits. This is a compile time thing and does not add any overhead |
4253 | + * to the inherenting class. |
4254 | + */ |
4255 | +struct ValueLikeTrait { |
4256 | + typedef ValueLike ValueCategory; |
4257 | + virtual ~ValueLikeTrait() {} |
4258 | +}; |
4259 | + |
4260 | +/** |
4261 | + * Arg traits are used to get compile type specialization when parsing |
4262 | + * argument values. Using an ArgTraits you can specify the way that |
4263 | + * values gets assigned to any particular type during parsing. The two |
4264 | + * supported types are StringLike and ValueLike. |
4265 | + */ |
4266 | +template<typename T> |
4267 | +struct ArgTraits { |
4268 | + typedef typename T::ValueCategory ValueCategory; |
4269 | + virtual ~ArgTraits() {} |
4270 | + //typedef ValueLike ValueCategory; |
4271 | +}; |
4272 | + |
4273 | +#endif |
4274 | + |
4275 | +} // namespace |
4276 | |
4277 | === added file 'external/tclap/include/tclap/CmdLine.h' |
4278 | --- external/tclap/include/tclap/CmdLine.h 1970-01-01 00:00:00 +0000 |
4279 | +++ external/tclap/include/tclap/CmdLine.h 2013-05-01 15:50:43 +0000 |
4280 | @@ -0,0 +1,633 @@ |
4281 | +// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- |
4282 | + |
4283 | +/****************************************************************************** |
4284 | + * |
4285 | + * file: CmdLine.h |
4286 | + * |
4287 | + * Copyright (c) 2003, Michael E. Smoot . |
4288 | + * Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. |
4289 | + * All rights reverved. |
4290 | + * |
4291 | + * See the file COPYING in the top directory of this distribution for |
4292 | + * more information. |
4293 | + * |
4294 | + * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS |
4295 | + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
4296 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
4297 | + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
4298 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
4299 | + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
4300 | + * DEALINGS IN THE SOFTWARE. |
4301 | + * |
4302 | + *****************************************************************************/ |
4303 | + |
4304 | +#ifndef TCLAP_CMDLINE_H |
4305 | +#define TCLAP_CMDLINE_H |
4306 | + |
4307 | +#include <tclap/SwitchArg.h> |
4308 | +#include <tclap/MultiSwitchArg.h> |
4309 | +#include <tclap/UnlabeledValueArg.h> |
4310 | +#include <tclap/UnlabeledMultiArg.h> |
4311 | + |
4312 | +#include <tclap/XorHandler.h> |
4313 | +#include <tclap/HelpVisitor.h> |
4314 | +#include <tclap/VersionVisitor.h> |
4315 | +#include <tclap/IgnoreRestVisitor.h> |
4316 | + |
4317 | +#include <tclap/CmdLineOutput.h> |
4318 | +#include <tclap/StdOutput.h> |
4319 | + |
4320 | +#include <tclap/Constraint.h> |
4321 | +#include <tclap/ValuesConstraint.h> |
4322 | + |
4323 | +#include <string> |
4324 | +#include <vector> |
4325 | +#include <list> |
4326 | +#include <iostream> |
4327 | +#include <iomanip> |
4328 | +#include <algorithm> |
4329 | +#include <stdlib.h> // Needed for exit(), which isn't defined in some envs. |
4330 | + |
4331 | +namespace TCLAP { |
4332 | + |
4333 | +template<typename T> void DelPtr(T ptr) |
4334 | +{ |
4335 | + delete ptr; |
4336 | +} |
4337 | + |
4338 | +template<typename C> void ClearContainer(C &c) |
4339 | +{ |
4340 | + typedef typename C::value_type value_type; |
4341 | + std::for_each(c.begin(), c.end(), DelPtr<value_type>); |
4342 | + c.clear(); |
4343 | +} |
4344 | + |
4345 | + |
4346 | +/** |
4347 | + * The base class that manages the command line definition and passes |
4348 | + * along the parsing to the appropriate Arg classes. |
4349 | + */ |
4350 | +class CmdLine : public CmdLineInterface |
4351 | +{ |
4352 | + protected: |
4353 | + |
4354 | + /** |
4355 | + * The list of arguments that will be tested against the |
4356 | + * command line. |
4357 | + */ |
4358 | + std::list<Arg*> _argList; |
4359 | + |
4360 | + /** |
4361 | + * The name of the program. Set to argv[0]. |
4362 | + */ |
4363 | + std::string _progName; |
4364 | + |
4365 | + /** |
4366 | + * A message used to describe the program. Used in the usage output. |
4367 | + */ |
4368 | + std::string _message; |
4369 | + |
4370 | + /** |
4371 | + * The version to be displayed with the --version switch. |
4372 | + */ |
4373 | + std::string _version; |
4374 | + |
4375 | + /** |
4376 | + * The number of arguments that are required to be present on |
4377 | + * the command line. This is set dynamically, based on the |
4378 | + * Args added to the CmdLine object. |
4379 | + */ |
4380 | + int _numRequired; |
4381 | + |
4382 | + /** |
4383 | + * The character that is used to separate the argument flag/name |
4384 | + * from the value. Defaults to ' ' (space). |
4385 | + */ |
4386 | + char _delimiter; |
4387 | + |
4388 | + /** |
4389 | + * The handler that manages xoring lists of args. |
4390 | + */ |
4391 | + XorHandler _xorHandler; |
4392 | + |
4393 | + /** |
4394 | + * A list of Args to be explicitly deleted when the destructor |
4395 | + * is called. At the moment, this only includes the three default |
4396 | + * Args. |
4397 | + */ |
4398 | + std::list<Arg*> _argDeleteOnExitList; |
4399 | + |
4400 | + /** |
4401 | + * A list of Visitors to be explicitly deleted when the destructor |
4402 | + * is called. At the moment, these are the Vistors created for the |
4403 | + * default Args. |
4404 | + */ |
4405 | + std::list<Visitor*> _visitorDeleteOnExitList; |
4406 | + |
4407 | + /** |
4408 | + * Object that handles all output for the CmdLine. |
4409 | + */ |
4410 | + CmdLineOutput* _output; |
4411 | + |
4412 | + /** |
4413 | + * Should CmdLine handle parsing exceptions internally? |
4414 | + */ |
4415 | + bool _handleExceptions; |
4416 | + |
4417 | + /** |
4418 | + * Throws an exception listing the missing args. |
4419 | + */ |
4420 | + void missingArgsException(); |
4421 | + |
4422 | + /** |
4423 | + * Checks whether a name/flag string matches entirely matches |
4424 | + * the Arg::blankChar. Used when multiple switches are combined |
4425 | + * into a single argument. |
4426 | + * \param s - The message to be used in the usage. |
4427 | + */ |
4428 | + bool _emptyCombined(const std::string& s); |
4429 | + |
4430 | + /** |
4431 | + * Perform a delete ptr; operation on ptr when this object is deleted. |
4432 | + */ |
4433 | + void deleteOnExit(Arg* ptr); |
4434 | + |
4435 | + /** |
4436 | + * Perform a delete ptr; operation on ptr when this object is deleted. |
4437 | + */ |
4438 | + void deleteOnExit(Visitor* ptr); |
4439 | + |
4440 | +private: |
4441 | + |
4442 | + /** |
4443 | + * Prevent accidental copying. |
4444 | + */ |
4445 | + CmdLine(const CmdLine& rhs); |
4446 | + CmdLine& operator=(const CmdLine& rhs); |
4447 | + |
4448 | + /** |
4449 | + * Encapsulates the code common to the constructors |
4450 | + * (which is all of it). |
4451 | + */ |
4452 | + void _constructor(); |
4453 | + |
4454 | + |
4455 | + /** |
4456 | + * Is set to true when a user sets the output object. We use this so |
4457 | + * that we don't delete objects that are created outside of this lib. |
4458 | + */ |
4459 | + bool _userSetOutput; |
4460 | + |
4461 | + /** |
4462 | + * Whether or not to automatically create help and version switches. |
4463 | + */ |
4464 | + bool _helpAndVersion; |
4465 | + |
4466 | + public: |
4467 | + |
4468 | + /** |
4469 | + * Command line constructor. Defines how the arguments will be |
4470 | + * parsed. |
4471 | + * \param message - The message to be used in the usage |
4472 | + * output. |
4473 | + * \param delimiter - The character that is used to separate |
4474 | + * the argument flag/name from the value. Defaults to ' ' (space). |
4475 | + * \param version - The version number to be used in the |
4476 | + * --version switch. |
4477 | + * \param helpAndVersion - Whether or not to create the Help and |
4478 | + * Version switches. Defaults to true. |
4479 | + */ |
4480 | + CmdLine(const std::string& message, |
4481 | + const char delimiter = ' ', |
4482 | + const std::string& version = "none", |
4483 | + bool helpAndVersion = true); |
4484 | + |
4485 | + /** |
4486 | + * Deletes any resources allocated by a CmdLine object. |
4487 | + */ |
4488 | + virtual ~CmdLine(); |
4489 | + |
4490 | + /** |
4491 | + * Adds an argument to the list of arguments to be parsed. |
4492 | + * \param a - Argument to be added. |
4493 | + */ |
4494 | + void add( Arg& a ); |
4495 | + |
4496 | + /** |
4497 | + * An alternative add. Functionally identical. |
4498 | + * \param a - Argument to be added. |
4499 | + */ |
4500 | + void add( Arg* a ); |
4501 | + |
4502 | + /** |
4503 | + * Add two Args that will be xor'd. If this method is used, add does |
4504 | + * not need to be called. |
4505 | + * \param a - Argument to be added and xor'd. |
4506 | + * \param b - Argument to be added and xor'd. |
4507 | + */ |
4508 | + void xorAdd( Arg& a, Arg& b ); |
4509 | + |
4510 | + /** |
4511 | + * Add a list of Args that will be xor'd. If this method is used, |
4512 | + * add does not need to be called. |
4513 | + * \param xors - List of Args to be added and xor'd. |
4514 | + */ |
4515 | + void xorAdd( std::vector<Arg*>& xors ); |
4516 | + |
4517 | + /** |
4518 | + * Parses the command line. |
4519 | + * \param argc - Number of arguments. |
4520 | + * \param argv - Array of arguments. |
4521 | + */ |
4522 | + void parse(int argc, const char * const * argv); |
4523 | + |
4524 | + /** |
4525 | + * Parses the command line. |
4526 | + * \param args - A vector of strings representing the args. |
4527 | + * args[0] is still the program name. |
4528 | + */ |
4529 | + void parse(std::vector<std::string>& args); |
4530 | + |
4531 | + /** |
4532 | + * |
4533 | + */ |
4534 | + CmdLineOutput* getOutput(); |
4535 | + |
4536 | + /** |
4537 | + * |
4538 | + */ |
4539 | + void setOutput(CmdLineOutput* co); |
4540 | + |
4541 | + /** |
4542 | + * |
4543 | + */ |
4544 | + std::string& getVersion(); |
4545 | + |
4546 | + /** |
4547 | + * |
4548 | + */ |
4549 | + std::string& getProgramName(); |
4550 | + |
4551 | + /** |
4552 | + * |
4553 | + */ |
4554 | + std::list<Arg*>& getArgList(); |
4555 | + |
4556 | + /** |
4557 | + * |
4558 | + */ |
4559 | + XorHandler& getXorHandler(); |
4560 | + |
4561 | + /** |
4562 | + * |
4563 | + */ |
4564 | + char getDelimiter(); |
4565 | + |
4566 | + /** |
4567 | + * |
4568 | + */ |
4569 | + std::string& getMessage(); |
4570 | + |
4571 | + /** |
4572 | + * |
4573 | + */ |
4574 | + bool hasHelpAndVersion(); |
4575 | + |
4576 | + /** |
4577 | + * Disables or enables CmdLine's internal parsing exception handling. |
4578 | + * |
4579 | + * @param state Should CmdLine handle parsing exceptions internally? |
4580 | + */ |
4581 | + void setExceptionHandling(const bool state); |
4582 | + |
4583 | + /** |
4584 | + * Returns the current state of the internal exception handling. |
4585 | + * |
4586 | + * @retval true Parsing exceptions are handled internally. |
4587 | + * @retval false Parsing exceptions are propagated to the caller. |
4588 | + */ |
4589 | + bool getExceptionHandling() const; |
4590 | + |
4591 | + /** |
4592 | + * Allows the CmdLine object to be reused. |
4593 | + */ |
4594 | + void reset(); |
4595 | + |
4596 | +}; |
4597 | + |
4598 | + |
4599 | +/////////////////////////////////////////////////////////////////////////////// |
4600 | +//Begin CmdLine.cpp |
4601 | +/////////////////////////////////////////////////////////////////////////////// |
4602 | + |
4603 | +inline CmdLine::CmdLine(const std::string& m, |
4604 | + char delim, |
4605 | + const std::string& v, |
4606 | + bool help ) |
4607 | + : |
4608 | + _argList(std::list<Arg*>()), |
4609 | + _progName("not_set_yet"), |
4610 | + _message(m), |
4611 | + _version(v), |
4612 | + _numRequired(0), |
4613 | + _delimiter(delim), |
4614 | + _xorHandler(XorHandler()), |
4615 | + _argDeleteOnExitList(std::list<Arg*>()), |
4616 | + _visitorDeleteOnExitList(std::list<Visitor*>()), |
4617 | + _output(0), |
4618 | + _handleExceptions(true), |
4619 | + _userSetOutput(false), |
4620 | + _helpAndVersion(help) |
4621 | +{ |
4622 | + _constructor(); |
4623 | +} |
4624 | + |
4625 | +inline CmdLine::~CmdLine() |
4626 | +{ |
4627 | + ClearContainer(_argDeleteOnExitList); |
4628 | + ClearContainer(_visitorDeleteOnExitList); |
4629 | + |
4630 | + if ( !_userSetOutput ) { |
4631 | + delete _output; |
4632 | + _output = 0; |
4633 | + } |
4634 | +} |
4635 | + |
4636 | +inline void CmdLine::_constructor() |
4637 | +{ |
4638 | + _output = new StdOutput; |
4639 | + |
4640 | + Arg::setDelimiter( _delimiter ); |
4641 | + |
4642 | + Visitor* v; |
4643 | + |
4644 | + if ( _helpAndVersion ) |
4645 | + { |
4646 | + v = new HelpVisitor( this, &_output ); |
4647 | + SwitchArg* help = new SwitchArg("h","help", |
4648 | + "Displays usage information and exits.", |
4649 | + false, v); |
4650 | + add( help ); |
4651 | + deleteOnExit(help); |
4652 | + deleteOnExit(v); |
4653 | + |
4654 | + v = new VersionVisitor( this, &_output ); |
4655 | + SwitchArg* vers = new SwitchArg("","version", |
4656 | + "Displays version information and exits.", |
4657 | + false, v); |
4658 | + add( vers ); |
4659 | + deleteOnExit(vers); |
4660 | + deleteOnExit(v); |
4661 | + } |
4662 | + |
4663 | + v = new IgnoreRestVisitor(); |
4664 | + SwitchArg* ignore = new SwitchArg(Arg::flagStartString(), |
4665 | + Arg::ignoreNameString(), |
4666 | + "Ignores the rest of the labeled arguments following this flag.", |
4667 | + false, v); |
4668 | + add( ignore ); |
4669 | + deleteOnExit(ignore); |
4670 | + deleteOnExit(v); |
4671 | +} |
4672 | + |
4673 | +inline void CmdLine::xorAdd( std::vector<Arg*>& ors ) |
4674 | +{ |
4675 | + _xorHandler.add( ors ); |
4676 | + |
4677 | + for (ArgVectorIterator it = ors.begin(); it != ors.end(); it++) |
4678 | + { |
4679 | + (*it)->forceRequired(); |
4680 | + (*it)->setRequireLabel( "OR required" ); |
4681 | + add( *it ); |
4682 | + } |
4683 | +} |
4684 | + |
4685 | +inline void CmdLine::xorAdd( Arg& a, Arg& b ) |
4686 | +{ |
4687 | + std::vector<Arg*> ors; |
4688 | + ors.push_back( &a ); |
4689 | + ors.push_back( &b ); |
4690 | + xorAdd( ors ); |
4691 | +} |
4692 | + |
4693 | +inline void CmdLine::add( Arg& a ) |
4694 | +{ |
4695 | + add( &a ); |
4696 | +} |
4697 | + |
4698 | +inline void CmdLine::add( Arg* a ) |
4699 | +{ |
4700 | + for( ArgListIterator it = _argList.begin(); it != _argList.end(); it++ ) |
4701 | + if ( *a == *(*it) ) |
4702 | + throw( SpecificationException( |
4703 | + "Argument with same flag/name already exists!", |
4704 | + a->longID() ) ); |
4705 | + |
4706 | + a->addToList( _argList ); |
4707 | + |
4708 | + if ( a->isRequired() ) |
4709 | + _numRequired++; |
4710 | +} |
4711 | + |
4712 | + |
4713 | +inline void CmdLine::parse(int argc, const char * const * argv) |
4714 | +{ |
4715 | + // this step is necessary so that we have easy access to |
4716 | + // mutable strings. |
4717 | + std::vector<std::string> args; |
4718 | + for (int i = 0; i < argc; i++) |
4719 | + args.push_back(argv[i]); |
4720 | + |
4721 | + parse(args); |
4722 | +} |
4723 | + |
4724 | +inline void CmdLine::parse(std::vector<std::string>& args) |
4725 | +{ |
4726 | + bool shouldExit = false; |
4727 | + int estat = 0; |
4728 | + |
4729 | + try { |
4730 | + _progName = args.front(); |
4731 | + args.erase(args.begin()); |
4732 | + |
4733 | + int requiredCount = 0; |
4734 | + |
4735 | + for (int i = 0; static_cast<unsigned int>(i) < args.size(); i++) |
4736 | + { |
4737 | + bool matched = false; |
4738 | + for (ArgListIterator it = _argList.begin(); |
4739 | + it != _argList.end(); it++) { |
4740 | + if ( (*it)->processArg( &i, args ) ) |
4741 | + { |
4742 | + requiredCount += _xorHandler.check( *it ); |
4743 | + matched = true; |
4744 | + break; |
4745 | + } |
4746 | + } |
4747 | + |
4748 | + // checks to see if the argument is an empty combined |
4749 | + // switch and if so, then we've actually matched it |
4750 | + if ( !matched && _emptyCombined( args[i] ) ) |
4751 | + matched = true; |
4752 | + |
4753 | + if ( !matched && !Arg::ignoreRest() ) |
4754 | + throw(CmdLineParseException("Couldn't find match " |
4755 | + "for argument", |
4756 | + args[i])); |
4757 | + } |
4758 | + |
4759 | + if ( requiredCount < _numRequired ) |
4760 | + missingArgsException(); |
4761 | + |
4762 | + if ( requiredCount > _numRequired ) |
4763 | + throw(CmdLineParseException("Too many arguments!")); |
4764 | + |
4765 | + } catch ( ArgException& e ) { |
4766 | + // If we're not handling the exceptions, rethrow. |
4767 | + if ( !_handleExceptions) { |
4768 | + throw; |
4769 | + } |
4770 | + |
4771 | + try { |
4772 | + _output->failure(*this,e); |
4773 | + } catch ( ExitException &ee ) { |
4774 | + estat = ee.getExitStatus(); |
4775 | + shouldExit = true; |
4776 | + } |
4777 | + } catch (ExitException &ee) { |
4778 | + // If we're not handling the exceptions, rethrow. |
4779 | + if ( !_handleExceptions) { |
4780 | + throw; |
4781 | + } |
4782 | + |
4783 | + estat = ee.getExitStatus(); |
4784 | + shouldExit = true; |
4785 | + } |
4786 | + |
4787 | + if (shouldExit) |
4788 | + exit(estat); |
4789 | +} |
4790 | + |
4791 | +inline bool CmdLine::_emptyCombined(const std::string& s) |
4792 | +{ |
4793 | + if ( s.length() > 0 && s[0] != Arg::flagStartChar() ) |
4794 | + return false; |
4795 | + |
4796 | + for ( int i = 1; static_cast<unsigned int>(i) < s.length(); i++ ) |
4797 | + if ( s[i] != Arg::blankChar() ) |
4798 | + return false; |
4799 | + |
4800 | + return true; |
4801 | +} |
4802 | + |
4803 | +inline void CmdLine::missingArgsException() |
4804 | +{ |
4805 | + int count = 0; |
4806 | + |
4807 | + std::string missingArgList; |
4808 | + for (ArgListIterator it = _argList.begin(); it != _argList.end(); it++) |
4809 | + { |
4810 | + if ( (*it)->isRequired() && !(*it)->isSet() ) |
4811 | + { |
4812 | + missingArgList += (*it)->getName(); |
4813 | + missingArgList += ", "; |
4814 | + count++; |
4815 | + } |
4816 | + } |
4817 | + missingArgList = missingArgList.substr(0,missingArgList.length()-2); |
4818 | + |
4819 | + std::string msg; |
4820 | + if ( count > 1 ) |
4821 | + msg = "Required arguments missing: "; |
4822 | + else |
4823 | + msg = "Required argument missing: "; |
4824 | + |
4825 | + msg += missingArgList; |
4826 | + |
4827 | + throw(CmdLineParseException(msg)); |
4828 | +} |
4829 | + |
4830 | +inline void CmdLine::deleteOnExit(Arg* ptr) |
4831 | +{ |
4832 | + _argDeleteOnExitList.push_back(ptr); |
4833 | +} |
4834 | + |
4835 | +inline void CmdLine::deleteOnExit(Visitor* ptr) |
4836 | +{ |
4837 | + _visitorDeleteOnExitList.push_back(ptr); |
4838 | +} |
4839 | + |
4840 | +inline CmdLineOutput* CmdLine::getOutput() |
4841 | +{ |
4842 | + return _output; |
4843 | +} |
4844 | + |
4845 | +inline void CmdLine::setOutput(CmdLineOutput* co) |
4846 | +{ |
4847 | + if ( !_userSetOutput ) |
4848 | + delete _output; |
4849 | + _userSetOutput = true; |
4850 | + _output = co; |
4851 | +} |
4852 | + |
4853 | +inline std::string& CmdLine::getVersion() |
4854 | +{ |
4855 | + return _version; |
4856 | +} |
4857 | + |
4858 | +inline std::string& CmdLine::getProgramName() |
4859 | +{ |
4860 | + return _progName; |
4861 | +} |
4862 | + |
4863 | +inline std::list<Arg*>& CmdLine::getArgList() |
4864 | +{ |
4865 | + return _argList; |
4866 | +} |
4867 | + |
4868 | +inline XorHandler& CmdLine::getXorHandler() |
4869 | +{ |
4870 | + return _xorHandler; |
4871 | +} |
4872 | + |
4873 | +inline char CmdLine::getDelimiter() |
4874 | +{ |
4875 | + return _delimiter; |
4876 | +} |
4877 | + |
4878 | +inline std::string& CmdLine::getMessage() |
4879 | +{ |
4880 | + return _message; |
4881 | +} |
4882 | + |
4883 | +inline bool CmdLine::hasHelpAndVersion() |
4884 | +{ |
4885 | + return _helpAndVersion; |
4886 | +} |
4887 | + |
4888 | +inline void CmdLine::setExceptionHandling(const bool state) |
4889 | +{ |
4890 | + _handleExceptions = state; |
4891 | +} |
4892 | + |
4893 | +inline bool CmdLine::getExceptionHandling() const |
4894 | +{ |
4895 | + return _handleExceptions; |
4896 | +} |
4897 | + |
4898 | +inline void CmdLine::reset() |
4899 | +{ |
4900 | + for( ArgListIterator it = _argList.begin(); it != _argList.end(); it++ ) |
4901 | + (*it)->reset(); |
4902 | + |
4903 | + _progName.clear(); |
4904 | +} |
4905 | + |
4906 | +/////////////////////////////////////////////////////////////////////////////// |
4907 | +//End CmdLine.cpp |
4908 | +/////////////////////////////////////////////////////////////////////////////// |
4909 | + |
4910 | + |
4911 | + |
4912 | +} //namespace TCLAP |
4913 | +#endif |
4914 | |
4915 | === added file 'external/tclap/include/tclap/CmdLineInterface.h' |
4916 | --- external/tclap/include/tclap/CmdLineInterface.h 1970-01-01 00:00:00 +0000 |
4917 | +++ external/tclap/include/tclap/CmdLineInterface.h 2013-05-01 15:50:43 +0000 |
4918 | @@ -0,0 +1,150 @@ |
4919 | + |
4920 | +/****************************************************************************** |
4921 | + * |
4922 | + * file: CmdLineInterface.h |
4923 | + * |
4924 | + * Copyright (c) 2003, Michael E. Smoot . |
4925 | + * Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. |
4926 | + * All rights reverved. |
4927 | + * |
4928 | + * See the file COPYING in the top directory of this distribution for |
4929 | + * more information. |
4930 | + * |
4931 | + * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS |
4932 | + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
4933 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
4934 | + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
4935 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
4936 | + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
4937 | + * DEALINGS IN THE SOFTWARE. |
4938 | + * |
4939 | + *****************************************************************************/ |
4940 | + |
4941 | +#ifndef TCLAP_COMMANDLINE_INTERFACE_H |
4942 | +#define TCLAP_COMMANDLINE_INTERFACE_H |
4943 | + |
4944 | +#include <string> |
4945 | +#include <vector> |
4946 | +#include <list> |
4947 | +#include <iostream> |
4948 | +#include <algorithm> |
4949 | + |
4950 | + |
4951 | +namespace TCLAP { |
4952 | + |
4953 | +class Arg; |
4954 | +class CmdLineOutput; |
4955 | +class XorHandler; |
4956 | + |
4957 | +/** |
4958 | + * The base class that manages the command line definition and passes |
4959 | + * along the parsing to the appropriate Arg classes. |
4960 | + */ |
4961 | +class CmdLineInterface |
4962 | +{ |
4963 | + public: |
4964 | + |
4965 | + /** |
4966 | + * Destructor |
4967 | + */ |
4968 | + virtual ~CmdLineInterface() {} |
4969 | + |
4970 | + /** |
4971 | + * Adds an argument to the list of arguments to be parsed. |
4972 | + * \param a - Argument to be added. |
4973 | + */ |
4974 | + virtual void add( Arg& a )=0; |
4975 | + |
4976 | + /** |
4977 | + * An alternative add. Functionally identical. |
4978 | + * \param a - Argument to be added. |
4979 | + */ |
4980 | + virtual void add( Arg* a )=0; |
4981 | + |
4982 | + /** |
4983 | + * Add two Args that will be xor'd. |
4984 | + * If this method is used, add does |
4985 | + * not need to be called. |
4986 | + * \param a - Argument to be added and xor'd. |
4987 | + * \param b - Argument to be added and xor'd. |
4988 | + */ |
4989 | + virtual void xorAdd( Arg& a, Arg& b )=0; |
4990 | + |
4991 | + /** |
4992 | + * Add a list of Args that will be xor'd. If this method is used, |
4993 | + * add does not need to be called. |
4994 | + * \param xors - List of Args to be added and xor'd. |
4995 | + */ |
4996 | + virtual void xorAdd( std::vector<Arg*>& xors )=0; |
4997 | + |
4998 | + /** |
4999 | + * Parses the command line. |
5000 | + * \param argc - Number of arguments. |
The diff has been truncated for viewing.