MCPcopy Create free account
hub / github.com/buggins/coolreader / detectFormatFlags

Method detectFormatFlags

crengine/src/lvxml.cpp:1356–1530  ·  view source on GitHub ↗

checks text format options

Source from the content-addressed store, hash-verified

1354 }
1355 /// checks text format options
1356 void detectFormatFlags()
1357 {
1358 //CRLog::debug("detectFormatFlags() enter");
1359 formatFlags = tftParaPerLine | tftEmptyLineDelimHeaders; // default format
1360 if ( length()<10 )
1361 return;
1362 formatFlags = 0;
1363 avg_center = 0;
1364 int empty_lines = 0;
1365 int ident_lines = 0;
1366 int center_lines = 0;
1367 min_left = -1;
1368 max_right = -1;
1369 avg_left = 0;
1370 avg_right = 0;
1371 int pmlTagCount = 0;
1372 int i;
1373#define MAX_PRE_STATS 1000
1374 int left_stats[MAX_PRE_STATS];
1375 int right_stats[MAX_PRE_STATS];
1376 for ( i=0; i<MAX_PRE_STATS; i++ )
1377 left_stats[i] = right_stats[i] = 0;
1378 for ( i=0; i<length(); i++ ) {
1379 LVTextFileLine * line = get(i);
1380 //CRLog::debug(" LINE: %d .. %d", line->lpos, line->rpos);
1381 if ( line->lpos == line->rpos ) {
1382 empty_lines++;
1383 } else {
1384 if ( line->lpos < MAX_PRE_STATS )
1385 left_stats[line->lpos]++;
1386 if ( line->rpos < MAX_PRE_STATS )
1387 right_stats[line->rpos]++;
1388 if ( min_left==-1 || line->lpos<min_left )
1389 min_left = line->lpos;
1390 if ( max_right==-1 || line->rpos>max_right )
1391 max_right = line->rpos;
1392 avg_left += line->lpos;
1393 avg_right += line->rpos;
1394 for (int j=line->lpos; j<line->rpos-1; j++ ) {
1395 lChar16 ch = line->text[j];
1396 lChar16 ch2 = line->text[j+1];
1397 if ( ch=='\\' ) {
1398 switch ( ch2 ) {
1399 case 'p':
1400 case 'x':
1401 case 'X':
1402 case 'C':
1403 case 'c':
1404 case 'r':
1405 case 'u':
1406 case 'o':
1407 case 'v':
1408 case 't':
1409 case 'n':
1410 case 's':
1411 case 'b':
1412 case 'l':
1413 case 'a':

Callers 1

ParseMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected