A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/pcre2__substitute_8c_source.html below:

NCBI C++ ToolKit: src/util/regexp/pcre2_substitute.c Source File

48 #define PTR_STACK_SIZE 20 50 #define SUBSTITUTE_OPTIONS \ 51  (PCRE2_SUBSTITUTE_EXTENDED|PCRE2_SUBSTITUTE_GLOBAL| \ 52  PCRE2_SUBSTITUTE_LITERAL|PCRE2_SUBSTITUTE_MATCHED| \ 53  PCRE2_SUBSTITUTE_OVERFLOW_LENGTH|PCRE2_SUBSTITUTE_REPLACEMENT_ONLY| \ 54  PCRE2_SUBSTITUTE_UNKNOWN_UNSET|PCRE2_SUBSTITUTE_UNSET_EMPTY) 87 for

(; ptr < ptrend; ptr++)

100  if

(nestlevel == 0)

goto

EXIT;

104  else if

(*ptr ==

CHAR_COLON

&& !

last

&& nestlevel == 0)

goto

EXIT;

121  if

(ptr < ptrend - 1)

switch

(ptr[1])

132

erc =

PRIV

(check_escape)(&ptr, ptrend, &ch, &errorcode,

197 #define CHECKMEMCPY(from,length) \ 199  if (!overflowed && lengthleft < length) \ 201  if ((suboptions & PCRE2_SUBSTITUTE_OVERFLOW_LENGTH) == 0) goto NOROOM; \ 203  extra_needed = length - lengthleft; \ 205  else if (overflowed) \ 207  extra_needed += length; \ 211  memcpy(buffer + buff_offset, from, CU2BYTES(length)); \ 212  buff_offset += length; \ 213  lengthleft -= length; \ 228 int

forcecasereset = 0;

235 BOOL

use_existing_match;

236 BOOL

replacement_only;

237 #ifdef SUPPORT_UNICODE 245 PCRE2_SIZE

buff_offset, buff_length, lengthleft, fraglength;

253

lengthleft = buff_length = *blength;

255

ovecsave[0] = ovecsave[1] = ovecsave[2] =

PCRE2_UNSET

;

266 if

(replacement ==

NULL

)

273

repend = replacement + rlength;

293

gcontext = (mcontext ==

NULL

)?

301 else if

(use_existing_match)

313

internal_match_data->heapframes =

NULL

;

314

internal_match_data->heapframes_size = 0;

328

scb.ovector = ovector;

345 #ifdef SUPPORT_UNICODE 364 if

(start_offset > length)

384  if

(use_existing_match)

387

use_existing_match =

FALSE

;

392 #ifdef SUPPORT_UNICODE 406  if

(goptions == 0 || start_offset >= length)

break

;

413

save_start = start_offset++;

417

start_offset < length &&

425 #if PCRE2_CODE_UNIT_WIDTH == 8 426  while

(start_offset < length && (

subject

[start_offset] & 0xc0) == 0x80)

428 #elif PCRE2_CODE_UNIT_WIDTH == 16 429  while

(start_offset < length &&

430

(

subject

[start_offset] & 0xfc00) == 0xdc00)

438

fraglength = start_offset - save_start;

447  if

(ovector[1] < ovector[0] || ovector[0] < start_offset)

461  if

(ovecsave[0] == ovector[0] && ovecsave[1] == ovector[1])

463  if

(ovector[0] == ovector[1] && ovecsave[2] != start_offset)

466

ovecsave[2] = start_offset;

486  if

(rc == 0) rc = ovector_count;

487

fraglength = ovector[0] - start_offset;

489

scb.output_offsets[0] = buff_offset;

515  if

(ptrstackptr == 0)

break

;

516

repend = ptrstack[--ptrstackptr];

517

ptr = ptrstack[--ptrstackptr];

527

escaped_literal =

FALSE

;

550  if

(++ptr >= repend)

goto BAD

;

560  if

(++ptr >= repend)

goto BAD

;

567  if

(++ptr >= repend)

goto BAD

;

575  while

(++ptr < repend)

578  if

(next < CHAR_0 || next >

CHAR_9

)

break

;

586  if

(group >

code

->top_bracket)

590  while

(++ptr < repend && *ptr >=

CHAR_0

&& *ptr <=

CHAR_9

);

607  if

(

n

> 32)

goto BAD

;

608  if

(++ptr >= repend)

break

;

611  if

(

n

== 0)

goto BAD

;

632  if

(rc != 0)

goto

PTREXIT;

639  if

(rc != 0)

goto

PTREXIT;

667  while

(*mark != 0) mark++;

668

fraglength = mark - mark_start;

694

group =

code

->top_bracket + 1;

698  if

(rc < 0)

goto

PTREXIT;

699  for

(entry =

first

; entry <=

last

; entry += rc)

702  if

(ng < ovector_count)

704  if

(group < 0) group = ng;

716  if

(group < 0) group =

GET2

(

first

, 0);

748  if

(rc == 0)

goto

LITERAL_SUBSTITUTE;

749

text2_start = text1_start;

750

text2_end = text1_end;

754

ptrstack[ptrstackptr++] = ptr;

755

ptrstack[ptrstackptr++] = repend;

773

subptr =

subject

+ ovector[group*2];

774

subptrend =

subject

+ ovector[group*2 + 1];

778  while

(subptr < subptrend)

783 #ifdef SUPPORT_UNICODE 796

)[ch/8] & (1u << (ch%8))) == 0)

799

forcecase = forcecasereset;

802 #ifdef SUPPORT_UNICODE 803  if

(

utf

) chlen =

PRIV

(ord2utf)(ch, temp);

else 824  if

(ptr < repend - 1)

switch

(ptr[1])

827

forcecase = forcecasereset = -1;

838

forcecase = forcecasereset = 1;

853

rc =

PRIV

(check_escape)(&ptr, repend, &ch, &errorcode,

855  if

(errorcode != 0)

goto

BADESCAPE;

860

forcecase = forcecasereset = 0;

864

escaped_literal =

TRUE

;

885 #ifdef SUPPORT_UNICODE 898

)[ch/8] & (1u << (ch%8))) == 0)

901

forcecase = forcecasereset;

904 #ifdef SUPPORT_UNICODE 905  if

(

utf

) chlen =

PRIV

(ord2utf)(ch, temp);

else 919  if

(!overflowed && mcontext !=

NULL

&& mcontext->substitute_callout !=

NULL

)

921

scb.subscount = subs;

922

scb.output_offsets[1] = buff_offset;

923

rc = mcontext->substitute_callout(&scb, mcontext->substitute_callout_data);

930  PCRE2_SIZE

newlength = scb.output_offsets[1] - scb.output_offsets[0];

931  PCRE2_SIZE

oldlength = ovector[1] - ovector[0];

933

buff_offset -= newlength;

934

lengthleft += newlength;

948

ovecsave[0] = ovector[0];

949

ovecsave[1] = ovector[1];

950

ovecsave[2] = start_offset;

952

goptions = (ovector[0] != ovector[1] || ovector[0] > start_offset)? 0 :

954

start_offset = ovector[1];

960 if

(!replacement_only)

962

fraglength = length - start_offset;

976

*blength = buff_length + extra_needed;

985

*blength = buff_offset - 1;

1005

*blength = (

PCRE2_SIZE

)(ptr - replacement);

static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)

static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)

static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)

CTempString literal(const char(&str)[Size])

Templatized initialization from a string literal.

#define TRUE

bool replacment for C indicating true.

#define FALSE

bool replacment for C indicating false.

#define PCRE2_ERROR_INTERNAL_DUPMATCH

#define PCRE2_ZERO_TERMINATED

#define PCRE2_NOTEMPTY_ATSTART

#define PCRE2_SUBSTITUTE_REPLACEMENT_ONLY

#define PCRE2_ERROR_BADOPTION

#define pcre2_general_context

#define PCRE2_ERROR_NOMATCH

#define PCRE2_SUBSTITUTE_GLOBAL

#define PCRE2_ERROR_UNSET

#define PCRE2_ERROR_TOOMANYREPLACE

#define PCRE2_ERROR_BADREPESCAPE

#define PCRE2_ERROR_NOSUBSTRING

#define PCRE2_SUBSTITUTE_EXTENDED

#define PCRE2_ERROR_BADSUBSPATTERN

#define PCRE2_SUBSTITUTE_MATCHED

#define pcre2_substitute_callout_block

#define PCRE2_SUBSTITUTE_LITERAL

#define PCRE2_ERROR_BADOFFSET

#define PCRE2_PARTIAL_SOFT

#define PCRE2_SUBSTITUTE_UNSET_EMPTY

#define PCRE2_ERROR_REPMISSINGBRACE

#define PCRE2_SUBSTITUTE_UNKNOWN_UNSET

#define PCRE2_PARTIAL_HARD

#define PCRE2_ERROR_BADSUBSTITUTION

#define pcre2_match_context

#define PCRE2_CALL_CONVENTION

#define PCRE2_ERROR_BADREPLACEMENT

#define PCRE2_NO_UTF_CHECK

#define PCRE2_ERROR_NOMEMORY

#define CHAR_RIGHT_CURLY_BRACKET

#define CHAR_LEFT_CURLY_BRACKET

#define UCD_OTHERCASE(ch)

#define GETCHARINCTEST(c, eptr)

PCRE2_EXPORT int PCRE2_CALL_CONVENTION pcre2_match(const pcre2_code *code, PCRE2_SPTR subject, PCRE2_SIZE length, PCRE2_SIZE start_offset, uint32_t options, pcre2_match_data *match_data, pcre2_match_context *mcontext)

PCRE2_EXPORT pcre2_match_data *PCRE2_CALL_CONVENTION pcre2_match_data_create(uint32_t oveccount, pcre2_general_context *gcontext)

PCRE2_EXPORT pcre2_match_data *PCRE2_CALL_CONVENTION pcre2_match_data_create_from_pattern(const pcre2_code *code, pcre2_general_context *gcontext)

PCRE2_EXPORT PCRE2_SIZE *PCRE2_CALL_CONVENTION pcre2_get_ovector_pointer(pcre2_match_data *match_data)

PCRE2_EXPORT PCRE2_SPTR PCRE2_CALL_CONVENTION pcre2_get_mark(pcre2_match_data *match_data)

PCRE2_EXPORT uint32_t PCRE2_CALL_CONVENTION pcre2_get_ovector_count(pcre2_match_data *match_data)

PCRE2_EXPORT void PCRE2_CALL_CONVENTION pcre2_match_data_free(pcre2_match_data *match_data)

static int find_text_end(const pcre2_code *code, PCRE2_SPTR *ptrptr, PCRE2_SPTR ptrend, BOOL last)

#define SUBSTITUTE_OPTIONS

#define CHECKMEMCPY(from, length)

PCRE2_EXPORT int PCRE2_CALL_CONVENTION pcre2_substitute(const pcre2_code *code, PCRE2_SPTR subject, PCRE2_SIZE length, PCRE2_SIZE start_offset, uint32_t options, pcre2_match_data *match_data, pcre2_match_context *mcontext, PCRE2_SPTR replacement, PCRE2_SIZE rlength, PCRE2_UCHAR *buffer, PCRE2_SIZE *blength)

PCRE2_EXPORT int PCRE2_CALL_CONVENTION pcre2_substring_nametable_scan(const pcre2_code *code, PCRE2_SPTR stringname, PCRE2_SPTR *firstptr, PCRE2_SPTR *lastptr)

PCRE2_EXPORT int PCRE2_CALL_CONVENTION pcre2_substring_length_bynumber(pcre2_match_data *match_data, uint32_t stringnumber, PCRE2_SIZE *sizeptr)

static pcre2_match_data * match_data

int valid_utf(PCRE2_SPTR8, PCRE2_SIZE, PCRE2_SIZE *)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4