dtext_rb 1.0.9 → 1.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/dtext_rb.gemspec +3 -3
- data/ext/dtext/dtext.c +196 -178
- data/ext/dtext/dtext.rl +34 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c80794b326722789beedec3ed0705c3842d6301b
|
4
|
+
data.tar.gz: 6262ab8ed168b9eb1025a6ceb507e5fb91c8863b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5f380a5f0c327a0681eedcb5038dc92da1896c4f019cc142029ad9ea233789e5f962906af15ae11fdd463c0f24d90bf44ef983ebb63b9aa3b63d6b5c4237c92
|
7
|
+
data.tar.gz: 71160a7eb9cc7a363463589e9fa7142fd3921617ac78079e7cbaaef882bbc69939c2834faba0fcd7ae5461495fa86c0d117dc950b8985780f8d43c6735809712
|
data/Rakefile
CHANGED
@@ -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=
|
72
|
+
ruby "-Ilib", '-rdtext', "test/dtext_test.rb" #, '--name=test_old_style_links_with_inline_tags'
|
73
73
|
end
|
74
74
|
|
75
75
|
task default: :test
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.10
|
data/dtext_rb.gemspec
CHANGED
@@ -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.
|
5
|
+
# stub: dtext_rb 1.0.10 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.
|
10
|
+
s.version = "1.0.10"
|
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-
|
15
|
+
s.date = "2016-09-02"
|
16
16
|
s.description = "Compield DText parser"
|
17
17
|
s.email = "r888888888@gmail.com"
|
18
18
|
s.extensions = ["ext/dtext/extconf.rb"]
|
data/ext/dtext/dtext.c
CHANGED
@@ -36,6 +36,7 @@ typedef struct StateMachine {
|
|
36
36
|
int list_nest;
|
37
37
|
int d;
|
38
38
|
int b;
|
39
|
+
int quote;
|
39
40
|
} StateMachine;
|
40
41
|
|
41
42
|
static const size_t MAX_STACK_DEPTH = 512;
|
@@ -70,11 +71,11 @@ static const int BLOCK_H5 = 27;
|
|
70
71
|
static const int BLOCK_H6 = 28;
|
71
72
|
|
72
73
|
|
73
|
-
#line
|
74
|
+
#line 970 "ext/dtext/dtext.rl"
|
74
75
|
|
75
76
|
|
76
77
|
|
77
|
-
#line
|
78
|
+
#line 79 "ext/dtext/dtext.c"
|
78
79
|
static const unsigned char _dtext_to_state_actions[] = {
|
79
80
|
0, 0, 0, 0, 0, 0, 0, 0,
|
80
81
|
0, 0, 0, 0, 0, 0, 0, 0,
|
@@ -171,7 +172,7 @@ static const int dtext_en_list = 302;
|
|
171
172
|
static const int dtext_en_main = 245;
|
172
173
|
|
173
174
|
|
174
|
-
#line
|
175
|
+
#line 973 "ext/dtext/dtext.rl"
|
175
176
|
|
176
177
|
static inline void underscore_string(char * str, size_t len) {
|
177
178
|
for (size_t i=0; i<len; ++i) {
|
@@ -278,7 +279,7 @@ static inline void append_segment_html_escaped(StateMachine * sm, const char * a
|
|
278
279
|
|
279
280
|
static inline void append_block(StateMachine * sm, const char * s) {
|
280
281
|
if (sm->f_inline) {
|
281
|
-
sm->output = g_string_append_c(sm->output, ' ');
|
282
|
+
// sm->output = g_string_append_c(sm->output, ' ');
|
282
283
|
} else if (sm->f_strip) {
|
283
284
|
// do nothing
|
284
285
|
} else {
|
@@ -450,18 +451,18 @@ static bool print_machine(StateMachine * sm) {
|
|
450
451
|
return true;
|
451
452
|
}
|
452
453
|
|
453
|
-
static void init_machine(StateMachine * sm,
|
454
|
+
static void init_machine(StateMachine * sm, const char * src, size_t len) {
|
454
455
|
size_t output_length = 0;
|
455
|
-
sm->p =
|
456
|
+
sm->p = src;
|
456
457
|
sm->pb = sm->p;
|
457
|
-
sm->pe = sm->p +
|
458
|
+
sm->pe = sm->p + len;
|
458
459
|
sm->eof = sm->pe;
|
459
460
|
sm->ts = NULL;
|
460
461
|
sm->te = NULL;
|
461
462
|
sm->cs = 0;
|
462
463
|
sm->act = 0;
|
463
464
|
sm->top = 0;
|
464
|
-
output_length =
|
465
|
+
output_length = len;
|
465
466
|
if (output_length < (INT16_MAX / 2)) {
|
466
467
|
output_length *= 2;
|
467
468
|
}
|
@@ -479,6 +480,7 @@ static void init_machine(StateMachine * sm, VALUE input) {
|
|
479
480
|
sm->header_mode = false;
|
480
481
|
sm->d = 0;
|
481
482
|
sm->b = 0;
|
483
|
+
sm->quote = 0;
|
482
484
|
}
|
483
485
|
|
484
486
|
static void free_machine(StateMachine * sm) {
|
@@ -488,52 +490,17 @@ static void free_machine(StateMachine * sm) {
|
|
488
490
|
g_free(sm);
|
489
491
|
}
|
490
492
|
|
491
|
-
static
|
492
|
-
VALUE input;
|
493
|
-
VALUE input0;
|
494
|
-
VALUE options;
|
495
|
-
VALUE opt_inline;
|
496
|
-
VALUE opt_strip;
|
497
|
-
VALUE ret;
|
498
|
-
rb_encoding * encoding = NULL;
|
493
|
+
static StateMachine * parse_helper(const char * src, size_t len, bool f_strip, bool f_inline) {
|
499
494
|
StateMachine * sm = NULL;
|
495
|
+
StateMachine * link_content_sm = NULL;
|
500
496
|
|
501
|
-
g_debug("start\n");
|
502
|
-
|
503
|
-
if (argc == 0) {
|
504
|
-
rb_raise(rb_eArgError, "wrong number of arguments (0 for 1)");
|
505
|
-
}
|
506
|
-
|
507
|
-
input = argv[0];
|
508
|
-
|
509
|
-
if (NIL_P(input)) {
|
510
|
-
return Qnil;
|
511
|
-
}
|
512
|
-
|
513
|
-
input0 = rb_str_dup(input);
|
514
|
-
|
515
497
|
sm = (StateMachine *)g_malloc0(sizeof(StateMachine));
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
if (argc > 1) {
|
520
|
-
options = argv[1];
|
521
|
-
|
522
|
-
if (!NIL_P(options)) {
|
523
|
-
opt_strip = rb_hash_aref(options, ID2SYM(rb_intern("strip")));
|
524
|
-
if (RTEST(opt_strip)) {
|
525
|
-
sm->f_strip = true;
|
526
|
-
}
|
527
|
-
|
528
|
-
opt_inline = rb_hash_aref(options, ID2SYM(rb_intern("inline")));
|
529
|
-
if (RTEST(opt_inline)) {
|
530
|
-
sm->f_inline = true;
|
531
|
-
}
|
532
|
-
}
|
533
|
-
}
|
498
|
+
init_machine(sm, src, len);
|
499
|
+
sm->f_strip = f_strip;
|
500
|
+
sm->f_inline = f_inline;
|
534
501
|
|
535
502
|
|
536
|
-
#line
|
503
|
+
#line 504 "ext/dtext/dtext.c"
|
537
504
|
{
|
538
505
|
sm->cs = dtext_start;
|
539
506
|
( sm->top) = 0;
|
@@ -542,9 +509,9 @@ static VALUE parse(int argc, VALUE * argv, VALUE self) {
|
|
542
509
|
( sm->act) = 0;
|
543
510
|
}
|
544
511
|
|
545
|
-
#line
|
512
|
+
#line 1300 "ext/dtext/dtext.rl"
|
546
513
|
|
547
|
-
#line
|
514
|
+
#line 515 "ext/dtext/dtext.c"
|
548
515
|
{
|
549
516
|
if ( ( sm->p) == ( sm->pe) )
|
550
517
|
goto _test_eof;
|
@@ -554,7 +521,7 @@ _resume:
|
|
554
521
|
#line 1 "NONE"
|
555
522
|
{( sm->ts) = ( sm->p);}
|
556
523
|
break;
|
557
|
-
#line
|
524
|
+
#line 525 "ext/dtext/dtext.c"
|
558
525
|
}
|
559
526
|
|
560
527
|
switch ( sm->cs ) {
|
@@ -2711,25 +2678,25 @@ case 244:
|
|
2711
2678
|
tr289: sm->cs = 307; goto f3;
|
2712
2679
|
|
2713
2680
|
f6:
|
2714
|
-
#line
|
2681
|
+
#line 97 "ext/dtext/dtext.rl"
|
2715
2682
|
{
|
2716
2683
|
sm->a1 = sm->p;
|
2717
2684
|
}
|
2718
2685
|
goto _again;
|
2719
2686
|
f4:
|
2720
|
-
#line
|
2687
|
+
#line 101 "ext/dtext/dtext.rl"
|
2721
2688
|
{
|
2722
2689
|
sm->a2 = sm->p;
|
2723
2690
|
}
|
2724
2691
|
goto _again;
|
2725
2692
|
f3:
|
2726
|
-
#line
|
2693
|
+
#line 105 "ext/dtext/dtext.rl"
|
2727
2694
|
{
|
2728
2695
|
sm->b1 = sm->p;
|
2729
2696
|
}
|
2730
2697
|
goto _again;
|
2731
2698
|
f36:
|
2732
|
-
#line
|
2699
|
+
#line 109 "ext/dtext/dtext.rl"
|
2733
2700
|
{
|
2734
2701
|
sm->b2 = sm->p;
|
2735
2702
|
}
|
@@ -2739,7 +2706,7 @@ f61:
|
|
2739
2706
|
{( sm->te) = ( sm->p)+1;}
|
2740
2707
|
goto _again;
|
2741
2708
|
f38:
|
2742
|
-
#line
|
2709
|
+
#line 260 "ext/dtext/dtext.rl"
|
2743
2710
|
{( sm->te) = ( sm->p)+1;{
|
2744
2711
|
append(sm, true, "<a rel=\"nofollow\" href=\"/posts?tags=");
|
2745
2712
|
append_segment_uri_escaped(sm, sm->a1, sm->a2 - 1);
|
@@ -2749,7 +2716,7 @@ f38:
|
|
2749
2716
|
}}
|
2750
2717
|
goto _again;
|
2751
2718
|
f35:
|
2752
|
-
#line
|
2719
|
+
#line 268 "ext/dtext/dtext.rl"
|
2753
2720
|
{( sm->te) = ( sm->p)+1;{
|
2754
2721
|
GString * segment = g_string_new_len(sm->a1, sm->a2 - sm->a1);
|
2755
2722
|
GString * lowercase_segment = NULL;
|
@@ -2772,7 +2739,7 @@ f35:
|
|
2772
2739
|
}}
|
2773
2740
|
goto _again;
|
2774
2741
|
f37:
|
2775
|
-
#line
|
2742
|
+
#line 289 "ext/dtext/dtext.rl"
|
2776
2743
|
{( sm->te) = ( sm->p)+1;{
|
2777
2744
|
GString * segment = g_string_new_len(sm->a1, sm->a2 - sm->a1);
|
2778
2745
|
GString * lowercase_segment = NULL;
|
@@ -2795,14 +2762,14 @@ f37:
|
|
2795
2762
|
}}
|
2796
2763
|
goto _again;
|
2797
2764
|
f26:
|
2798
|
-
#line
|
2765
|
+
#line 406 "ext/dtext/dtext.rl"
|
2799
2766
|
{( sm->te) = ( sm->p)+1;{
|
2800
2767
|
dstack_push(sm, &INLINE_B);
|
2801
2768
|
append(sm, true, "<strong>");
|
2802
2769
|
}}
|
2803
2770
|
goto _again;
|
2804
2771
|
f17:
|
2805
|
-
#line
|
2772
|
+
#line 411 "ext/dtext/dtext.rl"
|
2806
2773
|
{( sm->te) = ( sm->p)+1;{
|
2807
2774
|
if (dstack_check(sm, INLINE_B)) {
|
2808
2775
|
dstack_pop(sm);
|
@@ -2813,14 +2780,14 @@ f17:
|
|
2813
2780
|
}}
|
2814
2781
|
goto _again;
|
2815
2782
|
f28:
|
2816
|
-
#line
|
2783
|
+
#line 420 "ext/dtext/dtext.rl"
|
2817
2784
|
{( sm->te) = ( sm->p)+1;{
|
2818
2785
|
dstack_push(sm, &INLINE_I);
|
2819
2786
|
append(sm, true, "<em>");
|
2820
2787
|
}}
|
2821
2788
|
goto _again;
|
2822
2789
|
f19:
|
2823
|
-
#line
|
2790
|
+
#line 425 "ext/dtext/dtext.rl"
|
2824
2791
|
{( sm->te) = ( sm->p)+1;{
|
2825
2792
|
if (dstack_check(sm, INLINE_I)) {
|
2826
2793
|
dstack_pop(sm);
|
@@ -2831,14 +2798,14 @@ f19:
|
|
2831
2798
|
}}
|
2832
2799
|
goto _again;
|
2833
2800
|
f31:
|
2834
|
-
#line
|
2801
|
+
#line 434 "ext/dtext/dtext.rl"
|
2835
2802
|
{( sm->te) = ( sm->p)+1;{
|
2836
2803
|
dstack_push(sm, &INLINE_S);
|
2837
2804
|
append(sm, true, "<s>");
|
2838
2805
|
}}
|
2839
2806
|
goto _again;
|
2840
2807
|
f20:
|
2841
|
-
#line
|
2808
|
+
#line 439 "ext/dtext/dtext.rl"
|
2842
2809
|
{( sm->te) = ( sm->p)+1;{
|
2843
2810
|
if (dstack_check(sm, INLINE_S)) {
|
2844
2811
|
dstack_pop(sm);
|
@@ -2849,14 +2816,14 @@ f20:
|
|
2849
2816
|
}}
|
2850
2817
|
goto _again;
|
2851
2818
|
f34:
|
2852
|
-
#line
|
2819
|
+
#line 448 "ext/dtext/dtext.rl"
|
2853
2820
|
{( sm->te) = ( sm->p)+1;{
|
2854
2821
|
dstack_push(sm, &INLINE_U);
|
2855
2822
|
append(sm, true, "<u>");
|
2856
2823
|
}}
|
2857
2824
|
goto _again;
|
2858
2825
|
f25:
|
2859
|
-
#line
|
2826
|
+
#line 453 "ext/dtext/dtext.rl"
|
2860
2827
|
{( sm->te) = ( sm->p)+1;{
|
2861
2828
|
if (dstack_check(sm, INLINE_U)) {
|
2862
2829
|
dstack_pop(sm);
|
@@ -2867,14 +2834,14 @@ f25:
|
|
2867
2834
|
}}
|
2868
2835
|
goto _again;
|
2869
2836
|
f33:
|
2870
|
-
#line
|
2837
|
+
#line 462 "ext/dtext/dtext.rl"
|
2871
2838
|
{( sm->te) = ( sm->p)+1;{
|
2872
2839
|
dstack_push(sm, &INLINE_TN);
|
2873
2840
|
append(sm, true, "<span class=\"tn\">");
|
2874
2841
|
}}
|
2875
2842
|
goto _again;
|
2876
2843
|
f24:
|
2877
|
-
#line
|
2844
|
+
#line 467 "ext/dtext/dtext.rl"
|
2878
2845
|
{( sm->te) = ( sm->p)+1;{
|
2879
2846
|
dstack_close_before_block(sm);
|
2880
2847
|
|
@@ -2890,7 +2857,7 @@ f24:
|
|
2890
2857
|
}}
|
2891
2858
|
goto _again;
|
2892
2859
|
f30:
|
2893
|
-
#line
|
2860
|
+
#line 489 "ext/dtext/dtext.rl"
|
2894
2861
|
{( sm->te) = ( sm->p)+1;{
|
2895
2862
|
g_debug("inline [quote]");
|
2896
2863
|
dstack_close_before_block(sm);
|
@@ -2899,7 +2866,7 @@ f30:
|
|
2899
2866
|
}}
|
2900
2867
|
goto _again;
|
2901
2868
|
f32:
|
2902
|
-
#line
|
2869
|
+
#line 512 "ext/dtext/dtext.rl"
|
2903
2870
|
{( sm->te) = ( sm->p)+1;{
|
2904
2871
|
g_debug("inline [spoiler]");
|
2905
2872
|
g_debug(" push <span>");
|
@@ -2908,7 +2875,7 @@ f32:
|
|
2908
2875
|
}}
|
2909
2876
|
goto _again;
|
2910
2877
|
f21:
|
2911
|
-
#line
|
2878
|
+
#line 519 "ext/dtext/dtext.rl"
|
2912
2879
|
{( sm->te) = ( sm->p)+1;{
|
2913
2880
|
g_debug("inline [/spoiler]");
|
2914
2881
|
dstack_close_before_block(sm);
|
@@ -2931,7 +2898,7 @@ f21:
|
|
2931
2898
|
}}
|
2932
2899
|
goto _again;
|
2933
2900
|
f27:
|
2934
|
-
#line
|
2901
|
+
#line 540 "ext/dtext/dtext.rl"
|
2935
2902
|
{( sm->te) = ( sm->p)+1;{
|
2936
2903
|
g_debug("inline [expand]");
|
2937
2904
|
dstack_rewind(sm);
|
@@ -2940,7 +2907,7 @@ f27:
|
|
2940
2907
|
}}
|
2941
2908
|
goto _again;
|
2942
2909
|
f18:
|
2943
|
-
#line
|
2910
|
+
#line 547 "ext/dtext/dtext.rl"
|
2944
2911
|
{( sm->te) = ( sm->p)+1;{
|
2945
2912
|
dstack_close_before_block(sm);
|
2946
2913
|
|
@@ -2954,7 +2921,7 @@ f18:
|
|
2954
2921
|
}}
|
2955
2922
|
goto _again;
|
2956
2923
|
f29:
|
2957
|
-
#line
|
2924
|
+
#line 559 "ext/dtext/dtext.rl"
|
2958
2925
|
{( sm->te) = ( sm->p)+1;{
|
2959
2926
|
dstack_push(sm, &INLINE_NODTEXT);
|
2960
2927
|
{
|
@@ -2972,7 +2939,7 @@ f29:
|
|
2972
2939
|
}}
|
2973
2940
|
goto _again;
|
2974
2941
|
f23:
|
2975
|
-
#line
|
2942
|
+
#line 564 "ext/dtext/dtext.rl"
|
2976
2943
|
{( sm->te) = ( sm->p)+1;{
|
2977
2944
|
if (dstack_check(sm, BLOCK_TH)) {
|
2978
2945
|
dstack_pop(sm);
|
@@ -2984,7 +2951,7 @@ f23:
|
|
2984
2951
|
}}
|
2985
2952
|
goto _again;
|
2986
2953
|
f22:
|
2987
|
-
#line
|
2954
|
+
#line 574 "ext/dtext/dtext.rl"
|
2988
2955
|
{( sm->te) = ( sm->p)+1;{
|
2989
2956
|
if (dstack_check(sm, BLOCK_TD)) {
|
2990
2957
|
dstack_pop(sm);
|
@@ -2996,7 +2963,7 @@ f22:
|
|
2996
2963
|
}}
|
2997
2964
|
goto _again;
|
2998
2965
|
f72:
|
2999
|
-
#line
|
2966
|
+
#line 584 "ext/dtext/dtext.rl"
|
3000
2967
|
{( sm->te) = ( sm->p)+1;{
|
3001
2968
|
g_debug("inline 0");
|
3002
2969
|
g_debug(" return");
|
@@ -3006,14 +2973,14 @@ f72:
|
|
3006
2973
|
}}
|
3007
2974
|
goto _again;
|
3008
2975
|
f71:
|
3009
|
-
#line
|
2976
|
+
#line 620 "ext/dtext/dtext.rl"
|
3010
2977
|
{( sm->te) = ( sm->p)+1;{
|
3011
2978
|
g_debug("inline char: %c", (*( sm->p)));
|
3012
2979
|
append_c_html_escaped(sm, (*( sm->p)));
|
3013
2980
|
}}
|
3014
2981
|
goto _again;
|
3015
2982
|
f97:
|
3016
|
-
#line
|
2983
|
+
#line 341 "ext/dtext/dtext.rl"
|
3017
2984
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3018
2985
|
if (is_boundary_c((*( sm->p)))) {
|
3019
2986
|
sm->b = true;
|
@@ -3035,7 +3002,7 @@ f97:
|
|
3035
3002
|
}}
|
3036
3003
|
goto _again;
|
3037
3004
|
f87:
|
3038
|
-
#line
|
3005
|
+
#line 483 "ext/dtext/dtext.rl"
|
3039
3006
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3040
3007
|
dstack_rewind(sm);
|
3041
3008
|
{( sm->p) = (( sm->a1 - 1))-1;}
|
@@ -3043,7 +3010,7 @@ f87:
|
|
3043
3010
|
}}
|
3044
3011
|
goto _again;
|
3045
3012
|
f96:
|
3046
|
-
#line
|
3013
|
+
#line 496 "ext/dtext/dtext.rl"
|
3047
3014
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3048
3015
|
g_debug("inline [/quote]");
|
3049
3016
|
dstack_close_before_block(sm);
|
@@ -3061,7 +3028,7 @@ f96:
|
|
3061
3028
|
}}
|
3062
3029
|
goto _again;
|
3063
3030
|
f75:
|
3064
|
-
#line
|
3031
|
+
#line 592 "ext/dtext/dtext.rl"
|
3065
3032
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3066
3033
|
g_debug("inline newline2");
|
3067
3034
|
g_debug(" return");
|
@@ -3075,7 +3042,7 @@ f75:
|
|
3075
3042
|
}}
|
3076
3043
|
goto _again;
|
3077
3044
|
f74:
|
3078
|
-
#line
|
3045
|
+
#line 604 "ext/dtext/dtext.rl"
|
3079
3046
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3080
3047
|
g_debug("inline newline");
|
3081
3048
|
|
@@ -3089,20 +3056,20 @@ f74:
|
|
3089
3056
|
}}
|
3090
3057
|
goto _again;
|
3091
3058
|
f77:
|
3092
|
-
#line
|
3059
|
+
#line 616 "ext/dtext/dtext.rl"
|
3093
3060
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3094
3061
|
append_c(sm, ' ');
|
3095
3062
|
}}
|
3096
3063
|
goto _again;
|
3097
3064
|
f78:
|
3098
|
-
#line
|
3065
|
+
#line 620 "ext/dtext/dtext.rl"
|
3099
3066
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3100
3067
|
g_debug("inline char: %c", (*( sm->p)));
|
3101
3068
|
append_c_html_escaped(sm, (*( sm->p)));
|
3102
3069
|
}}
|
3103
3070
|
goto _again;
|
3104
3071
|
f16:
|
3105
|
-
#line
|
3072
|
+
#line 171 "ext/dtext/dtext.rl"
|
3106
3073
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3107
3074
|
append(sm, true, "<a href=\"/forum_topics/");
|
3108
3075
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3113,7 +3080,7 @@ f16:
|
|
3113
3080
|
}}
|
3114
3081
|
goto _again;
|
3115
3082
|
f15:
|
3116
|
-
#line
|
3083
|
+
#line 238 "ext/dtext/dtext.rl"
|
3117
3084
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3118
3085
|
append(sm, true, "<a href=\"http://www.pixiv.net/member_illust.php?mode=medium&illust_id=");
|
3119
3086
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3124,7 +3091,7 @@ f15:
|
|
3124
3091
|
}}
|
3125
3092
|
goto _again;
|
3126
3093
|
f11:
|
3127
|
-
#line
|
3094
|
+
#line 604 "ext/dtext/dtext.rl"
|
3128
3095
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3129
3096
|
g_debug("inline newline");
|
3130
3097
|
|
@@ -3138,7 +3105,7 @@ f11:
|
|
3138
3105
|
}}
|
3139
3106
|
goto _again;
|
3140
3107
|
f12:
|
3141
|
-
#line
|
3108
|
+
#line 620 "ext/dtext/dtext.rl"
|
3142
3109
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3143
3110
|
g_debug("inline char: %c", (*( sm->p)));
|
3144
3111
|
append_c_html_escaped(sm, (*( sm->p)));
|
@@ -3204,7 +3171,7 @@ f9:
|
|
3204
3171
|
}
|
3205
3172
|
goto _again;
|
3206
3173
|
f40:
|
3207
|
-
#line
|
3174
|
+
#line 627 "ext/dtext/dtext.rl"
|
3208
3175
|
{( sm->te) = ( sm->p)+1;{
|
3209
3176
|
if (dstack_check(sm, BLOCK_CODE)) {
|
3210
3177
|
dstack_rewind(sm);
|
@@ -3215,32 +3182,32 @@ f40:
|
|
3215
3182
|
}}
|
3216
3183
|
goto _again;
|
3217
3184
|
f99:
|
3218
|
-
#line
|
3185
|
+
#line 636 "ext/dtext/dtext.rl"
|
3219
3186
|
{( sm->te) = ( sm->p)+1;{
|
3220
3187
|
( sm->p)--;
|
3221
3188
|
{ sm->cs = ( ((int *)sm->stack->data))[--( sm->top)];goto _again;}
|
3222
3189
|
}}
|
3223
3190
|
goto _again;
|
3224
3191
|
f98:
|
3225
|
-
#line
|
3192
|
+
#line 641 "ext/dtext/dtext.rl"
|
3226
3193
|
{( sm->te) = ( sm->p)+1;{
|
3227
3194
|
append_c_html_escaped(sm, (*( sm->p)));
|
3228
3195
|
}}
|
3229
3196
|
goto _again;
|
3230
3197
|
f100:
|
3231
|
-
#line
|
3198
|
+
#line 641 "ext/dtext/dtext.rl"
|
3232
3199
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3233
3200
|
append_c_html_escaped(sm, (*( sm->p)));
|
3234
3201
|
}}
|
3235
3202
|
goto _again;
|
3236
3203
|
f39:
|
3237
|
-
#line
|
3204
|
+
#line 641 "ext/dtext/dtext.rl"
|
3238
3205
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3239
3206
|
append_c_html_escaped(sm, (*( sm->p)));
|
3240
3207
|
}}
|
3241
3208
|
goto _again;
|
3242
3209
|
f42:
|
3243
|
-
#line
|
3210
|
+
#line 647 "ext/dtext/dtext.rl"
|
3244
3211
|
{( sm->te) = ( sm->p)+1;{
|
3245
3212
|
if (dstack_check(sm, BLOCK_NODTEXT)) {
|
3246
3213
|
dstack_pop(sm);
|
@@ -3255,39 +3222,39 @@ f42:
|
|
3255
3222
|
}}
|
3256
3223
|
goto _again;
|
3257
3224
|
f102:
|
3258
|
-
#line
|
3225
|
+
#line 660 "ext/dtext/dtext.rl"
|
3259
3226
|
{( sm->te) = ( sm->p)+1;{
|
3260
3227
|
( sm->p)--;
|
3261
3228
|
{ sm->cs = ( ((int *)sm->stack->data))[--( sm->top)];goto _again;}
|
3262
3229
|
}}
|
3263
3230
|
goto _again;
|
3264
3231
|
f101:
|
3265
|
-
#line
|
3232
|
+
#line 665 "ext/dtext/dtext.rl"
|
3266
3233
|
{( sm->te) = ( sm->p)+1;{
|
3267
3234
|
append_c_html_escaped(sm, (*( sm->p)));
|
3268
3235
|
}}
|
3269
3236
|
goto _again;
|
3270
3237
|
f103:
|
3271
|
-
#line
|
3238
|
+
#line 665 "ext/dtext/dtext.rl"
|
3272
3239
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3273
3240
|
append_c_html_escaped(sm, (*( sm->p)));
|
3274
3241
|
}}
|
3275
3242
|
goto _again;
|
3276
3243
|
f41:
|
3277
|
-
#line
|
3244
|
+
#line 665 "ext/dtext/dtext.rl"
|
3278
3245
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3279
3246
|
append_c_html_escaped(sm, (*( sm->p)));
|
3280
3247
|
}}
|
3281
3248
|
goto _again;
|
3282
3249
|
f51:
|
3283
|
-
#line
|
3250
|
+
#line 671 "ext/dtext/dtext.rl"
|
3284
3251
|
{( sm->te) = ( sm->p)+1;{
|
3285
3252
|
dstack_push(sm, &BLOCK_THEAD);
|
3286
3253
|
append_block(sm, "<thead>");
|
3287
3254
|
}}
|
3288
3255
|
goto _again;
|
3289
3256
|
f46:
|
3290
|
-
#line
|
3257
|
+
#line 676 "ext/dtext/dtext.rl"
|
3291
3258
|
{( sm->te) = ( sm->p)+1;{
|
3292
3259
|
if (dstack_check(sm, BLOCK_THEAD)) {
|
3293
3260
|
dstack_pop(sm);
|
@@ -3298,14 +3265,14 @@ f46:
|
|
3298
3265
|
}}
|
3299
3266
|
goto _again;
|
3300
3267
|
f48:
|
3301
|
-
#line
|
3268
|
+
#line 685 "ext/dtext/dtext.rl"
|
3302
3269
|
{( sm->te) = ( sm->p)+1;{
|
3303
3270
|
dstack_push(sm, &BLOCK_TBODY);
|
3304
3271
|
append_block(sm, "<tbody>");
|
3305
3272
|
}}
|
3306
3273
|
goto _again;
|
3307
3274
|
f45:
|
3308
|
-
#line
|
3275
|
+
#line 690 "ext/dtext/dtext.rl"
|
3309
3276
|
{( sm->te) = ( sm->p)+1;{
|
3310
3277
|
if (dstack_check(sm, BLOCK_TBODY)) {
|
3311
3278
|
dstack_pop(sm);
|
@@ -3316,7 +3283,7 @@ f45:
|
|
3316
3283
|
}}
|
3317
3284
|
goto _again;
|
3318
3285
|
f50:
|
3319
|
-
#line
|
3286
|
+
#line 699 "ext/dtext/dtext.rl"
|
3320
3287
|
{( sm->te) = ( sm->p)+1;{
|
3321
3288
|
dstack_push(sm, &BLOCK_TH);
|
3322
3289
|
append_block(sm, "<th>");
|
@@ -3335,14 +3302,14 @@ f50:
|
|
3335
3302
|
}}
|
3336
3303
|
goto _again;
|
3337
3304
|
f52:
|
3338
|
-
#line
|
3305
|
+
#line 705 "ext/dtext/dtext.rl"
|
3339
3306
|
{( sm->te) = ( sm->p)+1;{
|
3340
3307
|
dstack_push(sm, &BLOCK_TR);
|
3341
3308
|
append_block(sm, "<tr>");
|
3342
3309
|
}}
|
3343
3310
|
goto _again;
|
3344
3311
|
f47:
|
3345
|
-
#line
|
3312
|
+
#line 710 "ext/dtext/dtext.rl"
|
3346
3313
|
{( sm->te) = ( sm->p)+1;{
|
3347
3314
|
if (dstack_check(sm, BLOCK_TR)) {
|
3348
3315
|
dstack_pop(sm);
|
@@ -3353,7 +3320,7 @@ f47:
|
|
3353
3320
|
}}
|
3354
3321
|
goto _again;
|
3355
3322
|
f49:
|
3356
|
-
#line
|
3323
|
+
#line 719 "ext/dtext/dtext.rl"
|
3357
3324
|
{( sm->te) = ( sm->p)+1;{
|
3358
3325
|
dstack_push(sm, &BLOCK_TD);
|
3359
3326
|
append_block(sm, "<td>");
|
@@ -3372,7 +3339,7 @@ f49:
|
|
3372
3339
|
}}
|
3373
3340
|
goto _again;
|
3374
3341
|
f44:
|
3375
|
-
#line
|
3342
|
+
#line 725 "ext/dtext/dtext.rl"
|
3376
3343
|
{( sm->te) = ( sm->p)+1;{
|
3377
3344
|
if (dstack_check(sm, BLOCK_TABLE)) {
|
3378
3345
|
dstack_pop(sm);
|
@@ -3384,26 +3351,26 @@ f44:
|
|
3384
3351
|
}}
|
3385
3352
|
goto _again;
|
3386
3353
|
f105:
|
3387
|
-
#line
|
3354
|
+
#line 735 "ext/dtext/dtext.rl"
|
3388
3355
|
{( sm->te) = ( sm->p)+1;{
|
3389
3356
|
( sm->p)--;
|
3390
3357
|
{ sm->cs = ( ((int *)sm->stack->data))[--( sm->top)];goto _again;}
|
3391
3358
|
}}
|
3392
3359
|
goto _again;
|
3393
3360
|
f104:
|
3394
|
-
#line
|
3361
|
+
#line 740 "ext/dtext/dtext.rl"
|
3395
3362
|
{( sm->te) = ( sm->p)+1;}
|
3396
3363
|
goto _again;
|
3397
3364
|
f106:
|
3398
|
-
#line
|
3365
|
+
#line 740 "ext/dtext/dtext.rl"
|
3399
3366
|
{( sm->te) = ( sm->p);( sm->p)--;}
|
3400
3367
|
goto _again;
|
3401
3368
|
f43:
|
3402
|
-
#line
|
3369
|
+
#line 740 "ext/dtext/dtext.rl"
|
3403
3370
|
{{( sm->p) = ((( sm->te)))-1;}}
|
3404
3371
|
goto _again;
|
3405
3372
|
f108:
|
3406
|
-
#line
|
3373
|
+
#line 783 "ext/dtext/dtext.rl"
|
3407
3374
|
{( sm->te) = ( sm->p)+1;{
|
3408
3375
|
dstack_close_list(sm);
|
3409
3376
|
{( sm->p) = (( sm->ts))-1;}
|
@@ -3411,7 +3378,7 @@ f108:
|
|
3411
3378
|
}}
|
3412
3379
|
goto _again;
|
3413
3380
|
f107:
|
3414
|
-
#line
|
3381
|
+
#line 791 "ext/dtext/dtext.rl"
|
3415
3382
|
{( sm->te) = ( sm->p)+1;{
|
3416
3383
|
dstack_rewind(sm);
|
3417
3384
|
( sm->p)--;
|
@@ -3419,7 +3386,7 @@ f107:
|
|
3419
3386
|
}}
|
3420
3387
|
goto _again;
|
3421
3388
|
f110:
|
3422
|
-
#line
|
3389
|
+
#line 791 "ext/dtext/dtext.rl"
|
3423
3390
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3424
3391
|
dstack_rewind(sm);
|
3425
3392
|
( sm->p)--;
|
@@ -3427,7 +3394,7 @@ f110:
|
|
3427
3394
|
}}
|
3428
3395
|
goto _again;
|
3429
3396
|
f55:
|
3430
|
-
#line
|
3397
|
+
#line 791 "ext/dtext/dtext.rl"
|
3431
3398
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3432
3399
|
dstack_rewind(sm);
|
3433
3400
|
( sm->p)--;
|
@@ -3451,7 +3418,7 @@ f53:
|
|
3451
3418
|
}
|
3452
3419
|
goto _again;
|
3453
3420
|
f5:
|
3454
|
-
#line
|
3421
|
+
#line 862 "ext/dtext/dtext.rl"
|
3455
3422
|
{( sm->te) = ( sm->p)+1;{
|
3456
3423
|
g_debug("block [/spoiler]");
|
3457
3424
|
dstack_close_before_block(sm);
|
@@ -3462,7 +3429,7 @@ f5:
|
|
3462
3429
|
}}
|
3463
3430
|
goto _again;
|
3464
3431
|
f7:
|
3465
|
-
#line
|
3432
|
+
#line 909 "ext/dtext/dtext.rl"
|
3466
3433
|
{( sm->te) = ( sm->p)+1;{
|
3467
3434
|
dstack_close_before_block(sm);
|
3468
3435
|
dstack_push(sm, &BLOCK_TABLE);
|
@@ -3482,7 +3449,7 @@ f7:
|
|
3482
3449
|
}}
|
3483
3450
|
goto _again;
|
3484
3451
|
f8:
|
3485
|
-
#line
|
3452
|
+
#line 916 "ext/dtext/dtext.rl"
|
3486
3453
|
{( sm->te) = ( sm->p)+1;{
|
3487
3454
|
dstack_push(sm, &BLOCK_TN);
|
3488
3455
|
append_block(sm, "<p class=\"tn\">");
|
@@ -3501,7 +3468,7 @@ f8:
|
|
3501
3468
|
}}
|
3502
3469
|
goto _again;
|
3503
3470
|
f59:
|
3504
|
-
#line
|
3471
|
+
#line 932 "ext/dtext/dtext.rl"
|
3505
3472
|
{( sm->te) = ( sm->p)+1;{
|
3506
3473
|
g_debug("block 0");
|
3507
3474
|
g_debug(" close dstack");
|
@@ -3509,7 +3476,7 @@ f59:
|
|
3509
3476
|
}}
|
3510
3477
|
goto _again;
|
3511
3478
|
f58:
|
3512
|
-
#line
|
3479
|
+
#line 955 "ext/dtext/dtext.rl"
|
3513
3480
|
{( sm->te) = ( sm->p)+1;{
|
3514
3481
|
g_debug("block char: %c", (*( sm->p)));
|
3515
3482
|
( sm->p)--;
|
@@ -3536,7 +3503,7 @@ f58:
|
|
3536
3503
|
}}
|
3537
3504
|
goto _again;
|
3538
3505
|
f64:
|
3539
|
-
#line
|
3506
|
+
#line 799 "ext/dtext/dtext.rl"
|
3540
3507
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3541
3508
|
char header = *sm->a1;
|
3542
3509
|
|
@@ -3594,7 +3561,7 @@ f64:
|
|
3594
3561
|
}}
|
3595
3562
|
goto _again;
|
3596
3563
|
f69:
|
3597
|
-
#line
|
3564
|
+
#line 844 "ext/dtext/dtext.rl"
|
3598
3565
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3599
3566
|
g_debug("block [quote]");
|
3600
3567
|
g_debug(" push quote");
|
@@ -3605,7 +3572,7 @@ f69:
|
|
3605
3572
|
}}
|
3606
3573
|
goto _again;
|
3607
3574
|
f70:
|
3608
|
-
#line
|
3575
|
+
#line 853 "ext/dtext/dtext.rl"
|
3609
3576
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3610
3577
|
g_debug("block [spoiler]");
|
3611
3578
|
g_debug(" push spoiler");
|
@@ -3616,7 +3583,7 @@ f70:
|
|
3616
3583
|
}}
|
3617
3584
|
goto _again;
|
3618
3585
|
f65:
|
3619
|
-
#line
|
3586
|
+
#line 871 "ext/dtext/dtext.rl"
|
3620
3587
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3621
3588
|
g_debug("block [code]");
|
3622
3589
|
dstack_close_before_block(sm);
|
@@ -3637,7 +3604,7 @@ f65:
|
|
3637
3604
|
}}
|
3638
3605
|
goto _again;
|
3639
3606
|
f67:
|
3640
|
-
#line
|
3607
|
+
#line 879 "ext/dtext/dtext.rl"
|
3641
3608
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3642
3609
|
g_debug("block [expand]");
|
3643
3610
|
dstack_close_before_block(sm);
|
@@ -3648,7 +3615,7 @@ f67:
|
|
3648
3615
|
}}
|
3649
3616
|
goto _again;
|
3650
3617
|
f66:
|
3651
|
-
#line
|
3618
|
+
#line 888 "ext/dtext/dtext.rl"
|
3652
3619
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3653
3620
|
g_debug("block [expand=]");
|
3654
3621
|
dstack_close_before_block(sm);
|
@@ -3662,7 +3629,7 @@ f66:
|
|
3662
3629
|
}}
|
3663
3630
|
goto _again;
|
3664
3631
|
f68:
|
3665
|
-
#line
|
3632
|
+
#line 900 "ext/dtext/dtext.rl"
|
3666
3633
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3667
3634
|
g_debug("block [nodtext]");
|
3668
3635
|
dstack_close_before_block(sm);
|
@@ -3684,7 +3651,7 @@ f68:
|
|
3684
3651
|
}}
|
3685
3652
|
goto _again;
|
3686
3653
|
f62:
|
3687
|
-
#line
|
3654
|
+
#line 955 "ext/dtext/dtext.rl"
|
3688
3655
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3689
3656
|
g_debug("block char: %c", (*( sm->p)));
|
3690
3657
|
( sm->p)--;
|
@@ -3711,7 +3678,7 @@ f62:
|
|
3711
3678
|
}}
|
3712
3679
|
goto _again;
|
3713
3680
|
f2:
|
3714
|
-
#line
|
3681
|
+
#line 955 "ext/dtext/dtext.rl"
|
3715
3682
|
{{( sm->p) = ((( sm->te)))-1;}{
|
3716
3683
|
g_debug("block char: %c", (*( sm->p)));
|
3717
3684
|
( sm->p)--;
|
@@ -3763,11 +3730,11 @@ f0:
|
|
3763
3730
|
}
|
3764
3731
|
goto _again;
|
3765
3732
|
f92:
|
3766
|
-
#line
|
3733
|
+
#line 101 "ext/dtext/dtext.rl"
|
3767
3734
|
{
|
3768
3735
|
sm->a2 = sm->p;
|
3769
3736
|
}
|
3770
|
-
#line
|
3737
|
+
#line 153 "ext/dtext/dtext.rl"
|
3771
3738
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3772
3739
|
append(sm, true, "<a href=\"/posts/");
|
3773
3740
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3778,11 +3745,11 @@ f92:
|
|
3778
3745
|
}}
|
3779
3746
|
goto _again;
|
3780
3747
|
f86:
|
3781
|
-
#line
|
3748
|
+
#line 101 "ext/dtext/dtext.rl"
|
3782
3749
|
{
|
3783
3750
|
sm->a2 = sm->p;
|
3784
3751
|
}
|
3785
|
-
#line
|
3752
|
+
#line 162 "ext/dtext/dtext.rl"
|
3786
3753
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3787
3754
|
append(sm, true, "<a href=\"/forum_posts/");
|
3788
3755
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3793,11 +3760,11 @@ f86:
|
|
3793
3760
|
}}
|
3794
3761
|
goto _again;
|
3795
3762
|
f93:
|
3796
|
-
#line
|
3763
|
+
#line 101 "ext/dtext/dtext.rl"
|
3797
3764
|
{
|
3798
3765
|
sm->a2 = sm->p;
|
3799
3766
|
}
|
3800
|
-
#line
|
3767
|
+
#line 171 "ext/dtext/dtext.rl"
|
3801
3768
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3802
3769
|
append(sm, true, "<a href=\"/forum_topics/");
|
3803
3770
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3808,11 +3775,11 @@ f93:
|
|
3808
3775
|
}}
|
3809
3776
|
goto _again;
|
3810
3777
|
f85:
|
3811
|
-
#line
|
3778
|
+
#line 101 "ext/dtext/dtext.rl"
|
3812
3779
|
{
|
3813
3780
|
sm->a2 = sm->p;
|
3814
3781
|
}
|
3815
|
-
#line
|
3782
|
+
#line 193 "ext/dtext/dtext.rl"
|
3816
3783
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3817
3784
|
append(sm, true, "<a href=\"/comments/");
|
3818
3785
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3823,11 +3790,11 @@ f85:
|
|
3823
3790
|
}}
|
3824
3791
|
goto _again;
|
3825
3792
|
f91:
|
3826
|
-
#line
|
3793
|
+
#line 101 "ext/dtext/dtext.rl"
|
3827
3794
|
{
|
3828
3795
|
sm->a2 = sm->p;
|
3829
3796
|
}
|
3830
|
-
#line
|
3797
|
+
#line 202 "ext/dtext/dtext.rl"
|
3831
3798
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3832
3799
|
append(sm, true, "<a href=\"/pools/");
|
3833
3800
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3838,11 +3805,11 @@ f91:
|
|
3838
3805
|
}}
|
3839
3806
|
goto _again;
|
3840
3807
|
f95:
|
3841
|
-
#line
|
3808
|
+
#line 101 "ext/dtext/dtext.rl"
|
3842
3809
|
{
|
3843
3810
|
sm->a2 = sm->p;
|
3844
3811
|
}
|
3845
|
-
#line
|
3812
|
+
#line 211 "ext/dtext/dtext.rl"
|
3846
3813
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3847
3814
|
append(sm, true, "<a href=\"/users/");
|
3848
3815
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3853,11 +3820,11 @@ f95:
|
|
3853
3820
|
}}
|
3854
3821
|
goto _again;
|
3855
3822
|
f84:
|
3856
|
-
#line
|
3823
|
+
#line 101 "ext/dtext/dtext.rl"
|
3857
3824
|
{
|
3858
3825
|
sm->a2 = sm->p;
|
3859
3826
|
}
|
3860
|
-
#line
|
3827
|
+
#line 220 "ext/dtext/dtext.rl"
|
3861
3828
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3862
3829
|
append(sm, true, "<a href=\"/artists/");
|
3863
3830
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3868,11 +3835,11 @@ f84:
|
|
3868
3835
|
}}
|
3869
3836
|
goto _again;
|
3870
3837
|
f88:
|
3871
|
-
#line
|
3838
|
+
#line 101 "ext/dtext/dtext.rl"
|
3872
3839
|
{
|
3873
3840
|
sm->a2 = sm->p;
|
3874
3841
|
}
|
3875
|
-
#line
|
3842
|
+
#line 229 "ext/dtext/dtext.rl"
|
3876
3843
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3877
3844
|
append(sm, true, "<a href=\"https://github.com/r888888888/danbooru/issues/");
|
3878
3845
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3883,11 +3850,11 @@ f88:
|
|
3883
3850
|
}}
|
3884
3851
|
goto _again;
|
3885
3852
|
f89:
|
3886
|
-
#line
|
3853
|
+
#line 101 "ext/dtext/dtext.rl"
|
3887
3854
|
{
|
3888
3855
|
sm->a2 = sm->p;
|
3889
3856
|
}
|
3890
|
-
#line
|
3857
|
+
#line 238 "ext/dtext/dtext.rl"
|
3891
3858
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3892
3859
|
append(sm, true, "<a href=\"http://www.pixiv.net/member_illust.php?mode=medium&illust_id=");
|
3893
3860
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -3898,11 +3865,11 @@ f89:
|
|
3898
3865
|
}}
|
3899
3866
|
goto _again;
|
3900
3867
|
f80:
|
3901
|
-
#line
|
3868
|
+
#line 101 "ext/dtext/dtext.rl"
|
3902
3869
|
{
|
3903
3870
|
sm->a2 = sm->p;
|
3904
3871
|
}
|
3905
|
-
#line
|
3872
|
+
#line 366 "ext/dtext/dtext.rl"
|
3906
3873
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
3907
3874
|
if (is_boundary_c((*( sm->p)))) {
|
3908
3875
|
sm->b = true;
|
@@ -3925,7 +3892,7 @@ f80:
|
|
3925
3892
|
}}
|
3926
3893
|
goto _again;
|
3927
3894
|
f83:
|
3928
|
-
#line
|
3895
|
+
#line 101 "ext/dtext/dtext.rl"
|
3929
3896
|
{
|
3930
3897
|
sm->a2 = sm->p;
|
3931
3898
|
}
|
@@ -3988,11 +3955,11 @@ f83:
|
|
3988
3955
|
}
|
3989
3956
|
goto _again;
|
3990
3957
|
f13:
|
3991
|
-
#line
|
3958
|
+
#line 109 "ext/dtext/dtext.rl"
|
3992
3959
|
{
|
3993
3960
|
sm->b2 = sm->p;
|
3994
3961
|
}
|
3995
|
-
#line
|
3962
|
+
#line 333 "ext/dtext/dtext.rl"
|
3996
3963
|
{( sm->te) = ( sm->p)+1;{
|
3997
3964
|
append(sm, true, "<a href=\"");
|
3998
3965
|
append_segment_html_escaped(sm, sm->b1, sm->b2 - 1);
|
@@ -4002,11 +3969,11 @@ f13:
|
|
4002
3969
|
}}
|
4003
3970
|
goto _again;
|
4004
3971
|
f94:
|
4005
|
-
#line
|
3972
|
+
#line 109 "ext/dtext/dtext.rl"
|
4006
3973
|
{
|
4007
3974
|
sm->b2 = sm->p;
|
4008
3975
|
}
|
4009
|
-
#line
|
3976
|
+
#line 180 "ext/dtext/dtext.rl"
|
4010
3977
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
4011
3978
|
append(sm, true, "<a href=\"/forum_topics/");
|
4012
3979
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -4021,11 +3988,11 @@ f94:
|
|
4021
3988
|
}}
|
4022
3989
|
goto _again;
|
4023
3990
|
f90:
|
4024
|
-
#line
|
3991
|
+
#line 109 "ext/dtext/dtext.rl"
|
4025
3992
|
{
|
4026
3993
|
sm->b2 = sm->p;
|
4027
3994
|
}
|
4028
|
-
#line
|
3995
|
+
#line 247 "ext/dtext/dtext.rl"
|
4029
3996
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
4030
3997
|
append(sm, true, "<a href=\"http://www.pixiv.net/member_illust.php?mode=manga_big&illust_id=");
|
4031
3998
|
append_segment(sm, true, sm->a1, sm->a2 - 1);
|
@@ -4040,11 +4007,11 @@ f90:
|
|
4040
4007
|
}}
|
4041
4008
|
goto _again;
|
4042
4009
|
f79:
|
4043
|
-
#line
|
4010
|
+
#line 109 "ext/dtext/dtext.rl"
|
4044
4011
|
{
|
4045
4012
|
sm->b2 = sm->p;
|
4046
4013
|
}
|
4047
|
-
#line
|
4014
|
+
#line 310 "ext/dtext/dtext.rl"
|
4048
4015
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
4049
4016
|
if (is_boundary_c((*( sm->p)))) {
|
4050
4017
|
sm->d = 2;
|
@@ -4057,7 +4024,10 @@ f79:
|
|
4057
4024
|
append(sm, true, "<a href=\"");
|
4058
4025
|
append_segment_html_escaped(sm, sm->b1, sm->b2 - sm->d);
|
4059
4026
|
append(sm, true, "\">");
|
4060
|
-
|
4027
|
+
link_content_sm = parse_helper(sm->a1, sm->a2 - sm->a1, false, true);
|
4028
|
+
append(sm, true, link_content_sm->output->str);
|
4029
|
+
free_machine(link_content_sm);
|
4030
|
+
link_content_sm = NULL;
|
4061
4031
|
append(sm, true, "</a>");
|
4062
4032
|
|
4063
4033
|
if (sm->b) {
|
@@ -4066,11 +4036,11 @@ f79:
|
|
4066
4036
|
}}
|
4067
4037
|
goto _again;
|
4068
4038
|
f76:
|
4069
|
-
#line
|
4039
|
+
#line 109 "ext/dtext/dtext.rl"
|
4070
4040
|
{
|
4071
4041
|
sm->b2 = sm->p;
|
4072
4042
|
}
|
4073
|
-
#line
|
4043
|
+
#line 387 "ext/dtext/dtext.rl"
|
4074
4044
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
4075
4045
|
g_debug("inline list");
|
4076
4046
|
|
@@ -4091,11 +4061,11 @@ f76:
|
|
4091
4061
|
}}
|
4092
4062
|
goto _again;
|
4093
4063
|
f111:
|
4094
|
-
#line
|
4064
|
+
#line 109 "ext/dtext/dtext.rl"
|
4095
4065
|
{
|
4096
4066
|
sm->b2 = sm->p;
|
4097
4067
|
}
|
4098
|
-
#line
|
4068
|
+
#line 744 "ext/dtext/dtext.rl"
|
4099
4069
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
4100
4070
|
int prev_nest = sm->list_nest;
|
4101
4071
|
append_closing_p_if(sm);
|
@@ -4146,11 +4116,11 @@ f111:
|
|
4146
4116
|
}}
|
4147
4117
|
goto _again;
|
4148
4118
|
f63:
|
4149
|
-
#line
|
4119
|
+
#line 109 "ext/dtext/dtext.rl"
|
4150
4120
|
{
|
4151
4121
|
sm->b2 = sm->p;
|
4152
4122
|
}
|
4153
|
-
#line
|
4123
|
+
#line 922 "ext/dtext/dtext.rl"
|
4154
4124
|
{( sm->te) = ( sm->p);( sm->p)--;{
|
4155
4125
|
g_debug("block list");
|
4156
4126
|
g_debug(" call list");
|
@@ -4175,7 +4145,7 @@ f63:
|
|
4175
4145
|
f14:
|
4176
4146
|
#line 1 "NONE"
|
4177
4147
|
{( sm->te) = ( sm->p)+1;}
|
4178
|
-
#line
|
4148
|
+
#line 97 "ext/dtext/dtext.rl"
|
4179
4149
|
{
|
4180
4150
|
sm->a1 = sm->p;
|
4181
4151
|
}
|
@@ -4183,49 +4153,49 @@ f14:
|
|
4183
4153
|
f82:
|
4184
4154
|
#line 1 "NONE"
|
4185
4155
|
{( sm->te) = ( sm->p)+1;}
|
4186
|
-
#line
|
4156
|
+
#line 362 "ext/dtext/dtext.rl"
|
4187
4157
|
{( sm->act) = 18;}
|
4188
4158
|
goto _again;
|
4189
4159
|
f81:
|
4190
4160
|
#line 1 "NONE"
|
4191
4161
|
{( sm->te) = ( sm->p)+1;}
|
4192
|
-
#line
|
4162
|
+
#line 366 "ext/dtext/dtext.rl"
|
4193
4163
|
{( sm->act) = 19;}
|
4194
4164
|
goto _again;
|
4195
4165
|
f10:
|
4196
4166
|
#line 1 "NONE"
|
4197
4167
|
{( sm->te) = ( sm->p)+1;}
|
4198
|
-
#line
|
4168
|
+
#line 592 "ext/dtext/dtext.rl"
|
4199
4169
|
{( sm->act) = 42;}
|
4200
4170
|
goto _again;
|
4201
4171
|
f73:
|
4202
4172
|
#line 1 "NONE"
|
4203
4173
|
{( sm->te) = ( sm->p)+1;}
|
4204
|
-
#line
|
4174
|
+
#line 604 "ext/dtext/dtext.rl"
|
4205
4175
|
{( sm->act) = 43;}
|
4206
4176
|
goto _again;
|
4207
4177
|
f54:
|
4208
4178
|
#line 1 "NONE"
|
4209
4179
|
{( sm->te) = ( sm->p)+1;}
|
4210
|
-
#line
|
4180
|
+
#line 783 "ext/dtext/dtext.rl"
|
4211
4181
|
{( sm->act) = 64;}
|
4212
4182
|
goto _again;
|
4213
4183
|
f109:
|
4214
4184
|
#line 1 "NONE"
|
4215
4185
|
{( sm->te) = ( sm->p)+1;}
|
4216
|
-
#line
|
4186
|
+
#line 789 "ext/dtext/dtext.rl"
|
4217
4187
|
{( sm->act) = 65;}
|
4218
4188
|
goto _again;
|
4219
4189
|
f1:
|
4220
4190
|
#line 1 "NONE"
|
4221
4191
|
{( sm->te) = ( sm->p)+1;}
|
4222
|
-
#line
|
4192
|
+
#line 938 "ext/dtext/dtext.rl"
|
4223
4193
|
{( sm->act) = 79;}
|
4224
4194
|
goto _again;
|
4225
4195
|
f60:
|
4226
4196
|
#line 1 "NONE"
|
4227
4197
|
{( sm->te) = ( sm->p)+1;}
|
4228
|
-
#line
|
4198
|
+
#line 951 "ext/dtext/dtext.rl"
|
4229
4199
|
{( sm->act) = 80;}
|
4230
4200
|
goto _again;
|
4231
4201
|
|
@@ -4235,7 +4205,7 @@ _again:
|
|
4235
4205
|
#line 1 "NONE"
|
4236
4206
|
{( sm->ts) = 0;}
|
4237
4207
|
break;
|
4238
|
-
#line
|
4208
|
+
#line 4209 "ext/dtext/dtext.c"
|
4239
4209
|
}
|
4240
4210
|
|
4241
4211
|
if ( ++( sm->p) != ( sm->pe) )
|
@@ -4551,10 +4521,58 @@ _again:
|
|
4551
4521
|
|
4552
4522
|
}
|
4553
4523
|
|
4554
|
-
#line
|
4524
|
+
#line 1301 "ext/dtext/dtext.rl"
|
4555
4525
|
|
4556
4526
|
dstack_close(sm);
|
4557
4527
|
|
4528
|
+
return sm;
|
4529
|
+
}
|
4530
|
+
|
4531
|
+
static VALUE parse(int argc, VALUE * argv, VALUE self) {
|
4532
|
+
VALUE input;
|
4533
|
+
VALUE input0;
|
4534
|
+
VALUE options;
|
4535
|
+
VALUE opt_inline;
|
4536
|
+
VALUE opt_strip;
|
4537
|
+
VALUE ret;
|
4538
|
+
rb_encoding * encoding = NULL;
|
4539
|
+
StateMachine * sm = NULL;
|
4540
|
+
bool f_strip = false;
|
4541
|
+
bool f_inline = false;
|
4542
|
+
|
4543
|
+
g_debug("start\n");
|
4544
|
+
|
4545
|
+
if (argc == 0) {
|
4546
|
+
rb_raise(rb_eArgError, "wrong number of arguments (0 for 1)");
|
4547
|
+
}
|
4548
|
+
|
4549
|
+
input = argv[0];
|
4550
|
+
|
4551
|
+
if (NIL_P(input)) {
|
4552
|
+
return Qnil;
|
4553
|
+
}
|
4554
|
+
|
4555
|
+
input0 = rb_str_dup(input);
|
4556
|
+
input0 = rb_str_cat(input0, "\0", 1);
|
4557
|
+
|
4558
|
+
if (argc > 1) {
|
4559
|
+
options = argv[1];
|
4560
|
+
|
4561
|
+
if (!NIL_P(options)) {
|
4562
|
+
opt_strip = rb_hash_aref(options, ID2SYM(rb_intern("strip")));
|
4563
|
+
if (RTEST(opt_strip)) {
|
4564
|
+
f_strip = true;
|
4565
|
+
}
|
4566
|
+
|
4567
|
+
opt_inline = rb_hash_aref(options, ID2SYM(rb_intern("inline")));
|
4568
|
+
if (RTEST(opt_inline)) {
|
4569
|
+
f_inline = true;
|
4570
|
+
}
|
4571
|
+
}
|
4572
|
+
}
|
4573
|
+
|
4574
|
+
sm = parse_helper(RSTRING_PTR(input0), RSTRING_LEN(input0), f_strip, f_inline);
|
4575
|
+
|
4558
4576
|
encoding = rb_enc_find("utf-8");
|
4559
4577
|
ret = rb_enc_str_new(sm->output->str, sm->output->len, encoding);
|
4560
4578
|
|