Fix various Windows issues (e.g. dir separators)

This commit is contained in:
Bob Weinand 2015-07-20 23:25:50 +02:00
parent 94fb5391e7
commit 80bb4fd45a
6 changed files with 539 additions and 525 deletions

View file

@ -310,7 +310,13 @@ PHPDBG_API HashTable *phpdbg_resolve_pending_file_break_ex(const char *file, uin
{ {
phpdbg_debug("file: %s, filelen: %u, cur: %s, curlen %u, pos: %c, memcmp: %d\n", file, filelen, ZSTR_VAL(cur), ZSTR_LEN(cur), filelen > ZSTR_LEN(cur) ? file[filelen - ZSTR_LEN(cur) - 1] : '?', filelen > ZSTR_LEN(cur) ? memcmp(file + filelen - ZSTR_LEN(cur), ZSTR_VAL(cur), ZSTR_LEN(cur)) : 0); phpdbg_debug("file: %s, filelen: %u, cur: %s, curlen %u, pos: %c, memcmp: %d\n", file, filelen, ZSTR_VAL(cur), ZSTR_LEN(cur), filelen > ZSTR_LEN(cur) ? file[filelen - ZSTR_LEN(cur) - 1] : '?', filelen > ZSTR_LEN(cur) ? memcmp(file + filelen - ZSTR_LEN(cur), ZSTR_VAL(cur), ZSTR_LEN(cur)) : 0);
if (((ZSTR_LEN(cur) < filelen && file[filelen - ZSTR_LEN(cur) - 1] == '/') || filelen == ZSTR_LEN(cur)) && !memcmp(file + filelen - ZSTR_LEN(cur), ZSTR_VAL(cur), ZSTR_LEN(cur))) { #ifdef _WIN32
# define WIN32_PATH_CHECK file[filelen - ZSTR_LEN(cur) - 1] == '\\'
#else
# define WIN32_PATH_CHECK 0
#endif
if (((ZSTR_LEN(cur) < filelen && (file[filelen - ZSTR_LEN(cur) - 1] == '/' || WIN32_PATH_CHECK)) || filelen == ZSTR_LEN(cur)) && !memcmp(file + filelen - ZSTR_LEN(cur), ZSTR_VAL(cur), ZSTR_LEN(cur))) {
phpdbg_breakfile_t *brake, new_brake; phpdbg_breakfile_t *brake, new_brake;
HashTable *master; HashTable *master;

File diff suppressed because it is too large Load diff

View file

@ -28,6 +28,7 @@ typedef struct {
unsigned char *text; unsigned char *text;
unsigned char *cursor; unsigned char *cursor;
unsigned char *marker; unsigned char *marker;
unsigned char *ctxmarker;
int state; int state;
} phpdbg_lexer_data; } phpdbg_lexer_data;

View file

@ -14,6 +14,7 @@
#define YYGETCONDITION() LEX(state) #define YYGETCONDITION() LEX(state)
#define YYCURSOR LEX(cursor) #define YYCURSOR LEX(cursor)
#define YYMARKER LEX(marker) #define YYMARKER LEX(marker)
#define YYCTXMARKER LEX(ctxmarker)
#define yyleng LEX(len) #define yyleng LEX(len)
#define yytext ((char*) LEX(text)) #define yytext ((char*) LEX(text))
#undef YYDEBUG #undef YYDEBUG
@ -94,7 +95,7 @@ INPUT [^\n\000]+
<NORMAL>[:]{2} { <NORMAL>[:]{2} {
return T_DCOLON; return T_DCOLON;
} }
<NORMAL>[:]{1} { <NORMAL>[:]{1}/[^\\] {
return T_COLON; return T_COLON;
} }

View file

@ -49,7 +49,7 @@ array(5) {
[Script ended normally] [Script ended normally]
prompt> prompt>
--ARGS-- --ARGS--
'1' '2' '3' 1 2 3
--FILE-- --FILE--
<?php <?php