Commit Graph

100 Commits

Author SHA1 Message Date
Cas Cremers
c9b1d08f4f Hack for Windows users to compensate for Graphviz "feature".
Recent versions of Graphviz no longer set the PATH variable on Windows.
Hence Scyther can fail to find dot.exe even though Graphviz was appropriately
installed.

This patch is a hack to try and locate dot.exe in the more common locations.
We currently have a hardcoded search through:

  C:\Program Files\Graphviz*
  C:\Program Files (x86)\Graphviz*

This is clearly fragile. Obviously, nobody should be solving Graphviz' problem
in such an ugly way. Change drives or languages and it stops working.

Until Graphviz provides at least an alternative environment variable (GVPATH?)
this hack will help the bulk of our users to get things up and running smoothly.
2013-12-09 14:24:57 +00:00
Cas Cremers
d06247fcfe Updating time stamps for next release. 2013-10-05 23:56:12 +01:00
Cas Cremers
fe364fbe9d GUI: Canceling verification now also kills back-end thread.
Previously, pressing 'cancel' in the verification window would leave a dangling scyther backend process.
Now the process gets correctly killed.

The following changes enable this:
- External processes are no longer invoked through the shell (otherwise they are subprocesses of the shell and cannot be reliably killed cross-platform).
- The 'safeCommand' procedure now has a hook for passing opened Popen objects.
- The GUI stores and kills the Popen objects on cancel or window close.

To do: an alternative interface for this in 'safeCommand' could expose a 'killMe' method through a callback; this might be cleaner in the long term.
2013-06-30 23:14:28 +02:00
Cas Cremers
9e13d07b6e BUGFIX: Invoking Scyther scripts from non-standard directories or using symlinks should work consistently now.
Before, we were using both __file__ as well as sys.argv[0] to determine the base directory
for Scyther, and we were not taking symlinks into account.

By using the inspect module, we can consistently pick the current frame and derive
the file from that, then use realpath to strip symlinks.
2013-05-01 14:16:12 +02:00
Cas Cremers
10c62a6863 BUGFIX: Opening files was not always performing as expected. Fixed now. 2012-10-02 13:42:48 +02:00
Cas Cremers
9b0915441f Synchronising MPA branch with compromise branch where possible. 2012-04-25 17:03:51 +02:00
Cas Cremers
1cbe9826ac Updated dates. 2012-04-24 13:56:51 +02:00
Cas Cremers
30006b732a Fix Python 3 deprecated issues that cannot be resolved by 2to3. 2012-04-23 15:02:06 +02:00
Cas Cremers
b6ab044cd6 BUGFIX: 'Default' color not known to newer wxPython versions.
The statement was redundant anyway.
2012-04-09 21:14:41 +02:00
Cas Cremers
d1b334765b Updated image construction code to also use subprocess.Popen. 2010-05-16 00:13:33 +02:00
Cas Cremers
2a2a087cf6 GUI BUGFIX: On some file systems, problems with case-insensitivity and name clash between sys module and local. 2009-04-30 15:06:28 +02:00
Cas Cremers
e3268bb8e5 GUI: Added a large set of possible output formats to the right-click menu.
To do: We still need better error handling.
- File exists: overwrite?
- Write failed popup.
- Check for empty file at the end (what if dot does not support this particular
  output format?)
2008-08-29 12:05:06 +02:00
Cas Cremers
63471c5053 Code cleanup for GUI code. 2008-08-29 12:05:06 +02:00
Cas Cremers
8471f13da3 Added 'prune' switch support in GUI.
Allows to use the 'stop at first attack' feature of the backend.
2008-08-29 12:05:00 +02:00
Cas Cremers
b352044f92 BUGFIX: PIL is tested at the start of the program.
Previously, one would get one void verification result before Scyther detected
PIL was not working. Now nothing is wasted.
2008-08-26 21:52:00 +02:00
Cas Cremers
a020cffec7 GUI: Added popup menu to save graphviz (.dot) data.
A long requested feature was the option to print graphs more nicely.
This is a solution for knowledgeable users: the dot data is more basic
and can be converted in various ways.

TODO: Simple image export.
2008-08-26 17:35:38 +02:00
Cas Cremers
76bf6328b6 Nicer crash handling for PIL problem with a warning etc. 2008-08-21 21:57:22 +02:00
Cas Cremers
feb3827ba1 BUGFIX: Fixed crash on some include file cases.
Reported by ETH students last year: if you include a file, where the file has an
error in a line with a number higher than the original, the Python code crashes.

This is a *patch* only because the real underlying problem is that error reporting
does not take include commands into account, and does not propagate any
file names.
2008-07-31 17:37:20 +02:00
Cas Cremers
9605d5e772 Introduced "all attacks" switch in GUI, and a bugfix.
Passing the '--all-attacks' switch to the backend was not working. The reason
was the hack to get Vista working hardcoded cutting to the last attack found.

In the long term, this needs to be cleaned up, and cutting should be moved back
nicely to the Scyther C code where it used to work. Once done, switches.useAttackBuffer
can be set back to true.

BUGFIX: When cutting attacks/patterns, counts are no longer exact.
2008-07-30 00:14:10 +02:00
Cas Cremers
870d1c2f41 BUGFIX: PIL no longer works on my Feisty machines: PIL disabled.
Currently, both my Feisty Ubuntu's have stopped working with the GUI of
Scyther. So to be on the safe side, PIL is disabled for now, until I've
resolved the problem.

The error is the following:

---------------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/cas/src/scyther-dev/gui/Gui/Scytherthread.py", line 351, in onViewButton
    w = Attackwindow.AttackWindow(btn.claim)
  File "/home/cas/src/scyther-dev/gui/Gui/Attackwindow.py", line 176, in __init__
    self.CreateInteriorWindowComponents()
  File "/home/cas/src/scyther-dev/gui/Gui/Attackwindow.py", line 209, in CreateInteriorWindowComponents
    dp = AttackDisplay(self, self, attacks[0])
  File "/home/cas/src/scyther-dev/gui/Gui/Attackwindow.py", line 73, in __init__
    self.original = Image.open(filename)
  File "/usr/lib/python2.5/site-packages/PIL/Image.py", line 1912, in open
    return factory(fp, filename)
  File "/usr/lib/python2.5/site-packages/PIL/ImageFile.py", line 82, in __init__
    self._open()
  File "/usr/lib/python2.5/site-packages/PIL/EpsImagePlugin.py", line 277, in _open
    raise IOError, "cannot determine EPS bounding box"
IOError: cannot determine EPS bounding box
---------------------------------------------------------------------------

Great. Bounding boxes in eps again.
2007-11-13 20:51:20 +01:00
Cas Cremers
44f89d8e78 Added GPL 2 notice in the 'about' box. 2007-06-11 14:20:53 +02:00
Cas Cremers
f901951e4b Added GPL 2 to the Python scripts. 2007-06-11 14:12:33 +02:00
Cas Cremers
d5ba325233 Workaround for strange wxPython display error.
Since a while, wxPython has been refusing to correctly display strings with a dash in them in the staticText object. Given a string "xx-yy", only "xx" is displayed. This caused some problems for protocols with dashes in their protocol names. I've worked around it by replacing all occurrences of "-" by "_".
2007-05-29 16:39:25 +02:00
Cas Cremers
b80de55289 Merge branch 'testing' of cas@roivas.shape9.nl:/export/git/scyther into reverting-b7 2007-05-21 13:48:56 +02:00
Cas Cremers
38a5d04c8c - Fix to the reverter. 2007-05-21 13:32:57 +02:00
Cas Cremers
38f1bffcef - Reverted version of beta7 for testing. 2007-05-21 13:29:33 +02:00
Cas Cremers
db78f91af1 Fixed version information updates of both the compiled code as well as the Gui. 2007-05-20 16:14:40 +02:00
Cas Cremers
173b1e8d41 Merge branch 'stable' of ssh://cas@roivas.shape9.nl/export/git/scyther-develop/
Conflicts:

	gui/Gui/Scytherthread.py
2007-05-19 23:38:10 +02:00
Cas Cremers
3dfb8d6173 - Fixed font settings for Unix. 2007-05-19 15:43:57 +02:00
Cas Cremers
f47c1e7e5e - Factored out the safe external command process. It turns out that the shell should not be used under windows Popen, but on the other hand is must be used under Linux. 2007-05-19 15:32:58 +02:00
Cas Cremers
23931281d0 - Font problems seem to be partially fixed on windows. Note that the font is not found, so rendering is ugly, but at least the text does not flow over the boxes anymore. 2007-05-19 15:19:02 +02:00
Cas Cremers
688416a351 - Rewrite subprocess access to the newer subprocess.Popen module. This seems to work just fine for Windows XP, at least. 2007-05-19 14:29:32 +02:00
Cas Cremers
ee5d0cbfe8 - Reverted a patch for the fonts. 2007-05-18 14:17:24 +02:00
Cas Cremers
ef2af6b097 - Removed font print debugging information. 2007-05-18 14:12:32 +02:00
Cas Cremers
1542d65def - Big catchup commit to make sure we are up to beta7.
This includes a number of single patches, ranging from the vista fix with the buffers, to the start of many new minor features.
2007-05-18 14:06:29 +02:00
Cas Cremers
7c8ca527b2 - Updates (fast forwarding to latest Scyther from svn) 2007-05-18 13:55:11 +02:00
ccremers
6e82d585be - Errors now get a nice colour 2007-01-31 15:45:05 +00:00
ccremers
c63b87c750 - Oops. 2007-01-31 12:20:44 +00:00
ccremers
6f59ed3ab3 - Got rid of ctrl-W mapping to be nice to silly Emacs users. 2007-01-30 19:58:12 +00:00
ccremers
17d1898b29 - Factored out editor component. 2007-01-30 11:01:17 +00:00
ccremers
33df1ccb5b - Enabled Scintilla editor 2007-01-29 16:32:35 +00:00
ccremers
df62d65d5c - Fixes to error output 2007-01-29 15:17:11 +00:00
ccremers
5d0b15e292 - Reinstated the graphical about screen. 2007-01-27 22:52:22 +00:00
ccremers
70a718807e - Improved error handling: any Scyther errors now raise an exception.
This can be dealt with accordingly. If no error occurs, we can just
  nicely assume the output is a claim list or something similar.
2007-01-27 21:42:16 +00:00
ccremers
fa42e15d3d - More version updates. 2007-01-11 11:22:57 +00:00
ccremers
1ecc43e9d6 - Fixes to font things. 2007-01-10 14:30:52 +00:00
ccremers
807232a51e - Sanitized the settings window a bit. 2006-12-15 13:45:09 +00:00
ccremers
38dd697f41 - Bug seems to be resolved! 2006-12-14 20:32:24 +00:00
ccremers
7eb354d22c - Correction to previous commit: added required files. 2006-12-14 14:08:08 +00:00
ccremers
4e2b7c405b - Improved error handling. 2006-12-14 14:06:50 +00:00