fixing up some prefs stuff, add run.options, don't launch prefs txt file

from inside p5, fixing up runner, adding more info to the faq
This commit is contained in:
benfry
2005-04-18 18:54:26 +00:00
parent d5c79848bf
commit 84242ce7bc
9 changed files with 346 additions and 278 deletions
+2 -2
View File
@@ -50,8 +50,8 @@ import processing.core.*;
* files and images, etc) that comes from that.
*/
public class Base {
static final int VERSION = 83;
static final String VERSION_NAME = "0083 Alpha";
static final int VERSION = 84;
static final String VERSION_NAME = "0084 Alpha";
/**
* Path of filename opened on the command line,
+22 -7
View File
@@ -169,10 +169,10 @@ public class Preferences extends JComponent {
} catch (Exception ex) {
Base.showError("Error reading preferences",
"Error reading the preferences file. " +
"Please delete (or move)\n" +
preferencesFile.getAbsolutePath() +
" and restart Processing.", ex);
"Error reading the preferences file. " +
"Please delete (or move)\n" +
preferencesFile.getAbsolutePath() +
" and restart Processing.", ex);
}
}
}
@@ -343,17 +343,32 @@ public class Preferences extends JComponent {
top += d.height; // + GUI_SMALL;
label = new JLabel(preferencesFile.getAbsolutePath());
/*
label.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
// close the frame and ignore any changes.
// otherwise, any changes made to preferences.txt
// will be lost when the prefs window is closed,
// since things will be re-applied.
disposeFrame();
// now safe to open the text file
Base.openURL(preferencesFile.getAbsolutePath());
}
});
label.setForeground(new Color(51, 25, 153));
*/
//label.setForeground(new Color(51, 25, 153));
pain.add(label);
d = label.getPreferredSize();
label.setBounds(left, top, d.width, d.height);
//textarea.setBounds(left, top, d.width, d.height);
//top += d.height; // + GUI_BETWEEN;
label = new JLabel("(edit only when Processing is not running)");
pain.add(label);
d = label.getPreferredSize();
label.setForeground(Color.gray);
label.setBounds(left, top, d.width, d.height);
top += d.height; // + GUI_SMALL;
// [ OK ] [ Cancel ] maybe these should be next to the message?
+82 -39
View File
@@ -29,6 +29,7 @@ import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.lang.reflect.*;
import java.util.*;
import com.oroinc.text.regex.*;
@@ -94,24 +95,44 @@ public class Runner implements MessageConsumer {
public void startPresenting() throws Exception {
String command[] = new String[] {
"java",
"-Djava.library.path=" +
sketch.libraryPath +
File.pathSeparator + System.getProperty("java.library.path"),
"-cp",
sketch.classPath + Sketchbook.librariesClassPath,
"processing.core.PApplet",
PApplet.ARGS_EXTERNAL,
PApplet.ARGS_PRESENT,
PApplet.ARGS_PRESENT_BGCOLOR + "=" +
Preferences.get("run.present.bgcolor"),
PApplet.ARGS_DISPLAY + "=" +
Preferences.get("run.display"),
PApplet.ARGS_SKETCH_FOLDER + "=" +
sketch.folder.getAbsolutePath(),
sketch.mainClassName
};
Vector params = new Vector();
params.add("java");
String options = Preferences.get("run.options");
if (options.length() > 0) {
String pieces[] = PApplet.split(options, ' ');
for (int i = 0; i < pieces.length; i++) {
String p = pieces[i].trim();
if (p.length() > 0) {
params.add(p);
}
}
}
params.add("-Djava.library.path=" +
sketch.libraryPath +
File.pathSeparator +
System.getProperty("java.library.path"));
params.add("-cp");
params.add(sketch.classPath + Sketchbook.librariesClassPath);
params.add("processing.core.PApplet");
params.add(PApplet.ARGS_EXTERNAL);
params.add(PApplet.ARGS_PRESENT);
params.add(PApplet.ARGS_PRESENT_BGCOLOR + "=" +
Preferences.get("run.present.bgcolor"));
params.add(PApplet.ARGS_DISPLAY + "=" +
Preferences.get("run.display"));
params.add(PApplet.ARGS_SKETCH_FOLDER + "=" +
sketch.folder.getAbsolutePath());
params.add(sketch.mainClassName);
String command[] = new String[params.size()];
params.copyInto(command);
//PApplet.println(command);
process = Runtime.getRuntime().exec(command);
processInput = new SystemOutSiphon(process.getInputStream());
@@ -134,27 +155,49 @@ public class Runner implements MessageConsumer {
(PApplet.ARGS_EDITOR_LOCATION + "=" +
editorLocation.x + "," + editorLocation.y);
//System.out.println("library path is " + sketch.libraryPath);
String command[] = new String[] {
// this made the code folder bug go away, but killed stdio
//"cmd", "/c", "start",
"java",
"-Djava.library.path=" +
// sketch.libraryPath might be ""
// librariesClassPath will always have sep char prepended
sketch.libraryPath +
File.pathSeparator + System.getProperty("java.library.path"),
"-cp",
sketch.classPath + Sketchbook.librariesClassPath,
"processing.core.PApplet",
location,
PApplet.ARGS_EXTERNAL,
PApplet.ARGS_DISPLAY + "=" + Preferences.get("run.display"),
PApplet.ARGS_SKETCH_FOLDER + "=" + sketch.folder.getAbsolutePath(),
sketch.mainClassName
};
//PApplet.printarr(command);
//PApplet.println(PApplet.join(command, " "));
// this as prefix made the code folder bug go away, but killed stdio
//"cmd", "/c", "start",
// all params have to be stored as separate items,
// so a growable array needs to be used. i.e. -Xms128m -Xmx1024m
// will throw an error if it's shoved into a single array element
Vector params = new Vector();
params.add("java");
String options = Preferences.get("run.options");
if (options.length() > 0) {
String pieces[] = PApplet.split(options, ' ');
for (int i = 0; i < pieces.length; i++) {
String p = pieces[i].trim();
if (p.length() > 0) {
params.add(p);
}
}
}
// sketch.libraryPath might be ""
// librariesClassPath will always have sep char prepended
params.add("-Djava.library.path=" +
sketch.libraryPath +
File.pathSeparator +
System.getProperty("java.library.path"));
params.add("-cp");
params.add(sketch.classPath + Sketchbook.librariesClassPath);
params.add("processing.core.PApplet");
params.add(location);
params.add(PApplet.ARGS_EXTERNAL);
params.add(PApplet.ARGS_DISPLAY + "=" +
Preferences.get("run.display"));
params.add(PApplet.ARGS_SKETCH_FOLDER + "=" +
sketch.folder.getAbsolutePath());
params.add(sketch.mainClassName);
String command[] = new String[params.size()];
params.copyInto(command);
//PApplet.println(command);
process = Runtime.getRuntime().exec(command);
processInput = new SystemOutSiphon(process.getInputStream());
+10 -9
View File
@@ -173,21 +173,25 @@ editor.divider.size = 0
# but keeps it from being annoyingly obtrusive
editor.divider.size.windows = 2
# how many lines to scroll for each tick on the wheel mouse
editor.wheelmouse.multiplier = 3
# background color for full-screen presentation mode
run.present.bgcolor = #666666
# any additional java options when running externally
# (for applets that are run external to the environment...
# those with a code folder, or using any libraries)
# if you hose this and can't run things, it's your own durn fault
run.options =
# example of increasing the memory size for applets run externally
#run.options = -Xms128m -Xmx1024m
# color of the stop button when running in present mode
run.present.stop.color = #cccccc
# index of the default display to use for present mode
# (this setting not yet completely implemented)
run.display = 1
# set true to just always run externally (no longer exists)
#run.external = false
# set internally
#run.window.bgcolor=
@@ -196,9 +200,6 @@ run.display = 1
run.window.width.minimum = 120
run.window.height.minimum = 120
# set this to opengl to make it the default renderer
renderer = core
# prompt for sketch location when 'new' is hit
sketchbook.prompt = false
+4 -3
View File
@@ -6351,9 +6351,10 @@ v PApplet.this.stop();
public void spotLight(float red, float green, float blue,
float x, float y, float z,
float nx, float ny, float nz, float angle) {
if (recorder != null) recorder.spotLight(red, green, blue, x, y, z, nx, ny, nz, angle);
g.spotLight(red, green, blue, x, y, z, nx, ny, nz, angle);
float nx, float ny, float nz,
float angle, float concentration) {
if (recorder != null) recorder.spotLight(red, green, blue, x, y, z, nx, ny, nz, angle, concentration);
g.spotLight(red, green, blue, x, y, z, nx, ny, nz, angle, concentration);
}
+143
View File
@@ -1,3 +1,146 @@
0083 core
X fix double key events
X fix mrj.version security error on the pc
X set() fixes for PGraphics2 and setImpl inside PGraphics
X remove angleMode (also from PMatrix classes)
X remove/rename postSetup() stuff from PGraphics/PApplet
X camera(), perspective(), ortho()
X matrix set by the camera on each beginFrame
X push/pop are now pushMatrix/popMatrix
o get PGraphics.java engine working again
lighting stuff
X make fill() cover ambient and diffuse
X provide separate call for ambient to shut it off
o why does diffuse just mirror fill()?
o seems to cover just diffuse, not ambient_and_diffuse like fill
o maybe fill() should set diffuse, and sep call to ambient() sets ambient?
X removed it
X move dot() to the bottom w/ the other math
already done
X remove PMethods as actual class, use recordFrame(PGraphics)
X size(200, 200, "processing.illustrator.PGraphicsAI");
api questions
o image(String name) and textFont(String name)
o do we change to font(arial, 12) ?
X remove angleMode() ?
X be consistent about getXxx() methods
X just use the variable names.. don't do overkill on fillR et al
X or just what functions are actually made public
X is fillRi needed? it's pretty goofy..
X how to handle full screen (opengl especially) or no screen (for scripts)
tweaking up simong light code
o what's up with resetLights?
o add PLight object to avoid method overflow
o preApplyMatrix, invApplyMatrix?
o applyMatrixPre and applyMatrixIn
o rotateXInv is ugly..
o irotateX?, papplyMatrix?
wednesday evening
X expose api to launch files, folders, URLs
X use with/in place of link()
X call it open()
X what to call firstMouse
X implement rightMouse?
X yes, mouseButton = LEFT, CENTER, or RIGHT
X error when running on 1.1...
X You need to install Java 1.3 or later to view this content.
X Click here to visit java.com and install.
X make inverseCamera into cameraInv
X fix messages referring to depth()
X route all of them through a single function rather than current waste
X fix bezierVertex() in P3D for newer api
wednesday late
X track loadImage() with filenames that are inconsistent
X really a problem with the ves61r kids
X i.e. mixed case filename in sketch is different in windows
X but when uploaded to a unix server causes a serious problem
X use canonicalPath to flag possible problems
X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1096508877;start=5
o fix shapes in P3D (line loop, polygons, etc)
o should we include a from and to for the directional light?
X no, cuz it doesn't do much really..
X fromX-toX etc is all that's different
thursday day
X set modelview to camera on endCamera
X add ortho() and perspective() to PGraphics.java
thursday evening
o textMode(ALIGN_LEFT) etc, should make sure that left/center/right not used
X though since have to change to LEFT, should be easy to switch
friday night
o should toInt('5') return the ascii or the char?
X since (int) '5' returns the ascii, that's what it does
X made a note in the PApplet reference
text api
X textMode ALIGN_CENTER _LEFT _RIGHT -> CENTER, LEFT, RIGHT ?
X use built-in font if available? yes
o text() with \n is semi-broken
X does the font or PApplet control the size? (the font, ala java)
X without setting the font, SCREEN_SPACE comes out weird
o move SCREEN_SPACE into ScreenFont() class?
o probably not, casey thinks screen space text is prolly more useful
o that way can clear up some of the general confusion in the code
X textFont with a named font can use the renderer/os font
X illustrator api can get the ps name from the java font name
X since it's associated with the font file.. wee!
X for postscript, can grab the real font
o altho problem here is that really the fonts just need a name
o since needs to render to screen as well
o font has to be installed to get psname
X fine because why would you embed a ps font that you don't have?
o need to resolve SCREEN_SPACE vs OBJECT_SPACE
o can this be auto-detected with noDepth()?
o how does rotated text work?
o PFont.rotate(180) rotate(PI)
o or can this be detected from the matrix?
X don't use pixels to do screen space text inside PFont
X add a function in PGraphics for direct pixel image impl
X store the font name in the vlw font file (at the end)
o could include multiple names for multi platforms
X get text impl stuff working properly
o look into fixing the texture mapping to not squash fonts
o NEW_GRAPHICS totally smashes everything
friday postgame
X implement createFont()
X with a .ttf does a create font internally (1.3+ only)
X although the images aren't populated
X until a P2D/P3D/OPENGL tries to draw them, which triggers it
X but if PGraphics2, just uses the built-in font
X also works for font names and just creating them
X if font name doesn't end with otf or ttf, then tries to create it
X change objectX/Y/Z to modelX/Y/Z
X PFont.list() to return string list of all the available fonts
X probably not a mode of use that we really want to encourage
X actually important because the whole graphicsdevice crap is silly
X and we need a 1.1 versus 1.3/1.4 version
X implement printarr() as println() ?
X actually deal with all the array types.. oy
X should nf() handle commas as well?
X just add a basic nfc() version for ints and floats
o yes, and add nf(int what) so that non-padded version works
o but don't put commas into the zero-padded version
o make nf/nfs/nfp not so weird
o nf(PLUS, ...) nf(PAD, ...) nfc(PLUS, ...)
X unhex was broken for numbers bigger than 2^31
saturday late afternoon
X fix bug with openStream() and upper/lowercase stuff
X do a better job of handling any kind of URLs in openStream()
sunday morning
X incorporate simon's new lighting code
0082 core
X make jdkVersion, jdkVersionName, platform, platformName variables
X additional note about screen sizes and displays
+1 -142
View File
@@ -1,145 +1,4 @@
0083 core
X fix double key events
X fix mrj.version security error on the pc
X set() fixes for PGraphics2 and setImpl inside PGraphics
X remove angleMode (also from PMatrix classes)
X remove/rename postSetup() stuff from PGraphics/PApplet
X camera(), perspective(), ortho()
X matrix set by the camera on each beginFrame
X push/pop are now pushMatrix/popMatrix
o get PGraphics.java engine working again
lighting stuff
X make fill() cover ambient and diffuse
X provide separate call for ambient to shut it off
o why does diffuse just mirror fill()?
o seems to cover just diffuse, not ambient_and_diffuse like fill
o maybe fill() should set diffuse, and sep call to ambient() sets ambient?
X removed it
X move dot() to the bottom w/ the other math
already done
X remove PMethods as actual class, use recordFrame(PGraphics)
X size(200, 200, "processing.illustrator.PGraphicsAI");
api questions
o image(String name) and textFont(String name)
o do we change to font(arial, 12) ?
X remove angleMode() ?
X be consistent about getXxx() methods
X just use the variable names.. don't do overkill on fillR et al
X or just what functions are actually made public
X is fillRi needed? it's pretty goofy..
X how to handle full screen (opengl especially) or no screen (for scripts)
tweaking up simong light code
o what's up with resetLights?
o add PLight object to avoid method overflow
o preApplyMatrix, invApplyMatrix?
o applyMatrixPre and applyMatrixIn
o rotateXInv is ugly..
o irotateX?, papplyMatrix?
wednesday evening
X expose api to launch files, folders, URLs
X use with/in place of link()
X call it open()
X what to call firstMouse
X implement rightMouse?
X yes, mouseButton = LEFT, CENTER, or RIGHT
X error when running on 1.1...
X You need to install Java 1.3 or later to view this content.
X Click here to visit java.com and install.
X make inverseCamera into cameraInv
X fix messages referring to depth()
X route all of them through a single function rather than current waste
X fix bezierVertex() in P3D for newer api
wednesday late
X track loadImage() with filenames that are inconsistent
X really a problem with the ves61r kids
X i.e. mixed case filename in sketch is different in windows
X but when uploaded to a unix server causes a serious problem
X use canonicalPath to flag possible problems
X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1096508877;start=5
o fix shapes in P3D (line loop, polygons, etc)
o should we include a from and to for the directional light?
X no, cuz it doesn't do much really..
X fromX-toX etc is all that's different
thursday day
X set modelview to camera on endCamera
X add ortho() and perspective() to PGraphics.java
thursday evening
o textMode(ALIGN_LEFT) etc, should make sure that left/center/right not used
X though since have to change to LEFT, should be easy to switch
friday night
o should toInt('5') return the ascii or the char?
X since (int) '5' returns the ascii, that's what it does
X made a note in the PApplet reference
text api
X textMode ALIGN_CENTER _LEFT _RIGHT -> CENTER, LEFT, RIGHT ?
X use built-in font if available? yes
o text() with \n is semi-broken
X does the font or PApplet control the size? (the font, ala java)
X without setting the font, SCREEN_SPACE comes out weird
o move SCREEN_SPACE into ScreenFont() class?
o probably not, casey thinks screen space text is prolly more useful
o that way can clear up some of the general confusion in the code
X textFont with a named font can use the renderer/os font
X illustrator api can get the ps name from the java font name
X since it's associated with the font file.. wee!
X for postscript, can grab the real font
o altho problem here is that really the fonts just need a name
o since needs to render to screen as well
o font has to be installed to get psname
X fine because why would you embed a ps font that you don't have?
o need to resolve SCREEN_SPACE vs OBJECT_SPACE
o can this be auto-detected with noDepth()?
o how does rotated text work?
o PFont.rotate(180) rotate(PI)
o or can this be detected from the matrix?
X don't use pixels to do screen space text inside PFont
X add a function in PGraphics for direct pixel image impl
X store the font name in the vlw font file (at the end)
o could include multiple names for multi platforms
X get text impl stuff working properly
o look into fixing the texture mapping to not squash fonts
o NEW_GRAPHICS totally smashes everything
friday postgame
X implement createFont()
X with a .ttf does a create font internally (1.3+ only)
X although the images aren't populated
X until a P2D/P3D/OPENGL tries to draw them, which triggers it
X but if PGraphics2, just uses the built-in font
X also works for font names and just creating them
X if font name doesn't end with otf or ttf, then tries to create it
X change objectX/Y/Z to modelX/Y/Z
X PFont.list() to return string list of all the available fonts
X probably not a mode of use that we really want to encourage
X actually important because the whole graphicsdevice crap is silly
X and we need a 1.1 versus 1.3/1.4 version
X implement printarr() as println() ?
X actually deal with all the array types.. oy
X should nf() handle commas as well?
X just add a basic nfc() version for ints and floats
o yes, and add nf(int what) so that non-padded version works
o but don't put commas into the zero-padded version
o make nf/nfs/nfp not so weird
o nf(PLUS, ...) nf(PAD, ...) nfc(PLUS, ...)
X unhex was broken for numbers bigger than 2^31
saturday late afternoon
X fix bug with openStream() and upper/lowercase stuff
X do a better job of handling any kind of URLs in openStream()
sunday morning
X incorporate simon's new lighting code
0084 core
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+74
View File
@@ -1,3 +1,77 @@
0083 pde
X move everything to packages, and start auto-javadoc
X how to get preproc to automatically prepend packages
o only build preproc from preproc/make.sh?
o and check in the preproc'd code to cvs?
X need to add classes dir to cp for jikes make (on win and linux)
X get both versions of size() properly detected on export
X get latest sonia from amit
X remove particles from current processing
X move netscape library out of libs and into build/shared
X add serial.stop() just like client/server
X border weirdness in PdeEditor panels on windows (fixed in 82)
o fix macos readme about how to boost memory size, and 1.3 vs 1.4
X actually, this was already in there
o add prompt() method to serial
camera
o setting the camera should be an index from list()
o there might be multiple cameras with the same name
X no can do, the function takes a String for the device name
o list() should return full list with all sub-components
X find the example code from the board
X grabbing sub-devices from camera in the lib (via list() or whatever)
o actually, need to use numbered indices (multiple w/ same name)
o list should be: "0 - Logitech QuickCam (Blah)"
o and then use the indices (or the str i guess) to choose
X format(NTSC) or PAL or SECAM
X source(COMPOSITE) or SVIDEO or COMPONENT
X settings() brings up settings dialog
o add prompt() method to Camera ("" means default, null is prompt)
o let them pass in prompt(), not use null
o null is only bringing up settings dialog, that's wrong
saturday afternoon
X move packaging around
X remove PdeXxx prefixes on names, make PdeBase into just "Processing"
X update .exe to use new class/package
X update .app to use new class/package
X setup linux box and build a linux version
X need to fix up the make/dist scripts for linux
X update runner script for the new package
X fix linux bugs with placement
X lots of dist script tweaking and messing with jikes libs
o should loadPixels be grabPixels? (nope)
saturday evening
X update processing/build/howto.txt
X add 'make' to list of things that should be installed
X update libraries/howto.txt
o should we queue lib events until the end of loop?
X nope, libraries can handle that themselves,
X and queue events by registering for draw or whatever they'd like
X lib could call queueEvent with the args
X then call them inside post()
saturday evening and sunday morning
X scrubbing all the code to include proper license and copyright info
sunday afternoon
X update checker (can be turned off in prefs)
X send unique id, and information about person's java vm/platform
o using timezone would be an interesting method for tracking location
sunday evening
X fix up dist scripts for new faq stuff, cleaning out some old crap
X consolidate readme.txt, bugs.txt, info.html (faq)
X document things that will be broken for beta
X opengl set() functions.. though get() probably ok
X stop button with external apps
X java 1.1 support
X code is larger than we'd like, has increased in size
X working to remove and optimize, also make possible to remove un-needed
0082 pde
X shut off text anti-aliasing in the about box
X implemented ryan alexander's grow box design
+8 -76
View File
@@ -1,79 +1,7 @@
0083 pde
X move everything to packages, and start auto-javadoc
X how to get preproc to automatically prepend packages
o only build preproc from preproc/make.sh?
o and check in the preproc'd code to cvs?
X need to add classes dir to cp for jikes make (on win and linux)
X get both versions of size() properly detected on export
X get latest sonia from amit
X remove particles from current processing
X move netscape library out of libs and into build/shared
X add serial.stop() just like client/server
X border weirdness in PdeEditor panels on windows (fixed in 82)
o fix macos readme about how to boost memory size, and 1.3 vs 1.4
X actually, this was already in there
o add prompt() method to serial
camera
o setting the camera should be an index from list()
o there might be multiple cameras with the same name
X no can do, the function takes a String for the device name
o list() should return full list with all sub-components
X find the example code from the board
X grabbing sub-devices from camera in the lib (via list() or whatever)
o actually, need to use numbered indices (multiple w/ same name)
o list should be: "0 - Logitech QuickCam (Blah)"
o and then use the indices (or the str i guess) to choose
X format(NTSC) or PAL or SECAM
X source(COMPOSITE) or SVIDEO or COMPONENT
X settings() brings up settings dialog
o add prompt() method to Camera ("" means default, null is prompt)
o let them pass in prompt(), not use null
o null is only bringing up settings dialog, that's wrong
saturday afternoon
X move packaging around
X remove PdeXxx prefixes on names, make PdeBase into just "Processing"
X update .exe to use new class/package
X update .app to use new class/package
X setup linux box and build a linux version
X need to fix up the make/dist scripts for linux
X update runner script for the new package
X fix linux bugs with placement
X lots of dist script tweaking and messing with jikes libs
o should loadPixels be grabPixels? (nope)
saturday evening
X update processing/build/howto.txt
X add 'make' to list of things that should be installed
X update libraries/howto.txt
o should we queue lib events until the end of loop?
X nope, libraries can handle that themselves,
X and queue events by registering for draw or whatever they'd like
X lib could call queueEvent with the args
X then call them inside post()
saturday evening and sunday morning
X scrubbing all the code to include proper license and copyright info
sunday afternoon
X update checker (can be turned off in prefs)
X send unique id, and information about person's java vm/platform
o using timezone would be an interesting method for tracking location
sunday evening
X fix up dist scripts for new faq stuff, cleaning out some old crap
X consolidate readme.txt, bugs.txt, info.html (faq)
X document things that will be broken for beta
X opengl set() functions.. though get() probably ok
X stop button with external apps
X java 1.1 support
X code is larger than we'd like, has increased in size
X working to remove and optimize, also make possible to remove un-needed
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0084 pde
X can't edit prefs while processing is open, remove the link
X add run.options for things run externally
X load options via vector because they need to be split up
pending
_ rename video.Camera to video.Video ?
@@ -83,10 +11,14 @@ _ new bboard? archive the old one, remove bugs sections
_ environment reference
_ list of changes since rev 69? run through revisions.txt
_ check for updates should happen only daily or weekly
_ setup bugzilla and enter all the bugs
_ create font is somewhat broken
_ memory on external apps is a little broken
//
SAVE AS BUGS