Compare commits

..

206 Commits

Author SHA1 Message Date
Tim Edwards 45164bbf98 Merge branch 'master' into netgen-1.5 2025-11-08 02:00:04 -05:00
Tim Edwards 46cb8d6637 Merge branch 'master' into netgen-1.5 2025-10-24 02:00:04 -04:00
Tim Edwards 2825b786b7 Merge branch 'master' into netgen-1.5 2025-10-23 02:00:04 -04:00
Tim Edwards 0af8c7ad49 Merge branch 'master' into netgen-1.5 2025-10-10 02:00:03 -04:00
Tim Edwards 0aa20dcf62 Merge branch 'master' into netgen-1.5 2025-10-09 02:00:04 -04:00
Tim Edwards 7cbf15aab1 Merge branch 'master' into netgen-1.5 2025-10-03 02:00:02 -04:00
Tim Edwards 1de6f88f1e Merge branch 'master' into netgen-1.5 2025-09-10 02:00:02 -04:00
Tim Edwards 33fed391fd Merge branch 'master' into netgen-1.5 2025-09-01 02:00:02 -04:00
Tim Edwards 5f5248b3d0 Merge branch 'master' into netgen-1.5 2025-08-27 02:00:03 -04:00
Tim Edwards 80f9263004 Merge branch 'master' into netgen-1.5 2025-08-26 02:00:02 -04:00
Tim Edwards edb50746cb Merge branch 'master' into netgen-1.5 2025-08-19 02:00:02 -04:00
Tim Edwards f2368ca223 Merge branch 'master' into netgen-1.5 2025-05-18 02:00:02 -04:00
Tim Edwards ee93d52a26 Merge branch 'master' into netgen-1.5 2025-03-26 02:00:02 -04:00
Tim Edwards ba7004fd5b Merge branch 'master' into netgen-1.5 2025-03-10 02:00:02 -04:00
Tim Edwards 704bfbc871 Merge branch 'master' into netgen-1.5 2025-02-10 02:00:03 -05:00
Tim Edwards 7bee1851fa Merge branch 'master' into netgen-1.5 2025-01-05 02:00:04 -05:00
Tim Edwards e4a4621b96 Merge branch 'master' into netgen-1.5 2025-01-02 02:00:01 -05:00
Tim Edwards 3ca77300ac Merge branch 'master' into netgen-1.5 2024-12-28 02:00:02 -05:00
Tim Edwards 236fba18aa Merge branch 'master' into netgen-1.5 2024-11-15 02:00:04 -05:00
Tim Edwards 1272ed22fe Merge branch 'master' into netgen-1.5 2024-10-20 02:00:02 -04:00
Tim Edwards 6179ba8cb8 Merge branch 'master' into netgen-1.5 2024-10-17 02:00:02 -04:00
Tim Edwards aaf8fefc1a Merge branch 'master' into netgen-1.5 2024-10-16 02:00:02 -04:00
Tim Edwards abaf896f7f Merge branch 'master' into netgen-1.5 2024-10-15 02:00:02 -04:00
Tim Edwards e94d25b3f1 Merge branch 'master' into netgen-1.5 2024-10-08 02:00:03 -04:00
Tim Edwards e659495ef5 Merge branch 'master' into netgen-1.5 2024-10-04 02:00:03 -04:00
Tim Edwards 2ce3cf8dd9 Merge branch 'master' into netgen-1.5 2024-10-03 02:00:02 -04:00
Tim Edwards 05f433f334 Merge branch 'master' into netgen-1.5 2024-10-01 02:00:02 -04:00
Tim Edwards 2129073a38 Merge branch 'master' into netgen-1.5 2024-09-28 02:00:02 -04:00
Tim Edwards b0d980bb7d Merge branch 'master' into netgen-1.5 2024-08-17 02:00:03 -04:00
Tim Edwards ab0165b16c Merge branch 'master' into netgen-1.5 2024-05-17 02:00:02 -04:00
Tim Edwards 5197eb6186 Merge branch 'master' into netgen-1.5 2024-05-15 02:00:01 -04:00
Tim Edwards 48ed1f7583 Merge branch 'master' into netgen-1.5 2024-05-10 02:00:02 -04:00
Tim Edwards e63593c7e2 Merge branch 'master' into netgen-1.5 2024-04-04 02:00:01 -04:00
Tim Edwards 178af5f493 Merge branch 'master' into netgen-1.5 2024-03-05 02:00:02 -05:00
Tim Edwards ac8956c32e Merge branch 'master' into netgen-1.5 2024-02-20 02:00:03 -05:00
Tim Edwards b87f0fd5db Merge branch 'master' into netgen-1.5 2024-02-19 02:00:03 -05:00
Tim Edwards 21e9207924 Merge branch 'master' into netgen-1.5 2024-02-10 02:00:02 -05:00
Tim Edwards 8392721885 Merge branch 'master' into netgen-1.5 2024-02-07 02:00:02 -05:00
Tim Edwards 79bab50a79 Merge branch 'master' into netgen-1.5 2024-02-04 02:00:02 -05:00
Tim Edwards b83800d69b Merge branch 'master' into netgen-1.5 2024-02-03 02:00:02 -05:00
Tim Edwards 93b9cf6577 Merge branch 'master' into netgen-1.5 2024-01-04 02:00:02 -05:00
Tim Edwards bf53d52970 Merge branch 'master' into netgen-1.5 2023-12-04 02:00:02 -05:00
Tim Edwards 4250525e19 Merge branch 'master' into netgen-1.5 2023-11-21 02:00:01 -05:00
Tim Edwards c1ed4ce49e Merge branch 'master' into netgen-1.5 2023-10-28 02:00:04 -04:00
Tim Edwards ab327c5f82 Merge branch 'master' into netgen-1.5 2023-10-27 02:00:02 -04:00
Tim Edwards 2cb3937ee3 Merge branch 'master' into netgen-1.5 2023-10-23 02:00:02 -04:00
Tim Edwards 9b0afa893d Merge branch 'master' into netgen-1.5 2023-10-04 02:00:01 -04:00
Tim Edwards c0f7ebd625 Merge branch 'master' into netgen-1.5 2023-09-05 02:00:01 -04:00
Tim Edwards 9e9288f746 Merge branch 'master' into netgen-1.5 2023-09-02 02:00:02 -04:00
Tim Edwards bcbc736b51 Merge branch 'master' into netgen-1.5 2023-08-28 02:00:03 -04:00
Tim Edwards f5f1240073 Merge branch 'master' into netgen-1.5 2023-07-12 02:00:03 -04:00
Tim Edwards 02d7a1bd01 Merge branch 'master' into netgen-1.5 2023-06-13 02:00:02 -04:00
Tim Edwards 7878b3cfbc Merge branch 'master' into netgen-1.5 2023-04-15 02:00:01 -04:00
Tim Edwards 7f727e6674 Merge branch 'master' into netgen-1.5 2023-04-14 02:00:01 -04:00
Tim Edwards d111fa0a3b Merge branch 'master' into netgen-1.5 2023-03-30 02:00:02 -04:00
Tim Edwards 178b172c06 Merge branch 'master' into netgen-1.5 2023-03-08 02:00:03 -05:00
Tim Edwards 7870538ec9 Merge branch 'master' into netgen-1.5 2023-03-07 02:00:02 -05:00
Tim Edwards ee4e1e087f Merge branch 'master' into netgen-1.5 2023-03-05 02:00:01 -05:00
Tim Edwards 7a8b5e835b Merge branch 'master' into netgen-1.5 2023-03-01 02:00:03 -05:00
Tim Edwards 77f7a773e3 Merge branch 'master' into netgen-1.5 2023-02-28 02:00:03 -05:00
Tim Edwards 9a48a59f68 Merge branch 'master' into netgen-1.5 2023-02-25 02:00:03 -05:00
Tim Edwards 535b8285e9 Merge branch 'master' into netgen-1.5 2022-12-20 02:00:03 -05:00
Tim Edwards 1e1d506697 Merge branch 'master' into netgen-1.5 2022-12-16 02:00:03 -05:00
Tim Edwards 4edaf0813d Merge branch 'master' into netgen-1.5 2022-11-17 02:00:01 -05:00
Tim Edwards a4ae5ed989 Merge branch 'master' into netgen-1.5 2022-11-05 02:00:01 -04:00
Tim Edwards d850586a14 Merge branch 'master' into netgen-1.5 2022-11-03 02:00:03 -04:00
Tim Edwards 4b5b117100 Merge branch 'master' into netgen-1.5 2022-11-02 02:00:02 -04:00
Tim Edwards 935e54abe6 Merge branch 'master' into netgen-1.5 2022-11-01 02:00:02 -04:00
Tim Edwards 49ccf1949a Merge branch 'master' into netgen-1.5 2022-10-30 02:00:03 -04:00
Tim Edwards 9b84776374 Merge branch 'master' into netgen-1.5 2022-10-26 02:00:01 -04:00
Tim Edwards 2af3f2a3f7 Merge branch 'master' into netgen-1.5 2022-10-25 02:00:01 -04:00
Tim Edwards 738abbdad9 Merge branch 'master' into netgen-1.5 2022-10-01 02:00:01 -04:00
Tim Edwards 8d7569e9a3 Merge branch 'master' into netgen-1.5 2022-09-24 02:00:02 -04:00
Tim Edwards d9425163e1 Merge branch 'master' into netgen-1.5 2022-09-18 02:00:02 -04:00
Tim Edwards 9ba1dfe814 Merge branch 'master' into netgen-1.5 2022-09-17 02:00:02 -04:00
Tim Edwards fadd0ae2fc Merge branch 'master' into netgen-1.5 2022-09-16 02:00:02 -04:00
Tim Edwards 153ce0e2b3 Merge branch 'master' into netgen-1.5 2022-09-14 02:00:02 -04:00
Tim Edwards bfdacab28c Merge branch 'master' into netgen-1.5 2022-09-13 02:00:02 -04:00
Tim Edwards 7e9bd9f2a0 Merge branch 'master' into netgen-1.5 2022-06-28 02:00:02 -04:00
Tim Edwards ee92d880d7 Merge branch 'master' into netgen-1.5 2022-06-27 02:00:01 -04:00
Tim Edwards d3407b3e56 Merge branch 'master' into netgen-1.5 2022-06-15 02:00:50 -04:00
Tim Edwards 0a94bec191 Merge branch 'master' into netgen-1.5 2022-06-13 02:00:18 -04:00
Tim Edwards 4a7b6bf22a Merge branch 'master' into netgen-1.5 2022-06-09 02:00:52 -04:00
Tim Edwards 661c9ee854 Merge branch 'master' into netgen-1.5 2022-04-16 02:00:16 -04:00
Tim Edwards 5b21c1be3a Merge branch 'master' into netgen-1.5 2022-04-15 02:00:16 -04:00
Tim Edwards e11dbac384 Merge branch 'master' into netgen-1.5 2022-01-17 03:00:14 -05:00
Tim Edwards 0535128421 Merge branch 'master' into netgen-1.5 2022-01-16 03:00:18 -05:00
Tim Edwards afe0e9f758 Merge branch 'master' into netgen-1.5 2022-01-01 03:00:43 -05:00
Tim Edwards e487890641 Merge branch 'master' into netgen-1.5 2021-12-31 03:00:42 -05:00
Tim Edwards bb44d3f827 Merge branch 'master' into netgen-1.5 2021-12-30 03:00:43 -05:00
Tim Edwards c25c4e1160 Merge branch 'master' into netgen-1.5 2021-12-27 03:00:18 -05:00
Tim Edwards 8ed4e3cf38 Merge branch 'master' into netgen-1.5 2021-12-20 03:00:02 -05:00
Tim Edwards 69838d79e4 Merge branch 'master' into netgen-1.5 2021-12-16 03:00:06 -05:00
Tim Edwards fc7c9371e8 Merge branch 'master' into netgen-1.5 2021-12-08 03:00:14 -05:00
Tim Edwards 0d19868145 Merge branch 'master' into netgen-1.5 2021-11-18 03:00:10 -05:00
Tim Edwards 6b4eb01ee8 Merge branch 'master' into netgen-1.5 2021-11-12 03:00:29 -05:00
Tim Edwards 737b2a73bf Merge branch 'master' into netgen-1.5 2021-10-30 03:00:02 -04:00
Tim Edwards 6b8c6d1718 Merge branch 'master' into netgen-1.5 2021-10-29 03:00:32 -04:00
Tim Edwards 610eebb758 Merge branch 'master' into netgen-1.5 2021-10-24 03:00:12 -04:00
Tim Edwards 97058c5017 Merge branch 'master' into netgen-1.5 2021-10-16 03:00:13 -04:00
Tim Edwards aa120460d0 Merge branch 'master' into netgen-1.5 2021-10-15 03:00:03 -04:00
Tim Edwards ea5cbacf1c Merge branch 'master' into netgen-1.5 2021-10-06 03:00:12 -04:00
Tim Edwards cdd768addc Merge branch 'master' into netgen-1.5 2021-09-08 03:00:04 -04:00
Tim Edwards 66cf2b82d9 Merge branch 'master' into netgen-1.5 2021-08-30 03:00:02 -04:00
Tim Edwards bc4192496b Merge branch 'master' into netgen-1.5 2021-08-28 13:15:58 -04:00
Tim Edwards 168e5502a1 Merge branch 'master' into netgen-1.5 2021-08-06 11:38:38 -04:00
Tim Edwards 8d4b621b7d Merge branch 'master' into netgen-1.5 2021-08-06 11:25:01 -04:00
Tim Edwards ba3e862552 Merge branch 'master' into netgen-1.5 2021-07-30 03:00:29 -04:00
Tim Edwards cf6dd2a638 Merge branch 'master' into netgen-1.5 2021-07-16 03:00:11 -04:00
Tim Edwards b6d896e73f Merge branch 'master' into netgen-1.5 2021-07-12 03:00:10 -04:00
Tim Edwards 9251ce2a48 Merge branch 'master' into netgen-1.5 2021-07-11 03:00:33 -04:00
Tim Edwards aa82164c08 Merge branch 'master' into netgen-1.5 2021-07-09 03:00:34 -04:00
Tim Edwards fb7876c7a6 Merge branch 'master' into netgen-1.5 2021-07-03 03:00:13 -04:00
Tim Edwards e31caa3500 Merge branch 'master' into netgen-1.5 2021-06-26 03:00:10 -04:00
Tim Edwards c1355bee45 Merge branch 'master' into netgen-1.5 2021-06-25 03:00:10 -04:00
Tim Edwards 4fb8b59a2f Merge branch 'master' into netgen-1.5 2021-06-19 03:00:10 -04:00
Tim Edwards 626faf22f9 Merge branch 'master' into netgen-1.5 2021-06-17 03:00:10 -04:00
Tim Edwards 550234dce5 Merge branch 'master' into netgen-1.5 2021-06-15 03:00:36 -04:00
Tim Edwards a4c0028706 Merge branch 'master' into netgen-1.5 2021-06-13 03:00:32 -04:00
Tim Edwards e7ae84bbc8 Merge branch 'master' into netgen-1.5 2021-06-10 03:00:09 -04:00
Tim Edwards 43c018f3bc Merge branch 'master' into netgen-1.5 2021-06-09 03:00:10 -04:00
Tim Edwards ca119edc0a Merge branch 'master' into netgen-1.5 2021-06-04 03:00:10 -04:00
Tim Edwards 84348d2fe1 Merge branch 'master' into netgen-1.5 2021-05-31 03:00:10 -04:00
Tim Edwards 813b29cdc4 Merge branch 'master' into netgen-1.5 2021-05-29 03:00:10 -04:00
Tim Edwards ccf4a0a900 Merge branch 'master' into netgen-1.5 2021-05-27 03:00:32 -04:00
Tim Edwards e34166fdb9 Merge branch 'master' into netgen-1.5 2021-05-26 03:00:32 -04:00
Tim Edwards a13491e358 Merge branch 'master' into netgen-1.5 2021-05-25 03:00:09 -04:00
Tim Edwards 1d05b8b676 Merge branch 'master' into netgen-1.5 2021-05-20 03:00:31 -04:00
Tim Edwards e97d6f1aeb Merge branch 'master' into netgen-1.5 2021-05-14 03:00:10 -04:00
Tim Edwards fb4759a8cd Merge branch 'master' into netgen-1.5 2021-05-04 03:00:10 -04:00
Tim Edwards 45d4004d43 Merge branch 'master' into netgen-1.5 2021-05-02 03:00:09 -04:00
Tim Edwards 0b014e6efd Merge branch 'master' into netgen-1.5 2021-03-20 03:00:09 -04:00
Tim Edwards 9ca713dfd9 Merge branch 'master' into netgen-1.5 2021-03-18 03:00:29 -04:00
Tim Edwards 851a1f941e Merge branch 'master' into netgen-1.5 2021-03-06 03:00:09 -05:00
Tim Edwards fb798d6ce7 Merge branch 'master' into netgen-1.5 2021-03-03 03:00:12 -05:00
Tim Edwards a888502038 Merge branch 'master' into netgen-1.5 2021-03-02 03:00:35 -05:00
Tim Edwards c16258d4d1 Merge branch 'master' into netgen-1.5 2021-02-25 03:00:36 -05:00
Tim Edwards 5341d7a5fd Merge branch 'master' into netgen-1.5 2021-02-17 03:00:31 -05:00
Tim Edwards 8395df633c Merge branch 'master' into netgen-1.5 2021-02-10 03:00:16 -05:00
Tim Edwards 6554063df3 Merge branch 'master' into netgen-1.5 2021-01-22 03:00:40 -05:00
Tim Edwards 4416a380b3 Merge branch 'master' into netgen-1.5 2021-01-18 03:00:51 -05:00
Tim Edwards 46394b2000 Merge branch 'master' into netgen-1.5 2021-01-17 03:00:15 -05:00
Tim Edwards 3fe3bc4cfa Merge branch 'master' into netgen-1.5 2021-01-09 03:00:32 -05:00
Tim Edwards 6661910672 Merge branch 'master' into netgen-1.5 2020-12-21 03:00:30 -05:00
Tim Edwards e7a36630f6 Merge branch 'master' into netgen-1.5 2020-12-16 03:00:54 -05:00
Tim Edwards f32b0b34a3 Merge branch 'master' into netgen-1.5 2020-12-06 03:00:10 -05:00
Tim Edwards 6b731ddd7a Merge branch 'master' into netgen-1.5 2020-12-04 03:00:27 -05:00
Tim Edwards 99e35d8b11 Merge branch 'master' into netgen-1.5 2020-10-09 03:00:25 -04:00
Tim Edwards 65b542f0ab Merge branch 'master' into netgen-1.5 2020-10-08 03:00:22 -04:00
Tim Edwards b826870be9 Merge branch 'master' into netgen-1.5 2020-08-09 03:01:40 -04:00
Tim Edwards ed5276d67b Merge branch 'master' into netgen-1.5 2020-08-04 03:00:31 -04:00
Tim Edwards 69c9d85be7 Merge branch 'master' into netgen-1.5 2020-08-01 03:00:23 -04:00
Tim Edwards ad05d059c7 Merge branch 'master' into netgen-1.5 2020-07-31 03:00:27 -04:00
Tim Edwards 1b2cd1497c Merge branch 'master' into netgen-1.5 2020-07-30 03:00:28 -04:00
Tim Edwards d9d5a46c6e Merge branch 'master' into netgen-1.5 2020-07-25 03:00:09 -04:00
Tim Edwards d73b711e3a Merge branch 'master' into netgen-1.5 2020-07-02 03:00:09 -04:00
Tim Edwards 1428580109 Merge branch 'master' into netgen-1.5 2020-06-17 03:00:38 -04:00
Tim Edwards 210dfb25c3 Merge branch 'master' into netgen-1.5 2020-06-04 03:00:24 -04:00
Tim Edwards 27f2ab8b3f Merge branch 'master' into netgen-1.5 2020-03-28 03:00:24 -04:00
Tim Edwards 1be00bbd99 Merge branch 'master' into netgen-1.5 2020-03-27 03:00:21 -04:00
Tim Edwards 03b241a5d4 Merge branch 'master' into netgen-1.5 2020-03-11 03:00:17 -04:00
Tim Edwards 43cebd1ef9 Merge branch 'master' into netgen-1.5 2020-03-06 03:00:39 -05:00
Tim Edwards 0490959b07 Merge branch 'master' into netgen-1.5 2020-03-05 03:00:09 -05:00
Tim Edwards dc841f3293 Merge branch 'master' into netgen-1.5 2020-02-24 17:35:04 -05:00
Tim Edwards 05bcfede69 Merge branch 'master' into netgen-1.5 2020-02-24 16:39:19 -05:00
Tim Edwards 72ed78e55a Update for change in ocd git script 2020-02-24 15:04:59 -05:00
Tim Edwards 59bb8a89c0 "ocd_git_pure automatic update to repo" 2020-02-24 15:04:27 -05:00
Tim Edwards 9bdaee652e "ocd_git_pure automatic update to repo" 2020-02-18 03:00:14 -05:00
Tim Edwards 9879b58f83 Merge branch 'master' into netgen-1.5 2020-02-18 03:00:13 -05:00
Tim Edwards 9e3b705fcc "ocd_git_pure automatic update to repo" 2020-02-11 03:00:09 -05:00
Tim Edwards d2c9129242 Merge branch 'master' into netgen-1.5 2020-02-11 03:00:09 -05:00
Tim Edwards 942f421fa3 "ocd_git_pure automatic update to repo" 2020-01-30 03:01:39 -05:00
Tim Edwards 6bc948d8ba Merge branch 'master' into netgen-1.5 2020-01-30 03:01:38 -05:00
Tim Edwards c1ad37f05a "ocd_git_pure automatic update to repo" 2020-01-14 03:00:47 -05:00
Tim Edwards 9edefe7d59 Merge branch 'master' into netgen-1.5 2020-01-14 03:00:47 -05:00
Tim Edwards f6b9629521 "ocd_git_pure automatic update to repo" 2019-11-20 03:00:33 -05:00
Tim Edwards 7b2e01f2af Merge branch 'master' into netgen-1.5 2019-11-20 03:00:33 -05:00
Tim Edwards 224050f153 "ocd_git_pure automatic update to repo" 2019-10-09 03:00:08 -04:00
Tim Edwards 74e8c3e168 Merge branch 'master' into netgen-1.5 2019-10-09 03:00:08 -04:00
Tim Edwards 95a29fcd8c "ocd_git_pure automatic update to repo" 2019-09-11 03:00:07 -04:00
Tim Edwards 723a950fd3 Merge branch 'master' into netgen-1.5 2019-09-11 03:00:07 -04:00
Tim Edwards e3368cb22a "ocd_git_pure automatic update to repo" 2019-09-10 03:00:08 -04:00
Tim Edwards f06e6548bb Merge branch 'master' into netgen-1.5 2019-09-10 03:00:08 -04:00
Tim Edwards 72ed19ff36 "ocd_git_pure automatic update to repo" 2019-09-09 03:00:10 -04:00
Tim Edwards 39b8e3d14a Merge branch 'master' into netgen-1.5 2019-09-09 03:00:10 -04:00
Tim Edwards b63dfa8638 "ocd_git_pure automatic update to repo" 2019-08-20 03:00:20 -04:00
Tim Edwards f918f33c51 Merge branch 'master' into netgen-1.5 2019-08-20 03:00:20 -04:00
Tim Edwards 63b2e48ea1 "ocd_git_pure automatic update to repo" 2019-08-13 03:00:08 -04:00
Tim Edwards 6e63f49d53 Merge branch 'master' into netgen-1.5 2019-08-13 03:00:07 -04:00
Tim Edwards 419b6de29a "ocd_git_pure automatic update to repo" 2019-08-11 03:00:07 -04:00
Tim Edwards 205cf2aa58 Merge branch 'master' into netgen-1.5 2019-08-11 03:00:07 -04:00
Tim Edwards 52b6766fc8 "ocd_git_pure automatic update to repo" 2019-08-04 03:00:20 -04:00
Tim Edwards 7b0bdd29e8 Merge branch 'master' into netgen-1.5 2019-08-04 03:00:20 -04:00
Tim Edwards 433cbd090a "ocd_git_pure automatic update to repo" 2019-07-25 03:00:16 -04:00
Tim Edwards 3087bd3337 Merge branch 'master' into netgen-1.5 2019-07-25 03:00:16 -04:00
Tim Edwards b79a29d662 "ocd_git_pure automatic update to repo" 2019-07-15 03:00:27 -04:00
Tim Edwards bf9c61e412 Merge branch 'master' into netgen-1.5 2019-07-15 03:00:27 -04:00
Tim Edwards 8d34bd372d "ocd_git_pure automatic update to repo" 2019-07-03 03:00:22 -04:00
Tim Edwards 229c2931a8 Merge branch 'master' into netgen-1.5 2019-07-03 03:00:22 -04:00
Tim Edwards b8da97deb1 "ocd_git_pure automatic update to repo" 2019-06-16 03:00:15 -04:00
Tim Edwards b7187d5899 Merge branch 'master' into netgen-1.5 2019-06-16 03:00:15 -04:00
Tim Edwards d27d441c58 "ocd_git_pure automatic update to repo" 2019-06-13 03:00:05 -04:00
Tim Edwards 48c9e6b292 Merge branch 'master' into netgen-1.5 2019-06-13 03:00:05 -04:00
Tim Edwards ced5846da3 "ocd_git_pure automatic update to repo" 2019-05-18 03:00:05 -04:00
Tim Edwards b99d33064f Merge branch 'master' into netgen-1.5 2019-05-18 03:00:04 -04:00
Tim Edwards 399472e940 "ocd_git_pure automatic update to repo" 2019-05-07 09:13:00 -04:00
10 changed files with 185 additions and 339 deletions

View File

@ -1 +1 @@
1.5.312
1.5.306

View File

@ -22,7 +22,6 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdio.h>
#include <stdarg.h>
#include <strings.h>
#include <ctype.h>
#ifdef IBMPC
#include <stdlib.h> /* for strtol on PC */

View File

@ -300,6 +300,8 @@ int flattenInstancesOf(char *name, int fnum, char *instance)
return 0;
}
}
/* Placeholder cells must not be flattened */
if (ThisCell->flags & CELL_PLACEHOLDER) return 0;
FreeNodeNames(ThisCell);
@ -337,10 +339,6 @@ int flattenInstancesOf(char *name, int fnum, char *instance)
LastObj = ParentParams;
continue;
}
if (ChildCell->flags & CELL_PLACEHOLDER) {
LastObj = ParentParams;
continue; // Placeholder cells must not be flattened
}
if (ChildCell == ThisCell) {
LastObj = ParentParams;
continue; // Avoid infinite loop
@ -1755,8 +1753,8 @@ PrematchLists(char *name1, int file1, char *name2, int file2)
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
" makes a better match\n", ecomp->cell1->name,
name1, file1);
if (flattenInstancesOf(name1, file1, ecomp->cell1->name) > 0)
modified1++;
flattenInstancesOf(name1, file1, ecomp->cell1->name);
modified1++;
}
else if (ecomp->cell1 && (ecomp->num1 > 0)) {
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
@ -1768,8 +1766,8 @@ PrematchLists(char *name1, int file1, char *name2, int file2)
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
" makes a better match\n", ecomp->cell2->name,
name2, file2);
if (flattenInstancesOf(name2, file2, ecomp->cell2->name) > 0)
modified2++;
flattenInstancesOf(name2, file2, ecomp->cell2->name);
modified2++;
}
else if (ecomp->cell2 && (ecomp->num2 > 0)) {
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
@ -1863,8 +1861,8 @@ PrematchLists(char *name1, int file1, char *name2, int file2)
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
" makes a better match\n", ecomp->cell2->name,
name2, file2);
if (flattenInstancesOf(name2, file2, ecomp->cell2->name) > 0)
modified2++;
flattenInstancesOf(name2, file2, ecomp->cell2->name);
modified2++;
}
else if (ecomp->cell2) {
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
@ -1934,8 +1932,8 @@ PrematchLists(char *name1, int file1, char *name2, int file2)
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
" makes a better match\n", ecomp->cell1->name,
name1, file1);
if (flattenInstancesOf(name1, file1, ecomp->cell1->name) > 0)
modified1++;
flattenInstancesOf(name1, file1, ecomp->cell1->name);
modified1++;
}
else if (ecomp->cell1) {
Fprintf(stdout, "Flattening instances of %s in cell %s (%d)"
@ -2297,12 +2295,11 @@ PrematchLists(char *name1, int file1, char *name2, int file2)
Fprintf(stdout, "Flattening instances of %s in cell"
" %s (%d) makes a better match\n",
ecompX0->cell1->name, name1, file1);
if (flattenInstancesOf(name1, file1,
ecompX0->cell1->name) > 0) {
ecompX0->num1 = 0;
ecomp0X->num1 += ecompX0->num1;
modified1++;
}
flattenInstancesOf(name1, file1,
ecompX0->cell1->name);
ecompX0->num1 = 0;
ecomp0X->num1 += ecompX0->num1;
modified1++;
}
else
{
@ -2334,12 +2331,11 @@ PrematchLists(char *name1, int file1, char *name2, int file2)
Fprintf(stdout, "Flattening instances of %s in cell"
" %s (%d) makes a better match\n",
ecomp0X->cell2->name, name2, file2);
if (flattenInstancesOf(name2, file2,
ecomp0X->cell2->name) > 0) {
ecomp0X->num2 = 0;
ecompX0->num2 += ecomp0X->num2;
modified2++;
}
flattenInstancesOf(name2, file2,
ecomp0X->cell2->name);
ecomp0X->num2 = 0;
ecompX0->num2 += ecomp0X->num2;
modified2++;
}
else {
Fprintf(stdout, "Flattening instances of %s in "

View File

@ -24,7 +24,6 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdarg.h>
#include <setjmp.h>
#include <signal.h>
#include <strings.h> /* for strncasecmp() */
#include <time.h> /* for time() as a seed for random number generator */
#include <limits.h>
#include <math.h> /* for fabs() */
@ -3582,7 +3581,7 @@ int FlattenUnmatched(struct nlist *tc, char *parent, int stoplevel, int loclevel
tc->name, parent, tc->file);
changed = flattenInstancesOf(parent, tc->file, tc->name);
Fprintf(stdout, "(%d instance%s)\n", changed, ((changed == 1) ? "" : "s"));
return (changed != 0);
return 1;
}
if (tc->cell == NULL) return 0;
@ -7544,11 +7543,6 @@ struct nlist *addproxies(struct hashlist *p, void *clientdata)
}
else {
lob = ob;
if (ob == NULL) {
Fprintf(stdout, "Error: Premature end of pin list on "
"instance %s.\n", firstpin->instance.name);
break;
}
ob->type = i++;
ob = ob->next;
}

View File

@ -25,8 +25,6 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdio.h>
#include <stdlib.h> /* for strtof() */
#include <stdarg.h>
#include <string.h>
#include <strings.h>
#include <ctype.h> /* toupper() */
#ifdef IBMPC
#include <alloc.h>

View File

@ -21,9 +21,6 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "config.h"
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <ctype.h>
#if 0
#include <stdarg.h> /* what about varargs, like in pdutils.c ??? */
#endif

View File

@ -76,8 +76,7 @@ struct hashdict verilogparams;
// Global storage for verilog definitions
struct hashdict verilogdefs;
// Record file pointer that is associated with the hash tables
int hashfilep = -1; /* for parameters */
int hashfiled = -1; /* for definitions */
int hashfile = -1;
// Global storage for wire buses
struct hashdict buses;
@ -157,8 +156,7 @@ struct expr_stack {
//-------------------------------------------------------------------------
// Evaluate an expression for an array bound. This is much like
// ReduceOneExpression() in netgen.c, but only handles basic integer
// arithmetic (+,-,*,/), grouping by parentheses, bit shifts, and
// if-else operators.
// arithmetic (+,-,*,/) and grouping by parentheses.
//
// Returns 1 if successful, 0 on error.
// Evaluated result is placed in the integer pointed to by "valptr".
@ -222,39 +220,6 @@ int EvalExpr(struct expr_stack **stackptr, int *valptr)
}
}
/* Reduce (a << b) and (a >> b) */
for (texp = start; texp; texp = texp->next) {
if ((texp->last != NULL) && (texp->next != NULL) && (texp->oper != '\0')) {
if ((texp->last->oper == '\0') && (texp->next->oper == '\0')) {
if (texp->oper == '<') {
/* Left shift */
texp->last->value <<= texp->next->value;
/* Remove two items from the stack */
tmp = texp;
texp = texp->last;
texp->next = tmp->next->next;
if (tmp->next->next) tmp->next->next->last = texp;
FREE(tmp->next);
FREE(tmp);
modified = TRUE;
}
if (texp->oper == '>') {
/* Right shift */
texp->last->value >>= texp->next->value;
/* Remove two items from the stack */
tmp = texp;
texp = texp->last;
texp->next = tmp->next->next;
if (tmp->next->next) tmp->next->next->last = texp;
FREE(tmp->next);
FREE(tmp);
modified = TRUE;
}
}
}
}
/* Reduce (a * b) and (a / b) */
for (texp = start; texp; texp = texp->next) {
@ -330,39 +295,6 @@ int EvalExpr(struct expr_stack **stackptr, int *valptr)
}
}
/* Reduce (a ? b : c) */
for (texp = start; texp; texp = texp->next) {
/* There must be at least five objects on the stack */
if ((texp->last != NULL) && (texp->next != NULL) && (texp->oper != '\0')
&& (texp->next->next != NULL)
&& (texp->next->next->next != NULL)) {
if ((texp->last->oper == '\0') && (texp->next->oper == '\0')
&& (texp->next->next->next->oper == '\0')) {
if ((texp->oper == '?') && (texp->next->next->oper == ':')) {
/* If-Else conditional */
if (texp->last->value)
texp->last->value = texp->next->value;
else
texp->last->value = texp->next->next->next->value;
/* Remove four items from the stack */
tmp = texp;
texp = texp->last;
texp->next = tmp->next->next->next->next;
if (tmp->next->next->next->next)
tmp->next->next->next->next->last = texp;
FREE(tmp->next->next->next);
FREE(tmp->next->next);
FREE(tmp->next);
FREE(tmp);
modified = TRUE;
}
}
}
}
/* Reduce (a) */
for (texp = start; texp; texp = texp->next) {
@ -441,15 +373,8 @@ int ParseIntegerExpression(char *expr, int *iptr)
if (match(sptr, "+") || match(sptr, "-")
|| match(sptr, "*") || match(sptr, "/")
|| match(sptr, "(") || match(sptr, ")")
|| match(sptr, "<<") || match(sptr, ">>")
|| match(sptr, "?") || match(sptr, ":")) {
|| match(sptr, "(") || match(sptr, ")")) {
newexp = (struct expr_stack *)MALLOC(sizeof(struct expr_stack));
/* Note that "oper" is one character and that "<<" and ">>"
* become '<' and '>', respectively. The less-than and greater-
* than operators are not (yet) handled but will need to be
* recast to some other character in "oper".
*/
newexp->oper = *sptr;
newexp->value = 0;
newexp->next = NULL;
@ -464,7 +389,7 @@ int ParseIntegerExpression(char *expr, int *iptr)
if ((result = sscanf(sptr, "%d", &value)) != 1) {
// Is name in the parameter list?
kl = (struct property *)HashLookup(sptr, &verilogparams);
kl = (struct property *)HashLookup(nexttok, &verilogparams);
if (kl == NULL) {
Printf("Value %s in expression is not a number or a parameter.\n",
sptr);
@ -477,29 +402,27 @@ int ParseIntegerExpression(char *expr, int *iptr)
if (result != 1) {
Printf("Parameter %s has value %s that cannot be parsed"
" as an integer.\n",
sptr, kl->pdefault.string);
nexttok, kl->pdefault.string);
value = 0;
break;
}
}
else if (kl->type == PROP_INTEGER) {
value = kl->pdefault.ival;
result = 1; // Assert valid result
}
else if (kl->type == PROP_DOUBLE) {
value = (int)kl->pdefault.dval;
if ((double)value != kl->pdefault.dval) {
Printf("Parameter %s has value %g that cannot be parsed"
" as an integer.\n",
sptr, kl->pdefault.dval);
nexttok, kl->pdefault.dval);
value = 0;
break;
}
result = 1; // Assert valid result
}
else {
Printf("Parameter %s has unknown type; don't know how"
" to parse.\n", sptr);
" to parse.\n", nexttok);
value = 0;
break;
}
@ -593,8 +516,7 @@ int GetBusTok(struct bus *wb)
}
else if (match(nexttok, "+") || match(nexttok, "-")
|| match(nexttok, "*") || match(nexttok, "/")
|| match(nexttok, "(") || match(nexttok, ")")
|| match(nexttok, "<<") || match(nexttok, ">>")) {
|| match(nexttok, "(") || match(nexttok, ")")) {
newexp = (struct expr_stack *)MALLOC(sizeof(struct expr_stack));
newexp->oper = *nexttok;
newexp->value = 0;
@ -1957,8 +1879,7 @@ skip_endmodule:
// Allowed uses of "assign" for netlists:
// "assign a = b" joins two nets.
// "assign a = {b, c, ...}" creates a bus from components.
// "assign" using if-else constructs or bit shifts.
// ("assign" using any other boolean arithmetic is not structural verilog.)
// "assign" using any boolean arithmetic is not structural verilog.
// "assign a = {x{b}}" creates a bus by repeating a component.
if (nexttok && match(nexttok, "=")) {
@ -2219,19 +2140,6 @@ nextinst:
}
SkipTokComments(VLOG_DELIMITERS);
}
else if (loop.loopvar != NULL) {
/* Instances created within a generate block for loop have an
* implicit array
*/
int loopval;
struct property *klr;
klr = (struct property *)HashLookup(loop.loopvar, &verilogparams);
loopval = klr->pdefault.ival;
arraystart = arrayend = loopval;
sprintf(instancename + strlen(instancename), "[%d]", loopval);
}
if (match(nexttok, "(")) {
char savetok = (char)0;
@ -2294,8 +2202,7 @@ nextinst:
strcat(new_wire_bundle, nexttok);
FREE(wire_bundle);
wire_bundle = new_wire_bundle;
if (!strcmp(nexttok, "}"))
break;
if (!strcmp(nexttok, "}")) break;
SkipTokComments(VLOG_PIN_CHECK_DELIMITERS);
}
if (!nexttok) {
@ -2671,7 +2578,6 @@ nextinst:
char *brackptr;
int j;
char locinst[MAX_STR_LEN];
int arraypos = (arraystart > arrayend) ? arraymax - i : i;
if (i != -1)
sprintf(locinst, "%s[%d]", instancename, i);
@ -2721,14 +2627,7 @@ nextinst:
else if (GetBus(scan->net, &wb) == 0) {
char *bptr2;
char *scanroot;
int isbundle = FALSE;
/* Skip over a bundle delimiter */
if (*scan->net == '{') {
scanroot = strsave(scan->net + 1);
isbundle = TRUE;
}
else
scanroot = strsave(scan->net);
scanroot = strsave(scan->net);
brackptr = strvchr(scanroot, '[');
if (brackptr) *brackptr = '\0';
@ -2761,7 +2660,6 @@ nextinst:
else {
// Instance must be an array
char netname[MAX_STR_LEN];
char *spos = scanroot;
int slice, portlen, siglen;
/* Get the array size of the port for bit slicing */
@ -2773,49 +2671,27 @@ nextinst:
if (siglen < 0) siglen = -siglen;
siglen++;
// If this is a bundle, then count out to the current
// slice and read off the index. NOTE: Need to
// handle multiple bits per bundle entry!
if (isbundle) {
int j;
if (brackptr) *brackptr = '[';
for (j = 0; j < arraypos * portlen; j++) {
spos = strvchr(spos, ',');
if (spos == NULL) break;
spos++;
}
if (spos != NULL) {
brackptr = strvchr(spos, '[');
*brackptr = '\0';
sscanf(brackptr + 1, "%d", &slice);
}
else spos = scanroot; /* should emit an error here */
// If signal array is smaller than the portlength *
// length of instance array, then the signal wraps.
if (wb2.start >= wb2.end && arraystart >= arrayend) {
slice = wb.start - (arraystart - i) * portlen;
while (slice < wb2.end) slice += siglen;
}
else { /* not a bundle */
// If signal array is smaller than the portlength *
// length of instance array, then the signal wraps.
if (wb2.start >= wb2.end && arraystart >= arrayend) {
slice = wb.start - (arraystart - i) * portlen;
while (slice < wb2.end) slice += siglen;
}
else if (wb2.start < wb2.end && arraystart > arrayend) {
slice = wb.start + (arraystart - i) * portlen;
while (slice > wb2.end) slice -= siglen;
}
else if (wb2.start > wb2.end && arraystart < arrayend) {
slice = wb.start - (arraystart + i) * portlen;
while (slice < wb2.end) slice += siglen;
}
else { // (wb2.start < wb2.end && arraystart < arrayend)
slice = wb.start + (arraystart + i) * portlen;
while (slice > wb2.end) slice -= siglen;
}
spos = scanroot;
else if (wb2.start < wb2.end && arraystart > arrayend) {
slice = wb.start + (arraystart - i) * portlen;
while (slice > wb2.end) slice -= siglen;
}
else if (wb2.start > wb2.end && arraystart < arrayend) {
slice = wb.start - (arraystart + i) * portlen;
while (slice < wb2.end) slice += siglen;
}
else { // (wb2.start < wb2.end && arraystart < arrayend)
slice = wb.start + (arraystart + i) * portlen;
while (slice > wb2.end) slice -= siglen;
}
sprintf(netname, "%s[%d]", spos, slice);
sprintf(netname, "%s[%d]", scanroot, slice);
if (LookupObject(netname, CurrentCell) == NULL) Node(netname);
join(netname, obptr->name);
}
@ -3000,25 +2876,18 @@ char *ReadVerilogTop(char *fname, int *fnum, int blackbox)
hashfunc = hashcase;
}
if ((hashfilep != -1) && (hashfilep != *fnum)) {
/* Started a new file, so remove all the parameters */
if ((hashfile != -1) && (hashfile != *fnum)) {
/* Started a new file, so remove all the parameters and definitions */
RecurseHashTable(&verilogparams, freeprop);
HashKill(&verilogparams);
hashfilep = -1;
}
if ((hashfiled != -1) && (hashfiled != *fnum)) {
/* Started a new file, so remove all the definitions */
RecurseHashTable(&verilogdefs, freeprop);
HashKill(&verilogdefs);
hashfiled = -1;
hashfile = -1;
}
if (hashfilep == -1) {
if (hashfile == -1) {
InitializeHashTable(&verilogparams, OBJHASHSIZE);
hashfilep = filenum;
}
if (hashfiled == -1) {
InitializeHashTable(&verilogdefs, OBJHASHSIZE);
hashfiled = filenum;
hashfile = *fnum;
}
definitions = &verilogdefs;

View File

@ -68,7 +68,6 @@ LIB_SPECS = @LIB_SPECS@
LIB_SPECS_NOSTUB = @LIB_SPECS_NOSTUB@
WISH_EXE = @WISH_EXE@
TCL_LIB_DIR = @TCL_LIB_DIR@
EXTRA_CFLAGS =
CC = @CC@
CPP = @CPP@
@ -77,7 +76,7 @@ CXX = @CXX@
CPPFLAGS = -I. -I${NETGENDIR} @CPPFLAGS@
DFLAGS = @extra_defs@ @stub_defs@ @DEFS@ -DSHDLIB_EXT=\"@SHDLIB_EXT@\" -DNDEBUG
DFLAGS_NOSTUB = @extra_defs@ @DEFS@ -DSHDLIB_EXT=\"@SHDLIB_EXT@\" -DNDEBUG
CFLAGS = @CFLAGS@ @SHLIB_CFLAGS@ @INC_SPECS@ ${EXTRA_CFLAGS}
CFLAGS = @CFLAGS@ @SHLIB_CFLAGS@ @INC_SPECS@
DEPEND_FILE = Depend
DEPEND_FLAG = @DEPEND_FLAG@

View File

@ -429,7 +429,7 @@ proc netgen::lvs { name1 name2 {setupfile setup.tcl} {logfile comp.out} args} {
set file1 $name1
set cell1 $name1
}
puts stdout "Reading netlist file $file1 for $name1"
puts stdout "Reading netlist file $file1"
set fnum1 [netgen::readnet $file1]
} else {
set cell1 [lindex $flist1 0]
@ -446,7 +446,7 @@ proc netgen::lvs { name1 name2 {setupfile setup.tcl} {logfile comp.out} args} {
set file2 $name2
set cell2 $name2
}
puts stdout "Reading netlist file $file2 for $name2"
puts stdout "Reading netlist file $file2"
set fnum2 [netgen::readnet $file2]
} else {
set cell2 [lindex $flist2 0]
@ -461,7 +461,7 @@ proc netgen::lvs { name1 name2 {setupfile setup.tcl} {logfile comp.out} args} {
}
set clist1 [cells list $fnum1]
set cidx [lsearch -exact $clist1 $cell1]
set cidx [lsearch -regexp $clist1 ^$cell1$]
if {$cidx < 0} {
puts stderr "Cannot find cell $cell1 in file $file1"
return
@ -469,7 +469,7 @@ proc netgen::lvs { name1 name2 {setupfile setup.tcl} {logfile comp.out} args} {
set cell1 [lindex $clist1 $cidx]
}
set clist2 [cells list $fnum2]
set cidx [lsearch -exact $clist2 $cell2]
set cidx [lsearch -regexp $clist2 ^$cell2$]
if {$cidx < 0} {
puts stderr "Cannot find cell $cell2 in file $file2"
return

View File

@ -21,8 +21,6 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdio.h>
#include <stdlib.h> /* for getenv */
#include <string.h>
#include <strings.h>
#include <stdarg.h> /* for va_list */
#include <tcl.h>
@ -45,14 +43,14 @@ the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FALSE 0
#endif
#if TCL_MAJOR_VERSION < 9
typedef int Tcl_Size;
#endif
/*-----------------------*/
/* Tcl 8.4 compatibility */
/*-----------------------*/
#ifndef CONST84
#define CONST84
#endif
Tcl_Interp *netgeninterp;
Tcl_Interp *consoleinterp;
int ColumnBase = 0;
@ -62,47 +60,47 @@ extern int PropertyErrorDetected;
/* Function prototypes for all Tcl command callbacks */
int _netgen_readnet(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_readlib(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_canonical(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_writenet(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_flatten(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_nodes(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_elements(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_debug(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_protochip(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_instances(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_contents(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_describe(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_cells(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_ports(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_model(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_leaves(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_quit(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_reinit(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_log(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_readnet(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_readlib(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_canonical(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_writenet(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_flatten(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_nodes(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_elements(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_debug(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_protochip(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_instances(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_contents(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_describe(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_cells(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_ports(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_model(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_leaves(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_quit(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_reinit(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netgen_log(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
#ifdef HAVE_MALLINFO
int _netgen_printmem(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_printmem(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
#endif
int _netgen_help(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_matching(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_compare(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_iterate(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_summary(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_print(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_format(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_run(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_verify(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_automorphs(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_equate(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_ignore(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_permute(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_property(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_exhaustive(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_symmetry(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_restart(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_global(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netcmp_convert(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
int _netgen_help(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_matching(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_compare(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_iterate(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_summary(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_print(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_format(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_run(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_verify(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_automorphs(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_equate(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_ignore(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_permute(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_property(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_exhaustive(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_symmetry(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_restart(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_global(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
int _netcmp_convert(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]);
typedef struct _Cmd {
char *name;
@ -289,7 +287,7 @@ GetTopCell(int fnum)
int
CommonGetFilenameOrFile(Tcl_Interp *interp, Tcl_Obj *fobj, int *fnumptr)
{
int result;
int result, llen;
int fnum, ftest;
char *filename;
struct nlist *tp;
@ -372,8 +370,7 @@ CommonParseCell(Tcl_Interp *interp, Tcl_Obj *objv,
struct nlist **tpr, int *fnumptr)
{
Tcl_Obj *tobj, *fobj;
int result;
Tcl_Size llen;
int result, llen;
int fnum, ftest, index;
char *filename, *cellname;
struct nlist *tp, *tp2;
@ -402,7 +399,7 @@ CommonParseCell(Tcl_Interp *interp, Tcl_Obj *objv,
Tcl_ResetResult(interp);
/* Is 1st argument a special keyword? */
if (Tcl_GetIndexFromObj(interp, tobj, (const char **)suboptions,
if (Tcl_GetIndexFromObj(interp, tobj, (CONST84 char **)suboptions,
"special", 0, &index) == TCL_OK) {
switch (index) {
case CIRCUIT1_IDX:
@ -458,7 +455,7 @@ CommonParseCell(Tcl_Interp *interp, Tcl_Obj *objv,
/* Check if 2nd item is a reserved keyword */
if (Tcl_GetIndexFromObj(interp, fobj,
(const char **)suboptions,
(CONST84 char **)suboptions,
"special", 0, &index) == TCL_OK) {
switch (index) {
case CIRCUIT1_IDX:
@ -583,7 +580,7 @@ CommonParseCell(Tcl_Interp *interp, Tcl_Obj *objv,
} else {
/* Only one name given; check if it matches subOption */
if (Tcl_GetIndexFromObj(interp, objv, (const char **)suboptions,
if (Tcl_GetIndexFromObj(interp, objv, (CONST84 char **)suboptions,
"special", 0, &index) == TCL_OK) {
switch (index) {
@ -668,7 +665,7 @@ CommonParseCell(Tcl_Interp *interp, Tcl_Obj *objv,
int
_netgen_canonical(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
int result;
struct nlist *np;
@ -707,7 +704,7 @@ _netgen_canonical(ClientData clientData,
int
_netgen_readnet(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *formats[] = {
"automatic", "ext", "extflat", "sim", "prm", "ntk", "spice",
@ -744,7 +741,7 @@ _netgen_readnet(ClientData clientData,
return TCL_ERROR;
}
else if (objc > 1) {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)formats,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)formats,
"format", 0, &index) != TCL_OK) {
if (objc == 3)
@ -853,7 +850,7 @@ _netgen_readnet(ClientData clientData,
int
_netgen_readlib(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *formats[] = {
"actel", "spice", "xilinx", NULL
@ -886,7 +883,7 @@ _netgen_readlib(ClientData clientData,
Tcl_WrongNumArgs(interp, 1, objv, "format [file]");
return TCL_ERROR;
}
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)formats,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)formats,
"format", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -933,7 +930,7 @@ _netgen_readlib(ClientData clientData,
int
_netgen_writenet(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *formats[] = {
"ext", "sim", "ntk", "actel",
@ -952,7 +949,7 @@ _netgen_writenet(ClientData clientData,
Tcl_WrongNumArgs(interp, 1, objv, "format file");
return TCL_ERROR;
}
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)formats,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)formats,
"format", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -1020,10 +1017,10 @@ _netgen_writenet(ClientData clientData,
int
_netgen_flatten(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *repstr, *file;
int result, filenum;
int result, llen, filenum;
struct nlist *tp, *tp2, *tptop;
if ((objc < 2) || (objc > 4)) {
@ -1094,7 +1091,7 @@ _netgen_flatten(ClientData clientData,
int
_netgen_nodes(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *estr = NULL, *istr = NULL, *cstr, *fstr;
char *optstart;
@ -1212,7 +1209,7 @@ _netgen_nodes(ClientData clientData,
int
_netgen_elements(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *nstr = NULL, *cstr;
struct objlist * (*ListSave)();
@ -1307,7 +1304,7 @@ _netgen_elements(ClientData clientData,
int
_netgen_debug(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *yesno[] = {
"on", "off", NULL
@ -1321,7 +1318,7 @@ _netgen_debug(ClientData clientData,
if (objc == 1)
index = YES_IDX;
else {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)yesno,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)yesno,
"option", 0, &index) != TCL_OK) {
index = CMD_IDX;
}
@ -1356,7 +1353,7 @@ _netgen_debug(ClientData clientData,
int
_netgen_protochip(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, "(no arguments)");
@ -1376,7 +1373,7 @@ _netgen_protochip(ClientData clientData,
int
_netgen_instances(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *repstr;
int result;
@ -1406,7 +1403,7 @@ _netgen_instances(ClientData clientData,
int
_netgen_contents(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *repstr;
int result;
@ -1435,7 +1432,7 @@ _netgen_contents(ClientData clientData,
int
_netgen_describe(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *repstr;
int file = -1;
@ -1465,7 +1462,7 @@ _netgen_describe(ClientData clientData,
int
_netgen_cells(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *repstr, *filename = NULL;
char *optstart;
@ -1552,7 +1549,7 @@ _netgen_cells(ClientData clientData,
int
_netgen_model(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
struct nlist *tp, *tp2;
char *model, *retclass;
@ -1604,7 +1601,7 @@ _netgen_model(ClientData clientData,
if (objc == 3) {
nports = NumberOfPorts(tp->name, fnum);
if (Tcl_GetIndexFromObj(interp, objv[2], (const char **)modelclasses,
if (Tcl_GetIndexFromObj(interp, objv[2], (CONST84 char **)modelclasses,
"class", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -1774,7 +1771,7 @@ wrongNumPorts:
int
_netgen_ports(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *repstr;
int result;
@ -1804,7 +1801,7 @@ _netgen_ports(ClientData clientData,
int
_netgen_leaves(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *repstr;
int result;
@ -1840,7 +1837,7 @@ _netgen_leaves(ClientData clientData,
int
_netgen_quit(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, "(no arguments)");
@ -1868,7 +1865,7 @@ _netgen_quit(ClientData clientData,
int
_netgen_reinit(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, "(no arguments)");
@ -1888,7 +1885,7 @@ _netgen_reinit(ClientData clientData,
int
_netgen_log(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *yesno[] = {
"start", "end", "reset", "suspend", "resume", "file", "echo", "put", NULL
@ -1905,7 +1902,7 @@ _netgen_log(ClientData clientData,
index = (LoggingFile) ? RESUME_IDX : START_IDX;
}
else {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)yesno,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)yesno,
"option", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -2032,7 +2029,7 @@ _netgen_log(ClientData clientData,
int
_netgen_printmem(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, "(no arguments)");
@ -2054,7 +2051,7 @@ _netgen_printmem(ClientData clientData,
int
_netcmp_format(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
int col1_width = 41, col2_width = 41;
@ -2115,13 +2112,13 @@ _netcmp_format(ClientData clientData,
int
_netcmp_compare(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *name1, *name2, *file1, *file2, *optstart;
int fnum1, fnum2, dolist = 0;
int dohierarchy = FALSE;
int assignonly = FALSE;
int argstart = 1, qresult, result;
int argstart = 1, qresult, llen, result;
int hascontents1, hascontents2;
struct Correspond *nextcomp;
struct nlist *tp1 = NULL, *tp2 = NULL;
@ -2292,7 +2289,7 @@ _netcmp_compare(ClientData clientData,
int
_netcmp_iterate(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, "(no arguments)");
@ -2316,7 +2313,7 @@ _netcmp_iterate(ClientData clientData,
int
_netcmp_summary(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *options[] = {
"nodes", "elements", NULL
@ -2331,7 +2328,7 @@ _netcmp_summary(ClientData clientData,
return TCL_ERROR;
}
if (objc == 2) {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)options,
"option", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -2357,7 +2354,7 @@ _netcmp_summary(ClientData clientData,
int
_netcmp_print(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *options[] = {
"nodes", "elements", "queue", NULL
@ -2395,16 +2392,16 @@ _netcmp_print(ClientData clientData,
return TCL_ERROR;
}
if (objc >= 2) {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)options,
"option", 0, &index) != TCL_OK) {
if ((objc == 2) && (Tcl_GetIndexFromObj(interp, objv[1],
(const char **)classes, "class", 0, &class) != TCL_OK)) {
(CONST84 char **)classes, "class", 0, &class) != TCL_OK)) {
return TCL_ERROR;
}
}
}
if (objc == 3 && index != QUEUE_IDX) {
if (Tcl_GetIndexFromObj(interp, objv[2], (const char **)classes,
if (Tcl_GetIndexFromObj(interp, objv[2], (CONST84 char **)classes,
"class", 0, &class) != TCL_OK) {
return TCL_ERROR;
}
@ -2448,7 +2445,7 @@ _netcmp_print(ClientData clientData,
int
_netcmp_run(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *options[] = {
"converge", "resolve", NULL
@ -2475,7 +2472,7 @@ _netcmp_run(ClientData clientData,
if (objc == 1)
index = RESOLVE_IDX;
else {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)options,
"option", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -2592,7 +2589,7 @@ _netcmp_run(ClientData clientData,
int
_netcmp_verify(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *options[] = {
"nodes", "elements", "properties", "only", "all", "equivalent", "unique", NULL
@ -2624,7 +2621,7 @@ _netcmp_verify(ClientData clientData,
return TCL_ERROR;
}
if (objc == 2) {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)options,
"option", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -2781,7 +2778,7 @@ _netcmp_verify(ClientData clientData,
int
_netcmp_automorphs(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, "(no arguments)");
@ -2802,7 +2799,7 @@ _netcmp_automorphs(ClientData clientData,
int
_netcmp_convert(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *cellname;
int filenum = -1;
@ -2832,10 +2829,10 @@ _netcmp_convert(ClientData clientData,
int
_netcmp_global(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *filename, *cellname, *pattern;
int numchanged = 0, p, fnum, result;
int numchanged = 0, p, fnum, llen, result;
struct nlist *tp;
if (objc < 2) {
@ -2869,7 +2866,7 @@ _netcmp_global(ClientData clientData,
int
_netcmp_ignore(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *options[] = {
"class", "shorted", NULL
@ -2883,7 +2880,7 @@ _netcmp_ignore(ClientData clientData,
char *name = NULL, *name2 = NULL;
if (objc >= 3) {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)options,
"option", 0, &index) == TCL_OK) {
objc--;
objv++;
@ -2917,7 +2914,7 @@ _netcmp_ignore(ClientData clientData,
int
_netcmp_equate(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *options[] = {
"nodes", "elements", "classes", "pins", NULL
@ -2932,8 +2929,7 @@ _netcmp_equate(ClientData clientData,
struct ElementClass *saveEclass = NULL;
struct NodeClass *saveNclass = NULL;
int file1, file2;
int i, dolist = 0, doforce = 0, dounique = 0;
Tcl_Size l1, l2, lent, ltest;
int i, l1, l2, ltest, lent, dolist = 0, doforce = 0, dounique = 0;
Tcl_Obj *tobj1, *tobj2, *tobj3;
while (objc > 1) {
@ -2963,7 +2959,7 @@ _netcmp_equate(ClientData clientData,
return TCL_ERROR;
}
else {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)options,
"option", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -3432,13 +3428,12 @@ _netcmp_equate(ClientData clientData,
int
_netcmp_property(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
int fnum, i;
int fnum, i, llen;
struct nlist *tp;
struct property *kl, *kllast, *klnext;
Tcl_Obj *tobj1, *tobj2, *tobj3;
Tcl_Size llen;
double dval;
int ival, argstart;
@ -3515,7 +3510,7 @@ _netcmp_property(ClientData clientData,
/* Don't need to check return value */
index = -1;
Tcl_GetIndexFromObj(interp, objv[1], (const char **)topoptions,
Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)topoptions,
"option", 0, &index);
/* Check for special command "property default" */
@ -3613,7 +3608,7 @@ _netcmp_property(ClientData clientData,
}
else if (objc == 3) {
if (Tcl_GetIndexFromObj(interp, objv[2],
(const char **)topo,
(CONST84 char **)topo,
"topology", 0, &idx2) == TCL_OK) {
if (idx2 == 0)
ExactTopology = TRUE;
@ -3672,7 +3667,7 @@ _netcmp_property(ClientData clientData,
Tcl_SetObjResult(interp, tobj1);
}
else {
if (Tcl_GetIndexFromObj(interp, objv[2], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[2], (CONST84 char **)options,
"option", 0, &index) != TCL_OK) {
index = ADD_IDX;
argstart = 2;
@ -3705,7 +3700,7 @@ _netcmp_property(ClientData clientData,
// Each value must be a list of two, or a yes/no answer.
if (Tcl_GetIndexFromObj(interp, objv[i],
(const char **)yesno,
(CONST84 char **)yesno,
"combine", 0, &idx2) == TCL_OK) {
if (idx2 <= 4) { /* true, enable, etc. */
if (index == SERIAL_IDX || index == SERIES_IDX)
@ -3737,7 +3732,7 @@ _netcmp_property(ClientData clientData,
if (result != TCL_OK) return result;
result = Tcl_GetIndexFromObj(interp, tobj2,
(const char **)combineoptions,
(CONST84 char **)combineoptions,
"combine_type", 0, &idx2);
if (result != TCL_OK) return result;
@ -3822,7 +3817,7 @@ _netcmp_property(ClientData clientData,
/* {key, type} or {key, tolerance} duplet */
if (Tcl_GetIndexFromObj(interp, tobj2,
(const char **)suboptions,
(CONST84 char **)suboptions,
"type", 0, &idx2) != TCL_OK) {
Tcl_ResetResult(interp);
if (Tcl_GetDoubleFromObj(interp, tobj2, &dval)
@ -3866,7 +3861,7 @@ _netcmp_property(ClientData clientData,
/* {key, type, tolerance} triplet */
if (Tcl_GetIndexFromObj(interp, tobj2,
(const char **)suboptions,
(CONST84 char **)suboptions,
"type", 0, &idx2) != TCL_OK)
return TCL_ERROR;
@ -4009,7 +4004,7 @@ _netcmp_property(ClientData clientData,
if (result != TCL_OK) return result;
result = Tcl_GetIndexFromObj(interp, tobj2,
(const char **)mergeoptions,
(CONST84 char **)mergeoptions,
"merge_type", 0, &idx2);
if (result != TCL_OK) return result;
@ -4061,7 +4056,7 @@ _netcmp_property(ClientData clientData,
return TCL_ERROR;
}
result = Tcl_GetIndexFromObj(interp, objv[3],
(const char **)deriveoptions,
(CONST84 char **)deriveoptions,
"area|perimeter", 0, &idx2);
if (result != TCL_OK) return result;
switch (idx2) {
@ -4093,7 +4088,7 @@ _netcmp_property(ClientData clientData,
int
_netcmp_permute(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *model, *pin1, *pin2;
char *permuteclass[] = {
@ -4114,7 +4109,7 @@ _netcmp_permute(ClientData clientData,
index = DEFLT_IDX;
}
else {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)permuteclass,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)permuteclass,
"permute class", 0, &index) != TCL_OK) {
if (objc != 4) {
Tcl_WrongNumArgs(interp, 1, objv, "?valid_cellname pin1 pin2?");
@ -4234,7 +4229,7 @@ _netcmp_permute(ClientData clientData,
int
_netcmp_symmetry(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
Printf("Symmetry breaking method has been deprecated.\n");
return TCL_OK;
@ -4250,7 +4245,7 @@ _netcmp_symmetry(ClientData clientData,
int
_netcmp_exhaustive(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *yesno[] = {
"on", "off", NULL
@ -4263,7 +4258,7 @@ _netcmp_exhaustive(ClientData clientData,
if (objc == 1)
index = -1;
else {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)yesno,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)yesno,
"option", 0, &index) != TCL_OK)
return TCL_ERROR;
}
@ -4292,7 +4287,7 @@ _netcmp_exhaustive(ClientData clientData,
int
_netcmp_restart(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
if (objc != 1) {
Tcl_WrongNumArgs(interp, 1, objv, "(no arguments)");
@ -4312,7 +4307,7 @@ _netcmp_restart(ClientData clientData,
int
_netgen_help(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
int n;
@ -4343,7 +4338,7 @@ _netgen_help(ClientData clientData,
int
_netcmp_matching(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *options[] = {
"nodes", "elements", NULL
@ -4365,7 +4360,7 @@ _netcmp_matching(ClientData clientData,
name = Tcl_GetString(objv[1]);
}
else {
if (Tcl_GetIndexFromObj(interp, objv[1], (const char **)options,
if (Tcl_GetIndexFromObj(interp, objv[1], (CONST84 char **)options,
"option", 0, &index) != TCL_OK) {
return TCL_ERROR;
}
@ -4494,14 +4489,14 @@ void tcl_vprintf(FILE *f, const char *fmt, va_list args_in)
void tcl_stdflush(FILE *f)
{
Tcl_InterpState state;
Tcl_SavedResult state;
static char stdstr[] = "::flush stdxxx";
char *stdptr = stdstr + 11;
state = Tcl_SaveInterpState(netgeninterp, TCL_OK);
Tcl_SaveResult(netgeninterp, &state);
strcpy(stdptr, (f == stderr) ? "err" : "out");
Tcl_Eval(netgeninterp, stdstr);
Tcl_RestoreInterpState(netgeninterp, state);
Tcl_RestoreResult(netgeninterp, &state);
}
/*------------------------------------------------------*/
@ -4531,7 +4526,7 @@ char *Tcl_Strdup(const char *s)
/*------------------------------------------------------*/
int _tkcon_interrupt(ClientData clientData,
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
InterruptPending = 1;
return TCL_OK;
@ -4570,7 +4565,7 @@ int Tclnetgen_Init(Tcl_Interp *interp)
/* Remember the interpreter */
netgeninterp = interp;
if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) return TCL_ERROR;
if (Tcl_InitStubs(interp, "8.5", 0) == NULL) return TCL_ERROR;
for (n = 0; netgen_cmds[n].name != NULL; n++) {
sprintf(keyword, "netgen::%s", netgen_cmds[n].name);
@ -4579,8 +4574,7 @@ int Tclnetgen_Init(Tcl_Interp *interp)
}
for (n = 0; netcmp_cmds[n].name != NULL; n++) {
sprintf(keyword, "netgen::%s", netcmp_cmds[n].name);
Tcl_CreateObjCommand(interp, keyword,
(Tcl_ObjCmdProc *)netcmp_cmds[n].handler,
Tcl_CreateObjCommand(interp, keyword, netcmp_cmds[n].handler,
(ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
}