Rebecca N. Palmer
79f1da6bef
Nasal: use SG_LOG for security error messages to avoid truncation
...
These are often too long for naRuntimeError's 128-char limit:
http://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/55B55856.2030709%40worldwideweb2.nl/#msg34319969
2015-08-14 21:37:28 +01:00
Rebecca N. Palmer
e296ea5fe0
Nasal security: document that symlinks are no longer followed
2015-07-25 10:15:31 +01:00
Rebecca N. Palmer
a4aff2cb82
remove checkIORules(), replaced by check in fgInitAllowedPaths()
2015-03-13 18:10:31 +00:00
Rebecca N. Palmer
9002696195
Make fgValidatePath always return std::string, not char *
2015-03-13 18:07:24 +00:00
Rebecca N. Palmer
d718d5f3cb
Move Nasal io.open to flightgear, and make it use fgValidatePath
2015-03-13 18:02:46 +00:00
Rebecca N. Palmer
6a30e7086e
Stop using property listener for fgValidatePath
...
This was insecure: while removelistener() won't remove it, there are
other ways to remove a listener from Nasal
2015-03-13 17:54:44 +00:00
Rebecca N. Palmer
193f2a3fbc
Fix hang in Nasal->C++->Nasal calls
...
https://bugs.debian.org/750939
http://sourceforge.net/p/flightgear/mailman/message/32969200/
2015-01-18 22:23:21 +00:00
bcoconni
2122e9eee3
Save a memory allocation each time a property node is wrapped in Nasal. Instead use a direct access to the reference counter and explicitely delete the node if the ref counter is decremented to zero during the ghost destruction.
2014-11-23 14:53:54 +01:00
Thomas Geymayer
0b9e72eb87
Nasal: move IOrules check to better place and exit on failure.
2014-09-19 18:22:47 +02:00
Thomas Geymayer
6713830254
Nasal Timer: prevent warning on restarting oneshot timer in callback.
2014-08-11 00:31:18 +02:00
Thomas Geymayer
a673f4a5f9
Nasal: update for simgear changes.
2014-07-21 00:26:54 +02:00
Thomas Geymayer
f4b7ae5da3
Nasal: md5 is now in simgear.
2014-06-18 15:59:41 +02:00
Thomas Geymayer
cfbf9e7e4e
Nasal: expose md5 function.
2014-06-17 22:33:53 +02:00
Thomas Geymayer
26a4948642
NasalSys: process nasal::Ghost deletion queue.
2014-06-15 16:36:35 +02:00
Thomas Geymayer
4409c8cca6
Expose parse_markdown to Nasal.
2014-06-13 19:16:26 +02:00
Thomas Geymayer
3c0b7f88b8
Updates for simgear nasal::Ghost changes.
2014-06-03 19:00:25 +02:00
Thomas Geymayer
0fc2d57211
Scripting: expose flight history as aircraft.history()
...
var hist = aircraft.history();
debug.dump(hist.pathForHistory(50));
2014-05-10 10:56:09 +02:00
James Turner
b3c7cb7c15
Fix crash with Nasal bindings.
...
naBindFunction doesn't save the function code to the global
hash, so pass an explicit context to various 'call' overloads so
the function can't be GC-ed in between parsing and calling.
(Patch by Nicholas Scheel)
https://code.google.com/p/flightgear-bugs/issues/detail?id=1397
2014-04-15 14:13:46 +01:00
James Turner
070dba29f9
Close dialogs on GUI shutdown
...
- avoids orphaned dialogs on reset
- requires some guards in NasalSys since Nasal is shutdown first, but
dialogs can have Nasal modules.
2014-03-16 22:52:55 +00:00
Torsten Dreyer
aaa7fca621
NasalSys: arg is never null
2014-03-12 22:42:51 +01:00
Thomas Geymayer
88b7d4f530
Update for SGPropertyNode changes.
2014-03-06 00:41:41 +01:00
James Turner
34ed79e5f8
getprop/setprop allows integer indices.
...
As suggested by a long-standing enhancement idea,
extend getprop/setprop to accept multiple args,
including integer arguments. This removes the need
for string concatenation (and hence, allocation)
on the Nasal side.
Patch by Nicholas 'Philosopher' Scheel
2014-02-18 20:07:29 -08:00
Thomas Geymayer
67be73fdde
Expose SGPath to Nasal
2013-12-18 10:30:19 +01:00
James Turner
9c11dfd545
Reset: free nasal-module-listeners on shutdown.
2013-12-03 21:38:45 +00:00
James Turner
d99109c9e4
Reset: do re-init Ghost bindings.
2013-11-24 15:10:00 +00:00
James Turner
0fbc448af0
Nasal changes for reset
...
- reduce use of global context (will die soon)
- replace static wrappedNode ref which breaks reset
2013-11-22 22:52:33 +00:00
bcoconni
139af0026f
Synchronized FG with the removal of 'using std::*' in simgear's easyxml
2013-11-14 22:07:50 +00:00
James Turner
881df711ba
Reset: Nasal can be shutdown.
...
Also guard against duplicate init of cppbind wrapped classes.
2013-11-12 22:47:41 +00:00
James Turner
af6131b556
Bug 1246, Nasal repeating timers fire immediately.
...
Initial delay is passed separately to interval in the
API, oops.
2013-11-09 08:01:57 -08:00
Thomas Geymayer
cf270bde22
Expose HTTP module to Nasal.
2013-10-27 19:39:22 +01:00
Thomas Geymayer
5c38395395
NasalSys: do not print invalid elements for error backtraces.
2013-10-16 23:41:38 +02:00
Thomas Geymayer
26a3573aea
Update/simplify for SimGear changes.
2013-10-15 17:48:13 +02:00
Thomas Geymayer
5c42071fbb
Scripting: get rid of gcHash and use new SimGear/Nasal functions.
2013-10-15 00:58:21 +02:00
James Turner
52e5a9abe8
Reduce amount of log output at level=debug.
2013-09-28 14:47:20 +01:00
James Turner
33425c671d
Support for multiple data dirs.
2013-09-17 07:47:58 +01:00
Tom Paoletti
b27eb2571c
Performance optimization: empty() instead of size()>0
...
empty() is guaranteed to be constant complexity for both vectors and lists, while size() has linear complexity for lists.
2013-08-19 09:02:15 +01:00
Thomas Geymayer
913727239d
Expose pose of scenery models to Nasal load/unload scripts.
...
This allows Nasal code attached to scenery models access their
world position and orientation by calling _model.getPose().
Also ensure models are attached to the scenegraph before Nasal
load scripts are called. This ensures that the world position
and orientation are available upon executing the load script.
2013-03-23 12:54:45 +01:00
Thomas Geymayer
eba03b5e46
Allow placing canvas on scenery objects.
2013-03-21 01:16:47 +01:00
James Turner
6f80df0b8d
NasalTimerObject tweaks.
2013-03-20 18:10:27 +00:00
Thomas Geymayer
1e4ba18284
Update/simplify property interpolation to latest SimGear changes
2013-03-17 23:49:15 +01:00
Thomas Geymayer
4b21dc51ee
Replace SGInterpolator with new advanced interpolation system.
...
Allow for advanced animations using easing functions and adapters
for interpolating specific property types (eg. CSS colors).
Old behavior should not have changed.
2013-03-16 16:45:03 +01:00
James Turner
ab939ff772
A real Timer object in Nasal.
...
A persistent timer object which can be stopped, started and restarted. Gosh. Has both singleShot and repeating modes.
2013-03-16 12:44:27 +00:00
James Turner
f2c267f5d7
MouseInput changes to support hover.
...
This adds the framework for platform cursor implementations; Windows and X11 to be done.
It also extend the mouse-input code to generate hover events suitable for driving tooltips.
Note there should be no visible functionality change from this commit, since everything
is inactive until fgdata changes are made.
2013-03-04 23:35:30 +00:00
Thomas Geymayer
4b573ebd13
Start porting NasalPositioned to cppbind.
...
For now it is available in the positioned Nasal
module. FGAirport is fully ported, but especially
procedures/navaids and free functions are still
missing.
2013-03-04 19:24:47 +01:00
James Turner
7b663cd7f7
Split huge NasalSys header apart.
2013-02-09 15:33:05 +00:00
James Turner
ce9afecdbd
Support a log-list widget in PUI.
...
Add a puaListBox which can show the contents of a log-buffer. Currently only two buffer sources are supported more to follow (and the dialog XML updates).
2013-02-08 19:39:41 +00:00
Frederic Bouvier
7cc3ffb30f
Fix build for windows after logstream changes
2013-02-08 08:46:34 +01:00
James Turner
b52a61c2cb
Support logging from Nasal at custom levels.
...
For now, print() still logs at SG_ALERT level.
2013-02-07 16:44:24 +00:00
Thomas Geymayer
5b38e00ade
Expose some methods on strings to Nasal
2013-01-31 19:14:23 +01:00
James Turner
2e1fb7972e
Initial work on native file dialog support.
...
Add an abstract interface, version that forwards to the existing PUI dialog, and a Cocoa-native version.
2013-01-19 14:41:45 +00:00