Codebase list gtkwave / 3a34ecc
Imported Upstream version 3.3.96 أحمد المحمودي (Ahmed El-Mahmoudy) 5 years ago
23 changed file(s) with 479 addition(s) and 315 deletion(s). Raw diff Collapse all Expand all
16721672 Change integer type to "integer" in SST to differentiate it
16731673 from sv ints.
16741674 Premiminary support for enum tables embedded in FST files.
1675 3.3.96 15nov18 Changed to standardized zoom in/out/full hotkeys.
1676 Added time backtracking warning (for partial mode) to lxt2vcd.
1677 VCD time backtracking fix (not for interactive mode).
1678 Added drag_failed handling (can press ESC) to DnD operations.
1679 Prevent missing file in savefile from causing savefile to be
1680 read as VCD by mistake.
1681 Changed to Dinotrace-like 0s/1s rendering for bit vectors so
1682 values can be discerned without seeing the full value text.
1683 Removed unneeded pango_layout_get_extents() inside call for
1684 font_engine_draw_string().
1685 Changed bsearch_trunc() to run in constant time when monospace
1686 fonts are in use.
1687 Added missing GDK_SCROLL_MASK to signal area (need for gtk3,
1688 but not for other versions for some reason).
00 ##########################################################################
11
2 GTKWave 3.3.95 Wave Viewer is Copyright (C) 1999-2018 Tony Bybell.
2 GTKWave 3.3.96 Wave Viewer is Copyright (C) 1999-2018 Tony Bybell.
33 Portions of GTKWave are Copyright (C) 1999-2018 Udi Finkelstein.
44 Context support is Copyright (C) 2007-2018 Kermin Elliott Fleming.
55 Trace group support is Copyright (C) 2009-2018 Donald Baltus.
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for gtkwave 3.3.95.
2 # Generated by GNU Autoconf 2.69 for gtkwave 3.3.96.
33 #
44 # Report bugs to <bybell@rocketmail.com>.
55 #
579579 # Identity of this package.
580580 PACKAGE_NAME='gtkwave'
581581 PACKAGE_TARNAME='gtkwave'
582 PACKAGE_VERSION='3.3.95'
583 PACKAGE_STRING='gtkwave 3.3.95'
582 PACKAGE_VERSION='3.3.96'
583 PACKAGE_STRING='gtkwave 3.3.96'
584584 PACKAGE_BUGREPORT='bybell@rocketmail.com'
585585 PACKAGE_URL=''
586586
14041404 # Omit some internal or obsolete options to make the list less imposing.
14051405 # This message is too long to be a string in the A/UX 3.1 sh.
14061406 cat <<_ACEOF
1407 \`configure' configures gtkwave 3.3.95 to adapt to many kinds of systems.
1407 \`configure' configures gtkwave 3.3.96 to adapt to many kinds of systems.
14081408
14091409 Usage: $0 [OPTION]... [VAR=VALUE]...
14101410
14701470
14711471 if test -n "$ac_init_help"; then
14721472 case $ac_init_help in
1473 short | recursive ) echo "Configuration of gtkwave 3.3.95:";;
1473 short | recursive ) echo "Configuration of gtkwave 3.3.96:";;
14741474 esac
14751475 cat <<\_ACEOF
14761476
16291629 test -n "$ac_init_help" && exit $ac_status
16301630 if $ac_init_version; then
16311631 cat <<\_ACEOF
1632 gtkwave configure 3.3.95
1632 gtkwave configure 3.3.96
16331633 generated by GNU Autoconf 2.69
16341634
16351635 Copyright (C) 2012 Free Software Foundation, Inc.
22732273 This file contains any messages produced by compilers while
22742274 running configure, to aid debugging if configure makes a mistake.
22752275
2276 It was created by gtkwave $as_me 3.3.95, which was
2276 It was created by gtkwave $as_me 3.3.96, which was
22772277 generated by GNU Autoconf 2.69. Invocation command line was
22782278
22792279 $ $0 $@
31403140
31413141 # Define the identity of the package.
31423142 PACKAGE='gtkwave'
3143 VERSION='3.3.95'
3143 VERSION='3.3.96'
31443144
31453145
31463146 cat >>confdefs.h <<_ACEOF
1149811498 # report actual input values of CONFIG_FILES etc. instead of their
1149911499 # values after options handling.
1150011500 ac_log="
11501 This file was extended by gtkwave $as_me 3.3.95, which was
11501 This file was extended by gtkwave $as_me 3.3.96, which was
1150211502 generated by GNU Autoconf 2.69. Invocation command line was
1150311503
1150411504 CONFIG_FILES = $CONFIG_FILES
1156411564 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1156511565 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1156611566 ac_cs_version="\\
11567 gtkwave config.status 3.3.95
11567 gtkwave config.status 3.3.96
1156811568 configured by $0, generated by GNU Autoconf 2.69,
1156911569 with options \\"\$ac_cs_config\\"
1157011570
11 # Process this file with autoconf to produce a configure script.
22
33 AC_PREREQ(2.59)
4 AC_INIT(gtkwave, 3.3.95, bybell@rocketmail.com)
4 AC_INIT(gtkwave, 3.3.96, bybell@rocketmail.com)
55 AC_CONFIG_SRCDIR([src/vcd.c])
66 AM_INIT_AUTOMAKE
77 AC_CONFIG_HEADER([config.h])
77 <key>CFBundleExecutable</key>
88 <string>gtkwave</string>
99 <key>CFBundleGetInfoString</key>
10 <string>3.3.95, (C) 1999-2018 Tony Bybell http://gtkwave.sourceforge.net</string>
10 <string>3.3.96, (C) 1999-2018 Tony Bybell http://gtkwave.sourceforge.net</string>
1111 <key>CFBundleIconFile</key>
1212 <string>gtkwave.icns</string>
1313 <key>CFBundleIdentifier</key>
1717 <key>CFBundlePackageType</key>
1818 <string>APPL</string>
1919 <key>CFBundleShortVersionString</key>
20 <string>3.3.95</string>
20 <string>3.3.96</string>
2121 <key>CFBundleSignature</key>
2222 <string>????</string>
2323 <key>CFBundleVersion</key>
24 <string>3.3.95</string>
24 <string>3.3.96</string>
2525 <key>NSHumanReadableCopyright</key>
2626 <string>Copyright 1999 - 2018 Tony Bybell, GNU General Public License.</string>
2727 <key>LSMinimumSystemVersion</key>
997997
998998 static int v_preproc(char *buf, int max_size)
999999 {
1000 (void)max_size;
1001
10001002 int ch;
10011003
10021004 if(!v_preproc_initialized)
10241026
10251027
10261028
1027 #line 1029 "vlex.c"
1029 #line 1031 "vlex.c"
10281030
10291031 #define INITIAL 0
10301032 #define CMNT 1
12081210 register char *yy_cp, *yy_bp;
12091211 register int yy_act;
12101212
1211 #line 65 "vlex.l"
1212
1213 #line 1215 "vlex.c"
1213 #line 67 "vlex.l"
1214
1215 #line 1217 "vlex.c"
12141216
12151217 if ( !(yy_init) )
12161218 {
12951297
12961298 case 1:
12971299 YY_RULE_SETUP
1298 #line 66 "vlex.l"
1300 #line 68 "vlex.l"
12991301 { BEGIN CMNT; return V_CMT; }
13001302 YY_BREAK
13011303 case 2:
1302 YY_RULE_SETUP
1303 #line 67 "vlex.l"
1304 { return V_CMT; }
1305 YY_BREAK
1306 case 3:
1307 YY_RULE_SETUP
1308 #line 68 "vlex.l"
1309 { BEGIN INITIAL; return V_CMT; }
1310 YY_BREAK
1311 case 4:
13121304 YY_RULE_SETUP
13131305 #line 69 "vlex.l"
13141306 { return V_CMT; }
13151307 YY_BREAK
1308 case 3:
1309 YY_RULE_SETUP
1310 #line 70 "vlex.l"
1311 { BEGIN INITIAL; return V_CMT; }
1312 YY_BREAK
1313 case 4:
1314 YY_RULE_SETUP
1315 #line 71 "vlex.l"
1316 { return V_CMT; }
1317 YY_BREAK
13161318 case 5:
13171319 YY_RULE_SETUP
1318 #line 70 "vlex.l"
1320 #line 72 "vlex.l"
13191321 { return V_CMT; }
13201322 YY_BREAK
13211323 case 6:
13221324 /* rule 6 can match eol */
13231325 YY_RULE_SETUP
1324 #line 71 "vlex.l"
1326 #line 73 "vlex.l"
13251327 { my_yylineno++; return V_CMT; }
13261328 YY_BREAK
13271329 case 7:
13281330 YY_RULE_SETUP
1329 #line 73 "vlex.l"
1331 #line 75 "vlex.l"
13301332 { return V_KW; }
13311333 YY_BREAK
13321334 case 8:
13331335 YY_RULE_SETUP
1334 #line 74 "vlex.l"
1336 #line 76 "vlex.l"
13351337 { return V_KW; }
13361338 YY_BREAK
13371339 case 9:
13381340 YY_RULE_SETUP
1339 #line 75 "vlex.l"
1341 #line 77 "vlex.l"
13401342 { return V_KW; }
13411343 YY_BREAK
13421344 case 10:
13431345 YY_RULE_SETUP
1344 #line 76 "vlex.l"
1346 #line 78 "vlex.l"
13451347 { return V_KW; }
13461348 YY_BREAK
13471349 case 11:
13481350 YY_RULE_SETUP
1349 #line 77 "vlex.l"
1351 #line 79 "vlex.l"
13501352 { return V_KW; }
13511353 YY_BREAK
13521354 case 12:
13531355 YY_RULE_SETUP
1354 #line 78 "vlex.l"
1356 #line 80 "vlex.l"
13551357 { return V_KW; }
13561358 YY_BREAK
13571359 case 13:
13581360 YY_RULE_SETUP
1359 #line 79 "vlex.l"
1361 #line 81 "vlex.l"
13601362 { return V_KW; }
13611363 YY_BREAK
13621364 case 14:
13631365 YY_RULE_SETUP
1364 #line 80 "vlex.l"
1366 #line 82 "vlex.l"
13651367 { return V_KW; }
13661368 YY_BREAK
13671369 case 15:
13681370 YY_RULE_SETUP
1369 #line 81 "vlex.l"
1371 #line 83 "vlex.l"
13701372 { return V_KW; }
13711373 YY_BREAK
13721374 case 16:
13731375 YY_RULE_SETUP
1374 #line 82 "vlex.l"
1376 #line 84 "vlex.l"
13751377 { return V_KW; }
13761378 YY_BREAK
13771379 case 17:
13781380 YY_RULE_SETUP
1379 #line 83 "vlex.l"
1381 #line 85 "vlex.l"
13801382 { return V_KW; }
13811383 YY_BREAK
13821384 case 18:
13831385 YY_RULE_SETUP
1384 #line 84 "vlex.l"
1386 #line 86 "vlex.l"
13851387 { return V_KW; }
13861388 YY_BREAK
13871389 case 19:
13881390 YY_RULE_SETUP
1389 #line 85 "vlex.l"
1391 #line 87 "vlex.l"
13901392 { return V_KW; }
13911393 YY_BREAK
13921394 case 20:
13931395 YY_RULE_SETUP
1394 #line 86 "vlex.l"
1396 #line 88 "vlex.l"
13951397 { return V_KW; }
13961398 YY_BREAK
13971399 case 21:
13981400 YY_RULE_SETUP
1399 #line 87 "vlex.l"
1401 #line 89 "vlex.l"
14001402 { return V_KW; }
14011403 YY_BREAK
14021404 case 22:
14031405 YY_RULE_SETUP
1404 #line 88 "vlex.l"
1406 #line 90 "vlex.l"
14051407 { return V_KW; }
14061408 YY_BREAK
14071409 case 23:
14081410 YY_RULE_SETUP
1409 #line 89 "vlex.l"
1411 #line 91 "vlex.l"
14101412 { return V_KW; }
14111413 YY_BREAK
14121414 case 24:
14131415 YY_RULE_SETUP
1414 #line 90 "vlex.l"
1416 #line 92 "vlex.l"
14151417 { return V_KW; }
14161418 YY_BREAK
14171419 case 25:
14181420 YY_RULE_SETUP
1419 #line 91 "vlex.l"
1421 #line 93 "vlex.l"
14201422 { return V_KW; }
14211423 YY_BREAK
14221424 case 26:
14231425 YY_RULE_SETUP
1424 #line 92 "vlex.l"
1426 #line 94 "vlex.l"
14251427 { return V_KW; }
14261428 YY_BREAK
14271429 case 27:
14281430 YY_RULE_SETUP
1429 #line 93 "vlex.l"
1431 #line 95 "vlex.l"
14301432 { return V_KW; }
14311433 YY_BREAK
14321434 case 28:
14331435 YY_RULE_SETUP
1434 #line 94 "vlex.l"
1436 #line 96 "vlex.l"
14351437 { return V_KW; }
14361438 YY_BREAK
14371439 case 29:
14381440 YY_RULE_SETUP
1439 #line 95 "vlex.l"
1441 #line 97 "vlex.l"
14401442 { return V_KW; }
14411443 YY_BREAK
14421444 case 30:
14431445 YY_RULE_SETUP
1444 #line 96 "vlex.l"
1446 #line 98 "vlex.l"
14451447 { return V_KW; }
14461448 YY_BREAK
14471449 case 31:
14481450 YY_RULE_SETUP
1449 #line 97 "vlex.l"
1451 #line 99 "vlex.l"
14501452 { return V_KW; }
14511453 YY_BREAK
14521454 case 32:
14531455 YY_RULE_SETUP
1454 #line 98 "vlex.l"
1456 #line 100 "vlex.l"
14551457 { return V_KW; }
14561458 YY_BREAK
14571459 case 33:
14581460 YY_RULE_SETUP
1459 #line 99 "vlex.l"
1461 #line 101 "vlex.l"
14601462 { return V_KW; }
14611463 YY_BREAK
14621464 case 34:
14631465 YY_RULE_SETUP
1464 #line 100 "vlex.l"
1466 #line 102 "vlex.l"
14651467 { return V_KW; }
14661468 YY_BREAK
14671469 case 35:
14681470 YY_RULE_SETUP
1469 #line 101 "vlex.l"
1471 #line 103 "vlex.l"
14701472 { return V_KW; }
14711473 YY_BREAK
14721474 case 36:
14731475 YY_RULE_SETUP
1474 #line 102 "vlex.l"
1476 #line 104 "vlex.l"
14751477 { return V_KW; }
14761478 YY_BREAK
14771479 case 37:
14781480 YY_RULE_SETUP
1479 #line 103 "vlex.l"
1481 #line 105 "vlex.l"
14801482 { return V_KW; }
14811483 YY_BREAK
14821484 case 38:
14831485 YY_RULE_SETUP
1484 #line 104 "vlex.l"
1486 #line 106 "vlex.l"
14851487 { return V_KW; }
14861488 YY_BREAK
14871489 case 39:
14881490 YY_RULE_SETUP
1489 #line 105 "vlex.l"
1491 #line 107 "vlex.l"
14901492 { return V_KW; }
14911493 YY_BREAK
14921494 case 40:
14931495 YY_RULE_SETUP
1494 #line 106 "vlex.l"
1496 #line 108 "vlex.l"
14951497 { return V_KW; }
14961498 YY_BREAK
14971499 case 41:
14981500 YY_RULE_SETUP
1499 #line 107 "vlex.l"
1501 #line 109 "vlex.l"
15001502 { return V_KW; }
15011503 YY_BREAK
15021504 case 42:
15031505 YY_RULE_SETUP
1504 #line 108 "vlex.l"
1506 #line 110 "vlex.l"
15051507 { return V_KW; }
15061508 YY_BREAK
15071509 case 43:
15081510 YY_RULE_SETUP
1509 #line 109 "vlex.l"
1511 #line 111 "vlex.l"
15101512 { return V_KW; }
15111513 YY_BREAK
15121514 case 44:
15131515 YY_RULE_SETUP
1514 #line 110 "vlex.l"
1516 #line 112 "vlex.l"
15151517 { return V_KW; }
15161518 YY_BREAK
15171519 case 45:
15181520 YY_RULE_SETUP
1519 #line 111 "vlex.l"
1521 #line 113 "vlex.l"
15201522 { return V_KW; }
15211523 YY_BREAK
15221524 case 46:
15231525 YY_RULE_SETUP
1524 #line 112 "vlex.l"
1526 #line 114 "vlex.l"
15251527 { return V_KW; }
15261528 YY_BREAK
15271529 case 47:
15281530 YY_RULE_SETUP
1529 #line 113 "vlex.l"
1531 #line 115 "vlex.l"
15301532 { return V_KW; }
15311533 YY_BREAK
15321534 case 48:
15331535 YY_RULE_SETUP
1534 #line 114 "vlex.l"
1536 #line 116 "vlex.l"
15351537 { return V_KW; }
15361538 YY_BREAK
15371539 case 49:
15381540 YY_RULE_SETUP
1539 #line 115 "vlex.l"
1541 #line 117 "vlex.l"
15401542 { return V_KW; }
15411543 YY_BREAK
15421544 case 50:
15431545 YY_RULE_SETUP
1544 #line 116 "vlex.l"
1546 #line 118 "vlex.l"
15451547 { return V_KW; }
15461548 YY_BREAK
15471549 case 51:
15481550 YY_RULE_SETUP
1549 #line 117 "vlex.l"
1551 #line 119 "vlex.l"
15501552 { return V_KW; }
15511553 YY_BREAK
15521554 case 52:
15531555 YY_RULE_SETUP
1554 #line 118 "vlex.l"
1556 #line 120 "vlex.l"
15551557 { return V_KW; }
15561558 YY_BREAK
15571559 case 53:
15581560 YY_RULE_SETUP
1559 #line 119 "vlex.l"
1561 #line 121 "vlex.l"
15601562 { return V_KW; }
15611563 YY_BREAK
15621564 case 54:
15631565 YY_RULE_SETUP
1564 #line 120 "vlex.l"
1566 #line 122 "vlex.l"
15651567 { return V_KW; }
15661568 YY_BREAK
15671569 case 55:
15681570 YY_RULE_SETUP
1569 #line 121 "vlex.l"
1571 #line 123 "vlex.l"
15701572 { return V_KW; }
15711573 YY_BREAK
15721574 case 56:
15731575 YY_RULE_SETUP
1574 #line 122 "vlex.l"
1576 #line 124 "vlex.l"
15751577 { return V_KW; }
15761578 YY_BREAK
15771579 case 57:
15781580 YY_RULE_SETUP
1579 #line 123 "vlex.l"
1581 #line 125 "vlex.l"
15801582 { return V_KW; }
15811583 YY_BREAK
15821584 case 58:
15831585 YY_RULE_SETUP
1584 #line 124 "vlex.l"
1586 #line 126 "vlex.l"
15851587 { return V_KW; }
15861588 YY_BREAK
15871589 case 59:
15881590 YY_RULE_SETUP
1589 #line 125 "vlex.l"
1591 #line 127 "vlex.l"
15901592 { return V_KW; }
15911593 YY_BREAK
15921594 case 60:
15931595 YY_RULE_SETUP
1594 #line 126 "vlex.l"
1596 #line 128 "vlex.l"
15951597 { return V_KW; }
15961598 YY_BREAK
15971599 case 61:
15981600 YY_RULE_SETUP
1599 #line 127 "vlex.l"
1601 #line 129 "vlex.l"
16001602 { return V_KW; }
16011603 YY_BREAK
16021604 case 62:
16031605 YY_RULE_SETUP
1604 #line 128 "vlex.l"
1606 #line 130 "vlex.l"
16051607 { return V_KW; }
16061608 YY_BREAK
16071609 case 63:
16081610 YY_RULE_SETUP
1609 #line 129 "vlex.l"
1611 #line 131 "vlex.l"
16101612 { return V_KW; }
16111613 YY_BREAK
16121614 case 64:
16131615 YY_RULE_SETUP
1614 #line 130 "vlex.l"
1616 #line 132 "vlex.l"
16151617 { return V_KW; }
16161618 YY_BREAK
16171619 case 65:
16181620 YY_RULE_SETUP
1619 #line 131 "vlex.l"
1621 #line 133 "vlex.l"
16201622 { return V_KW; }
16211623 YY_BREAK
16221624 case 66:
16231625 YY_RULE_SETUP
1624 #line 132 "vlex.l"
1626 #line 134 "vlex.l"
16251627 { return V_KW; }
16261628 YY_BREAK
16271629 case 67:
16281630 YY_RULE_SETUP
1629 #line 133 "vlex.l"
1631 #line 135 "vlex.l"
16301632 { return V_KW; }
16311633 YY_BREAK
16321634 case 68:
16331635 YY_RULE_SETUP
1634 #line 134 "vlex.l"
1636 #line 136 "vlex.l"
16351637 { return V_KW; }
16361638 YY_BREAK
16371639 case 69:
16381640 YY_RULE_SETUP
1639 #line 135 "vlex.l"
1641 #line 137 "vlex.l"
16401642 { return V_KW; }
16411643 YY_BREAK
16421644 case 70:
16431645 YY_RULE_SETUP
1644 #line 136 "vlex.l"
1646 #line 138 "vlex.l"
16451647 { return V_KW; }
16461648 YY_BREAK
16471649 case 71:
16481650 YY_RULE_SETUP
1649 #line 137 "vlex.l"
1651 #line 139 "vlex.l"
16501652 { return V_KW; }
16511653 YY_BREAK
16521654 case 72:
16531655 YY_RULE_SETUP
1654 #line 138 "vlex.l"
1656 #line 140 "vlex.l"
16551657 { return V_KW; }
16561658 YY_BREAK
16571659 case 73:
16581660 YY_RULE_SETUP
1659 #line 139 "vlex.l"
1661 #line 141 "vlex.l"
16601662 { return V_KW; }
16611663 YY_BREAK
16621664 case 74:
16631665 YY_RULE_SETUP
1664 #line 140 "vlex.l"
1666 #line 142 "vlex.l"
16651667 { return V_KW; }
16661668 YY_BREAK
16671669 case 75:
16681670 YY_RULE_SETUP
1669 #line 141 "vlex.l"
1671 #line 143 "vlex.l"
16701672 { return V_KW; }
16711673 YY_BREAK
16721674 case 76:
16731675 YY_RULE_SETUP
1674 #line 142 "vlex.l"
1676 #line 144 "vlex.l"
16751677 { return V_KW; }
16761678 YY_BREAK
16771679 case 77:
16781680 YY_RULE_SETUP
1679 #line 143 "vlex.l"
1681 #line 145 "vlex.l"
16801682 { return V_KW; }
16811683 YY_BREAK
16821684 case 78:
16831685 YY_RULE_SETUP
1684 #line 144 "vlex.l"
1686 #line 146 "vlex.l"
16851687 { return V_KW; }
16861688 YY_BREAK
16871689 case 79:
16881690 YY_RULE_SETUP
1689 #line 145 "vlex.l"
1691 #line 147 "vlex.l"
16901692 { return V_KW; }
16911693 YY_BREAK
16921694 case 80:
16931695 YY_RULE_SETUP
1694 #line 146 "vlex.l"
1696 #line 148 "vlex.l"
16951697 { return V_KW; }
16961698 YY_BREAK
16971699 case 81:
16981700 YY_RULE_SETUP
1699 #line 147 "vlex.l"
1701 #line 149 "vlex.l"
17001702 { return V_KW; }
17011703 YY_BREAK
17021704 case 82:
17031705 YY_RULE_SETUP
1704 #line 148 "vlex.l"
1706 #line 150 "vlex.l"
17051707 { return V_KW; }
17061708 YY_BREAK
17071709 case 83:
17081710 YY_RULE_SETUP
1709 #line 149 "vlex.l"
1711 #line 151 "vlex.l"
17101712 { return V_KW; }
17111713 YY_BREAK
17121714 case 84:
17131715 YY_RULE_SETUP
1714 #line 150 "vlex.l"
1716 #line 152 "vlex.l"
17151717 { return V_KW; }
17161718 YY_BREAK
17171719 case 85:
17181720 YY_RULE_SETUP
1719 #line 151 "vlex.l"
1721 #line 153 "vlex.l"
17201722 { return V_KW; }
17211723 YY_BREAK
17221724 case 86:
17231725 YY_RULE_SETUP
1724 #line 152 "vlex.l"
1726 #line 154 "vlex.l"
17251727 { return V_KW; }
17261728 YY_BREAK
17271729 case 87:
17281730 YY_RULE_SETUP
1729 #line 153 "vlex.l"
1731 #line 155 "vlex.l"
17301732 { return V_KW; }
17311733 YY_BREAK
17321734 case 88:
17331735 YY_RULE_SETUP
1734 #line 154 "vlex.l"
1736 #line 156 "vlex.l"
17351737 { return V_KW; }
17361738 YY_BREAK
17371739 case 89:
17381740 YY_RULE_SETUP
1739 #line 155 "vlex.l"
1741 #line 157 "vlex.l"
17401742 { return V_KW; }
17411743 YY_BREAK
17421744 case 90:
17431745 YY_RULE_SETUP
1744 #line 156 "vlex.l"
1746 #line 158 "vlex.l"
17451747 { return V_KW; }
17461748 YY_BREAK
17471749 case 91:
17481750 YY_RULE_SETUP
1749 #line 157 "vlex.l"
1751 #line 159 "vlex.l"
17501752 { return V_KW; }
17511753 YY_BREAK
17521754 case 92:
17531755 YY_RULE_SETUP
1754 #line 158 "vlex.l"
1756 #line 160 "vlex.l"
17551757 { return V_KW; }
17561758 YY_BREAK
17571759 case 93:
17581760 YY_RULE_SETUP
1759 #line 159 "vlex.l"
1761 #line 161 "vlex.l"
17601762 { return V_KW; }
17611763 YY_BREAK
17621764 case 94:
17631765 YY_RULE_SETUP
1764 #line 160 "vlex.l"
1766 #line 162 "vlex.l"
17651767 { return V_KW; }
17661768 YY_BREAK
17671769 case 95:
17681770 YY_RULE_SETUP
1769 #line 162 "vlex.l"
1771 #line 164 "vlex.l"
17701772 { return V_KW; }
17711773 YY_BREAK
17721774 case 96:
17731775 YY_RULE_SETUP
1774 #line 163 "vlex.l"
1776 #line 165 "vlex.l"
17751777 { return V_KW; }
17761778 YY_BREAK
17771779 case 97:
17781780 YY_RULE_SETUP
1779 #line 164 "vlex.l"
1781 #line 166 "vlex.l"
17801782 { return V_KW; }
17811783 YY_BREAK
17821784 case 98:
17831785 YY_RULE_SETUP
1784 #line 165 "vlex.l"
1786 #line 167 "vlex.l"
17851787 { return V_KW; }
17861788 YY_BREAK
17871789 case 99:
17881790 YY_RULE_SETUP
1789 #line 166 "vlex.l"
1791 #line 168 "vlex.l"
17901792 { return V_KW; }
17911793 YY_BREAK
17921794 case 100:
17931795 YY_RULE_SETUP
1794 #line 167 "vlex.l"
1796 #line 169 "vlex.l"
17951797 { return V_KW; }
17961798 YY_BREAK
17971799 case 101:
17981800 YY_RULE_SETUP
1799 #line 168 "vlex.l"
1801 #line 170 "vlex.l"
18001802 { return V_KW; }
18011803 YY_BREAK
18021804 case 102:
18031805 YY_RULE_SETUP
1804 #line 169 "vlex.l"
1806 #line 171 "vlex.l"
18051807 { return V_KW; }
18061808 YY_BREAK
18071809 case 103:
1808 YY_RULE_SETUP
1809 #line 171 "vlex.l"
1810 { return V_KW_2005; }
1811 YY_BREAK
1812 case 104:
1813 YY_RULE_SETUP
1814 #line 172 "vlex.l"
1815 { return V_KW_2005; }
1816 YY_BREAK
1817 case 105:
18181810 YY_RULE_SETUP
18191811 #line 173 "vlex.l"
18201812 { return V_KW_2005; }
18211813 YY_BREAK
1822 case 106:
1814 case 104:
18231815 YY_RULE_SETUP
18241816 #line 174 "vlex.l"
18251817 { return V_KW_2005; }
18261818 YY_BREAK
1827 case 107:
1819 case 105:
18281820 YY_RULE_SETUP
18291821 #line 175 "vlex.l"
18301822 { return V_KW_2005; }
18311823 YY_BREAK
1832 case 108:
1824 case 106:
18331825 YY_RULE_SETUP
18341826 #line 176 "vlex.l"
18351827 { return V_KW_2005; }
18361828 YY_BREAK
1837 case 109:
1829 case 107:
18381830 YY_RULE_SETUP
18391831 #line 177 "vlex.l"
18401832 { return V_KW_2005; }
18411833 YY_BREAK
1842 case 110:
1834 case 108:
18431835 YY_RULE_SETUP
18441836 #line 178 "vlex.l"
18451837 { return V_KW_2005; }
18461838 YY_BREAK
1847 case 111:
1839 case 109:
18481840 YY_RULE_SETUP
18491841 #line 179 "vlex.l"
18501842 { return V_KW_2005; }
18511843 YY_BREAK
1852 case 112:
1844 case 110:
18531845 YY_RULE_SETUP
18541846 #line 180 "vlex.l"
18551847 { return V_KW_2005; }
18561848 YY_BREAK
1857 case 113:
1849 case 111:
18581850 YY_RULE_SETUP
18591851 #line 181 "vlex.l"
18601852 { return V_KW_2005; }
18611853 YY_BREAK
1862 case 114:
1854 case 112:
18631855 YY_RULE_SETUP
18641856 #line 182 "vlex.l"
18651857 { return V_KW_2005; }
18661858 YY_BREAK
1867 case 115:
1859 case 113:
18681860 YY_RULE_SETUP
18691861 #line 183 "vlex.l"
18701862 { return V_KW_2005; }
18711863 YY_BREAK
1872 case 116:
1864 case 114:
18731865 YY_RULE_SETUP
18741866 #line 184 "vlex.l"
18751867 { return V_KW_2005; }
18761868 YY_BREAK
1877 case 117:
1869 case 115:
18781870 YY_RULE_SETUP
18791871 #line 185 "vlex.l"
18801872 { return V_KW_2005; }
18811873 YY_BREAK
1882 case 118:
1874 case 116:
18831875 YY_RULE_SETUP
18841876 #line 186 "vlex.l"
18851877 { return V_KW_2005; }
18861878 YY_BREAK
1887 case 119:
1879 case 117:
18881880 YY_RULE_SETUP
18891881 #line 187 "vlex.l"
18901882 { return V_KW_2005; }
18911883 YY_BREAK
1892 case 120:
1884 case 118:
18931885 YY_RULE_SETUP
18941886 #line 188 "vlex.l"
18951887 { return V_KW_2005; }
18961888 YY_BREAK
1897 case 121:
1889 case 119:
18981890 YY_RULE_SETUP
18991891 #line 189 "vlex.l"
19001892 { return V_KW_2005; }
19011893 YY_BREAK
1902 case 122:
1894 case 120:
19031895 YY_RULE_SETUP
19041896 #line 190 "vlex.l"
19051897 { return V_KW_2005; }
19061898 YY_BREAK
1907 case 123:
1899 case 121:
19081900 YY_RULE_SETUP
19091901 #line 191 "vlex.l"
19101902 { return V_KW_2005; }
19111903 YY_BREAK
1912 case 124:
1904 case 122:
19131905 YY_RULE_SETUP
19141906 #line 192 "vlex.l"
19151907 { return V_KW_2005; }
19161908 YY_BREAK
1917 case 125:
1909 case 123:
19181910 YY_RULE_SETUP
19191911 #line 193 "vlex.l"
19201912 { return V_KW_2005; }
19211913 YY_BREAK
1922 case 126:
1914 case 124:
1915 YY_RULE_SETUP
1916 #line 194 "vlex.l"
1917 { return V_KW_2005; }
1918 YY_BREAK
1919 case 125:
19231920 YY_RULE_SETUP
19241921 #line 195 "vlex.l"
19251922 { return V_KW_2005; }
19261923 YY_BREAK
1927 case 127:
1928 YY_RULE_SETUP
1929 #line 196 "vlex.l"
1930 { return V_KW_2005; }
1931 YY_BREAK
1932 case 128:
1924 case 126:
19331925 YY_RULE_SETUP
19341926 #line 197 "vlex.l"
19351927 { return V_KW_2005; }
19361928 YY_BREAK
1937 case 129:
1929 case 127:
19381930 YY_RULE_SETUP
19391931 #line 198 "vlex.l"
19401932 { return V_KW_2005; }
19411933 YY_BREAK
1942 case 130:
1934 case 128:
19431935 YY_RULE_SETUP
19441936 #line 199 "vlex.l"
19451937 { return V_KW_2005; }
19461938 YY_BREAK
1947 case 131:
1939 case 129:
19481940 YY_RULE_SETUP
19491941 #line 200 "vlex.l"
19501942 { return V_KW_2005; }
19511943 YY_BREAK
1952 case 132:
1944 case 130:
19531945 YY_RULE_SETUP
19541946 #line 201 "vlex.l"
19551947 { return V_KW_2005; }
19561948 YY_BREAK
1949 case 131:
1950 YY_RULE_SETUP
1951 #line 202 "vlex.l"
1952 { return V_KW_2005; }
1953 YY_BREAK
1954 case 132:
1955 YY_RULE_SETUP
1956 #line 203 "vlex.l"
1957 { return V_KW_2005; }
1958 YY_BREAK
19571959 case 133:
1958 YY_RULE_SETUP
1959 #line 203 "vlex.l"
1960 { return V_MODULE; }
1961 YY_BREAK
1962 case 134:
1963 YY_RULE_SETUP
1964 #line 204 "vlex.l"
1965 { return V_MODULE; }
1966 YY_BREAK
1967 case 135:
19681960 YY_RULE_SETUP
19691961 #line 205 "vlex.l"
19701962 { return V_MODULE; }
19711963 YY_BREAK
1964 case 134:
1965 YY_RULE_SETUP
1966 #line 206 "vlex.l"
1967 { return V_MODULE; }
1968 YY_BREAK
1969 case 135:
1970 YY_RULE_SETUP
1971 #line 207 "vlex.l"
1972 { return V_MODULE; }
1973 YY_BREAK
19721974 case 136:
19731975 YY_RULE_SETUP
1974 #line 207 "vlex.l"
1976 #line 209 "vlex.l"
19751977 { return V_ENDMODULE; }
19761978 YY_BREAK
19771979 case 137:
19781980 YY_RULE_SETUP
1979 #line 208 "vlex.l"
1981 #line 210 "vlex.l"
19801982 { return V_ENDMODULE; }
19811983 YY_BREAK
19821984 case 138:
19831985 YY_RULE_SETUP
1984 #line 210 "vlex.l"
1986 #line 212 "vlex.l"
19851987 { return V_PREPROC_WS; }
19861988 YY_BREAK
19871989 case 139:
19881990 /* rule 139 can match eol */
19891991 YY_RULE_SETUP
1990 #line 211 "vlex.l"
1992 #line 213 "vlex.l"
19911993 { my_yylineno++; BEGIN INITIAL; return V_WS; }
19921994 YY_BREAK
19931995 case 140:
19941996 YY_RULE_SETUP
1995 #line 213 "vlex.l"
1997 #line 215 "vlex.l"
19961998 {
19971999 if(is_builtin_define (yytext+1, yyleng-1))
19982000 {
20052007 YY_BREAK
20062008 case 141:
20072009 YY_RULE_SETUP
2008 #line 224 "vlex.l"
2009 { return V_ID; }
2010 YY_BREAK
2011 case 142:
2012 YY_RULE_SETUP
2013 #line 225 "vlex.l"
2014 { return V_FUNC; }
2015 YY_BREAK
2016 case 143:
2017 YY_RULE_SETUP
20182010 #line 226 "vlex.l"
20192011 { return V_ID; }
20202012 YY_BREAK
2013 case 142:
2014 YY_RULE_SETUP
2015 #line 227 "vlex.l"
2016 { return V_FUNC; }
2017 YY_BREAK
2018 case 143:
2019 YY_RULE_SETUP
2020 #line 228 "vlex.l"
2021 { return V_ID; }
2022 YY_BREAK
20212023 case 144:
20222024 YY_RULE_SETUP
2023 #line 227 "vlex.l"
2025 #line 229 "vlex.l"
20242026 { return V_ID; }
20252027 YY_BREAK
20262028 case 145:
20272029 YY_RULE_SETUP
2028 #line 228 "vlex.l"
2030 #line 230 "vlex.l"
20292031 { return V_PORT; }
20302032 YY_BREAK
20312033 case 146:
2032 YY_RULE_SETUP
2033 #line 229 "vlex.l"
2034 { return V_NUMBER; }
2035 YY_BREAK
2036 case 147:
2037 YY_RULE_SETUP
2038 #line 230 "vlex.l"
2039 { return V_NUMBER; }
2040 YY_BREAK
2041 case 148:
20422034 YY_RULE_SETUP
20432035 #line 231 "vlex.l"
20442036 { return V_NUMBER; }
20452037 YY_BREAK
2046 case 149:
2038 case 147:
20472039 YY_RULE_SETUP
20482040 #line 232 "vlex.l"
20492041 { return V_NUMBER; }
20502042 YY_BREAK
2051 case 150:
2043 case 148:
20522044 YY_RULE_SETUP
20532045 #line 233 "vlex.l"
20542046 { return V_NUMBER; }
20552047 YY_BREAK
2048 case 149:
2049 YY_RULE_SETUP
2050 #line 234 "vlex.l"
2051 { return V_NUMBER; }
2052 YY_BREAK
2053 case 150:
2054 YY_RULE_SETUP
2055 #line 235 "vlex.l"
2056 { return V_NUMBER; }
2057 YY_BREAK
20562058 case 151:
20572059 YY_RULE_SETUP
2058 #line 234 "vlex.l"
2060 #line 236 "vlex.l"
20592061 { return V_IGNORE; }
20602062 YY_BREAK
20612063 case 152:
20622064 YY_RULE_SETUP
2063 #line 235 "vlex.l"
2065 #line 237 "vlex.l"
20642066 { return V_WS; }
20652067 YY_BREAK
20662068 case 153:
20672069 /* rule 153 can match eol */
20682070 YY_RULE_SETUP
2069 #line 236 "vlex.l"
2071 #line 238 "vlex.l"
20702072 { my_yylineno++; return V_WS; }
20712073 YY_BREAK
20722074 case 154:
20732075 YY_RULE_SETUP
2074 #line 237 "vlex.l"
2076 #line 239 "vlex.l"
20752077 { return V_CMT; }
20762078 YY_BREAK
20772079 case 155:
20782080 YY_RULE_SETUP
2079 #line 238 "vlex.l"
2081 #line 240 "vlex.l"
20802082 { return V_STRING; }
20812083 YY_BREAK
20822084 case 156:
20832085 YY_RULE_SETUP
2084 #line 239 "vlex.l"
2086 #line 241 "vlex.l"
20852087 { return V_IGNORE; }
20862088 YY_BREAK
20872089 case 157:
20882090 YY_RULE_SETUP
2089 #line 241 "vlex.l"
2091 #line 243 "vlex.l"
20902092 ECHO;
20912093 YY_BREAK
2092 #line 2094 "vlex.c"
2094 #line 2096 "vlex.c"
20932095 case YY_STATE_EOF(INITIAL):
20942096 case YY_STATE_EOF(CMNT):
20952097 case YY_STATE_EOF(PREPROC):
30853087
30863088 #define YYTABLES_NAME "yytables"
30873089
3088 #line 241 "vlex.l"
3089
3090
3091
3090 #line 243 "vlex.l"
3091
3092
3093
3131
3232 static int v_preproc(char *buf, int max_size)
3333 {
34 (void)max_size;
35
3436 int ch;
3537
3638 if(!v_preproc_initialized)
Binary diff not shown
255255 accel "/Time/Move To Time" F1
256256 accel "/Time/Zoom/Zoom Amount" F2
257257 accel "/Time/Zoom/Zoom Base" <Shift>F2
258 accel "/Time/Zoom/Zoom In" <Alt>Z
259 accel "/Time/Zoom/Zoom Out" <Shift><Alt>Z
260 accel "/Time/Zoom/Zoom Full" <Alt>F
258 accel "/Time/Zoom/Zoom In" <Control>plus
259 accel "/Time/Zoom/Zoom Out" <Control>minus
260 accel "/Time/Zoom/Zoom Full" <Control>0
261261 accel "/Time/Zoom/Zoom Best Fit" <Shift><Alt>F
262262 accel "/Time/Zoom/Zoom To Start" Home
263263 accel "/Time/Zoom/Zoom To End" End
895895
896896 int vtype(Trptr t, char *vec)
897897 {
898 int i, nbits, res;
899 int an_u_encountered = 0;
898 int i, nbits;
899 char pch, ch;
900900
901901 if (vec == NULL)
902902 return(AN_X);
904904 nbits=t->n.nd->msi-t->n.nd->lsi;
905905 if(nbits<0)nbits=-nbits;
906906 nbits++;
907 res = AN_1;
908 for (i = 0; i < nbits; i++)
909 {
910 switch (*vec)
911 {
912 case AN_X:
913 case 'x':
914 case 'X':
915 return(AN_X);
916 case AN_U:
917 case 'u':
918 case 'U':
919 an_u_encountered = 1; break;
920 case AN_Z:
921 case 'z':
922 case 'Z':
923 if (res == AN_0) return(AN_X); vec++; res = AN_Z; break;
924 default: if (res == AN_Z) return(AN_X); vec++; res = AN_0; break;
925 }
926 }
927
928 return(!an_u_encountered ? res : AN_U);
907 pch = ch = vec[0];
908 for (i = 1; i < nbits; i++)
909 {
910 ch = vec[i];
911 if(ch != pch) goto miscompare;
912 }
913
914 return(ch);
915
916 miscompare:
917 if((pch == AN_X) || (pch == AN_U)) return(pch);
918 if(pch == AN_Z) return(AN_X);
919 for (; i < nbits; i++)
920 {
921 ch = vec[i];
922 if((ch == AN_X) || (ch == AN_U)) return(ch);
923 if(ch == AN_Z) return(AN_X);
924 }
925
926 return(AN_COUNT);
929927 }
930928
931929 int vtype2(Trptr t, vptr v)
932930 {
933 int i, nbits, res;
934 int an_u_encountered = 0;
931 int i, nbits;
932 char pch, ch;
935933 char *vec=(char *)v->v;
936934
937935 if(!t->t_filter_converted)
941939 }
942940 else
943941 {
944 return ( ((vec == NULL) || (vec[0] == 0)) ? AN_Z : AN_0 );
942 return ( ((vec == NULL) || (vec[0] == 0)) ? AN_Z : AN_COUNT );
945943 }
946944
947945 nbits=t->n.vec->nbits;
948 res = AN_1;
949 for (i = 0; i < nbits; i++)
950 {
951 switch (*vec)
952 {
953 case AN_X:
954 case 'x':
955 case 'X':
956 return(AN_X);
957 case AN_U:
958 case 'u':
959 case 'U':
960 an_u_encountered = 1; break;
961 case AN_Z:
962 case 'z':
963 case 'Z':
964 if (res == AN_0) return(AN_X); vec++; res = AN_Z; break;
965 default: if (res == AN_Z) return(AN_X); vec++; res = AN_0; break;
966 }
967 }
968
969 return(!an_u_encountered ? res : AN_U);
946
947 pch = ch = vec[0];
948 for (i = 1; i < nbits; i++)
949 {
950 ch = vec[i];
951 if(ch != pch) goto miscompare;
952 }
953
954 return(ch);
955
956 miscompare:
957 if((pch == AN_X) || (pch == AN_U)) return(pch);
958 if(pch == AN_Z) return(AN_X);
959 for (; i < nbits; i++)
960 {
961 ch = vec[i];
962 if((ch == AN_X) || (ch == AN_U)) return(ch);
963 if(ch == AN_Z) return(AN_X);
964 }
965
966 return(AN_COUNT);
970967 }
968
971969
972970 /*
973971 * convert trptr+hptr vectorstring into an ascii string
00 /*
1 * Copyright (c) Tony Bybell 1999-2013.
1 * Copyright (c) Tony Bybell 1999-2018.
22 *
33 * This program is free software; you can redistribute it and/or
44 * modify it under the terms of the GNU General Public License
220220
221221 if((maxlen<=0)||(!ascii)||(!(len=strlen(ascii)))) return(NULL);
222222
223 GLOBALS->maxlen_trunc=0; GLOBALS->maxlen_trunc_pos_bsearch_c_1=NULL;
224
225 if(bsearch(&maxlen, GLOBALS->trunc_asciibase_bsearch_c_1=ascii, len, sizeof(char), compar_trunc))
226 {
227 /* nothing, all side effects are in bsearch */
228 }
223 GLOBALS->maxlen_trunc_pos_bsearch_c_1=NULL;
224
225 if(GLOBALS->wavefont->is_mono)
226 {
227 int adjusted_len = maxlen / GLOBALS->wavefont->mono_width;
228 if(adjusted_len) adjusted_len--;
229 if(GLOBALS->wavefont->mono_width <= maxlen)
230 {
231 GLOBALS->maxlen_trunc_pos_bsearch_c_1 = ascii + adjusted_len;
232 }
233 }
234 else
235 {
236 GLOBALS->maxlen_trunc=0;
237
238 if(bsearch(&maxlen, GLOBALS->trunc_asciibase_bsearch_c_1=ascii, len, sizeof(char), compar_trunc))
239 {
240 /* nothing, all side effects are in bsearch */
241 }
242 }
229243
230244 return(GLOBALS->maxlen_trunc_pos_bsearch_c_1);
231245 }
293307 rc=(struct symbol **)bsearch(ascii, GLOBALS->facs, GLOBALS->numfacs, sizeof(struct symbol *), compar_facs);
294308 if(rc) return(*rc); else return(NULL);
295309 }
296
169169 #if defined(WAVE_USE_GTK2) && !defined(GTK_ENABLE_BROKEN) && GTK_CHECK_VERSION(2,8,0)
170170 else
171171 {
172 PangoRectangle ink,logical;
172 /* PangoRectangle ink,logical; */
173173
174174 pango_layout_set_text(GLOBALS->fonts_layout, string, -1);
175175 pango_layout_set_font_description(GLOBALS->fonts_layout, font->desc);
176 pango_layout_get_extents(GLOBALS->fonts_layout,&ink,&logical);
176 /* pango_layout_get_extents(GLOBALS->fonts_layout,&ink,&logical); */
177177 gdk_draw_layout(drawable, gc, x, y-font->ascent, GLOBALS->fonts_layout);
178178 }
179179 #endif
11841184 NULL, /* varsplit_vcd_c_1 512 */
11851185 NULL, /* varsplitcurr */
11861186 0, /* var_prevch_vcd_c_1 513 */
1187 0, /* vcd_already_backtracked */
11871188
11881189
11891190 /*
11731173 char *varsplit_vcd_c_1; /* from vcd.c 550 */
11741174 char *vsplitcurr_vcd_c_1; /* from vcd.c 551 */
11751175 int var_prevch_vcd_c_1; /* from vcd.c 552 */
1176 char vcd_already_backtracked;
11761177
11771178
11781179 /*
282282 #if (defined(__MACH__) && defined(__APPLE__))
283283 if(!resolved_path)
284284 {
285 resolved_path = (unsigned char *)malloc(PATH_MAX+1); /* fixes bug on Leopard when resolved_path == NULL */
285 resolved_path = (char *)malloc(PATH_MAX+1); /* fixes bug on Leopard when resolved_path == NULL */
286286 }
287287 #endif
288288
292292 #ifdef __MINGW32__
293293 if(!resolved_path)
294294 {
295 resolved_path = (unsigned char *)malloc(PATH_MAX+1);
295 resolved_path = (char *)malloc(PATH_MAX+1);
296296 }
297297 return(_fullpath(resolved_path, path, PATH_MAX));
298298 #else
21612161 #ifdef __MINGW32__
21622162 {
21632163 int flen = strlen(xc->filename);
2164 char *hf = calloc(1, flen + 6);
2164 char *hf = (char *)calloc(1, flen + 6);
21652165 strcpy(hf, xc->filename);
21662166
21672167 if(xc->compress_hier)
108108
109109
110110 static lxtint64_t vcd_prevtime;
111 char vcd_blackout;
111 char vcd_blackout = 0;
112 static int backtrack_warning = 0;
112113
113114 void vcd_callback(struct lxt2_rd_trace **lt, lxtint64_t *pnt_time, lxtint32_t *pnt_facidx, char **pnt_value)
114115 {
118119
119120 if(vcd_prevtime != *pnt_time)
120121 {
122 if((vcd_prevtime > *pnt_time) && (!backtrack_warning) && (vcd_prevtime != -1))
123 {
124 backtrack_warning = 1;
125 fprintf(stderr, "LXTLOAD | Time backtracking encountered: this VCD might load incorrectly in gtkwave.\n");
126 }
127
121128 vcd_prevtime = *pnt_time;
122129 fprintf(fv, "#"LXT2_RD_LLD"\n", *pnt_time);
123130 }
124
131
125132 if(!(*pnt_value)[0])
126133 {
127134 if(!vcd_blackout)
12811281 GLOBALS->loaded_file_name = extracted_name;
12821282 }
12831283 }
1284 else
1285 {
1286 char *dfn = NULL;
1287 char *sfn = NULL;
1288 off_t dumpsiz = -1;
1289 time_t dumptim = -1;
1290
1291 read_save_helper(GLOBALS->loaded_file_name, &dfn, &sfn, &dumpsiz, &dumptim, &opt_vcd);
1292
1293 fprintf(stderr, "GTKWAVE | Could not initialize '%s' found in '%s', exiting.\n", dfn ? dfn : "(null)", GLOBALS->loaded_file_name);
1294 if(dfn) free_2(dfn);
1295 if(sfn) free_2(sfn);
1296 exit(255);
1297 }
12841298 }
12851299 else /* same as above but with --save specified */
12861300 if((!GLOBALS->loaded_file_name) && wname)
12871301 {
12881302 GLOBALS->loaded_file_name = extract_dumpname_from_save_file(wname, &GLOBALS->dumpfile_is_modified, &opt_vcd);
12891303 /* still can be NULL if file not found... */
1304 if(!GLOBALS->loaded_file_name)
1305 {
1306 char *dfn = NULL;
1307 char *sfn = NULL;
1308 off_t dumpsiz = -1;
1309 time_t dumptim = -1;
1310
1311 read_save_helper(wname, &dfn, &sfn, &dumpsiz, &dumptim, &opt_vcd);
1312
1313 fprintf(stderr, "GTKWAVE | Could not initialize '%s' found in '%s', exiting.\n", dfn ? dfn : "(null)", wname);
1314 if(dfn) free_2(dfn);
1315 if(sfn) free_2(sfn);
1316 exit(255);
1317 }
12901318 }
12911319
12921320
80618061 WAVE_GTKIFE("/Time/Move To Time", "F1", menu_movetotime, WV_MENU_TMTT, "<Item>"),
80628062 WAVE_GTKIFE("/Time/Zoom/Zoom Amount", "F2", menu_zoomsize, WV_MENU_TZZA, "<Item>"),
80638063 WAVE_GTKIFE("/Time/Zoom/Zoom Base", "<Shift>F2", menu_zoombase, WV_MENU_TZZB, "<Item>"),
8064 WAVE_GTKIFE("/Time/Zoom/Zoom In", "<Alt>Z", service_zoom_in_marshal, WV_MENU_TZZI, "<Item>"),
8065 WAVE_GTKIFE("/Time/Zoom/Zoom Out", "<Shift><Alt>Z", service_zoom_out_marshal, WV_MENU_TZZO, "<Item>"),
8066 WAVE_GTKIFE("/Time/Zoom/Zoom Full", "<Alt>F", service_zoom_full_marshal, WV_MENU_TZZBFL, "<Item>"),
8064 WAVE_GTKIFE("/Time/Zoom/Zoom In", "<Control>plus", service_zoom_in_marshal, WV_MENU_TZZI, "<Item>"),
8065 WAVE_GTKIFE("/Time/Zoom/Zoom Out", "<Control>minus", service_zoom_out_marshal, WV_MENU_TZZO, "<Item>"),
8066 WAVE_GTKIFE("/Time/Zoom/Zoom Full", "<Control>0", service_zoom_full_marshal, WV_MENU_TZZBFL, "<Item>"),
80678067 WAVE_GTKIFE("/Time/Zoom/Zoom Best Fit", "<Shift><Alt>F", service_zoom_fit_marshal, WV_MENU_TZZBF, "<Item>"),
80688068 WAVE_GTKIFE("/Time/Zoom/Zoom To Start", "Home", service_zoom_left_marshal, WV_MENU_TZZTS, "<Item>"),
80698069 WAVE_GTKIFE("/Time/Zoom/Zoom To End", "End", service_zoom_right_marshal, WV_MENU_TZZTE, "<Item>"),
89398939 slashcount = 0;
89408940 while(*s)
89418941 {
8942 if(*s == '/') slashes[slashcount++] = s;;
8942 if(*s == '/') slashes[slashcount++] = s;
89438943 s++;
89448944 }
89458945
91569156 gtkwave_mlist_t *mi = menu_items;
91579157 int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
91589158 GtkWidget *menubar;
9159 GtkAccelGroup *global_accel = gtk_accel_group_new();;
9159 GtkAccelGroup *global_accel = gtk_accel_group_new();
91609160 int i;
91619161 GtkWidget *mw;
91629162
9292 }
9393
9494 /*
95 * DND "drag_failed" handler, this is called when a drag and drop has
96 * failed (e.g., by pressing ESC).
97 */
98 #ifdef WAVE_USE_GTK2
99 static gboolean DNDFailedCB(
100 GtkWidget *widget, GdkDragContext *context, GtkDragResult result)
101 {
102 (void)widget;
103 (void)context;
104 (void)result;
105
106 GLOBALS->dnd_cursor_timer = 0;
107 GLOBALS->dnd_state = 0;
108 GLOBALS->standard_trace_dnd_degate = 1;
109
110 MaxSignalLength();
111 signalarea_configure_event(GLOBALS->signalarea, NULL);
112 wavearea_configure_event(GLOBALS->wavearea, NULL);
113
114 return(FALSE);
115 }
116 #endif
117
118 /*
95119 * DND "drag_end" handler, this is called when a drag and drop has
96120 * completed. So this function is the last one to be called in
97121 * any given DND operation.
118142 GdkEventMotion event[1];
119143 event[0].deviceid = GDK_CORE_POINTER;
120144 #endif
145
146 if(!GLOBALS->dnd_state) goto bot;
121147
122148 if(GLOBALS->std_dnd_tgt_on_signalarea || GLOBALS->std_dnd_tgt_on_wavearea)
123149 {
445471 GLOBALS->signalarea_event_box, widget, data);
446472 #endif
447473
474 #ifdef WAVE_USE_GTK2
475 if ( (event->keyval == GDK_KEY_equal) &&
476 #ifdef MAC_INTEGRATION
477 (event->state & GDK_META_MASK)
478 #else
479 (event->state & GDK_CONTROL_MASK)
480 #endif
481 )
482 {
483 service_zoom_in(NULL, NULL);
484 rc = TRUE;
485 }
486 else
487 #endif
448488 if(GTK_WIDGET_HAS_FOCUS(GLOBALS->signalarea_event_box))
449489 {
450490 switch(event->keyval)
15791619 MaxSignalLength();
15801620
15811621 gtk_widget_set_events(GLOBALS->signalarea,
1622 #ifdef WAVE_USE_GTK2
1623 GDK_SCROLL_MASK |
1624 #endif
15821625 GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK |
15831626 GDK_BUTTON_RELEASE_MASK |
15841627 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK
16141657 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->signalarea), "drag_motion", GTK_SIGNAL_FUNC(DNDDragMotionCB), GTK_WIDGET(GLOBALS->signalarea));
16151658 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->signalarea), "drag_begin", GTK_SIGNAL_FUNC(DNDBeginCB), GTK_WIDGET(GLOBALS->signalarea));
16161659 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->signalarea), "drag_end", GTK_SIGNAL_FUNC(DNDEndCB), GTK_WIDGET(GLOBALS->signalarea));
1660 #ifdef WAVE_USE_GTK2
1661 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->signalarea), "drag_failed", GTK_SIGNAL_FUNC(DNDFailedCB), GTK_WIDGET(GLOBALS->signalarea));
1662 #endif
16171663
16181664 gtk_drag_dest_set(
16191665 GTK_WIDGET(GLOBALS->wavearea),
16271673 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->wavearea), "drag_motion", GTK_SIGNAL_FUNC(DNDDragMotionCB), GTK_WIDGET(GLOBALS->wavearea));
16281674 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->wavearea), "drag_begin", GTK_SIGNAL_FUNC(DNDBeginCB), GTK_WIDGET(GLOBALS->wavearea));
16291675 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->wavearea), "drag_end", GTK_SIGNAL_FUNC(DNDEndCB), GTK_WIDGET(GLOBALS->wavearea));
1676 #ifdef WAVE_USE_GTK2
1677 gtkwave_signal_connect(GTK_OBJECT(GLOBALS->wavearea), "drag_failed", GTK_SIGNAL_FUNC(DNDFailedCB), GTK_WIDGET(GLOBALS->wavearea));
1678 #endif
16301679
16311680 gtk_drag_source_set(GTK_WIDGET(GLOBALS->signalarea),
16321681 GDK_BUTTON1_MASK | GDK_BUTTON2_MASK,
18131813 }
18141814
18151815 /*
1816 * DND "drag_failed" handler, this is called when a drag and drop has
1817 * failed (e.g., by pressing ESC).
1818 */
1819 static gboolean DNDFailedCB(
1820 GtkWidget *widget, GdkDragContext *context, GtkDragResult result)
1821 {
1822 (void)widget;
1823 (void)context;
1824 (void)result;
1825
1826 GLOBALS->dnd_state = 0;
1827 GLOBALS->tree_dnd_begin = VIEW_DRAG_INACTIVE;
1828 GLOBALS->tree_dnd_requested = 0;
1829
1830 MaxSignalLength();
1831 signalarea_configure_event(GLOBALS->signalarea, NULL);
1832 wavearea_configure_event(GLOBALS->wavearea, NULL);
1833
1834 return(FALSE);
1835 }
1836
1837
1838 /*
18161839 * DND "drag_end" handler, this is called when a drag and drop has
18171840 * completed. So this function is the last one to be called in
18181841 * any given DND operation.
23152338 gtkwave_signal_connect(GTK_OBJECT(src), "drag_end", GTK_SIGNAL_FUNC(DNDEndCB), win);
23162339 gtkwave_signal_connect(GTK_OBJECT(src), "drag_data_get", GTK_SIGNAL_FUNC(DNDDataRequestCB), win);
23172340 gtkwave_signal_connect(GTK_OBJECT(src), "drag_data_delete", GTK_SIGNAL_FUNC(DNDDataDeleteCB), win);
2341 gtkwave_signal_connect(GTK_OBJECT(src), "drag_failed", GTK_SIGNAL_FUNC(DNDFailedCB), win);
23182342 }
23192343
23202344 if(enable_receive) gtkwave_signal_connect(GTK_OBJECT(w), "drag_data_received", GTK_SIGNAL_FUNC(DNDDataReceivedCB), win);
2727 * use gperf for port vartypes 19feb07ajb
2828 * MTI SV implicit-var fix 05apr07ajb
2929 * MTI SV len=0 is real var 05apr07ajb
30 * Backtracking fix 16oct18ajb
3031 */
3132
3233 /* AIX may need this for alloca to work */
17461747 {
17471748 GLOBALS->start_time_vcd_c_1=tim;
17481749 }
1750 /* backtracking fix */
17491751 else
17501752 {
17511753 if(tim < GLOBALS->current_time_vcd_c_1) /* avoid backtracking time counts which can happen on malformed files */
17521754 {
1755 if(!GLOBALS->vcd_already_backtracked)
1756 {
1757 GLOBALS->vcd_already_backtracked = 1;
1758 fprintf(stderr, "VCDLOAD | Time backtracking detected in VCD file!\n");
1759 }
1760 #if 0
17531761 tim = GLOBALS->current_time_vcd_c_1;
1762 #endif
17541763 }
17551764 }
17561765
18501859
18511860 if((n->curr->v.h_val!=heval)||(tim==GLOBALS->start_time_vcd_c_1)||(n->vartype==ND_VCD_EVENT)||(GLOBALS->vcd_preserve_glitches)) /* same region == go skip */
18521861 {
1853 if(n->curr->time==tim)
1862 if(n->curr->time>=tim) /* backtracking fix */
18541863 {
18551864 DEBUG(printf("Warning: Glitch at time ["TTFormat"] Signal [%p], Value [%c->%c].\n",
18561865 tim, n, AN_STR[n->curr->v.h_val], ch));
18981907 {
18991908 if(regadd) { tim*=(GLOBALS->time_scale); }
19001909
1901 if(n->curr->time==tim)
1910 if(n->curr->time>=tim) /* backtracking fix */
19021911 {
19031912 DEBUG(printf("Warning: String Glitch at time ["TTFormat"] Signal [%p].\n",
19041913 tim, n));
19611970 ||(GLOBALS->vcd_preserve_glitches)||(GLOBALS->vcd_preserve_glitches_real)
19621971 ) /* same region == go skip */
19631972 {
1964 if(n->curr->time==tim)
1973 if(n->curr->time>=tim) /* backtracking fix */
19651974 {
19661975 DEBUG(printf("Warning: Real number Glitch at time ["TTFormat"] Signal [%p].\n",
19671976 tim, n));
20292038 ||(GLOBALS->vcd_preserve_glitches)
20302039 ) /* same region == go skip */
20312040 {
2032 if(n->curr->time==tim)
2041 if(n->curr->time>=tim) /* backtracking fix */
20332042 {
20342043 DEBUG(printf("Warning: Glitch at time ["TTFormat"] Signal [%p], Value [%c->%c].\n",
20352044 tim, n, AN_STR[n->curr->v.h_val], ch));
3030 * MTI SV implicit-var fix 05apr07ajb
3131 * MTI SV len=0 is real var 05apr07ajb
3232 * VCD fastloading 05mar09ajb
33 * Backtracking fix 16oct18ajb
3334 */
3435 #include <config.h>
3536 #include "globals.h"
20462047 }
20472048 else
20482049 {
2050 /* backtracking fix */
2051 if(tim < GLOBALS->current_time_vcd_recoder_c_3)
2052 {
2053 if(!GLOBALS->vcd_already_backtracked)
2054 {
2055 GLOBALS->vcd_already_backtracked = 1;
2056 fprintf(stderr, "VCDLOAD | Time backtracking detected in VCD file!\n");
2057 }
2058 }
2059 #if 0
20492060 if(tim < GLOBALS->current_time_vcd_recoder_c_3) /* avoid backtracking time counts which can happen on malformed files */
20502061 {
20512062 tim = GLOBALS->current_time_vcd_recoder_c_3;
20522063 }
2064 #endif
20532065
20542066 if(GLOBALS->time_vlist_vcd_recoder_write)
20552067 {
37123712 */
37133713
37143714 /* draw trans */
3715 type = (!(h->flags&(HIST_REAL|HIST_STRING))) ? vtype(t,h->v.h_vector) : AN_0;
3715 type = (!(h->flags&(HIST_REAL|HIST_STRING))) ? vtype(t,h->v.h_vector) : AN_COUNT;
37163716 tv = tv2 = mynan;
37173717
37183718 if(h->flags&HIST_REAL)
37963796 skipcnt = 0;
37973797 }
37983798
3799 if(type == AN_0)
3799 if(type != AN_X)
38003800 {
38013801 c = GLOBALS->gc.gc_vbox_wavewindow_c_1;
38023802 }
40904090 else
40914091 {
40924092 /* s\000 ID is special "z" case */
4093 type = AN_0;
4093 type = AN_COUNT;
40944094
40954095 if(h->flags&HIST_STRING)
40964096 {
41144114 }
41154115 }
41164116 }
4117 /* type = (!(h->flags&(HIST_REAL|HIST_STRING))) ? vtype(t,h->v.h_vector) : AN_0; */
4117 /* type = (!(h->flags&(HIST_REAL|HIST_STRING))) ? vtype(t,h->v.h_vector) : AN_COUNT; */
41184118 if(_x0>-1) {
41194119 GdkGC *gltype, *gtype;
41204120
41374137 if (type == AN_Z) {
41384138 if (lasttype != -1) {
41394139 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0-1, _y0,_x0, yu);
4140 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
4140 if(lasttype != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
41414141 }
41424142 } else
41434143 if (lasttype==AN_Z) {
41444144 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0+1, _y0,_x0, yu);
4145 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
4145 if( type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
41464146 } else {
41474147 if (lasttype != type) {
41484148 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0-1, _y0,_x0, yu);
4149 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
4149 if(lasttype != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
41504150 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0+1, _y0,_x0, yu);
4151 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
4151 if( type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
41524152 } else {
41534153 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0-2, _y0,_x0+2, _y1);
41544154 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0+2, _y0,_x0-2, _y1);
41764176 }
41774177 else
41784178 {
4179 if(type == AN_0)
4179 if(type != AN_X)
41804180 {
41814181 c = GLOBALS->gc.gc_vbox_wavewindow_c_1;
41824182 }
41884188 if(GLOBALS->use_roundcaps)
41894189 {
41904190 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y0,_x1-2, _y0);
4191 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y1,_x1-2, _y1);
4191 if(type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y1,_x1-2, _y1);
4192 if(type == AN_1) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y1+1,_x1-2, _y1+1);
41924193 }
41934194 else
41944195 {
41954196 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y0,_x1, _y0);
4196 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y1,_x1, _y1);
4197 if(type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y1,_x1, _y1);
4198 if(type == AN_1) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y1+1,_x1, _y1+1);
41974199 }
41984200
41994201 if(_x0<0) _x0=0; /* fixup left margin */
46124614 skipcnt = 0;
46134615 }
46144616
4615 if(type == AN_0)
4617 if(type != AN_X)
46164618 {
46174619 c = GLOBALS->gc.gc_vbox_wavewindow_c_1;
46184620 }
49414943 if (lasttype != -1)
49424944 {
49434945 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0-1, _y0,_x0, yu);
4944 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
4946 if(lasttype != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
49454947 }
49464948 }
49474949 else
49484950 if (lasttype==AN_Z)
49494951 {
49504952 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0+1, _y0,_x0, yu);
4951 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
4953 if( type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
49524954 }
49534955 else
49544956 {
49554957 if (lasttype != type)
49564958 {
49574959 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0-1, _y0,_x0, yu);
4958 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
4960 if(lasttype != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gltype,_x0, yu,_x0-1, _y1);
49594961 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0+1, _y0,_x0, yu);
4960 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
4962 if( type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, gtype,_x0, yu,_x0+1, _y1);
49614963 }
49624964 else
49634965 {
49874989 }
49884990 else
49894991 {
4990 if(type == AN_0)
4992 if(type != AN_X)
49914993 {
49924994 c = GLOBALS->gc.gc_vbox_wavewindow_c_1;
49934995 }
49995001 if(GLOBALS->use_roundcaps)
50005002 {
50015003 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y0,_x1-2, _y0);
5002 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y1,_x1-2, _y1);
5004 if(type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y1,_x1-2, _y1);
5005 if(type == AN_1) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0+2, _y1+1,_x1-2, _y1+1);
50035006 }
50045007 else
50055008 {
50065009 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y0,_x1, _y0);
5007 wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y1,_x1, _y1);
5010 if(type != AN_0) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y1,_x1, _y1);
5011 if(type == AN_1) wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, c,_x0, _y1+1,_x1, _y1+1);
50085012 }
50095013
50105014