Here's something weird. I'm trying to concatenate some strings which contain <backslash> <n> (i.e. not a newline).
In a normal string literal, I have to enter four backslashes: update reply { Reply-Message := "a\\\\nb" } ("\\n" gives a newline, "\\\n" gives backslash followed by newline) But when I try to insert one string into another it goes completely haywire. update reply { Reply-Message := "foo\\\\nbar" } update reply { Reply-Message := "%{reply:Reply-Message}\\\\nbaz" } This gives me "foo" <newline> "bar" <newline> "baz". That is, even the second \\\\n is being collapsed into a newline! Some more test cases: update reply { Reply-Message := "foo\\\\nbar" } update reply { Reply-Message := "qux\\\\nbaz" } correctly gives me "qux" <backslash> <n> "baz" update reply { Reply-Message := "foo\\\\nbar" } update reply { Reply-Message := "%{Wibble:-qux}\\\\nbaz" } gives me <newline> "baz". In fact, I need *eight* backslashes to get a literal backslash here: Reply-Message := "%{Wibble:-qux}\\\\\\\\nbaz" So somehow, the presence of a string expansion within a string affects the interpretation of subsequent backslashes within that string. Now, this works: update reply { Reply-Message := "foo\\\\\\\\nbar" } update reply { Reply-Message := "%{reply:Reply-Message}\\\\\\\\nbaz" } But then if I do another layer of string insertion they get translated to newlines again. update reply { Reply-Message := "foo\\\\\\\\nbar" } update reply { Reply-Message := "%{reply:Reply-Message}\\\\\\\\nbaz" } update reply { Reply-Message := "%{reply:Reply-Message}" } This seems pretty broken to me, but if someone would care to explain how to deal with it, please do. Or is there another way I can concatenate strings, which doesn't involve expanding them into another string? Thanks, Brian. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html