- Timestamp:
- 11/14/06 15:58:59 (2 years ago)
- Files:
-
- temp/parse.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
temp/parse.c
r4 r14 22 22 DQUOT = 1 << 5, 23 23 COMM = 1 << 6, 24 FINISHED = 1 << 7, 24 STYLE = 1 << 7, 25 FINISHED = 1 << 8, 25 26 }; 26 27 … … 101 102 } 102 103 103 memcpy(req->buffer + req->offset, ptr , bytes);104 memcpy(req->buffer + req->offset, ptr + bytes_used, bytes); 104 105 bytes_used += bytes; 105 106 … … 121 122 } 122 123 continue; 124 } else if (req->state & STYLE) { 125 if (req->buffer[i] == '<') { 126 req->start_tag = &req->buffer[i]; 127 } else if (req->buffer[i] == '>' && 128 req->start_tag) { 129 if (strncmp("</style>", 130 req->start_tag, 131 7) == 0) { 132 req->state &= ~STYLE; 133 } 134 req->start_tag = NULL; 135 } else if (!strchr("/style", req->buffer[i])) { 136 req->start_tag = NULL; 137 } 123 138 } else if (req->state & DQUOT) { 124 139 if (req->buffer[i] == '"') { … … 201 216 req->state |= LINK; 202 217 } 218 else if (strncmp(req->start_tag, "<style ", 7) == 0) { 219 req->state |= STYLE; 220 } 203 221 } 204 222 req->last_space = &req->buffer[i]; … … 233 251 } 234 252 if (req->start_tag && (req->start_tag != req->buffer || req->offset + bytes >= 1000)) { 235 req->offset = bytes - (req->start_tag - req->buffer); 253 req->offset = (bytes + req->offset) - (req->start_tag - req->buffer); 254 printf("Offset: %u, %u, %p, %p\n", req->offset, bytes, req->start_tag, req->buffer); 236 255 memmove(req->buffer, req->start_tag, req->offset); 237 256 if (req->start_rel) { … … 247 266 } else { 248 267 req->offset = 0; 268 printf("Offset: %u\n", req->offset); 249 269 req->start_tag = NULL; 250 270 req->start_rel = NULL;
