<< back
Pd4Cmd: PD4ML and command line
PD4ML distribution includes a simple command-line API wrapper Pd4Cmd. (there is the help page with basic usage examples)
Here we are going to review only some special cases.
The command line syntax allows to define document header or footer code in
HTML. The HTML code may include some reserved characters, have special meaning
in command shell on the hosting platform.
First, you need to make sure, space characters do not corrupt the entire
command line.
On Win32 platform, the code must me enclosed to double quotes, or to single
quotes on UNIX-derived platforms (including MacOS).
If the HTML code itself has double or single quotes - they have to be
substituted with safer equivalents: on Win32, for example, double quotes
replaced with single quotes. Or, if it is possible, removed completely: PD4ML
accepts attribute values without quotes (in contrast to XML requirements).
On Win32 we were not able to build a command line with an HTML snippet, which
has both a space and a double quote. Please let us know if there is a solution.
On UNIX you may escape a single quote with '\'' sequence (single
quote, backslash, single quote two times), which looks strange, but works.
On all platforms you should be careful with the following characters in
command lines:
'<', '>', '%', ';', '&', '|', '^'
Win32 addition to the list:
'(', ')', ','
UNIX addition to the list:
'{', '}', '[', ']', '$', '#', '*', '?', '`'
Make sure the characters are parts of a text, enclosed to appropriate quotes, or
escaped.
If you run Pd4Cmd from an alien environment, like Perl, PHP etc, with
an exec() or system() call, look for an exec method or function, which
accepts a command line as an array of parameters. In the case a special
character escaping is not needed. Methods with a single parameter (represents
entire command line) require the escaping and may even add their own issues.
|