Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:ellessar
geany
geany_cobol.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File geany_cobol.patch of Package geany
--- ctags/parsers/cobol.c.original 2024-01-26 08:43:59.882140973 -0500 +++ ctags/parsers/cobol.c 2024-01-26 09:02:35.819053039 -0500 @@ -84,6 +84,7 @@ KEYWORD_PROGRAM_ID, KEYWORD_EXIT, KEYWORD_COPY, + KEYWORD_BINARY, }; static const keywordTable cobolKeywordTable[] = { @@ -95,6 +96,14 @@ DEFINE_KEYWORD (DIVISION), DEFINE_KEYWORD (CONTINUE), { "END-EXEC", KEYWORD_END_EXEC }, + { "AUTHOR", KEYWORD_CONTINUE }, + { "FILE-CONTROL", KEYWORD_CONTINUE }, + { "I-O-CONTROL", KEYWORD_CONTINUE }, + { "OBJECT-COMPUTER", KEYWORD_CONTINUE }, + { "SOURCE-COMPUTER", KEYWORD_CONTINUE }, + { "DATE-COMPILED", KEYWORD_CONTINUE }, + { "DATE-WRITTEN", KEYWORD_CONTINUE }, + { "SPECIAL-NAMES", KEYWORD_CONTINUE }, DEFINE_KEYWORD (EXIT), DEFINE_KEYWORD (FILLER), DEFINE_KEYWORD (BLANK), @@ -112,6 +121,14 @@ { "VALUES", KEYWORD_VALUE }, { "PROGRAM-ID", KEYWORD_PROGRAM_ID }, DEFINE_KEYWORD (COPY), + DEFINE_KEYWORD (BINARY), + { "SIGNED-INT", KEYWORD_BINARY }, + { "SIGNED-SHORT", KEYWORD_BINARY }, + { "SIGNED-LONG", KEYWORD_BINARY }, + { "UNSIGNED-INT", KEYWORD_BINARY }, + { "UNSIGNED-SHORT", KEYWORD_BINARY }, + { "UNSIGNED-LONG", KEYWORD_BINARY }, + { "POINTER", KEYWORD_BINARY }, }; #define INDICATOR_COLUMN 7 @@ -307,8 +324,15 @@ NestingLevels *levels; const char *line; + int col_max; + cblppInit (format); + if (format & FORMAT_FREE) + col_max=5; + else + col_max=4; + levels = nestingLevelsNew (sizeof (unsigned int)); while ((line = cblppGetLine ()) != NULL) @@ -316,7 +340,8 @@ char word[64]; int keyword; unsigned long int levelNumber; - + int col_num=0; + #define READ_WHILE(word, cond) \ do { \ unsigned int i; \ @@ -343,9 +368,10 @@ char READ_KEYWORD__word[64]; \ READ_WORD (READ_KEYWORD__word, keyword); \ } while (0) +#define SKIP_SPACES0() do { while (isspace (*line)) {line++;col_num++;} } while (0) #define SKIP_SPACES() do { while (isspace (*line)) line++; } while (0) - SKIP_SPACES (); + SKIP_SPACES0 (); READ_WORD (word, keyword); SKIP_SPACES (); @@ -356,7 +382,7 @@ case KEYWORD_RD: READ_WORD (word, keyword); SKIP_SPACES (); - if (*word && *line == '.') + if (*word) makeCOBOLTag (word, K_FILE); break; @@ -414,6 +440,7 @@ case KEYWORD_SYNC: case KEYWORD_USAGE: case KEYWORD_VALUE: + case KEYWORD_BINARY: kind = K_DATA; } } @@ -447,7 +474,7 @@ } } } - else if (*word && *line == '.') + else if (*word && *line == '.' && col_num < col_max) makeCOBOLTag (word, K_PARAGRAPH); else { @@ -506,8 +533,8 @@ { static const char *const extensions [] = { "cbl", "cob", "CBL", "COB", NULL }; - parserDefinition* def = commonCobolParserDefinition ("Cobol", - findCOBOLFixedTags); + parserDefinition* def = commonCobolParserDefinition ("CobolFree", + findCOBOLFreeTags); def->extensions = extensions; return def; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor