Code Duplication    Length = 70-71 lines in 2 locations

_inc/lib/markdown/extra.php 2 locations

@@ 534-603 (lines=70) @@
531
	}
532
533
534
	function doAnchors($text) {
535
	#
536
	# Turn Markdown link shortcuts into XHTML <a> tags.
537
	#
538
		if ($this->in_anchor) return $text;
539
		$this->in_anchor = true;
540
541
		#
542
		# First, handle reference-style links: [link text] [id]
543
		#
544
		$text = preg_replace_callback('{
545
			(					# wrap whole match in $1
546
			  \[
547
				('.$this->nested_brackets_re.')	# link text = $2
548
			  \]
549
550
			  [ ]?				# one optional space
551
			  (?:\n[ ]*)?		# one optional newline followed by spaces
552
553
			  \[
554
				(.*?)		# id = $3
555
			  \]
556
			)
557
			}xs',
558
			array(&$this, '_doAnchors_reference_callback'), $text);
559
560
		#
561
		# Next, inline-style links: [link text](url "optional title")
562
		#
563
		$text = preg_replace_callback('{
564
			(				# wrap whole match in $1
565
			  \[
566
				('.$this->nested_brackets_re.')	# link text = $2
567
			  \]
568
			  \(			# literal paren
569
				[ \n]*
570
				(?:
571
					<(.+?)>	# href = $3
572
				|
573
					('.$this->nested_url_parenthesis_re.')	# href = $4
574
				)
575
				[ \n]*
576
				(			# $5
577
				  ([\'"])	# quote char = $6
578
				  (.*?)		# Title = $7
579
				  \6		# matching quote
580
				  [ \n]*	# ignore any spaces/tabs between closing quote and )
581
				)?			# title is optional
582
			  \)
583
			)
584
			}xs',
585
			array(&$this, '_doAnchors_inline_callback'), $text);
586
587
		#
588
		# Last, handle reference-style shortcuts: [link text]
589
		# These must come last in case you've also got [link text][1]
590
		# or [link text](/foo)
591
		#
592
		$text = preg_replace_callback('{
593
			(					# wrap whole match in $1
594
			  \[
595
				([^\[\]]+)		# link text = $2; can\'t contain [ or ]
596
			  \]
597
			)
598
			}xs',
599
			array(&$this, '_doAnchors_reference_callback'), $text);
600
601
		$this->in_anchor = false;
602
		return $text;
603
	}
604
	function _doAnchors_reference_callback($matches) {
605
		$whole_match =  $matches[1];
606
		$link_text   =  $matches[2];
@@ 2217-2287 (lines=71) @@
2214
	}
2215
2216
2217
	function doAnchors($text) {
2218
	#
2219
	# Turn Markdown link shortcuts into XHTML <a> tags.
2220
	#
2221
		if ($this->in_anchor) return $text;
2222
		$this->in_anchor = true;
2223
2224
		#
2225
		# First, handle reference-style links: [link text] [id]
2226
		#
2227
		$text = preg_replace_callback('{
2228
			(					# wrap whole match in $1
2229
			  \[
2230
				('.$this->nested_brackets_re.')	# link text = $2
2231
			  \]
2232
2233
			  [ ]?				# one optional space
2234
			  (?:\n[ ]*)?		# one optional newline followed by spaces
2235
2236
			  \[
2237
				(.*?)		# id = $3
2238
			  \]
2239
			)
2240
			}xs',
2241
			array(&$this, '_doAnchors_reference_callback'), $text);
2242
2243
		#
2244
		# Next, inline-style links: [link text](url "optional title")
2245
		#
2246
		$text = preg_replace_callback('{
2247
			(				# wrap whole match in $1
2248
			  \[
2249
				('.$this->nested_brackets_re.')	# link text = $2
2250
			  \]
2251
			  \(			# literal paren
2252
				[ \n]*
2253
				(?:
2254
					<(.+?)>	# href = $3
2255
				|
2256
					('.$this->nested_url_parenthesis_re.')	# href = $4
2257
				)
2258
				[ \n]*
2259
				(			# $5
2260
				  ([\'"])	# quote char = $6
2261
				  (.*?)		# Title = $7
2262
				  \6		# matching quote
2263
				  [ \n]*	# ignore any spaces/tabs between closing quote and )
2264
				)?			# title is optional
2265
			  \)
2266
			  (?:[ ]? '.$this->id_class_attr_catch_re.' )?	 # $8 = id/class attributes
2267
			)
2268
			}xs',
2269
			array(&$this, '_doAnchors_inline_callback'), $text);
2270
2271
		#
2272
		# Last, handle reference-style shortcuts: [link text]
2273
		# These must come last in case you've also got [link text][1]
2274
		# or [link text](/foo)
2275
		#
2276
		$text = preg_replace_callback('{
2277
			(					# wrap whole match in $1
2278
			  \[
2279
				([^\[\]]+)		# link text = $2; can\'t contain [ or ]
2280
			  \]
2281
			)
2282
			}xs',
2283
			array(&$this, '_doAnchors_reference_callback'), $text);
2284
2285
		$this->in_anchor = false;
2286
		return $text;
2287
	}
2288
	function _doAnchors_reference_callback($matches) {
2289
		$whole_match =  $matches[1];
2290
		$link_text   =  $matches[2];