dtext_rb 1.0.4 → 1.0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6716ab4daccf93899c98066494d8bda0cc829af5
4
- data.tar.gz: 894e84ba1dac5936957ae8a72fcfcfe174aefc7a
3
+ metadata.gz: 6ae4baf2be55f273a33eb3fd5251023b9ef73957
4
+ data.tar.gz: 622f190a6b0f6ff2861800ac4880600cff4c73e1
5
5
  SHA512:
6
- metadata.gz: c52968e58a81c1c96c690704fc7d58a6f3fe2ada3fe096323f9568ade426702bf1699c955bc137e78f022db668d67acbac243dc42afc5709e96b087030f892ee
7
- data.tar.gz: d89e6a21afd2df5a529fbf3a9c0b36d8a0f9240ad7f4003d1ed2ce672c68f1e0f0ed0df9b86ea2203ea9f0216c2448abe803d759c2a24ec3d6f6c91d03b932be
6
+ metadata.gz: f1832f21285e25f845b8ef635a9f24527d9baa2b22e046aed5026d8b53cbc8ab9ace87d30633ac33392da02e9ae2ad6e556292bbbb1002d7082c28a35ca48b82
7
+ data.tar.gz: 0b3d7e786fc08a7718ee6f3fef54308a1db776b1773b852483bffc70220de69dd1c908d08dc9e13d541697a25402b0f5f7791030eb4defd9c212f23a0375792d
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ #ENV["G_MESSAGES_DEBUG"] = "all"
2
+
1
3
  require "rake/extensiontask"
2
4
  require "rubygems/package_task"
3
5
  require "bundler"
@@ -23,8 +25,6 @@ Jeweler::Tasks.new do |gem|
23
25
  end
24
26
  Jeweler::RubygemsDotOrgTasks.new
25
27
 
26
- # ENV["G_MESSAGES_DEBUG"] = "all"
27
-
28
28
  Rake::ExtensionTask.new "dtext" do |ext|
29
29
  ext.lib_dir = "lib/dtext"
30
30
  end
@@ -69,7 +69,7 @@ task test_file_ragel: %w(ragel compile) do
69
69
  end
70
70
 
71
71
  task test: %w(ragel compile) do
72
- ruby "-Ilib", '-rdtext', "test/dtext_test.rb" #, '--name=test_special'
72
+ ruby "-Ilib", '-rdtext', "test/dtext_test.rb" #, '--name=test_headers'
73
73
  end
74
74
 
75
75
  task default: :test
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.4
1
+ 1.0.5
@@ -2,17 +2,17 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: dtext_rb 1.0.4 ruby lib
5
+ # stub: dtext_rb 1.0.5 ruby lib
6
6
  # stub: ext/dtext/extconf.rb
7
7
 
8
8
  Gem::Specification.new do |s|
9
9
  s.name = "dtext_rb"
10
- s.version = "1.0.4"
10
+ s.version = "1.0.5"
11
11
 
12
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
13
  s.require_paths = ["lib"]
14
14
  s.authors = ["r888888888"]
15
- s.date = "2016-03-25"
15
+ s.date = "2016-04-28"
16
16
  s.description = "Compield DText parser"
17
17
  s.email = "r888888888@gmail.com"
18
18
  s.extensions = ["ext/dtext/extconf.rb"]
@@ -5,6 +5,7 @@
5
5
  #define PRETTY_PRINT 0
6
6
 
7
7
  #include <ruby.h>
8
+ #include <ruby/encoding.h>
8
9
  #include <stdio.h>
9
10
  #include <stdint.h>
10
11
  #include <stdbool.h>
@@ -69,11 +70,11 @@ static const int BLOCK_H5 = 27;
69
70
  static const int BLOCK_H6 = 28;
70
71
 
71
72
 
72
- #line 961 "ext/dtext/dtext.rl"
73
+ #line 966 "ext/dtext/dtext.rl"
73
74
 
74
75
 
75
76
 
76
- #line 77 "ext/dtext/dtext.c"
77
+ #line 78 "ext/dtext/dtext.c"
77
78
  static const int dtext_start = 245;
78
79
  static const int dtext_first_final = 245;
79
80
  static const int dtext_error = -1;
@@ -86,7 +87,7 @@ static const int dtext_en_list = 301;
86
87
  static const int dtext_en_main = 245;
87
88
 
88
89
 
89
- #line 964 "ext/dtext/dtext.rl"
90
+ #line 969 "ext/dtext/dtext.rl"
90
91
 
91
92
  static inline void underscore_string(char * str, size_t len) {
92
93
  for (size_t i=0; i<len; ++i) {
@@ -337,6 +338,9 @@ static void dstack_close_list(StateMachine * sm) {
337
338
  while (dstack_check(sm, BLOCK_LI) || dstack_check(sm, BLOCK_UL)) {
338
339
  dstack_rewind(sm);
339
340
  }
341
+
342
+ sm->list_mode = false;
343
+ sm->list_nest = 0;
340
344
  }
341
345
 
342
346
  static inline bool is_boundary_c(char c) {
@@ -406,6 +410,7 @@ static VALUE parse(int argc, VALUE * argv, VALUE self) {
406
410
  VALUE opt_inline;
407
411
  VALUE opt_strip;
408
412
  VALUE ret;
413
+ rb_encoding * encoding = NULL;
409
414
  StateMachine * sm = NULL;
410
415
 
411
416
  g_debug("start\n");
@@ -437,7 +442,7 @@ static VALUE parse(int argc, VALUE * argv, VALUE self) {
437
442
  }
438
443
 
439
444
 
440
- #line 441 "ext/dtext/dtext.c"
445
+ #line 446 "ext/dtext/dtext.c"
441
446
  {
442
447
  sm->cs = dtext_start;
443
448
  ( sm->top) = 0;
@@ -446,9 +451,9 @@ static VALUE parse(int argc, VALUE * argv, VALUE self) {
446
451
  ( sm->act) = 0;
447
452
  }
448
453
 
449
- #line 1314 "ext/dtext/dtext.rl"
454
+ #line 1323 "ext/dtext/dtext.rl"
450
455
 
451
- #line 452 "ext/dtext/dtext.c"
456
+ #line 457 "ext/dtext/dtext.c"
452
457
  {
453
458
  if ( ( sm->p) == ( sm->pe) )
454
459
  goto _test_eof;
@@ -781,6 +786,8 @@ tr0:
781
786
  if (sm->header_mode) {
782
787
  sm->header_mode = false;
783
788
  dstack_rewind(sm);
789
+ } else if (sm->list_mode) {
790
+ dstack_close_list(sm);
784
791
  } else {
785
792
  dstack_close_before_block(sm);
786
793
  }
@@ -795,7 +802,7 @@ tr0:
795
802
  }
796
803
  goto st245;
797
804
  tr2:
798
- #line 946 "ext/dtext/dtext.rl"
805
+ #line 951 "ext/dtext/dtext.rl"
799
806
  {{( sm->p) = ((( sm->te)))-1;}{
800
807
  g_debug("block char: %c", (*( sm->p)));
801
808
  ( sm->p)--;
@@ -822,7 +829,7 @@ tr2:
822
829
  }}
823
830
  goto st245;
824
831
  tr14:
825
- #line 855 "ext/dtext/dtext.rl"
832
+ #line 858 "ext/dtext/dtext.rl"
826
833
  {( sm->te) = ( sm->p)+1;{
827
834
  g_debug("block [/spoiler]");
828
835
  dstack_close_before_block(sm);
@@ -833,7 +840,7 @@ tr14:
833
840
  }}
834
841
  goto st245;
835
842
  tr53:
836
- #line 902 "ext/dtext/dtext.rl"
843
+ #line 905 "ext/dtext/dtext.rl"
837
844
  {( sm->te) = ( sm->p)+1;{
838
845
  dstack_close_before_block(sm);
839
846
  dstack_push(sm, &BLOCK_TABLE);
@@ -853,7 +860,7 @@ tr53:
853
860
  }}
854
861
  goto st245;
855
862
  tr54:
856
- #line 909 "ext/dtext/dtext.rl"
863
+ #line 912 "ext/dtext/dtext.rl"
857
864
  {( sm->te) = ( sm->p)+1;{
858
865
  dstack_push(sm, &BLOCK_TN);
859
866
  append_block(sm, "<p class=\"tn\">");
@@ -872,7 +879,7 @@ tr54:
872
879
  }}
873
880
  goto st245;
874
881
  tr292:
875
- #line 946 "ext/dtext/dtext.rl"
882
+ #line 951 "ext/dtext/dtext.rl"
876
883
  {( sm->te) = ( sm->p)+1;{
877
884
  g_debug("block char: %c", (*( sm->p)));
878
885
  ( sm->p)--;
@@ -899,7 +906,7 @@ tr292:
899
906
  }}
900
907
  goto st245;
901
908
  tr293:
902
- #line 925 "ext/dtext/dtext.rl"
909
+ #line 928 "ext/dtext/dtext.rl"
903
910
  {( sm->te) = ( sm->p)+1;{
904
911
  g_debug("block 0");
905
912
  g_debug(" close dstack");
@@ -907,7 +914,7 @@ tr293:
907
914
  }}
908
915
  goto st245;
909
916
  tr300:
910
- #line 946 "ext/dtext/dtext.rl"
917
+ #line 951 "ext/dtext/dtext.rl"
911
918
  {( sm->te) = ( sm->p);( sm->p)--;{
912
919
  g_debug("block char: %c", (*( sm->p)));
913
920
  ( sm->p)--;
@@ -934,11 +941,11 @@ tr300:
934
941
  }}
935
942
  goto st245;
936
943
  tr301:
937
- #line 107 "ext/dtext/dtext.rl"
944
+ #line 108 "ext/dtext/dtext.rl"
938
945
  {
939
946
  sm->b2 = sm->p;
940
947
  }
941
- #line 915 "ext/dtext/dtext.rl"
948
+ #line 918 "ext/dtext/dtext.rl"
942
949
  {( sm->te) = ( sm->p);( sm->p)--;{
943
950
  g_debug("block list");
944
951
  g_debug(" call list");
@@ -961,7 +968,7 @@ tr301:
961
968
  }}
962
969
  goto st245;
963
970
  tr310:
964
- #line 864 "ext/dtext/dtext.rl"
971
+ #line 867 "ext/dtext/dtext.rl"
965
972
  {( sm->te) = ( sm->p);( sm->p)--;{
966
973
  g_debug("block [code]");
967
974
  dstack_close_before_block(sm);
@@ -982,7 +989,7 @@ tr310:
982
989
  }}
983
990
  goto st245;
984
991
  tr311:
985
- #line 881 "ext/dtext/dtext.rl"
992
+ #line 884 "ext/dtext/dtext.rl"
986
993
  {( sm->te) = ( sm->p);( sm->p)--;{
987
994
  g_debug("block [expand=]");
988
995
  dstack_close_before_block(sm);
@@ -996,7 +1003,7 @@ tr311:
996
1003
  }}
997
1004
  goto st245;
998
1005
  tr313:
999
- #line 872 "ext/dtext/dtext.rl"
1006
+ #line 875 "ext/dtext/dtext.rl"
1000
1007
  {( sm->te) = ( sm->p);( sm->p)--;{
1001
1008
  g_debug("block [expand]");
1002
1009
  dstack_close_before_block(sm);
@@ -1007,7 +1014,7 @@ tr313:
1007
1014
  }}
1008
1015
  goto st245;
1009
1016
  tr314:
1010
- #line 893 "ext/dtext/dtext.rl"
1017
+ #line 896 "ext/dtext/dtext.rl"
1011
1018
  {( sm->te) = ( sm->p);( sm->p)--;{
1012
1019
  g_debug("block [nodtext]");
1013
1020
  dstack_close_before_block(sm);
@@ -1029,7 +1036,7 @@ tr314:
1029
1036
  }}
1030
1037
  goto st245;
1031
1038
  tr315:
1032
- #line 837 "ext/dtext/dtext.rl"
1039
+ #line 840 "ext/dtext/dtext.rl"
1033
1040
  {( sm->te) = ( sm->p);( sm->p)--;{
1034
1041
  g_debug("block [quote]");
1035
1042
  g_debug(" push quote");
@@ -1040,7 +1047,7 @@ tr315:
1040
1047
  }}
1041
1048
  goto st245;
1042
1049
  tr316:
1043
- #line 846 "ext/dtext/dtext.rl"
1050
+ #line 849 "ext/dtext/dtext.rl"
1044
1051
  {( sm->te) = ( sm->p);( sm->p)--;{
1045
1052
  g_debug("block [spoiler]");
1046
1053
  g_debug(" push spoiler");
@@ -1051,7 +1058,7 @@ tr316:
1051
1058
  }}
1052
1059
  goto st245;
1053
1060
  tr318:
1054
- #line 792 "ext/dtext/dtext.rl"
1061
+ #line 795 "ext/dtext/dtext.rl"
1055
1062
  {( sm->te) = ( sm->p);( sm->p)--;{
1056
1063
  char header = *sm->a1;
1057
1064
 
@@ -1116,7 +1123,7 @@ st245:
1116
1123
  case 245:
1117
1124
  #line 1 "NONE"
1118
1125
  {( sm->ts) = ( sm->p);}
1119
- #line 1120 "ext/dtext/dtext.c"
1126
+ #line 1127 "ext/dtext/dtext.c"
1120
1127
  switch( (*( sm->p)) ) {
1121
1128
  case 0: goto tr293;
1122
1129
  case 10: goto tr294;
@@ -1129,20 +1136,20 @@ case 245:
1129
1136
  tr1:
1130
1137
  #line 1 "NONE"
1131
1138
  {( sm->te) = ( sm->p)+1;}
1132
- #line 931 "ext/dtext/dtext.rl"
1139
+ #line 934 "ext/dtext/dtext.rl"
1133
1140
  {( sm->act) = 79;}
1134
1141
  goto st246;
1135
1142
  tr294:
1136
1143
  #line 1 "NONE"
1137
1144
  {( sm->te) = ( sm->p)+1;}
1138
- #line 942 "ext/dtext/dtext.rl"
1145
+ #line 947 "ext/dtext/dtext.rl"
1139
1146
  {( sm->act) = 80;}
1140
1147
  goto st246;
1141
1148
  st246:
1142
1149
  if ( ++( sm->p) == ( sm->pe) )
1143
1150
  goto _test_eof246;
1144
1151
  case 246:
1145
- #line 1146 "ext/dtext/dtext.c"
1152
+ #line 1153 "ext/dtext/dtext.c"
1146
1153
  switch( (*( sm->p)) ) {
1147
1154
  case 10: goto tr1;
1148
1155
  case 13: goto st0;
@@ -1165,7 +1172,7 @@ case 247:
1165
1172
  tr296:
1166
1173
  #line 1 "NONE"
1167
1174
  {( sm->te) = ( sm->p)+1;}
1168
- #line 95 "ext/dtext/dtext.rl"
1175
+ #line 96 "ext/dtext/dtext.rl"
1169
1176
  {
1170
1177
  sm->a1 = sm->p;
1171
1178
  }
@@ -1174,7 +1181,7 @@ st248:
1174
1181
  if ( ++( sm->p) == ( sm->pe) )
1175
1182
  goto _test_eof248;
1176
1183
  case 248:
1177
- #line 1178 "ext/dtext/dtext.c"
1184
+ #line 1185 "ext/dtext/dtext.c"
1178
1185
  switch( (*( sm->p)) ) {
1179
1186
  case 9: goto tr5;
1180
1187
  case 32: goto tr5;
@@ -1182,7 +1189,7 @@ case 248:
1182
1189
  }
1183
1190
  goto tr300;
1184
1191
  tr5:
1185
- #line 99 "ext/dtext/dtext.rl"
1192
+ #line 100 "ext/dtext/dtext.rl"
1186
1193
  {
1187
1194
  sm->a2 = sm->p;
1188
1195
  }
@@ -1191,7 +1198,7 @@ st1:
1191
1198
  if ( ++( sm->p) == ( sm->pe) )
1192
1199
  goto _test_eof1;
1193
1200
  case 1:
1194
- #line 1195 "ext/dtext/dtext.c"
1201
+ #line 1202 "ext/dtext/dtext.c"
1195
1202
  switch( (*( sm->p)) ) {
1196
1203
  case 0: goto tr2;
1197
1204
  case 9: goto tr4;
@@ -1201,7 +1208,7 @@ case 1:
1201
1208
  }
1202
1209
  goto tr3;
1203
1210
  tr3:
1204
- #line 103 "ext/dtext/dtext.rl"
1211
+ #line 104 "ext/dtext/dtext.rl"
1205
1212
  {
1206
1213
  sm->b1 = sm->p;
1207
1214
  }
@@ -1210,7 +1217,7 @@ st249:
1210
1217
  if ( ++( sm->p) == ( sm->pe) )
1211
1218
  goto _test_eof249;
1212
1219
  case 249:
1213
- #line 1214 "ext/dtext/dtext.c"
1220
+ #line 1221 "ext/dtext/dtext.c"
1214
1221
  switch( (*( sm->p)) ) {
1215
1222
  case 0: goto tr301;
1216
1223
  case 10: goto tr301;
@@ -1218,7 +1225,7 @@ case 249:
1218
1225
  }
1219
1226
  goto st249;
1220
1227
  tr4:
1221
- #line 103 "ext/dtext/dtext.rl"
1228
+ #line 104 "ext/dtext/dtext.rl"
1222
1229
  {
1223
1230
  sm->b1 = sm->p;
1224
1231
  }
@@ -1227,7 +1234,7 @@ st250:
1227
1234
  if ( ++( sm->p) == ( sm->pe) )
1228
1235
  goto _test_eof250;
1229
1236
  case 250:
1230
- #line 1231 "ext/dtext/dtext.c"
1237
+ #line 1238 "ext/dtext/dtext.c"
1231
1238
  switch( (*( sm->p)) ) {
1232
1239
  case 0: goto tr301;
1233
1240
  case 9: goto tr4;
@@ -1254,7 +1261,7 @@ st251:
1254
1261
  if ( ++( sm->p) == ( sm->pe) )
1255
1262
  goto _test_eof251;
1256
1263
  case 251:
1257
- #line 1258 "ext/dtext/dtext.c"
1264
+ #line 1265 "ext/dtext/dtext.c"
1258
1265
  switch( (*( sm->p)) ) {
1259
1266
  case 47: goto st3;
1260
1267
  case 99: goto st11;
@@ -1410,7 +1417,7 @@ case 21:
1410
1417
  goto tr2;
1411
1418
  goto tr26;
1412
1419
  tr26:
1413
- #line 95 "ext/dtext/dtext.rl"
1420
+ #line 96 "ext/dtext/dtext.rl"
1414
1421
  {
1415
1422
  sm->a1 = sm->p;
1416
1423
  }
@@ -1419,12 +1426,12 @@ st22:
1419
1426
  if ( ++( sm->p) == ( sm->pe) )
1420
1427
  goto _test_eof22;
1421
1428
  case 22:
1422
- #line 1423 "ext/dtext/dtext.c"
1429
+ #line 1430 "ext/dtext/dtext.c"
1423
1430
  if ( (*( sm->p)) == 93 )
1424
1431
  goto tr28;
1425
1432
  goto st22;
1426
1433
  tr28:
1427
- #line 99 "ext/dtext/dtext.rl"
1434
+ #line 100 "ext/dtext/dtext.rl"
1428
1435
  {
1429
1436
  sm->a2 = sm->p;
1430
1437
  }
@@ -1433,7 +1440,7 @@ st253:
1433
1440
  if ( ++( sm->p) == ( sm->pe) )
1434
1441
  goto _test_eof253;
1435
1442
  case 253:
1436
- #line 1437 "ext/dtext/dtext.c"
1443
+ #line 1444 "ext/dtext/dtext.c"
1437
1444
  if ( (*( sm->p)) == 32 )
1438
1445
  goto st253;
1439
1446
  if ( 9 <= (*( sm->p)) && (*( sm->p)) <= 13 )
@@ -1660,12 +1667,12 @@ st258:
1660
1667
  if ( ++( sm->p) == ( sm->pe) )
1661
1668
  goto _test_eof258;
1662
1669
  case 258:
1663
- #line 1664 "ext/dtext/dtext.c"
1670
+ #line 1671 "ext/dtext/dtext.c"
1664
1671
  if ( 49 <= (*( sm->p)) && (*( sm->p)) <= 54 )
1665
1672
  goto tr317;
1666
1673
  goto tr300;
1667
1674
  tr317:
1668
- #line 95 "ext/dtext/dtext.rl"
1675
+ #line 96 "ext/dtext/dtext.rl"
1669
1676
  {
1670
1677
  sm->a1 = sm->p;
1671
1678
  }
@@ -1674,12 +1681,12 @@ st48:
1674
1681
  if ( ++( sm->p) == ( sm->pe) )
1675
1682
  goto _test_eof48;
1676
1683
  case 48:
1677
- #line 1678 "ext/dtext/dtext.c"
1684
+ #line 1685 "ext/dtext/dtext.c"
1678
1685
  if ( (*( sm->p)) == 46 )
1679
1686
  goto tr55;
1680
1687
  goto tr2;
1681
1688
  tr55:
1682
- #line 99 "ext/dtext/dtext.rl"
1689
+ #line 100 "ext/dtext/dtext.rl"
1683
1690
  {
1684
1691
  sm->a2 = sm->p;
1685
1692
  }
@@ -1688,7 +1695,7 @@ st259:
1688
1695
  if ( ++( sm->p) == ( sm->pe) )
1689
1696
  goto _test_eof259;
1690
1697
  case 259:
1691
- #line 1692 "ext/dtext/dtext.c"
1698
+ #line 1699 "ext/dtext/dtext.c"
1692
1699
  switch( (*( sm->p)) ) {
1693
1700
  case 9: goto st259;
1694
1701
  case 32: goto st259;
@@ -1731,7 +1738,6 @@ tr56:
1731
1738
 
1732
1739
  if (sm->list_mode) {
1733
1740
  dstack_close_list(sm);
1734
- sm->list_mode = false;
1735
1741
  }
1736
1742
 
1737
1743
  {( sm->p) = (( sm->ts))-1;}
@@ -1755,7 +1761,7 @@ tr56:
1755
1761
  }
1756
1762
  goto st260;
1757
1763
  tr58:
1758
- #line 597 "ext/dtext/dtext.rl"
1764
+ #line 600 "ext/dtext/dtext.rl"
1759
1765
  {{( sm->p) = ((( sm->te)))-1;}{
1760
1766
  g_debug("inline newline");
1761
1767
 
@@ -1769,18 +1775,18 @@ tr58:
1769
1775
  }}
1770
1776
  goto st260;
1771
1777
  tr63:
1772
- #line 613 "ext/dtext/dtext.rl"
1778
+ #line 616 "ext/dtext/dtext.rl"
1773
1779
  {{( sm->p) = ((( sm->te)))-1;}{
1774
1780
  g_debug("inline char: %c", (*( sm->p)));
1775
1781
  append_c_html_escaped(sm, (*( sm->p)));
1776
1782
  }}
1777
1783
  goto st260;
1778
1784
  tr74:
1779
- #line 107 "ext/dtext/dtext.rl"
1785
+ #line 108 "ext/dtext/dtext.rl"
1780
1786
  {
1781
1787
  sm->b2 = sm->p;
1782
1788
  }
1783
- #line 328 "ext/dtext/dtext.rl"
1789
+ #line 329 "ext/dtext/dtext.rl"
1784
1790
  {( sm->te) = ( sm->p)+1;{
1785
1791
  append(sm, true, "<a href=\"");
1786
1792
  append_segment_html_escaped(sm, sm->b1, sm->b2 - 1);
@@ -1790,7 +1796,7 @@ tr74:
1790
1796
  }}
1791
1797
  goto st260;
1792
1798
  tr122:
1793
- #line 236 "ext/dtext/dtext.rl"
1799
+ #line 237 "ext/dtext/dtext.rl"
1794
1800
  {{( sm->p) = ((( sm->te)))-1;}{
1795
1801
  append(sm, true, "<a href=\"http://www.pixiv.net/member_illust.php?mode=medium&illust_id=");
1796
1802
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -1801,7 +1807,7 @@ tr122:
1801
1807
  }}
1802
1808
  goto st260;
1803
1809
  tr141:
1804
- #line 169 "ext/dtext/dtext.rl"
1810
+ #line 170 "ext/dtext/dtext.rl"
1805
1811
  {{( sm->p) = ((( sm->te)))-1;}{
1806
1812
  append(sm, true, "<a href=\"/forum_topics/");
1807
1813
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -1812,7 +1818,7 @@ tr141:
1812
1818
  }}
1813
1819
  goto st260;
1814
1820
  tr156:
1815
- #line 403 "ext/dtext/dtext.rl"
1821
+ #line 407 "ext/dtext/dtext.rl"
1816
1822
  {( sm->te) = ( sm->p)+1;{
1817
1823
  if (dstack_check(sm, INLINE_B)) {
1818
1824
  dstack_pop(sm);
@@ -1823,7 +1829,7 @@ tr156:
1823
1829
  }}
1824
1830
  goto st260;
1825
1831
  tr162:
1826
- #line 539 "ext/dtext/dtext.rl"
1832
+ #line 543 "ext/dtext/dtext.rl"
1827
1833
  {( sm->te) = ( sm->p)+1;{
1828
1834
  dstack_close_before_block(sm);
1829
1835
 
@@ -1837,7 +1843,7 @@ tr162:
1837
1843
  }}
1838
1844
  goto st260;
1839
1845
  tr163:
1840
- #line 417 "ext/dtext/dtext.rl"
1846
+ #line 421 "ext/dtext/dtext.rl"
1841
1847
  {( sm->te) = ( sm->p)+1;{
1842
1848
  if (dstack_check(sm, INLINE_I)) {
1843
1849
  dstack_pop(sm);
@@ -1848,7 +1854,7 @@ tr163:
1848
1854
  }}
1849
1855
  goto st260;
1850
1856
  tr169:
1851
- #line 431 "ext/dtext/dtext.rl"
1857
+ #line 435 "ext/dtext/dtext.rl"
1852
1858
  {( sm->te) = ( sm->p)+1;{
1853
1859
  if (dstack_check(sm, INLINE_S)) {
1854
1860
  dstack_pop(sm);
@@ -1859,7 +1865,7 @@ tr169:
1859
1865
  }}
1860
1866
  goto st260;
1861
1867
  tr176:
1862
- #line 511 "ext/dtext/dtext.rl"
1868
+ #line 515 "ext/dtext/dtext.rl"
1863
1869
  {( sm->te) = ( sm->p)+1;{
1864
1870
  g_debug("inline [/spoiler]");
1865
1871
  dstack_close_before_block(sm);
@@ -1882,7 +1888,7 @@ tr176:
1882
1888
  }}
1883
1889
  goto st260;
1884
1890
  tr180:
1885
- #line 566 "ext/dtext/dtext.rl"
1891
+ #line 570 "ext/dtext/dtext.rl"
1886
1892
  {( sm->te) = ( sm->p)+1;{
1887
1893
  if (dstack_check(sm, BLOCK_TD)) {
1888
1894
  dstack_pop(sm);
@@ -1894,7 +1900,7 @@ tr180:
1894
1900
  }}
1895
1901
  goto st260;
1896
1902
  tr181:
1897
- #line 556 "ext/dtext/dtext.rl"
1903
+ #line 560 "ext/dtext/dtext.rl"
1898
1904
  {( sm->te) = ( sm->p)+1;{
1899
1905
  if (dstack_check(sm, BLOCK_TH)) {
1900
1906
  dstack_pop(sm);
@@ -1906,7 +1912,7 @@ tr181:
1906
1912
  }}
1907
1913
  goto st260;
1908
1914
  tr182:
1909
- #line 459 "ext/dtext/dtext.rl"
1915
+ #line 463 "ext/dtext/dtext.rl"
1910
1916
  {( sm->te) = ( sm->p)+1;{
1911
1917
  dstack_close_before_block(sm);
1912
1918
 
@@ -1922,7 +1928,7 @@ tr182:
1922
1928
  }}
1923
1929
  goto st260;
1924
1930
  tr183:
1925
- #line 445 "ext/dtext/dtext.rl"
1931
+ #line 449 "ext/dtext/dtext.rl"
1926
1932
  {( sm->te) = ( sm->p)+1;{
1927
1933
  if (dstack_check(sm, INLINE_U)) {
1928
1934
  dstack_pop(sm);
@@ -1933,7 +1939,7 @@ tr183:
1933
1939
  }}
1934
1940
  goto st260;
1935
1941
  tr188:
1936
- #line 266 "ext/dtext/dtext.rl"
1942
+ #line 267 "ext/dtext/dtext.rl"
1937
1943
  {( sm->te) = ( sm->p)+1;{
1938
1944
  GString * segment = g_string_new_len(sm->a1, sm->a2 - sm->a1);
1939
1945
  GString * lowercase_segment = NULL;
@@ -1956,7 +1962,7 @@ tr188:
1956
1962
  }}
1957
1963
  goto st260;
1958
1964
  tr192:
1959
- #line 287 "ext/dtext/dtext.rl"
1965
+ #line 288 "ext/dtext/dtext.rl"
1960
1966
  {( sm->te) = ( sm->p)+1;{
1961
1967
  GString * segment = g_string_new_len(sm->a1, sm->a2 - sm->a1);
1962
1968
  GString * lowercase_segment = NULL;
@@ -1979,14 +1985,14 @@ tr192:
1979
1985
  }}
1980
1986
  goto st260;
1981
1987
  tr193:
1982
- #line 398 "ext/dtext/dtext.rl"
1988
+ #line 402 "ext/dtext/dtext.rl"
1983
1989
  {( sm->te) = ( sm->p)+1;{
1984
1990
  dstack_push(sm, &INLINE_B);
1985
1991
  append(sm, true, "<strong>");
1986
1992
  }}
1987
1993
  goto st260;
1988
1994
  tr199:
1989
- #line 532 "ext/dtext/dtext.rl"
1995
+ #line 536 "ext/dtext/dtext.rl"
1990
1996
  {( sm->te) = ( sm->p)+1;{
1991
1997
  g_debug("inline [expand]");
1992
1998
  dstack_rewind(sm);
@@ -1995,14 +2001,14 @@ tr199:
1995
2001
  }}
1996
2002
  goto st260;
1997
2003
  tr200:
1998
- #line 412 "ext/dtext/dtext.rl"
2004
+ #line 416 "ext/dtext/dtext.rl"
1999
2005
  {( sm->te) = ( sm->p)+1;{
2000
2006
  dstack_push(sm, &INLINE_I);
2001
2007
  append(sm, true, "<em>");
2002
2008
  }}
2003
2009
  goto st260;
2004
2010
  tr207:
2005
- #line 551 "ext/dtext/dtext.rl"
2011
+ #line 555 "ext/dtext/dtext.rl"
2006
2012
  {( sm->te) = ( sm->p)+1;{
2007
2013
  dstack_push(sm, &INLINE_NODTEXT);
2008
2014
  {
@@ -2020,7 +2026,7 @@ tr207:
2020
2026
  }}
2021
2027
  goto st260;
2022
2028
  tr212:
2023
- #line 481 "ext/dtext/dtext.rl"
2029
+ #line 485 "ext/dtext/dtext.rl"
2024
2030
  {( sm->te) = ( sm->p)+1;{
2025
2031
  g_debug("inline [quote]");
2026
2032
  dstack_close_before_block(sm);
@@ -2029,14 +2035,14 @@ tr212:
2029
2035
  }}
2030
2036
  goto st260;
2031
2037
  tr213:
2032
- #line 426 "ext/dtext/dtext.rl"
2038
+ #line 430 "ext/dtext/dtext.rl"
2033
2039
  {( sm->te) = ( sm->p)+1;{
2034
2040
  dstack_push(sm, &INLINE_S);
2035
2041
  append(sm, true, "<s>");
2036
2042
  }}
2037
2043
  goto st260;
2038
2044
  tr220:
2039
- #line 504 "ext/dtext/dtext.rl"
2045
+ #line 508 "ext/dtext/dtext.rl"
2040
2046
  {( sm->te) = ( sm->p)+1;{
2041
2047
  g_debug("inline [spoiler]");
2042
2048
  g_debug(" push <span>");
@@ -2045,21 +2051,21 @@ tr220:
2045
2051
  }}
2046
2052
  goto st260;
2047
2053
  tr222:
2048
- #line 454 "ext/dtext/dtext.rl"
2054
+ #line 458 "ext/dtext/dtext.rl"
2049
2055
  {( sm->te) = ( sm->p)+1;{
2050
2056
  dstack_push(sm, &INLINE_TN);
2051
2057
  append(sm, true, "<span class=\"tn\">");
2052
2058
  }}
2053
2059
  goto st260;
2054
2060
  tr223:
2055
- #line 440 "ext/dtext/dtext.rl"
2061
+ #line 444 "ext/dtext/dtext.rl"
2056
2062
  {( sm->te) = ( sm->p)+1;{
2057
2063
  dstack_push(sm, &INLINE_U);
2058
2064
  append(sm, true, "<u>");
2059
2065
  }}
2060
2066
  goto st260;
2061
2067
  tr235:
2062
- #line 258 "ext/dtext/dtext.rl"
2068
+ #line 259 "ext/dtext/dtext.rl"
2063
2069
  {( sm->te) = ( sm->p)+1;{
2064
2070
  append(sm, true, "<a rel=\"nofollow\" href=\"/posts?tags=");
2065
2071
  append_segment_uri_escaped(sm, sm->a1, sm->a2 - 1);
@@ -2069,14 +2075,14 @@ tr235:
2069
2075
  }}
2070
2076
  goto st260;
2071
2077
  tr320:
2072
- #line 613 "ext/dtext/dtext.rl"
2078
+ #line 616 "ext/dtext/dtext.rl"
2073
2079
  {( sm->te) = ( sm->p)+1;{
2074
2080
  g_debug("inline char: %c", (*( sm->p)));
2075
2081
  append_c_html_escaped(sm, (*( sm->p)));
2076
2082
  }}
2077
2083
  goto st260;
2078
2084
  tr321:
2079
- #line 576 "ext/dtext/dtext.rl"
2085
+ #line 580 "ext/dtext/dtext.rl"
2080
2086
  {( sm->te) = ( sm->p)+1;{
2081
2087
  g_debug("inline 0");
2082
2088
  g_debug(" return");
@@ -2086,7 +2092,7 @@ tr321:
2086
2092
  }}
2087
2093
  goto st260;
2088
2094
  tr336:
2089
- #line 597 "ext/dtext/dtext.rl"
2095
+ #line 600 "ext/dtext/dtext.rl"
2090
2096
  {( sm->te) = ( sm->p);( sm->p)--;{
2091
2097
  g_debug("inline newline");
2092
2098
 
@@ -2100,14 +2106,13 @@ tr336:
2100
2106
  }}
2101
2107
  goto st260;
2102
2108
  tr339:
2103
- #line 584 "ext/dtext/dtext.rl"
2109
+ #line 588 "ext/dtext/dtext.rl"
2104
2110
  {( sm->te) = ( sm->p);( sm->p)--;{
2105
2111
  g_debug("inline newline2");
2106
2112
  g_debug(" return");
2107
2113
 
2108
2114
  if (sm->list_mode) {
2109
2115
  dstack_close_list(sm);
2110
- sm->list_mode = false;
2111
2116
  }
2112
2117
 
2113
2118
  {( sm->p) = (( sm->ts))-1;}
@@ -2116,11 +2121,11 @@ tr339:
2116
2121
  goto st260;
2117
2122
  tr340:
2118
2123
  sm->cs = 260;
2119
- #line 107 "ext/dtext/dtext.rl"
2124
+ #line 108 "ext/dtext/dtext.rl"
2120
2125
  {
2121
2126
  sm->b2 = sm->p;
2122
2127
  }
2123
- #line 382 "ext/dtext/dtext.rl"
2128
+ #line 383 "ext/dtext/dtext.rl"
2124
2129
  {( sm->te) = ( sm->p);( sm->p)--;{
2125
2130
  g_debug("inline list");
2126
2131
 
@@ -2130,6 +2135,9 @@ tr340:
2130
2135
  } else if (dstack_check(sm, BLOCK_P)) {
2131
2136
  g_debug(" rewind p");
2132
2137
  dstack_rewind(sm);
2138
+ } else if (sm->header_mode) {
2139
+ g_debug(" rewind header");
2140
+ dstack_rewind(sm);
2133
2141
  }
2134
2142
 
2135
2143
  g_debug(" next list");
@@ -2138,24 +2146,24 @@ tr340:
2138
2146
  }}
2139
2147
  goto _again;
2140
2148
  tr342:
2141
- #line 609 "ext/dtext/dtext.rl"
2149
+ #line 612 "ext/dtext/dtext.rl"
2142
2150
  {( sm->te) = ( sm->p);( sm->p)--;{
2143
2151
  append_c(sm, ' ');
2144
2152
  }}
2145
2153
  goto st260;
2146
2154
  tr343:
2147
- #line 613 "ext/dtext/dtext.rl"
2155
+ #line 616 "ext/dtext/dtext.rl"
2148
2156
  {( sm->te) = ( sm->p);( sm->p)--;{
2149
2157
  g_debug("inline char: %c", (*( sm->p)));
2150
2158
  append_c_html_escaped(sm, (*( sm->p)));
2151
2159
  }}
2152
2160
  goto st260;
2153
2161
  tr345:
2154
- #line 107 "ext/dtext/dtext.rl"
2162
+ #line 108 "ext/dtext/dtext.rl"
2155
2163
  {
2156
2164
  sm->b2 = sm->p;
2157
2165
  }
2158
- #line 308 "ext/dtext/dtext.rl"
2166
+ #line 309 "ext/dtext/dtext.rl"
2159
2167
  {( sm->te) = ( sm->p);( sm->p)--;{
2160
2168
  if (is_boundary_c((*( sm->p)))) {
2161
2169
  sm->d = 2;
@@ -2177,11 +2185,11 @@ tr345:
2177
2185
  }}
2178
2186
  goto st260;
2179
2187
  tr347:
2180
- #line 99 "ext/dtext/dtext.rl"
2188
+ #line 100 "ext/dtext/dtext.rl"
2181
2189
  {
2182
2190
  sm->a2 = sm->p;
2183
2191
  }
2184
- #line 361 "ext/dtext/dtext.rl"
2192
+ #line 362 "ext/dtext/dtext.rl"
2185
2193
  {( sm->te) = ( sm->p);( sm->p)--;{
2186
2194
  if (is_boundary_c((*( sm->p)))) {
2187
2195
  sm->b = true;
@@ -2204,7 +2212,7 @@ tr347:
2204
2212
  }}
2205
2213
  goto st260;
2206
2214
  tr350:
2207
- #line 99 "ext/dtext/dtext.rl"
2215
+ #line 100 "ext/dtext/dtext.rl"
2208
2216
  {
2209
2217
  sm->a2 = sm->p;
2210
2218
  }
@@ -2244,7 +2252,6 @@ tr350:
2244
2252
 
2245
2253
  if (sm->list_mode) {
2246
2254
  dstack_close_list(sm);
2247
- sm->list_mode = false;
2248
2255
  }
2249
2256
 
2250
2257
  {( sm->p) = (( sm->ts))-1;}
@@ -2268,11 +2275,11 @@ tr350:
2268
2275
  }
2269
2276
  goto st260;
2270
2277
  tr352:
2271
- #line 99 "ext/dtext/dtext.rl"
2278
+ #line 100 "ext/dtext/dtext.rl"
2272
2279
  {
2273
2280
  sm->a2 = sm->p;
2274
2281
  }
2275
- #line 218 "ext/dtext/dtext.rl"
2282
+ #line 219 "ext/dtext/dtext.rl"
2276
2283
  {( sm->te) = ( sm->p);( sm->p)--;{
2277
2284
  append(sm, true, "<a href=\"/artists/");
2278
2285
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2283,11 +2290,11 @@ tr352:
2283
2290
  }}
2284
2291
  goto st260;
2285
2292
  tr355:
2286
- #line 99 "ext/dtext/dtext.rl"
2293
+ #line 100 "ext/dtext/dtext.rl"
2287
2294
  {
2288
2295
  sm->a2 = sm->p;
2289
2296
  }
2290
- #line 191 "ext/dtext/dtext.rl"
2297
+ #line 192 "ext/dtext/dtext.rl"
2291
2298
  {( sm->te) = ( sm->p);( sm->p)--;{
2292
2299
  append(sm, true, "<a href=\"/comments/");
2293
2300
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2298,11 +2305,11 @@ tr355:
2298
2305
  }}
2299
2306
  goto st260;
2300
2307
  tr358:
2301
- #line 99 "ext/dtext/dtext.rl"
2308
+ #line 100 "ext/dtext/dtext.rl"
2302
2309
  {
2303
2310
  sm->a2 = sm->p;
2304
2311
  }
2305
- #line 160 "ext/dtext/dtext.rl"
2312
+ #line 161 "ext/dtext/dtext.rl"
2306
2313
  {( sm->te) = ( sm->p);( sm->p)--;{
2307
2314
  append(sm, true, "<a href=\"/forum_posts/");
2308
2315
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2313,11 +2320,11 @@ tr358:
2313
2320
  }}
2314
2321
  goto st260;
2315
2322
  tr361:
2316
- #line 99 "ext/dtext/dtext.rl"
2323
+ #line 100 "ext/dtext/dtext.rl"
2317
2324
  {
2318
2325
  sm->a2 = sm->p;
2319
2326
  }
2320
- #line 227 "ext/dtext/dtext.rl"
2327
+ #line 228 "ext/dtext/dtext.rl"
2321
2328
  {( sm->te) = ( sm->p);( sm->p)--;{
2322
2329
  append(sm, true, "<a href=\"https://github.com/r888888888/danbooru/issues/");
2323
2330
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2328,11 +2335,11 @@ tr361:
2328
2335
  }}
2329
2336
  goto st260;
2330
2337
  tr365:
2331
- #line 99 "ext/dtext/dtext.rl"
2338
+ #line 100 "ext/dtext/dtext.rl"
2332
2339
  {
2333
2340
  sm->a2 = sm->p;
2334
2341
  }
2335
- #line 236 "ext/dtext/dtext.rl"
2342
+ #line 237 "ext/dtext/dtext.rl"
2336
2343
  {( sm->te) = ( sm->p);( sm->p)--;{
2337
2344
  append(sm, true, "<a href=\"http://www.pixiv.net/member_illust.php?mode=medium&illust_id=");
2338
2345
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2343,11 +2350,11 @@ tr365:
2343
2350
  }}
2344
2351
  goto st260;
2345
2352
  tr368:
2346
- #line 107 "ext/dtext/dtext.rl"
2353
+ #line 108 "ext/dtext/dtext.rl"
2347
2354
  {
2348
2355
  sm->b2 = sm->p;
2349
2356
  }
2350
- #line 245 "ext/dtext/dtext.rl"
2357
+ #line 246 "ext/dtext/dtext.rl"
2351
2358
  {( sm->te) = ( sm->p);( sm->p)--;{
2352
2359
  append(sm, true, "<a href=\"http://www.pixiv.net/member_illust.php?mode=manga_big&illust_id=");
2353
2360
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2362,11 +2369,11 @@ tr368:
2362
2369
  }}
2363
2370
  goto st260;
2364
2371
  tr370:
2365
- #line 99 "ext/dtext/dtext.rl"
2372
+ #line 100 "ext/dtext/dtext.rl"
2366
2373
  {
2367
2374
  sm->a2 = sm->p;
2368
2375
  }
2369
- #line 200 "ext/dtext/dtext.rl"
2376
+ #line 201 "ext/dtext/dtext.rl"
2370
2377
  {( sm->te) = ( sm->p);( sm->p)--;{
2371
2378
  append(sm, true, "<a href=\"/pools/");
2372
2379
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2377,11 +2384,11 @@ tr370:
2377
2384
  }}
2378
2385
  goto st260;
2379
2386
  tr372:
2380
- #line 99 "ext/dtext/dtext.rl"
2387
+ #line 100 "ext/dtext/dtext.rl"
2381
2388
  {
2382
2389
  sm->a2 = sm->p;
2383
2390
  }
2384
- #line 151 "ext/dtext/dtext.rl"
2391
+ #line 152 "ext/dtext/dtext.rl"
2385
2392
  {( sm->te) = ( sm->p);( sm->p)--;{
2386
2393
  append(sm, true, "<a href=\"/posts/");
2387
2394
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2392,11 +2399,11 @@ tr372:
2392
2399
  }}
2393
2400
  goto st260;
2394
2401
  tr375:
2395
- #line 99 "ext/dtext/dtext.rl"
2402
+ #line 100 "ext/dtext/dtext.rl"
2396
2403
  {
2397
2404
  sm->a2 = sm->p;
2398
2405
  }
2399
- #line 169 "ext/dtext/dtext.rl"
2406
+ #line 170 "ext/dtext/dtext.rl"
2400
2407
  {( sm->te) = ( sm->p);( sm->p)--;{
2401
2408
  append(sm, true, "<a href=\"/forum_topics/");
2402
2409
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2407,11 +2414,11 @@ tr375:
2407
2414
  }}
2408
2415
  goto st260;
2409
2416
  tr378:
2410
- #line 107 "ext/dtext/dtext.rl"
2417
+ #line 108 "ext/dtext/dtext.rl"
2411
2418
  {
2412
2419
  sm->b2 = sm->p;
2413
2420
  }
2414
- #line 178 "ext/dtext/dtext.rl"
2421
+ #line 179 "ext/dtext/dtext.rl"
2415
2422
  {( sm->te) = ( sm->p);( sm->p)--;{
2416
2423
  append(sm, true, "<a href=\"/forum_topics/");
2417
2424
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2426,11 +2433,11 @@ tr378:
2426
2433
  }}
2427
2434
  goto st260;
2428
2435
  tr381:
2429
- #line 99 "ext/dtext/dtext.rl"
2436
+ #line 100 "ext/dtext/dtext.rl"
2430
2437
  {
2431
2438
  sm->a2 = sm->p;
2432
2439
  }
2433
- #line 209 "ext/dtext/dtext.rl"
2440
+ #line 210 "ext/dtext/dtext.rl"
2434
2441
  {( sm->te) = ( sm->p);( sm->p)--;{
2435
2442
  append(sm, true, "<a href=\"/users/");
2436
2443
  append_segment(sm, true, sm->a1, sm->a2 - 1);
@@ -2441,7 +2448,7 @@ tr381:
2441
2448
  }}
2442
2449
  goto st260;
2443
2450
  tr393:
2444
- #line 488 "ext/dtext/dtext.rl"
2451
+ #line 492 "ext/dtext/dtext.rl"
2445
2452
  {( sm->te) = ( sm->p);( sm->p)--;{
2446
2453
  g_debug("inline [/quote]");
2447
2454
  dstack_close_before_block(sm);
@@ -2459,7 +2466,7 @@ tr393:
2459
2466
  }}
2460
2467
  goto st260;
2461
2468
  tr396:
2462
- #line 475 "ext/dtext/dtext.rl"
2469
+ #line 479 "ext/dtext/dtext.rl"
2463
2470
  {( sm->te) = ( sm->p);( sm->p)--;{
2464
2471
  dstack_rewind(sm);
2465
2472
  {( sm->p) = (( sm->a1 - 1))-1;}
@@ -2467,7 +2474,7 @@ tr396:
2467
2474
  }}
2468
2475
  goto st260;
2469
2476
  tr398:
2470
- #line 336 "ext/dtext/dtext.rl"
2477
+ #line 337 "ext/dtext/dtext.rl"
2471
2478
  {( sm->te) = ( sm->p);( sm->p)--;{
2472
2479
  if (is_boundary_c((*( sm->p)))) {
2473
2480
  sm->b = true;
@@ -2496,7 +2503,7 @@ st260:
2496
2503
  case 260:
2497
2504
  #line 1 "NONE"
2498
2505
  {( sm->ts) = ( sm->p);}
2499
- #line 2500 "ext/dtext/dtext.c"
2506
+ #line 2507 "ext/dtext/dtext.c"
2500
2507
  switch( (*( sm->p)) ) {
2501
2508
  case 0: goto tr321;
2502
2509
  case 10: goto tr322;
@@ -2525,14 +2532,14 @@ case 260:
2525
2532
  tr322:
2526
2533
  #line 1 "NONE"
2527
2534
  {( sm->te) = ( sm->p)+1;}
2528
- #line 597 "ext/dtext/dtext.rl"
2535
+ #line 600 "ext/dtext/dtext.rl"
2529
2536
  {( sm->act) = 43;}
2530
2537
  goto st261;
2531
2538
  st261:
2532
2539
  if ( ++( sm->p) == ( sm->pe) )
2533
2540
  goto _test_eof261;
2534
2541
  case 261:
2535
- #line 2536 "ext/dtext/dtext.c"
2542
+ #line 2543 "ext/dtext/dtext.c"
2536
2543
  switch( (*( sm->p)) ) {
2537
2544
  case 10: goto tr57;
2538
2545
  case 13: goto st49;
@@ -2542,14 +2549,14 @@ case 261:
2542
2549
  tr57:
2543
2550
  #line 1 "NONE"
2544
2551
  {( sm->te) = ( sm->p)+1;}
2545
- #line 584 "ext/dtext/dtext.rl"
2552
+ #line 588 "ext/dtext/dtext.rl"
2546
2553
  {( sm->act) = 42;}
2547
2554
  goto st262;
2548
2555
  st262:
2549
2556
  if ( ++( sm->p) == ( sm->pe) )
2550
2557
  goto _test_eof262;
2551
2558
  case 262:
2552
- #line 2553 "ext/dtext/dtext.c"
2559
+ #line 2560 "ext/dtext/dtext.c"
2553
2560
  switch( (*( sm->p)) ) {
2554
2561
  case 10: goto tr57;
2555
2562
  case 13: goto st49;
@@ -2563,7 +2570,7 @@ case 49:
2563
2570
  goto tr57;
2564
2571
  goto tr56;
2565
2572
  tr338:
2566
- #line 95 "ext/dtext/dtext.rl"
2573
+ #line 96 "ext/dtext/dtext.rl"
2567
2574
  {
2568
2575
  sm->a1 = sm->p;
2569
2576
  }
@@ -2572,7 +2579,7 @@ st50:
2572
2579
  if ( ++( sm->p) == ( sm->pe) )
2573
2580
  goto _test_eof50;
2574
2581
  case 50:
2575
- #line 2576 "ext/dtext/dtext.c"
2582
+ #line 2583 "ext/dtext/dtext.c"
2576
2583
  switch( (*( sm->p)) ) {
2577
2584
  case 9: goto tr59;
2578
2585
  case 32: goto tr59;
@@ -2580,7 +2587,7 @@ case 50:
2580
2587
  }
2581
2588
  goto tr58;
2582
2589
  tr59:
2583
- #line 99 "ext/dtext/dtext.rl"
2590
+ #line 100 "ext/dtext/dtext.rl"
2584
2591
  {
2585
2592
  sm->a2 = sm->p;
2586
2593
  }
@@ -2589,7 +2596,7 @@ st51:
2589
2596
  if ( ++( sm->p) == ( sm->pe) )
2590
2597
  goto _test_eof51;
2591
2598
  case 51:
2592
- #line 2593 "ext/dtext/dtext.c"
2599
+ #line 2600 "ext/dtext/dtext.c"
2593
2600
  switch( (*( sm->p)) ) {
2594
2601
  case 0: goto tr58;
2595
2602
  case 9: goto tr62;
@@ -2599,7 +2606,7 @@ case 51:
2599
2606
  }
2600
2607
  goto tr61;
2601
2608
  tr61:
2602
- #line 103 "ext/dtext/dtext.rl"
2609
+ #line 104 "ext/dtext/dtext.rl"
2603
2610
  {
2604
2611
  sm->b1 = sm->p;
2605
2612
  }
@@ -2608,7 +2615,7 @@ st263:
2608
2615
  if ( ++( sm->p) == ( sm->pe) )
2609
2616
  goto _test_eof263;
2610
2617
  case 263:
2611
- #line 2612 "ext/dtext/dtext.c"
2618
+ #line 2619 "ext/dtext/dtext.c"
2612
2619
  switch( (*( sm->p)) ) {
2613
2620
  case 0: goto tr340;
2614
2621
  case 10: goto tr340;
@@ -2616,7 +2623,7 @@ case 263:
2616
2623
  }
2617
2624
  goto st263;
2618
2625
  tr62:
2619
- #line 103 "ext/dtext/dtext.rl"
2626
+ #line 104 "ext/dtext/dtext.rl"
2620
2627
  {
2621
2628
  sm->b1 = sm->p;
2622
2629
  }
@@ -2625,7 +2632,7 @@ st264:
2625
2632
  if ( ++( sm->p) == ( sm->pe) )
2626
2633
  goto _test_eof264;
2627
2634
  case 264:
2628
- #line 2629 "ext/dtext/dtext.c"
2635
+ #line 2636 "ext/dtext/dtext.c"
2629
2636
  switch( (*( sm->p)) ) {
2630
2637
  case 0: goto tr340;
2631
2638
  case 9: goto tr62;
@@ -2649,12 +2656,12 @@ st266:
2649
2656
  if ( ++( sm->p) == ( sm->pe) )
2650
2657
  goto _test_eof266;
2651
2658
  case 266:
2652
- #line 2653 "ext/dtext/dtext.c"
2659
+ #line 2660 "ext/dtext/dtext.c"
2653
2660
  if ( (*( sm->p)) == 34 )
2654
2661
  goto tr343;
2655
2662
  goto tr344;
2656
2663
  tr344:
2657
- #line 95 "ext/dtext/dtext.rl"
2664
+ #line 96 "ext/dtext/dtext.rl"
2658
2665
  {
2659
2666
  sm->a1 = sm->p;
2660
2667
  }
@@ -2663,12 +2670,12 @@ st52:
2663
2670
  if ( ++( sm->p) == ( sm->pe) )
2664
2671
  goto _test_eof52;
2665
2672
  case 52:
2666
- #line 2667 "ext/dtext/dtext.c"
2673
+ #line 2674 "ext/dtext/dtext.c"
2667
2674
  if ( (*( sm->p)) == 34 )
2668
2675
  goto tr65;
2669
2676
  goto st52;
2670
2677
  tr65:
2671
- #line 99 "ext/dtext/dtext.rl"
2678
+ #line 100 "ext/dtext/dtext.rl"
2672
2679
  {
2673
2680
  sm->a2 = sm->p;
2674
2681
  }
@@ -2677,7 +2684,7 @@ st53:
2677
2684
  if ( ++( sm->p) == ( sm->pe) )
2678
2685
  goto _test_eof53;
2679
2686
  case 53:
2680
- #line 2681 "ext/dtext/dtext.c"
2687
+ #line 2688 "ext/dtext/dtext.c"
2681
2688
  if ( (*( sm->p)) == 58 )
2682
2689
  goto st54;
2683
2690
  goto tr63;
@@ -2692,7 +2699,7 @@ case 54:
2692
2699
  }
2693
2700
  goto tr63;
2694
2701
  tr67:
2695
- #line 103 "ext/dtext/dtext.rl"
2702
+ #line 104 "ext/dtext/dtext.rl"
2696
2703
  {
2697
2704
  sm->b1 = sm->p;
2698
2705
  }
@@ -2701,7 +2708,7 @@ st55:
2701
2708
  if ( ++( sm->p) == ( sm->pe) )
2702
2709
  goto _test_eof55;
2703
2710
  case 55:
2704
- #line 2705 "ext/dtext/dtext.c"
2711
+ #line 2712 "ext/dtext/dtext.c"
2705
2712
  if ( 33 <= (*( sm->p)) && (*( sm->p)) <= 126 )
2706
2713
  goto st267;
2707
2714
  goto tr63;
@@ -2722,7 +2729,7 @@ case 56:
2722
2729
  }
2723
2730
  goto tr63;
2724
2731
  tr71:
2725
- #line 103 "ext/dtext/dtext.rl"
2732
+ #line 104 "ext/dtext/dtext.rl"
2726
2733
  {
2727
2734
  sm->b1 = sm->p;
2728
2735
  }
@@ -2731,7 +2738,7 @@ st57:
2731
2738
  if ( ++( sm->p) == ( sm->pe) )
2732
2739
  goto _test_eof57;
2733
2740
  case 57:
2734
- #line 2735 "ext/dtext/dtext.c"
2741
+ #line 2742 "ext/dtext/dtext.c"
2735
2742
  if ( 33 <= (*( sm->p)) && (*( sm->p)) <= 126 )
2736
2743
  goto st58;
2737
2744
  goto tr63;
@@ -2745,7 +2752,7 @@ case 58:
2745
2752
  goto st58;
2746
2753
  goto tr63;
2747
2754
  tr72:
2748
- #line 103 "ext/dtext/dtext.rl"
2755
+ #line 104 "ext/dtext/dtext.rl"
2749
2756
  {
2750
2757
  sm->b1 = sm->p;
2751
2758
  }
@@ -2754,7 +2761,7 @@ st59:
2754
2761
  if ( ++( sm->p) == ( sm->pe) )
2755
2762
  goto _test_eof59;
2756
2763
  case 59:
2757
- #line 2758 "ext/dtext/dtext.c"
2764
+ #line 2765 "ext/dtext/dtext.c"
2758
2765
  if ( (*( sm->p)) == 116 )
2759
2766
  goto st60;
2760
2767
  goto tr63;
@@ -2803,7 +2810,7 @@ case 65:
2803
2810
  goto st63;
2804
2811
  goto tr63;
2805
2812
  tr69:
2806
- #line 103 "ext/dtext/dtext.rl"
2813
+ #line 104 "ext/dtext/dtext.rl"
2807
2814
  {
2808
2815
  sm->b1 = sm->p;
2809
2816
  }
@@ -2812,7 +2819,7 @@ st66:
2812
2819
  if ( ++( sm->p) == ( sm->pe) )
2813
2820
  goto _test_eof66;
2814
2821
  case 66:
2815
- #line 2816 "ext/dtext/dtext.c"
2822
+ #line 2823 "ext/dtext/dtext.c"
2816
2823
  if ( (*( sm->p)) == 116 )
2817
2824
  goto st67;
2818
2825
  goto tr63;
@@ -2868,7 +2875,7 @@ case 268:
2868
2875
  goto tr346;
2869
2876
  goto tr343;
2870
2877
  tr346:
2871
- #line 95 "ext/dtext/dtext.rl"
2878
+ #line 96 "ext/dtext/dtext.rl"
2872
2879
  {
2873
2880
  sm->a1 = sm->p;
2874
2881
  }
@@ -2877,7 +2884,7 @@ st269:
2877
2884
  if ( ++( sm->p) == ( sm->pe) )
2878
2885
  goto _test_eof269;
2879
2886
  case 269:
2880
- #line 2881 "ext/dtext/dtext.c"
2887
+ #line 2888 "ext/dtext/dtext.c"
2881
2888
  if ( (*( sm->p)) == 64 )
2882
2889
  goto tr349;
2883
2890
  if ( 33 <= (*( sm->p)) && (*( sm->p)) <= 126 )
@@ -2886,20 +2893,20 @@ case 269:
2886
2893
  tr348:
2887
2894
  #line 1 "NONE"
2888
2895
  {( sm->te) = ( sm->p)+1;}
2889
- #line 361 "ext/dtext/dtext.rl"
2896
+ #line 362 "ext/dtext/dtext.rl"
2890
2897
  {( sm->act) = 19;}
2891
2898
  goto st270;
2892
2899
  tr349:
2893
2900
  #line 1 "NONE"
2894
2901
  {( sm->te) = ( sm->p)+1;}
2895
- #line 357 "ext/dtext/dtext.rl"
2902
+ #line 358 "ext/dtext/dtext.rl"
2896
2903
  {( sm->act) = 18;}
2897
2904
  goto st270;
2898
2905
  st270:
2899
2906
  if ( ++( sm->p) == ( sm->pe) )
2900
2907
  goto _test_eof270;
2901
2908
  case 270:
2902
- #line 2903 "ext/dtext/dtext.c"
2909
+ #line 2910 "ext/dtext/dtext.c"
2903
2910
  if ( 33 <= (*( sm->p)) && (*( sm->p)) <= 126 )
2904
2911
  goto tr348;
2905
2912
  goto tr350;
@@ -2911,7 +2918,7 @@ st271:
2911
2918
  if ( ++( sm->p) == ( sm->pe) )
2912
2919
  goto _test_eof271;
2913
2920
  case 271:
2914
- #line 2915 "ext/dtext/dtext.c"
2921
+ #line 2922 "ext/dtext/dtext.c"
2915
2922
  switch( (*( sm->p)) ) {
2916
2923
  case 82: goto st73;
2917
2924
  case 114: goto st73;
@@ -2975,7 +2982,7 @@ case 79:
2975
2982
  goto tr95;
2976
2983
  goto tr63;
2977
2984
  tr95:
2978
- #line 95 "ext/dtext/dtext.rl"
2985
+ #line 96 "ext/dtext/dtext.rl"
2979
2986
  {
2980
2987
  sm->a1 = sm->p;
2981
2988
  }
@@ -2984,7 +2991,7 @@ st272:
2984
2991
  if ( ++( sm->p) == ( sm->pe) )
2985
2992
  goto _test_eof272;
2986
2993
  case 272:
2987
- #line 2988 "ext/dtext/dtext.c"
2994
+ #line 2995 "ext/dtext/dtext.c"
2988
2995
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
2989
2996
  goto st272;
2990
2997
  goto tr352;
@@ -2996,7 +3003,7 @@ st273:
2996
3003
  if ( ++( sm->p) == ( sm->pe) )
2997
3004
  goto _test_eof273;
2998
3005
  case 273:
2999
- #line 3000 "ext/dtext/dtext.c"
3006
+ #line 3007 "ext/dtext/dtext.c"
3000
3007
  switch( (*( sm->p)) ) {
3001
3008
  case 79: goto st80;
3002
3009
  case 111: goto st80;
@@ -3069,7 +3076,7 @@ case 87:
3069
3076
  goto tr103;
3070
3077
  goto tr63;
3071
3078
  tr103:
3072
- #line 95 "ext/dtext/dtext.rl"
3079
+ #line 96 "ext/dtext/dtext.rl"
3073
3080
  {
3074
3081
  sm->a1 = sm->p;
3075
3082
  }
@@ -3078,7 +3085,7 @@ st274:
3078
3085
  if ( ++( sm->p) == ( sm->pe) )
3079
3086
  goto _test_eof274;
3080
3087
  case 274:
3081
- #line 3082 "ext/dtext/dtext.c"
3088
+ #line 3089 "ext/dtext/dtext.c"
3082
3089
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3083
3090
  goto st274;
3084
3091
  goto tr355;
@@ -3090,7 +3097,7 @@ st275:
3090
3097
  if ( ++( sm->p) == ( sm->pe) )
3091
3098
  goto _test_eof275;
3092
3099
  case 275:
3093
- #line 3094 "ext/dtext/dtext.c"
3100
+ #line 3101 "ext/dtext/dtext.c"
3094
3101
  switch( (*( sm->p)) ) {
3095
3102
  case 79: goto st88;
3096
3103
  case 111: goto st88;
@@ -3145,7 +3152,7 @@ case 93:
3145
3152
  goto tr109;
3146
3153
  goto tr63;
3147
3154
  tr109:
3148
- #line 95 "ext/dtext/dtext.rl"
3155
+ #line 96 "ext/dtext/dtext.rl"
3149
3156
  {
3150
3157
  sm->a1 = sm->p;
3151
3158
  }
@@ -3154,7 +3161,7 @@ st276:
3154
3161
  if ( ++( sm->p) == ( sm->pe) )
3155
3162
  goto _test_eof276;
3156
3163
  case 276:
3157
- #line 3158 "ext/dtext/dtext.c"
3164
+ #line 3165 "ext/dtext/dtext.c"
3158
3165
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3159
3166
  goto st276;
3160
3167
  goto tr358;
@@ -3166,7 +3173,7 @@ st277:
3166
3173
  if ( ++( sm->p) == ( sm->pe) )
3167
3174
  goto _test_eof277;
3168
3175
  case 277:
3169
- #line 3170 "ext/dtext/dtext.c"
3176
+ #line 3177 "ext/dtext/dtext.c"
3170
3177
  switch( (*( sm->p)) ) {
3171
3178
  case 83: goto st94;
3172
3179
  case 115: goto st94;
@@ -3221,7 +3228,7 @@ case 99:
3221
3228
  goto tr115;
3222
3229
  goto tr63;
3223
3230
  tr115:
3224
- #line 95 "ext/dtext/dtext.rl"
3231
+ #line 96 "ext/dtext/dtext.rl"
3225
3232
  {
3226
3233
  sm->a1 = sm->p;
3227
3234
  }
@@ -3230,7 +3237,7 @@ st278:
3230
3237
  if ( ++( sm->p) == ( sm->pe) )
3231
3238
  goto _test_eof278;
3232
3239
  case 278:
3233
- #line 3234 "ext/dtext/dtext.c"
3240
+ #line 3241 "ext/dtext/dtext.c"
3234
3241
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3235
3242
  goto st278;
3236
3243
  goto tr361;
@@ -3242,7 +3249,7 @@ st279:
3242
3249
  if ( ++( sm->p) == ( sm->pe) )
3243
3250
  goto _test_eof279;
3244
3251
  case 279:
3245
- #line 3246 "ext/dtext/dtext.c"
3252
+ #line 3253 "ext/dtext/dtext.c"
3246
3253
  switch( (*( sm->p)) ) {
3247
3254
  case 73: goto st100;
3248
3255
  case 79: goto st108;
@@ -3301,7 +3308,7 @@ case 105:
3301
3308
  tr121:
3302
3309
  #line 1 "NONE"
3303
3310
  {( sm->te) = ( sm->p)+1;}
3304
- #line 95 "ext/dtext/dtext.rl"
3311
+ #line 96 "ext/dtext/dtext.rl"
3305
3312
  {
3306
3313
  sm->a1 = sm->p;
3307
3314
  }
@@ -3314,14 +3321,14 @@ st280:
3314
3321
  if ( ++( sm->p) == ( sm->pe) )
3315
3322
  goto _test_eof280;
3316
3323
  case 280:
3317
- #line 3318 "ext/dtext/dtext.c"
3324
+ #line 3325 "ext/dtext/dtext.c"
3318
3325
  if ( (*( sm->p)) == 47 )
3319
3326
  goto tr366;
3320
3327
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3321
3328
  goto tr367;
3322
3329
  goto tr365;
3323
3330
  tr366:
3324
- #line 99 "ext/dtext/dtext.rl"
3331
+ #line 100 "ext/dtext/dtext.rl"
3325
3332
  {
3326
3333
  sm->a2 = sm->p;
3327
3334
  }
@@ -3330,7 +3337,7 @@ st106:
3330
3337
  if ( ++( sm->p) == ( sm->pe) )
3331
3338
  goto _test_eof106;
3332
3339
  case 106:
3333
- #line 3334 "ext/dtext/dtext.c"
3340
+ #line 3341 "ext/dtext/dtext.c"
3334
3341
  if ( (*( sm->p)) == 112 )
3335
3342
  goto st107;
3336
3343
  goto tr122;
@@ -3342,7 +3349,7 @@ case 107:
3342
3349
  goto tr124;
3343
3350
  goto tr122;
3344
3351
  tr124:
3345
- #line 103 "ext/dtext/dtext.rl"
3352
+ #line 104 "ext/dtext/dtext.rl"
3346
3353
  {
3347
3354
  sm->b1 = sm->p;
3348
3355
  }
@@ -3351,7 +3358,7 @@ st281:
3351
3358
  if ( ++( sm->p) == ( sm->pe) )
3352
3359
  goto _test_eof281;
3353
3360
  case 281:
3354
- #line 3355 "ext/dtext/dtext.c"
3361
+ #line 3362 "ext/dtext/dtext.c"
3355
3362
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3356
3363
  goto st281;
3357
3364
  goto tr368;
@@ -3397,7 +3404,7 @@ case 112:
3397
3404
  goto tr130;
3398
3405
  goto tr63;
3399
3406
  tr130:
3400
- #line 95 "ext/dtext/dtext.rl"
3407
+ #line 96 "ext/dtext/dtext.rl"
3401
3408
  {
3402
3409
  sm->a1 = sm->p;
3403
3410
  }
@@ -3406,7 +3413,7 @@ st282:
3406
3413
  if ( ++( sm->p) == ( sm->pe) )
3407
3414
  goto _test_eof282;
3408
3415
  case 282:
3409
- #line 3410 "ext/dtext/dtext.c"
3416
+ #line 3417 "ext/dtext/dtext.c"
3410
3417
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3411
3418
  goto st282;
3412
3419
  goto tr370;
@@ -3441,7 +3448,7 @@ case 116:
3441
3448
  goto tr134;
3442
3449
  goto tr63;
3443
3450
  tr134:
3444
- #line 95 "ext/dtext/dtext.rl"
3451
+ #line 96 "ext/dtext/dtext.rl"
3445
3452
  {
3446
3453
  sm->a1 = sm->p;
3447
3454
  }
@@ -3450,7 +3457,7 @@ st283:
3450
3457
  if ( ++( sm->p) == ( sm->pe) )
3451
3458
  goto _test_eof283;
3452
3459
  case 283:
3453
- #line 3454 "ext/dtext/dtext.c"
3460
+ #line 3461 "ext/dtext/dtext.c"
3454
3461
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3455
3462
  goto st283;
3456
3463
  goto tr372;
@@ -3462,7 +3469,7 @@ st284:
3462
3469
  if ( ++( sm->p) == ( sm->pe) )
3463
3470
  goto _test_eof284;
3464
3471
  case 284:
3465
- #line 3466 "ext/dtext/dtext.c"
3472
+ #line 3473 "ext/dtext/dtext.c"
3466
3473
  switch( (*( sm->p)) ) {
3467
3474
  case 79: goto st117;
3468
3475
  case 111: goto st117;
@@ -3519,7 +3526,7 @@ case 122:
3519
3526
  tr140:
3520
3527
  #line 1 "NONE"
3521
3528
  {( sm->te) = ( sm->p)+1;}
3522
- #line 95 "ext/dtext/dtext.rl"
3529
+ #line 96 "ext/dtext/dtext.rl"
3523
3530
  {
3524
3531
  sm->a1 = sm->p;
3525
3532
  }
@@ -3532,14 +3539,14 @@ st285:
3532
3539
  if ( ++( sm->p) == ( sm->pe) )
3533
3540
  goto _test_eof285;
3534
3541
  case 285:
3535
- #line 3536 "ext/dtext/dtext.c"
3542
+ #line 3543 "ext/dtext/dtext.c"
3536
3543
  if ( (*( sm->p)) == 47 )
3537
3544
  goto tr376;
3538
3545
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3539
3546
  goto tr377;
3540
3547
  goto tr375;
3541
3548
  tr376:
3542
- #line 99 "ext/dtext/dtext.rl"
3549
+ #line 100 "ext/dtext/dtext.rl"
3543
3550
  {
3544
3551
  sm->a2 = sm->p;
3545
3552
  }
@@ -3548,7 +3555,7 @@ st123:
3548
3555
  if ( ++( sm->p) == ( sm->pe) )
3549
3556
  goto _test_eof123;
3550
3557
  case 123:
3551
- #line 3552 "ext/dtext/dtext.c"
3558
+ #line 3559 "ext/dtext/dtext.c"
3552
3559
  if ( (*( sm->p)) == 112 )
3553
3560
  goto st124;
3554
3561
  goto tr141;
@@ -3560,7 +3567,7 @@ case 124:
3560
3567
  goto tr143;
3561
3568
  goto tr141;
3562
3569
  tr143:
3563
- #line 103 "ext/dtext/dtext.rl"
3570
+ #line 104 "ext/dtext/dtext.rl"
3564
3571
  {
3565
3572
  sm->b1 = sm->p;
3566
3573
  }
@@ -3569,7 +3576,7 @@ st286:
3569
3576
  if ( ++( sm->p) == ( sm->pe) )
3570
3577
  goto _test_eof286;
3571
3578
  case 286:
3572
- #line 3573 "ext/dtext/dtext.c"
3579
+ #line 3580 "ext/dtext/dtext.c"
3573
3580
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3574
3581
  goto st286;
3575
3582
  goto tr378;
@@ -3581,7 +3588,7 @@ st287:
3581
3588
  if ( ++( sm->p) == ( sm->pe) )
3582
3589
  goto _test_eof287;
3583
3590
  case 287:
3584
- #line 3585 "ext/dtext/dtext.c"
3591
+ #line 3592 "ext/dtext/dtext.c"
3585
3592
  switch( (*( sm->p)) ) {
3586
3593
  case 83: goto st125;
3587
3594
  case 115: goto st125;
@@ -3627,7 +3634,7 @@ case 129:
3627
3634
  goto tr148;
3628
3635
  goto tr63;
3629
3636
  tr148:
3630
- #line 95 "ext/dtext/dtext.rl"
3637
+ #line 96 "ext/dtext/dtext.rl"
3631
3638
  {
3632
3639
  sm->a1 = sm->p;
3633
3640
  }
@@ -3636,7 +3643,7 @@ st288:
3636
3643
  if ( ++( sm->p) == ( sm->pe) )
3637
3644
  goto _test_eof288;
3638
3645
  case 288:
3639
- #line 3640 "ext/dtext/dtext.c"
3646
+ #line 3647 "ext/dtext/dtext.c"
3640
3647
  if ( 48 <= (*( sm->p)) && (*( sm->p)) <= 57 )
3641
3648
  goto st288;
3642
3649
  goto tr381;
@@ -3648,7 +3655,7 @@ st289:
3648
3655
  if ( ++( sm->p) == ( sm->pe) )
3649
3656
  goto _test_eof289;
3650
3657
  case 289:
3651
- #line 3652 "ext/dtext/dtext.c"
3658
+ #line 3659 "ext/dtext/dtext.c"
3652
3659
  switch( (*( sm->p)) ) {
3653
3660
  case 47: goto st130;
3654
3661
  case 91: goto st156;
@@ -3875,7 +3882,7 @@ case 156:
3875
3882
  }
3876
3883
  goto tr184;
3877
3884
  tr184:
3878
- #line 95 "ext/dtext/dtext.rl"
3885
+ #line 96 "ext/dtext/dtext.rl"
3879
3886
  {
3880
3887
  sm->a1 = sm->p;
3881
3888
  }
@@ -3884,14 +3891,14 @@ st157:
3884
3891
  if ( ++( sm->p) == ( sm->pe) )
3885
3892
  goto _test_eof157;
3886
3893
  case 157:
3887
- #line 3888 "ext/dtext/dtext.c"
3894
+ #line 3895 "ext/dtext/dtext.c"
3888
3895
  switch( (*( sm->p)) ) {
3889
3896
  case 93: goto tr186;
3890
3897
  case 124: goto tr187;
3891
3898
  }
3892
3899
  goto st157;
3893
3900
  tr186:
3894
- #line 99 "ext/dtext/dtext.rl"
3901
+ #line 100 "ext/dtext/dtext.rl"
3895
3902
  {
3896
3903
  sm->a2 = sm->p;
3897
3904
  }
@@ -3900,12 +3907,12 @@ st158:
3900
3907
  if ( ++( sm->p) == ( sm->pe) )
3901
3908
  goto _test_eof158;
3902
3909
  case 158:
3903
- #line 3904 "ext/dtext/dtext.c"
3910
+ #line 3911 "ext/dtext/dtext.c"
3904
3911
  if ( (*( sm->p)) == 93 )
3905
3912
  goto tr188;
3906
3913
  goto tr63;
3907
3914
  tr187:
3908
- #line 99 "ext/dtext/dtext.rl"
3915
+ #line 100 "ext/dtext/dtext.rl"
3909
3916
  {
3910
3917
  sm->a2 = sm->p;
3911
3918
  }
@@ -3914,12 +3921,12 @@ st159:
3914
3921
  if ( ++( sm->p) == ( sm->pe) )
3915
3922
  goto _test_eof159;
3916
3923
  case 159:
3917
- #line 3918 "ext/dtext/dtext.c"
3924
+ #line 3925 "ext/dtext/dtext.c"
3918
3925
  if ( (*( sm->p)) == 93 )
3919
3926
  goto tr63;
3920
3927
  goto tr189;
3921
3928
  tr189:
3922
- #line 103 "ext/dtext/dtext.rl"
3929
+ #line 104 "ext/dtext/dtext.rl"
3923
3930
  {
3924
3931
  sm->b1 = sm->p;
3925
3932
  }
@@ -3928,12 +3935,12 @@ st160:
3928
3935
  if ( ++( sm->p) == ( sm->pe) )
3929
3936
  goto _test_eof160;
3930
3937
  case 160:
3931
- #line 3932 "ext/dtext/dtext.c"
3938
+ #line 3939 "ext/dtext/dtext.c"
3932
3939
  if ( (*( sm->p)) == 93 )
3933
3940
  goto tr191;
3934
3941
  goto st160;
3935
3942
  tr191:
3936
- #line 107 "ext/dtext/dtext.rl"
3943
+ #line 108 "ext/dtext/dtext.rl"
3937
3944
  {
3938
3945
  sm->b2 = sm->p;
3939
3946
  }
@@ -3942,7 +3949,7 @@ st161:
3942
3949
  if ( ++( sm->p) == ( sm->pe) )
3943
3950
  goto _test_eof161;
3944
3951
  case 161:
3945
- #line 3946 "ext/dtext/dtext.c"
3952
+ #line 3953 "ext/dtext/dtext.c"
3946
3953
  if ( (*( sm->p)) == 93 )
3947
3954
  goto tr192;
3948
3955
  goto tr63;
@@ -4166,14 +4173,14 @@ st291:
4166
4173
  if ( ++( sm->p) == ( sm->pe) )
4167
4174
  goto _test_eof291;
4168
4175
  case 291:
4169
- #line 4170 "ext/dtext/dtext.c"
4176
+ #line 4177 "ext/dtext/dtext.c"
4170
4177
  if ( (*( sm->p)) == 116 )
4171
4178
  goto st193;
4172
4179
  if ( 49 <= (*( sm->p)) && (*( sm->p)) <= 54 )
4173
4180
  goto tr394;
4174
4181
  goto tr343;
4175
4182
  tr394:
4176
- #line 95 "ext/dtext/dtext.rl"
4183
+ #line 96 "ext/dtext/dtext.rl"
4177
4184
  {
4178
4185
  sm->a1 = sm->p;
4179
4186
  }
@@ -4182,12 +4189,12 @@ st192:
4182
4189
  if ( ++( sm->p) == ( sm->pe) )
4183
4190
  goto _test_eof192;
4184
4191
  case 192:
4185
- #line 4186 "ext/dtext/dtext.c"
4192
+ #line 4193 "ext/dtext/dtext.c"
4186
4193
  if ( (*( sm->p)) == 46 )
4187
4194
  goto tr224;
4188
4195
  goto tr63;
4189
4196
  tr224:
4190
- #line 99 "ext/dtext/dtext.rl"
4197
+ #line 100 "ext/dtext/dtext.rl"
4191
4198
  {
4192
4199
  sm->a2 = sm->p;
4193
4200
  }
@@ -4196,7 +4203,7 @@ st292:
4196
4203
  if ( ++( sm->p) == ( sm->pe) )
4197
4204
  goto _test_eof292;
4198
4205
  case 292:
4199
- #line 4200 "ext/dtext/dtext.c"
4206
+ #line 4207 "ext/dtext/dtext.c"
4200
4207
  switch( (*( sm->p)) ) {
4201
4208
  case 9: goto st292;
4202
4209
  case 32: goto st292;
@@ -4268,7 +4275,7 @@ st294:
4268
4275
  if ( ++( sm->p) == ( sm->pe) )
4269
4276
  goto _test_eof294;
4270
4277
  case 294:
4271
- #line 4272 "ext/dtext/dtext.c"
4278
+ #line 4279 "ext/dtext/dtext.c"
4272
4279
  if ( (*( sm->p)) == 123 )
4273
4280
  goto st200;
4274
4281
  goto tr343;
@@ -4280,7 +4287,7 @@ case 200:
4280
4287
  goto tr63;
4281
4288
  goto tr232;
4282
4289
  tr232:
4283
- #line 95 "ext/dtext/dtext.rl"
4290
+ #line 96 "ext/dtext/dtext.rl"
4284
4291
  {
4285
4292
  sm->a1 = sm->p;
4286
4293
  }
@@ -4289,12 +4296,12 @@ st201:
4289
4296
  if ( ++( sm->p) == ( sm->pe) )
4290
4297
  goto _test_eof201;
4291
4298
  case 201:
4292
- #line 4293 "ext/dtext/dtext.c"
4299
+ #line 4300 "ext/dtext/dtext.c"
4293
4300
  if ( (*( sm->p)) == 125 )
4294
4301
  goto tr234;
4295
4302
  goto st201;
4296
4303
  tr234:
4297
- #line 99 "ext/dtext/dtext.rl"
4304
+ #line 100 "ext/dtext/dtext.rl"
4298
4305
  {
4299
4306
  sm->a2 = sm->p;
4300
4307
  }
@@ -4303,18 +4310,18 @@ st202:
4303
4310
  if ( ++( sm->p) == ( sm->pe) )
4304
4311
  goto _test_eof202;
4305
4312
  case 202:
4306
- #line 4307 "ext/dtext/dtext.c"
4313
+ #line 4314 "ext/dtext/dtext.c"
4307
4314
  if ( (*( sm->p)) == 125 )
4308
4315
  goto tr235;
4309
4316
  goto tr63;
4310
4317
  tr236:
4311
- #line 634 "ext/dtext/dtext.rl"
4318
+ #line 637 "ext/dtext/dtext.rl"
4312
4319
  {{( sm->p) = ((( sm->te)))-1;}{
4313
4320
  append_c_html_escaped(sm, (*( sm->p)));
4314
4321
  }}
4315
4322
  goto st295;
4316
4323
  tr241:
4317
- #line 620 "ext/dtext/dtext.rl"
4324
+ #line 623 "ext/dtext/dtext.rl"
4318
4325
  {( sm->te) = ( sm->p)+1;{
4319
4326
  if (dstack_check(sm, BLOCK_CODE)) {
4320
4327
  dstack_rewind(sm);
@@ -4325,20 +4332,20 @@ tr241:
4325
4332
  }}
4326
4333
  goto st295;
4327
4334
  tr400:
4328
- #line 634 "ext/dtext/dtext.rl"
4335
+ #line 637 "ext/dtext/dtext.rl"
4329
4336
  {( sm->te) = ( sm->p)+1;{
4330
4337
  append_c_html_escaped(sm, (*( sm->p)));
4331
4338
  }}
4332
4339
  goto st295;
4333
4340
  tr401:
4334
- #line 629 "ext/dtext/dtext.rl"
4341
+ #line 632 "ext/dtext/dtext.rl"
4335
4342
  {( sm->te) = ( sm->p)+1;{
4336
4343
  ( sm->p)--;
4337
4344
  { sm->cs = ( ((int *)sm->stack->data))[--( sm->top)];goto _again;}
4338
4345
  }}
4339
4346
  goto st295;
4340
4347
  tr403:
4341
- #line 634 "ext/dtext/dtext.rl"
4348
+ #line 637 "ext/dtext/dtext.rl"
4342
4349
  {( sm->te) = ( sm->p);( sm->p)--;{
4343
4350
  append_c_html_escaped(sm, (*( sm->p)));
4344
4351
  }}
@@ -4351,7 +4358,7 @@ st295:
4351
4358
  case 295:
4352
4359
  #line 1 "NONE"
4353
4360
  {( sm->ts) = ( sm->p);}
4354
- #line 4355 "ext/dtext/dtext.c"
4361
+ #line 4362 "ext/dtext/dtext.c"
4355
4362
  switch( (*( sm->p)) ) {
4356
4363
  case 0: goto tr401;
4357
4364
  case 91: goto tr402;
@@ -4365,7 +4372,7 @@ st296:
4365
4372
  if ( ++( sm->p) == ( sm->pe) )
4366
4373
  goto _test_eof296;
4367
4374
  case 296:
4368
- #line 4369 "ext/dtext/dtext.c"
4375
+ #line 4376 "ext/dtext/dtext.c"
4369
4376
  if ( (*( sm->p)) == 47 )
4370
4377
  goto st203;
4371
4378
  goto tr403;
@@ -4405,13 +4412,13 @@ case 207:
4405
4412
  goto tr241;
4406
4413
  goto tr236;
4407
4414
  tr242:
4408
- #line 658 "ext/dtext/dtext.rl"
4415
+ #line 661 "ext/dtext/dtext.rl"
4409
4416
  {{( sm->p) = ((( sm->te)))-1;}{
4410
4417
  append_c_html_escaped(sm, (*( sm->p)));
4411
4418
  }}
4412
4419
  goto st297;
4413
4420
  tr250:
4414
- #line 640 "ext/dtext/dtext.rl"
4421
+ #line 643 "ext/dtext/dtext.rl"
4415
4422
  {( sm->te) = ( sm->p)+1;{
4416
4423
  if (dstack_check(sm, BLOCK_NODTEXT)) {
4417
4424
  dstack_pop(sm);
@@ -4426,20 +4433,20 @@ tr250:
4426
4433
  }}
4427
4434
  goto st297;
4428
4435
  tr405:
4429
- #line 658 "ext/dtext/dtext.rl"
4436
+ #line 661 "ext/dtext/dtext.rl"
4430
4437
  {( sm->te) = ( sm->p)+1;{
4431
4438
  append_c_html_escaped(sm, (*( sm->p)));
4432
4439
  }}
4433
4440
  goto st297;
4434
4441
  tr406:
4435
- #line 653 "ext/dtext/dtext.rl"
4442
+ #line 656 "ext/dtext/dtext.rl"
4436
4443
  {( sm->te) = ( sm->p)+1;{
4437
4444
  ( sm->p)--;
4438
4445
  { sm->cs = ( ((int *)sm->stack->data))[--( sm->top)];goto _again;}
4439
4446
  }}
4440
4447
  goto st297;
4441
4448
  tr408:
4442
- #line 658 "ext/dtext/dtext.rl"
4449
+ #line 661 "ext/dtext/dtext.rl"
4443
4450
  {( sm->te) = ( sm->p);( sm->p)--;{
4444
4451
  append_c_html_escaped(sm, (*( sm->p)));
4445
4452
  }}
@@ -4452,7 +4459,7 @@ st297:
4452
4459
  case 297:
4453
4460
  #line 1 "NONE"
4454
4461
  {( sm->ts) = ( sm->p);}
4455
- #line 4456 "ext/dtext/dtext.c"
4462
+ #line 4463 "ext/dtext/dtext.c"
4456
4463
  switch( (*( sm->p)) ) {
4457
4464
  case 0: goto tr406;
4458
4465
  case 91: goto tr407;
@@ -4466,7 +4473,7 @@ st298:
4466
4473
  if ( ++( sm->p) == ( sm->pe) )
4467
4474
  goto _test_eof298;
4468
4475
  case 298:
4469
- #line 4470 "ext/dtext/dtext.c"
4476
+ #line 4477 "ext/dtext/dtext.c"
4470
4477
  if ( (*( sm->p)) == 47 )
4471
4478
  goto st208;
4472
4479
  goto tr408;
@@ -4527,11 +4534,11 @@ case 215:
4527
4534
  goto tr250;
4528
4535
  goto tr242;
4529
4536
  tr251:
4530
- #line 733 "ext/dtext/dtext.rl"
4537
+ #line 736 "ext/dtext/dtext.rl"
4531
4538
  {{( sm->p) = ((( sm->te)))-1;}}
4532
4539
  goto st299;
4533
4540
  tr260:
4534
- #line 718 "ext/dtext/dtext.rl"
4541
+ #line 721 "ext/dtext/dtext.rl"
4535
4542
  {( sm->te) = ( sm->p)+1;{
4536
4543
  if (dstack_check(sm, BLOCK_TABLE)) {
4537
4544
  dstack_pop(sm);
@@ -4543,7 +4550,7 @@ tr260:
4543
4550
  }}
4544
4551
  goto st299;
4545
4552
  tr264:
4546
- #line 683 "ext/dtext/dtext.rl"
4553
+ #line 686 "ext/dtext/dtext.rl"
4547
4554
  {( sm->te) = ( sm->p)+1;{
4548
4555
  if (dstack_check(sm, BLOCK_TBODY)) {
4549
4556
  dstack_pop(sm);
@@ -4554,7 +4561,7 @@ tr264:
4554
4561
  }}
4555
4562
  goto st299;
4556
4563
  tr268:
4557
- #line 669 "ext/dtext/dtext.rl"
4564
+ #line 672 "ext/dtext/dtext.rl"
4558
4565
  {( sm->te) = ( sm->p)+1;{
4559
4566
  if (dstack_check(sm, BLOCK_THEAD)) {
4560
4567
  dstack_pop(sm);
@@ -4565,7 +4572,7 @@ tr268:
4565
4572
  }}
4566
4573
  goto st299;
4567
4574
  tr269:
4568
- #line 703 "ext/dtext/dtext.rl"
4575
+ #line 706 "ext/dtext/dtext.rl"
4569
4576
  {( sm->te) = ( sm->p)+1;{
4570
4577
  if (dstack_check(sm, BLOCK_TR)) {
4571
4578
  dstack_pop(sm);
@@ -4576,14 +4583,14 @@ tr269:
4576
4583
  }}
4577
4584
  goto st299;
4578
4585
  tr277:
4579
- #line 678 "ext/dtext/dtext.rl"
4586
+ #line 681 "ext/dtext/dtext.rl"
4580
4587
  {( sm->te) = ( sm->p)+1;{
4581
4588
  dstack_push(sm, &BLOCK_TBODY);
4582
4589
  append_block(sm, "<tbody>");
4583
4590
  }}
4584
4591
  goto st299;
4585
4592
  tr278:
4586
- #line 712 "ext/dtext/dtext.rl"
4593
+ #line 715 "ext/dtext/dtext.rl"
4587
4594
  {( sm->te) = ( sm->p)+1;{
4588
4595
  dstack_push(sm, &BLOCK_TD);
4589
4596
  append_block(sm, "<td>");
@@ -4602,7 +4609,7 @@ tr278:
4602
4609
  }}
4603
4610
  goto st299;
4604
4611
  tr279:
4605
- #line 692 "ext/dtext/dtext.rl"
4612
+ #line 695 "ext/dtext/dtext.rl"
4606
4613
  {( sm->te) = ( sm->p)+1;{
4607
4614
  dstack_push(sm, &BLOCK_TH);
4608
4615
  append_block(sm, "<th>");
@@ -4621,32 +4628,32 @@ tr279:
4621
4628
  }}
4622
4629
  goto st299;
4623
4630
  tr283:
4624
- #line 664 "ext/dtext/dtext.rl"
4631
+ #line 667 "ext/dtext/dtext.rl"
4625
4632
  {( sm->te) = ( sm->p)+1;{
4626
4633
  dstack_push(sm, &BLOCK_THEAD);
4627
4634
  append_block(sm, "<thead>");
4628
4635
  }}
4629
4636
  goto st299;
4630
4637
  tr284:
4631
- #line 698 "ext/dtext/dtext.rl"
4638
+ #line 701 "ext/dtext/dtext.rl"
4632
4639
  {( sm->te) = ( sm->p)+1;{
4633
4640
  dstack_push(sm, &BLOCK_TR);
4634
4641
  append_block(sm, "<tr>");
4635
4642
  }}
4636
4643
  goto st299;
4637
4644
  tr410:
4638
- #line 733 "ext/dtext/dtext.rl"
4645
+ #line 736 "ext/dtext/dtext.rl"
4639
4646
  {( sm->te) = ( sm->p)+1;}
4640
4647
  goto st299;
4641
4648
  tr411:
4642
- #line 728 "ext/dtext/dtext.rl"
4649
+ #line 731 "ext/dtext/dtext.rl"
4643
4650
  {( sm->te) = ( sm->p)+1;{
4644
4651
  ( sm->p)--;
4645
4652
  { sm->cs = ( ((int *)sm->stack->data))[--( sm->top)];goto _again;}
4646
4653
  }}
4647
4654
  goto st299;
4648
4655
  tr413:
4649
- #line 733 "ext/dtext/dtext.rl"
4656
+ #line 736 "ext/dtext/dtext.rl"
4650
4657
  {( sm->te) = ( sm->p);( sm->p)--;}
4651
4658
  goto st299;
4652
4659
  st299:
@@ -4657,7 +4664,7 @@ st299:
4657
4664
  case 299:
4658
4665
  #line 1 "NONE"
4659
4666
  {( sm->ts) = ( sm->p);}
4660
- #line 4661 "ext/dtext/dtext.c"
4667
+ #line 4668 "ext/dtext/dtext.c"
4661
4668
  switch( (*( sm->p)) ) {
4662
4669
  case 0: goto tr411;
4663
4670
  case 91: goto tr412;
@@ -4671,7 +4678,7 @@ st300:
4671
4678
  if ( ++( sm->p) == ( sm->pe) )
4672
4679
  goto _test_eof300;
4673
4680
  case 300:
4674
- #line 4675 "ext/dtext/dtext.c"
4681
+ #line 4682 "ext/dtext/dtext.c"
4675
4682
  switch( (*( sm->p)) ) {
4676
4683
  case 47: goto st216;
4677
4684
  case 116: goto st231;
@@ -4886,7 +4893,7 @@ tr285:
4886
4893
  }
4887
4894
  goto st301;
4888
4895
  tr287:
4889
- #line 784 "ext/dtext/dtext.rl"
4896
+ #line 787 "ext/dtext/dtext.rl"
4890
4897
  {{( sm->p) = ((( sm->te)))-1;}{
4891
4898
  dstack_rewind(sm);
4892
4899
  ( sm->p)--;
@@ -4894,7 +4901,7 @@ tr287:
4894
4901
  }}
4895
4902
  goto st301;
4896
4903
  tr416:
4897
- #line 784 "ext/dtext/dtext.rl"
4904
+ #line 787 "ext/dtext/dtext.rl"
4898
4905
  {( sm->te) = ( sm->p)+1;{
4899
4906
  dstack_rewind(sm);
4900
4907
  ( sm->p)--;
@@ -4902,7 +4909,7 @@ tr416:
4902
4909
  }}
4903
4910
  goto st301;
4904
4911
  tr417:
4905
- #line 776 "ext/dtext/dtext.rl"
4912
+ #line 779 "ext/dtext/dtext.rl"
4906
4913
  {( sm->te) = ( sm->p)+1;{
4907
4914
  dstack_close_list(sm);
4908
4915
  {( sm->p) = (( sm->ts))-1;}
@@ -4910,7 +4917,7 @@ tr417:
4910
4917
  }}
4911
4918
  goto st301;
4912
4919
  tr422:
4913
- #line 784 "ext/dtext/dtext.rl"
4920
+ #line 787 "ext/dtext/dtext.rl"
4914
4921
  {( sm->te) = ( sm->p);( sm->p)--;{
4915
4922
  dstack_rewind(sm);
4916
4923
  ( sm->p)--;
@@ -4918,11 +4925,11 @@ tr422:
4918
4925
  }}
4919
4926
  goto st301;
4920
4927
  tr423:
4921
- #line 107 "ext/dtext/dtext.rl"
4928
+ #line 108 "ext/dtext/dtext.rl"
4922
4929
  {
4923
4930
  sm->b2 = sm->p;
4924
4931
  }
4925
- #line 737 "ext/dtext/dtext.rl"
4932
+ #line 740 "ext/dtext/dtext.rl"
4926
4933
  {( sm->te) = ( sm->p);( sm->p)--;{
4927
4934
  int prev_nest = sm->list_nest;
4928
4935
  append_closing_p_if(sm);
@@ -4980,7 +4987,7 @@ st301:
4980
4987
  case 301:
4981
4988
  #line 1 "NONE"
4982
4989
  {( sm->ts) = ( sm->p);}
4983
- #line 4984 "ext/dtext/dtext.c"
4990
+ #line 4991 "ext/dtext/dtext.c"
4984
4991
  switch( (*( sm->p)) ) {
4985
4992
  case 0: goto tr417;
4986
4993
  case 10: goto tr418;
@@ -4991,20 +4998,20 @@ case 301:
4991
4998
  tr286:
4992
4999
  #line 1 "NONE"
4993
5000
  {( sm->te) = ( sm->p)+1;}
4994
- #line 776 "ext/dtext/dtext.rl"
5001
+ #line 779 "ext/dtext/dtext.rl"
4995
5002
  {( sm->act) = 64;}
4996
5003
  goto st302;
4997
5004
  tr418:
4998
5005
  #line 1 "NONE"
4999
5006
  {( sm->te) = ( sm->p)+1;}
5000
- #line 782 "ext/dtext/dtext.rl"
5007
+ #line 785 "ext/dtext/dtext.rl"
5001
5008
  {( sm->act) = 65;}
5002
5009
  goto st302;
5003
5010
  st302:
5004
5011
  if ( ++( sm->p) == ( sm->pe) )
5005
5012
  goto _test_eof302;
5006
5013
  case 302:
5007
- #line 5008 "ext/dtext/dtext.c"
5014
+ #line 5015 "ext/dtext/dtext.c"
5008
5015
  switch( (*( sm->p)) ) {
5009
5016
  case 10: goto tr286;
5010
5017
  case 13: goto st242;
@@ -5027,7 +5034,7 @@ case 303:
5027
5034
  tr420:
5028
5035
  #line 1 "NONE"
5029
5036
  {( sm->te) = ( sm->p)+1;}
5030
- #line 95 "ext/dtext/dtext.rl"
5037
+ #line 96 "ext/dtext/dtext.rl"
5031
5038
  {
5032
5039
  sm->a1 = sm->p;
5033
5040
  }
@@ -5036,7 +5043,7 @@ st304:
5036
5043
  if ( ++( sm->p) == ( sm->pe) )
5037
5044
  goto _test_eof304;
5038
5045
  case 304:
5039
- #line 5040 "ext/dtext/dtext.c"
5046
+ #line 5047 "ext/dtext/dtext.c"
5040
5047
  switch( (*( sm->p)) ) {
5041
5048
  case 9: goto tr290;
5042
5049
  case 32: goto tr290;
@@ -5044,7 +5051,7 @@ case 304:
5044
5051
  }
5045
5052
  goto tr422;
5046
5053
  tr290:
5047
- #line 99 "ext/dtext/dtext.rl"
5054
+ #line 100 "ext/dtext/dtext.rl"
5048
5055
  {
5049
5056
  sm->a2 = sm->p;
5050
5057
  }
@@ -5053,7 +5060,7 @@ st243:
5053
5060
  if ( ++( sm->p) == ( sm->pe) )
5054
5061
  goto _test_eof243;
5055
5062
  case 243:
5056
- #line 5057 "ext/dtext/dtext.c"
5063
+ #line 5064 "ext/dtext/dtext.c"
5057
5064
  switch( (*( sm->p)) ) {
5058
5065
  case 0: goto tr287;
5059
5066
  case 9: goto tr289;
@@ -5063,7 +5070,7 @@ case 243:
5063
5070
  }
5064
5071
  goto tr288;
5065
5072
  tr288:
5066
- #line 103 "ext/dtext/dtext.rl"
5073
+ #line 104 "ext/dtext/dtext.rl"
5067
5074
  {
5068
5075
  sm->b1 = sm->p;
5069
5076
  }
@@ -5072,7 +5079,7 @@ st305:
5072
5079
  if ( ++( sm->p) == ( sm->pe) )
5073
5080
  goto _test_eof305;
5074
5081
  case 305:
5075
- #line 5076 "ext/dtext/dtext.c"
5082
+ #line 5083 "ext/dtext/dtext.c"
5076
5083
  switch( (*( sm->p)) ) {
5077
5084
  case 0: goto tr423;
5078
5085
  case 10: goto tr423;
@@ -5080,7 +5087,7 @@ case 305:
5080
5087
  }
5081
5088
  goto st305;
5082
5089
  tr289:
5083
- #line 103 "ext/dtext/dtext.rl"
5090
+ #line 104 "ext/dtext/dtext.rl"
5084
5091
  {
5085
5092
  sm->b1 = sm->p;
5086
5093
  }
@@ -5089,7 +5096,7 @@ st306:
5089
5096
  if ( ++( sm->p) == ( sm->pe) )
5090
5097
  goto _test_eof306;
5091
5098
  case 306:
5092
- #line 5093 "ext/dtext/dtext.c"
5099
+ #line 5100 "ext/dtext/dtext.c"
5093
5100
  switch( (*( sm->p)) ) {
5094
5101
  case 0: goto tr423;
5095
5102
  case 9: goto tr289;
@@ -5727,11 +5734,12 @@ case 244:
5727
5734
 
5728
5735
  }
5729
5736
 
5730
- #line 1315 "ext/dtext/dtext.rl"
5737
+ #line 1324 "ext/dtext/dtext.rl"
5731
5738
 
5732
5739
  dstack_close(sm);
5733
5740
 
5734
- ret = rb_str_new(sm->output->str, sm->output->len);
5741
+ encoding = rb_enc_find("utf-8");
5742
+ ret = rb_enc_str_new(sm->output->str, sm->output->len, encoding);
5735
5743
 
5736
5744
  free_machine(sm);
5737
5745