strescape.c revision 4d3e576109a91270c04821f8d727cd1afec8c801
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch Copyright (c) 2003 Timo Sirainen
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch Permission is hereby granted, free of charge, to any person obtaining
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch a copy of this software and associated documentation files (the
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch "Software"), to deal in the Software without restriction, including
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch without limitation the rights to use, copy, modify, merge, publish,
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch distribute, sublicense, and/or sell copies of the Software, and to
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch permit persons to whom the Software is furnished to do so, subject to
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch the following conditions:
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch The above copyright notice and this permission notice shall be
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch included in all copies or substantial portions of the Software.
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
a10ed8c47534b4c6b6bf2711ccfe577e720a47b4Timo Sirainen /* get length of string and number of chars to escape */
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch /* @UNSAFE: escape them */
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Boschvoid str_append_unescaped(string_t *dest, const void *src, size_t src_size)
a10ed8c47534b4c6b6bf2711ccfe577e720a47b4Timo Sirainen for (; i < src_size; i++) {
0fe2992e4d09f3ae4cceea88c9871c832d67b461Stephan Bosch /* @UNSAFE */