d_printf() cannot handle messege strings including '\"', for example "this is a \"test\"." or swat.c:980, 996 , ... To fix this problem or to modify messege strings not to include '\"' is required to support SWAT i18n function.
Reassigning to me.
This is a problem with passing the msgid as both a tdb key and as an entry in the msg file. The msg file retains the \" while the C compiler eats the backslash, so a comparison between the escaped and unescaped strings will fail. A solution is to do a substitution of " with \" in lang_msg() but this will increase the size of the string and possibly create a bit of a mess. It could be easier just to change the \" to ' globally.
The BUG#412 is occurred by similar reason. I think we need to decide totally how to do against such kind of letters. As you said, to avoid to use such characters is one solution, I think. But this is not good. I think to decide that is better maybe 1) " \ and other ASCII chars should be permitted even if Samba 3.0.0 will be shipped to apply your quick solution. 2) Escaped characters except 1) (i.e. \n, \t) may not be permitted in the string for d_printf().
I have a patch to allow d_printf() to handle escaped " characters, i.e I implemented the second paragraph of comment 2 which turned out to be not so hard after all.
originally reported against one of the 3.0.0rc[1-4] releases. Cleaning up non-production versions.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.