1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516
|
2025-07-30 Sergey Poznyakoff <gray@gnu.org>
Version 1.8
2025-06-21 Sergey Poznyakoff <gray@gnu.org>
Handle nesting {[( braces and duplicate typedefs.
* src/parser.c (find_closing_paren): New function.
(skip_balanced): Rewrite using find_closing_paren. Change
parameters (no need to specify closing token). All uses changed.
(fake_struct): Handle TYPE appearing after closing brace.
(dirdcl): Use find_closing_paren, instead of plain skip_to.
* tests/corner.at: Add test for duplicate typedefs.
2025-05-10 Sergey Poznyakoff <gray@gnu.org>
Update the manpage.
Version 1.7.91
New syntax class: declaration
* src/parser.h (DECLARATION): New token type.
* src/parser.c (skip_declaration): New function.
(yyparse): Handle DECLARATION.
* src/main.c (symbol_optype): Add "declaration".
* src/init/c11.cfo: Mark _Static_assert as declaration.
* doc/cflow.texi: Document changes.
Add cfo files
2025-05-09 Sergey Poznyakoff <gray@gnu.org>
Rewrite initialization system.
* src/parseopt: New submodule
* src/Makefile.am: Add parseopt sources.
Distribute cfo files.
(init_DATA): Install cfo files.
(cflow.cflow): Use --profile option instead of CFLOWRC envvar.
(AM_CPPFLAGS): Define PKGDATADIR.
* src/cflow.rc: Remove.
* src/rc.c: Remove.
* init/gcc.cfo: New file.
* init/c11.cfo: New file.
* src/c.l (pp_option): Change arguments.
* src/cflow.h (pp_option): Change prototype.
* src/main.c (CHAR_TO_SM): Rewrite as inline function.
(arglist): Removed.
(options): New options: --profile, --prepend-path and -q.
(main): Use new option functions.
* tests/atlocal.in (CFLOWRC): Define to empty string.
(CFLOW_OPTIONS): Set to -q
* po/POTFILES.in: Update
* doc/cflow.texi: Document changes.
* NEWS: Document changes.
2025-05-07 Sergey Poznyakoff <gray@gnu.org>
Minor changes in the docs
Minor fixes
2025-05-06 Sergey Poznyakoff <gray@gnu.org>
Update NEWS
Update THANKS
Minor change in cflow-mode
* elisp/cflow-mode.el (cflow--goto-line): New function to use
instead of the interactive goto-line. Written as suggested in
the comment to the latter. All uses changed.
2025-05-05 Stefan Monnier <monnier@iro.umontreal.ca>
elisp/cflow-mode.el (cflow-font-lock-keywords): Minor tweaks
Don't rely on `\S` and `\s` which depend on syntax tables and
rarely do
what we want with newlines. More specifically, this fixes
mis-highlighting the whole of `NN]\nfoo_bar ()` as a function
because \n is matched by `\S` (because the syntax table says \n is
a comment-ender rather than a space).
Recognize `(R)` even if it's followed by `[see NNN]`.
Highlight the `[see NNN]` as well.
Change regexp which used `+-|` so that it matches those 3
chars rather
than all chars from ASCII 43 (+) to ASCII 124 (|).
2025-05-05 Stefan Monnier <monnier@iro.umontreal.ca>
cflow-mode.el: Misc cleanups from compiler warnings
Also the use of `define-derived-mode` makes font-lock work
again in
recent Emacsen.
* elisp/cflow-mode.el: Enable `lexical-binding`.
Improve the "Customization" a bit.
(font-lock): Require in a less roundabout way.
(cflow-mode-syntax-table, cflow-mode-map): Move initialization
into
the declaration.
(cflow-find-function, cflow-recursion-root, cflow-recursion-next)
(cflow-goto-expand): Silence warnings about `goto-line`.
(cflow-recursion-next): Don't assume point-min==1.
Avoid warning about `next-line`.
(cflow-goto-sibling): Remove unused var `rx`.
(cflow--read-only): Rename from `cflow-read-only` to make it
clear it's
internal. Adjust all users.
(cflow-font-lock-keywords): Use backquote and don't use the
font-lock-*-face variables which are now obsolete.
(cflow-recursion-root-line): Declare.
(cflow-mode): Use `define-derived-mode`.
(auto-mode-alist): Add ourselves to it.
2025-05-05 Sergey Poznyakoff <gray@gnu.org>
Bugfixes
* src/parser.c (yyparse): Remove extern qualifier before parsing
the declaration.
(parse_variable_declaration): Ignore optional qualifiers before
struct or union.
(dirdcl): Allow for optional parentheses around function name.
2025-01-06 Sergey Poznyakoff <gray@gnu.org>
Update THANKS
Update rules for building online docs
* doc/Makefile.am: Don't use legacy texi2html
* doc/gendocs.sh: Update from gnulib.
Fix representation of two whitespaces in cflow.texi
Support integer size suffixes
Update copyright years
2024-09-04 Sergey Poznyakoff <gray@gnu.org>
Update FSF address
2024-07-19 Sergey Poznyakoff <gray@gnu.org>
Upgrade gnulib
Update copyright years
Fix possible use after free
* src/symbol.c (ident_change_storage): Always unlink symbol from
whatever list it may be in.
Bugfix
* src/parser.c (parse_variable_declaration): Handle } separately,
because expression() puts it back before returning and this is the
only place where it is used without nexttoken() after it.
* tests/Makefile.am: Add new testcase.
* tests/testsuite.at: Likewise.
* tests/corner.at: New file.
2024-03-08 Sergey Poznyakoff <gray@gnu.org>
Allow the use of volatile and const in typedefs
2023-06-03 Sergey Poznyakoff <gray@gnu.org>
Use autoconf 2.17 and automake 1.16.5
Bugfix
* src/main.c (find_option_type): Check upper length limit.
2022-01-02 Sergey Poznyakoff <gray@gnu.org>
Update copyright year
2021-12-30 Sergey Poznyakoff <gray@gnu.org>
Version 1.7
Fix the "no invariant" text in the documentation license
2021-12-23 Sergey Poznyakoff <gray@gnu.org>
Fix the info direntry for cflow mode
2021-11-05 Sergey Poznyakoff <gray@gnu.org>
Document the --target option. New option --start: alias for
--main.
Fix recursive call detection
* src/symbol.c (install): Initialize ord to -1.
* src/output.c (tree_output): Skip callees with ord == -1.
2021-05-07 Sergey Poznyakoff <gray@gnu.org>
Fix incorrect assumptions about number of symbols in the symbol
table.
* src/symbol.c (collect_data): New member: count.
(collect_processor,collect_list_entry): Reallocate the syn
array as
needed.
(collect_symbols): Initialize sym to NULL and count to 0.
2021-04-05 Sergey Poznyakoff <gray@gnu.org>
Version 1.6.92
* NEWS: Update.
* configure.ac: Version 1.6.92
* po/POTFILES.in: Add missing file.
* src/main.c (symbol_override): Detect cyclic definitions.
2021-04-04 Sergey Poznyakoff <gray@gnu.org>
Minor fixes.
* configure.ac: Move wordsplit to src
* src/Makefile.am: Likewise.
* elisp/cflow-mode.el: Fix regular expressions. Character class \w
does not include _, which is allowed in identifiers.
cflow-mode: functions for moving to the next and previous calls
at the same level
* elisp/cflow-mode.el (cflow-next-function)
(cflow-prev-function): New functions.
Improve parsing of typecasts.
* src/cflow.rc: Mark 'typeof' as wrapper.
* src/parser.c (expression): Allow for wrappers and explicit
structures in typecasts.
(dcl): Don't skip token that follows the wrapper.
* tests/struct.at: Test for unions in typecasts.
Fix package name extraction in bootstrap
2021-04-02 Sergey Poznyakoff <gray@gnu.org>
Document the dot output format
2021-04-01 Sergey Poznyakoff <gray@gnu.org>
Fix node labels in dot format
New output format: dot
* src/dot.c: New file.
* src/Makefile.am: Add new file.
* src/cflow.h (dot_output_handler): New proto.
* src/main.c: Register the "dot" output format.
Minor changes
2021-04-01 Sergey Poznyakoff <gray@gnu.org>
Revise docstrings
* src/main.c: Revise docstrings. Customize help output.
* doc/cflow.texi: Remove obsolete passage.
* po/POTFILES.in: Update.
* configure.ac: Version 1.6.91
* NEWS: Update.
2021-04-01 Sergey Poznyakoff <gray@gnu.org>
cflow-mode: new command cflow-find-caller
2021-03-30 Sergey Poznyakoff <gray@gnu.org>
New option: --target
The --target=F option instructs cflow to print only paths
going from
the starting symbol ("main") to the function F. Multiple --target
options are allowed.
* src/cflow.h (symbol_target): New symbol flag.
(symbol) <visible>: New field.
(output_visible): New extern.
(install_target,eliminate_non_targets): New protos.
* src/main.c: New option "--target".
(include_symbol): Don't include symbol if the value of its
"visible" field doesn't equal that of output_visible.
* src/output.c: Eliminate non-target paths before tree output.
* src/parser.c: Cut off the tree at target symbols.
(get_symbol): Treat symbol_target same as symbol_start.
* src/symbol.c (target_symbol_list): New variable.
(install_starter): Don't use append_symbol to avoid setting
the "entry" symbol field.
(install_target)
(eliminate_non_targets): New functions.
2021-03-30 Sergey Poznyakoff <gray@gnu.org>
Fix improper use of strdup/strlen
* src/c.l (pp_finalize): Append \0 to obstack prior to finalizing
the object.
Accept multiple start symbols
* doc/cflow.texi: Document changes.
* src/cflow.h (symbol_start): New flag.
(install_starter,set_default_starter,clear_starters)
(first_starter,next_starter): New protos.
* src/main.c (no_main_option): New static;
(start_name): Remove.
(main): Change handling of the --main and --no-main options.
* src/output.c (tree_output): Iterate over all defined starter
symbols.
* src/parser.c (get_symbol): Special handling for symbol_start.
* src/symbol.c
(install_starter,set_default_starter,clear_starters)
(first_starter,next_starter): New functions.
Update NEWS for intermediate release
Change some option docstrings
2021-03-30 Sergey Poznyakoff <gray@gnu.org>
Reset static caller at the end of compilation unit.
This fixes CVE-2019-16165, 66
* src/cflow.h (reset_static_caller): New proto.
* src/parser.c (reset_static_caller): New function.
* src/symbol.c (delete_statics): Call reset_static_caller.
2021-03-30 Sergey Poznyakoff <gray@gnu.org>
Fix parsing of K&R style function declarations
* src/parser.c (get_knr_args): Take into account qualifiers.
2021-03-25 Sergey Poznyakoff <gray@gnu.org>
Use texi2html to produce online version of the manual
2021-03-24 Sergey Poznyakoff <gray@gnu.org>
Improve online version of the manual.
2021-01-06 Sergey Poznyakoff <gray@gnu.org>
Update copyright years
2020-06-14 Sergey Poznyakoff <gray@gnu.org>
Use wordsplit v1.1
2019-07-10 Sergey Poznyakoff <gray@gnu.org>
Use wordsplit from submodule
2019-02-23 Sergey Poznyakoff <gray@gnu.org>
Version 1.6
2019-02-10 Sergey Poznyakoff <gray@gnu.org>
Finish implementation of --all
* doc/cflow.1: Document the --all --all behavior
* doc/cflow.texi: Likewise.
* src/main.c: Increment all_functions for each -A option.
* src/output.c (tree_output): If one --all option is used,
output graphs
for all top-level functions (i.e. functions, not reachable from
other ones).
If used twice, output graphs for all global function.
* tests/all.at: New test.
* tests/Makefile.am: Add new test.
* tests/testsuite.at: Likewise.
2019-02-10 Sergey Poznyakoff <gray@gnu.org>
Fix processing of typedef struct and struct declarations. Fix
--xref mode.
Some constucts were processed incorrectly (see typedef.at for
examples).
Unit-local types were not displayed in xref mode.
* src/cflow.h (symbol_temp): Rename to symbol_temp. All uses
changed.
* src/output.c (tree_output): In all_functions mode: print
all functions
without explicit caller.
* src/parser.c (save_token): Process curly braces.
(fake_struct): Don't restore stack upon encountering identifier or
modifier. See typedef.at for testcases.
(parse_variable_declaration): restore stack only if type_end is -1
(no
tag encountered). See struct06 in struct.at
(skip_struct): Minor change.
* src/parser.h: Redefine token types as enum.
* src/symbol.c (unit_local_list): New static.
(static_free): Preserve unit-local symbols in unit_local_list
in xref
mode.
(collect_symbols): Consider symbols from unit_local_list.
* tests/Makefile.am: Add new testcases.
* tests/testsuite.at (CFLOW_TEST): New macro.
Include new testcases.
* tests/struct.at: New file.
* tests/typedef.at: New file.
* tests/struct01.at: Remove.
* tests/struct02.at: Remove.
* tests/struct03.at: Remove.
* tests/struct04.at: Remove.
* .gitignore: Update.
2019-02-09 Sergey Poznyakoff <gray@gnu.org>
Minor change
* src/output.c (tree_output): Make sure the main subtree is never
output twice.
* src/wordsplit.c: Update from grecs.
* src/wordsplit.h: Likewise.
2019-02-08 Sergey Poznyakoff <gray@gnu.org>
Fix the documentation
Fix https://savannah.gnu.org/bugs/index.php?47110
* src/parser.c (expression): Fix parsing of type casts.
* tests/memberof.at: New test case.
* tests/testsuite.at: Add new test.
* tests/Makefile.am: Add new test.
Fix typo
Include in output functions that don't call other functions
* src/output.c (tree_output): When outputting all graphs, skip
only functions that have no source file information.
* src/parser.c (declare): Don't install symbols with empty
declarations.
Upgrade gnulib
Update copyright statements
New options: --all and --no-main
* NEWS: Document --all and --no-main
* configure.ac: Version 1.5.90
* doc/cflow.texi: Document --all and --no-main
* src/cflow.h (all_functions): New extern.
* src/main.c: New options: -A (--all) and --no-main
* src/output.c (tree_output): Output all graphs if
all_functions is set or no main function is defined.
2019-01-22 Sergey Poznyakoff <gray@gnu.org>
Bugfix
* src/main.c (main): Make sure preprocessor options are collected
before parsing source files.
2017-01-02 Sergey Poznyakoff <gray@gnu.org>
Happy GNU Year
2016-11-14 Sergey Poznyakoff <gray@gnu.org>
Include static symbols as root points in inverted graphs.
* src/cflow.h (linked_list_size): New function.
* src/linked-list.c (linked_list_size): New function.
* src/symbol.c (collect_symbols): Include static symbols,
if allowed by sel.
* src/main.c (parse_opt): Exclude static symbols for --xref
2016-11-11 Sergey Poznyakoff <gray@gnu.org>
Bugfix
* src/parser.c (tokdel): Fix amount of memory to move.
* THANKS: Niklas Angebrand
2016-05-17 Sergey Poznyakoff <gray@gnu.org>
Version 1.5
* NEWS: Version 1.5
* configure.ac: Likewise.
* src/main.c (parse_opt): Bugfix.
* src/parser.c: Include ctype.h.
* src/symbol.c (hash_symbol_hasher): Fix signature.
2016-03-22 Sergey Poznyakoff <gray@gnu.org.ua>
Fix flowchart-generation rule in Makefile and in docs
Don't use $@ in explicit rules.
Update copyright years
2016-03-22 Sergey Poznyakoff <gray@gnu.org.ua>
Properly handle invalid input
See https://savannah.gnu.org/bugs/?44113
* src/parser.c (cleanup_stack): Ignore negative deltas.
(parse_function_declaration): Don't set caller if the symbol
is in automatic storage. Note: that means nested function
definitions
can't be handled.
* tests/invalid.at: New test case.
* tests/Makefile.am: Add new test case.
* tests/testsuite.at: Likewise.
2016-03-04 Sergey Poznyakoff <gray@gnu.org>
Fix handling of such declarations as "struct x *a, *b";
* src/parser.c (fake_struct)
(parse_variable_declaration): Correctly determine end of type.
* tests/decl01.at: New test case.
* tests/Makefile.am: Add new test.
* tests/testsuite.at (CFLOW_CHECK_PROG): Don't add extra newline
at the end of expout. All uses updated.
2015-03-02 Sergey Poznyakoff <gray@gnu.org.ua>
Switch to Texinfo 5 and Imprimatur
* .gitmodules: Add imprimatur as a submodule.
* Makefile.am: Update ACLOCAL_AMFLAGS
* configure.ac: Initialize imprimatur
* doc/Makefile.am: Likewise.
* doc/gendocs.sh: New file.
* doc/rendition.texi: Remove.
Update copyright years
2014-02-27 Sergey Poznyakoff <gray@gnu.org>
Version 1.4.90
2014-02-08 Sergey Poznyakoff <gray@gnu.org>
Fix bootstrap
2014-02-07 Sergey Poznyakoff <gray@gnu.org.ua>
Use exit codes consistently.
* doc/cflow.1: Document exit codes.
* doc/cflow.texi: Likewise.
* src/cflow.h: Define exit code constants.
* src/main.c: Use exit codes consistently.
* src/output.c: Likewise.
* src/parser.c: Likewise.
* src/posix.c: Likewise.
* src/rc.c: Likewise.
Use wordsplit.[ch] (from grecs) instead of the obsolete argcv.[ch]
Update copyright statements. Remove 'Front-Cover' clause from
cflow.texi
Output debugging info to stderr instead of stdout.
Add a manpage.
2014-02-07 Sergey Poznyakoff <gray@gnu.org.ua>
Correctly handle functions returning struct/union
This fixes bug #31792.
* bootstrap (gnulib_extra_files): Remove "missing"
* gnulib: Upgrade
* gnulib.modules: Add xalloc.
* src/Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
* src/parser.c (token_type_str)
(dbgtok,debugtoken): New diagnostic functions.
(tokdel,tokins): New functions.
(nexttoken): Clear yylval.str. Print token stack state.
(putback): Copy all data to tok. Print token stack state.
(file_error,restore
(is_function): Hanlde struct, union and enum: all these can
appear in the return type specification.
(fake_struct): Don't destroy token stack. Use tokdel and tokins
to modify it.
(parse_variable_declaration): Likewise.
* tests/Makefile.am: Add new testcases.
* tests/testsuite.at: Likewise.
* tests/struct02.at: New file.
* tests/struct03.at: New file.
* tests/struct04.at: New file.
2011-10-11 Sergey Poznyakoff <gray@gnu.org.ua>
Final cleanup before the release.
* NEWS: Update.
* README: Update.
* doc/cflow.texi: Update.
* src/main.c (symbol_override): pass allocated argument to
install.
* src/parser.c (yyparse): Return 0.
Minor fix.
* src/parser.c (dcl): allow for qualifier wherever a modifier
is allowed.
Change to double-space sentence spacing in cflow.texi.
Improve the docs.
* doc/cflow.texi: Document symbol classes and aliases.
* src/cflow.rc: Minor change.
* src/main.c: Mention aliasing feature in the docstring for
--symbol.
Update NEWS.
2011-10-10 Sergey Poznyakoff <gray@gnu.org.ua>
Improve parser. Allow users to declare aliases to other symbols.
The latter feature is useful for declaring reserved symbols such
as __restrict or __inline, e.g. --symbol __restrict:=restrict
instructs cflow to treat `__restrict' exactly as `restrict'.
* src/Makefile.am: Minor fix in rule for flowgraph.
* src/c.l (init_tokens): New function, separated from
init_lex.
Install qualifiers.
* src/cflow.h (symbol_alias): New flag.
(symbol)<alias>: New member.
(INSTALL_DEFAULT,INSTALL_OVERWRITE)
(INSTALL_CHECK_LOCAL,INSTALL_UNIT_LOCAL): New defines.
* src/cflow.rc: Rewrite for use with --cpp='gcc -E'
* src/main.c (symbol_override): Extend syntax to allow for
defining
aliases to other tokens (--symbol __inline:=inline).
* src/parser.c (print_token): print qualifiers and ops.
(file_error): Change signature. All uses changed.
(save_token): Improve output spacing.
(skip_balanced): Treat LBRACE0 and RBRACE0 as { and }.
(is_function): allow for qualifiers and wrappers before
defintion.
(parse_function_declaration): Remove PARM_WRAPPER case: it
is taken care of by the caller.
(fake_struct): leave when '(' is encountered.
(parse_variable_declaration): Allow for qualifiers before
the identifier.
(skip_struct): Use skip_balanced.
(dcl): Handle wrappers. Leave if a semicolon is encountered.
(dirdcl): Optimize handing of wrapper.
(maybe_parm_list): Handle qualifiers.
(declare): allow for wrappers.
(declare_type): Pass INSTALL_UNIT_LOCAL as a flag to install.
* src/symbol.c (lookup): Argument is const now.
(install): Change semantics of the 2nd argument.
(install_ident): Change the call to install accordingly.
* tests/nfparg.at: Change spacing to reflect changes to
save_token.
2011-10-10 Sergey Poznyakoff <gray@gnu.org.ua>
Improve local symbol detection.
* src/cflow.h (install): Change prototype.
* src/parser.c (skip_balanced): Don't put extra token back.
* src/symbol.c (install): Take two arguments, the 2nd one
specifying whether the symbol can be local to the compilation
unit. All uses updated.
(delete_symbol): Don't delete symbol in reverse tree mode, if
its callee list is not empty.
Complement a43d8894.
* src/parser.c (save_token): Hanlde [ and ]. Do not enforce
space after ).
* tests/fdecl.at: Reflect changes in spacing.
* tests/knr.at: Likewise.
* tests/multi.at: Likewise.
* tests/pwrapper.at: Likewise.
* tests/struct00.at: Likewise.
* tests/struct01.at: Likewise.
2011-10-09 Sergey Poznyakoff <gray@gnu.org.ua>
Accept qualifiers before declarations.
* src/c.l: Handle "inline" keyword.
* src/main.c (symbol_optype): Add "qualifier".
* src/parser.c (print_token): Correctly handle
PARM_WRAPPER and STRING.
(save_token): Handle QUALIFIER.
In verbose mode, warn about unexpected symbols.
(yyparse): Handle QUALIFIER and PARM_WRAPPER.
* src/parser.h (QUALIFIER): New define.
2011-10-09 Sergey Poznyakoff <gray@gnu.org.ua>
Allow for wrappers following the structure definition.
* src/c.l (get_token): do not call yylex if previous call returned
EOF.
(source): Clear EOF indicator.
* src/linked-list.c: Placate gcc warnings.
* src/output.c: Likewise.
* src/parser.c (skip_balanced): New function.
(skip_struct): Allow for a wrapper after closing brace.
* tests/struct00.at: New testcase.
* tests/struct01.at: New testcase.
* tests/Makefile.am: Add new testcases.
* tests/testsuite.at: Likewise.
* NEWS, configure.ac: Set version 1.4
* THANKS: Update.
2011-10-08 Sergey Poznyakoff <gray@gnu.org.ua>
Bugfix
* src/parser.c (func_body): Reset caller when the topmost block
is closed.
2011-08-18 Shigio YAMAGUCHI <shigio@gnu.org>
Fix the output of branch marks in tree mode.
* src/output.c (direct_tree)
(inverted_tree): Use is_last instead of is_printable to decide
what mark to use for the line.
* tests/bartest.at: New testcase.
* tests/Makefile.am: Add bartest.at
* tests/testsuite.at: Include bartest.at
2010-01-02 Sergey Poznyakoff <gray@gnu.org.ua>
Update copyright years.
Happy GNU Year!
2009-11-09 Sergey Poznyakoff <gray@gnu.org.ua>
Minor changes
* bootstrap.conf: Ignore .bootstrap.
Housekeeping changes.
* .gitmodules: Make gnulib a submodule.
* Makefile.am (SUBDIRS): Rename `lib' to `gnu'.
* configure.ac: Likewise.
* README-hacking: Update
* bootstrap, bootstrap.conf: Update.
* gnulib.modules: Remove `malloc'.
* lib/Makefile.am: Remove.
* lib/argcv.c, lib/argcv.h: Move to src.
* po/POTFILES.in, src/Makefile.am: Reflect the above changes.
* src/parser.c (declare): Improve diagnostic messages.
Raise version number to 1.3.1.
* configure.ac, NEWS: Raise patchlevel number.
* Makefile.am (alpha, alphacheck): New rules.
Speed-up recursive call detection.
* src/depmap.c: New file.
* src/Makefile.am: Add depmap.c.
* src/cflow.h (struct symbol.ord): New member.
(collect_symbols): Change signature. All callers
updated.
(collect_functions): New proto.
(symbol_is_function): New proto.
(cflow_depmap_t): New data type.
(depmap_alloc, depmap_set)
(depmap_isset, depmap_tc): New prototypes.
* src/output.c (symbol_is_function): New function.
(scan_tree): Remove.
(tree_output): Use depmap to find out recursive calls.
* src/symbol.c (static_func_list): New list.
(static_free): Add static functions to static_func_list.
(collect_symbols): Return size_t. Take additional number
of slots in the 3rd argument.
(collect_functions): New function.
Fix parsing of typedefs after `struct'.
* src/c.l: Include cflow.h (and, consequently, config.h) at
the top
of the generated source.
(prev_token): New static.
(get_token): Set prev_token.
(ident): Treat any valid identifier after struct/union/enum
as identifier (do not attempt any symbol lookup).
2009-07-11 Sergey Poznyakoff <gray@gnu.org.ua>
Version 1.3
2009-07-01 Sergey Poznyakoff <gray@gnu.org.ua>
Bugfix.
* src/parser.c (parse_variable_declaration): Skip eventual
modifiers
before the ident.
2009-06-29 Sergey Poznyakoff <gray@gnu.org.ua>
Use doubly-linked lists to keep statics and autos.
* src/Makefile.am (cflow_SOURCES): Order sources.
* src/cflow.h (struct linked_list_entry): Add new member: list.
(struct symbol): New members: owner, entry
(install_ident, ident_change_storage): New prototypes.
(linked_list_iterate, linked_list_unlink)
(data_in_list): New prototypes.
* src/linked-list.c (linked_list_append)
(linked_list_iterate): Update for doubly-linked lists.
(linked_list_unlink): New function.
(linked_list_prepend): Comment out: not used this far.
* src/parser.c: Use install_ident and ident_change_storage.
* src/symbol.c: Keep information about automatic
variables/parameters (on a per-function basis) and static
identifiers (on a per-module basis) in two separate linked
lists. This speeds up cleanup procedures.
2009-06-28 Sergey Poznyakoff <gray@gnu.org.ua>
Provide a general-purpose type for singly-linked list.
* src/cflow.h (Cons, Consptr, CAR, CDR): Remove
(struct linked_list_entry): New type.
(struct linked_list): New type.
(linked_list_free_data_fp): New typedef.
(struct symbol): Change types of ref_line, callee and caller
to struct linked_list. All usages changed.
(linked_list_head): New define.
(linked_list_create, linked_list_destroy)
(linked_list_append, linked_list_prepend): New prototypes.
(cleanup, append_to_list): Remove
* src/main.c (arglist): Change type to struct linked_list
* src/output.c, src/parser.c, src/symbol.c: Use new
linked list functions.
Minor changes.
* Makefile.am: Improve ChangeLog rule
* configure.ac: Remove AH_BOTTOM
* gnulib.modules: Add argp-version-etc, progname.
Remove version-etc.
* src/main.c: Use argp-version-etc
2009-06-28 Naohiro Ooiwa <nooiwa@miraclelinux.com>
Fix coredump (tiny change)
* src/main.c (symbol_override): Fix conditional logic to prevent
coredump on invalid usage. Require that the argument always have
':' in it.
2009-02-06 Sergey Poznyakoff <gray@gnu.org.ua>
Update docs
Switch to git
2007-06-29 Sergey Poznyakoff <gray@gnu.org.ua>
Final update for GPLv3
2007-06-28 Sergey Poznyakoff <gray@gnu.org.ua>
* build-aux/bootstrap: Reflect the change of the TP URL
2007-06-27 Sergey Poznyakoff <gray@gnu.org.ua>
Relicense under GPLv3
2007-05-18 Sergey Poznyakoff <gray@gnu.org.ua>
* src/main.c: Remove --license option
* build-aux/gnulib.modules: Add version-etc
* src/main.c, doc/cflow.texi: Remove --license option
* tests/version.at: Update
* bootstrap.conf: New file
* build-aux/bootstrap: Replaced from the gnulib CVS
* configure.ac: Update
* po/Makevars: Remove automatically generated file
* src/main.c: Remove #include <strndup.h>
* po/da.po, po/pl.po, po/uk.po, po/vi.po: Removed. Translations
will be imported directly from TP.
* lib/Makefile.am: New file
* lib/Makefile.tmpl: Removed
* README-hacking: New file
2006-09-11 Sergey Poznyakoff <gray@gnu.org.ua>
* src/main.c (doc): Reformat argp docstring in accordance with the
new argp guidelines. Remove unneeded translators comment.
(main): Set program_name.
2006-09-10 Sergey Poznyakoff <gray@gnu.org.ua>
* configure.ac: Remove definition of
HAVE_DECL_PROGRAM_INVOCATION_NAME and
PROGRAM_INVOCATION_NAME_DECLARED.
Temporarly add AM_MKINSTALLDIRS
* build-aux/bootstrap: Minor fixes
* lib/Makefile.tmpl: Define AM_CPPFLAGS
(EXTRA_DIST): Remove pin.c
* lib/pin.c: Remove
2006-09-07 Sergey Poznyakoff <gray@gnu.org.ua>
* src/parser.c (declare, parse_dcl, parse_knr_dcl): Fix parsing of
K&R declarations, broken by modifications on 2005-09-21.
* tests/knr.at: New test case
* tests/Makefile.am: Add new testcase
* tests/testsuite.at: Likewise
* THANKS: Add Laurent and Robert E. Michael
2006-09-06 Sergey Poznyakoff <gray@gnu.org.ua>
* src/symbol.c (delete_symbol): Do not free referenced symbols.
* tests/static.at: New testcase
* tests/Makefile.am: Add new testcase
* tests/testsuite.at: Likewise
2006-07-21 Sergey Poznyakoff <gray@gnu.org.ua>
* build-aux/bootstrap (update_po): Fix updating a single
translation.
2006-07-09 Sergey Poznyakoff <gray@gnu.org.ua>
Released version 1.1.
Tag: release-1_1
* THANKS: Add Louis Bertrand.
2006-06-12 Sergey Poznyakoff <gray@gnu.org.ua>
* src/output.c (set_level_mark): Fix allocation condition
(output): Remove erroneous initialization of level_mark.
2006-03-15 Sergey Poznyakoff <gray@gnu.org.ua>
Fix bug spotted by Jerry St.Clair: incorrect handling of
global/static and static/static name clashes.
* src/parser.c (declare): Do not report name clashes
if a static symbol overrides another static or global.
(add_reference): Do not refer to static symbols if
-i^s was used.
* src/symbol.c: Change organization of the symbol table: the
table entry contains struct table_entry, which contains a pointer
to the head of the symbol list associated with the entry. Thus,
deletions from the table can be handled in a more natural manner.
All functions changed to reflect the change.
(unlink_symbol): New function.
(delete_symbol): Rewritten using unlink_symbol
(delete_statics): always call static_processor
* THANKS: Add Jerry St.Clair.
* tests/Makefile.am: Add hiding.at, multi.at
* tests/testsuite.at: Likewise.
* tests/hiding.at: New testcase
* tests/multi.at: New testcase
* tests/fdecl.at, tests/funcarg.at, tests/include.at,
tests/nfarg.at, tests/nfparg.at, tests/parm.at,
tests/ssblock.at: Uniformly begin AT_SETUP text with a lowercase
letter.
2005-11-03 Sergey Poznyakoff <gray@gnu.org.ua>
* build-aux/bootstrap: If file `.bootstrap' exists in the cwd and is
readable, prepend its contents to the command line
* src/parser.c (dcl): Fix bug introduced 2005-03-22
* tests/nfarg.at: New test.
* tests/nfparg.at: New test.
* tests/Makefile.am: Add new tests.
* tests/testsuite.at: Likewise
* configure.ac: Raise version number to 1.1
* NEWS: Likewise
* THANKS: Add Shigio YAMAGUCHI.
2005-10-19 Sergey Poznyakoff <gray@gnu.org.ua>
* README: Minor fixes.
* build-aux/gnulib.modules (snprintf): Add module
2005-10-15 Sergey Poznyakoff <gray@gnu.org.ua>
* THANKS: Add Nelson Beebe.
* tests/atlocal.in: Make sure unsetting POSIXLY_CORRECT does not
produce an error.
* tests/version.at: Fix displaying version warning
* po/pl.po,po/uk.po: Updated translations.
2005-10-05 Sergey Poznyakoff <gray@gnu.org.ua>
* src/cflow.h,src/main.c,src/parser.c,src/posix.c
(omit_symbol_name_option): Rename to omit_symbol_names_option.
* src/cflow.h (newline): New prototype
* src/parser.c: Minor fixes
* src/symbol.c: Minor fixes
* doc/cflow.texi: Updated. Mention cflow2vcg and vcg tools.
* src/cflow.h (enum symbol_flag): New type
(struct symbol): Replace `int temp' with `enum symbol_flag flag'
(delete_parms,move_parms): New functions
* src/main.c: Rename --omit-symbol-name to --omit-symbol-name for
consistency.
* src/parser.c: Fix handling of function formal parameters:
(parm_level): New variable
(parse_declaration): Call delete_parms
(maybe_parm_list): Keep track of the parameter nesting level.
(func_body): Call move_parms
(declare): Special handling for parameters.
* src/symbol.c (install): Initialize sym->flag
(temp_processor): Use s->flag
(delete_parms,move_parms): New functions
* tests/parm.at: New testcase
* tests/Makefile.am: Add parm.at
* tests/testsuite.at: Likewise
2005-10-04 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/cflow.texi: Fix posix output
* src/parser.c (parse_struct): Removed function
* src/cflow.h (omit_arguments_option,omit_symbol_name): New
options.
* src/main.c: Likewise.
* src/parser.c (save_stack): Rewritten. Save only stack positions,
do not create character string
(undo_save_stack,finish_save_stack): New functions
(finish_save): Removed
* src/posix.c (print_symbol_type): Updated to match new
finish_save_stack strategy.
2005-10-03 Sergey Poznyakoff <gray@gnu.org.ua>
* configure.ac: Raised version number to 1.0.
Set RENDITION level depending on the program version.
Make sure HAVE_DECL_PROGRAM_INVOCATION_NAME is 1.
* NEWS: Updated
* doc/Makefile.am (RENDITION): Removed assignment.
* doc/cflow.texi: Fix typo
* doc/d.c, doc/wc.c: Untabify
* src/Makefile.am (cflow_LDADD): Add $(LIBINTL)
* src/main.c ("print" option): Set hidden attribute. I'm not sure
whether we need this option.
Include strndup.h
* src/parser.c (parse_function_declaration): Fix ANSI compatibility
* lib/argcv.c (argcv_unquote_copy): Minor fix.
* src/Makefile.am (cflow_CFLOW_INPUT): Use @OBJEXT@ instead of
$(OBJEXT) to satisfy non-GNU makes.
2005-09-27 Sergey Poznyakoff <gray@gnu.org.ua>
* configure.ac: Raised version number to 0.2.3
* NEWS: Updated
* doc/cflow.texi: Updated.
* po/pl.po: Updated
* po/uk.po: Updated
* src/main.c: Updated
* src/parser.c (parse_function_declaration): Fix coredump
2005-09-26 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/cflow.texi: Updated
* po/pl.po: Updated
* po/uk.po: Updated
* src/main.c: Updated
* src/parser.c: Updated
* doc/gendocs_template: Bugfixes.
* src/main.c: Use --no-OPTION instead of --OPTION=no
* doc/cflow.texi: Likewise
2005-09-25 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/Makefile.am (EXTRA_DIST): Remove cflow.txt
* src/c.l (yywrap): Close yyin, and clean up the buffer
(get_token): New function. Interface to yylex.
* src/cflow.h (get_token): New function
* src/parser.c (parse_function_declaration): Take second argument,
specifying whether the function is called from parameter
declaration. All callers updated.
(nexttoken): Use get_token() instead of yylex();
(yyparse,func_body): Eat up static qualifier
* tests/ssblock.at, tests/funcarg.at: New testcases
* tests/Makefile.am: Add ssblock.at and funcarg.at
* tests/testsuite.at: Likewise
* README: Updated
* TODO: Updated
* doc/cflow.txt: Removed
* doc/cflow.texi: Finished! Some @FIXMEs left, though.
* elisp/cflow-mode.el (cflow-find-function): Change binding to
@key{s}, for compatibility with po-mode.
* src/Makefile.am (CFLOW_FLAGS): Use --brief
* src/cflow.h (emacs_option): New variable
* src/gnu.c: Handle new --emacs option.
* src/main.c: Likewise.
* src/posix.c: Likewise.
* src/output.c (newline): Remove static qualifier
* doc/foo.c: New sample source
* doc/Makefile.am: Add foo.c
* doc/cflow.texi: Updated
* doc/wc.c: Minor formatting changes
* src/Makefile.am (chart.cflow): Renamed to cflow.cflow and
rewritten in accordance with the cflow manual guidelines.
* src/main.c: Minor changes.
2005-09-24 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/cflow.texi: Updated
* doc/d.c: Rewritten to better suite sample purposes.
* src/Makefile.am (chart.cflow): Modified rule
* src/cflow.h (CFLOW_PREPROC): Changed default preprocessor to
/usr/bin/cpp.
2005-09-21 Sergey Poznyakoff <gray@gnu.org.ua>
* src/c.l (types): Add "restrict".
* src/cflow.rc: Define __const and __restrict as 'type'
* src/main.c (excluded_symbols,included_symbols): Removed
(symbol_map): New variable, instead of the previous two. All
references updated.
(symbol_override): Minor fix.
(parse_opt): Allow to use +,- and ^ in any part of the argument
string.
(included_char): Removed
* src/parser.c (parse_variable_declaration)
(parse_variable_declaration): Take an
extra argument indicating whether we are handling function
parameters. All uses changed.
(parse_variable_declaration,maybe_parm_list): Add error recovery.
(func_body): Handle static symbols separately.
(declare): Fix condition of declaring a function definition.
(reference): Update caller list as well.
* src/symbol.c (auto_processor): Delete only auto variables.
* tests/fdecl.at: New testcase
* tests/include.at: New testcase
* tests/attr.at: Fix to match new program diagnostics
* tests/Makefile.am: Add fdecl.at and include.at
* tests/testsuite.at: Likewise
2005-09-19 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/cflow.texi: Updated
* src/c.l: Support BCPL style comments
* src/parser.c (parse_function_declaration): Put token back after
an error.
(dirdcl): Handle wrappers after function declarations. Useful for
handling __attribute__.
(maybe_parm_list): Fixed counting of parameters. Print error
message on eof.
* tests/Makefile.am (TESTSUITE_AT): Add
attr.at,awrapper.at,pwrapper.at
* tests/testsuite.at: Rename CFLOW_ENV to CFLOW_OPT
Add attr.at,awrapper.at,pwrapper.at
* tests/reverse.at: Rename CFLOW_ENV to CFLOW_OPT
* tests/attr.at: New test
* tests/awrapper.at: New test
* tests/pwrapper.at: New test
2005-09-18 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/ack.c: New sample source
* doc/Makefile.am (EXTRA_DIST): Add ack.c
* doc/cflow.texi: Updated
* src/output.c (print_level): Use 5 digits of reference number
width.
2005-09-17 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/whoami.c: New sample program
* doc/Makefile.am (EXTRA_DIST): Add whoami.c
* doc/cflow.texi: Updated
* src/main.c (main): Assume POSIX output format if POSIXLY_CORRECT
is set.
* tests/atlocal.in: Unset POSIXLY_CORRECT
2005-09-14 Sergey Poznyakoff <gray@gnu.org.ua>
* src/main.c (parse_opt): Bugfix: Set preprocess_option if --cpp
is given.
* tests/version.at: Add keywords
* tests/direct.at: New test
* tests/reverse.at: New test
* tests/recurse.at: New test
* tests/testsuite.at (CFLOW_CHECK_PROG,CFLOW_CHECK,CFLOW_ENV): New
macros.
(direct.at,reverse.at,recurse.at): New tests
* tests/Makefile.am: Added new tests
* tests/atlocal.in: Make sure CFLOW_OPTIONS and CFLOWRC are
initialized to predictable values
* NEWS: Updated
* src/main.c (include_symbol): Ignore keywords.
* Makefile.am: Set up for testsuite
* configure.ac: Likewise
* tests/: New directory
* tests/Makefile.am: New file
* tests/atlocal.in: New file
* tests/testsuite.at: New file
* tests/version.at: New file
* tests/.cvsignore: New file
* src/main.c (main): Fixed coredump when no arguments were
passed.
2005-09-14 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/wc.c: New file. Test program for explanation purposes.
* doc/Makefile.am (EXTRA_DIST): Add wc.c
* doc/cflow.texi: Update bug reporting address.
2005-08-16 Sergey Poznyakoff <gray@gnu.org.ua>
* src/c.l (yywrap,source): Use preprocess_option to determine
whether preprocessing is needed.
* src/cflow.h (preprocess_option): New variable
* src/main.c: Likewise
* src/parser.c (parse_dcl): Finalize and free declaration buffer
even if declare is not called.
2005-08-06 Sergey Poznyakoff <gray@gnu.org.ua>
* src/cflow.h (cflow_output_init): New value
(output_init): New function
* src/gnu.c (gnu_output_handler): Handle cflow_output_init
* src/main.c: Number of i18n-related fixes.
(parse_opt): Call output_init
* src/output.c (output_init): New function
* src/parser.c: Number of i18n-related fixes.
* src/posix.c (posix_output_handler): Handle cflow_output_init
* po/POTFILES.in: Add lib/argp-help.c
* po/LINGUAS: Add pl and uk
* po/pl.po
* po/uk.po
2005-07-09 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argcv.c: Updated from mailutils
* lib/argcv.h: Likewise
* src/c.l (input_file_count): New variable
* src/cflow.h: Likewise
* src/cflow.rc: Updated
* src/main.c (main): Use input_file_count to decide whether to
print "no input files" diagnostics.
* src/rc.c (sourcerc): Bug fix
* README-alpha: Minor fix
* configure.ac: Make sure program_invocation_name and
program_invocation_short_name are always present. Define
program_name as an alias for the former (needed for lib/error.c).
* lib/pin.c: New file
* lib/Makefile.tmpl (EXTRA_DIST): Add pin.c
2005-05-18 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* COPYING, Makefile.am, configure.ac, doc/Makefile.am,
doc/cflow.texi, doc/fdl.texi, doc/gendocs_template,
elisp/Makefile.am, elisp/cflow-mode.el, lib/Makefile.tmpl,
lib/argcv.c, lib/argcv.h, src/Makefile.am, src/c.l,
src/cflow.h, src/gnu.c, src/main.c, src/output.c,
src/parser.c, src/parser.h, src/posix.c, src/rc.c,
src/symbol.c: Changed FSF postal address
2005-04-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* Makefile.am (SUBDIRS): Add po/
* configure.ac (AC_CONFIG_FILES): Add po/Makefile.in.
* build-aux/bootstrap: Take into account autopoint
* build-aux/gnulib.modules (gettext): New module
* src/Makefile.am (AM_CPPFLAGS): New variable
* src/c.l: Add gettext markers
* src/cflow.h: Likewise
* src/main.c: Likewise
* src/output.c: Likewise
* src/parser.c: Likewise
* src/rc.c: Likewise
* src/symbol.c: Likewise
* .cvsignore: New file
* po/.cvsignore: New file
* build-aux/.cvsignore: Updated
* po/Makevars: New file
* po/POTFILES.in: New file
2005-04-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
cflow dubbed a GNU package and moved to savannah.
* README-alpha (Checking Out the Sources): Updated the
instructions.
* README: Minor fix.
* configure.ac: Changed bug report address.
2005-03-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* lib/argcv.c: Imported from mailutils
* lib/argcv.h: Imported from mailutils
* lib/Makefile.tmpl: Added argcv
* src/cflow.rc: New file
* src/Makefile.am: Distribute cflow.rc
(chart.cflow): New rule
* src/c.l (CFLOW_PREPROC): Moved to cflow.h
(set_preprocessor): Accept NULL arg
* src/cflow.h (CFLOW_PREPROC): New define
(set_preprocessor,pp_option,print_level): New prototypes
(level_mark): Type changed to unsigned char.
* src/main.c (ignore_indentation): Renamed to use_indentation,
sense reverted. All callers updated
New options: --cpp, alias to --preprocess.
--no-cpp, disables preprocessing
* src/output.c (level_mark): Type changed to unsigned char.
* src/rc.c: Rewritten using argcv
* src/parser.c (ignore_indentation): Renamed to use_indentation,
sense reverted. All callers updated
2005-03-22 Sergey Poznyakoff <gray@Noldor.runasimi.org>
* TODO: Updated
* src/c.l (canonical_filename): New global
(update_loc): New function
(source): Invoke preprocessor if necessary
(yywrap): Stop preprocessor if necessary
* src/cflow.h (struct symbol.temp): New field
* src/gnu.c (gnu_output_handler): Do not print extra newlines
as separators
* src/main.c: New options -I, -U, -D and --preprocess
(main): Use ARGP_IN_ORDER when parsing arguments
* src/parser.c (dcl): Minor fix to allow for nameless
function-pointer arguments [int foo(int (*)())]
* src/parser.h (canonical_filename): New global
* src/symbol.c (install): Initialize sym->temp
(delete_statics): Unconditionally remove temporary symbols
2005-03-21 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* elisp/cflow-mode.el: Font locking support
2005-03-21 Sergey Poznyakoff <gray@Noldor.runasimi.org>
* README: Updated
* elisp/cflow.el: Renamed to
* elisp/cflow-mode.el: ... this and improved
* src/c.l: Fixed line counting in <string> state
* src/cflow.h (print_line_numbers): New variable
* src/gnu.c (print_level): Moved to output.c
(print_function_name): Do not output newline in cflow_output_text
* src/main.c: Reordered functions
(find_option_type): Take third argument.
(symbol_override,number,parse_level_string)
(set_level_indent): Operate on read-only strings
(options): New option --number (-n)
* src/output.c (print_level): Moved from gnu.c
(print_text): New function
(header): Removed
(is_printable,is_last): New functions
(direct_tree,inverted_tree): Fixed printing tree branches in
-T mode.
(tree_output): Do not print headers.
* src/parser.c (declare): Changed error message.
* src/posix.c (print_symbol): Call print_level();
(posix_output_handler) Do not output newline in cflow_output_text
2005-03-20 Sergey Poznyakoff <gray@Noldor.runasimi.org>
* src/cflow.h (GNU_STYLE_OPTIONS,SYSTEM_ERROR)
(FATAL_ERROR): Removed
(SymFunction): Renamed to SymIdentifier. All callers updated
(struct symbol): Removed union, rearranged fields. All callers
updated
Implemented -ix
* src/c.l: Likewise
* src/gnu.c: Likewise
* src/main.c: Likewise
* src/output.c: Likewise
* src/parser.c: Likewise
* src/posix.c: Likewise
* src/symbol.c: Likewise
* TODO: Updated
2005-03-20 Sergey Poznyakoff <gray@Noldor.runasimi.org>
* doc/Makefile.am: Updated
* doc/cflow.texi: Documentation framework
* doc/fdl.texi: GNU FDL
* doc/rendition.texi: Rendition macros
* doc/gendocs_template: Template for index.html
* doc/.cvsignore: Updated
2005-03-19 Sergey Poznyakoff <gray@Noldor.runasimi.org>
* .cvsignore: Updated
* COPYING: Added to the repository
* TODO: Updated
* src/Makefile.am (AM_LEXFLAGS): Use AM_LFLAGS instead. Also,
removed -pl
* src/c.l: Requires POSIX-compliant lex (e.g. flex).
(WS): Ignore \f and \r
(init_lex): Set lexer debugging level
(DIGITS): Require at least one digit
* src/cflow.h (record_typedefs,globals_only): Removed
(max_depth): New variable
(source,yyparse,cleanup,output,init_lex,init_parse)
(delete_autos,delete_statics,globals_only,include_symbol): New
prototypes
(register_output): Changed type of the second argument
(gnu_output_handler,posix_output_handler): Return int
* src/gnu.c (print_symbol,gnu_output_handler): Return int
* src/main.c: Implemented POSIX options (except -i x)
(options): Reordered. Removed -C, -t (in favor of -i t), and
-g (in favor of -i ^s). --brief option takes an optional
argument (enable/disable)
(progname): Removed
(globals_only,include_symbol): New functions
* src/output.c (output_driver.handler,print_symbol): Return int
(register_output): Changed type of the second argument
(is_var): Rewritten using include_symbol()
(direct_tree,inverted_tree): Do not descend any further if
print_symbol returns non-0.
Do not process the symbol if the current nesting level exceeds
maximum (set up by -d option).
(tree_output): Print either direct or inverted graph, not both
* src/parser.c: Stylistic changes
* src/parser.h (yylex): Prototype
* src/posix.c: Produce inverted graph. Honor --brief option
* src/rc.c: Include ctype.h
(expand_args): Removed unused variable
* src/symbol.c (hash_symbol_hasher,hash_symbol_compare): Minor
fixes
(delete_statics): globals_only is now a function
2005-03-19 Sergey Poznyakoff <gray@Noldor.runasimi.org>
* README-alpha: New file
* lib: New directory
* lib/Makefile.tmpl: New file
* lib/.cvsignore: New file
* Makefile.am (SUBDIRS): Add lib
* NEWS: Updated
* configure.ac: Raised version number to 0.2.1
Call cflow_GNULIB to check for missing sources
Call MU_DEBUG_MODE to enable debugging mode
* .cvsignore: Updated
* src/Makefile.am (INCLUDES,cflow_LDADD): Added
* build-aux: New directory
* build-aux/.cvsignore: New file
* build-aux/bootstrap: New file
* build-aux/debug.m4: New file
* build-aux/gnulib.modules: New file
* src/cflow.h: Include error.h and xalloc.h
(emalloc,efree): Removed. Use xmalloc instead
(error): Removed. Use gnulib version
* src/main.c: Use argp to parse arguments.
(temp_symbol_stack,say_and_die): Removed
(emalloc,efree,error): Removed
(xalloc_die): New function
(init): Updated
(symbol_override): Install symbols immediately
* src/symbol.c: Rewritten using hash module
* src/c.l: Fixed indentation
* src/gnu.c: Likewise
* src/output.c: Likewise
* src/parser.c: Likewise
* src/rc.c: Likewise
2005-03-19 Sergey Poznyakoff <gray@Noldor.runasimi.org>
* AUTHORS: New file
* NEWS: New file
* THANKS: New file
* Makefile.am: New file
* configure.ac: New file
* elisp: New directory
* doc/Makefile.am: New file
* src/Makefile.am: New file
* src/Makefile: Removed
* src/posix.c: New file
* src/gnu.c: New file
* TODO: Updated
* src/cflow.h: Updated
* src/obstack1.h: Removed
* src/output.h: Removed
* src/hilit-cflow.el: Removed
* src/collect.c: Removed
* src/html.c: Removed
* src/text.c: Removed
* src/cflow.el: Moved to /elisp
* src/main.c: New option -f (--format)
* src/c.l: Updated
* src/output.c: Likewise
* src/parser.c: Likewise
* src/rc.c: Likewise
* src/symbol.c: Likewise
* src/version.h: Likewise
* elisp/cflow.el: Moved from /src
* elisp/Makefile.am: New file
* src/.cvsignore: New file
* doc/.cvsignore: New file
* elisp/.cvsignore: New file
* .cvsignore: New file
2005-03-16 Sergey Poznyakoff <gray@Mirddin.farlep.net>
Initial import from my RCS archives. First revisions date
back to 1997. The plan is to convert this to a POSIX-compatible
cflow utility.
Local Variables:
mode: change-log
version-control: never
buffer-read-only: t
End:
|