[Po4a-devel]Config files enhancement

Nicolas François nicolas.francois@centraliens.net
Sat, 23 Apr 2005 03:01:43 +0200


--UlVJffcvxoiEqYs2
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hello,

Here is an update of the patch.

It now deals with module aliases, with the ability to set global option
for this alias, or options for a language:
[po4a_alias:test] man opt="-k 0" opt_fr="-o debug -L ISO-8859-1"

Options can also be specified in a [type:...] line.
[type:test] chsh.1 fr:chsh.1.fr opt_fr:"-L UTF-8"

Limitations/known bugs:
   * I don't know how options are overwritten.
     (What should happen when the user specify -k 0 on the command line,
     with -k 10 for the alias, -k 20 for the alias with lang=fr, -k 30 as
     the file option, and -k 40 as the file option for lang=fr?)
   * options have to be the last parameters on the line
     (this limitation could be removed quite easily)
   * it is not possible to specify the a value containing a space as the
     parameter for a module option.
     For example, users could use -o "foo=bar baz" on the command line.
     This wont be possible with this implementation.
     Any idea on how to fix this is welcome.

I'm considering committing it Saturday for the next release if you don't
stop me before.
It should be safe when options are not used, but options did not get a lot
of testing (and it has a great chance to have some bugs).  Maybe it will
be an hidden/undocumented feature.

The patch mostly consists in:
  * using an hash for the options (and a sub-hash for options passed to
    the modules (-v, -d, -o).
  * a function to fill this hash
  * a function to separate
  * aliases handling (an hash contains for each alias, the target module,
    and the hash of options for this module)

Kind Regards
-- 
Nicolas

--UlVJffcvxoiEqYs2
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="po4a-options.patch.gz"
Content-Transfer-Encoding: base64

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

--UlVJffcvxoiEqYs2--