Akim Demaille
892a39950d
* src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
...
if body instead of `;' to pacify GCC's warnings.
2001-11-30 11:11:34 +00:00
Akim Demaille
68f1e3edc3
Instead of mapping the LHS of unused rules to -1, keep the LHS
...
valid, but flag the rules as invalid.
* src/gram.h (rule_t): `useful' is a new member.
* src/print.c (print_grammar): Adjust.
* src/derives.c (set_derives): Likewise.
* src/reader.c (packgram, reduce_output): Likewise.
* src/reduce.c (reduce_grammar_tables): Likewise.
* tests/reduce.at (Underivable Rules, Useless Rules): New.
2001-11-30 10:49:24 +00:00
Akim Demaille
d2d1b42b07
* src/reduce.c (reduce_output): Formatting changes.
...
* src/print.c (print_results, print_grammar): Likewise.
* tests/regression.at (Rule Line Numbers)
(Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
2001-11-30 10:49:01 +00:00
Akim Demaille
760b53a84b
* src/reduce.c (nonterminals_reduce): Instead of throwing away
...
useless nonterminals, move them at the end of the symbol arrays.
(reduce_output): Adjust.
* tests/reduce.at (Useless Nonterminals): Adjust.
2001-11-30 10:48:14 +00:00
Akim Demaille
002389585a
* src/reduce.c: Various comment/formatting changes.
...
(nonterminals_reduce): New, extracted from...
(reduce_grammar_tables): here.
(reduce_grammar): Call nonterminals_reduce.
2001-11-30 10:47:56 +00:00
Akim Demaille
9113b58f6f
Regen.
2001-11-28 14:59:53 +00:00
Akim Demaille
4a38e61393
* src/LR0.c (shifts_new): New.
...
(save_shifts, insert_start_shift, augment_automaton): Use it.
2001-11-28 14:53:29 +00:00
Akim Demaille
4b35e1c1dd
* src/closure.c (closure): b' and ruleno' denote the same value:
...
keep ruleno only.
2001-11-28 14:53:16 +00:00
Akim Demaille
d2b04478d4
* src/closure.c (closure): Instead of looping over word in array
...
then bits in words, loop over bits in array.
2001-11-28 14:53:03 +00:00
Akim Demaille
2c4c30aa95
* src/closure.c (closure): No longer optimize the special case
...
where all the bits of `ruleset[r]' are set to 0, to make the code
clearer.
2001-11-28 14:52:50 +00:00
Akim Demaille
576890b7ee
* src/closure.c (closure): r' and c' are new variables, used to
...
de-obfuscate accesses to RULESET and CORE.
2001-11-28 14:52:38 +00:00
Akim Demaille
cb487d7d0d
* src/reduce.c (reduce_print): Use ngettext.
...
(dump_grammar): Improve the trace accuracy.
2001-11-28 13:38:53 +00:00
Akim Demaille
6013d43f59
* src/reduce.c (dump_grammar): Don't translate trace messages.
2001-11-28 11:58:28 +00:00
Akim Demaille
cb4956ee99
* tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
...
* src/reduce.c (reduce_grammar_tables): Do not free useless tags,
as all tags are free'ed afterwards.
From Enrico Scholz.
2001-11-28 11:43:24 +00:00
Akim Demaille
e0327bc8b4
* src/system.h: Use intl/libgettext.h.
...
* src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
2001-11-27 19:22:10 +00:00
Akim Demaille
000f1a3cb2
* tests/torture.at (Exploding the Stack Size with Malloc):
...
s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
2001-11-27 18:57:51 +00:00
Akim Demaille
26cfe0be87
* src/files.c: Include error.h.
...
Reported by Hans Aberg.
2001-11-27 18:43:20 +00:00
Akim Demaille
2ca209c11d
* src/reader.c (readgram): Make sure rules for mid-rule actions
...
have a lineno equal to that of their host rule.
Reported by Hans Aberg.
* tests/regression.at (Rule Line Numbers): New.
2001-11-26 15:27:58 +00:00
Akim Demaille
0e41b407b9
* src/LR0.c (allocate_itemsets): kernel_size contains ints, not
...
size_ts.
2001-11-26 13:01:17 +00:00
Akim Demaille
e0c40012bd
* src/reader.c (read_declarations): Don't abort on tok_illegal,
...
issue an error message.
* tests/regression.at (Invalid %directive): New.
Reported by Hans Aberg.
2001-11-26 09:50:29 +00:00
Akim Demaille
5e147124b5
* configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
...
* lib/Makefile.am (libbison_a_SOURCES): Adjust.
2001-11-26 09:35:38 +00:00
Akim Demaille
a034c8b849
* src/conflicts.c (conflicts_print): Don't complain at all when
...
there are no reduce/reduce conflicts, and as many shift/reduce
conflicts as expected.
* tests/regression.at (%expect right): Adjust.
2001-11-26 09:32:32 +00:00
Akim Demaille
c64a20f3dc
* lib/alloca.c: Update, from fileutils.
2001-11-23 14:56:30 +00:00
Akim Demaille
5b0d29bb52
* lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
2001-11-23 14:19:09 +00:00
Akim Demaille
722c4bfec2
* src/system.h: Include alloca.h.
...
* src/main.c (main) [C_ALLOCA]: Call alloca (0).
2001-11-23 14:16:34 +00:00
Akim Demaille
6255b43511
* src/print_graph.c (print_actions): Remove `rule', unused.
...
* src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
pacify GCC's signed < unsigned warnings.
* src/closure.c (itemsetsize): Likewise.
* src/reader.c (symbol_list_new): Static.
2001-11-23 14:13:20 +00:00
Akim Demaille
b29b2ed560
Attaching lineno to buckets is stupid, since only one copy of each
...
symbol is kept, only the line of the first occurrence is kept too.
* src/symtab.h, src/symtab.c (bucket): Remove the line member.
* src/reader.c (rline_allocated): Remove, unused.
(symbol_list): Have a `line' member.
(symbol_list_new): New.
(readgram): Use it.
* src/print.c (print_grammar): Output the rule line numbers.
* tests/regression.at (Solved SR Conflicts)
(Unresolved SR Conflicts): Adjust.
Reported by Hans Aberg.
2001-11-23 14:13:02 +00:00
Akim Demaille
cc72668cfb
Englishoes reported by Jim.
2001-11-21 11:50:48 +00:00
Akim Demaille
fbe01355c8
* po/sv.po: New.
...
* configure.in (ALL_LINGUAS): Adjust.
* po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
longer contains strings to translate.
2001-11-20 13:16:10 +00:00
Akim Demaille
81e895c01e
* src/conflicts.c (conflicts_print): Add a missing n.
2001-11-19 11:08:22 +00:00
Akim Demaille
d38d6e7c76
Formatting changes.
2001-11-19 10:43:20 +00:00
Akim Demaille
6bb1878b51
* src/nullable.c (nullable_print): New.
...
(set_nullable): Call it when tracing.
Better locality of variables.
2001-11-19 10:39:49 +00:00
Akim Demaille
d9ec2d0749
* src/print.c (print_actions): Better locality of variables.
2001-11-19 10:39:35 +00:00
Akim Demaille
720e5c1bc3
* src/derives.c (print_derives): Fix and enrich.
...
* src/closure.c (print_fderives): Likewise.
2001-11-19 10:39:21 +00:00
Akim Demaille
fb9087861f
* src/closure.c (itemsetend): Remove, replaced with...
...
(itemsetsize): new.
2001-11-19 10:39:07 +00:00
Akim Demaille
125ecb5684
* src/LR0.c (kernel_end): Remove, replaced with...
...
(kernel_size): new.
2001-11-19 10:38:53 +00:00
Akim Demaille
d8cf039f97
* src/conflicts.c (set_conflicts): Use arrays instead of pointers
...
to clarify.
2001-11-19 10:38:39 +00:00
Akim Demaille
7bec0760a8
* src/closure.c (closure): Use arrays instead of pointers to clarify.
2001-11-19 10:38:25 +00:00
Akim Demaille
c87d4863f6
* src/closure.c, src/derives.c, src/nullable.c: Adjust various
...
trace messages.
* src/LR0.c: Likewise.
(allocate_itemsets): Use arrays instead of pointers to clarify.
2001-11-19 10:38:12 +00:00
Akim Demaille
9bfe901c33
* src/getargs.c (statistics_flag): Replace with...
...
(trace_flag): New.
(longopts): Accept --trace instead of --statistics.
* src/getargs.h, src/options.c: Adjust.
* src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
* src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
2001-11-19 10:37:58 +00:00
Akim Demaille
97db7bd4a1
* src/LR0.c (new_itemsets, get_state): Use more arrays and less
...
pointers to clarify the code.
(save_reductions, save_shifts): Factor common parts of alternatives.
2001-11-19 10:33:54 +00:00
Akim Demaille
2c5f66eda7
* src/LR0.c (new_state, get_state): Complete TRACE code.
...
* src/closure.c: Include `reader.h' to get `tags', needed by the
trace code.
Rename the conditional DEBUG as TRACE.
Output consistently TRACEs to stderr, not stdout.
* src/derives.c: Likewise.
* src/reduce.c: (inaccessable_symbols): Using if is better style
than goto.
Use `#if TRACE' instead of `#if 0' for tracing code.
2001-11-19 10:33:40 +00:00
Akim Demaille
300f275f23
* src/system.h (LIST_FREE, shortcpy): New.
...
* src/LR0.c: Use them.
* src/output.c (free_itemsets, free_reductions, free_shifts):
Remove, replaced by LIST_FREE.
2001-11-19 10:31:49 +00:00
Akim Demaille
f59c437a25
* src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
...
(REDUCTIONS_ALLOC): New.
* src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
allocation.
2001-11-19 10:29:17 +00:00
Akim Demaille
6986fd9e3b
* src/LR0.c (new_state): Complete trace code.
...
* src/nullable.c (set_nullable): Don't translate traces.
2001-11-19 10:28:57 +00:00
Akim Demaille
4bc30f78dc
* src/print_graph.c (print_core): Better locality of variables.
...
* src/print.c (print_core): Likewise.
2001-11-19 10:28:43 +00:00
Akim Demaille
08a946e008
* src/vcg.c: You do the output, so you are responsible of the
...
handling of VCG syntax, in particular: use quotearg.
* src/print_graph.c: Don't.
(print_actions): Don't output the actions as part of the nodes,
since that's the job of the edges.
(print_state): Don't output by hand: fill the node description,
and ask for its output.
2001-11-19 10:28:29 +00:00
Akim Demaille
f047348491
* src/bison.simple (yyparse): When reporting verbosely an error,
...
no longer issue additional quotes around token names.
* tests/calc.at: Adjust.
2001-11-19 10:27:52 +00:00
Akim Demaille
e41dc70020
* src/symtab.h, src/symtab.c: line' is a new member of bucket'.
...
* src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
* src/output.c: Adjust.
2001-11-19 10:26:16 +00:00
Akim Demaille
652a871c29
* src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
...
(rule_t): this.
* src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
2001-11-19 10:19:56 +00:00
Akim Demaille
b2ed6e5826
* src/gram.h (rule_t): New.
...
(rule_table): New.
(rrhs, rlhs): Remove, part of state_t.
* src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
* src/lalr.c, src/nullable.c, src/output.c, src/print.c,
* src/reader.c, src/reduce.c: Adjust.
2001-11-19 10:19:20 +00:00
Akim Demaille
edad70670f
* src/reader.c (symbols_output): New, extracted from...
...
(packsymbols): Here.
(reader): Call it.
2001-11-19 10:14:29 +00:00
Akim Demaille
3feec03433
* src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
...
(maxrhs): this new function.
2001-11-19 10:09:24 +00:00
Akim Demaille
ddcd5fdff6
* src/lalr.c (F): New macro to access to the variable F.
...
Adjust.
2001-11-19 10:09:11 +00:00
Akim Demaille
bb527fc271
* src/lalr.h (LA): New macro to access to the variable LA.
...
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
* src/lalr.c: Adjust.
2001-11-19 10:08:54 +00:00
Akim Demaille
a845a69707
* src/lalr.c (initialize_LA): Only initialize LA. Let...
...
(set_state_table): handle the `lookaheads' members.
2001-11-19 10:08:34 +00:00
Akim Demaille
f004bf6ac4
* src/lalr.h (lookaheads): Removed array, which contents is now
...
member of...
(state_t): this structure.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
Adjust.
2001-11-19 10:08:20 +00:00
Akim Demaille
de326cc0de
* src/lalr.h (consistent): Removed array, which contents is now
...
member of...
(state_t): this structure.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
Adjust.
2001-11-19 10:08:02 +00:00
Akim Demaille
90b4416b5b
* src/lalr.h (reduction_table, shift_table): Removed arrays, which
...
contents is now members of...
(state_t): this structure.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
Adjust.
2001-11-19 10:07:44 +00:00
Akim Demaille
9703cc49e0
* src/lalr.h (state_t): New.
...
(state_table): Be a state_t * instead of a core **.
(accessing_symbol): Remove, part of state_t.
* src/lalr.c: Adjust.
(set_accessing_symbol): Merge into...
(set_state_table): this.
* src/print_graph.c, src/conflicts.c: Adjust.
2001-11-19 10:07:14 +00:00
Akim Demaille
d803322e27
* tests/calc.at, tests/output.at, tests/regression.at,
...
* tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
now the tests are run in private dirs, therefore AC_CLEANUP and
family can be simplified to 0-ary.
* tests/atlocal.in: Now that we run `elsewhere' than in tests/,
use abs. path to find config.h.
* tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
stderr, there can be way too much random noise.
Instead pass -Werror to GCC and rely on the exit status.
Reported by Wolfram Wagner.
2001-11-14 15:20:47 +00:00
Akim Demaille
3d76b07def
* src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
...
defined only if yyoverflow is defined, to avoid `warning: unused
variable `yyvs1''.
Reported by The Test Suite.
2001-11-14 14:57:44 +00:00
Akim Demaille
09b503c8e1
* src/print.c: Include reduce.h.
...
Reported by Hans Aberg.
2001-11-14 14:43:58 +00:00
Akim Demaille
0f37a9942f
* src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
...
definition.
* src/main.c (main): Use them.
Suggested by Hans Aberg.
2001-11-14 14:15:22 +00:00
Akim Demaille
fa63c49821
Adjust ngettext default.
2001-11-12 10:14:44 +00:00
Akim Demaille
d39d93b834
* src/system.h (ngettext): Now that we use ngettext, be sure to
...
provide a default definition when NLS are not used.
2001-11-12 09:57:58 +00:00
Akim Demaille
9edcd89542
* doc/bison.texinfo: Use $' as shell prompt, not %'.
...
Use @kbd to denote user input.
(Language and Grammar): ANSIfy the example.
Adjust its layout for info/notinfo.
(Location Tracking Calc): Output error messages to stderr.
Output locations in a more GNUtically correct way.
Fix a couple of Englishos.
Adjust @group/@end group pairs.
2001-11-12 09:36:31 +00:00
Akim Demaille
7da99edea7
%expext was not functioning at all.
...
* src/conflicts.c (expected_conflicts): Set to -1.
(conflict_report): Use ngettext.
(conflicts_print): Check %expect and make its violation an error.
* doc/bison.texinfo (Expect Decl): Adjust.
* configure.in (AM_GNU_GETTEXT): Ask for ngettext.
* tests/regression.at (%expect not enough, %expect right)
(%expect too much): New.
2001-11-12 09:33:38 +00:00
Akim Demaille
ba9dda1a2e
* tests/regression.at (Conflicts): Rename as...
...
(Unresolved SR Conflicts): this.
(Solved SR Conflicts): New.
2001-11-12 09:33:04 +00:00
Akim Demaille
337c5bd131
* src/reduce.c (print_results): Rename as...
...
(reduce_output): This.
Output to OUT, passed as argument, instead of output_obstack.
(dump_grammar): Likewise.
(reduce_free): New.
Also free V1.
(reduce_grammar): No longer call reduce_output, since...
* src/print.c (print_results): do it.
* src/main.c (main): Call reduce_free;
2001-11-12 09:32:51 +00:00
Akim Demaille
c73a41af8e
* src/conflicts.c (print_reductions): Accept OUT as argument.
...
Output to it, not to output_obstack.
* src/print.c (print_actions): Adjust.
2001-11-12 09:32:35 +00:00
Akim Demaille
0df87bb609
* src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
...
the result instead of using...
(src_total, rrc_total, src_count, rrc_count): Remove.
(any_conflicts): Remove.
(print_conflicts): Split into...
(conflicts_print, conflicts_output): New.
* src/conflicts.h: Adjust.
* src/main.c (main): Invoke both conflicts_output and conflicts_print.
* src/print.c (print_grammar): Issue `n' between to rule outputs.
* tests/regression.at (Conflicts): New.
Reported by Tom Lane.
2001-11-12 09:31:40 +00:00
Akim Demaille
e4d3d4de4c
* tests/regression.at (Invalid input): Remove, duplicate with
...
``Invalid input: 1''.
2001-11-12 09:25:19 +00:00
Akim Demaille
6d7d248e72
* tests/torture.at (AT_DATA_STACK_TORTURE)
...
(Exploding the Stack Size with Alloca)
(Exploding the Stack Size with Malloc): New.
2001-11-12 09:25:05 +00:00
Akim Demaille
e9e4c32114
* src/bison.simple (YYSTACK_REALLOC): New.
...
(yyparse) [!yyoverflow]: Use it and free the old stack.
Reported by FIXME: Who.
2001-11-12 09:24:50 +00:00
Akim Demaille
5f7e08323a
* src/bison.simple: Define type yystype instead of YYSTYPE, and
...
define CPP macro, which substitute YYSTYPE by yystype.
* src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
with yyltype/YYLTYPE. This allows inclusion of the generated
header within the parser if the compiler, such as GGC, accepts
multiple equivalent #defines.
From Akim.
2001-11-12 09:24:14 +00:00
Akim Demaille
e3f1699f55
* src/reader.c (symbols_output): New, extracted from...
...
(packsymbols): here.
(reader): Adjust.
2001-11-05 14:19:29 +00:00
Akim Demaille
65be086611
* src/lex.c (parse_percent_token): s/quotearg/quote/.
2001-11-05 10:07:46 +00:00
Akim Demaille
e4d910bf0f
* tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
...
pattern.
2001-11-05 09:19:00 +00:00
Akim Demaille
1964ad8c34
Formatting changes.
2001-11-05 09:14:55 +00:00
Akim Demaille
951366c145
* src/options.h (struct option_table_struct): set_flags is void*.
...
* src/options.c (longopts): Support `--output' and `%output'.
(usage): Adjust.
* src/lex.h (tok_setopt): Remove, replaced with...
(tok_intopt, tok_stropt): these new guys.
* src/lex.c (getopt.h): Not needed.
(token_buffer, unlexed_token_buffer): Not const.
(percent_table): Promote `-' over `_' in directive names.
Active `%name-prefix', `file-prefix', and `output'.
(parse_percent_token): Accept possible arguments to directives.
Promote `-' over `_' in directive names.
2001-11-05 09:09:19 +00:00
Akim Demaille
9f4503d6e9
Adjust.
2001-11-05 09:00:17 +00:00
Akim Demaille
d8988b2fff
* doc/bison.texinfo (Decl Summary): Split the list into
...
`directives for grammars' and `directives for bison'.
Sort'em.
Add description of `%name-prefix', `file-prefix', and `output'.
Promote `-' over `_' in directive names.
(Bison Options): s/%locactions/%locations/. Nice Freudian slip.
Simplify the description of `--name-prefix'.
Promote `-' over `_' in directive names.
Promote `--output' over `--output-file'.
Fix the description of `--defines'.
* tests/output.at: Exercise %file-prefix and %output.
2001-11-05 08:50:46 +00:00
Akim Demaille
92fcb5efbe
Really update refcard.tex...
2001-11-02 17:20:22 +00:00
Akim Demaille
6468d18e5c
* doc/refcard.tex: Update.
2001-11-02 17:19:46 +00:00
Akim Demaille
6b7e85b994
* src/symtab.h (SUNDEF): New.
...
* src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
stand for `uninitialized', instead of 0.
* src/reader.c (packsymbols, parse_thong_decl): Adjust.
* src/lex.c (lex): Adjust.
* tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
Number it 0.
Let yylex return it instead of a plain 0.
Reported by Dick Streefland.
2001-11-02 15:27:11 +00:00
Akim Demaille
cd5aafcf8c
* tests/regression.at (Mixing %token styles): New test.
2001-11-02 14:15:48 +00:00
Akim Demaille
037ca2f14c
* src/reader.c (parse_thong_decl): Formatting changes.
...
(token_translations_init): New, extracted from...
(packsymbols): Here.
Adjust.
2001-11-02 14:04:54 +00:00
Akim Demaille
270a173cf3
* tests/regression.at (AT_TEST_CPP_GUARD_H): New.
...
Check that `9foo.y' produces correct cpp guards.
* src/files.c (compute_header_macro): Prepend `BISON_' to CPP
guards.
Reported by Wwp.
2001-11-01 18:28:38 +00:00
Akim Demaille
561f9a30af
* tests/regression.at (Invalid input: 2): New.
...
* src/lex.c (unlexed_token_buffer): New.
(lex, unlex): Adjust: when unlexing, be sure to save token_buffer
too.
Reported by Wwp.
2001-11-01 18:05:22 +00:00
Akim Demaille
f987e9d257
* tests/calc.at: Catch up with 1.30.
...
* configure.in: Bump to 1.49a.
Adjust to newer Autotest.
2001-11-01 17:47:39 +00:00
Akim Demaille
de76abc1e9
Regen.
2001-11-01 17:46:46 +00:00
Akim Demaille
490abf53b1
More ignores.
2001-10-18 15:27:30 +00:00
Akim Demaille
3c1a79b314
* tests/atlocal.in (GCC): Add.
...
* tests/calc.at: s/m4_match/m4_bmatch/.
s/m4_patsubst/m4_bpatsubst/.
(AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
* configure.in: AC_SUBST(GCC).
2001-10-18 15:26:56 +00:00
Akim Demaille
004b178558
Remove.
2001-10-10 15:36:26 +00:00
Akim Demaille
3bcfa9dedd
More ignores.
2001-10-10 15:29:08 +00:00
Akim Demaille
631aa1d3dc
* src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
2001-10-10 14:58:26 +00:00
Akim Demaille
ee006e3a4c
Adjust.
2001-10-04 15:12:55 +00:00
Akim Demaille
9449f6d3a8
Remove.
2001-10-04 15:10:56 +00:00
Akim Demaille
c07c873533
Adjust.
2001-10-04 15:09:51 +00:00