Type: New Feature
Affects Version/s: None
Target Release Version/s: None
as announced, i am working on a rewrite of say.c to make it easier to
maintain. I am submitting here a snapshot of the current code for review.
THIS IS ONLY FOR REVIEW AND FEEDBACK, NOT MEANT TO BE COMMITTED NOW
If you want to try it, expand the tgz in the asterisk/ directory
(WATCH OUT IT WILL OVERWRITE YOUR say.c), apply the patch say.Makefile.patch
to the Makefile in the same directory.
You also have to change the first argument to ast_localtime in say.c, i think
it is just a couple of instances (trivial).
The code is now broken in one main part (say.c) plus language-specific files
which reside in the subdirectory say/ and are included by the main file.
The main file say.c is also largely commented explaining how the various
language-specific parts should be written.
If you are a native speaker and have corrections to the individual files,
please send them to me at rizzo at icir dot org so i can incorporate them.
- ADDITIONAL INFORMATION ******
Right now i have only split the file, cleaned up a bit the interfaces,
and documented the main part. I have tested the english variant and
it seems to work - have not tried other languages.
In the process i have found and removed a lot of minor bugs (such as nl
functions calling english functions in the middle of their body,
and the same from danish to german and possibly a few more) but not
tested the grammar as i don't speak most of the languages.
+ add back copyrights to the individual files (they are under the same
copyright as the main file)
+ cleanup interfaces so they use say_args_t as the first argument in the
same way as say_number_full_*();
+ reduce the variety of different methods used to stream a file - the
code currently uses 4, probably just one is enough;
+ implement the date/time functions as instances of say_date_with_format()
with specific formats
and probably a lot more redundancy removal once i have figured out
more common parts.