diff options
Diffstat (limited to 'sapi/phpdbg/phpdbg_eol.c')
-rw-r--r-- | sapi/phpdbg/phpdbg_eol.c | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/sapi/phpdbg/phpdbg_eol.c b/sapi/phpdbg/phpdbg_eol.c deleted file mode 100644 index fc20d567bc..0000000000 --- a/sapi/phpdbg/phpdbg_eol.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 5 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2014 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Anatol Belski <ab@php.net> | - +----------------------------------------------------------------------+ -*/ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "phpdbg.h" -#include "phpdbg_eol.h" - -ZEND_EXTERN_MODULE_GLOBALS(phpdbg); - -#define EOL_LIST_LEN 4 -struct phpdbg_eol_rep phpdbg_eol_list[EOL_LIST_LEN] = { - {"CRLF", "\r\n", PHPDBG_EOL_CRLF}, -/* {"LFCR", "\n\r", PHPDBG_EOL_LFCR},*/ - {"LF", "\n", PHPDBG_EOL_LF}, - {"CR", "\r", PHPDBG_EOL_CR}, -}; - -int phpdbg_eol_global_update(char *name TSRMLS_DC) -{ - - if (0 == memcmp(name, "CRLF", 4) || 0 == memcmp(name, "crlf", 4) || 0 == memcmp(name, "DOS", 3) || 0 == memcmp(name, "dos", 3)) { - PHPDBG_G(eol) = PHPDBG_EOL_CRLF; - } else if (0 == memcmp(name, "LF", 2) || 0 == memcmp(name, "lf", 2) || 0 == memcmp(name, "UNIX", 4) || 0 == memcmp(name, "unix", 4)) { - PHPDBG_G(eol) = PHPDBG_EOL_LF; - } else if (0 == memcmp(name, "CR", 2) || 0 == memcmp(name, "cr", 2) || 0 == memcmp(name, "MAC", 3) || 0 == memcmp(name, "mac", 3)) { - PHPDBG_G(eol) = PHPDBG_EOL_CR; - } else { - return FAILURE; - } - - return SUCCESS; -} - -char *phpdbg_eol_name(int id) -{ - size_t i = 0; - - while (i < EOL_LIST_LEN) { - - if (id == phpdbg_eol_list[i].id) { - return phpdbg_eol_list[i].name; - } - - i++; - } - - return NULL; -} - -char *phpdbg_eol_rep(int id) -{ - size_t i = 0; - - while (i < EOL_LIST_LEN) { - - if (id == phpdbg_eol_list[i].id) { - return phpdbg_eol_list[i].rep; - } - - i++; - } - - return NULL; -} - - -/* Inspired by https://ccrma.stanford.edu/~craig/utility/flip/flip.cpp */ -void phpdbg_eol_convert(char **str, int *len TSRMLS_DC) -{ - char *in = *str, *out ; - int in_len = *len, out_len, cursor, i; - char last, cur; - - if ((PHPDBG_G(flags) & PHPDBG_IS_REMOTE) != PHPDBG_IS_REMOTE) { - return; - } - - out_len = *len; - if (PHPDBG_EOL_CRLF == PHPDBG_G(eol)) { /* XXX add LFCR case if it's gonna be needed */ - /* depending on the source EOL the out str will have all CR/LF duplicated */ - for (i = 0; i < in_len; i++) { - if (0x0a == in[i] || 0x0d == in[i]) { - out_len++; - } - } - out = (char *)emalloc(out_len); - - last = cur = in[0]; - i = cursor = 0; - for (; i < in_len;) { - if (0x0a == cur && last != 0x0d) { - out[cursor] = 0x0d; - cursor++; - out[cursor] = cur; - } else if(0x0d == cur) { - if (i + 1 < in_len && 0x0a != in[i+1]) { - out[cursor] = cur; - cursor++; - out[cursor] = 0x0a; - last = 0x0a; - } else { - out[cursor] = 0x0d; - last = 0x0d; - } - } else { - out[cursor] = cur; - last = cur; - } - - i++; - cursor++; - cur = in[i]; - } - - } else if (PHPDBG_EOL_LF == PHPDBG_G(eol) || PHPDBG_EOL_CR == PHPDBG_G(eol)) { - char want, kick; - - if (PHPDBG_EOL_LF == PHPDBG_G(eol)) { - want = 0x0a; - kick = 0x0d; - } else { - want = 0x0d; - kick = 0x0a; - } - - /* We gonna have a smaller or equally long string, estimation is almost neglecting */ - out = (char *)emalloc(out_len); - - last = cur = in[0]; - i = cursor = 0; - for (; cursor < in_len;) { - if (kick == cur) { - out[cursor] = want; - } else if (want == cur) { - if (kick != last) { - out[cursor] = want; - } - } else { - out[cursor] = cur; - } - - last = cur; - cursor++; - cur = in[cursor]; - } - } else { - return; - } - - efree(*str); - *str = erealloc(out, cursor); - *len = cursor; - in = NULL; -} |