html_namespacing 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -170,9 +170,9 @@ should_ignore_tag(const char *tag_name, size_t tag_len)
170
170
  * "<div class="foo"><span>Hello</span></div><p class="below foo">Goodbye</p>".
171
171
  *
172
172
  * Arguments:
173
- * - const char *html: Original HTML string. Must be valid HTML, encoded as
174
- * utf-8.
175
- * - int html_len: Length of HTML string.
173
+ * - const char *html: Original HTML string. Must be valid HTML encoded as
174
+ * utf-8, \0-terminated.
175
+ * - int html_len: Length of HTML string, without the \0.
176
176
  * - const char *namespace: Namespace to add. Must be of the form
177
177
  * "[a-zA-Z][-_a-zA-Z0-9]*".
178
178
  * - char **ret: Pointer to return value, which will be newly-allocated. Will
@@ -230,7 +230,6 @@ add_namespace_to_html_with_length_and_allocation_strategy(
230
230
  const char *html_p;
231
231
  const char *open_tag_name = NULL;
232
232
  size_t open_tag_name_len = 0;
233
- size_t num_chars_remaining;
234
233
  int num_tags_open;
235
234
  int open_tag_attribute_is_class_attribute;
236
235
  int open_tag_had_class_attribute;
@@ -251,26 +250,21 @@ add_namespace_to_html_with_length_and_allocation_strategy(
251
250
  open_tag_attribute_value = NULL;
252
251
 
253
252
  while (1) {
254
- num_chars_remaining = html_len - (html_p - html);
255
- if (num_chars_remaining <= 0) break;
253
+ if (html_p[0] == 0) break;
256
254
 
257
255
  switch (state) {
258
256
  case PARSE_NORMAL:
259
257
  if (*html_p == '<') {
260
258
  ADVANCE(1);
261
- if (num_chars_remaining >= 9
262
- && 0 == strncmp("![CDATA[", html_p, 8)) {
259
+ if (0 == strncmp("![CDATA[", html_p, 8)) {
263
260
  state = PARSE_CDATA;
264
- } else if (num_chars_remaining >= 2 && html_p[0] == '/') {
261
+ } else if (html_p[0] == '/') {
265
262
  state = PARSE_CLOSE_TAG;
266
- } else if (num_chars_remaining >= 4
267
- && 0 == strncmp("!--", html_p, 3)) {
263
+ } else if (0 == strncmp("!--", html_p, 3)) {
268
264
  state = PARSE_COMMENT;
269
- } else if (num_chars_remaining >= 9
270
- && 0 == strncmp("!DOCTYPE", html_p, 8)) {
265
+ } else if (0 == strncmp("!DOCTYPE", html_p, 8)) {
271
266
  state = PARSE_DOCTYPE;
272
- } else if (num_chars_remaining >= 5
273
- && 0 == strncmp("?xml", html_p, 4)) {
267
+ } else if (0 == strncmp("?xml", html_p, 4)) {
274
268
  state = PARSE_XML_DECL;
275
269
  } else {
276
270
  open_tag_name = html_p;
@@ -313,8 +307,7 @@ add_namespace_to_html_with_length_and_allocation_strategy(
313
307
  }
314
308
  ADVANCE(1);
315
309
  } else if (!char_is_whitespace(*html_p)) {
316
- if (num_chars_remaining >= 5
317
- && 0 == strncmp(html_p, "class", 5)) {
310
+ if (0 == strncmp(html_p, "class", 5)) {
318
311
  open_tag_attribute_is_class_attribute = 1;
319
312
  open_tag_had_class_attribute = 1;
320
313
  } else {
@@ -370,8 +363,7 @@ add_namespace_to_html_with_length_and_allocation_strategy(
370
363
  case PARSE_COMMENT:
371
364
  ADVANCE(1); /* at least one */
372
365
  ADVANCE_UNTIL_ONE_OF_THESE_CHARS("-");
373
- if (num_chars_remaining >= 3
374
- && 0 == strncmp("-->", html_p, 3)) {
366
+ if (0 == strncmp("-->", html_p, 3)) {
375
367
  ADVANCE(3);
376
368
  state = PARSE_NORMAL;
377
369
  }
@@ -380,8 +372,7 @@ add_namespace_to_html_with_length_and_allocation_strategy(
380
372
  case PARSE_CDATA:
381
373
  ADVANCE(1); /* at least one */
382
374
  ADVANCE_UNTIL_ONE_OF_THESE_CHARS("]");
383
- if (num_chars_remaining >= 3
384
- && 0 == strncmp("]]>", html_p, 3)) {
375
+ if (0 == strncmp("]]>", html_p, 3)) {
385
376
  ADVANCE(3);
386
377
  state = PARSE_NORMAL;
387
378
  }
@@ -397,7 +388,7 @@ add_namespace_to_html_with_length_and_allocation_strategy(
397
388
 
398
389
  if (state != PARSE_NORMAL
399
390
  || (r_p - r) < html_len
400
- || num_chars_remaining != 0
391
+ || html_p != html + html_len
401
392
  || num_tags_open != 0
402
393
  || open_tag_attribute_is_class_attribute
403
394
  || open_tag_attribute_value)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html_namespacing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - adamh
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-12 00:00:00 -05:00
12
+ date: 2010-01-16 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -70,5 +70,5 @@ signing_key:
70
70
  specification_version: 3
71
71
  summary: Automatic HTML namespacing
72
72
  test_files:
73
- - spec/spec_helper.rb
74
73
  - spec/c_extension_spec.rb
74
+ - spec/spec_helper.rb