|Title||Keyword translation is too conservative|
|Assigned user||Nick Barnes|
|Description||We translate keywords (items for Perforce job fields of type 'word') by using a hexadecimal escape %xx for characters other than [a-zA-Z0-9(),.?!-]. This is very conservative, and rules out a number of characters commonly used in defect trackers.|
We also translate the space character ' ' into the underscore character '_'. This has the problem that we do not escape underscores, so underscores in a defect tracker become underscores in Perforce and then translate back to spaces.
We need a translator which is (a) bijective, (b) less conservative, and hopefully (c) less obfuscating.
|Analysis||Experimentation with p4/p4d 2000.2 on swan (Linux) shows that all characters except the following are accepted in 'word' fields: hash (#), double quote ("), semicolon (;), slash (/) and whitespace (sp, ht, nl, vt, np, cr).|
We could allow all other characters through untranslated, except for an escape character (e.g. '\'). However, ' ' may be common enough to translate to another character (e.g. '_' or '-'). It would be nice if we could have fairly clear translations for space, semicolon, and slash, as these characters are likely to occur in defect tracker fields.
' ' -> '_'
'_' -> '\_'
'\' -> '\\'
';' -> '\:'
'/' -> '\|'
'#' -> '\='
'"' -> "\'"
c -> '\xab' (hex translation for whitespace)
Done this, and moved translator to p4.py as it is p4-specific and not dt-specific. It's a translator class of its own.
|Created by||Nick Barnes|
|Created on||2001-02-06 15:50:57|
|Last modified by||Gareth Rees|
|Last modified on||2001-12-10 19:22:17|
|History||2001-02-06 NB Created|
2001-02-19 GDR Downgraded to optional.
|8721||closed||2001-02-19 16:43:14||Nick Barnes||Moved keyword translator to p4.py (job000195 for teamtrack).|
|8720||open||2001-02-19 16:30:16||Nick Barnes||Fix omission in keyword translation.|
|8718||open||2001-02-19 16:17:33||Nick Barnes||Keyword translation.|