Merge lp:~showard314/arduino/packaging-proposed into lp:~arduino-ubuntu-team/arduino/packaging
- packaging-proposed
- Merge into packaging
Proposed by
Scott Howard
Status: | Needs review |
---|---|
Proposed branch: | lp:~showard314/arduino/packaging-proposed |
Merge into: | lp:~arduino-ubuntu-team/arduino/packaging |
Diff against target: |
19048 lines (+7845/-10205) 159 files modified
.pc/.version (+1/-0) .pc/applied-patches (+2/-0) .pc/convert_to_debian_oro.patch/src/processing/app/preproc/PdePreprocessor.java (+351/-0) .pc/wrapper_for_deb.patch/arduino (+22/-0) arduino (+5/-0) debian/README.source (+4/-5) debian/arduino.1 (+30/-0) debian/arduino.desktop (+8/-0) debian/arduino.png.uuencode (+0/-86) debian/arduino.xpm (+691/-0) debian/changelog (+5/-5) debian/control (+18/-19) debian/copyright (+4/-2) debian/docs (+0/-3) debian/install (+4/-8) debian/javadoc (+1/-0) debian/jlibs (+1/-0) debian/links (+2/-0) debian/manpages (+1/-0) debian/menu (+6/-0) debian/patches/about-into-themedir.patch (+0/-14) debian/patches/adopt-avrdude-arduino-programmer-type.patch (+0/-102) debian/patches/avrdude-paths.patch (+0/-27) debian/patches/convert_to_debian_oro.patch (+16/-0) debian/patches/desktop-icon.patch (+0/-14) debian/patches/fix-locale.patch (+0/-12) debian/patches/fix-openfiledialog.patch (+0/-66) debian/patches/fix-savefiledialog.patch (+0/-89) debian/patches/launcher.patch (+0/-7) debian/patches/linux.Platform.diff (+0/-134) debian/patches/logo.patch (+0/-696) debian/patches/series (+2/-11) debian/patches/update-regex-library.patch (+0/-806) debian/patches/wrapper_for_deb.patch (+32/-0) debian/rules (+43/-83) debian/source/format (+1/-0) debian/watch (+4/-2) examples/Digital/toneKeyboard/pitches.h (+95/-0) examples/Digital/toneMelody/pitches.h (+95/-0) examples/EEPROM/examples/eeprom_clear/eeprom_clear.pde (+0/-21) examples/EEPROM/examples/eeprom_read/eeprom_read.pde (+0/-38) examples/EEPROM/examples/eeprom_write/eeprom_write.pde (+0/-38) examples/EEPROM/keywords.txt (+0/-18) examples/Ethernet/examples/ChatServer/ChatServer.pde (+0/-34) examples/Ethernet/examples/WebClient/WebClient.pde (+0/-41) examples/Ethernet/examples/WebServer/WebServer.pde (+0/-61) examples/Ethernet/keywords.txt (+0/-30) examples/Firmata/LICENSE.txt (+0/-458) examples/Firmata/TODO.txt (+0/-14) examples/Firmata/examples/AllInputsFirmata/AllInputsFirmata.pde (+0/-71) examples/Firmata/examples/AnalogFirmata/AnalogFirmata.pde (+0/-83) examples/Firmata/examples/AnalogFirmata/Makefile (+0/-263) examples/Firmata/examples/EchoString/EchoString.pde (+0/-40) examples/Firmata/examples/EchoString/Makefile (+0/-263) examples/Firmata/examples/I2CFirmata/I2CFirmata.pde (+0/-217) examples/Firmata/examples/OldStandardFirmata/LICENSE.txt (+0/-458) examples/Firmata/examples/OldStandardFirmata/OldStandardFirmata.pde (+0/-228) examples/Firmata/examples/ServoFirmata/Makefile (+0/-263) examples/Firmata/examples/ServoFirmata/ServoFirmata.pde (+0/-39) examples/Firmata/examples/SimpleAnalogFirmata/Makefile (+0/-263) examples/Firmata/examples/SimpleAnalogFirmata/SimpleAnalogFirmata.pde (+0/-32) examples/Firmata/examples/SimpleDigitalFirmata/Makefile (+0/-263) examples/Firmata/examples/SimpleDigitalFirmata/SimpleDigitalFirmata.pde (+0/-57) examples/Firmata/examples/StandardFirmata/LICENSE.txt (+0/-458) examples/Firmata/examples/StandardFirmata/Makefile (+0/-273) examples/Firmata/examples/StandardFirmata/StandardFirmata.pde (+0/-302) examples/Firmata/keywords.txt (+0/-62) examples/LiquidCrystal/examples/Autoscroll/Autoscroll.pde (+0/-70) examples/LiquidCrystal/examples/Blink/Blink.pde (+0/-58) examples/LiquidCrystal/examples/Cursor/Cursor.pde (+0/-58) examples/LiquidCrystal/examples/Display/Display.pde (+0/-58) examples/LiquidCrystal/examples/HelloWorld/HelloWorld.pde (+0/-56) examples/LiquidCrystal/examples/Scroll/Scroll.pde (+0/-83) examples/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde (+0/-62) examples/LiquidCrystal/examples/TextDirection/TextDirection.pde (+0/-84) examples/LiquidCrystal/examples/setCursor/setCursor.pde (+0/-68) examples/LiquidCrystal/keywords.txt (+0/-37) examples/Matrix/examples/hello_matrix/hello_matrix.pde (+0/-42) examples/Matrix/examples/sprite_animation/sprite_animation.pde (+0/-48) examples/Matrix/keywords.txt (+0/-22) examples/Servo/examples/Knob/Knob.pde (+0/-22) examples/Servo/examples/Sweep/Sweep.pde (+0/-29) examples/Servo/keywords.txt (+0/-24) examples/SoftwareSerial/keywords.txt (+0/-18) examples/Sprite/keywords.txt (+0/-534) examples/Stepper/examples/MotorKnob/MotorKnob.pde (+0/-40) examples/Stepper/keywords.txt (+0/-28) examples/Wire/examples/SFRRanger_reader/SFRRanger_reader.pde (+0/-84) examples/Wire/examples/digital_potentiometer/digital_potentiometer.pde (+0/-34) examples/Wire/examples/master_reader/master_reader.pde (+0/-29) examples/Wire/examples/master_writer/master_writer.pde (+0/-28) examples/Wire/examples/slave_receiver/slave_receiver.pde (+0/-35) examples/Wire/examples/slave_sender/slave_sender.pde (+0/-29) examples/Wire/keywords.txt (+0/-31) lib/keywords.txt (+173/-0) lib/preferences.txt (+227/-0) lib/theme/theme.txt (+101/-0) libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde (+21/-0) libraries/EEPROM/examples/eeprom_read/eeprom_read.pde (+38/-0) libraries/EEPROM/examples/eeprom_write/eeprom_write.pde (+38/-0) libraries/Ethernet/examples/ChatServer/ChatServer.pde (+34/-0) libraries/Ethernet/examples/WebClient/WebClient.pde (+41/-0) libraries/Ethernet/examples/WebServer/WebServer.pde (+61/-0) libraries/Firmata/LICENSE.txt (+0/-458) libraries/Firmata/examples/AllInputsFirmata/AllInputsFirmata.pde (+71/-0) libraries/Firmata/examples/AnalogFirmata/AnalogFirmata.pde (+83/-0) libraries/Firmata/examples/AnalogFirmata/Makefile (+263/-0) libraries/Firmata/examples/EchoString/EchoString.pde (+40/-0) libraries/Firmata/examples/EchoString/Makefile (+263/-0) libraries/Firmata/examples/I2CFirmata/I2CFirmata.pde (+217/-0) libraries/Firmata/examples/OldStandardFirmata/OldStandardFirmata.pde (+228/-0) libraries/Firmata/examples/ServoFirmata/Makefile (+263/-0) libraries/Firmata/examples/ServoFirmata/ServoFirmata.pde (+39/-0) libraries/Firmata/examples/SimpleAnalogFirmata/Makefile (+263/-0) libraries/Firmata/examples/SimpleAnalogFirmata/SimpleAnalogFirmata.pde (+32/-0) libraries/Firmata/examples/SimpleDigitalFirmata/Makefile (+263/-0) libraries/Firmata/examples/SimpleDigitalFirmata/SimpleDigitalFirmata.pde (+57/-0) libraries/Firmata/examples/StandardFirmata/Makefile (+273/-0) libraries/Firmata/examples/StandardFirmata/StandardFirmata.pde (+302/-0) libraries/LiquidCrystal/examples/Autoscroll/Autoscroll.pde (+70/-0) libraries/LiquidCrystal/examples/Blink/Blink.pde (+58/-0) libraries/LiquidCrystal/examples/Cursor/Cursor.pde (+58/-0) libraries/LiquidCrystal/examples/Display/Display.pde (+58/-0) libraries/LiquidCrystal/examples/HelloWorld/HelloWorld.pde (+56/-0) libraries/LiquidCrystal/examples/Scroll/Scroll.pde (+83/-0) libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde (+62/-0) libraries/LiquidCrystal/examples/TextDirection/TextDirection.pde (+84/-0) libraries/LiquidCrystal/examples/setCursor/setCursor.pde (+68/-0) libraries/Matrix/examples/hello_matrix/hello_matrix.pde (+42/-0) libraries/Matrix/examples/sprite_animation/sprite_animation.pde (+48/-0) libraries/Servo/examples/Knob/Knob.pde (+22/-0) libraries/Servo/examples/Sweep/Sweep.pde (+29/-0) libraries/Stepper/examples/MotorKnob/MotorKnob.pde (+40/-0) libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.pde (+84/-0) libraries/Wire/examples/digital_potentiometer/digital_potentiometer.pde (+34/-0) libraries/Wire/examples/master_reader/master_reader.pde (+29/-0) libraries/Wire/examples/master_writer/master_writer.pde (+28/-0) libraries/Wire/examples/slave_receiver/slave_receiver.pde (+35/-0) libraries/Wire/examples/slave_sender/slave_sender.pde (+29/-0) license.txt (+0/-753) preproc.pl (+186/-0) src/keywords.txt (+0/-173) src/preferences.txt (+0/-227) src/processing/app/macosx/Platform.java (+186/-0) src/processing/app/macosx/ThinkDifferent.java (+127/-0) src/processing/app/preproc/PdePreprocessor.java (+1/-1) src/processing/app/windows/Advapi32.java (+335/-0) src/processing/app/windows/Options.java (+27/-0) src/processing/app/windows/Platform.java (+268/-0) src/processing/app/windows/Registry.java (+456/-0) src/processing/app/windows/WINBASE.java (+43/-0) src/processing/app/windows/WINERROR.java (+22/-0) src/processing/app/windows/WINNT.java (+73/-0) src/processing/app/windows/WINREG.java (+21/-0) src/theme/theme.txt (+0/-101) todo.txt (+0/-202) tools/Mangler/make.sh (+11/-0) tools/Mangler/src/Mangler.java (+94/-0) tools/howto.txt (+143/-0) |
To merge this branch: | bzr merge lp:~showard314/arduino/packaging-proposed |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Arduino on Ubuntu Packagers | Pending | ||
Review via email: mp+23179@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Scott Howard (showard314) wrote : | # |
If you try to build this, make sure you change the debian/changelog to "lucid" instead of "unstable"
Revision history for this message
Scott Howard (showard314) wrote : | # |
You also need a new orig.tar.gz, use ./debian/rules get-orig-source
For Debian compliance I had to clean out some other files and set some permissions.
Unmerged revisions
- 3. By Scott Howard
-
Initial release. (Closes: #577249)
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added directory '.pc' |
2 | === added file '.pc/.version' |
3 | --- .pc/.version 1970-01-01 00:00:00 +0000 |
4 | +++ .pc/.version 2010-04-11 15:27:18 +0000 |
5 | @@ -0,0 +1,1 @@ |
6 | +2 |
7 | |
8 | === added file '.pc/applied-patches' |
9 | --- .pc/applied-patches 1970-01-01 00:00:00 +0000 |
10 | +++ .pc/applied-patches 2010-04-11 15:27:18 +0000 |
11 | @@ -0,0 +1,2 @@ |
12 | +wrapper_for_deb.patch |
13 | +convert_to_debian_oro.patch |
14 | |
15 | === added directory '.pc/convert_to_debian_oro.patch' |
16 | === added directory '.pc/convert_to_debian_oro.patch/src' |
17 | === added directory '.pc/convert_to_debian_oro.patch/src/processing' |
18 | === added directory '.pc/convert_to_debian_oro.patch/src/processing/app' |
19 | === added directory '.pc/convert_to_debian_oro.patch/src/processing/app/preproc' |
20 | === added file '.pc/convert_to_debian_oro.patch/src/processing/app/preproc/PdePreprocessor.java' |
21 | --- .pc/convert_to_debian_oro.patch/src/processing/app/preproc/PdePreprocessor.java 1970-01-01 00:00:00 +0000 |
22 | +++ .pc/convert_to_debian_oro.patch/src/processing/app/preproc/PdePreprocessor.java 2010-04-11 15:27:18 +0000 |
23 | @@ -0,0 +1,351 @@ |
24 | +/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ |
25 | + |
26 | +/* |
27 | + PdePreprocessor - wrapper for default ANTLR-generated parser |
28 | + Part of the Wiring project - http://wiring.org.co |
29 | + |
30 | + Copyright (c) 2004-05 Hernando Barragan |
31 | + |
32 | + Processing version Copyright (c) 2004-05 Ben Fry and Casey Reas |
33 | + Copyright (c) 2001-04 Massachusetts Institute of Technology |
34 | + |
35 | + ANTLR-generated parser and several supporting classes written |
36 | + by Dan Mosedale via funding from the Interaction Institute IVREA. |
37 | + |
38 | + This program is free software; you can redistribute it and/or modify |
39 | + it under the terms of the GNU General Public License as published by |
40 | + the Free Software Foundation; either version 2 of the License, or |
41 | + (at your option) any later version. |
42 | + |
43 | + This program is distributed in the hope that it will be useful, |
44 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
45 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
46 | + GNU General Public License for more details. |
47 | + |
48 | + You should have received a copy of the GNU General Public License |
49 | + along with this program; if not, write to the Free Software Foundation, |
50 | + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
51 | +*/ |
52 | + |
53 | +package processing.app.preproc; |
54 | + |
55 | +import processing.app.*; |
56 | +import processing.core.*; |
57 | + |
58 | +import java.io.*; |
59 | +import java.util.*; |
60 | + |
61 | +import com.oroinc.text.regex.*; |
62 | + |
63 | + |
64 | +/** |
65 | + * Class that orchestrates preprocessing p5 syntax into straight Java. |
66 | + */ |
67 | +public class PdePreprocessor { |
68 | + // stores number of built user-defined function prototypes |
69 | + public int prototypeCount = 0; |
70 | + |
71 | + // stores number of included library headers written |
72 | + // we always write one header: WProgram.h |
73 | + public int headerCount = 1; |
74 | + |
75 | + List prototypes; |
76 | + |
77 | + |
78 | + |
79 | + |
80 | + String[] defaultImports; |
81 | + |
82 | + // these ones have the .* at the end, since a class name might be at the end |
83 | + // instead of .* which would make trouble other classes using this can lop |
84 | + // off the . and anything after it to produce a package name consistently. |
85 | + //public String extraImports[]; |
86 | + ArrayList<String> programImports; |
87 | + |
88 | + // imports just from the code folder, treated differently |
89 | + // than the others, since the imports are auto-generated. |
90 | + ArrayList<String> codeFolderImports; |
91 | + |
92 | + String indent; |
93 | + |
94 | + PrintStream stream; |
95 | + String program; |
96 | + String buildPath; |
97 | + String name; |
98 | + |
99 | + |
100 | + /** |
101 | + * Setup a new preprocessor. |
102 | + */ |
103 | + public PdePreprocessor() { } |
104 | + |
105 | + public int writePrefix(String program, String buildPath, |
106 | + String name, String codeFolderPackages[]) |
107 | + throws FileNotFoundException { |
108 | + this.buildPath = buildPath; |
109 | + this.name = name; |
110 | + |
111 | + int tabSize = Preferences.getInteger("editor.tabs.size"); |
112 | + char[] indentChars = new char[tabSize]; |
113 | + Arrays.fill(indentChars, ' '); |
114 | + indent = new String(indentChars); |
115 | + |
116 | + // if the program ends with no CR or LF an OutOfMemoryError will happen. |
117 | + // not gonna track down the bug now, so here's a hack for it: |
118 | + // http://dev.processing.org/bugs/show_bug.cgi?id=5 |
119 | + program += "\n"; |
120 | + |
121 | + // if the program ends with an unterminated multi-line comment, |
122 | + // an OutOfMemoryError or NullPointerException will happen. |
123 | + // again, not gonna bother tracking this down, but here's a hack. |
124 | + // http://dev.processing.org/bugs/show_bug.cgi?id=16 |
125 | + Sketch.scrubComments(program); |
126 | + // this returns the scrubbed version, but more important for this |
127 | + // function, it'll check to see if there are errors with the comments. |
128 | + |
129 | + if (Preferences.getBoolean("preproc.substitute_unicode")) { |
130 | + // check for non-ascii chars (these will be/must be in unicode format) |
131 | + char p[] = program.toCharArray(); |
132 | + int unicodeCount = 0; |
133 | + for (int i = 0; i < p.length; i++) { |
134 | + if (p[i] > 127) unicodeCount++; |
135 | + } |
136 | + // if non-ascii chars are in there, convert to unicode escapes |
137 | + if (unicodeCount != 0) { |
138 | + // add unicodeCount * 5.. replacing each unicode char |
139 | + // with six digit uXXXX sequence (xxxx is in hex) |
140 | + // (except for nbsp chars which will be a replaced with a space) |
141 | + int index = 0; |
142 | + char p2[] = new char[p.length + unicodeCount*5]; |
143 | + for (int i = 0; i < p.length; i++) { |
144 | + if (p[i] < 128) { |
145 | + p2[index++] = p[i]; |
146 | + |
147 | + } else if (p[i] == 160) { // unicode for non-breaking space |
148 | + p2[index++] = ' '; |
149 | + |
150 | + } else { |
151 | + int c = p[i]; |
152 | + p2[index++] = '\\'; |
153 | + p2[index++] = 'u'; |
154 | + char str[] = Integer.toHexString(c).toCharArray(); |
155 | + // add leading zeros, so that the length is 4 |
156 | + //for (int i = 0; i < 4 - str.length; i++) p2[index++] = '0'; |
157 | + for (int m = 0; m < 4 - str.length; m++) p2[index++] = '0'; |
158 | + System.arraycopy(str, 0, p2, index, str.length); |
159 | + index += str.length; |
160 | + } |
161 | + } |
162 | + program = new String(p2, 0, index); |
163 | + } |
164 | + } |
165 | + |
166 | + // These may change in-between (if the prefs panel adds this option) |
167 | + // so grab them here on construction. |
168 | + String prefsLine = Preferences.get("preproc.imports"); |
169 | + defaultImports = PApplet.splitTokens(prefsLine, ", "); |
170 | + |
171 | + //String importRegexp = "(?:^|\\s|;)(import\\s+)(\\S+)(\\s*;)"; |
172 | + String importRegexp = "^\\s*#include\\s+[<\"](\\S+)[\">]"; |
173 | + programImports = new ArrayList<String>(); |
174 | + |
175 | + String[][] pieces = PApplet.matchAll(program, importRegexp); |
176 | + |
177 | + if (pieces != null) |
178 | + for (int i = 0; i < pieces.length; i++) |
179 | + programImports.add(pieces[i][1]); // the package name |
180 | + |
181 | + codeFolderImports = new ArrayList<String>(); |
182 | +// if (codeFolderPackages != null) { |
183 | +// for (String item : codeFolderPackages) { |
184 | +// codeFolderImports.add(item + ".*"); |
185 | +// } |
186 | +// } |
187 | + |
188 | + prototypes = new ArrayList(); |
189 | + |
190 | + try { |
191 | + prototypes = prototypes(program); |
192 | + } catch (MalformedPatternException e) { |
193 | + System.out.println("Internal error while pre-processing; " + |
194 | + "not generating function prototypes.\n\n" + e); |
195 | + } |
196 | + |
197 | + // store # of prototypes so that line number reporting can be adjusted |
198 | + prototypeCount = prototypes.size(); |
199 | + |
200 | + // do this after the program gets re-combobulated |
201 | + this.program = program; |
202 | + |
203 | + // output the code |
204 | + File streamFile = new File(buildPath, name + ".cpp"); |
205 | + stream = new PrintStream(new FileOutputStream(streamFile)); |
206 | + |
207 | + return headerCount + prototypeCount; |
208 | + } |
209 | + |
210 | + /** |
211 | + * preprocesses a pde file and write out a java file |
212 | + * @return the classname of the exported Java |
213 | + */ |
214 | + //public String write(String program, String buildPath, String name, |
215 | + // String extraImports[]) throws java.lang.Exception { |
216 | + public String write() throws java.lang.Exception { |
217 | + writeProgram(stream, program, prototypes); |
218 | + writeFooter(stream); |
219 | + stream.close(); |
220 | + |
221 | + return name; |
222 | + } |
223 | + |
224 | + // Write the pde program to the cpp file |
225 | + protected void writeProgram(PrintStream out, String program, List prototypes) { |
226 | + int prototypeInsertionPoint = firstStatement(program); |
227 | + |
228 | + out.print(program.substring(0, prototypeInsertionPoint)); |
229 | + out.print("#include \"WProgram.h\"\n"); |
230 | + |
231 | + // print user defined prototypes |
232 | + for (int i = 0; i < prototypes.size(); i++) { |
233 | + out.print(prototypes.get(i) + "\n"); |
234 | + } |
235 | + |
236 | + out.print(program.substring(prototypeInsertionPoint)); |
237 | + } |
238 | + |
239 | + |
240 | + /** |
241 | + * Write any necessary closing text. |
242 | + * |
243 | + * @param out PrintStream to write it to. |
244 | + */ |
245 | + protected void writeFooter(PrintStream out) throws java.lang.Exception {} |
246 | + |
247 | + |
248 | + public ArrayList<String> getExtraImports() { |
249 | + return programImports; |
250 | + } |
251 | + |
252 | + |
253 | + |
254 | + |
255 | + |
256 | + /** |
257 | + * Returns the index of the first character that's not whitespace, a comment |
258 | + * or a pre-processor directive. |
259 | + */ |
260 | + public int firstStatement(String in) { |
261 | + PatternMatcherInput input = new PatternMatcherInput(in); |
262 | + PatternCompiler compiler = new Perl5Compiler(); |
263 | + PatternMatcher matcher = new Perl5Matcher(); |
264 | + Pattern pattern = null; |
265 | + |
266 | + try { |
267 | + pattern = compiler.compile( |
268 | + // XXX: doesn't properly handle special single-quoted characters |
269 | + // whitespace |
270 | + "\\s+" + "|" + |
271 | + // multi-line comment |
272 | + "(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)" + "|" + |
273 | + // single-line comment |
274 | + "(//.*?$)" + "|" + |
275 | + // pre-processor directive |
276 | + "(#(?:\\\\\\n|.)*)", |
277 | + Perl5Compiler.MULTILINE_MASK); |
278 | + } catch (MalformedPatternException e) { |
279 | + throw new RuntimeException("Internal error in firstStatement()", e); |
280 | + } |
281 | + |
282 | + int i = 0; |
283 | + while (matcher.matchesPrefix(input, pattern)) { |
284 | + i = matcher.getMatch().endOffset(0); |
285 | + input.setCurrentOffset(i); |
286 | + } |
287 | + |
288 | + return i; |
289 | + } |
290 | + |
291 | + /** |
292 | + * Strips comments, pre-processor directives, single- and double-quoted |
293 | + * strings from a string. |
294 | + * @param in the String to strip |
295 | + * @return the stripped String |
296 | + */ |
297 | + public String strip(String in) throws MalformedPatternException { |
298 | + PatternCompiler compiler = new Perl5Compiler(); |
299 | + PatternMatcher matcher = new Perl5Matcher(); |
300 | + Pattern pattern = compiler.compile( |
301 | + // XXX: doesn't properly handle special single-quoted characters |
302 | + // single-quoted character |
303 | + "('.')" + "|" + |
304 | + // double-quoted string |
305 | + "(\"(?:[^\"\\\\]|\\\\.)*\")" + "|" + |
306 | + // multi-line comment |
307 | + "(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)" + "|" + |
308 | + // single-line comment |
309 | + "(//.*?$)" + "|" + |
310 | + // pre-processor directive |
311 | + "(^\\s*#.*?$)", |
312 | + Perl5Compiler.MULTILINE_MASK); |
313 | + |
314 | + while (matcher.contains(in, pattern)) { |
315 | + MatchResult result = matcher.getMatch(); |
316 | + // XXX: should preserve newlines in the result so that line numbers of |
317 | + // the stripped string correspond to those in the original source. |
318 | + in = in.substring(0, result.beginOffset(0)) + " " + in.substring(result.endOffset(0)); |
319 | + } |
320 | + |
321 | + return in; |
322 | + } |
323 | + |
324 | + /** |
325 | + * Removes the contents of all top-level curly brace pairs {}. |
326 | + * @param in the String to collapse |
327 | + * @return the collapsed String |
328 | + */ |
329 | + private String collapseBraces(String in) { |
330 | + StringBuffer buffer = new StringBuffer(); |
331 | + int nesting = 0; |
332 | + int start = 0; |
333 | + |
334 | + // XXX: need to keep newlines inside braces so we can determine the line |
335 | + // number of a prototype |
336 | + for (int i = 0; i < in.length(); i++) { |
337 | + if (in.charAt(i) == '{') { |
338 | + if (nesting == 0) { |
339 | + buffer.append(in.substring(start, i + 1)); // include the '{' |
340 | + } |
341 | + nesting++; |
342 | + } |
343 | + if (in.charAt(i) == '}') { |
344 | + nesting--; |
345 | + if (nesting == 0) { |
346 | + start = i; // include the '}' |
347 | + } |
348 | + } |
349 | + } |
350 | + |
351 | + buffer.append(in.substring(start)); |
352 | + |
353 | + return buffer.toString(); |
354 | + } |
355 | + |
356 | + public List prototypes(String in) throws MalformedPatternException { |
357 | + in = collapseBraces(strip(in)); |
358 | + |
359 | + PatternMatcherInput input = new PatternMatcherInput(in); |
360 | + PatternCompiler compiler = new Perl5Compiler(); |
361 | + PatternMatcher matcher = new Perl5Matcher(); |
362 | + // XXX: doesn't handle ... varargs |
363 | + // XXX: doesn't handle function pointers |
364 | + Pattern pattern = compiler.compile( |
365 | + "[\\w\\[\\]\\*]+\\s+[\\[\\]\\*\\w\\s]+\\([,\\[\\]\\*\\w\\s]*\\)(?=\\s*\\{)"); |
366 | + List matches = new ArrayList(); |
367 | + |
368 | + while (matcher.contains(input, pattern)) { |
369 | + matches.add(matcher.getMatch().group(0) + ";"); |
370 | + } |
371 | + |
372 | + return matches; |
373 | + } |
374 | +} |
375 | |
376 | === added directory '.pc/wrapper_for_deb.patch' |
377 | === added file '.pc/wrapper_for_deb.patch/arduino' |
378 | --- .pc/wrapper_for_deb.patch/arduino 1970-01-01 00:00:00 +0000 |
379 | +++ .pc/wrapper_for_deb.patch/arduino 2010-04-11 15:27:18 +0000 |
380 | @@ -0,0 +1,22 @@ |
381 | +#!/bin/sh |
382 | + |
383 | +APPDIR="$(dirname -- "${0}")" |
384 | + |
385 | +cd $APPDIR |
386 | + |
387 | +for LIB in \ |
388 | + java/lib/rt.jar \ |
389 | + java/lib/tools.jar \ |
390 | + lib/*.jar \ |
391 | + ; |
392 | +do |
393 | + CLASSPATH="${CLASSPATH}:${APPDIR}/${LIB}" |
394 | +done |
395 | +export CLASSPATH |
396 | + |
397 | +LD_LIBRARY_PATH=`pwd`/lib:${LD_LIBRARY_PATH} |
398 | +export LD_LIBRARY_PATH |
399 | + |
400 | +export PATH="${APPDIR}/java/bin:${PATH}" |
401 | + |
402 | +java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base |
403 | |
404 | === added file 'arduino' |
405 | --- arduino 1970-01-01 00:00:00 +0000 |
406 | +++ arduino 2010-04-11 15:27:18 +0000 |
407 | @@ -0,0 +1,5 @@ |
408 | +#!/bin/sh |
409 | + |
410 | +cd /usr/share/arduino |
411 | + |
412 | +java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -jar /usr/share/java/arduino.jar |
413 | |
414 | === modified file 'debian/README.source' |
415 | --- debian/README.source 2010-02-12 19:25:26 +0000 |
416 | +++ debian/README.source 2010-04-11 15:27:18 +0000 |
417 | @@ -1,5 +1,4 @@ |
418 | -This package uses quilt to manage all modifications to the upstream source. |
419 | -Changes are stored in the source package as diffs in debian/patches and |
420 | -applied during the build. |
421 | - |
422 | -See /usr/share/doc/quilt/README.source for a detailed explanation |
423 | +This package gets its source from a combination of the upstream SVN and upstream |
424 | +released tarball. Both are found at http://arduino.cc/en/Main/Software. This |
425 | +package follows what would happen in the make.sh and dist.sh scripts in a debian |
426 | +compliant way. |
427 | |
428 | === added file 'debian/arduino.1' |
429 | --- debian/arduino.1 1970-01-01 00:00:00 +0000 |
430 | +++ debian/arduino.1 2010-04-11 15:27:18 +0000 |
431 | @@ -0,0 +1,30 @@ |
432 | +.\" Hey, EMACS: -*- nroff -*- |
433 | +.\" First parameter, NAME, should be all caps |
434 | +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection |
435 | +.\" other parameters are allowed: see man(7), man(1) |
436 | +.TH ARDUINO 1 "April 10, 2010" |
437 | +.\" Please adjust this date whenever revising the manpage. |
438 | +.\" |
439 | +.\" Some roff macros, for reference: |
440 | +.\" .nh disable hyphenation |
441 | +.\" .hy enable hyphenation |
442 | +.\" .ad l left justify |
443 | +.\" .ad b justify to both left and right margins |
444 | +.\" .nf disable filling |
445 | +.\" .fi enable filling |
446 | +.\" .br insert line break |
447 | +.\" .sp <n> insert n+1 empty lines |
448 | +.\" for manpage-specific macros, see man(7) |
449 | +.SH NAME |
450 | +arduino \- an IDE and uploader for Arduino development boards. |
451 | +.SH SYNOPSIS |
452 | +.B arduino |
453 | +.SH DESCRIPTION |
454 | +This program takes no options and will load the IDE in an X11 window. |
455 | +.SH SEE ALSO |
456 | +.BR http://www.arduino.cc/ |
457 | +.SH AUTHOR |
458 | +arduino was written by <developers@arduino.cc>. |
459 | +.PP |
460 | +This manual page was written by Scott Howard <showard314@gmail.com>, |
461 | +for the Debian project (and may be used by others). |
462 | |
463 | === added file 'debian/arduino.desktop' |
464 | --- debian/arduino.desktop 1970-01-01 00:00:00 +0000 |
465 | +++ debian/arduino.desktop 2010-04-11 15:27:18 +0000 |
466 | @@ -0,0 +1,8 @@ |
467 | +[Desktop Entry] |
468 | +Type=Application |
469 | +Name=arduino |
470 | +GenericName=Program Atmegas the easy way |
471 | +Exec=arduino |
472 | +Icon=arduino |
473 | +Terminal=false |
474 | +Categories=Engineering;Electronics; |
475 | |
476 | === removed file 'debian/arduino.png.uuencode' |
477 | --- debian/arduino.png.uuencode 2010-02-12 19:25:26 +0000 |
478 | +++ debian/arduino.png.uuencode 1970-01-01 00:00:00 +0000 |
479 | @@ -1,86 +0,0 @@ |
480 | -begin-base64 644 arduino.png |
481 | -iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c |
482 | -6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0 |
483 | -SU1FB9oCCRAXGHJwNrMAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJ |
484 | -TVBXgQ4XAAAOHUlEQVRo3tWaa4wd51nHf887M+fszbtre33bNBeTNL7UMU4D |
485 | -CUqhUqOWWlUVUFRKhVpxiUtRAYkKFImkaSgR8AEJqQLRRDVSVZBQQFStACUp |
486 | -uUBD0tLc3CTOpbbreBOv7V17be+e3T1n5n3fhw/vO3Nmzm5FQHzpSLNn5uyc |
487 | -Oc/l//yf//POEVUVfoy3dL03b7j7ywdQvU3RMbyCDuwAquGwdh4PQMNL+CMD |
488 | -/wdF47vS/0x1riASDuOrZO2OtIafePlPDh0ZtFXqGbjhngemQQ9LOzsoadr/ |
489 | -Yq+od+AVXHBCvYe4q2o81nheHgdPJM1QW4CCL3JQH+4rBhEh3biFYuEcre1X |
490 | -Yy/OkYxuAAG7eJ5kwwTF+TNoIpjhsUeyjTsOvXT/nbOlzaYf9QemMfKfycTY |
491 | -QTM8hCQJIlJFSTBk27eSbJoEryQTE2Q7dgQjPOCJRgMu7l4x7RFaO64mHZ8i |
492 | -ndyCOK3+n41vJZvcgZg24gWTDCGkiGSIaYGXCBKDqOCXLh3M504+s//ew9Nr |
493 | -ISR6ONkwek1Im5BdvQ2/uIw9ewF1HhHBjIygDtRaTKuFGRpGFHxeoF7JprZg |
494 | -RjeAdcERVeylBbpvHA1Z0pCxdGIryfgmirkZ3Moire070aJA8wItcjTPQQTN |
495 | -e2jeQ4xBWm1sZxVdvnRVfuGtw8BHqgzsu/vLB6SVHQRBXUw/JsDZerAO383p |
496 | -HXsTO/M2FI5i5jT5sRP4zioUDqwFq4gT8AbUgBNwihYWCosWFnUOdS6871ww |
497 | -vMjD3utWDvi8iy96aK8XrvcOzVdQm2MvnTl4w72HD/QzoHqbpGmFay0s+esn |
498 | -UedJNk2SjI9TvPk2vrMMzlU1UTqr3qPek5+e6ddD7bWMvvqAtWL+LYq5mVAr |
499 | -6kPkbVE544s8lHrew7RGyOdPYRdtQLMBdT38yuJtwJHSgbFQYR6cD4ZZD86h |
500 | -vQJWemAtQ7v24BeX6J04HhwtHfYDRY32HSiLuu6EOsrvU1UoCtQ5fG6BBKyn |
501 | -WJqntfkaeqdP0N52Pd3Z11B1ICEgvrc6Vs9AxRhE49VZcB43dx5nzyFJhr+8 |
502 | -FFJvbZ9xvCc1wkduvYGb9+xkqJVGJi0pt067yqnZOb7+b88wc2a+YiNvHWod |
503 | -OI/JRikunSWb3EY+d4ps6ko0L0hHNlFcPoMKMbP1Io6QEBXUetQ5zNAwurIa |
504 | -MOlC1PxSB0lawcEY3c3jIzx416fYc82Od9x8Dt3xQe750tf4xmPfAVWKi7O0 |
505 | -p3aSz50knZwm3bCNfH6GbPOV5GffJB3fRHFxDvUaW4WiqqZPo6oVdNQ5JElo |
506 | -X3M1rekrQmSsBevQwqNWYxGGYvzT37qDvTunEZF3vLdbGX/2uV9l19XTqHf4 |
507 | -bofu3AnS8e3kC2+jeU42eSW9uZNkE9Pk82+hhWVo2y5ak+8KNim+1gdK3AfD |
508 | -BKGYOY2u5pj2EK3tVwbvnfZrw3mund7Cz+6/Di0LFd7xcZokfOr2DwTse4fv |
509 | -LpEvzJCNbaFYPIvrLtHaeBW9uRO0Nu8MjGU9aiN5xHtFCBEiDME741HjUBzp |
510 | -xBQiKUl7JBiPhkypct0VUw1o/P2/PsUD//BohW3VegErWzaN849/eS9GQnPc |
511 | -tfNdodYIzjl7EbzHDI0jKvTOvE628Qp83kVtwerbL8drXbMGVBXxDlRCdK1D |
512 | -Eg/i0dxhF88HXk8CDQZZ4TGqsVuH7fjMLLNn56OU8H2ajE6cPTeHc54kC3HL |
513 | -0gS8jbIpFLztXKA9tBG1Bb7ohoBKyDpS6ixXkUPFQoHTYyaMC4VKpNUYeUgA |
514 | -FxnKBUdiAIDQD5xF1dWc0H5GoizRmrDzzlXGx7sgrdHguHPgLIhBve2Lwdpx |
515 | -n0ZtcECdQ6zHG4fBV6wkmCBg1IK1oZF52zAGdXhXNKJPpFNVj2JqyjMGztuG |
516 | -klVVuvPHogMFZmgiBCUGK3jt18uAi/aFDIiLCq0sWnyAmCHe0IL3DQiVGaCC |
517 | -Tk25qqKJD7IrfkbRWANNOe4656t7ds+9AdrPtigheM0MEPUGAWtlIRONt0Ug |
518 | -LFO28iJmwDch4X3AtO8XceNVBiCk4TPJyBQ+X8Lb1docUfrlK/0kIsFpdYMD |
519 | -jYJ1JGOTpGObyc/MRNhY1Oah8xKiTxIzoKGY6xAKX2YjZdaNL2sgGWhpiqRt |
520 | -THsUSRLc5U4jGyJCOrwZ9Za8e5ls4ip8sYrtnK1mobSeSnvxPG5hATEpai2q |
521 | -eRBZrgg1oBIlja0U4iCEvPdBOdbos6yD8kvrn3G9DpIu4vNOIBJAqnIG25mv |
522 | -st27OBMluRvoA6qh26rgix4mGwJJUJUQfWfxCKIgsV60NLIBiVB4peHh/b4i |
523 | -FdGB68O9isXZaI/WRs4wXhaduf7Igqu+pwEhkUhnHtTleBEMBtUEtRZvbcCf |
524 | -SghmifNBCJUKNbJPWQsluyCDACIWpzZnY5PQ2vRufL6EXTzduL4KFI1GRl/f |
525 | -2BzBoGQoNmDaFaiEsQ6VOAuEDNThENmgVsRao1ENE2IDQv2ClPpo7z1adEP9 |
526 | -ldGOGZJYa2toVIyQjG+lOHcKby1GLErRn6BEQzdWE2nUr2GhijHqUdd+FsIK |
527 | -xyALxWtNRjq8Cbsyj3cFvQvHa6sXJYRidQxCCJRkbAK1BWZkEre8hIrFE1Wo |
528 | -t4gksYj7Gai4vtZgtBpoaixUpllkDQuVEEpHplBvMUMTuOXzDVDVi1oGHDDl |
529 | -Zfn8DD5fpVg4E+YDF42vpLPFe9eAD1ELlXvF0T7OsOVSTOlY2Yzi9VXWVLHL |
530 | -86i3uOX5oHXUkbTGopUpko1W4lDX1oDiuh38ygrqlHTTdvL5HyKjLURM31hM |
531 | -LGTXiG6ZhRv37ebjv/Dh2mJXczIzxmCMabBQVfDOYZfnmvVkMkQMgokI8JGN |
532 | -daAGIIozJZu8ivzCKbIN0/iiR7F0lnTDjuo427AjRDPOt3UI3fHRD3HHRz/0 |
533 | -v1oarBdkf/wML0XnbJUpKZZrrg3UgMYIJEOTaN4jaW3ArV5GXUEytBG3ehlv |
534 | -c9KRzeSXZmodWAdY6P+w1RxQYPOmSX7vs5/mPbt3cfT1N/jSX3+FhYVLFf61 |
535 | -Fv01Wigd20Jx4TQmHUFMhut2QByStFC/gu8t4bqLTZlQg1DoFe/8WFF8nVHS |
536 | -lK//3WF2X38dxhh+7tabef+tt/Dzt3+CoihqfUDXLu6q92ivi2mNgS3oXTpD |
537 | -tmF7aOdLs6Sj2+ieP1YVXdnO6xD654cf55n/eq4yri8jwrkxhvs/fxdJYmoQ |
538 | -0qoPvP/Wm9m7+3oe+qdv8uzzR/jD3/9d9u6+nvf9zE/x5LefHmyBNQdEqyG9 |
539 | -nHdRj7ddEEMyPEX3wolKHgfj+yxUbt999gX+5m8fqmWoHFSCE0mS8MW7/4A0 |
540 | -TSo7pDbMDLVbiAjOOV78/su8+dbbTE1tZqjd7gu89WoApRolS4rUqMGlbCfR |
541 | -aPUeSYfwveU1EKpUaOwFqlo1o77WqWet1ieAp57+LucvLPDhD36AT3zsFzHG |
542 | -cP7CAk9/53sNfVSu4DdWp8NI6Sq111918xVsVD3J8CbS4S0kw5vXQKicl716 |
543 | -vPoq8lSizq/DQlrtlxeX+Ngn7+TED99kZWWV7z33Ih//5J1cXrocDe8PSWtX |
544 | -pyuDwzJHdS5R4MYG5XtLoILrLa6BkNZgI6XapLmcMiinpREAeOmlo3z6tz/H |
545 | -7l3v5o0fHOf06dl1xdyaTlx2ypCJOBJSW8+MnO/zZYql0/hiuYpEP4oR8cqa |
546 | -JZV65NZfLwrX/85nfoMXnnmch772FZ5/+jE++5u/3lS5jb5Rr4E4u9YLMLR+ |
547 | -01/2qA3ror4R3X7rbSrQfsdVMIa1gtpXl1z7Ezv5o8/fxWNP/gfPvXCEn77p |
548 | -Ru675y4e/dbjHD9xcp3vKTMgDDwD64+B9b00KB3ZVvFBXQsN3lwiRMrHXaWx |
549 | -jeu1v+/ftxdjDI8/+W3+/C/+iif//SmSJGHfe/ZUOrDqzDJYA7XxTxtjYF0C |
550 | -l6sMRaMj9rlcw8SmzRVpEQZm55pkKI9FOHYsUPVNNx7gV365w3tv/ElUtRH9 |
551 | -gZKpNbJ1Il5OYb7okLTHsd2LYfVsZR7w9Ho58+cvVDdbXe32nz3WO75Gx7xy |
552 | -/sICWZYBcPHS5cYa0StHX+PBw1/lM4d+jV+643YAHjz8VY6++mrjiaas+5i1 |
553 | -HPkihSat8YB/20Vtj2R4Ey5fjCsUwbiHv/U4Dz/6WFj4jTUhtUesimLSNsa0 |
554 | -cL1F1DlueO/7GkUoAwf3fOF+vvHNf2Hv3t28+tobPPf8i6DSHCVUm2ujMtTu |
555 | -EJdJbPci2dgO1BXki7Nko9uQpEXROUM2Nk1+6WQ/vNpvUBonpn7njRI6aSMm |
556 | -Q5IMtb2B2bE/rNR58tnnX+C5518I94wqrkJaPDHtdqcq4mRy8xNmYoLi0ila |
557 | -G6YplmZRV5CNbcd1F1DbpTWxE5O041wQ9nRkK9loeLCRZKOkw1uRpN3QQr53 |
558 | -Gd9bRF1vkMybgP7RZNZnzlgz6eatpFPTT1QOvHLfoSOtndc9oi6nWDpD0hoP |
559 | -lGpXEJMiJiW/eILewrFaUVNbw9HB9hqdLJdOeggSn+Bq3AcoaJ1d0Or68hz1 |
560 | -DO058MjR++480pASw7v3H8quvW7Gri4gYnDdBSQdRpJh7PI50pGtYWG3pmls |
561 | -5yxFZzY+K+5gl8+idmVgAXeA5ZR1ekQT2yX9ap0E4s2G9900M7r/lkPr/9Tg |
562 | -jw9Pr77+/cO94z84KHmK6y4iaRuRBJ8vo/hQjHW12egRA7mnWdCD657/0yY1 |
563 | -SsumtjO058ZHRvffcuiVL/R/aiDr/Vpl3xcPH7AL87dprzvWhKmu7aS6nknK |
564 | -/8dWGmbarU46dcUTJWx+5I89fhy3/wa6WiIDIeDekgAAAABJRU5ErkJggg== |
565 | -==== |
566 | |
567 | === added file 'debian/arduino.xpm' |
568 | --- debian/arduino.xpm 1970-01-01 00:00:00 +0000 |
569 | +++ debian/arduino.xpm 2010-04-11 15:27:18 +0000 |
570 | @@ -0,0 +1,691 @@ |
571 | +/* XPM */ |
572 | +static char * arduino_xpm[] = { |
573 | +"32 32 656 2", |
574 | +" c None", |
575 | +". c #2D7E99", |
576 | +"+ c #2D819C", |
577 | +"@ c #2D809B", |
578 | +"# c #2D7D99", |
579 | +"$ c #2C7B96", |
580 | +"% c #2C7895", |
581 | +"& c #2C7693", |
582 | +"* c #2B7491", |
583 | +"= c #2B728F", |
584 | +"- c #2B708D", |
585 | +"; c #2A6E8C", |
586 | +"> c #2A6C8A", |
587 | +", c #2A6A88", |
588 | +"' c #2A6B8A", |
589 | +") c #2A6987", |
590 | +"! c #296886", |
591 | +"~ c #296482", |
592 | +"{ c #286381", |
593 | +"] c #296583", |
594 | +"^ c #2B6D8C", |
595 | +"/ c #2B6F8F", |
596 | +"( c #2B6E8E", |
597 | +"_ c #2B6F8E", |
598 | +": c #2B708C", |
599 | +"< c #28657E", |
600 | +"[ c #27667D", |
601 | +"} c #2D829D", |
602 | +"| c #2F8AA3", |
603 | +"1 c #3093AA", |
604 | +"2 c #2E849F", |
605 | +"3 c #2E809C", |
606 | +"4 c #3193AD", |
607 | +"5 c #2F87A3", |
608 | +"6 c #2F83A0", |
609 | +"7 c #308BA8", |
610 | +"8 c #2B708F", |
611 | +"9 c #2B6D8D", |
612 | +"0 c #2D7697", |
613 | +"a c #2C7294", |
614 | +"b c #2C6F91", |
615 | +"c c #2C7194", |
616 | +"d c #2D7195", |
617 | +"e c #2B698B", |
618 | +"f c #295F80", |
619 | +"g c #2A6588", |
620 | +"h c #2C6D93", |
621 | +"i c #2C6C92", |
622 | +"j c #2D7096", |
623 | +"k c #2D6F94", |
624 | +"l c #2D7093", |
625 | +"m c #2C6F8F", |
626 | +"n c #275D76", |
627 | +"o c #275F76", |
628 | +"p c #266073", |
629 | +"q c #2F89A3", |
630 | +"r c #34A5B9", |
631 | +"s c #2D7A98", |
632 | +"t c #2E819E", |
633 | +"u c #2D7695", |
634 | +"v c #2E7797", |
635 | +"w c #2B6889", |
636 | +"x c #2B6A8B", |
637 | +"y c #3185AB", |
638 | +"z c #3181A9", |
639 | +"A c #3181AB", |
640 | +"B c #2C698E", |
641 | +"C c #285A7B", |
642 | +"D c #275879", |
643 | +"E c #2A6389", |
644 | +"F c #2E709B", |
645 | +"G c #265473", |
646 | +"H c #2B658A", |
647 | +"I c #2C688D", |
648 | +"J c #2B668B", |
649 | +"K c #2B6789", |
650 | +"L c #2A6584", |
651 | +"M c #275D75", |
652 | +"N c #28637B", |
653 | +"O c #245868", |
654 | +"P c #256070", |
655 | +"Q c #2D809C", |
656 | +"R c #2E86A0", |
657 | +"S c #2E829D", |
658 | +"T c #2D7E9A", |
659 | +"U c #2F87A4", |
660 | +"V c #3292AE", |
661 | +"W c #2E7A9A", |
662 | +"X c #2D7192", |
663 | +"Y c #2B6486", |
664 | +"Z c #2A6184", |
665 | +"` c #295F81", |
666 | +" . c #285C7E", |
667 | +".. c #285A7C", |
668 | +"+. c #28587A", |
669 | +"@. c #275678", |
670 | +"#. c #275475", |
671 | +"$. c #265273", |
672 | +"%. c #265170", |
673 | +"&. c #254F6D", |
674 | +"*. c #254D6B", |
675 | +"=. c #295D82", |
676 | +"-. c #2A6085", |
677 | +";. c #295E81", |
678 | +">. c #285D7E", |
679 | +",. c #285C7A", |
680 | +"'. c #275D79", |
681 | +"). c #234F62", |
682 | +"!. c #235161", |
683 | +"~. c #245A6A", |
684 | +"{. c #2D7D9A", |
685 | +"]. c #2C7896", |
686 | +"^. c #2D7594", |
687 | +"/. c #2D7696", |
688 | +"(. c #3184A7", |
689 | +"_. c #307CA0", |
690 | +":. c #2A6284", |
691 | +"<. c #2A5E81", |
692 | +"[. c #2B5D80", |
693 | +"}. c #678AA3", |
694 | +"|. c #85A0B4", |
695 | +"1. c #86A0B4", |
696 | +"2. c #859EB2", |
697 | +"3. c #859DB0", |
698 | +"4. c #859CAE", |
699 | +"5. c #8098AA", |
700 | +"6. c #476881", |
701 | +"7. c #244A67", |
702 | +"8. c #244865", |
703 | +"9. c #28577D", |
704 | +"0. c #295980", |
705 | +"a. c #285A7F", |
706 | +"b. c #28597C", |
707 | +"c. c #28597B", |
708 | +"d. c #296184", |
709 | +"e. c #24516A", |
710 | +"f. c #224B5D", |
711 | +"g. c #235467", |
712 | +"h. c #2C7B97", |
713 | +"i. c #2D7996", |
714 | +"j. c #318AA8", |
715 | +"k. c #2C6E8F", |
716 | +"l. c #2F779C", |
717 | +"m. c #2E739A", |
718 | +"n. c #295C80", |
719 | +"o. c #2D5C80", |
720 | +"p. c #C4D1DB", |
721 | +"q. c #FFFFFF", |
722 | +"r. c #FCFCFD", |
723 | +"s. c #788D9F", |
724 | +"t. c #234561", |
725 | +"u. c #254D6F", |
726 | +"v. c #275277", |
727 | +"w. c #285880", |
728 | +"x. c #275378", |
729 | +"y. c #275579", |
730 | +"z. c #254F6E", |
731 | +"A. c #224760", |
732 | +"B. c #244D66", |
733 | +"C. c #235065", |
734 | +"D. c #2C7894", |
735 | +"E. c #2D7896", |
736 | +"F. c #328DAD", |
737 | +"G. c #2E7598", |
738 | +"H. c #2D6E93", |
739 | +"I. c #2E7199", |
740 | +"J. c #2E6D97", |
741 | +"K. c #28577C", |
742 | +"L. c #7995AC", |
743 | +"M. c #F5F6F7", |
744 | +"N. c #2C4A65", |
745 | +"O. c #21405B", |
746 | +"P. c #244A6B", |
747 | +"Q. c #254D71", |
748 | +"R. c #27537A", |
749 | +"S. c #254E71", |
750 | +"T. c #265175", |
751 | +"U. c #234967", |
752 | +"V. c #224C62", |
753 | +"W. c #2C7492", |
754 | +"X. c #2D7494", |
755 | +"Y. c #307FA2", |
756 | +"Z. c #317DA4", |
757 | +"`. c #3077A1", |
758 | +" + c #2E6B95", |
759 | +".+ c #2D6894", |
760 | +"++ c #275478", |
761 | +"@+ c #9FB2C2", |
762 | +"#+ c #F8F9FA", |
763 | +"$+ c #3C5B79", |
764 | +"%+ c #355572", |
765 | +"&+ c #345370", |
766 | +"*+ c #34526D", |
767 | +"=+ c #33506B", |
768 | +"-+ c #7F91A1", |
769 | +";+ c #4B6277", |
770 | +">+ c #203C56", |
771 | +",+ c #203C55", |
772 | +"'+ c #254B6F", |
773 | +")+ c #244A6D", |
774 | +"!+ c #24496A", |
775 | +"~+ c #1F3B52", |
776 | +"{+ c #1F3B51", |
777 | +"]+ c #21495F", |
778 | +"^+ c #2B718E", |
779 | +"/+ c #2C6E90", |
780 | +"(+ c #2F7A9F", |
781 | +"_+ c #3076A0", |
782 | +":+ c #2D6A94", |
783 | +"<+ c #2D6692", |
784 | +"[+ c #2C6490", |
785 | +"}+ c #264F72", |
786 | +"|+ c #A0B0C0", |
787 | +"1+ c #F4F6F7", |
788 | +"2+ c #234463", |
789 | +"3+ c #224260", |
790 | +"4+ c #21405D", |
791 | +"5+ c #213E5A", |
792 | +"6+ c #203D58", |
793 | +"7+ c #697C8E", |
794 | +"8+ c #4C6175", |
795 | +"9+ c #1E3851", |
796 | +"0+ c #1E3850", |
797 | +"a+ c #224364", |
798 | +"b+ c #254D75", |
799 | +"c+ c #234465", |
800 | +"d+ c #1E364D", |
801 | +"e+ c #20455C", |
802 | +"f+ c #2A6D8B", |
803 | +"g+ c #2A6989", |
804 | +"h+ c #2B698C", |
805 | +"i+ c #2E749C", |
806 | +"j+ c #2E709D", |
807 | +"k+ c #2C6591", |
808 | +"l+ c #2B618D", |
809 | +"m+ c #2B5E8A", |
810 | +"n+ c #25496C", |
811 | +"o+ c #9FAEBD", |
812 | +"p+ c #21405C", |
813 | +"q+ c #203D59", |
814 | +"r+ c #203C57", |
815 | +"s+ c #203B55", |
816 | +"t+ c #1F3953", |
817 | +"u+ c #68798A", |
818 | +"v+ c #4B5E70", |
819 | +"w+ c #1D354B", |
820 | +"x+ c #1C344A", |
821 | +"y+ c #1C354B", |
822 | +"z+ c #1F3B56", |
823 | +"A+ c #1F3C59", |
824 | +"B+ c #254A71", |
825 | +"C+ c #1D3348", |
826 | +"D+ c #204359", |
827 | +"E+ c #296485", |
828 | +"F+ c #2A6487", |
829 | +"G+ c #2E6E99", |
830 | +"H+ c #2E6B9A", |
831 | +"I+ c #2B608B", |
832 | +"J+ c #2A5C87", |
833 | +"K+ c #2A5883", |
834 | +"L+ c #244565", |
835 | +"M+ c #9EADBA", |
836 | +"N+ c #F4F5F7", |
837 | +"O+ c #1F3A54", |
838 | +"P+ c #1F3851", |
839 | +"Q+ c #1E364F", |
840 | +"R+ c #1D354D", |
841 | +"S+ c #677786", |
842 | +"T+ c #4A5B6D", |
843 | +"U+ c #1E3853", |
844 | +"V+ c #1B3146", |
845 | +"W+ c #1B3145", |
846 | +"X+ c #1B3045", |
847 | +"Y+ c #1C3146", |
848 | +"Z+ c #1D364F", |
849 | +"`+ c #1C3044", |
850 | +" @ c #1F4156", |
851 | +".@ c #296684", |
852 | +"+@ c #2C6E93", |
853 | +"@@ c #2B658B", |
854 | +"#@ c #2D6994", |
855 | +"$@ c #2C6592", |
856 | +"%@ c #2A5A84", |
857 | +"&@ c #295680", |
858 | +"*@ c #28547D", |
859 | +"=@ c #22415F", |
860 | +"-@ c #9EABB8", |
861 | +";@ c #F4F5F6", |
862 | +">@ c #1D344C", |
863 | +",@ c #1C334A", |
864 | +"'@ c #1C3148", |
865 | +")@ c #667483", |
866 | +"!@ c #4A5C6E", |
867 | +"~@ c #224369", |
868 | +"{@ c #1A2E41", |
869 | +"]@ c #1D354F", |
870 | +"^@ c #213F62", |
871 | +"/@ c #1B3044", |
872 | +"(@ c #1F3854", |
873 | +"_@ c #1E3F53", |
874 | +":@ c #28627F", |
875 | +"<@ c #285A7D", |
876 | +"[@ c #2B638C", |
877 | +"}@ c #28557D", |
878 | +"|@ c #28527A", |
879 | +"1@ c #264F76", |
880 | +"2@ c #9DA9B5", |
881 | +"3@ c #1C3249", |
882 | +"4@ c #1C3147", |
883 | +"5@ c #1B3046", |
884 | +"6@ c #1B2F44", |
885 | +"7@ c #657380", |
886 | +"8@ c #485666", |
887 | +"9@ c #192B3F", |
888 | +"0@ c #192B3E", |
889 | +"a@ c #182A3E", |
890 | +"b@ c #192B3D", |
891 | +"c@ c #192A3D", |
892 | +"d@ c #1A2A3C", |
893 | +"e@ c #1E3D51", |
894 | +"f@ c #285F7C", |
895 | +"g@ c #275574", |
896 | +"h@ c #275474", |
897 | +"i@ c #2A5C84", |
898 | +"j@ c #2A5A85", |
899 | +"k@ c #275077", |
900 | +"l@ c #264D74", |
901 | +"m@ c #254A70", |
902 | +"n@ c #9DA8B3", |
903 | +"o@ c #1A2E43", |
904 | +"p@ c #1A2D41", |
905 | +"q@ c #192C40", |
906 | +"r@ c #64707E", |
907 | +"s@ c #465463", |
908 | +"t@ c #18293B", |
909 | +"u@ c #18293A", |
910 | +"v@ c #1D3756", |
911 | +"w@ c #1C324C", |
912 | +"x@ c #192939", |
913 | +"y@ c #1D3C4F", |
914 | +"z@ c #275E7A", |
915 | +"A@ c #285979", |
916 | +"B@ c #254E6C", |
917 | +"C@ c #28577E", |
918 | +"D@ c #28557F", |
919 | +"E@ c #254B70", |
920 | +"F@ c #25496F", |
921 | +"G@ c #24466B", |
922 | +"H@ c #9CA6B1", |
923 | +"I@ c #192C41", |
924 | +"J@ c #192B40", |
925 | +"K@ c #18293C", |
926 | +"L@ c #636F7B", |
927 | +"M@ c #465360", |
928 | +"N@ c #172738", |
929 | +"O@ c #192D44", |
930 | +"P@ c #18293E", |
931 | +"Q@ c #17273A", |
932 | +"R@ c #172636", |
933 | +"S@ c #182636", |
934 | +"T@ c #1C3B4D", |
935 | +"U@ c #2A6286", |
936 | +"V@ c #244966", |
937 | +"W@ c #275278", |
938 | +"X@ c #265079", |
939 | +"Y@ c #24476C", |
940 | +"Z@ c #23456A", |
941 | +"`@ c #224366", |
942 | +" # c #1C324A", |
943 | +".# c #9BA5AF", |
944 | +"+# c #17283A", |
945 | +"@# c #172739", |
946 | +"## c #636D79", |
947 | +"$# c #45515D", |
948 | +"%# c #162434", |
949 | +"&# c #1B3352", |
950 | +"*# c #17293D", |
951 | +"=# c #162433", |
952 | +"-# c #172433", |
953 | +";# c #1C394A", |
954 | +"># c #245369", |
955 | +",# c #22455C", |
956 | +"'# c #254E70", |
957 | +")# c #264B73", |
958 | +"!# c #234467", |
959 | +"~# c #224265", |
960 | +"{# c #213F61", |
961 | +"]# c #1B3047", |
962 | +"^# c #9BA4AD", |
963 | +"/# c #F6F7F8", |
964 | +"(# c #515E6D", |
965 | +"_# c #515D6B", |
966 | +":# c #515C6A", |
967 | +"<# c #505C69", |
968 | +"[# c #505B68", |
969 | +"}# c #899099", |
970 | +"|# c #454F5B", |
971 | +"1# c #152231", |
972 | +"2# c #152230", |
973 | +"3# c #192B44", |
974 | +"4# c #172537", |
975 | +"5# c #18283D", |
976 | +"6# c #162230", |
977 | +"7# c #1B3848", |
978 | +"8# c #235066", |
979 | +"9# c #224763", |
980 | +"0# c #234366", |
981 | +"a# c #24466D", |
982 | +"b# c #203E60", |
983 | +"c# c #203C5C", |
984 | +"d# c #1A2D43", |
985 | +"e# c #9AA2AB", |
986 | +"f# c #444E58", |
987 | +"g# c #14212E", |
988 | +"h# c #14212D", |
989 | +"i# c #353F4A", |
990 | +"j# c #1D2935", |
991 | +"k# c #15212D", |
992 | +"l# c #16212D", |
993 | +"m# c #1B3846", |
994 | +"n# c #254D70", |
995 | +"o# c #224267", |
996 | +"p# c #213E60", |
997 | +"q# c #9AA1AA", |
998 | +"r# c #434D56", |
999 | +"s# c #121F2B", |
1000 | +"t# c #BDC0C4", |
1001 | +"u# c #FDFEFE", |
1002 | +"v# c #EAEBEC", |
1003 | +"w# c #38414B", |
1004 | +"x# c #151F2B", |
1005 | +"y# c #1A3645", |
1006 | +"z# c #214A5F", |
1007 | +"A# c #234768", |
1008 | +"B# c #254972", |
1009 | +"C# c #203C5D", |
1010 | +"D# c #99A0A9", |
1011 | +"E# c #F7F7F8", |
1012 | +"F# c #57606C", |
1013 | +"G# c #56606A", |
1014 | +"H# c #565F69", |
1015 | +"I# c #565E68", |
1016 | +"J# c #555E67", |
1017 | +"K# c #8C9298", |
1018 | +"L# c #424C55", |
1019 | +"M# c #121E2A", |
1020 | +"N# c #414B54", |
1021 | +"O# c #505861", |
1022 | +"P# c #DFE0E2", |
1023 | +"Q# c #91969B", |
1024 | +"R# c #141E29", |
1025 | +"S# c #151E29", |
1026 | +"T# c #193544", |
1027 | +"U# c #21475D", |
1028 | +"V# c #234264", |
1029 | +"W# c #24456E", |
1030 | +"X# c #1F3958", |
1031 | +"Y# c #1E3858", |
1032 | +"Z# c #182A3F", |
1033 | +"`# c #18283C", |
1034 | +" $ c #999FA7", |
1035 | +".$ c #F4F4F5", |
1036 | +"+$ c #14212F", |
1037 | +"@$ c #14202D", |
1038 | +"#$ c #131F2B", |
1039 | +"$$ c #121E2B", |
1040 | +"%$ c #5F6770", |
1041 | +"&$ c #414A53", |
1042 | +"*$ c #111C27", |
1043 | +"=$ c #26303A", |
1044 | +"-$ c #F6F6F7", |
1045 | +";$ c #C1C3C6", |
1046 | +">$ c #FEFEFE", |
1047 | +",$ c #6E747A", |
1048 | +"'$ c #141D28", |
1049 | +")$ c #193543", |
1050 | +"!$ c #20445A", |
1051 | +"~$ c #223F60", |
1052 | +"{$ c #23436A", |
1053 | +"]$ c #1F395A", |
1054 | +"^$ c #1E3655", |
1055 | +"/$ c #1D3655", |
1056 | +"($ c #18293D", |
1057 | +"_$ c #1C3351", |
1058 | +":$ c #1B314F", |
1059 | +"<$ c #999FA6", |
1060 | +"[$ c #131F2C", |
1061 | +"}$ c #121D29", |
1062 | +"|$ c #111D28", |
1063 | +"1$ c #5F666E", |
1064 | +"2$ c #414952", |
1065 | +"3$ c #111B25", |
1066 | +"4$ c #495159", |
1067 | +"5$ c #A3A7AB", |
1068 | +"6$ c #767C81", |
1069 | +"7$ c #141D27", |
1070 | +"8$ c #131C26", |
1071 | +"9$ c #141C26", |
1072 | +"0$ c #193441", |
1073 | +"a$ c #204258", |
1074 | +"b$ c #213C5D", |
1075 | +"c$ c #224066", |
1076 | +"d$ c #1F3757", |
1077 | +"e$ c #1D3552", |
1078 | +"f$ c #1C3452", |
1079 | +"g$ c #172639", |
1080 | +"h$ c #162436", |
1081 | +"i$ c #999EA5", |
1082 | +"j$ c #F3F4F5", |
1083 | +"k$ c #121D2A", |
1084 | +"l$ c #111B26", |
1085 | +"m$ c #5F656D", |
1086 | +"n$ c #414850", |
1087 | +"o$ c #111A24", |
1088 | +"p$ c #767B81", |
1089 | +"q$ c #D7D9DB", |
1090 | +"r$ c #ABAEB1", |
1091 | +"s$ c #1D242E", |
1092 | +"t$ c #131A23", |
1093 | +"u$ c #193340", |
1094 | +"v$ c #20395A", |
1095 | +"w$ c #213E64", |
1096 | +"x$ c #1E3554", |
1097 | +"y$ c #1C324F", |
1098 | +"z$ c #1B324F", |
1099 | +"A$ c #172538", |
1100 | +"B$ c #162435", |
1101 | +"C$ c #162233", |
1102 | +"D$ c #989EA4", |
1103 | +"E$ c #111B27", |
1104 | +"F$ c #111A25", |
1105 | +"G$ c #5F656C", |
1106 | +"H$ c #40484F", |
1107 | +"I$ c #101922", |
1108 | +"J$ c #313941", |
1109 | +"K$ c #5E646A", |
1110 | +"L$ c #C3C5C7", |
1111 | +"M$ c #818489", |
1112 | +"N$ c #131922", |
1113 | +"O$ c #19323F", |
1114 | +"P$ c #1F4056", |
1115 | +"Q$ c #203858", |
1116 | +"R$ c #213D62", |
1117 | +"S$ c #1E3452", |
1118 | +"T$ c #1C314E", |
1119 | +"U$ c #1B304E", |
1120 | +"V$ c #172536", |
1121 | +"W$ c #17273D", |
1122 | +"X$ c #17263A", |
1123 | +"Y$ c #989DA3", |
1124 | +"Z$ c #F3F4F4", |
1125 | +"`$ c #121D28", |
1126 | +" % c #5F646B", |
1127 | +".% c #40464E", |
1128 | +"+% c #101822", |
1129 | +"@% c #363C45", |
1130 | +"#% c #4C5259", |
1131 | +"$% c #BCBEC0", |
1132 | +"%% c #86898E", |
1133 | +"&% c #19333F", |
1134 | +"*% c #1F3F54", |
1135 | +"=% c #1F3756", |
1136 | +"-% c #213C60", |
1137 | +";% c #1E3350", |
1138 | +">% c #1D3252", |
1139 | +",% c #1B304D", |
1140 | +"'% c #162232", |
1141 | +")% c #15212F", |
1142 | +"!% c #656C75", |
1143 | +"~% c #A3A7AC", |
1144 | +"{% c #9CA0A5", |
1145 | +"]% c #131C27", |
1146 | +"^% c #131A26", |
1147 | +"/% c #121925", |
1148 | +"(% c #121A25", |
1149 | +"_% c #111822", |
1150 | +":% c #A2A4A8", |
1151 | +"<% c #2E343C", |
1152 | +"[% c #101721", |
1153 | +"}% c #101821", |
1154 | +"|% c #888C90", |
1155 | +"1% c #BEBFC2", |
1156 | +"2% c #232831", |
1157 | +"3% c #141922", |
1158 | +"4% c #1F3F53", |
1159 | +"5% c #1E3352", |
1160 | +"6% c #1E3251", |
1161 | +"7% c #1B2F4B", |
1162 | +"8% c #1B2F4C", |
1163 | +"9% c #15202E", |
1164 | +"0% c #141D2A", |
1165 | +"a% c #141C28", |
1166 | +"b% c #131B27", |
1167 | +"c% c #131A25", |
1168 | +"d% c #121923", |
1169 | +"e% c #162134", |
1170 | +"f% c #141D2D", |
1171 | +"g% c #121822", |
1172 | +"h% c #121821", |
1173 | +"i% c #121820", |
1174 | +"j% c #131820", |
1175 | +"k% c #131821", |
1176 | +"l% c #141821", |
1177 | +"m% c #19313E", |
1178 | +"n% c #20475A", |
1179 | +"o% c #1D2F47", |
1180 | +"p% c #1F3558", |
1181 | +"q% c #1D2F4B", |
1182 | +"r% c #1D3251", |
1183 | +"s% c #1C3050", |
1184 | +"t% c #16212F", |
1185 | +"u% c #16202D", |
1186 | +"v% c #192942", |
1187 | +"w% c #162132", |
1188 | +"x% c #162337", |
1189 | +"y% c #162033", |
1190 | +"z% c #131924", |
1191 | +"A% c #131823", |
1192 | +"B% c #131822", |
1193 | +"C% c #12171F", |
1194 | +"D% c #13171F", |
1195 | +"E% c #14171F", |
1196 | +"F% c #1C3C4A", |
1197 | +"G% c #1C3646", |
1198 | +"H% c #1E314F", |
1199 | +"I% c #1D304C", |
1200 | +"J% c #1E3252", |
1201 | +"K% c #1C2D47", |
1202 | +"L% c #182436", |
1203 | +"M% c #16212E", |
1204 | +"N% c #151F2C", |
1205 | +"O% c #162133", |
1206 | +"P% c #151D2A", |
1207 | +"Q% c #151D2C", |
1208 | +"R% c #141B29", |
1209 | +"S% c #131923", |
1210 | +"T% c #131721", |
1211 | +"U% c #131720", |
1212 | +"V% c #182833", |
1213 | +"W% c #1F4457", |
1214 | +"X% c #1F4057", |
1215 | +"Y% c #1E3F57", |
1216 | +"Z% c #1E3D53", |
1217 | +"`% c #1D3D53", |
1218 | +" & c #1B3646", |
1219 | +".& c #1A3545", |
1220 | +"+& c #193443", |
1221 | +"@& c #193442", |
1222 | +"#& c #193341", |
1223 | +"$& c #183240", |
1224 | +"%& c #18313F", |
1225 | +"&& c #18313E", |
1226 | +"*& c #18303D", |
1227 | +"=& c #18303C", |
1228 | +"-& c #19303C", |
1229 | +";& c #1B3C49", |
1230 | +" ", |
1231 | +" . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ ", |
1232 | +" } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p ", |
1233 | +" . q | r 2 s t s u v w x y z A B C D E F G H I J K L M N O P ", |
1234 | +" Q R S T U V W X w Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~. ", |
1235 | +" T S {.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g. ", |
1236 | +" h.{.i.j.k.K l.m.n.o.p.q.q.q.q.q.q.q.r.s.t.u.v.w.x.y.z.A.B.C. ", |
1237 | +" D.E.s F.G.H.I.J.K.L.q.q.q.q.q.q.q.q.q.M.N.O.P.Q.R.S.T.U.y.V. ", |
1238 | +" * W.X.Y.Z.`. +.+++@+q.#+$+%+&+*+=+-+q.q.;+>+,+'+)+)+!+~+{+]+ ", |
1239 | +" ^+_ /+(+_+:+<+[+}+|+q.1+2+3+4+5+6+7+q.q.8+9+0+a+b+c+c+d+d+e+ ", |
1240 | +" f+g+h+i+j+k+l+m+n+o+q.1+p+q+r+s+t+u+q.q.v+w+x+y+z+A+B+C+C+D+ ", |
1241 | +" ) E+F+G+H+I+J+K+L+M+q.N+r+O+P+Q+R+S+q.q.T+U+V+W+X+Y+Z+`+`+ @ ", |
1242 | +" .@+@@@#@$@%@&@*@=@-@q.;@9+Q+>@,@'@)@q.q.!@~@V+{@{@]@^@/@(@_@ ", |
1243 | +" :@C <@[@I+}@|@1@q+2@q.;@>@3@4@5@6@7@q.q.8@9@0@a@b@c@c@d@d@e@ ", |
1244 | +" f@g@h@i@j@k@l@m@O+n@q.;@4@X+o@p@q@r@q.q.s@t@u@u@v@w@x@x@x@y@ ", |
1245 | +" z@A@B@C@D@E@F@G@Q+H@q.;@o@I@J@a@K@L@q.q.M@N@O@N@P@Q@R@S@S@T@ ", |
1246 | +" :@U@V@W@X@Y@Z@`@ #.#q.;@J@a@t@+#@###q.q.$#%#&#*#=#=#=#-#-#;# ", |
1247 | +" >#,#'#E@)#!#~#{#]#^#q./#(#_#:#<#[#}#q.q.|#1#2#2#2#3#4#5#6#7# ", |
1248 | +" 8#9#)+)#0#a#b#c#d#e#q.q.q.q.q.q.q.q.q.q.f#g#h#h#i#j#k#l#l#m# ", |
1249 | +" V.n#Y@0#o#p#^@d#J@q#q.q.q.q.q.q.q.q.q.q.r#s#h#t#u#v#w#x#x#y# ", |
1250 | +" z#A#B#p#p#C#5@J@K@D#q.E#F#G#H#I#J#K#q.q.L#M#N#q.O#P#Q#R#S#T# ", |
1251 | +" U#V#W#C#X#Y#J@Z#`# $q..$+$@$#$$$M#%$q.q.&$*$=$-$;$>$,$'$'$)$ ", |
1252 | +" !$~${$]$^$/$($_$:$<$q..$[$$$M#}$|$1$q.q.2$3$3$4$5$6$7$8$9$0$ ", |
1253 | +" a$b$c$d$e$f$Q@g$h$i$q.j$$$k$|$*$l$m$q.q.n$o$o$p$q$r$s$t$t$u$ ", |
1254 | +" @v$w$x$y$z$A$B$C$D$q.j$}$*$E$F$F$G$q.q.H$I$J$-$K$L$M$N$N$O$ ", |
1255 | +" P$Q$R$S$T$U$V$W$X$Y$q.Z$`$E$F$o$o$ %q.q..%+%@%-$#%$%%%N$N$&% ", |
1256 | +" *%=%-%;%>%,%g$'%)%!%~%{%]%^%/%(%_%.%:%:%<%[%}%|%v#1%2%N$3%O$ ", |
1257 | +" 4%Q$d$5%6%7%8%6#9%x#0%a%b%c%d%e%f%g%h%h%i%i%i%i%i%j%j%k%l%m% ", |
1258 | +" n%o%;%p%q%r%s%t%u%v%w%x%y%z%N$c%A%B%k%j%j%C%C%C%C%D%D%D%E%F% ", |
1259 | +" G%H%I%J%K%L%M%N%O%P%Q%R%S%B%B%T%U%D%C%C%C%C%C%C%D%D%E%V% ", |
1260 | +" W%X%Y%Z%`% &.&+&@&#&$&%&%&&&*&*&=&=&=&=&=&=&=&=&-&;& ", |
1261 | +" "}; |
1262 | |
1263 | === modified file 'debian/changelog' |
1264 | --- debian/changelog 2010-02-12 19:25:26 +0000 |
1265 | +++ debian/changelog 2010-04-11 15:27:18 +0000 |
1266 | @@ -1,5 +1,5 @@ |
1267 | -arduino (0018+dfsg-0ubuntu1~ppa6) lucid; urgency=low |
1268 | - |
1269 | - * Initial release. (LP: #230387) |
1270 | - |
1271 | - -- Alessio Igor Bogani <abogani@ubuntu.com> Fri, 12 Feb 2010 14:25:26 +0100 |
1272 | +arduino (0018+dfsg-1) unstable; urgency=low |
1273 | + |
1274 | + * Initial release. (Closes: #577249) |
1275 | + |
1276 | + -- Scott Howard <showard314@gmail.com> Sat, 10 Apr 2010 19:43:15 -0400 |
1277 | |
1278 | === modified file 'debian/control' |
1279 | --- debian/control 2010-02-12 19:25:26 +0000 |
1280 | +++ debian/control 2010-04-11 15:27:18 +0000 |
1281 | @@ -1,26 +1,25 @@ |
1282 | Source: arduino |
1283 | -Section: universe/devel |
1284 | +Section: electronics |
1285 | Priority: optional |
1286 | -Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> |
1287 | -XSBC-Original-Maintainer: Arduino Ubuntu Team <arduino-ubuntu-team@lists.launchpad.net> |
1288 | -Build-Depends: debhelper (>= 7), quilt(>= 0.46-7~), sharutils |
1289 | -Build-Depends-Indep: default-jdk, librxtx-java, subversion, unzip |
1290 | +Maintainer: Scott Howard <showard314@gmail.com> |
1291 | +DM-Upload-Allowed: yes |
1292 | +Build-Depends: debhelper (>= 7.0.50~), javahelper, default-jdk, librxtx-java, |
1293 | + liboro-java, libantlr-java, libecj-java, libjna-java, perl |
1294 | Standards-Version: 3.8.4 |
1295 | Homepage: http://www.arduino.cc |
1296 | |
1297 | Package: arduino |
1298 | Architecture: all |
1299 | -Depends: ${misc:Depends}, gcc-avr, avr-libc, avrdude (>= 5.10-1ubuntu1), default-jre | java6-runtime, librxtx-java (>=2.1.7r2-4ubuntu1) |
1300 | -Description: The Arduino libraries and the development environment |
1301 | - Arduino is an open-source electronics prototyping platform based on flexible, |
1302 | - easy-to-use hardware and software. It's intended for artists, designers, |
1303 | - hobbyists, and anyone interested in creating interactive objects or |
1304 | - environments. |
1305 | - . |
1306 | - Arduino can sense the environment by receiving input from a variety of sensors |
1307 | - and can affect its surroundings by controlling lights, motors, and other |
1308 | - actuators. The microcontroller on the board is programmed using the Arduino |
1309 | - programming language (based on Wiring) and the Arduino development environment |
1310 | - (based on Processing). Arduino projects can be stand-alone or they can |
1311 | - communicate with software on running on a computer |
1312 | - (e.g. Flash, Processing, MaxMSP). |
1313 | +Depends: ${java:Depends}, ${misc:Depends}, gcc-avr, avr-libc, avrdude |
1314 | +Recommends: extra-xdg-menus |
1315 | +Description: AVR development board IDE and built-in libraries |
1316 | + Arduino is an open-source electronics prototyping platform |
1317 | + based on flexible, easy-to-use hardware and software. It's intended for |
1318 | + artists, designers, hobbyists, and anyone interested in creating interactive |
1319 | + objects or environments. |
1320 | + . |
1321 | + This pacakge will install the integrated development environment that allows |
1322 | + for program writing, code verfication, compiling, and uploading to the Arduino |
1323 | + development board. Libraries and example code will also be installed. |
1324 | + . |
1325 | + For more information, visit www.arduino.cc |
1326 | |
1327 | === modified file 'debian/copyright' |
1328 | --- debian/copyright 2010-02-12 19:25:26 +0000 |
1329 | +++ debian/copyright 2010-04-11 15:27:18 +0000 |
1330 | @@ -1,9 +1,11 @@ |
1331 | This package was debianized by: |
1332 | |
1333 | - Arduino Ubuntu Team <arduino-ubuntu-team@lists.launchpad.net> on Wed, 03 Feb 2010 22:28:16 +0100 |
1334 | + Scott Howard <showard314@gmail.com> |
1335 | + based on the work of the Arduino Ubuntu Team <arduino-ubuntu-team@lists.launchpad.net> |
1336 | |
1337 | This original source for this package was obtained via the upstream |
1338 | svn branch at http://arduino.googlecode.com/svn/trunk/ |
1339 | +and .tgz from www.arduino.cc |
1340 | |
1341 | Files: src/processing/xml/* |
1342 | Copyright: 2000-2002, Marc De Scheemaecker |
1343 | @@ -125,7 +127,7 @@ |
1344 | redistribute the Software for such purposes. |
1345 | |
1346 | Files: debian/* |
1347 | -Copyright: 2010, Arduino Ubuntu Team <arduino-ubuntu-team@lists.launchpad.net> |
1348 | +Copyright: 2010, Scott Howard <showard314@gmail.com>, Arduino Ubuntu Team <arduino-ubuntu-team@lists.launchpad.net> |
1349 | License: GPL-2 |
1350 | |
1351 | Files: src/processing/app/*, src/processing/app/syntax/PdeKeywords.java |
1352 | |
1353 | === removed file 'debian/docs' |
1354 | --- debian/docs 2010-02-12 19:25:26 +0000 |
1355 | +++ debian/docs 1970-01-01 00:00:00 +0000 |
1356 | @@ -1,3 +0,0 @@ |
1357 | -license.txt |
1358 | -todo.txt |
1359 | -reference/ |
1360 | |
1361 | === modified file 'debian/install' |
1362 | --- debian/install 2010-02-12 19:25:26 +0000 |
1363 | +++ debian/install 2010-04-11 15:27:18 +0000 |
1364 | @@ -1,8 +1,4 @@ |
1365 | -resources/linux/startup/arduino usr/bin |
1366 | -resources/icons/arduino.desktop usr/share/applications |
1367 | -resources/icons/arduino.xpm usr/share/pixmaps |
1368 | -classes/arduino.jar usr/share/java |
1369 | -src/*.txt src/theme usr/share/arduino |
1370 | -src/about.jpg usr/share/arduino/theme |
1371 | -arduino.png usr/share/pixmaps |
1372 | -hardware/ libraries/ usr/share/arduino |
1373 | +arduino usr/bin |
1374 | +examples/ hardware/ lib/ libraries/ reference/ tools/ usr/share/arduino |
1375 | +debian/*.xpm usr/share/pixmaps |
1376 | +debian/*.desktop usr/share/applications/ |
1377 | |
1378 | === added file 'debian/javadoc' |
1379 | --- debian/javadoc 1970-01-01 00:00:00 +0000 |
1380 | +++ debian/javadoc 2010-04-11 15:27:18 +0000 |
1381 | @@ -0,0 +1,1 @@ |
1382 | +debian/_jh_build.javadoc.ext/api/ |
1383 | |
1384 | === added file 'debian/jlibs' |
1385 | --- debian/jlibs 1970-01-01 00:00:00 +0000 |
1386 | +++ debian/jlibs 2010-04-11 15:27:18 +0000 |
1387 | @@ -0,0 +1,1 @@ |
1388 | +arduino.jar |
1389 | |
1390 | === added file 'debian/links' |
1391 | --- debian/links 1970-01-01 00:00:00 +0000 |
1392 | +++ debian/links 2010-04-11 15:27:18 +0000 |
1393 | @@ -0,0 +1,2 @@ |
1394 | +/etc/avrdude.conf /usr/share/arduino/hardware/tools/avrdude.conf |
1395 | +/usr/bin/avrdude /usr/share/arduino/hardware/tools/avrdude |
1396 | |
1397 | === added file 'debian/manpages' |
1398 | --- debian/manpages 1970-01-01 00:00:00 +0000 |
1399 | +++ debian/manpages 2010-04-11 15:27:18 +0000 |
1400 | @@ -0,0 +1,1 @@ |
1401 | +debian/arduino.1 |
1402 | |
1403 | === added file 'debian/menu' |
1404 | --- debian/menu 1970-01-01 00:00:00 +0000 |
1405 | +++ debian/menu 2010-04-11 15:27:18 +0000 |
1406 | @@ -0,0 +1,6 @@ |
1407 | +?package(arduino):\ |
1408 | + needs="X11"\ |
1409 | + section="Applications/Science/Electronics"\ |
1410 | + title="Arduino"\ |
1411 | + command="arduino" \ |
1412 | + icon="/usr/share/pixmaps/arduino.xpm" |
1413 | |
1414 | === removed file 'debian/patches/about-into-themedir.patch' |
1415 | --- debian/patches/about-into-themedir.patch 2010-02-12 19:25:26 +0000 |
1416 | +++ debian/patches/about-into-themedir.patch 1970-01-01 00:00:00 +0000 |
1417 | @@ -1,14 +0,0 @@ |
1418 | -Moved about.jpg into theme directory |
1419 | -Index: arduino-0018+dfsg/src/processing/app/Base.java |
1420 | -=================================================================== |
1421 | ---- arduino-0018+dfsg.orig/src/processing/app/Base.java 2010-02-12 14:29:23.691259101 +0100 |
1422 | -+++ arduino-0018+dfsg/src/processing/app/Base.java 2010-02-12 14:29:41.478822760 +0100 |
1423 | -@@ -1254,7 +1254,7 @@ |
1424 | - * Show the About box. |
1425 | - */ |
1426 | - public void handleAbout() { |
1427 | -- final Image image = Base.getLibImage("about.jpg", activeEditor); |
1428 | -+ final Image image = Base.getLibImage("/theme/about.jpg", activeEditor); |
1429 | - final Window window = new Window(activeEditor) { |
1430 | - public void paint(Graphics g) { |
1431 | - g.drawImage(image, 0, 0, null); |
1432 | |
1433 | === removed file 'debian/patches/adopt-avrdude-arduino-programmer-type.patch' |
1434 | --- debian/patches/adopt-avrdude-arduino-programmer-type.patch 2010-02-12 19:25:26 +0000 |
1435 | +++ debian/patches/adopt-avrdude-arduino-programmer-type.patch 1970-01-01 00:00:00 +0000 |
1436 | @@ -1,102 +0,0 @@ |
1437 | -diff -ruNp arduino-0018+dfsg.orig/hardware/arduino/boards.txt arduino-0018+dfsg/hardware/arduino/boards.txt |
1438 | ---- arduino-0018+dfsg.orig/hardware/arduino/boards.txt 2009-12-18 17:05:52.000000000 +0100 |
1439 | -+++ arduino-0018+dfsg/hardware/arduino/boards.txt 2010-03-20 16:39:01.191499017 +0100 |
1440 | -@@ -2,7 +2,7 @@ |
1441 | - |
1442 | - atmega328.name=Arduino Duemilanove or Nano w/ ATmega328 |
1443 | - |
1444 | --atmega328.upload.protocol=stk500 |
1445 | -+atmega328.upload.protocol=arduino |
1446 | - atmega328.upload.maximum_size=30720 |
1447 | - atmega328.upload.speed=57600 |
1448 | - |
1449 | -@@ -22,7 +22,7 @@ atmega328.build.core=arduino |
1450 | - |
1451 | - diecimila.name=Arduino Diecimila, Duemilanove, or Nano w/ ATmega168 |
1452 | - |
1453 | --diecimila.upload.protocol=stk500 |
1454 | -+diecimila.upload.protocol=arduino |
1455 | - diecimila.upload.maximum_size=14336 |
1456 | - diecimila.upload.speed=19200 |
1457 | - |
1458 | -@@ -42,7 +42,7 @@ diecimila.build.core=arduino |
1459 | - |
1460 | - mega.name=Arduino Mega |
1461 | - |
1462 | --mega.upload.protocol=stk500 |
1463 | -+mega.upload.protocol=arduino |
1464 | - mega.upload.maximum_size=126976 |
1465 | - mega.upload.speed=57600 |
1466 | - |
1467 | -@@ -62,7 +62,7 @@ mega.build.core=arduino |
1468 | - |
1469 | - mini.name=Arduino Mini |
1470 | - |
1471 | --mini.upload.protocol=stk500 |
1472 | -+mini.upload.protocol=arduino |
1473 | - mini.upload.maximum_size=14336 |
1474 | - mini.upload.speed=19200 |
1475 | - |
1476 | -@@ -82,7 +82,7 @@ mini.build.core=arduino |
1477 | - |
1478 | - bt.name=Arduino BT |
1479 | - |
1480 | --bt.upload.protocol=stk500 |
1481 | -+bt.upload.protocol=arduino |
1482 | - bt.upload.maximum_size=14336 |
1483 | - bt.upload.speed=19200 |
1484 | - bt.upload.disable_flushing=true |
1485 | -@@ -103,7 +103,7 @@ bt.build.core=arduino |
1486 | - |
1487 | - lilypad328.name=LilyPad Arduino w/ ATmega328 |
1488 | - |
1489 | --lilypad328.upload.protocol=stk500 |
1490 | -+lilypad328.upload.protocol=arduino |
1491 | - lilypad328.upload.maximum_size=30720 |
1492 | - lilypad328.upload.speed=57600 |
1493 | - |
1494 | -@@ -123,7 +123,7 @@ lilypad328.build.core=arduino |
1495 | - |
1496 | - lilypad.name=LilyPad Arduino w/ ATmega168 |
1497 | - |
1498 | --lilypad.upload.protocol=stk500 |
1499 | -+lilypad.upload.protocol=arduino |
1500 | - lilypad.upload.maximum_size=14336 |
1501 | - lilypad.upload.speed=19200 |
1502 | - |
1503 | -@@ -143,7 +143,7 @@ lilypad.build.core=arduino |
1504 | - |
1505 | - pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 |
1506 | - |
1507 | --pro328.upload.protocol=stk500 |
1508 | -+pro328.upload.protocol=arduino |
1509 | - pro328.upload.maximum_size=30720 |
1510 | - pro328.upload.speed=57600 |
1511 | - |
1512 | -@@ -163,7 +163,7 @@ pro328.build.core=arduino |
1513 | - |
1514 | - pro.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 |
1515 | - |
1516 | --pro.upload.protocol=stk500 |
1517 | -+pro.upload.protocol=arduino |
1518 | - pro.upload.maximum_size=14336 |
1519 | - pro.upload.speed=19200 |
1520 | - |
1521 | -@@ -183,7 +183,7 @@ pro.build.core=arduino |
1522 | - |
1523 | - atmega168.name=Arduino NG or older w/ ATmega168 |
1524 | - |
1525 | --atmega168.upload.protocol=stk500 |
1526 | -+atmega168.upload.protocol=arduino |
1527 | - atmega168.upload.maximum_size=14336 |
1528 | - atmega168.upload.speed=19200 |
1529 | - |
1530 | -@@ -203,7 +203,7 @@ atmega168.build.core=arduino |
1531 | - |
1532 | - atmega8.name=Arduino NG or older w/ ATmega8 |
1533 | - |
1534 | --atmega8.upload.protocol=stk500 |
1535 | -+atmega8.upload.protocol=arduino |
1536 | - atmega8.upload.maximum_size=7168 |
1537 | - atmega8.upload.speed=19200 |
1538 | - |
1539 | |
1540 | === removed file 'debian/patches/avrdude-paths.patch' |
1541 | --- debian/patches/avrdude-paths.patch 2010-02-12 19:25:26 +0000 |
1542 | +++ debian/patches/avrdude-paths.patch 1970-01-01 00:00:00 +0000 |
1543 | @@ -1,27 +0,0 @@ |
1544 | -Fix path for use avr tools |
1545 | -Index: arduino-0018+dfsg/src/processing/app/debug/Uploader.java |
1546 | -=================================================================== |
1547 | ---- arduino-0018+dfsg.orig/src/processing/app/debug/Uploader.java 2010-02-15 07:55:42.101548187 +0100 |
1548 | -+++ arduino-0018+dfsg/src/processing/app/debug/Uploader.java 2010-02-15 07:57:51.429048221 +0100 |
1549 | -@@ -111,7 +111,7 @@ |
1550 | - String avrBasePath; |
1551 | - |
1552 | - if(Base.isLinux()) { |
1553 | -- avrBasePath = new String(Base.getHardwarePath() + "/tools/"); |
1554 | -+ avrBasePath = ""; |
1555 | - } |
1556 | - else { |
1557 | - avrBasePath = new String(Base.getHardwarePath() + "/tools/avr/bin/"); |
1558 | -Index: arduino-0018+dfsg/src/processing/app/debug/AvrdudeUploader.java |
1559 | -=================================================================== |
1560 | ---- arduino-0018+dfsg.orig/src/processing/app/debug/AvrdudeUploader.java 2010-02-15 07:56:20.661515639 +0100 |
1561 | -+++ arduino-0018+dfsg/src/processing/app/debug/AvrdudeUploader.java 2010-02-15 07:57:18.290832803 +0100 |
1562 | -@@ -172,7 +172,7 @@ |
1563 | - if (Base.isLinux()) { |
1564 | - // ???: is it better to have Linux users install avrdude themselves, in |
1565 | - // a way that it can find its own configuration file? |
1566 | -- commandDownloader.add("-C" + Base.getHardwarePath() + "/tools/avrdude.conf"); |
1567 | -+ // commandDownloader.add("-C" + Base.getHardwarePath() + "/tools/avrdude.conf"); |
1568 | - } else { |
1569 | - commandDownloader.add("-C" + Base.getHardwarePath() + "/tools/avr/etc/avrdude.conf"); |
1570 | - } |
1571 | |
1572 | === added file 'debian/patches/convert_to_debian_oro.patch' |
1573 | --- debian/patches/convert_to_debian_oro.patch 1970-01-01 00:00:00 +0000 |
1574 | +++ debian/patches/convert_to_debian_oro.patch 2010-04-11 15:27:18 +0000 |
1575 | @@ -0,0 +1,16 @@ |
1576 | +Description: Tells the source code to use Debian's liboro-java |
1577 | +Author: Scott Howard <showard314@gmail.com> |
1578 | + |
1579 | +Index: arduino-0018+dfsg/src/processing/app/preproc/PdePreprocessor.java |
1580 | +=================================================================== |
1581 | +--- arduino-0018+dfsg.orig/src/processing/app/preproc/PdePreprocessor.java 2010-04-09 23:50:58.588879697 -0400 |
1582 | ++++ arduino-0018+dfsg/src/processing/app/preproc/PdePreprocessor.java 2010-04-10 10:48:28.458510257 -0400 |
1583 | +@@ -35,7 +35,7 @@ |
1584 | + import java.io.*; |
1585 | + import java.util.*; |
1586 | + |
1587 | +-import com.oroinc.text.regex.*; |
1588 | ++import org.apache.oro.text.regex.*; |
1589 | + |
1590 | + |
1591 | + /** |
1592 | |
1593 | === removed file 'debian/patches/desktop-icon.patch' |
1594 | --- debian/patches/desktop-icon.patch 2010-02-12 19:25:26 +0000 |
1595 | +++ debian/patches/desktop-icon.patch 1970-01-01 00:00:00 +0000 |
1596 | @@ -1,14 +0,0 @@ |
1597 | -A Desktop Entry for show icon on menu |
1598 | -diff -ruNp arduino-0018-orig/resources/icons/arduino.desktop arduino-0018-changed/resources/icons/arduino.desktop |
1599 | ---- arduino-0018-orig/resources/icons/arduino.desktop 1970-01-01 01:00:00.000000000 +0100 |
1600 | -+++ arduino-0018-changed/resources/icons/arduino.desktop 2010-01-15 13:58:01.000000000 +0100 |
1601 | -@@ -0,0 +1,9 @@ |
1602 | -+[Desktop Entry] |
1603 | -+Type=Application |
1604 | -+Name=arduino |
1605 | -+Name[xx]=arduino |
1606 | -+GenericName=Program Atmegas the easy way |
1607 | -+Exec=arduino |
1608 | -+Icon=arduino |
1609 | -+Terminal=false |
1610 | -+Categories=Development |
1611 | |
1612 | === removed file 'debian/patches/fix-locale.patch' |
1613 | --- debian/patches/fix-locale.patch 2010-02-12 19:25:26 +0000 |
1614 | +++ debian/patches/fix-locale.patch 1970-01-01 00:00:00 +0000 |
1615 | @@ -1,12 +0,0 @@ |
1616 | -Index: arduino-0018+dfsg/src/processing/app/Base.java |
1617 | -=================================================================== |
1618 | ---- arduino-0018+dfsg.orig/src/processing/app/Base.java 2010-02-18 14:44:18.869024266 +0100 |
1619 | -+++ arduino-0018+dfsg/src/processing/app/Base.java 2010-02-18 14:46:24.509021752 +0100 |
1620 | -@@ -126,6 +126,7 @@ |
1621 | - The first thing we have to do is to initialze the platform-specific |
1622 | - classes so file lookup is delegated to platform specific code. |
1623 | - */ |
1624 | -+ Locale.setDefault(Locale.US); |
1625 | - initPlatform(); |
1626 | - |
1627 | - try { |
1628 | |
1629 | === removed file 'debian/patches/fix-openfiledialog.patch' |
1630 | --- debian/patches/fix-openfiledialog.patch 2010-02-12 19:25:26 +0000 |
1631 | +++ debian/patches/fix-openfiledialog.patch 1970-01-01 00:00:00 +0000 |
1632 | @@ -1,66 +0,0 @@ |
1633 | -Index: arduino-0018+dfsg/src/processing/app/Base.java |
1634 | -=================================================================== |
1635 | ---- arduino-0018+dfsg.orig/src/processing/app/Base.java 2010-02-18 14:58:05.819024475 +0100 |
1636 | -+++ arduino-0018+dfsg/src/processing/app/Base.java 2010-02-18 14:58:39.819047033 +0100 |
1637 | -@@ -28,6 +28,7 @@ |
1638 | - import java.util.*; |
1639 | - |
1640 | - import javax.swing.*; |
1641 | -+import javax.swing.filechooser.FileNameExtensionFilter; |
1642 | - |
1643 | - import processing.app.debug.Compiler; |
1644 | - import processing.app.debug.Target; |
1645 | -@@ -641,32 +642,14 @@ |
1646 | - */ |
1647 | - public void handleOpenPrompt() { |
1648 | - // get the frontmost window frame for placing file dialog |
1649 | -- FileDialog fd = new FileDialog(activeEditor, |
1650 | -- "Open an Arduino sketch...", |
1651 | -- FileDialog.LOAD); |
1652 | -- // This was annoying people, so disabled it in 0125. |
1653 | -- //fd.setDirectory(Preferences.get("sketchbook.path")); |
1654 | -- //fd.setDirectory(getSketchbookPath()); |
1655 | -- |
1656 | -- // Only show .pde files as eligible bachelors |
1657 | -- fd.setFilenameFilter(new FilenameFilter() { |
1658 | -- public boolean accept(File dir, String name) { |
1659 | -- // TODO this doesn't seem to ever be used. AWESOME. |
1660 | -- //System.out.println("check filter on " + dir + " " + name); |
1661 | -- return name.toLowerCase().endsWith(".pde"); |
1662 | -- } |
1663 | -- }); |
1664 | -- |
1665 | -- fd.setVisible(true); |
1666 | -- |
1667 | -- String directory = fd.getDirectory(); |
1668 | -- String filename = fd.getFile(); |
1669 | -- |
1670 | -- // User canceled selection |
1671 | -- if (filename == null) return; |
1672 | -- |
1673 | -- File inputFile = new File(directory, filename); |
1674 | -- handleOpen(inputFile.getAbsolutePath()); |
1675 | -+ JFileChooser jfc=new JFileChooser(); |
1676 | -+ FileNameExtensionFilter filter = new FileNameExtensionFilter( |
1677 | -+ "Arduino Sketches", "pde"); |
1678 | -+ jfc.setFileFilter(filter); |
1679 | -+ int returnVal = jfc.showOpenDialog(activeEditor); |
1680 | -+ if(returnVal == JFileChooser.APPROVE_OPTION) { |
1681 | -+ handleOpen(jfc.getSelectedFile().getAbsolutePath()); |
1682 | -+ } |
1683 | - } |
1684 | - |
1685 | - |
1686 | -@@ -803,11 +786,11 @@ |
1687 | - } |
1688 | - |
1689 | - // This will store the sketch count as zero |
1690 | -- editors.remove(editor); |
1691 | - storeSketches(); |
1692 | - |
1693 | - // Save out the current prefs state |
1694 | - Preferences.save(); |
1695 | -+ editors.remove(editor); |
1696 | - |
1697 | - // Since this wasn't an actual Quit event, call System.exit() |
1698 | - System.exit(0); |
1699 | |
1700 | === removed file 'debian/patches/fix-savefiledialog.patch' |
1701 | --- debian/patches/fix-savefiledialog.patch 2010-02-12 19:25:26 +0000 |
1702 | +++ debian/patches/fix-savefiledialog.patch 1970-01-01 00:00:00 +0000 |
1703 | @@ -1,89 +0,0 @@ |
1704 | -Use system look and feel for "save as" file dialog |
1705 | -Index: arduino-0018+dfsg/src/processing/app/Sketch.java |
1706 | -=================================================================== |
1707 | ---- arduino-0018+dfsg.orig/src/processing/app/Sketch.java 2010-02-18 15:02:19.209029154 +0100 |
1708 | -+++ arduino-0018+dfsg/src/processing/app/Sketch.java 2010-02-18 15:11:50.609021682 +0100 |
1709 | -@@ -728,57 +728,29 @@ |
1710 | - protected boolean saveAs() throws IOException { |
1711 | - String newParentDir = null; |
1712 | - String newName = null; |
1713 | -+ File newFolder = null; |
1714 | - |
1715 | -- /* |
1716 | -- JFileChooser fc = new JFileChooser(); |
1717 | -- fc.setDialogTitle("Save sketch folder as..."); |
1718 | -- if (isReadOnly() || isUntitled()) { |
1719 | -- // default to the sketchbook folder |
1720 | -- fc.setCurrentDirectory(new File(Preferences.get("sketchbook.path"))); |
1721 | -- } else { |
1722 | -- // default to the parent folder of where this was |
1723 | -- fc.setCurrentDirectory(folder.getParentFile()); |
1724 | -- } |
1725 | -- // can't do this, will try to save into itself by default |
1726 | -- //fc.setSelectedFile(folder); |
1727 | -- int result = fc.showSaveDialog(editor); |
1728 | -- if (result == JFileChooser.APPROVE_OPTION) { |
1729 | -- File selection = fc.getSelectedFile(); |
1730 | -- newParentDir = selection.getParent(); |
1731 | -- newName = selection.getName(); |
1732 | -- } |
1733 | -- */ |
1734 | -- |
1735 | -- // get new name for folder |
1736 | -- FileDialog fd = new FileDialog(editor, |
1737 | -- "Save sketch folder as...", |
1738 | -- FileDialog.SAVE); |
1739 | -+ JFileChooser fc = new JFileChooser(); |
1740 | -+ fc.setDialogTitle("Save sketch folder as..."); |
1741 | - if (isReadOnly() || isUntitled()) { |
1742 | -- // default to the sketchbook folder |
1743 | -- fd.setDirectory(Preferences.get("sketchbook.path")); |
1744 | -+ // default to the sketchbook folder |
1745 | -+ fc.setCurrentDirectory(new File(Preferences.get("sketchbook.path"))); |
1746 | - } else { |
1747 | - // default to the parent folder of where this was |
1748 | -- fd.setDirectory(folder.getParent()); |
1749 | -+ fc.setCurrentDirectory(folder.getParentFile()); |
1750 | - } |
1751 | -- String oldName = folder.getName(); |
1752 | -- fd.setFile(oldName); |
1753 | -- |
1754 | -- fd.setVisible(true); |
1755 | -- newParentDir = fd.getDirectory(); |
1756 | -- newName = fd.getFile(); |
1757 | -- |
1758 | -- // user canceled selection |
1759 | -- if (newName == null) return false; |
1760 | -- newName = Sketch.checkName(newName); |
1761 | -- |
1762 | -- File newFolder = new File(newParentDir, newName); |
1763 | --// String newPath = newFolder.getAbsolutePath(); |
1764 | --// String oldPath = folder.getAbsolutePath(); |
1765 | -- |
1766 | --// if (newPath.equals(oldPath)) { |
1767 | --// return false; // Can't save a sketch over itself |
1768 | --// } |
1769 | -- |
1770 | -+ // can't do this, will try to save into itself by default |
1771 | -+ //fc.setSelectedFile(folder); |
1772 | -+ int result = fc.showSaveDialog(editor); |
1773 | -+ if (result == JFileChooser.APPROVE_OPTION) { |
1774 | -+ File selection = fc.getSelectedFile(); |
1775 | -+ |
1776 | -+ newParentDir = selection.getParent(); |
1777 | -+ newName = selection.getName(); |
1778 | -+ if(newName==null) |
1779 | -+ return false; |
1780 | -+ newName = Sketch.checkName(newName); |
1781 | -+ newFolder = new File(newParentDir, newName); |
1782 | - // make sure there doesn't exist a .cpp file with that name already |
1783 | - // but ignore this situation for the first tab, since it's probably being |
1784 | - // resaved (with the same name) to another location/folder. |
1785 | -@@ -874,6 +846,7 @@ |
1786 | - setUntitled(false); |
1787 | - |
1788 | - // let Editor know that the save was successful |
1789 | -+ } |
1790 | - return true; |
1791 | - } |
1792 | - |
1793 | |
1794 | === removed file 'debian/patches/launcher.patch' |
1795 | --- debian/patches/launcher.patch 2010-02-12 19:25:26 +0000 |
1796 | +++ debian/patches/launcher.patch 1970-01-01 00:00:00 +0000 |
1797 | @@ -1,7 +0,0 @@ |
1798 | -Launcher script wrapper |
1799 | -diff -ruNp arduino-0018-orig/resources/linux/startup/arduino arduino-0018-changed/resources/linux/startup/arduino |
1800 | ---- arduino-0018-orig/resources/linux/startup/arduino 1970-01-01 01:00:00.000000000 +0100 |
1801 | -+++ arduino-0018-changed/resources/linux/startup/arduino 2010-01-13 09:55:02.000000000 +0100 |
1802 | -@@ -0,0 +1,2 @@ |
1803 | -+#!/bin/sh |
1804 | -+java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -jar /usr/share/java/arduino.jar |
1805 | |
1806 | === removed file 'debian/patches/linux.Platform.diff' |
1807 | --- debian/patches/linux.Platform.diff 2010-02-12 19:25:26 +0000 |
1808 | +++ debian/patches/linux.Platform.diff 1970-01-01 00:00:00 +0000 |
1809 | @@ -1,134 +0,0 @@ |
1810 | -Fix some hardcoded paths |
1811 | ---- arduino-0018+dfsg/src/processing/app/linux/Platform.java 2009-08-12 01:05:18.000000000 +0200 |
1812 | -+++ ubuntu-0018/src/processing/app/linux/Platform.java 2010-02-08 11:33:33.000000000 +0100 |
1813 | -@@ -22,36 +22,72 @@ |
1814 | - |
1815 | - package processing.app.linux; |
1816 | - |
1817 | --import java.io.File; |
1818 | -+import java.io.*; |
1819 | - |
1820 | - import javax.swing.UIManager; |
1821 | - |
1822 | - import processing.app.Preferences; |
1823 | - |
1824 | -+import java.util.*; |
1825 | -+import java.net.*; |
1826 | -+import java.security.*; |
1827 | -+ |
1828 | - |
1829 | - /** |
1830 | -- * Used by Base for platform-specific tweaking, for instance finding the |
1831 | -- * sketchbook location using the Windows registry, or OS X event handling. |
1832 | -+ * Used by Base for platform-specific tweaking. |
1833 | - */ |
1834 | - public class Platform extends processing.app.Platform { |
1835 | -+ /** |
1836 | -+ * If we are run from an archive the is the absolute path of the |
1837 | -+ * jar-file from which we are loaded. |
1838 | -+ */ |
1839 | -+ private File archiveRoot=null; |
1840 | -+ /** The type of distribution we are run from */ |
1841 | -+ private String distribution; |
1842 | -+ /** A directory lookup-table for the (distribution-specific) directrories */ |
1843 | -+ private Hashtable<String,File> pathTable=new Hashtable<String,File>(); |
1844 | -+ |
1845 | -+ /** |
1846 | -+ * Iniatializes the Linux Platform. |
1847 | -+ * @throws Exception If we were unable to detect the distribution |
1848 | -+ * type or filesystem staructrue on which we are run. If we get an |
1849 | -+ * Exception here we are unabvle to contine. The IDE should throw |
1850 | -+ * an error and die. |
1851 | -+ */ |
1852 | -+ public Platform() throws Exception { |
1853 | -+ /* get the absolute pathn to our application jar-file */ |
1854 | -+ URL jarURL=getClass().getProtectionDomain().getCodeSource().getLocation(); |
1855 | -+ File jarFile=new File(jarURL.toURI()); |
1856 | -+ archiveRoot=jarFile.getParentFile().getParentFile(); |
1857 | -+ /* Check the distributuion type for which we a where packaged */ |
1858 | -+ InputStream is=this.getClass().getResourceAsStream("/resources/linux/linux.properties"); |
1859 | -+ Properties p=new Properties(); |
1860 | -+ p.load(is); |
1861 | -+ distribution=p.getProperty("linux.distribution"); |
1862 | -+ if(distribution.equals("archive")) { |
1863 | -+ //we are run from an archive |
1864 | -+ pathTable.put("examples",new File(archiveRoot,"examples")); |
1865 | -+ pathTable.put("hardware",new File(archiveRoot,"hardware")); |
1866 | -+ pathTable.put("lib",new File(archiveRoot,"lib")); |
1867 | -+ pathTable.put("libraries",new File(archiveRoot,"libraries")); |
1868 | -+ pathTable.put("reference",new File(archiveRoot,"reference")); |
1869 | -+ pathTable.put("tools",new File(archiveRoot,"hardware/tools")); |
1870 | -+ } |
1871 | -+ else if(distribution.equals("ubuntu") |
1872 | -+ || distribution.equals("debian")) { |
1873 | -+ //this is an Ubuntu/Debian package |
1874 | -+ pathTable.put("examples",new File("/usr/share/doc/arduino/examples")); |
1875 | -+ pathTable.put("hardware",new File("/usr/share/arduino/hardware")); |
1876 | -+ pathTable.put("lib",new File("/usr/share/arduino")); |
1877 | -+ pathTable.put("libraries",new File("/usr/share/arduino/libraries")); |
1878 | -+ pathTable.put("reference",new File("/usr/share/doc/arduino/reference")); |
1879 | -+ pathTable.put("tools",new File("/usr/share/arduino/tools")); |
1880 | -+ } |
1881 | -+ } |
1882 | - |
1883 | -- // TODO Need to be smarter here since KDE people ain't gonna like that GTK. |
1884 | -- // It may even throw a weird exception at 'em for their trouble. |
1885 | - public void setLookAndFeel() throws Exception { |
1886 | -- // Linux is by default even uglier than metal (Motif?). |
1887 | -- // Actually, i'm using native menus, so they're even uglier |
1888 | -- // and Motif-looking (Lesstif?). Ick. Need to fix this. |
1889 | -- //String lfname = UIManager.getCrossPlatformLookAndFeelClassName(); |
1890 | -- //UIManager.setLookAndFeel(lfname); |
1891 | -- |
1892 | -- // For 0120, trying out the gtk+ look and feel as the default. |
1893 | -- // This is available in Java 1.4.2 and later, and it can't possibly |
1894 | -- // be any worse than Metal. (Ocean might also work, but that's for |
1895 | -- // Java 1.5, and we aren't going there yet) |
1896 | -- //UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); |
1897 | - } |
1898 | - |
1899 | -- |
1900 | - public void openURL(String url) throws Exception { |
1901 | - if (openFolderAvailable()) { |
1902 | - String launcher = Preferences.get("launcher"); |
1903 | -@@ -61,7 +97,6 @@ |
1904 | - } |
1905 | - } |
1906 | - |
1907 | -- |
1908 | - public boolean openFolderAvailable() { |
1909 | - if (Preferences.get("launcher") != null) { |
1910 | - return true; |
1911 | -@@ -103,4 +138,32 @@ |
1912 | - System.out.println("not available"); |
1913 | - } |
1914 | - } |
1915 | -+ |
1916 | -+ /** |
1917 | -+ * Returns a File-object for a path to something in this distribution. |
1918 | -+ * This method implements File/Path lookup for a linux distribution. |
1919 | -+ * @param name this can be the name of a file, directory |
1920 | -+ * or the latter part of a path |
1921 | -+ * @return File a File object for the path starting at the |
1922 | -+ * users work-dir ending with name. The method does not |
1923 | -+ * check wether the file or path exists. |
1924 | -+ */ |
1925 | -+ public File getContentFile(String name) { |
1926 | -+ if(distribution==null) { |
1927 | -+ //property wasn't set, we use the default settings |
1928 | -+ return super.getContentFile(name); |
1929 | -+ } |
1930 | -+ /* |
1931 | -+ check wether the request is only for a root-dir or |
1932 | -+ a file. |
1933 | -+ */ |
1934 | -+ String [] path=name.split("/",2); |
1935 | -+ if(path.length==1) { |
1936 | -+ //this is a request for a simple root-directory |
1937 | -+ return pathTable.get(path[0]); |
1938 | -+ } |
1939 | -+ //this is a request for a root-diretory plus a filename |
1940 | -+ return new File(pathTable.get(path[0]),path[1]); |
1941 | -+ } |
1942 | -+ |
1943 | - } |
1944 | |
1945 | === removed file 'debian/patches/logo.patch' |
1946 | --- debian/patches/logo.patch 2010-02-12 19:25:26 +0000 |
1947 | +++ debian/patches/logo.patch 1970-01-01 00:00:00 +0000 |
1948 | @@ -1,696 +0,0 @@ |
1949 | -Arduino logo in xpm format |
1950 | -diff -ruNp arduino-0018-orig/resources/icons/arduino.png arduino-0018-changed/resources/icons/arduino.xpm |
1951 | ---- arduino-0018-orig/resources/icons/arduino.xpm 2010-02-13 13:09:00.888604994 +0100 |
1952 | -+++ arduino-0018-changed/resources/icons/arduino.xpm 2010-02-09 17:22:41.000000000 +0100 |
1953 | -@@ -0,0 +1,691 @@ |
1954 | -+/* XPM */ |
1955 | -+static char * arduino_xpm[] = { |
1956 | -+"32 32 656 2", |
1957 | -+" c None", |
1958 | -+". c #2D7E99", |
1959 | -+"+ c #2D819C", |
1960 | -+"@ c #2D809B", |
1961 | -+"# c #2D7D99", |
1962 | -+"$ c #2C7B96", |
1963 | -+"% c #2C7895", |
1964 | -+"& c #2C7693", |
1965 | -+"* c #2B7491", |
1966 | -+"= c #2B728F", |
1967 | -+"- c #2B708D", |
1968 | -+"; c #2A6E8C", |
1969 | -+"> c #2A6C8A", |
1970 | -+", c #2A6A88", |
1971 | -+"' c #2A6B8A", |
1972 | -+") c #2A6987", |
1973 | -+"! c #296886", |
1974 | -+"~ c #296482", |
1975 | -+"{ c #286381", |
1976 | -+"] c #296583", |
1977 | -+"^ c #2B6D8C", |
1978 | -+"/ c #2B6F8F", |
1979 | -+"( c #2B6E8E", |
1980 | -+"_ c #2B6F8E", |
1981 | -+": c #2B708C", |
1982 | -+"< c #28657E", |
1983 | -+"[ c #27667D", |
1984 | -+"} c #2D829D", |
1985 | -+"| c #2F8AA3", |
1986 | -+"1 c #3093AA", |
1987 | -+"2 c #2E849F", |
1988 | -+"3 c #2E809C", |
1989 | -+"4 c #3193AD", |
1990 | -+"5 c #2F87A3", |
1991 | -+"6 c #2F83A0", |
1992 | -+"7 c #308BA8", |
1993 | -+"8 c #2B708F", |
1994 | -+"9 c #2B6D8D", |
1995 | -+"0 c #2D7697", |
1996 | -+"a c #2C7294", |
1997 | -+"b c #2C6F91", |
1998 | -+"c c #2C7194", |
1999 | -+"d c #2D7195", |
2000 | -+"e c #2B698B", |
2001 | -+"f c #295F80", |
2002 | -+"g c #2A6588", |
2003 | -+"h c #2C6D93", |
2004 | -+"i c #2C6C92", |
2005 | -+"j c #2D7096", |
2006 | -+"k c #2D6F94", |
2007 | -+"l c #2D7093", |
2008 | -+"m c #2C6F8F", |
2009 | -+"n c #275D76", |
2010 | -+"o c #275F76", |
2011 | -+"p c #266073", |
2012 | -+"q c #2F89A3", |
2013 | -+"r c #34A5B9", |
2014 | -+"s c #2D7A98", |
2015 | -+"t c #2E819E", |
2016 | -+"u c #2D7695", |
2017 | -+"v c #2E7797", |
2018 | -+"w c #2B6889", |
2019 | -+"x c #2B6A8B", |
2020 | -+"y c #3185AB", |
2021 | -+"z c #3181A9", |
2022 | -+"A c #3181AB", |
2023 | -+"B c #2C698E", |
2024 | -+"C c #285A7B", |
2025 | -+"D c #275879", |
2026 | -+"E c #2A6389", |
2027 | -+"F c #2E709B", |
2028 | -+"G c #265473", |
2029 | -+"H c #2B658A", |
2030 | -+"I c #2C688D", |
2031 | -+"J c #2B668B", |
2032 | -+"K c #2B6789", |
2033 | -+"L c #2A6584", |
2034 | -+"M c #275D75", |
2035 | -+"N c #28637B", |
2036 | -+"O c #245868", |
2037 | -+"P c #256070", |
2038 | -+"Q c #2D809C", |
2039 | -+"R c #2E86A0", |
2040 | -+"S c #2E829D", |
2041 | -+"T c #2D7E9A", |
2042 | -+"U c #2F87A4", |
2043 | -+"V c #3292AE", |
2044 | -+"W c #2E7A9A", |
2045 | -+"X c #2D7192", |
2046 | -+"Y c #2B6486", |
2047 | -+"Z c #2A6184", |
2048 | -+"` c #295F81", |
2049 | -+" . c #285C7E", |
2050 | -+".. c #285A7C", |
2051 | -+"+. c #28587A", |
2052 | -+"@. c #275678", |
2053 | -+"#. c #275475", |
2054 | -+"$. c #265273", |
2055 | -+"%. c #265170", |
2056 | -+"&. c #254F6D", |
2057 | -+"*. c #254D6B", |
2058 | -+"=. c #295D82", |
2059 | -+"-. c #2A6085", |
2060 | -+";. c #295E81", |
2061 | -+">. c #285D7E", |
2062 | -+",. c #285C7A", |
2063 | -+"'. c #275D79", |
2064 | -+"). c #234F62", |
2065 | -+"!. c #235161", |
2066 | -+"~. c #245A6A", |
2067 | -+"{. c #2D7D9A", |
2068 | -+"]. c #2C7896", |
2069 | -+"^. c #2D7594", |
2070 | -+"/. c #2D7696", |
2071 | -+"(. c #3184A7", |
2072 | -+"_. c #307CA0", |
2073 | -+":. c #2A6284", |
2074 | -+"<. c #2A5E81", |
2075 | -+"[. c #2B5D80", |
2076 | -+"}. c #678AA3", |
2077 | -+"|. c #85A0B4", |
2078 | -+"1. c #86A0B4", |
2079 | -+"2. c #859EB2", |
2080 | -+"3. c #859DB0", |
2081 | -+"4. c #859CAE", |
2082 | -+"5. c #8098AA", |
2083 | -+"6. c #476881", |
2084 | -+"7. c #244A67", |
2085 | -+"8. c #244865", |
2086 | -+"9. c #28577D", |
2087 | -+"0. c #295980", |
2088 | -+"a. c #285A7F", |
2089 | -+"b. c #28597C", |
2090 | -+"c. c #28597B", |
2091 | -+"d. c #296184", |
2092 | -+"e. c #24516A", |
2093 | -+"f. c #224B5D", |
2094 | -+"g. c #235467", |
2095 | -+"h. c #2C7B97", |
2096 | -+"i. c #2D7996", |
2097 | -+"j. c #318AA8", |
2098 | -+"k. c #2C6E8F", |
2099 | -+"l. c #2F779C", |
2100 | -+"m. c #2E739A", |
2101 | -+"n. c #295C80", |
2102 | -+"o. c #2D5C80", |
2103 | -+"p. c #C4D1DB", |
2104 | -+"q. c #FFFFFF", |
2105 | -+"r. c #FCFCFD", |
2106 | -+"s. c #788D9F", |
2107 | -+"t. c #234561", |
2108 | -+"u. c #254D6F", |
2109 | -+"v. c #275277", |
2110 | -+"w. c #285880", |
2111 | -+"x. c #275378", |
2112 | -+"y. c #275579", |
2113 | -+"z. c #254F6E", |
2114 | -+"A. c #224760", |
2115 | -+"B. c #244D66", |
2116 | -+"C. c #235065", |
2117 | -+"D. c #2C7894", |
2118 | -+"E. c #2D7896", |
2119 | -+"F. c #328DAD", |
2120 | -+"G. c #2E7598", |
2121 | -+"H. c #2D6E93", |
2122 | -+"I. c #2E7199", |
2123 | -+"J. c #2E6D97", |
2124 | -+"K. c #28577C", |
2125 | -+"L. c #7995AC", |
2126 | -+"M. c #F5F6F7", |
2127 | -+"N. c #2C4A65", |
2128 | -+"O. c #21405B", |
2129 | -+"P. c #244A6B", |
2130 | -+"Q. c #254D71", |
2131 | -+"R. c #27537A", |
2132 | -+"S. c #254E71", |
2133 | -+"T. c #265175", |
2134 | -+"U. c #234967", |
2135 | -+"V. c #224C62", |
2136 | -+"W. c #2C7492", |
2137 | -+"X. c #2D7494", |
2138 | -+"Y. c #307FA2", |
2139 | -+"Z. c #317DA4", |
2140 | -+"`. c #3077A1", |
2141 | -+" + c #2E6B95", |
2142 | -+".+ c #2D6894", |
2143 | -+"++ c #275478", |
2144 | -+"@+ c #9FB2C2", |
2145 | -+"#+ c #F8F9FA", |
2146 | -+"$+ c #3C5B79", |
2147 | -+"%+ c #355572", |
2148 | -+"&+ c #345370", |
2149 | -+"*+ c #34526D", |
2150 | -+"=+ c #33506B", |
2151 | -+"-+ c #7F91A1", |
2152 | -+";+ c #4B6277", |
2153 | -+">+ c #203C56", |
2154 | -+",+ c #203C55", |
2155 | -+"'+ c #254B6F", |
2156 | -+")+ c #244A6D", |
2157 | -+"!+ c #24496A", |
2158 | -+"~+ c #1F3B52", |
2159 | -+"{+ c #1F3B51", |
2160 | -+"]+ c #21495F", |
2161 | -+"^+ c #2B718E", |
2162 | -+"/+ c #2C6E90", |
2163 | -+"(+ c #2F7A9F", |
2164 | -+"_+ c #3076A0", |
2165 | -+":+ c #2D6A94", |
2166 | -+"<+ c #2D6692", |
2167 | -+"[+ c #2C6490", |
2168 | -+"}+ c #264F72", |
2169 | -+"|+ c #A0B0C0", |
2170 | -+"1+ c #F4F6F7", |
2171 | -+"2+ c #234463", |
2172 | -+"3+ c #224260", |
2173 | -+"4+ c #21405D", |
2174 | -+"5+ c #213E5A", |
2175 | -+"6+ c #203D58", |
2176 | -+"7+ c #697C8E", |
2177 | -+"8+ c #4C6175", |
2178 | -+"9+ c #1E3851", |
2179 | -+"0+ c #1E3850", |
2180 | -+"a+ c #224364", |
2181 | -+"b+ c #254D75", |
2182 | -+"c+ c #234465", |
2183 | -+"d+ c #1E364D", |
2184 | -+"e+ c #20455C", |
2185 | -+"f+ c #2A6D8B", |
2186 | -+"g+ c #2A6989", |
2187 | -+"h+ c #2B698C", |
2188 | -+"i+ c #2E749C", |
2189 | -+"j+ c #2E709D", |
2190 | -+"k+ c #2C6591", |
2191 | -+"l+ c #2B618D", |
2192 | -+"m+ c #2B5E8A", |
2193 | -+"n+ c #25496C", |
2194 | -+"o+ c #9FAEBD", |
2195 | -+"p+ c #21405C", |
2196 | -+"q+ c #203D59", |
2197 | -+"r+ c #203C57", |
2198 | -+"s+ c #203B55", |
2199 | -+"t+ c #1F3953", |
2200 | -+"u+ c #68798A", |
2201 | -+"v+ c #4B5E70", |
2202 | -+"w+ c #1D354B", |
2203 | -+"x+ c #1C344A", |
2204 | -+"y+ c #1C354B", |
2205 | -+"z+ c #1F3B56", |
2206 | -+"A+ c #1F3C59", |
2207 | -+"B+ c #254A71", |
2208 | -+"C+ c #1D3348", |
2209 | -+"D+ c #204359", |
2210 | -+"E+ c #296485", |
2211 | -+"F+ c #2A6487", |
2212 | -+"G+ c #2E6E99", |
2213 | -+"H+ c #2E6B9A", |
2214 | -+"I+ c #2B608B", |
2215 | -+"J+ c #2A5C87", |
2216 | -+"K+ c #2A5883", |
2217 | -+"L+ c #244565", |
2218 | -+"M+ c #9EADBA", |
2219 | -+"N+ c #F4F5F7", |
2220 | -+"O+ c #1F3A54", |
2221 | -+"P+ c #1F3851", |
2222 | -+"Q+ c #1E364F", |
2223 | -+"R+ c #1D354D", |
2224 | -+"S+ c #677786", |
2225 | -+"T+ c #4A5B6D", |
2226 | -+"U+ c #1E3853", |
2227 | -+"V+ c #1B3146", |
2228 | -+"W+ c #1B3145", |
2229 | -+"X+ c #1B3045", |
2230 | -+"Y+ c #1C3146", |
2231 | -+"Z+ c #1D364F", |
2232 | -+"`+ c #1C3044", |
2233 | -+" @ c #1F4156", |
2234 | -+".@ c #296684", |
2235 | -+"+@ c #2C6E93", |
2236 | -+"@@ c #2B658B", |
2237 | -+"#@ c #2D6994", |
2238 | -+"$@ c #2C6592", |
2239 | -+"%@ c #2A5A84", |
2240 | -+"&@ c #295680", |
2241 | -+"*@ c #28547D", |
2242 | -+"=@ c #22415F", |
2243 | -+"-@ c #9EABB8", |
2244 | -+";@ c #F4F5F6", |
2245 | -+">@ c #1D344C", |
2246 | -+",@ c #1C334A", |
2247 | -+"'@ c #1C3148", |
2248 | -+")@ c #667483", |
2249 | -+"!@ c #4A5C6E", |
2250 | -+"~@ c #224369", |
2251 | -+"{@ c #1A2E41", |
2252 | -+"]@ c #1D354F", |
2253 | -+"^@ c #213F62", |
2254 | -+"/@ c #1B3044", |
2255 | -+"(@ c #1F3854", |
2256 | -+"_@ c #1E3F53", |
2257 | -+":@ c #28627F", |
2258 | -+"<@ c #285A7D", |
2259 | -+"[@ c #2B638C", |
2260 | -+"}@ c #28557D", |
2261 | -+"|@ c #28527A", |
2262 | -+"1@ c #264F76", |
2263 | -+"2@ c #9DA9B5", |
2264 | -+"3@ c #1C3249", |
2265 | -+"4@ c #1C3147", |
2266 | -+"5@ c #1B3046", |
2267 | -+"6@ c #1B2F44", |
2268 | -+"7@ c #657380", |
2269 | -+"8@ c #485666", |
2270 | -+"9@ c #192B3F", |
2271 | -+"0@ c #192B3E", |
2272 | -+"a@ c #182A3E", |
2273 | -+"b@ c #192B3D", |
2274 | -+"c@ c #192A3D", |
2275 | -+"d@ c #1A2A3C", |
2276 | -+"e@ c #1E3D51", |
2277 | -+"f@ c #285F7C", |
2278 | -+"g@ c #275574", |
2279 | -+"h@ c #275474", |
2280 | -+"i@ c #2A5C84", |
2281 | -+"j@ c #2A5A85", |
2282 | -+"k@ c #275077", |
2283 | -+"l@ c #264D74", |
2284 | -+"m@ c #254A70", |
2285 | -+"n@ c #9DA8B3", |
2286 | -+"o@ c #1A2E43", |
2287 | -+"p@ c #1A2D41", |
2288 | -+"q@ c #192C40", |
2289 | -+"r@ c #64707E", |
2290 | -+"s@ c #465463", |
2291 | -+"t@ c #18293B", |
2292 | -+"u@ c #18293A", |
2293 | -+"v@ c #1D3756", |
2294 | -+"w@ c #1C324C", |
2295 | -+"x@ c #192939", |
2296 | -+"y@ c #1D3C4F", |
2297 | -+"z@ c #275E7A", |
2298 | -+"A@ c #285979", |
2299 | -+"B@ c #254E6C", |
2300 | -+"C@ c #28577E", |
2301 | -+"D@ c #28557F", |
2302 | -+"E@ c #254B70", |
2303 | -+"F@ c #25496F", |
2304 | -+"G@ c #24466B", |
2305 | -+"H@ c #9CA6B1", |
2306 | -+"I@ c #192C41", |
2307 | -+"J@ c #192B40", |
2308 | -+"K@ c #18293C", |
2309 | -+"L@ c #636F7B", |
2310 | -+"M@ c #465360", |
2311 | -+"N@ c #172738", |
2312 | -+"O@ c #192D44", |
2313 | -+"P@ c #18293E", |
2314 | -+"Q@ c #17273A", |
2315 | -+"R@ c #172636", |
2316 | -+"S@ c #182636", |
2317 | -+"T@ c #1C3B4D", |
2318 | -+"U@ c #2A6286", |
2319 | -+"V@ c #244966", |
2320 | -+"W@ c #275278", |
2321 | -+"X@ c #265079", |
2322 | -+"Y@ c #24476C", |
2323 | -+"Z@ c #23456A", |
2324 | -+"`@ c #224366", |
2325 | -+" # c #1C324A", |
2326 | -+".# c #9BA5AF", |
2327 | -+"+# c #17283A", |
2328 | -+"@# c #172739", |
2329 | -+"## c #636D79", |
2330 | -+"$# c #45515D", |
2331 | -+"%# c #162434", |
2332 | -+"&# c #1B3352", |
2333 | -+"*# c #17293D", |
2334 | -+"=# c #162433", |
2335 | -+"-# c #172433", |
2336 | -+";# c #1C394A", |
2337 | -+"># c #245369", |
2338 | -+",# c #22455C", |
2339 | -+"'# c #254E70", |
2340 | -+")# c #264B73", |
2341 | -+"!# c #234467", |
2342 | -+"~# c #224265", |
2343 | -+"{# c #213F61", |
2344 | -+"]# c #1B3047", |
2345 | -+"^# c #9BA4AD", |
2346 | -+"/# c #F6F7F8", |
2347 | -+"(# c #515E6D", |
2348 | -+"_# c #515D6B", |
2349 | -+":# c #515C6A", |
2350 | -+"<# c #505C69", |
2351 | -+"[# c #505B68", |
2352 | -+"}# c #899099", |
2353 | -+"|# c #454F5B", |
2354 | -+"1# c #152231", |
2355 | -+"2# c #152230", |
2356 | -+"3# c #192B44", |
2357 | -+"4# c #172537", |
2358 | -+"5# c #18283D", |
2359 | -+"6# c #162230", |
2360 | -+"7# c #1B3848", |
2361 | -+"8# c #235066", |
2362 | -+"9# c #224763", |
2363 | -+"0# c #234366", |
2364 | -+"a# c #24466D", |
2365 | -+"b# c #203E60", |
2366 | -+"c# c #203C5C", |
2367 | -+"d# c #1A2D43", |
2368 | -+"e# c #9AA2AB", |
2369 | -+"f# c #444E58", |
2370 | -+"g# c #14212E", |
2371 | -+"h# c #14212D", |
2372 | -+"i# c #353F4A", |
2373 | -+"j# c #1D2935", |
2374 | -+"k# c #15212D", |
2375 | -+"l# c #16212D", |
2376 | -+"m# c #1B3846", |
2377 | -+"n# c #254D70", |
2378 | -+"o# c #224267", |
2379 | -+"p# c #213E60", |
2380 | -+"q# c #9AA1AA", |
2381 | -+"r# c #434D56", |
2382 | -+"s# c #121F2B", |
2383 | -+"t# c #BDC0C4", |
2384 | -+"u# c #FDFEFE", |
2385 | -+"v# c #EAEBEC", |
2386 | -+"w# c #38414B", |
2387 | -+"x# c #151F2B", |
2388 | -+"y# c #1A3645", |
2389 | -+"z# c #214A5F", |
2390 | -+"A# c #234768", |
2391 | -+"B# c #254972", |
2392 | -+"C# c #203C5D", |
2393 | -+"D# c #99A0A9", |
2394 | -+"E# c #F7F7F8", |
2395 | -+"F# c #57606C", |
2396 | -+"G# c #56606A", |
2397 | -+"H# c #565F69", |
2398 | -+"I# c #565E68", |
2399 | -+"J# c #555E67", |
2400 | -+"K# c #8C9298", |
2401 | -+"L# c #424C55", |
2402 | -+"M# c #121E2A", |
2403 | -+"N# c #414B54", |
2404 | -+"O# c #505861", |
2405 | -+"P# c #DFE0E2", |
2406 | -+"Q# c #91969B", |
2407 | -+"R# c #141E29", |
2408 | -+"S# c #151E29", |
2409 | -+"T# c #193544", |
2410 | -+"U# c #21475D", |
2411 | -+"V# c #234264", |
2412 | -+"W# c #24456E", |
2413 | -+"X# c #1F3958", |
2414 | -+"Y# c #1E3858", |
2415 | -+"Z# c #182A3F", |
2416 | -+"`# c #18283C", |
2417 | -+" $ c #999FA7", |
2418 | -+".$ c #F4F4F5", |
2419 | -+"+$ c #14212F", |
2420 | -+"@$ c #14202D", |
2421 | -+"#$ c #131F2B", |
2422 | -+"$$ c #121E2B", |
2423 | -+"%$ c #5F6770", |
2424 | -+"&$ c #414A53", |
2425 | -+"*$ c #111C27", |
2426 | -+"=$ c #26303A", |
2427 | -+"-$ c #F6F6F7", |
2428 | -+";$ c #C1C3C6", |
2429 | -+">$ c #FEFEFE", |
2430 | -+",$ c #6E747A", |
2431 | -+"'$ c #141D28", |
2432 | -+")$ c #193543", |
2433 | -+"!$ c #20445A", |
2434 | -+"~$ c #223F60", |
2435 | -+"{$ c #23436A", |
2436 | -+"]$ c #1F395A", |
2437 | -+"^$ c #1E3655", |
2438 | -+"/$ c #1D3655", |
2439 | -+"($ c #18293D", |
2440 | -+"_$ c #1C3351", |
2441 | -+":$ c #1B314F", |
2442 | -+"<$ c #999FA6", |
2443 | -+"[$ c #131F2C", |
2444 | -+"}$ c #121D29", |
2445 | -+"|$ c #111D28", |
2446 | -+"1$ c #5F666E", |
2447 | -+"2$ c #414952", |
2448 | -+"3$ c #111B25", |
2449 | -+"4$ c #495159", |
2450 | -+"5$ c #A3A7AB", |
2451 | -+"6$ c #767C81", |
2452 | -+"7$ c #141D27", |
2453 | -+"8$ c #131C26", |
2454 | -+"9$ c #141C26", |
2455 | -+"0$ c #193441", |
2456 | -+"a$ c #204258", |
2457 | -+"b$ c #213C5D", |
2458 | -+"c$ c #224066", |
2459 | -+"d$ c #1F3757", |
2460 | -+"e$ c #1D3552", |
2461 | -+"f$ c #1C3452", |
2462 | -+"g$ c #172639", |
2463 | -+"h$ c #162436", |
2464 | -+"i$ c #999EA5", |
2465 | -+"j$ c #F3F4F5", |
2466 | -+"k$ c #121D2A", |
2467 | -+"l$ c #111B26", |
2468 | -+"m$ c #5F656D", |
2469 | -+"n$ c #414850", |
2470 | -+"o$ c #111A24", |
2471 | -+"p$ c #767B81", |
2472 | -+"q$ c #D7D9DB", |
2473 | -+"r$ c #ABAEB1", |
2474 | -+"s$ c #1D242E", |
2475 | -+"t$ c #131A23", |
2476 | -+"u$ c #193340", |
2477 | -+"v$ c #20395A", |
2478 | -+"w$ c #213E64", |
2479 | -+"x$ c #1E3554", |
2480 | -+"y$ c #1C324F", |
2481 | -+"z$ c #1B324F", |
2482 | -+"A$ c #172538", |
2483 | -+"B$ c #162435", |
2484 | -+"C$ c #162233", |
2485 | -+"D$ c #989EA4", |
2486 | -+"E$ c #111B27", |
2487 | -+"F$ c #111A25", |
2488 | -+"G$ c #5F656C", |
2489 | -+"H$ c #40484F", |
2490 | -+"I$ c #101922", |
2491 | -+"J$ c #313941", |
2492 | -+"K$ c #5E646A", |
2493 | -+"L$ c #C3C5C7", |
2494 | -+"M$ c #818489", |
2495 | -+"N$ c #131922", |
2496 | -+"O$ c #19323F", |
2497 | -+"P$ c #1F4056", |
2498 | -+"Q$ c #203858", |
2499 | -+"R$ c #213D62", |
2500 | -+"S$ c #1E3452", |
2501 | -+"T$ c #1C314E", |
2502 | -+"U$ c #1B304E", |
2503 | -+"V$ c #172536", |
2504 | -+"W$ c #17273D", |
2505 | -+"X$ c #17263A", |
2506 | -+"Y$ c #989DA3", |
2507 | -+"Z$ c #F3F4F4", |
2508 | -+"`$ c #121D28", |
2509 | -+" % c #5F646B", |
2510 | -+".% c #40464E", |
2511 | -+"+% c #101822", |
2512 | -+"@% c #363C45", |
2513 | -+"#% c #4C5259", |
2514 | -+"$% c #BCBEC0", |
2515 | -+"%% c #86898E", |
2516 | -+"&% c #19333F", |
2517 | -+"*% c #1F3F54", |
2518 | -+"=% c #1F3756", |
2519 | -+"-% c #213C60", |
2520 | -+";% c #1E3350", |
2521 | -+">% c #1D3252", |
2522 | -+",% c #1B304D", |
2523 | -+"'% c #162232", |
2524 | -+")% c #15212F", |
2525 | -+"!% c #656C75", |
2526 | -+"~% c #A3A7AC", |
2527 | -+"{% c #9CA0A5", |
2528 | -+"]% c #131C27", |
2529 | -+"^% c #131A26", |
2530 | -+"/% c #121925", |
2531 | -+"(% c #121A25", |
2532 | -+"_% c #111822", |
2533 | -+":% c #A2A4A8", |
2534 | -+"<% c #2E343C", |
2535 | -+"[% c #101721", |
2536 | -+"}% c #101821", |
2537 | -+"|% c #888C90", |
2538 | -+"1% c #BEBFC2", |
2539 | -+"2% c #232831", |
2540 | -+"3% c #141922", |
2541 | -+"4% c #1F3F53", |
2542 | -+"5% c #1E3352", |
2543 | -+"6% c #1E3251", |
2544 | -+"7% c #1B2F4B", |
2545 | -+"8% c #1B2F4C", |
2546 | -+"9% c #15202E", |
2547 | -+"0% c #141D2A", |
2548 | -+"a% c #141C28", |
2549 | -+"b% c #131B27", |
2550 | -+"c% c #131A25", |
2551 | -+"d% c #121923", |
2552 | -+"e% c #162134", |
2553 | -+"f% c #141D2D", |
2554 | -+"g% c #121822", |
2555 | -+"h% c #121821", |
2556 | -+"i% c #121820", |
2557 | -+"j% c #131820", |
2558 | -+"k% c #131821", |
2559 | -+"l% c #141821", |
2560 | -+"m% c #19313E", |
2561 | -+"n% c #20475A", |
2562 | -+"o% c #1D2F47", |
2563 | -+"p% c #1F3558", |
2564 | -+"q% c #1D2F4B", |
2565 | -+"r% c #1D3251", |
2566 | -+"s% c #1C3050", |
2567 | -+"t% c #16212F", |
2568 | -+"u% c #16202D", |
2569 | -+"v% c #192942", |
2570 | -+"w% c #162132", |
2571 | -+"x% c #162337", |
2572 | -+"y% c #162033", |
2573 | -+"z% c #131924", |
2574 | -+"A% c #131823", |
2575 | -+"B% c #131822", |
2576 | -+"C% c #12171F", |
2577 | -+"D% c #13171F", |
2578 | -+"E% c #14171F", |
2579 | -+"F% c #1C3C4A", |
2580 | -+"G% c #1C3646", |
2581 | -+"H% c #1E314F", |
2582 | -+"I% c #1D304C", |
2583 | -+"J% c #1E3252", |
2584 | -+"K% c #1C2D47", |
2585 | -+"L% c #182436", |
2586 | -+"M% c #16212E", |
2587 | -+"N% c #151F2C", |
2588 | -+"O% c #162133", |
2589 | -+"P% c #151D2A", |
2590 | -+"Q% c #151D2C", |
2591 | -+"R% c #141B29", |
2592 | -+"S% c #131923", |
2593 | -+"T% c #131721", |
2594 | -+"U% c #131720", |
2595 | -+"V% c #182833", |
2596 | -+"W% c #1F4457", |
2597 | -+"X% c #1F4057", |
2598 | -+"Y% c #1E3F57", |
2599 | -+"Z% c #1E3D53", |
2600 | -+"`% c #1D3D53", |
2601 | -+" & c #1B3646", |
2602 | -+".& c #1A3545", |
2603 | -+"+& c #193443", |
2604 | -+"@& c #193442", |
2605 | -+"#& c #193341", |
2606 | -+"$& c #183240", |
2607 | -+"%& c #18313F", |
2608 | -+"&& c #18313E", |
2609 | -+"*& c #18303D", |
2610 | -+"=& c #18303C", |
2611 | -+"-& c #19303C", |
2612 | -+";& c #1B3C49", |
2613 | -+" ", |
2614 | -+" . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ ", |
2615 | -+" } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p ", |
2616 | -+" . q | r 2 s t s u v w x y z A B C D E F G H I J K L M N O P ", |
2617 | -+" Q R S T U V W X w Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~. ", |
2618 | -+" T S {.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g. ", |
2619 | -+" h.{.i.j.k.K l.m.n.o.p.q.q.q.q.q.q.q.r.s.t.u.v.w.x.y.z.A.B.C. ", |
2620 | -+" D.E.s F.G.H.I.J.K.L.q.q.q.q.q.q.q.q.q.M.N.O.P.Q.R.S.T.U.y.V. ", |
2621 | -+" * W.X.Y.Z.`. +.+++@+q.#+$+%+&+*+=+-+q.q.;+>+,+'+)+)+!+~+{+]+ ", |
2622 | -+" ^+_ /+(+_+:+<+[+}+|+q.1+2+3+4+5+6+7+q.q.8+9+0+a+b+c+c+d+d+e+ ", |
2623 | -+" f+g+h+i+j+k+l+m+n+o+q.1+p+q+r+s+t+u+q.q.v+w+x+y+z+A+B+C+C+D+ ", |
2624 | -+" ) E+F+G+H+I+J+K+L+M+q.N+r+O+P+Q+R+S+q.q.T+U+V+W+X+Y+Z+`+`+ @ ", |
2625 | -+" .@+@@@#@$@%@&@*@=@-@q.;@9+Q+>@,@'@)@q.q.!@~@V+{@{@]@^@/@(@_@ ", |
2626 | -+" :@C <@[@I+}@|@1@q+2@q.;@>@3@4@5@6@7@q.q.8@9@0@a@b@c@c@d@d@e@ ", |
2627 | -+" f@g@h@i@j@k@l@m@O+n@q.;@4@X+o@p@q@r@q.q.s@t@u@u@v@w@x@x@x@y@ ", |
2628 | -+" z@A@B@C@D@E@F@G@Q+H@q.;@o@I@J@a@K@L@q.q.M@N@O@N@P@Q@R@S@S@T@ ", |
2629 | -+" :@U@V@W@X@Y@Z@`@ #.#q.;@J@a@t@+#@###q.q.$#%#&#*#=#=#=#-#-#;# ", |
2630 | -+" >#,#'#E@)#!#~#{#]#^#q./#(#_#:#<#[#}#q.q.|#1#2#2#2#3#4#5#6#7# ", |
2631 | -+" 8#9#)+)#0#a#b#c#d#e#q.q.q.q.q.q.q.q.q.q.f#g#h#h#i#j#k#l#l#m# ", |
2632 | -+" V.n#Y@0#o#p#^@d#J@q#q.q.q.q.q.q.q.q.q.q.r#s#h#t#u#v#w#x#x#y# ", |
2633 | -+" z#A#B#p#p#C#5@J@K@D#q.E#F#G#H#I#J#K#q.q.L#M#N#q.O#P#Q#R#S#T# ", |
2634 | -+" U#V#W#C#X#Y#J@Z#`# $q..$+$@$#$$$M#%$q.q.&$*$=$-$;$>$,$'$'$)$ ", |
2635 | -+" !$~${$]$^$/$($_$:$<$q..$[$$$M#}$|$1$q.q.2$3$3$4$5$6$7$8$9$0$ ", |
2636 | -+" a$b$c$d$e$f$Q@g$h$i$q.j$$$k$|$*$l$m$q.q.n$o$o$p$q$r$s$t$t$u$ ", |
2637 | -+" @v$w$x$y$z$A$B$C$D$q.j$}$*$E$F$F$G$q.q.H$I$J$-$K$L$M$N$N$O$ ", |
2638 | -+" P$Q$R$S$T$U$V$W$X$Y$q.Z$`$E$F$o$o$ %q.q..%+%@%-$#%$%%%N$N$&% ", |
2639 | -+" *%=%-%;%>%,%g$'%)%!%~%{%]%^%/%(%_%.%:%:%<%[%}%|%v#1%2%N$3%O$ ", |
2640 | -+" 4%Q$d$5%6%7%8%6#9%x#0%a%b%c%d%e%f%g%h%h%i%i%i%i%i%j%j%k%l%m% ", |
2641 | -+" n%o%;%p%q%r%s%t%u%v%w%x%y%z%N$c%A%B%k%j%j%C%C%C%C%D%D%D%E%F% ", |
2642 | -+" G%H%I%J%K%L%M%N%O%P%Q%R%S%B%B%T%U%D%C%C%C%C%C%C%D%D%E%V% ", |
2643 | -+" W%X%Y%Z%`% &.&+&@&#&$&%&%&&&*&*&=&=&=&=&=&=&=&=&-&;& ", |
2644 | -+" "}; |
2645 | |
2646 | === modified file 'debian/patches/series' |
2647 | --- debian/patches/series 2010-02-12 19:25:26 +0000 |
2648 | +++ debian/patches/series 2010-04-11 15:27:18 +0000 |
2649 | @@ -1,11 +1,2 @@ |
2650 | -launcher.patch |
2651 | -desktop-icon.patch |
2652 | -logo.patch |
2653 | -about-into-themedir.patch |
2654 | -update-regex-library.patch |
2655 | -linux.Platform.diff |
2656 | -avrdude-paths.patch |
2657 | -fix-locale.patch |
2658 | -fix-openfiledialog.patch |
2659 | -fix-savefiledialog.patch |
2660 | -adopt-avrdude-arduino-programmer-type.patch |
2661 | +wrapper_for_deb.patch |
2662 | +convert_to_debian_oro.patch |
2663 | |
2664 | === removed file 'debian/patches/update-regex-library.patch' |
2665 | --- debian/patches/update-regex-library.patch 2010-02-12 19:25:26 +0000 |
2666 | +++ debian/patches/update-regex-library.patch 1970-01-01 00:00:00 +0000 |
2667 | @@ -1,806 +0,0 @@ |
2668 | ---- 0018/app/src/processing/app/preproc/PdePreprocessor.java 2010-02-04 12:22:52.000000000 +0100 |
2669 | -+++ ubuntu-0018/src/processing/app/preproc/PdePreprocessor.java 2010-02-14 12:15:55.000000000 +0100 |
2670 | -@@ -1,8 +1,7 @@ |
2671 | --/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ |
2672 | -- |
2673 | - /* |
2674 | -- PdePreprocessor - wrapper for default ANTLR-generated parser |
2675 | -- Part of the Wiring project - http://wiring.org.co |
2676 | -+ PdePreprocessor - Generate C++ code from Arduino Sketches |
2677 | -+ |
2678 | -+ Copyright (c) 2010 Eberhard Fahle <e.fahle@wayoda.org> |
2679 | - |
2680 | - Copyright (c) 2004-05 Hernando Barragan |
2681 | - |
2682 | -@@ -35,317 +34,443 @@ |
2683 | - import java.io.*; |
2684 | - import java.util.*; |
2685 | - |
2686 | --import com.oroinc.text.regex.*; |
2687 | -- |
2688 | -+import java.util.regex.*; |
2689 | - |
2690 | - /** |
2691 | -- * Class that orchestrates preprocessing p5 syntax into straight Java. |
2692 | -+ * Class that generates valid C++ code from an Arduino Sketch file. |
2693 | -+ * This is rewrite of the original code imported from wiring/processing |
2694 | -+ * that is not using the oro.jar any more. |
2695 | - */ |
2696 | - public class PdePreprocessor { |
2697 | -- // stores number of built user-defined function prototypes |
2698 | -- public int prototypeCount = 0; |
2699 | -- |
2700 | -- // stores number of included library headers written |
2701 | -- // we always write one header: WProgram.h |
2702 | -- public int headerCount = 1; |
2703 | -- |
2704 | -- List prototypes; |
2705 | -- |
2706 | -- |
2707 | -- |
2708 | -- |
2709 | -- String[] defaultImports; |
2710 | -- |
2711 | -- // these ones have the .* at the end, since a class name might be at the end |
2712 | -- // instead of .* which would make trouble other classes using this can lop |
2713 | -- // off the . and anything after it to produce a package name consistently. |
2714 | -- //public String extraImports[]; |
2715 | -- ArrayList<String> programImports; |
2716 | -- |
2717 | -- // imports just from the code folder, treated differently |
2718 | -- // than the others, since the imports are auto-generated. |
2719 | -- ArrayList<String> codeFolderImports; |
2720 | -- |
2721 | -- String indent; |
2722 | -- |
2723 | -- PrintStream stream; |
2724 | -- String program; |
2725 | -- String buildPath; |
2726 | -- String name; |
2727 | -- |
2728 | -- |
2729 | -- /** |
2730 | -- * Setup a new preprocessor. |
2731 | -- */ |
2732 | -- public PdePreprocessor() { } |
2733 | -- |
2734 | -- public int writePrefix(String program, String buildPath, |
2735 | -- String name, String codeFolderPackages[]) |
2736 | -- throws FileNotFoundException { |
2737 | -- this.buildPath = buildPath; |
2738 | -- this.name = name; |
2739 | -- |
2740 | -- int tabSize = Preferences.getInteger("editor.tabs.size"); |
2741 | -- char[] indentChars = new char[tabSize]; |
2742 | -- Arrays.fill(indentChars, ' '); |
2743 | -- indent = new String(indentChars); |
2744 | -- |
2745 | -- // if the program ends with no CR or LF an OutOfMemoryError will happen. |
2746 | -- // not gonna track down the bug now, so here's a hack for it: |
2747 | -- // http://dev.processing.org/bugs/show_bug.cgi?id=5 |
2748 | -- program += "\n"; |
2749 | -- |
2750 | -- // if the program ends with an unterminated multi-line comment, |
2751 | -- // an OutOfMemoryError or NullPointerException will happen. |
2752 | -- // again, not gonna bother tracking this down, but here's a hack. |
2753 | -- // http://dev.processing.org/bugs/show_bug.cgi?id=16 |
2754 | -- Sketch.scrubComments(program); |
2755 | -- // this returns the scrubbed version, but more important for this |
2756 | -- // function, it'll check to see if there are errors with the comments. |
2757 | -+ // stores number of built user-defined function prototypes |
2758 | -+ public int prototypeCount = 0; |
2759 | - |
2760 | -- if (Preferences.getBoolean("preproc.substitute_unicode")) { |
2761 | -- // check for non-ascii chars (these will be/must be in unicode format) |
2762 | -- char p[] = program.toCharArray(); |
2763 | -- int unicodeCount = 0; |
2764 | -- for (int i = 0; i < p.length; i++) { |
2765 | -- if (p[i] > 127) unicodeCount++; |
2766 | -- } |
2767 | -- // if non-ascii chars are in there, convert to unicode escapes |
2768 | -- if (unicodeCount != 0) { |
2769 | -- // add unicodeCount * 5.. replacing each unicode char |
2770 | -- // with six digit uXXXX sequence (xxxx is in hex) |
2771 | -- // (except for nbsp chars which will be a replaced with a space) |
2772 | -- int index = 0; |
2773 | -- char p2[] = new char[p.length + unicodeCount*5]; |
2774 | -- for (int i = 0; i < p.length; i++) { |
2775 | -- if (p[i] < 128) { |
2776 | -- p2[index++] = p[i]; |
2777 | -+ // stores number of included library headers written |
2778 | -+ // we always write one header: WProgram.h |
2779 | -+ public int headerCount = 1; |
2780 | -+ //the prototypes tha are generated by the preprocessor |
2781 | -+ ArrayList<String> prototypes; |
2782 | - |
2783 | -- } else if (p[i] == 160) { // unicode for non-breaking space |
2784 | -- p2[index++] = ' '; |
2785 | -+ // these ones have the .* at the end, since a class name might be at the end |
2786 | -+ // instead of .* which would make trouble other classes using this can lop |
2787 | -+ // off the . and anything after it to produce a package name consistently. |
2788 | -+ //public String extraImports[]; |
2789 | -+ ArrayList<String> programImports; |
2790 | - |
2791 | -- } else { |
2792 | -- int c = p[i]; |
2793 | -- p2[index++] = '\\'; |
2794 | -- p2[index++] = 'u'; |
2795 | -- char str[] = Integer.toHexString(c).toCharArray(); |
2796 | -- // add leading zeros, so that the length is 4 |
2797 | -- //for (int i = 0; i < 4 - str.length; i++) p2[index++] = '0'; |
2798 | -- for (int m = 0; m < 4 - str.length; m++) p2[index++] = '0'; |
2799 | -- System.arraycopy(str, 0, p2, index, str.length); |
2800 | -- index += str.length; |
2801 | -- } |
2802 | -- } |
2803 | -- program = new String(p2, 0, index); |
2804 | -- } |
2805 | -- } |
2806 | -+ PrintStream stream; |
2807 | -+ String program; |
2808 | -+ String buildPath; |
2809 | -+ String name; |
2810 | - |
2811 | -- // These may change in-between (if the prefs panel adds this option) |
2812 | -- // so grab them here on construction. |
2813 | -- String prefsLine = Preferences.get("preproc.imports"); |
2814 | -- defaultImports = PApplet.splitTokens(prefsLine, ", "); |
2815 | - |
2816 | -- //String importRegexp = "(?:^|\\s|;)(import\\s+)(\\S+)(\\s*;)"; |
2817 | -- String importRegexp = "^\\s*#include\\s+[<\"](\\S+)[\">]"; |
2818 | -- programImports = new ArrayList<String>(); |
2819 | -+ /** |
2820 | -+ * Setup a new preprocessor. |
2821 | -+ */ |
2822 | -+ public PdePreprocessor() { } |
2823 | - |
2824 | -- String[][] pieces = PApplet.matchAll(program, importRegexp); |
2825 | -+ /** |
2826 | -+ * Writes out the head of the c++ code generated for a sketch. |
2827 | -+ * Called from processing.app.Sketch. |
2828 | -+ * @param program the concatenated code from all tabs containing pde-files |
2829 | -+ * @param buildPath the path into which the processed pde-code is to be written |
2830 | -+ * @param name the name of the sketch |
2831 | -+ * @param codeFolderPackages unused param (leftover from processing) |
2832 | -+ */ |
2833 | -+ public int writePrefix(String program, String buildPath, |
2834 | -+ String name, String codeFolderPackages[]) |
2835 | -+ throws FileNotFoundException { |
2836 | -+ this.buildPath = buildPath; |
2837 | -+ this.name = name; |
2838 | - |
2839 | -- if (pieces != null) |
2840 | -- for (int i = 0; i < pieces.length; i++) |
2841 | -- programImports.add(pieces[i][1]); // the package name |
2842 | -+ // if the program ends with no CR or LF an OutOfMemoryError will happen. |
2843 | -+ // not gonna track down the bug now, so here's a hack for it: |
2844 | -+ // http://dev.processing.org/bugs/show_bug.cgi?id=5 |
2845 | -+ program += "\n"; |
2846 | - |
2847 | -- codeFolderImports = new ArrayList<String>(); |
2848 | --// if (codeFolderPackages != null) { |
2849 | --// for (String item : codeFolderPackages) { |
2850 | --// codeFolderImports.add(item + ".*"); |
2851 | --// } |
2852 | --// } |
2853 | -+ // if the program ends with an unterminated multi-line comment, |
2854 | -+ // an OutOfMemoryError or NullPointerException will happen. |
2855 | -+ // again, not gonna bother tracking this down, but here's a hack. |
2856 | -+ // http://dev.processing.org/bugs/show_bug.cgi?id=16 |
2857 | -+ /* |
2858 | -+ FIXME : The major fix for this bug is to move this method |
2859 | -+ from the Sketch class into this one here, since PdePreprocessor |
2860 | -+ is the only user of the method. |
2861 | -+ And while we are at it, we can fix the bug mentioned here as well |
2862 | -+ */ |
2863 | -+ /* |
2864 | -+ This will not actually scrub the comments from the program |
2865 | -+ code as you might expect, it will simply check if the comments |
2866 | -+ are syntactically intakt. If not scrubComments will fire an |
2867 | -+ IllegalArgumentException which is propagated up to the top level. |
2868 | -+ */ |
2869 | -+ scrubComments(program); |
2870 | -+ if (Preferences.getBoolean("preproc.substitute_unicode")) { |
2871 | -+ // check for non-ascii chars (these will be/must be in unicode format) |
2872 | -+ program=replaceUnicode(program); |
2873 | -+ } |
2874 | -+ programImports=getIncludes(program); |
2875 | - |
2876 | -- prototypes = new ArrayList(); |
2877 | -- |
2878 | -- try { |
2879 | -- prototypes = prototypes(program); |
2880 | -- } catch (MalformedPatternException e) { |
2881 | -- System.out.println("Internal error while pre-processing; " + |
2882 | -- "not generating function prototypes.\n\n" + e); |
2883 | -- } |
2884 | -- |
2885 | -- // store # of prototypes so that line number reporting can be adjusted |
2886 | -- prototypeCount = prototypes.size(); |
2887 | -+ try { |
2888 | -+ prototypes = prototypes(program); |
2889 | -+ } catch (PatternSyntaxException e) { |
2890 | -+ System.out.println("Internal error while pre-processing; " + |
2891 | -+ "not generating function prototypes.\n\n" + e); |
2892 | -+ } |
2893 | -+ // store # of prototypes so that line number reporting can be adjusted |
2894 | -+ prototypeCount = prototypes.size(); |
2895 | - |
2896 | -- // do this after the program gets re-combobulated |
2897 | -- this.program = program; |
2898 | -- |
2899 | -- // output the code |
2900 | -- File streamFile = new File(buildPath, name + ".cpp"); |
2901 | -- stream = new PrintStream(new FileOutputStream(streamFile)); |
2902 | -+ // do this after the program gets re-combobulated |
2903 | -+ this.program = program; |
2904 | - |
2905 | -- return headerCount + prototypeCount; |
2906 | -- } |
2907 | -+ // output the code |
2908 | -+ File streamFile = new File(buildPath, name + ".cpp"); |
2909 | -+ stream = new PrintStream(new FileOutputStream(streamFile)); |
2910 | -+ return headerCount + prototypeCount; |
2911 | -+ } |
2912 | - |
2913 | -- /** |
2914 | -- * preprocesses a pde file and write out a java file |
2915 | -- * @return the classname of the exported Java |
2916 | -- */ |
2917 | -- //public String write(String program, String buildPath, String name, |
2918 | -- // String extraImports[]) throws java.lang.Exception { |
2919 | -- public String write() throws java.lang.Exception { |
2920 | -- writeProgram(stream, program, prototypes); |
2921 | -- writeFooter(stream); |
2922 | -- stream.close(); |
2923 | -+ /** |
2924 | -+ * Write the preprocessed pde file to disk. |
2925 | -+ * Somewhat stupid to do it that way : |
2926 | -+ * Open the printstream in preprocess and colse it in here?? |
2927 | -+ * But we want to keep the original signatures for the methods, |
2928 | -+ * so what the hack... |
2929 | -+ * @return the classname of the exported sketch |
2930 | -+ */ |
2931 | -+ public String write() throws java.lang.Exception { |
2932 | -+ writeProgram(stream, program, prototypes); |
2933 | -+ writeFooter(stream); |
2934 | -+ stream.close(); |
2935 | - |
2936 | -- return name; |
2937 | -- } |
2938 | -+ return name; |
2939 | -+ } |
2940 | - |
2941 | -- // Write the pde program to the cpp file |
2942 | -- protected void writeProgram(PrintStream out, String program, List prototypes) { |
2943 | -- int prototypeInsertionPoint = firstStatement(program); |
2944 | -- |
2945 | -- out.print(program.substring(0, prototypeInsertionPoint)); |
2946 | -- out.print("#include \"WProgram.h\"\n"); |
2947 | -+ // Write the pde program to the cpp file |
2948 | -+ protected void writeProgram(PrintStream out, String program, List prototypes) { |
2949 | -+ int prototypeInsertionPoint=getPrototypeLocation(program); |
2950 | -+ out.print(program.substring(0, prototypeInsertionPoint)); |
2951 | -+ out.print("#include \"WProgram.h\"\n"); |
2952 | - |
2953 | -- // print user defined prototypes |
2954 | -- for (int i = 0; i < prototypes.size(); i++) { |
2955 | -- out.print(prototypes.get(i) + "\n"); |
2956 | -+ // print user defined prototypes |
2957 | -+ for (int i = 0; i < prototypes.size(); i++) { |
2958 | -+ out.print(prototypes.get(i) + "\n"); |
2959 | -+ } |
2960 | -+ out.print(program.substring(prototypeInsertionPoint)); |
2961 | - } |
2962 | -- |
2963 | -- out.print(program.substring(prototypeInsertionPoint)); |
2964 | -- } |
2965 | -- |
2966 | -- |
2967 | -- /** |
2968 | -- * Write any necessary closing text. |
2969 | -- * |
2970 | -- * @param out PrintStream to write it to. |
2971 | -- */ |
2972 | -- protected void writeFooter(PrintStream out) throws java.lang.Exception {} |
2973 | -- |
2974 | -- |
2975 | -- public ArrayList<String> getExtraImports() { |
2976 | -- return programImports; |
2977 | -- } |
2978 | - |
2979 | - |
2980 | -+ /** |
2981 | -+ * Write any necessary closing text. |
2982 | -+ * @param out PrintStream to write it to. |
2983 | -+ */ |
2984 | -+ protected void writeFooter(PrintStream out) throws java.lang.Exception {} |
2985 | - |
2986 | - |
2987 | -+ public ArrayList<String> getExtraImports() { |
2988 | -+ return programImports; |
2989 | -+ } |
2990 | - |
2991 | -- /** |
2992 | -- * Returns the index of the first character that's not whitespace, a comment |
2993 | -- * or a pre-processor directive. |
2994 | -- */ |
2995 | -- public int firstStatement(String in) { |
2996 | -- PatternMatcherInput input = new PatternMatcherInput(in); |
2997 | -- PatternCompiler compiler = new Perl5Compiler(); |
2998 | -- PatternMatcher matcher = new Perl5Matcher(); |
2999 | -- Pattern pattern = null; |
3000 | -+ /** |
3001 | -+ * Returns the index of the first character that is not a whitespace char |
3002 | -+ * or a pre-processor directive. |
3003 | -+ * @param in the String to be processed |
3004 | -+ * @return int the postion where the prototypes need to be filled in |
3005 | -+ */ |
3006 | -+ private int getPrototypeLocation(String in) { |
3007 | -+ Pattern pattern = null; |
3008 | -+ Matcher matcher =null; |
3009 | - |
3010 | -- try { |
3011 | -- pattern = compiler.compile( |
3012 | -- // XXX: doesn't properly handle special single-quoted characters |
3013 | -- // whitespace |
3014 | -- "\\s+" + "|" + |
3015 | -- // multi-line comment |
3016 | -- "(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)" + "|" + |
3017 | -- // single-line comment |
3018 | -- "(//.*?$)" + "|" + |
3019 | -- // pre-processor directive |
3020 | -- "(#(?:\\\\\\n|.)*)", |
3021 | -- Perl5Compiler.MULTILINE_MASK); |
3022 | -- } catch (MalformedPatternException e) { |
3023 | -- throw new RuntimeException("Internal error in firstStatement()", e); |
3024 | -- } |
3025 | -+ try { |
3026 | -+ /* Define a pattern that returns the index of the the first character that |
3027 | -+ is not |
3028 | -+ - Whitespace |
3029 | -+ - A preprocessor directive (i.e. a line starting with #) |
3030 | -+ */ |
3031 | -+ String whiteSpacePattern="(\\G\\s+)"; |
3032 | -+ String preProcessorDirective="(\\G#(?:\\\\\\n|.)*)"; |
3033 | -+ String patternString=whiteSpacePattern+"|"+preProcessorDirective; |
3034 | -+ pattern=Pattern.compile(patternString,Pattern.MULTILINE); |
3035 | - |
3036 | -- int i = 0; |
3037 | -- while (matcher.matchesPrefix(input, pattern)) { |
3038 | -- i = matcher.getMatch().endOffset(0); |
3039 | -- input.setCurrentOffset(i); |
3040 | -+ } catch (PatternSyntaxException pse) { |
3041 | -+ throw new RuntimeException("Internal error in firstStatement()", pse); |
3042 | -+ } |
3043 | -+ //create a matcher for our input |
3044 | -+ matcher=pattern.matcher(in); |
3045 | -+ int position=0; |
3046 | -+ while(matcher.find()) { |
3047 | -+ //rest of input started with a match |
3048 | -+ //postion is now behind the last char matched so far |
3049 | -+ position=matcher.end(); |
3050 | -+ } |
3051 | -+ return position; |
3052 | - } |
3053 | -- |
3054 | -- return i; |
3055 | -- } |
3056 | - |
3057 | -- /** |
3058 | -- * Strips comments, pre-processor directives, single- and double-quoted |
3059 | -- * strings from a string. |
3060 | -- * @param in the String to strip |
3061 | -- * @return the stripped String |
3062 | -- */ |
3063 | -- public String strip(String in) throws MalformedPatternException { |
3064 | -- PatternCompiler compiler = new Perl5Compiler(); |
3065 | -- PatternMatcher matcher = new Perl5Matcher(); |
3066 | -- Pattern pattern = compiler.compile( |
3067 | -- // XXX: doesn't properly handle special single-quoted characters |
3068 | -- // single-quoted character |
3069 | -- "('.')" + "|" + |
3070 | -- // double-quoted string |
3071 | -- "(\"(?:[^\"\\\\]|\\\\.)*\")" + "|" + |
3072 | -- // multi-line comment |
3073 | -- "(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)" + "|" + |
3074 | -- // single-line comment |
3075 | -- "(//.*?$)" + "|" + |
3076 | -- // pre-processor directive |
3077 | -- "(^\\s*#.*?$)", |
3078 | -- Perl5Compiler.MULTILINE_MASK); |
3079 | -- |
3080 | -- while (matcher.contains(in, pattern)) { |
3081 | -- MatchResult result = matcher.getMatch(); |
3082 | -- // XXX: should preserve newlines in the result so that line numbers of |
3083 | -- // the stripped string correspond to those in the original source. |
3084 | -- in = in.substring(0, result.beginOffset(0)) + " " + in.substring(result.endOffset(0)); |
3085 | -+ /** |
3086 | -+ * Strips pre-processor directives, single- and double-quoted |
3087 | -+ * strings from static strings and comments from the input. |
3088 | -+ * @param in the String to be processed |
3089 | -+ * @return the stripped String |
3090 | -+ */ |
3091 | -+ public String strip(String in) { |
3092 | -+ //define the parts to be stripped |
3093 | -+ String quotedChar="('.')"; |
3094 | -+ String quotedString="(\"(?:[^\"\\\\]|\\\\.)*\")"; |
3095 | -+ String emptyComments="(//\\s*?$)|(/\\*\\s*?\\*/)"; |
3096 | -+ String preProcessorDirective="(^\\s*#.*?$)"; |
3097 | -+ String patternString=quotedChar+"|"+ |
3098 | -+ quotedString+"|"+ |
3099 | -+ emptyComments+"|"+ |
3100 | -+ preProcessorDirective; |
3101 | -+ Pattern pattern=Pattern.compile(patternString,Pattern.MULTILINE); |
3102 | -+ //Remove all content from the comments leaving the empty tags |
3103 | -+ Matcher matcher=pattern.matcher(scrubComments(in)); |
3104 | -+ return matcher.replaceAll(" "); |
3105 | - } |
3106 | -+ |
3107 | -+ /** |
3108 | -+ * Removes the contents of all top-level curly brace pairs {}. |
3109 | -+ * @param in the String to collapse |
3110 | -+ * @return the collapsed String |
3111 | -+ */ |
3112 | -+ private String collapseBraces(String in) { |
3113 | -+ StringBuffer buffer = new StringBuffer(); |
3114 | -+ int nesting = 0; |
3115 | -+ int start = 0; |
3116 | - |
3117 | -- return in; |
3118 | -- } |
3119 | -- |
3120 | -- /** |
3121 | -- * Removes the contents of all top-level curly brace pairs {}. |
3122 | -- * @param in the String to collapse |
3123 | -- * @return the collapsed String |
3124 | -- */ |
3125 | -- private String collapseBraces(String in) { |
3126 | -- StringBuffer buffer = new StringBuffer(); |
3127 | -- int nesting = 0; |
3128 | -- int start = 0; |
3129 | -+ // XXX: need to keep newlines inside braces so we can determine the line |
3130 | -+ // number of a prototype |
3131 | -+ for (int i = 0; i < in.length(); i++) { |
3132 | -+ if (in.charAt(i) == '{') { |
3133 | -+ if (nesting == 0) { |
3134 | -+ buffer.append(in.substring(start, i + 1)); // include the '{' |
3135 | -+ } |
3136 | -+ nesting++; |
3137 | -+ } |
3138 | -+ if (in.charAt(i) == '}') { |
3139 | -+ nesting--; |
3140 | -+ if (nesting == 0) { |
3141 | -+ start = i; // include the '}' |
3142 | -+ } |
3143 | -+ } |
3144 | -+ } |
3145 | -+ buffer.append(in.substring(start)); |
3146 | - |
3147 | -- // XXX: need to keep newlines inside braces so we can determine the line |
3148 | -- // number of a prototype |
3149 | -- for (int i = 0; i < in.length(); i++) { |
3150 | -- if (in.charAt(i) == '{') { |
3151 | -- if (nesting == 0) { |
3152 | -- buffer.append(in.substring(start, i + 1)); // include the '{' |
3153 | -- } |
3154 | -- nesting++; |
3155 | -- } |
3156 | -- if (in.charAt(i) == '}') { |
3157 | -- nesting--; |
3158 | -- if (nesting == 0) { |
3159 | -- start = i; // include the '}' |
3160 | -- } |
3161 | -- } |
3162 | -+ return buffer.toString(); |
3163 | - } |
3164 | -+ |
3165 | -+ /** |
3166 | -+ * Searches for function definitions in the pde-code and |
3167 | -+ * generates a prototype for it. |
3168 | -+ * @param in the code to be scanned |
3169 | -+ * @return ArrayList<String> a list of the prototypes for the functions. |
3170 | -+ */ |
3171 | -+ public ArrayList<String> prototypes(String in) throws PatternSyntaxException { |
3172 | -+ in = collapseBraces(strip(in)); |
3173 | - |
3174 | -- buffer.append(in.substring(start)); |
3175 | -+ // XXX: doesn't handle ... varargs |
3176 | -+ // XXX: doesn't handle function pointers |
3177 | -+ Pattern pattern = |
3178 | -+ Pattern.compile("[\\w\\[\\]\\*]+"+ |
3179 | -+ "\\s+"+ |
3180 | -+ "[&\\[\\]\\*\\w\\s]+"+ |
3181 | -+ "\\([&,\\[\\]\\*\\w\\s]*\\)"+ |
3182 | -+ "(?=\\s*\\{)"); |
3183 | -+ ArrayList<String>matches = new ArrayList<String>(); |
3184 | -+ Matcher matcher=pattern.matcher(in); |
3185 | -+ while(matcher.find()) { |
3186 | -+ matches.add(matcher.group(0)+";"); |
3187 | -+ } |
3188 | -+ return matches; |
3189 | -+ } |
3190 | -+ |
3191 | -+ /** |
3192 | -+ * Replaces all (character-)content of code comments in a source |
3193 | -+ * with space chars. This method serves two purposes:</br> |
3194 | -+ * It checks wether all multiline-comments are syntactically |
3195 | -+ * correct. (Opening and closing tags match)</br> |
3196 | -+ * It removes all the content so the preprocessor can use less |
3197 | -+ * complex regex expressions when generating C++ code. |
3198 | -+ * This method used to be a public static member of class Sketch, but |
3199 | -+ * since only the PdePreprocessor uses this method this |
3200 | -+ * really doesn't make sense. I made this a private function in here. |
3201 | -+ * @param source the String for which the comments |
3202 | -+ * are to be replaced |
3203 | -+ * @return String the code but with the all |
3204 | -+ * code coments replaced by space chars |
3205 | -+ * @throws IllegalArgumentException if there are |
3206 | -+ * underterminated commments in the String. |
3207 | -+ */ |
3208 | -+ private String scrubComments(String source) |
3209 | -+ throws IllegalArgumentException { |
3210 | -+ StringBuilder sb=new StringBuilder(source.length()); |
3211 | -+ /* |
3212 | -+ we will replace a few chars with unicode code points |
3213 | -+ from the private use section since it makes |
3214 | -+ parsing the source sooo much easier |
3215 | -+ */ |
3216 | -+ String escapedQuote="\uE000"; |
3217 | -+ String escapedSCStart="\uE001"; |
3218 | -+ String escapedMCStart="\uE002"; |
3219 | -+ String escapedMCEnd="\uE003"; |
3220 | -+ String escapedDoubleBackSlash="\uE004"; |
3221 | -+ //replace all double backslashs '\\' |
3222 | -+ source=source.replaceAll("\\\\\\\\",escapedDoubleBackSlash); |
3223 | -+ //replace all escaped double-quotes '\"' |
3224 | -+ source=source.replaceAll("\\\\\"",escapedQuote); |
3225 | -+ //replace single line comment start '//' |
3226 | -+ source=source.replaceAll("//",escapedSCStart); |
3227 | -+ //replace multiline line comment start '/*' |
3228 | -+ source=source.replaceAll("/\\*",escapedMCStart); |
3229 | -+ //replace multiline line comment end '*/' |
3230 | -+ source=source.replaceAll("\\*/",escapedMCEnd); |
3231 | - |
3232 | -- return buffer.toString(); |
3233 | -- } |
3234 | -+ //true when we are inside a static String definition |
3235 | -+ boolean quoted=false; |
3236 | -+ //true when inside a singleline comment |
3237 | -+ boolean sc=false; |
3238 | -+ //true when inside a multiline comment |
3239 | -+ boolean mc=false; |
3240 | -+ int len=source.length(); |
3241 | -+ int srcIndex=0; |
3242 | -+ char c; |
3243 | -+ while(srcIndex<len) { |
3244 | -+ c=source.charAt(srcIndex); |
3245 | -+ if(sc) { |
3246 | -+ //we are in a single line comment |
3247 | -+ if(c!='\n') { |
3248 | -+ //its not the end of the comment yet |
3249 | -+ sb.append(' '); |
3250 | -+ } |
3251 | -+ else { |
3252 | -+ //we reached the end of the comment |
3253 | -+ sc=false; |
3254 | -+ sb.append('\n'); |
3255 | -+ } |
3256 | -+ } |
3257 | -+ else if(mc) { |
3258 | -+ //we are inside a multiline comment ... |
3259 | -+ if(c=='\uE003') { |
3260 | -+ //... and found the end of it |
3261 | -+ sb.append("*/"); |
3262 | -+ mc=false; |
3263 | -+ } |
3264 | -+ else if(c!='\n') { |
3265 | -+ //just a char in a comment |
3266 | -+ sb.append(' '); |
3267 | -+ } |
3268 | -+ else { |
3269 | -+ //we have to keep the newlines |
3270 | -+ sb.append("\n"); |
3271 | -+ } |
3272 | -+ } |
3273 | -+ else if(quoted) { |
3274 | -+ if(c=='"') { |
3275 | -+ //This is the end of the quote |
3276 | -+ quoted=false; |
3277 | -+ sb.append("\""); |
3278 | -+ } |
3279 | -+ else { |
3280 | -+ /* We are in a quote and dont care what we find. |
3281 | -+ It could be a static string with a comment |
3282 | -+ in it them. |
3283 | -+ */ |
3284 | -+ sb.append(c); |
3285 | -+ } |
3286 | -+ } |
3287 | -+ else if(c=='"') { |
3288 | -+ //This is the beginning of a quote |
3289 | -+ quoted=true; |
3290 | -+ sb.append("\""); |
3291 | -+ } |
3292 | -+ else if(c=='\uE001') { |
3293 | -+ //found the start of a single line comment |
3294 | -+ sc=true; |
3295 | -+ sb.append("//"); |
3296 | -+ } |
3297 | -+ else if(c=='\uE002') { |
3298 | -+ //found the start of multiline comment |
3299 | -+ mc=true; |
3300 | -+ sb.append("/*"); |
3301 | -+ } |
3302 | -+ else if(c=='\uE003' && !mc) { |
3303 | -+ /* |
3304 | -+ We found the end of multiline comment |
3305 | -+ but never saw the start (/*) for it |
3306 | -+ */ |
3307 | -+ throw new RuntimeException("Found end tag \"*/\" for multi-line comment"+ |
3308 | -+ " without start tag \"/*\""); |
3309 | -+ } |
3310 | -+ else { |
3311 | -+ //this just a character on its own |
3312 | -+ sb.append(c); |
3313 | -+ } |
3314 | -+ srcIndex++; |
3315 | -+ } |
3316 | -+ if(mc) { |
3317 | -+ throw new RuntimeException("File ends before multi-line comment" |
3318 | -+ +" is terminated with end tag \"*/\" "); |
3319 | -+ } |
3320 | -+ String retval=sb.toString(); |
3321 | -+ /* |
3322 | -+ Undo the replacement of the double backslashs |
3323 | -+ and the escaped double quotes |
3324 | -+ */ |
3325 | -+ // System.out.println(retval); |
3326 | -+ retval=retval.replaceAll(escapedQuote,"\\\\\""); |
3327 | -+ retval=retval.replaceAll(escapedDoubleBackSlash,"\\\\\\\\"); |
3328 | -+ return retval; |
3329 | -+ } |
3330 | -+ |
3331 | -+ /** |
3332 | -+ * Searches for non ascii-chars and replaces |
3333 | -+ * them with unicode constants. |
3334 | -+ * @param source the contents of the pde source |
3335 | -+ * @return String the content with non-ascii chars turned into unicode |
3336 | -+ */ |
3337 | -+ private String replaceUnicode(String source) { |
3338 | -+ StringBuilder sb=new StringBuilder(); |
3339 | -+ int len=source.length(); |
3340 | -+ int srcIndex=0; |
3341 | -+ char c; |
3342 | -+ while(srcIndex<len) { |
3343 | -+ c=source.charAt(srcIndex); |
3344 | -+ if(c>127) { |
3345 | -+ //we have some unicode here |
3346 | -+ StringBuilder us=new StringBuilder("\\u0000"); |
3347 | -+ String hex=Integer.toString((int)c,16); |
3348 | -+ for(int i=hex.length()-1;i>=0;i--) { |
3349 | -+ us.setCharAt(us.length()-1-i,hex.charAt(i)); |
3350 | -+ } |
3351 | -+ sb.append(us); |
3352 | -+ } |
3353 | -+ else { |
3354 | -+ sb.append(c); |
3355 | -+ } |
3356 | -+ srcIndex++; |
3357 | -+ } |
3358 | -+ return sb.toString(); |
3359 | -+ } |
3360 | - |
3361 | -- public List prototypes(String in) throws MalformedPatternException { |
3362 | -- in = collapseBraces(strip(in)); |
3363 | -+ /** |
3364 | -+ * Find all the lines in a source that are c-style includes |
3365 | -+ * @param source the String to be scanned for include-statements |
3366 | -+ * @return ArrayList<String> an ArrayList withe the names of include-statements |
3367 | -+ */ |
3368 | -+ private ArrayList<String> getIncludes(String source) { |
3369 | -+ Pattern pattern=null; |
3370 | -+ Matcher matcher=null; |
3371 | -+ ArrayList<String> includes=new ArrayList<String>(); |
3372 | - |
3373 | -- PatternMatcherInput input = new PatternMatcherInput(in); |
3374 | -- PatternCompiler compiler = new Perl5Compiler(); |
3375 | -- PatternMatcher matcher = new Perl5Matcher(); |
3376 | -- // XXX: doesn't handle ... varargs |
3377 | -- // XXX: doesn't handle function pointers |
3378 | -- Pattern pattern = compiler.compile( |
3379 | -- "[\\w\\[\\]\\*]+\\s+[\\[\\]\\*\\w\\s]+\\([,\\[\\]\\*\\w\\s]*\\)(?=\\s*\\{)"); |
3380 | -- List matches = new ArrayList(); |
3381 | -+ String incPattern="^\\s*#include\\s+[<\"](\\S+)[\">]"; |
3382 | -+ pattern=Pattern.compile(incPattern,Pattern.MULTILINE); |
3383 | -+ matcher=pattern.matcher(source); |
3384 | - |
3385 | -- while (matcher.contains(input, pattern)) { |
3386 | -- matches.add(matcher.getMatch().group(0) + ";"); |
3387 | -- } |
3388 | - |
3389 | -- return matches; |
3390 | -- } |
3391 | -+ while(matcher.find()) { |
3392 | -+ includes.add(matcher.group(1)); |
3393 | -+ } |
3394 | -+ return includes; |
3395 | -+ } |
3396 | -+ |
3397 | -+ |
3398 | - } |
3399 | -+ |
3400 | ---- arduino-0018+dfsg/src/processing/app/Platform.java 2009-06-01 10:32:11.000000000 +0200 |
3401 | -+++ ubuntu-0018/src/processing/app/Platform.java 2010-02-08 10:10:13.000000000 +0100 |
3402 | -@@ -124,7 +124,25 @@ |
3403 | - showLauncherWarning(); |
3404 | - } |
3405 | - } |
3406 | -- |
3407 | -+ |
3408 | -+ /** |
3409 | -+ * Returns a File-object for a path to something in this distribution. |
3410 | -+ * This method used to be a member of class Base. But as more platforms |
3411 | -+ * are supported this has to be moved to the platform-specific |
3412 | -+ * classes that extend processing.app.Platform. |
3413 | -+ * This class provides is the default implementation where the |
3414 | -+ * path is resolved against the users working directory. |
3415 | -+ * @param name this can be the name of a file, directory |
3416 | -+ * or the latter part of a path |
3417 | -+ * @return File a File object for the path starting at the |
3418 | -+ * users work-dir ending with name. The method does not |
3419 | -+ * check wether the file or path exists. |
3420 | -+ */ |
3421 | -+ public File getContentFile(String name) { |
3422 | -+ String path = System.getProperty("user.dir"); |
3423 | -+ File working = new File(path); |
3424 | -+ return new File(working, name); |
3425 | -+ } |
3426 | - |
3427 | - // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
3428 | - |
3429 | ---- arduino-0018+dfsg/src/processing/app/Base.java 2009-12-26 16:42:30.000000000 +0100 |
3430 | -+++ ubuntu-0018/src/processing/app/Base.java 2010-02-08 11:28:46.000000000 +0100 |
3431 | -@@ -121,6 +121,12 @@ |
3432 | - // CLibrary clib = CLibrary.INSTANCE; |
3433 | - // clib.setenv("DYLD_LIBRARY_PATH", "/Users/fry/coconut/sketchbook/libraries/gsvideo/library", 1); |
3434 | - // System.out.println("env is now " + clib.getenv("DYLD_LIBRARY_PATH")); |
3435 | -+ |
3436 | -+ /* |
3437 | -+ The first thing we have to do is to initialze the platform-specific |
3438 | -+ classes so file lookup is delegated to platform specific code. |
3439 | -+ */ |
3440 | -+ initPlatform(); |
3441 | - |
3442 | - try { |
3443 | - File versionFile = getContentFile("lib/version.txt"); |
3444 | -@@ -156,7 +162,6 @@ |
3445 | - } |
3446 | - */ |
3447 | - |
3448 | -- initPlatform(); |
3449 | - |
3450 | - // // Set the look and feel before opening the window |
3451 | - // try { |
3452 | -@@ -1873,6 +1878,10 @@ |
3453 | - } |
3454 | - */ |
3455 | - |
3456 | -+ /** |
3457 | -+ * This method should be removed and replaced |
3458 | -+ * by calling Platform.getContentFile(String) instead. |
3459 | -+ */ |
3460 | - static public File getContentFile(String name) { |
3461 | - String path = System.getProperty("user.dir"); |
3462 | - |
3463 | -@@ -1885,6 +1894,10 @@ |
3464 | - path = javaroot; |
3465 | - } |
3466 | - } |
3467 | -+ else if(Base.isLinux()) { |
3468 | -+ //on Linux the path depends on the distribution style |
3469 | -+ return platform.getContentFile(name); |
3470 | -+ } |
3471 | - File working = new File(path); |
3472 | - return new File(working, name); |
3473 | - } |
3474 | |
3475 | === added file 'debian/patches/wrapper_for_deb.patch' |
3476 | --- debian/patches/wrapper_for_deb.patch 1970-01-01 00:00:00 +0000 |
3477 | +++ debian/patches/wrapper_for_deb.patch 2010-04-11 15:27:18 +0000 |
3478 | @@ -0,0 +1,32 @@ |
3479 | +Description: Simple wrapper since classpath and LD library are already properly |
3480 | + assigned at build time. Must be exucted in /usr/share/arduino |
3481 | +Author: Scott Howard <showard314@gmail.com> |
3482 | +Index: arduino-0018+dfsg/arduino |
3483 | +=================================================================== |
3484 | +--- arduino-0018+dfsg.orig/arduino 2010-04-10 10:49:20.048511096 -0400 |
3485 | ++++ arduino-0018+dfsg/arduino 2010-04-10 10:49:43.908511616 -0400 |
3486 | +@@ -1,22 +1,5 @@ |
3487 | + #!/bin/sh |
3488 | + |
3489 | +-APPDIR="$(dirname -- "${0}")" |
3490 | ++cd /usr/share/arduino |
3491 | + |
3492 | +-cd $APPDIR |
3493 | +- |
3494 | +-for LIB in \ |
3495 | +- java/lib/rt.jar \ |
3496 | +- java/lib/tools.jar \ |
3497 | +- lib/*.jar \ |
3498 | +- ; |
3499 | +-do |
3500 | +- CLASSPATH="${CLASSPATH}:${APPDIR}/${LIB}" |
3501 | +-done |
3502 | +-export CLASSPATH |
3503 | +- |
3504 | +-LD_LIBRARY_PATH=`pwd`/lib:${LD_LIBRARY_PATH} |
3505 | +-export LD_LIBRARY_PATH |
3506 | +- |
3507 | +-export PATH="${APPDIR}/java/bin:${PATH}" |
3508 | +- |
3509 | +-java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base |
3510 | ++java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -jar /usr/share/java/arduino.jar |
3511 | |
3512 | === modified file 'debian/rules' |
3513 | --- debian/rules 2010-02-12 19:25:26 +0000 |
3514 | +++ debian/rules 2010-04-11 15:27:18 +0000 |
3515 | @@ -3,96 +3,56 @@ |
3516 | # Uncomment this to turn on verbose mode. |
3517 | # export DH_VERBOSE=1 |
3518 | |
3519 | -SVNTAG=$(shell dpkg-parsechangelog | grep Version | cut -f2 -d" " | sed 's/\([0-9].*\)+dfsg-[0-9]ubuntu[0-9]/\1/') |
3520 | +export JAVA_HOME=/usr/lib/jvm/default-java |
3521 | +export CLASSPATH=/usr/share/java/RXTXcomm.jar:/usr/lib/jvm/default-java/lib/tools.jar:/usr/lib/jvm/default-java/lib/rt.jar:/usr/share/java/oro.jar:/usr/share/java/antlr.jar:/usr/share/java/ecj.jar:/usr/share/java/jna.jar |
3522 | + |
3523 | +%: |
3524 | + dh $@ --with javahelper |
3525 | + |
3526 | +override_jh_build: |
3527 | + perl preproc.pl |
3528 | + jh_build --main=processing.app.Base arduino.jar src/processing/core/*.java src/processing/xml/*.java src/processing/app/*.java src/processing/app/debug/*.java src/processing/app/linux/*.java src/processing/app/preproc/*.java src/processing/app/syntax/*.java src/processing/app/tools/*.java |
3529 | + |
3530 | + |
3531 | +override_dh_installchangelogs: |
3532 | + dh_installchangelogs -k readme.txt |
3533 | + |
3534 | +override_dh_compress: |
3535 | + dh_compress -X.pde |
3536 | + |
3537 | + |
3538 | + |
3539 | +SVNTAG=$(shell dpkg-parsechangelog | grep Version | cut -f2 -d" " | sed 's/\([0-9].*\)+dfsg-[0-9]/\1/') |
3540 | DESTDIR=$(CURDIR)/debian/arduino-$(SVNTAG)+dfsg |
3541 | TARFILE=arduino_$(SVNTAG)+dfsg.orig.tar.gz |
3542 | |
3543 | get-orig-source: |
3544 | - svn export http://arduino.googlecode.com/svn/tags/$(SVNTAG) $(DESTDIR) |
3545 | - # Extract documentation |
3546 | - unzip -q -d $(DESTDIR) $(DESTDIR)/build/shared/reference.zip |
3547 | - # Grab useful bits |
3548 | - mv $(DESTDIR)/app/src/ $(DESTDIR) |
3549 | - mv $(DESTDIR)/core/src/processing/* $(DESTDIR)/src/processing |
3550 | - mv $(DESTDIR)/build/shared/examples $(DESTDIR) |
3551 | - cp -a $(DESTDIR)/libraries/* $(DESTDIR)/examples |
3552 | - find $(DESTDIR)/libraries -type d -iname examples | xargs -n1 rm -fr |
3553 | - find $(DESTDIR)/examples -type f -iname *.c -or -iname *.cpp -or -iname *.h | xargs -n1 rm -f |
3554 | - mv $(DESTDIR)/build/shared/lib/about.jpg $(DESTDIR)/src |
3555 | - mv $(DESTDIR)/build/shared/lib/keywords.txt $(DESTDIR)/src |
3556 | - mv $(DESTDIR)/build/shared/lib/preferences.txt $(DESTDIR)/src |
3557 | - mv $(DESTDIR)/build/shared/lib/theme/ $(DESTDIR)/src/ |
3558 | - # Remove unnecessary files |
3559 | - rm -fr $(DESTDIR)/app/ |
3560 | - rm -fr $(DESTDIR)/core/ |
3561 | - # Remove still present Java precompiled libraries |
3562 | - rm -f $(DESTDIR)/src/processing/app/tools/format/tool/*.jar |
3563 | - # Remove shipped jre.tgz, Processing stuff, Reference zip file, |
3564 | - # stuff related to differ OS from Linux and unnecessary Linux binaries |
3565 | - rm -fr $(DESTDIR)/build/ |
3566 | - rm -fr $(DESTDIR)/src/antlr |
3567 | - rm -fr $(DESTDIR)/src/processing/app/macosx |
3568 | - rm -fr $(DESTDIR)/src/processing/app/windows |
3569 | - # Remove junk |
3570 | + wget http://arduino.googlecode.com/files/arduino-$(SVNTAG).tgz |
3571 | + tar -xf arduino-$(SVNTAG).tgz |
3572 | + cp -a arduino-$(SVNTAG) $(DESTDIR) |
3573 | + rm -rf arduino-$(SVNTAG).tgz arduino-$(SVNTAG) |
3574 | + |
3575 | + svn export http://arduino.googlecode.com/svn/tags/$(SVNTAG)/app $(DESTDIR)-app/ |
3576 | + svn export http://arduino.googlecode.com/svn/tags/$(SVNTAG)/core $(DESTDIR)-core/ |
3577 | + |
3578 | + mkdir -p $(DESTDIR)/src/processing/ |
3579 | + cp -a $(DESTDIR)-app/src/processing/* $(DESTDIR)/src/processing/ |
3580 | + cp -a $(DESTDIR)-core/src/processing/* $(DESTDIR)/src/processing/ |
3581 | + mv $(DESTDIR)-core/preproc.pl $(DESTDIR) |
3582 | + #remove junk |
3583 | + find $(DESTDIR) -type f -iname *.jar -or -iname *.tgz -or -iname *.so -or -iname license.txt | xargs -n1 rm -f |
3584 | + find $(DESTDIR) -type d -empty -delete |
3585 | rm -f $(DESTDIR)/src/processing/app/preproc/.cvsignore |
3586 | rm -f $(DESTDIR)/.project |
3587 | rm -fr $(DESTDIR)/.[a-z]* |
3588 | rm -fr $(DESTDIR)/app/.[a-z]* |
3589 | - # Fix some permissions |
3590 | - find $(DESTDIR)/libraries $(DESTDIR)/hardware $(DESTDIR)/src $(DESTDIR)/examples \ |
3591 | - -type f -exec chmod -x {} \; |
3592 | - # Create tarball and remove temporary directory |
3593 | + rm -fr $(DESTDIR)/hardware/tools |
3594 | + #upstream set a bunch of files as execultable that should not be. remove the -x bit |
3595 | + find $(DESTDIR) -type f -iname *.jpg -or -iname *.java -or -iname *.pde -or -iname *.h -or -iname *.cpp -or -iname *.c -or -iname *.txt -or -iname makefile -or -iname key*.txt -or -iname pref*.txt | xargs chmod -x |
3596 | + |
3597 | tar zcf $(CURDIR)/../$(TARFILE) -C $(CURDIR)/debian arduino-$(SVNTAG)+dfsg |
3598 | - rm -fr $(DESTDIR) |
3599 | - |
3600 | - |
3601 | -build: build-stamp |
3602 | - |
3603 | -build-stamp: |
3604 | - dh_testdir |
3605 | - dh_quilt_patch |
3606 | - mkdir classes/ |
3607 | - javac -d classes -classpath classes/core.jar:/usr/share/java/RXTXcomm.jar:/usr/lib/jvm/default-java/lib/tools.jar \ |
3608 | - src/processing/core/*.java src/processing/xml/*.java \ |
3609 | - src/processing/app/*.java src/processing/app/debug/*.java src/processing/app/linux/*.java \ |
3610 | - src/processing/app/preproc/*.java src/processing/app/syntax/*.java src/processing/app/tools/*.java |
3611 | - echo "Class-path: /usr/share/java/RXTXcomm.jar" > classes/manifest |
3612 | - mkdir -p classes/resources/linux/; echo "linux.distribution=ubuntu" > classes/resources/linux/linux.properties |
3613 | - cd classes/; jar -cfme arduino.jar manifest processing.app.Base processing/app processing/core processing/xml resources/; jar -i arduino.jar |
3614 | - touch $@ |
3615 | - |
3616 | -clean: |
3617 | - dh_testdir |
3618 | - dh_testroot |
3619 | - dh_quilt_unpatch |
3620 | - rm -f arduino.png |
3621 | - rm -f build-stamp |
3622 | - rm -fr classes/ resources/ |
3623 | - dh_clean |
3624 | - |
3625 | -install: build |
3626 | - dh_testdir |
3627 | - dh_testroot |
3628 | - uudecode debian/arduino.png.uuencode |
3629 | - dh_prep |
3630 | - dh_install |
3631 | - |
3632 | -binary-arch: |
3633 | - |
3634 | -# Build architecture-independent files here. |
3635 | -binary-indep: install |
3636 | - dh_testdir |
3637 | - dh_testroot |
3638 | - dh_installchangelogs -k readme.txt |
3639 | - dh_installdocs |
3640 | - dh_installexamples examples/* |
3641 | - dh_link |
3642 | - dh_compress -X.pde |
3643 | - dh_fixperms |
3644 | - dh_installdeb |
3645 | - dh_gencontrol |
3646 | - dh_md5sums |
3647 | - dh_builddeb |
3648 | - |
3649 | -binary: binary-indep binary-arch |
3650 | + rm -fr $(DESTDIR) $(DESTDIR)-app $(DESTDIR)-core |
3651 | + |
3652 | + |
3653 | + |
3654 | PHONY: build clean binary-indep binary install get-orig-source |
3655 | |
3656 | === added directory 'debian/source' |
3657 | === added file 'debian/source/format' |
3658 | --- debian/source/format 1970-01-01 00:00:00 +0000 |
3659 | +++ debian/source/format 2010-04-11 15:27:18 +0000 |
3660 | @@ -0,0 +1,1 @@ |
3661 | +3.0 (quilt) |
3662 | |
3663 | === modified file 'debian/watch' |
3664 | --- debian/watch 2010-02-12 19:25:26 +0000 |
3665 | +++ debian/watch 2010-04-11 15:27:18 +0000 |
3666 | @@ -1,2 +1,4 @@ |
3667 | -# The Arduino project don't release source tarballs at all |
3668 | -# so the watch file is useless |
3669 | +version=3 |
3670 | +opts=dversionmangle=s/\.dfsg// \ |
3671 | +http://code.google.com/p/arduino/downloads/list \ |
3672 | +http://arduino.googlecode.com/files/arduino-(.*)\.zip |
3673 | |
3674 | === added file 'examples/Digital/toneKeyboard/pitches.h' |
3675 | --- examples/Digital/toneKeyboard/pitches.h 1970-01-01 00:00:00 +0000 |
3676 | +++ examples/Digital/toneKeyboard/pitches.h 2010-04-11 15:27:18 +0000 |
3677 | @@ -0,0 +1,95 @@ |
3678 | +/************************************************* |
3679 | + * Public Constants |
3680 | + *************************************************/ |
3681 | + |
3682 | +#define NOTE_B0 31 |
3683 | +#define NOTE_C1 33 |
3684 | +#define NOTE_CS1 35 |
3685 | +#define NOTE_D1 37 |
3686 | +#define NOTE_DS1 39 |
3687 | +#define NOTE_E1 41 |
3688 | +#define NOTE_F1 44 |
3689 | +#define NOTE_FS1 46 |
3690 | +#define NOTE_G1 49 |
3691 | +#define NOTE_GS1 52 |
3692 | +#define NOTE_A1 55 |
3693 | +#define NOTE_AS1 58 |
3694 | +#define NOTE_B1 62 |
3695 | +#define NOTE_C2 65 |
3696 | +#define NOTE_CS2 69 |
3697 | +#define NOTE_D2 73 |
3698 | +#define NOTE_DS2 78 |
3699 | +#define NOTE_E2 82 |
3700 | +#define NOTE_F2 87 |
3701 | +#define NOTE_FS2 93 |
3702 | +#define NOTE_G2 98 |
3703 | +#define NOTE_GS2 104 |
3704 | +#define NOTE_A2 110 |
3705 | +#define NOTE_AS2 117 |
3706 | +#define NOTE_B2 123 |
3707 | +#define NOTE_C3 131 |
3708 | +#define NOTE_CS3 139 |
3709 | +#define NOTE_D3 147 |
3710 | +#define NOTE_DS3 156 |
3711 | +#define NOTE_E3 165 |
3712 | +#define NOTE_F3 175 |
3713 | +#define NOTE_FS3 185 |
3714 | +#define NOTE_G3 196 |
3715 | +#define NOTE_GS3 208 |
3716 | +#define NOTE_A3 220 |
3717 | +#define NOTE_AS3 233 |
3718 | +#define NOTE_B3 247 |
3719 | +#define NOTE_C4 262 |
3720 | +#define NOTE_CS4 277 |
3721 | +#define NOTE_D4 294 |
3722 | +#define NOTE_DS4 311 |
3723 | +#define NOTE_E4 330 |
3724 | +#define NOTE_F4 349 |
3725 | +#define NOTE_FS4 370 |
3726 | +#define NOTE_G4 392 |
3727 | +#define NOTE_GS4 415 |
3728 | +#define NOTE_A4 440 |
3729 | +#define NOTE_AS4 466 |
3730 | +#define NOTE_B4 494 |
3731 | +#define NOTE_C5 523 |
3732 | +#define NOTE_CS5 554 |
3733 | +#define NOTE_D5 587 |
3734 | +#define NOTE_DS5 622 |
3735 | +#define NOTE_E5 659 |
3736 | +#define NOTE_F5 698 |
3737 | +#define NOTE_FS5 740 |
3738 | +#define NOTE_G5 784 |
3739 | +#define NOTE_GS5 831 |
3740 | +#define NOTE_A5 880 |
3741 | +#define NOTE_AS5 932 |
3742 | +#define NOTE_B5 988 |
3743 | +#define NOTE_C6 1047 |
3744 | +#define NOTE_CS6 1109 |
3745 | +#define NOTE_D6 1175 |
3746 | +#define NOTE_DS6 1245 |
3747 | +#define NOTE_E6 1319 |
3748 | +#define NOTE_F6 1397 |
3749 | +#define NOTE_FS6 1480 |
3750 | +#define NOTE_G6 1568 |
3751 | +#define NOTE_GS6 1661 |
3752 | +#define NOTE_A6 1760 |
3753 | +#define NOTE_AS6 1865 |
3754 | +#define NOTE_B6 1976 |
3755 | +#define NOTE_C7 2093 |
3756 | +#define NOTE_CS7 2217 |
3757 | +#define NOTE_D7 2349 |
3758 | +#define NOTE_DS7 2489 |
3759 | +#define NOTE_E7 2637 |
3760 | +#define NOTE_F7 2794 |
3761 | +#define NOTE_FS7 2960 |
3762 | +#define NOTE_G7 3136 |
3763 | +#define NOTE_GS7 3322 |
3764 | +#define NOTE_A7 3520 |
3765 | +#define NOTE_AS7 3729 |
3766 | +#define NOTE_B7 3951 |
3767 | +#define NOTE_C8 4186 |
3768 | +#define NOTE_CS8 4435 |
3769 | +#define NOTE_D8 4699 |
3770 | +#define NOTE_DS8 4978 |
3771 | + |
3772 | + |
3773 | |
3774 | === added file 'examples/Digital/toneMelody/pitches.h' |
3775 | --- examples/Digital/toneMelody/pitches.h 1970-01-01 00:00:00 +0000 |
3776 | +++ examples/Digital/toneMelody/pitches.h 2010-04-11 15:27:18 +0000 |
3777 | @@ -0,0 +1,95 @@ |
3778 | +/************************************************* |
3779 | + * Public Constants |
3780 | + *************************************************/ |
3781 | + |
3782 | +#define NOTE_B0 31 |
3783 | +#define NOTE_C1 33 |
3784 | +#define NOTE_CS1 35 |
3785 | +#define NOTE_D1 37 |
3786 | +#define NOTE_DS1 39 |
3787 | +#define NOTE_E1 41 |
3788 | +#define NOTE_F1 44 |
3789 | +#define NOTE_FS1 46 |
3790 | +#define NOTE_G1 49 |
3791 | +#define NOTE_GS1 52 |
3792 | +#define NOTE_A1 55 |
3793 | +#define NOTE_AS1 58 |
3794 | +#define NOTE_B1 62 |
3795 | +#define NOTE_C2 65 |
3796 | +#define NOTE_CS2 69 |
3797 | +#define NOTE_D2 73 |
3798 | +#define NOTE_DS2 78 |
3799 | +#define NOTE_E2 82 |
3800 | +#define NOTE_F2 87 |
3801 | +#define NOTE_FS2 93 |
3802 | +#define NOTE_G2 98 |
3803 | +#define NOTE_GS2 104 |
3804 | +#define NOTE_A2 110 |
3805 | +#define NOTE_AS2 117 |
3806 | +#define NOTE_B2 123 |
3807 | +#define NOTE_C3 131 |
3808 | +#define NOTE_CS3 139 |
3809 | +#define NOTE_D3 147 |
3810 | +#define NOTE_DS3 156 |
3811 | +#define NOTE_E3 165 |
3812 | +#define NOTE_F3 175 |
3813 | +#define NOTE_FS3 185 |
3814 | +#define NOTE_G3 196 |
3815 | +#define NOTE_GS3 208 |
3816 | +#define NOTE_A3 220 |
3817 | +#define NOTE_AS3 233 |
3818 | +#define NOTE_B3 247 |
3819 | +#define NOTE_C4 262 |
3820 | +#define NOTE_CS4 277 |
3821 | +#define NOTE_D4 294 |
3822 | +#define NOTE_DS4 311 |
3823 | +#define NOTE_E4 330 |
3824 | +#define NOTE_F4 349 |
3825 | +#define NOTE_FS4 370 |
3826 | +#define NOTE_G4 392 |
3827 | +#define NOTE_GS4 415 |
3828 | +#define NOTE_A4 440 |
3829 | +#define NOTE_AS4 466 |
3830 | +#define NOTE_B4 494 |
3831 | +#define NOTE_C5 523 |
3832 | +#define NOTE_CS5 554 |
3833 | +#define NOTE_D5 587 |
3834 | +#define NOTE_DS5 622 |
3835 | +#define NOTE_E5 659 |
3836 | +#define NOTE_F5 698 |
3837 | +#define NOTE_FS5 740 |
3838 | +#define NOTE_G5 784 |
3839 | +#define NOTE_GS5 831 |
3840 | +#define NOTE_A5 880 |
3841 | +#define NOTE_AS5 932 |
3842 | +#define NOTE_B5 988 |
3843 | +#define NOTE_C6 1047 |
3844 | +#define NOTE_CS6 1109 |
3845 | +#define NOTE_D6 1175 |
3846 | +#define NOTE_DS6 1245 |
3847 | +#define NOTE_E6 1319 |
3848 | +#define NOTE_F6 1397 |
3849 | +#define NOTE_FS6 1480 |
3850 | +#define NOTE_G6 1568 |
3851 | +#define NOTE_GS6 1661 |
3852 | +#define NOTE_A6 1760 |
3853 | +#define NOTE_AS6 1865 |
3854 | +#define NOTE_B6 1976 |
3855 | +#define NOTE_C7 2093 |
3856 | +#define NOTE_CS7 2217 |
3857 | +#define NOTE_D7 2349 |
3858 | +#define NOTE_DS7 2489 |
3859 | +#define NOTE_E7 2637 |
3860 | +#define NOTE_F7 2794 |
3861 | +#define NOTE_FS7 2960 |
3862 | +#define NOTE_G7 3136 |
3863 | +#define NOTE_GS7 3322 |
3864 | +#define NOTE_A7 3520 |
3865 | +#define NOTE_AS7 3729 |
3866 | +#define NOTE_B7 3951 |
3867 | +#define NOTE_C8 4186 |
3868 | +#define NOTE_CS8 4435 |
3869 | +#define NOTE_D8 4699 |
3870 | +#define NOTE_DS8 4978 |
3871 | + |
3872 | + |
3873 | |
3874 | === removed directory 'examples/EEPROM' |
3875 | === removed directory 'examples/EEPROM/examples' |
3876 | === removed directory 'examples/EEPROM/examples/eeprom_clear' |
3877 | === removed file 'examples/EEPROM/examples/eeprom_clear/eeprom_clear.pde' |
3878 | --- examples/EEPROM/examples/eeprom_clear/eeprom_clear.pde 2010-02-12 19:25:26 +0000 |
3879 | +++ examples/EEPROM/examples/eeprom_clear/eeprom_clear.pde 1970-01-01 00:00:00 +0000 |
3880 | @@ -1,21 +0,0 @@ |
3881 | -/* |
3882 | - * EEPROM Clear |
3883 | - * |
3884 | - * Sets all of the bytes of the EEPROM to 0. |
3885 | - */ |
3886 | - |
3887 | -#include <EEPROM.h> |
3888 | - |
3889 | -void setup() |
3890 | -{ |
3891 | - // write a 0 to all 512 bytes of the EEPROM |
3892 | - for (int i = 0; i < 512; i++) |
3893 | - EEPROM.write(i, 0); |
3894 | - |
3895 | - // turn the LED on when we're done |
3896 | - digitalWrite(13, HIGH); |
3897 | -} |
3898 | - |
3899 | -void loop() |
3900 | -{ |
3901 | -} |
3902 | |
3903 | === removed directory 'examples/EEPROM/examples/eeprom_read' |
3904 | === removed file 'examples/EEPROM/examples/eeprom_read/eeprom_read.pde' |
3905 | --- examples/EEPROM/examples/eeprom_read/eeprom_read.pde 2010-02-12 19:25:26 +0000 |
3906 | +++ examples/EEPROM/examples/eeprom_read/eeprom_read.pde 1970-01-01 00:00:00 +0000 |
3907 | @@ -1,38 +0,0 @@ |
3908 | -/* |
3909 | - * EEPROM Read |
3910 | - * |
3911 | - * Reads the value of each byte of the EEPROM and prints it |
3912 | - * to the computer. |
3913 | - */ |
3914 | - |
3915 | -#include <EEPROM.h> |
3916 | - |
3917 | -// start reading from the first byte (address 0) of the EEPROM |
3918 | -int address = 0; |
3919 | -byte value; |
3920 | - |
3921 | -void setup() |
3922 | -{ |
3923 | - Serial.begin(9600); |
3924 | -} |
3925 | - |
3926 | -void loop() |
3927 | -{ |
3928 | - // read a byte from the current address of the EEPROM |
3929 | - value = EEPROM.read(address); |
3930 | - |
3931 | - Serial.print(address); |
3932 | - Serial.print("\t"); |
3933 | - Serial.print(value, DEC); |
3934 | - Serial.println(); |
3935 | - |
3936 | - // advance to the next address of the EEPROM |
3937 | - address = address + 1; |
3938 | - |
3939 | - // there are only 512 bytes of EEPROM, from 0 to 511, so if we're |
3940 | - // on address 512, wrap around to address 0 |
3941 | - if (address == 512) |
3942 | - address = 0; |
3943 | - |
3944 | - delay(500); |
3945 | -} |
3946 | |
3947 | === removed directory 'examples/EEPROM/examples/eeprom_write' |
3948 | === removed file 'examples/EEPROM/examples/eeprom_write/eeprom_write.pde' |
3949 | --- examples/EEPROM/examples/eeprom_write/eeprom_write.pde 2010-02-12 19:25:26 +0000 |
3950 | +++ examples/EEPROM/examples/eeprom_write/eeprom_write.pde 1970-01-01 00:00:00 +0000 |
3951 | @@ -1,38 +0,0 @@ |
3952 | -/* |
3953 | - * EEPROM Write |
3954 | - * |
3955 | - * Stores values read from analog input 0 into the EEPROM. |
3956 | - * These values will stay in the EEPROM when the board is |
3957 | - * turned off and may be retrieved later by another sketch. |
3958 | - */ |
3959 | - |
3960 | -#include <EEPROM.h> |
3961 | - |
3962 | -// the current address in the EEPROM (i.e. which byte |
3963 | -// we're going to write to next) |
3964 | -int addr = 0; |
3965 | - |
3966 | -void setup() |
3967 | -{ |
3968 | -} |
3969 | - |
3970 | -void loop() |
3971 | -{ |
3972 | - // need to divide by 4 because analog inputs range from |
3973 | - // 0 to 1023 and each byte of the EEPROM can only hold a |
3974 | - // value from 0 to 255. |
3975 | - int val = analogRead(0) / 4; |
3976 | - |
3977 | - // write the value to the appropriate byte of the EEPROM. |
3978 | - // these values will remain there when the board is |
3979 | - // turned off. |
3980 | - EEPROM.write(addr, val); |
3981 | - |
3982 | - // advance to the next address. there are 512 bytes in |
3983 | - // the EEPROM, so go back to 0 when we hit 512. |
3984 | - addr = addr + 1; |
3985 | - if (addr == 512) |
3986 | - addr = 0; |
3987 | - |
3988 | - delay(100); |
3989 | -} |
3990 | |
3991 | === removed file 'examples/EEPROM/keywords.txt' |
3992 | --- examples/EEPROM/keywords.txt 2010-02-12 19:25:26 +0000 |
3993 | +++ examples/EEPROM/keywords.txt 1970-01-01 00:00:00 +0000 |
3994 | @@ -1,18 +0,0 @@ |
3995 | -####################################### |
3996 | -# Syntax Coloring Map For Ultrasound |
3997 | -####################################### |
3998 | - |
3999 | -####################################### |
4000 | -# Datatypes (KEYWORD1) |
4001 | -####################################### |
4002 | - |
4003 | -EEPROM KEYWORD1 |
4004 | - |
4005 | -####################################### |
4006 | -# Methods and Functions (KEYWORD2) |
4007 | -####################################### |
4008 | - |
4009 | -####################################### |
4010 | -# Constants (LITERAL1) |
4011 | -####################################### |
4012 | - |
4013 | |
4014 | === removed directory 'examples/Ethernet' |
4015 | === removed directory 'examples/Ethernet/examples' |
4016 | === removed directory 'examples/Ethernet/examples/ChatServer' |
4017 | === removed file 'examples/Ethernet/examples/ChatServer/ChatServer.pde' |
4018 | --- examples/Ethernet/examples/ChatServer/ChatServer.pde 2010-02-12 19:25:26 +0000 |
4019 | +++ examples/Ethernet/examples/ChatServer/ChatServer.pde 1970-01-01 00:00:00 +0000 |
4020 | @@ -1,34 +0,0 @@ |
4021 | -/* |
4022 | - * Chat Server |
4023 | - * |
4024 | - * A simple server that distributes any incoming messages to all |
4025 | - * connected clients. To use telnet to 10.0.0.177 and type! |
4026 | - */ |
4027 | - |
4028 | -#include <Ethernet.h> |
4029 | - |
4030 | -// network configuration. gateway and subnet are optional. |
4031 | -byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; |
4032 | -byte ip[] = { 10, 0, 0, 177 }; |
4033 | -byte gateway[] = { 10, 0, 0, 1 }; |
4034 | -byte subnet[] = { 255, 255, 0, 0 }; |
4035 | - |
4036 | -// telnet defaults to port 23 |
4037 | -Server server(23); |
4038 | - |
4039 | -void setup() |
4040 | -{ |
4041 | - // initialize the ethernet device |
4042 | - Ethernet.begin(mac, ip, gateway, subnet); |
4043 | - |
4044 | - // start listening for clients |
4045 | - server.begin(); |
4046 | -} |
4047 | - |
4048 | -void loop() |
4049 | -{ |
4050 | - Client client = server.available(); |
4051 | - if (client) { |
4052 | - server.write(client.read()); |
4053 | - } |
4054 | -} |
4055 | |
4056 | === removed directory 'examples/Ethernet/examples/WebClient' |
4057 | === removed file 'examples/Ethernet/examples/WebClient/WebClient.pde' |
4058 | --- examples/Ethernet/examples/WebClient/WebClient.pde 2010-02-12 19:25:26 +0000 |
4059 | +++ examples/Ethernet/examples/WebClient/WebClient.pde 1970-01-01 00:00:00 +0000 |
4060 | @@ -1,41 +0,0 @@ |
4061 | -#include <Ethernet.h> |
4062 | - |
4063 | -byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; |
4064 | -byte ip[] = { 10, 0, 0, 177 }; |
4065 | -byte server[] = { 64, 233, 187, 99 }; // Google |
4066 | - |
4067 | -Client client(server, 80); |
4068 | - |
4069 | -void setup() |
4070 | -{ |
4071 | - Ethernet.begin(mac, ip); |
4072 | - Serial.begin(9600); |
4073 | - |
4074 | - delay(1000); |
4075 | - |
4076 | - Serial.println("connecting..."); |
4077 | - |
4078 | - if (client.connect()) { |
4079 | - Serial.println("connected"); |
4080 | - client.println("GET /search?q=arduino HTTP/1.0"); |
4081 | - client.println(); |
4082 | - } else { |
4083 | - Serial.println("connection failed"); |
4084 | - } |
4085 | -} |
4086 | - |
4087 | -void loop() |
4088 | -{ |
4089 | - if (client.available()) { |
4090 | - char c = client.read(); |
4091 | - Serial.print(c); |
4092 | - } |
4093 | - |
4094 | - if (!client.connected()) { |
4095 | - Serial.println(); |
4096 | - Serial.println("disconnecting."); |
4097 | - client.stop(); |
4098 | - for(;;) |
4099 | - ; |
4100 | - } |
4101 | -} |
4102 | |
4103 | === removed directory 'examples/Ethernet/examples/WebServer' |
4104 | === removed file 'examples/Ethernet/examples/WebServer/WebServer.pde' |
4105 | --- examples/Ethernet/examples/WebServer/WebServer.pde 2010-02-12 19:25:26 +0000 |
4106 | +++ examples/Ethernet/examples/WebServer/WebServer.pde 1970-01-01 00:00:00 +0000 |
4107 | @@ -1,61 +0,0 @@ |
4108 | -/* |
4109 | - * Web Server |
4110 | - * |
4111 | - * A simple web server that shows the value of the analog input pins. |
4112 | - */ |
4113 | - |
4114 | -#include <Ethernet.h> |
4115 | - |
4116 | -byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; |
4117 | -byte ip[] = { 10, 0, 0, 177 }; |
4118 | - |
4119 | -Server server(80); |
4120 | - |
4121 | -void setup() |
4122 | -{ |
4123 | - Ethernet.begin(mac, ip); |
4124 | - server.begin(); |
4125 | -} |
4126 | - |
4127 | -void loop() |
4128 | -{ |
4129 | - Client client = server.available(); |
4130 | - if (client) { |
4131 | - // an http request ends with a blank line |
4132 | - boolean current_line_is_blank = true; |
4133 | - while (client.connected()) { |
4134 | - if (client.available()) { |
4135 | - char c = client.read(); |
4136 | - // if we've gotten to the end of the line (received a newline |
4137 | - // character) and the line is blank, the http request has ended, |
4138 | - // so we can send a reply |
4139 | - if (c == '\n' && current_line_is_blank) { |
4140 | - // send a standard http response header |
4141 | - client.println("HTTP/1.1 200 OK"); |
4142 | - client.println("Content-Type: text/html"); |
4143 | - client.println(); |
4144 | - |
4145 | - // output the value of each analog input pin |
4146 | - for (int i = 0; i < 6; i++) { |
4147 | - client.print("analog input "); |
4148 | - client.print(i); |
4149 | - client.print(" is "); |
4150 | - client.print(analogRead(i)); |
4151 | - client.println("<br />"); |
4152 | - } |
4153 | - break; |
4154 | - } |
4155 | - if (c == '\n') { |
4156 | - // we're starting a new line |
4157 | - current_line_is_blank = true; |
4158 | - } else if (c != '\r') { |
4159 | - // we've gotten a character on the current line |
4160 | - current_line_is_blank = false; |
4161 | - } |
4162 | - } |
4163 | - } |
4164 | - // give the web browser time to receive the data |
4165 | - delay(1); |
4166 | - client.stop(); |
4167 | - } |
4168 | -} |
4169 | |
4170 | === removed file 'examples/Ethernet/keywords.txt' |
4171 | --- examples/Ethernet/keywords.txt 2010-02-12 19:25:26 +0000 |
4172 | +++ examples/Ethernet/keywords.txt 1970-01-01 00:00:00 +0000 |
4173 | @@ -1,30 +0,0 @@ |
4174 | -####################################### |
4175 | -# Syntax Coloring Map For Ethernet |
4176 | -####################################### |
4177 | - |
4178 | -####################################### |
4179 | -# Datatypes (KEYWORD1) |
4180 | -####################################### |
4181 | - |
4182 | -Ethernet KEYWORD1 |
4183 | -Client KEYWORD1 |
4184 | -Server KEYWORD1 |
4185 | - |
4186 | -####################################### |
4187 | -# Methods and Functions (KEYWORD2) |
4188 | -####################################### |
4189 | - |
4190 | -status KEYWORD2 |
4191 | -connect KEYWORD2 |
4192 | -write KEYWORD2 |
4193 | -available KEYWORD2 |
4194 | -read KEYWORD2 |
4195 | -flush KEYWORD2 |
4196 | -stop KEYWORD2 |
4197 | -connected KEYWORD2 |
4198 | -begin KEYWORD2 |
4199 | - |
4200 | -####################################### |
4201 | -# Constants (LITERAL1) |
4202 | -####################################### |
4203 | - |
4204 | |
4205 | === removed directory 'examples/Ethernet/utility' |
4206 | === removed directory 'examples/Firmata' |
4207 | === removed file 'examples/Firmata/LICENSE.txt' |
4208 | --- examples/Firmata/LICENSE.txt 2010-02-12 19:25:26 +0000 |
4209 | +++ examples/Firmata/LICENSE.txt 1970-01-01 00:00:00 +0000 |
4210 | @@ -1,458 +0,0 @@ |
4211 | - |
4212 | - GNU LESSER GENERAL PUBLIC LICENSE |
4213 | - Version 2.1, February 1999 |
4214 | - |
4215 | - Copyright (C) 1991, 1999 Free Software Foundation, Inc. |
4216 | - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
4217 | - Everyone is permitted to copy and distribute verbatim copies |
4218 | - of this license document, but changing it is not allowed. |
4219 | - |
4220 | -[This is the first released version of the Lesser GPL. It also counts |
4221 | - as the successor of the GNU Library Public License, version 2, hence |
4222 | - the version number 2.1.] |
4223 | - |
4224 | - Preamble |
4225 | - |
4226 | - The licenses for most software are designed to take away your |
4227 | -freedom to share and change it. By contrast, the GNU General Public |
4228 | -Licenses are intended to guarantee your freedom to share and change |
4229 | -free software--to make sure the software is free for all its users. |
4230 | - |
4231 | - This license, the Lesser General Public License, applies to some |
4232 | -specially designated software packages--typically libraries--of the |
4233 | -Free Software Foundation and other authors who decide to use it. You |
4234 | -can use it too, but we suggest you first think carefully about whether |
4235 | -this license or the ordinary General Public License is the better |
4236 | -strategy to use in any particular case, based on the explanations below. |
4237 | - |
4238 | - When we speak of free software, we are referring to freedom of use, |
4239 | -not price. Our General Public Licenses are designed to make sure that |
4240 | -you have the freedom to distribute copies of free software (and charge |
4241 | -for this service if you wish); that you receive source code or can get |
4242 | -it if you want it; that you can change the software and use pieces of |
4243 | -it in new free programs; and that you are informed that you can do |
4244 | -these things. |
4245 | - |
4246 | - To protect your rights, we need to make restrictions that forbid |
4247 | -distributors to deny you these rights or to ask you to surrender these |
4248 | -rights. These restrictions translate to certain responsibilities for |
4249 | -you if you distribute copies of the library or if you modify it. |
4250 | - |
4251 | - For example, if you distribute copies of the library, whether gratis |
4252 | -or for a fee, you must give the recipients all the rights that we gave |
4253 | -you. You must make sure that they, too, receive or can get the source |
4254 | -code. If you link other code with the library, you must provide |
4255 | -complete object files to the recipients, so that they can relink them |
4256 | -with the library after making changes to the library and recompiling |
4257 | -it. And you must show them these terms so they know their rights. |
4258 | - |
4259 | - We protect your rights with a two-step method: (1) we copyright the |
4260 | -library, and (2) we offer you this license, which gives you legal |
4261 | -permission to copy, distribute and/or modify the library. |
4262 | - |
4263 | - To protect each distributor, we want to make it very clear that |
4264 | -there is no warranty for the free library. Also, if the library is |
4265 | -modified by someone else and passed on, the recipients should know |
4266 | -that what they have is not the original version, so that the original |
4267 | -author's reputation will not be affected by problems that might be |
4268 | -introduced by others. |
4269 | - |
4270 | |
4271 | - Finally, software patents pose a constant threat to the existence of |
4272 | -any free program. We wish to make sure that a company cannot |
4273 | -effectively restrict the users of a free program by obtaining a |
4274 | -restrictive license from a patent holder. Therefore, we insist that |
4275 | -any patent license obtained for a version of the library must be |
4276 | -consistent with the full freedom of use specified in this license. |
4277 | - |
4278 | - Most GNU software, including some libraries, is covered by the |
4279 | -ordinary GNU General Public License. This license, the GNU Lesser |
4280 | -General Public License, applies to certain designated libraries, and |
4281 | -is quite different from the ordinary General Public License. We use |
4282 | -this license for certain libraries in order to permit linking those |
4283 | -libraries into non-free programs. |
4284 | - |
4285 | - When a program is linked with a library, whether statically or using |
4286 | -a shared library, the combination of the two is legally speaking a |
4287 | -combined work, a derivative of the original library. The ordinary |
4288 | -General Public License therefore permits such linking only if the |
4289 | -entire combination fits its criteria of freedom. The Lesser General |
4290 | -Public License permits more lax criteria for linking other code with |
4291 | -the library. |
4292 | - |
4293 | - We call this license the "Lesser" General Public License because it |
4294 | -does Less to protect the user's freedom than the ordinary General |
4295 | -Public License. It also provides other free software developers Less |
4296 | -of an advantage over competing non-free programs. These disadvantages |
4297 | -are the reason we use the ordinary General Public License for many |
4298 | -libraries. However, the Lesser license provides advantages in certain |
4299 | -special circumstances. |
4300 | - |
4301 | - For example, on rare occasions, there may be a special need to |
4302 | -encourage the widest possible use of a certain library, so that it becomes |
4303 | -a de-facto standard. To achieve this, non-free programs must be |
4304 | -allowed to use the library. A more frequent case is that a free |
4305 | -library does the same job as widely used non-free libraries. In this |
4306 | -case, there is little to gain by limiting the free library to free |
4307 | -software only, so we use the Lesser General Public License. |
4308 | - |
4309 | - In other cases, permission to use a particular library in non-free |
4310 | -programs enables a greater number of people to use a large body of |
4311 | -free software. For example, permission to use the GNU C Library in |
4312 | -non-free programs enables many more people to use the whole GNU |
4313 | -operating system, as well as its variant, the GNU/Linux operating |
4314 | -system. |
4315 | - |
4316 | - Although the Lesser General Public License is Less protective of the |
4317 | -users' freedom, it does ensure that the user of a program that is |
4318 | -linked with the Library has the freedom and the wherewithal to run |
4319 | -that program using a modified version of the Library. |
4320 | - |
4321 | - The precise terms and conditions for copying, distribution and |
4322 | -modification follow. Pay close attention to the difference between a |
4323 | -"work based on the library" and a "work that uses the library". The |
4324 | -former contains code derived from the library, whereas the latter must |
4325 | -be combined with the library in order to run. |
4326 | - |
4327 | |
4328 | - GNU LESSER GENERAL PUBLIC LICENSE |
4329 | - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
4330 | - |
4331 | - 0. This License Agreement applies to any software library or other |
4332 | -program which contains a notice placed by the copyright holder or |
4333 | -other authorized party saying it may be distributed under the terms of |
4334 | -this Lesser General Public License (also called "this License"). |
4335 | -Each licensee is addressed as "you". |
4336 | - |
4337 | - A "library" means a collection of software functions and/or data |
4338 | -prepared so as to be conveniently linked with application programs |
4339 | -(which use some of those functions and data) to form executables. |
4340 | - |
4341 | - The "Library", below, refers to any such software library or work |
4342 | -which has been distributed under these terms. A "work based on the |
4343 | -Library" means either the Library or any derivative work under |
4344 | -copyright law: that is to say, a work containing the Library or a |
4345 | -portion of it, either verbatim or with modifications and/or translated |
4346 | -straightforwardly into another language. (Hereinafter, translation is |
4347 | -included without limitation in the term "modification".) |
4348 | - |
4349 | - "Source code" for a work means the preferred form of the work for |
4350 | -making modifications to it. For a library, complete source code means |
4351 | -all the source code for all modules it contains, plus any associated |
4352 | -interface definition files, plus the scripts used to control compilation |
4353 | -and installation of the library. |
4354 | - |
4355 | - Activities other than copying, distribution and modification are not |
4356 | -covered by this License; they are outside its scope. The act of |
4357 | -running a program using the Library is not restricted, and output from |
4358 | -such a program is covered only if its contents constitute a work based |
4359 | -on the Library (independent of the use of the Library in a tool for |
4360 | -writing it). Whether that is true depends on what the Library does |
4361 | -and what the program that uses the Library does. |
4362 | - |
4363 | - 1. You may copy and distribute verbatim copies of the Library's |
4364 | -complete source code as you receive it, in any medium, provided that |
4365 | -you conspicuously and appropriately publish on each copy an |
4366 | -appropriate copyright notice and disclaimer of warranty; keep intact |
4367 | -all the notices that refer to this License and to the absence of any |
4368 | -warranty; and distribute a copy of this License along with the |
4369 | -Library. |
4370 | - |
4371 | - You may charge a fee for the physical act of transferring a copy, |
4372 | -and you may at your option offer warranty protection in exchange for a |
4373 | -fee. |
4374 | - |
4375 | |
4376 | - 2. You may modify your copy or copies of the Library or any portion |
4377 | -of it, thus forming a work based on the Library, and copy and |
4378 | -distribute such modifications or work under the terms of Section 1 |
4379 | -above, provided that you also meet all of these conditions: |
4380 | - |
4381 | - a) The modified work must itself be a software library. |
4382 | - |
4383 | - b) You must cause the files modified to carry prominent notices |
4384 | - stating that you changed the files and the date of any change. |
4385 | - |
4386 | - c) You must cause the whole of the work to be licensed at no |
4387 | - charge to all third parties under the terms of this License. |
4388 | - |
4389 | - d) If a facility in the modified Library refers to a function or a |
4390 | - table of data to be supplied by an application program that uses |
4391 | - the facility, other than as an argument passed when the facility |
4392 | - is invoked, then you must make a good faith effort to ensure that, |
4393 | - in the event an application does not supply such function or |
4394 | - table, the facility still operates, and performs whatever part of |
4395 | - its purpose remains meaningful. |
4396 | - |
4397 | - (For example, a function in a library to compute square roots has |
4398 | - a purpose that is entirely well-defined independent of the |
4399 | - application. Therefore, Subsection 2d requires that any |
4400 | - application-supplied function or table used by this function must |
4401 | - be optional: if the application does not supply it, the square |
4402 | - root function must still compute square roots.) |
4403 | - |
4404 | -These requirements apply to the modified work as a whole. If |
4405 | -identifiable sections of that work are not derived from the Library, |
4406 | -and can be reasonably considered independent and separate works in |
4407 | -themselves, then this License, and its terms, do not apply to those |
4408 | -sections when you distribute them as separate works. But when you |
4409 | -distribute the same sections as part of a whole which is a work based |
4410 | -on the Library, the distribution of the whole must be on the terms of |
4411 | -this License, whose permissions for other licensees extend to the |
4412 | -entire whole, and thus to each and every part regardless of who wrote |
4413 | -it. |
4414 | - |
4415 | -Thus, it is not the intent of this section to claim rights or contest |
4416 | -your rights to work written entirely by you; rather, the intent is to |
4417 | -exercise the right to control the distribution of derivative or |
4418 | -collective works based on the Library. |
4419 | - |
4420 | -In addition, mere aggregation of another work not based on the Library |
4421 | -with the Library (or with a work based on the Library) on a volume of |
4422 | -a storage or distribution medium does not bring the other work under |
4423 | -the scope of this License. |
4424 | - |
4425 | - 3. You may opt to apply the terms of the ordinary GNU General Public |
4426 | -License instead of this License to a given copy of the Library. To do |
4427 | -this, you must alter all the notices that refer to this License, so |
4428 | -that they refer to the ordinary GNU General Public License, version 2, |
4429 | -instead of to this License. (If a newer version than version 2 of the |
4430 | -ordinary GNU General Public License has appeared, then you can specify |
4431 | -that version instead if you wish.) Do not make any other change in |
4432 | -these notices. |
4433 | - |
4434 | |
4435 | - Once this change is made in a given copy, it is irreversible for |
4436 | -that copy, so the ordinary GNU General Public License applies to all |
4437 | -subsequent copies and derivative works made from that copy. |
4438 | - |
4439 | - This option is useful when you wish to copy part of the code of |
4440 | -the Library into a program that is not a library. |
4441 | - |
4442 | - 4. You may copy and distribute the Library (or a portion or |
4443 | -derivative of it, under Section 2) in object code or executable form |
4444 | -under the terms of Sections 1 and 2 above provided that you accompany |
4445 | -it with the complete corresponding machine-readable source code, which |
4446 | -must be distributed under the terms of Sections 1 and 2 above on a |
4447 | -medium customarily used for software interchange. |
4448 | - |
4449 | - If distribution of object code is made by offering access to copy |
4450 | -from a designated place, then offering equivalent access to copy the |
4451 | -source code from the same place satisfies the requirement to |
4452 | -distribute the source code, even though third parties are not |
4453 | -compelled to copy the source along with the object code. |
4454 | - |
4455 | - 5. A program that contains no derivative of any portion of the |
4456 | -Library, but is designed to work with the Library by being compiled or |
4457 | -linked with it, is called a "work that uses the Library". Such a |
4458 | -work, in isolation, is not a derivative work of the Library, and |
4459 | -therefore falls outside the scope of this License. |
4460 | - |
4461 | - However, linking a "work that uses the Library" with the Library |
4462 | -creates an executable that is a derivative of the Library (because it |
4463 | -contains portions of the Library), rather than a "work that uses the |
4464 | -library". The executable is therefore covered by this License. |
4465 | -Section 6 states terms for distribution of such executables. |
4466 | - |
4467 | - When a "work that uses the Library" uses material from a header file |
4468 | -that is part of the Library, the object code for the work may be a |
4469 | -derivative work of the Library even though the source code is not. |
4470 | -Whether this is true is especially significant if the work can be |
4471 | -linked without the Library, or if the work is itself a library. The |
4472 | -threshold for this to be true is not precisely defined by law. |
4473 | - |
4474 | - If such an object file uses only numerical parameters, data |
4475 | -structure layouts and accessors, and small macros and small inline |
4476 | -functions (ten lines or less in length), then the use of the object |
4477 | -file is unrestricted, regardless of whether it is legally a derivative |
4478 | -work. (Executables containing this object code plus portions of the |
4479 | -Library will still fall under Section 6.) |
4480 | - |
4481 | - Otherwise, if the work is a derivative of the Library, you may |
4482 | -distribute the object code for the work under the terms of Section 6. |
4483 | -Any executables containing that work also fall under Section 6, |
4484 | -whether or not they are linked directly with the Library itself. |
4485 | - |
4486 | |
4487 | - 6. As an exception to the Sections above, you may also combine or |
4488 | -link a "work that uses the Library" with the Library to produce a |
4489 | -work containing portions of the Library, and distribute that work |
4490 | -under terms of your choice, provided that the terms permit |
4491 | -modification of the work for the customer's own use and reverse |
4492 | -engineering for debugging such modifications. |
4493 | - |
4494 | - You must give prominent notice with each copy of the work that the |
4495 | -Library is used in it and that the Library and its use are covered by |
4496 | -this License. You must supply a copy of this License. If the work |
4497 | -during execution displays copyright notices, you must include the |
4498 | -copyright notice for the Library among them, as well as a reference |
4499 | -directing the user to the copy of this License. Also, you must do one |
4500 | -of these things: |
4501 | - |
4502 | - a) Accompany the work with the complete corresponding |
4503 | - machine-readable source code for the Library including whatever |
4504 | - changes were used in the work (which must be distributed under |
4505 | - Sections 1 and 2 above); and, if the work is an executable linked |
4506 | - with the Library, with the complete machine-readable "work that |
4507 | - uses the Library", as object code and/or source code, so that the |
4508 | - user can modify the Library and then relink to produce a modified |
4509 | - executable containing the modified Library. (It is understood |
4510 | - that the user who changes the contents of definitions files in the |
4511 | - Library will not necessarily be able to recompile the application |
4512 | - to use the modified definitions.) |
4513 | - |
4514 | - b) Use a suitable shared library mechanism for linking with the |
4515 | - Library. A suitable mechanism is one that (1) uses at run time a |
4516 | - copy of the library already present on the user's computer system, |
4517 | - rather than copying library functions into the executable, and (2) |
4518 | - will operate properly with a modified version of the library, if |
4519 | - the user installs one, as long as the modified version is |
4520 | - interface-compatible with the version that the work was made with. |
4521 | - |
4522 | - c) Accompany the work with a written offer, valid for at |
4523 | - least three years, to give the same user the materials |
4524 | - specified in Subsection 6a, above, for a charge no more |
4525 | - than the cost of performing this distribution. |
4526 | - |
4527 | - d) If distribution of the work is made by offering access to copy |
4528 | - from a designated place, offer equivalent access to copy the above |
4529 | - specified materials from the same place. |
4530 | - |
4531 | - e) Verify that the user has already received a copy of these |
4532 | - materials or that you have already sent this user a copy. |
4533 | - |
4534 | - For an executable, the required form of the "work that uses the |
4535 | -Library" must include any data and utility programs needed for |
4536 | -reproducing the executable from it. However, as a special exception, |
4537 | -the materials to be distributed need not include anything that is |
4538 | -normally distributed (in either source or binary form) with the major |
4539 | -components (compiler, kernel, and so on) of the operating system on |
4540 | -which the executable runs, unless that component itself accompanies |
4541 | -the executable. |
4542 | - |
4543 | - It may happen that this requirement contradicts the license |
4544 | -restrictions of other proprietary libraries that do not normally |
4545 | -accompany the operating system. Such a contradiction means you cannot |
4546 | -use both them and the Library together in an executable that you |
4547 | -distribute. |
4548 | - |
4549 | |
4550 | - 7. You may place library facilities that are a work based on the |
4551 | -Library side-by-side in a single library together with other library |
4552 | -facilities not covered by this License, and distribute such a combined |
4553 | -library, provided that the separate distribution of the work based on |
4554 | -the Library and of the other library facilities is otherwise |
4555 | -permitted, and provided that you do these two things: |
4556 | - |
4557 | - a) Accompany the combined library with a copy of the same work |
4558 | - based on the Library, uncombined with any other library |
4559 | - facilities. This must be distributed under the terms of the |
4560 | - Sections above. |
4561 | - |
4562 | - b) Give prominent notice with the combined library of the fact |
4563 | - that part of it is a work based on the Library, and explaining |
4564 | - where to find the accompanying uncombined form of the same work. |
4565 | - |
4566 | - 8. You may not copy, modify, sublicense, link with, or distribute |
4567 | -the Library except as expressly provided under this License. Any |
4568 | -attempt otherwise to copy, modify, sublicense, link with, or |
4569 | -distribute the Library is void, and will automatically terminate your |
4570 | -rights under this License. However, parties who have received copies, |
4571 | -or rights, from you under this License will not have their licenses |
4572 | -terminated so long as such parties remain in full compliance. |
4573 | - |
4574 | - 9. You are not required to accept this License, since you have not |
4575 | -signed it. However, nothing else grants you permission to modify or |
4576 | -distribute the Library or its derivative works. These actions are |
4577 | -prohibited by law if you do not accept this License. Therefore, by |
4578 | -modifying or distributing the Library (or any work based on the |
4579 | -Library), you indicate your acceptance of this License to do so, and |
4580 | -all its terms and conditions for copying, distributing or modifying |
4581 | -the Library or works based on it. |
4582 | - |
4583 | - 10. Each time you redistribute the Library (or any work based on the |
4584 | -Library), the recipient automatically receives a license from the |
4585 | -original licensor to copy, distribute, link with or modify the Library |
4586 | -subject to these terms and conditions. You may not impose any further |
4587 | -restrictions on the recipients' exercise of the rights granted herein. |
4588 | -You are not responsible for enforcing compliance by third parties with |
4589 | -this License. |
4590 | - |
4591 | |
4592 | - 11. If, as a consequence of a court judgment or allegation of patent |
4593 | -infringement or for any other reason (not limited to patent issues), |
4594 | -conditions are imposed on you (whether by court order, agreement or |
4595 | -otherwise) that contradict the conditions of this License, they do not |
4596 | -excuse you from the conditions of this License. If you cannot |
4597 | -distribute so as to satisfy simultaneously your obligations under this |
4598 | -License and any other pertinent obligations, then as a consequence you |
4599 | -may not distribute the Library at all. For example, if a patent |
4600 | -license would not permit royalty-free redistribution of the Library by |
4601 | -all those who receive copies directly or indirectly through you, then |
4602 | -the only way you could satisfy both it and this License would be to |
4603 | -refrain entirely from distribution of the Library. |
4604 | - |
4605 | -If any portion of this section is held invalid or unenforceable under any |
4606 | -particular circumstance, the balance of the section is intended to apply, |
4607 | -and the section as a whole is intended to apply in other circumstances. |
4608 | - |
4609 | -It is not the purpose of this section to induce you to infringe any |
4610 | -patents or other property right claims or to contest validity of any |
4611 | -such claims; this section has the sole purpose of protecting the |
4612 | -integrity of the free software distribution system which is |
4613 | -implemented by public license practices. Many people have made |
4614 | -generous contributions to the wide range of software distributed |
4615 | -through that system in reliance on consistent application of that |
4616 | -system; it is up to the author/donor to decide if he or she is willing |
4617 | -to distribute software through any other system and a licensee cannot |
4618 | -impose that choice. |
4619 | - |
4620 | -This section is intended to make thoroughly clear what is believed to |
4621 | -be a consequence of the rest of this License. |
4622 | - |
4623 | - 12. If the distribution and/or use of the Library is restricted in |
4624 | -certain countries either by patents or by copyrighted interfaces, the |
4625 | -original copyright holder who places the Library under this License may add |
4626 | -an explicit geographical distribution limitation excluding those countries, |
4627 | -so that distribution is permitted only in or among countries not thus |
4628 | -excluded. In such case, this License incorporates the limitation as if |
4629 | -written in the body of this License. |
4630 | - |
4631 | - 13. The Free Software Foundation may publish revised and/or new |
4632 | -versions of the Lesser General Public License from time to time. |
4633 | -Such new versions will be similar in spirit to the present version, |
4634 | -but may differ in detail to address new problems or concerns. |
4635 | - |
4636 | -Each version is given a distinguishing version number. If the Library |
4637 | -specifies a version number of this License which applies to it and |
4638 | -"any later version", you have the option of following the terms and |
4639 | -conditions either of that version or of any later version published by |
4640 | -the Free Software Foundation. If the Library does not specify a |
4641 | -license version number, you may choose any version ever published by |
4642 | -the Free Software Foundation. |
4643 | - |
4644 | |
4645 | - 14. If you wish to incorporate parts of the Library into other free |
4646 | -programs whose distribution conditions are incompatible with these, |
4647 | -write to the author to ask for permission. For software which is |
4648 | -copyrighted by the Free Software Foundation, write to the Free |
4649 | -Software Foundation; we sometimes make exceptions for this. Our |
4650 | -decision will be guided by the two goals of preserving the free status |
4651 | -of all derivatives of our free software and of promoting the sharing |
4652 | -and reuse of software generally. |
4653 | - |
4654 | - NO WARRANTY |
4655 | - |
4656 | - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO |
4657 | -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. |
4658 | -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR |
4659 | -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY |
4660 | -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE |
4661 | -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
4662 | -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE |
4663 | -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME |
4664 | -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
4665 | - |
4666 | - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN |
4667 | -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY |
4668 | -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU |
4669 | -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR |
4670 | -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE |
4671 | -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING |
4672 | -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A |
4673 | -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF |
4674 | -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
4675 | -DAMAGES. |
4676 | - |
4677 | |
4678 | === removed file 'examples/Firmata/TODO.txt' |
4679 | --- examples/Firmata/TODO.txt 2010-02-12 19:25:26 +0000 |
4680 | +++ examples/Firmata/TODO.txt 1970-01-01 00:00:00 +0000 |
4681 | @@ -1,14 +0,0 @@ |
4682 | - |
4683 | -- make Firmata a subclass of HardwareSerial |
4684 | - |
4685 | -- per-pin digital callback, since the per-port callback is a bit complicated |
4686 | - for beginners (maybe Firmata is not for beginners...) |
4687 | - |
4688 | -- simplify SimpleDigitalFirmata, take out the code that checks to see if the |
4689 | - data has changed, since it is a bit complicated for this example. Ideally |
4690 | - this example would be based on a call |
4691 | - |
4692 | -- turn current SimpleDigitalFirmata into DigitalPortFirmata for a more complex |
4693 | - example using the code which checks for changes before doing anything |
4694 | - |
4695 | -- test integration with Wiring |
4696 | |
4697 | === removed directory 'examples/Firmata/examples' |
4698 | === removed directory 'examples/Firmata/examples/AllInputsFirmata' |
4699 | === removed file 'examples/Firmata/examples/AllInputsFirmata/AllInputsFirmata.pde' |
4700 | --- examples/Firmata/examples/AllInputsFirmata/AllInputsFirmata.pde 2010-02-12 19:25:26 +0000 |
4701 | +++ examples/Firmata/examples/AllInputsFirmata/AllInputsFirmata.pde 1970-01-01 00:00:00 +0000 |
4702 | @@ -1,71 +0,0 @@ |
4703 | -/* |
4704 | - * This firmware reads all inputs and sends them as fast as it can. It was |
4705 | - * inspired by the ease-of-use of the Arduino2Max program. |
4706 | - * |
4707 | - * This example code is in the public domain. |
4708 | - */ |
4709 | -#include <Firmata.h> |
4710 | - |
4711 | -byte pin; |
4712 | - |
4713 | -int analogValue; |
4714 | -int previousAnalogValues[TOTAL_ANALOG_PINS]; |
4715 | - |
4716 | -byte portStatus[TOTAL_PORTS]; |
4717 | -byte previousPINs[TOTAL_PORTS]; |
4718 | - |
4719 | -/* timer variables */ |
4720 | -unsigned long currentMillis; // store the current value from millis() |
4721 | -unsigned long nextExecuteMillis; // for comparison with currentMillis |
4722 | -/* make sure that the FTDI buffer doesn't go over 60 bytes, otherwise you |
4723 | - get long, random delays. So only read analogs every 20ms or so */ |
4724 | -int samplingInterval = 19; // how often to run the main loop (in ms) |
4725 | - |
4726 | -void sendPort(byte portNumber, byte portValue) |
4727 | -{ |
4728 | - portValue = portValue &~ portStatus[portNumber]; |
4729 | - if(previousPINs[portNumber] != portValue) { |
4730 | - Firmata.sendDigitalPort(portNumber, portValue); |
4731 | - previousPINs[portNumber] = portValue; |
4732 | - } |
4733 | -} |
4734 | - |
4735 | -void setup() |
4736 | -{ |
4737 | - Firmata.setFirmwareVersion(0, 1); |
4738 | - |
4739 | - for(pin = 0; pin < TOTAL_DIGITAL_PINS; pin++) { |
4740 | - pinMode(pin, INPUT); |
4741 | - } |
4742 | - |
4743 | - portStatus[0] = B00000011; // ignore Tx/RX pins |
4744 | - portStatus[1] = B11000000; // ignore 14/15 pins |
4745 | - portStatus[2] = B00000000; |
4746 | - |
4747 | - Firmata.begin(57600); |
4748 | -} |
4749 | - |
4750 | -void loop() |
4751 | -{ |
4752 | - sendPort(0, PIND); |
4753 | - sendPort(1, PINB); |
4754 | - sendPort(2, PINC); |
4755 | - /* make sure that the FTDI buffer doesn't go over 60 bytes, otherwise you |
4756 | - get long, random delays. So only read analogs every 20ms or so */ |
4757 | - currentMillis = millis(); |
4758 | - if(currentMillis > nextExecuteMillis) { |
4759 | - nextExecuteMillis = currentMillis + samplingInterval; |
4760 | - while(Firmata.available()) { |
4761 | - Firmata.processInput(); |
4762 | - } |
4763 | - for(pin = 0; pin < TOTAL_ANALOG_PINS; pin++) { |
4764 | - analogValue = analogRead(pin); |
4765 | - if(analogValue != previousAnalogValues[pin]) { |
4766 | - Firmata.sendAnalog(pin, analogValue); |
4767 | - previousAnalogValues[pin] = analogValue; |
4768 | - } |
4769 | - } |
4770 | - } |
4771 | -} |
4772 | - |
4773 | - |
4774 | |
4775 | === removed directory 'examples/Firmata/examples/AnalogFirmata' |
4776 | === removed file 'examples/Firmata/examples/AnalogFirmata/AnalogFirmata.pde' |
4777 | --- examples/Firmata/examples/AnalogFirmata/AnalogFirmata.pde 2010-02-12 19:25:26 +0000 |
4778 | +++ examples/Firmata/examples/AnalogFirmata/AnalogFirmata.pde 1970-01-01 00:00:00 +0000 |
4779 | @@ -1,83 +0,0 @@ |
4780 | -/* This firmware supports as many analog ports as possible, all analog inputs, |
4781 | - * four PWM outputs, and two with servo support. |
4782 | - * |
4783 | - * This example code is in the public domain. |
4784 | - */ |
4785 | -#include <Firmata.h> |
4786 | -#include <Servo.h> |
4787 | - |
4788 | -/*============================================================================== |
4789 | - * GLOBAL VARIABLES |
4790 | - *============================================================================*/ |
4791 | - |
4792 | -/* servos */ |
4793 | -Servo servo9, servo10; // one instance per pin |
4794 | -/* analog inputs */ |
4795 | -int analogInputsToReport = 0; // bitwise array to store pin reporting |
4796 | -int analogPin = 0; // counter for reading analog pins |
4797 | -/* timer variables */ |
4798 | -unsigned long currentMillis; // store the current value from millis() |
4799 | -unsigned long nextExecuteMillis; // for comparison with currentMillis |
4800 | - |
4801 | - |
4802 | -/*============================================================================== |
4803 | - * FUNCTIONS |
4804 | - *============================================================================*/ |
4805 | - |
4806 | -void analogWriteCallback(byte pin, int value) |
4807 | -{ |
4808 | - switch(pin) { |
4809 | - case 9: servo9.write(value); break; |
4810 | - case 10: servo10.write(value); break; |
4811 | - case 3: |
4812 | - case 5: |
4813 | - case 6: |
4814 | - case 11: // PWM pins |
4815 | - analogWrite(pin, value); |
4816 | - break; |
4817 | - } |
4818 | -} |
4819 | -// ----------------------------------------------------------------------------- |
4820 | -// sets bits in a bit array (int) to toggle the reporting of the analogIns |
4821 | -void reportAnalogCallback(byte pin, int value) |
4822 | -{ |
4823 | - if(value == 0) { |
4824 | - analogInputsToReport = analogInputsToReport &~ (1 << pin); |
4825 | - } |
4826 | - else { // everything but 0 enables reporting of that pin |
4827 | - analogInputsToReport = analogInputsToReport | (1 << pin); |
4828 | - } |
4829 | - // TODO: save status to EEPROM here, if changed |
4830 | -} |
4831 | - |
4832 | -/*============================================================================== |
4833 | - * SETUP() |
4834 | - *============================================================================*/ |
4835 | -void setup() |
4836 | -{ |
4837 | - Firmata.setFirmwareVersion(0, 2); |
4838 | - Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); |
4839 | - Firmata.attach(REPORT_ANALOG, reportAnalogCallback); |
4840 | - |
4841 | - servo9.attach(9); |
4842 | - servo10.attach(10); |
4843 | - Firmata.begin(57600); |
4844 | -} |
4845 | - |
4846 | -/*============================================================================== |
4847 | - * LOOP() |
4848 | - *============================================================================*/ |
4849 | -void loop() |
4850 | -{ |
4851 | - while(Firmata.available()) |
4852 | - Firmata.processInput(); |
4853 | - currentMillis = millis(); |
4854 | - if(currentMillis > nextExecuteMillis) { |
4855 | - nextExecuteMillis = currentMillis + 19; // run this every 20ms |
4856 | - for(analogPin=0;analogPin<TOTAL_ANALOG_PINS;analogPin++) { |
4857 | - if( analogInputsToReport & (1 << analogPin) ) |
4858 | - Firmata.sendAnalog(analogPin, analogRead(analogPin)); |
4859 | - } |
4860 | - } |
4861 | -} |
4862 | - |
4863 | |
4864 | === removed file 'examples/Firmata/examples/AnalogFirmata/Makefile' |
4865 | --- examples/Firmata/examples/AnalogFirmata/Makefile 2010-02-12 19:25:26 +0000 |
4866 | +++ examples/Firmata/examples/AnalogFirmata/Makefile 1970-01-01 00:00:00 +0000 |
4867 | @@ -1,263 +0,0 @@ |
4868 | -# Arduino makefile |
4869 | -# |
4870 | -# This makefile allows you to build sketches from the command line |
4871 | -# without the Arduino environment (or Java). |
4872 | -# |
4873 | -# The Arduino environment does preliminary processing on a sketch before |
4874 | -# compiling it. If you're using this makefile instead, you'll need to do |
4875 | -# a few things differently: |
4876 | -# |
4877 | -# - Give your program's file a .cpp extension (e.g. foo.cpp). |
4878 | -# |
4879 | -# - Put this line at top of your code: #include <WProgram.h> |
4880 | -# |
4881 | -# - Write prototypes for all your functions (or define them before you |
4882 | -# call them). A prototype declares the types of parameters a |
4883 | -# function will take and what type of value it will return. This |
4884 | -# means that you can have a call to a function before the definition |
4885 | -# of the function. A function prototype looks like the first line of |
4886 | -# the function, with a semi-colon at the end. For example: |
4887 | -# int digitalRead(int pin); |
4888 | -# |
4889 | -# Instructions for using the makefile: |
4890 | -# |
4891 | -# 1. Copy this file into the folder with your sketch. |
4892 | -# |
4893 | -# 2. Below, modify the line containing "TARGET" to refer to the name of |
4894 | -# of your program's file without an extension (e.g. TARGET = foo). |
4895 | -# |
4896 | -# 3. Modify the line containg "ARDUINO" to point the directory that |
4897 | -# contains the Arduino core (for normal Arduino installations, this |
4898 | -# is the hardware/cores/arduino sub-directory). |
4899 | -# |
4900 | -# 4. Modify the line containing "PORT" to refer to the filename |
4901 | -# representing the USB or serial connection to your Arduino board |
4902 | -# (e.g. PORT = /dev/tty.USB0). If the exact name of this file |
4903 | -# changes, you can use * as a wildcard (e.g. PORT = /dev/tty.USB*). |
4904 | -# |
4905 | -# 5. At the command line, change to the directory containing your |
4906 | -# program's file and the makefile. |
4907 | -# |
4908 | -# 6. Type "make" and press enter to compile/verify your program. |
4909 | -# |
4910 | -# 7. Type "make upload", reset your Arduino board, and press enter to |
4911 | -# upload your program to the Arduino board. |
4912 | -# |
4913 | -# $Id: Makefile,v 1.7 2007/04/13 05:28:23 eighthave Exp $ |
4914 | - |
4915 | -PORT = /dev/tty.usbserial-* |
4916 | -TARGET := $(shell pwd | sed 's|.*/\(.*\)|\1|') |
4917 | -ARDUINO = /Applications/arduino |
4918 | -ARDUINO_SRC = $(ARDUINO)/hardware/cores/arduino |
4919 | -ARDUINO_LIB_SRC = $(ARDUINO)/hardware/libraries |
4920 | -INCLUDE = -I$(ARDUINO_SRC) -I$(ARDUINO)/hardware/tools/avr/avr/include \ |
4921 | - -I$(ARDUINO_LIB_SRC)/EEPROM \ |
4922 | - -I$(ARDUINO_LIB_SRC)/Firmata \ |
4923 | - -I$(ARDUINO_LIB_SRC)/Servo \ |
4924 | - -I$(ARDUINO_LIB_SRC) |
4925 | -SRC = $(wildcard $(ARDUINO_SRC)/*.c) |
4926 | -CXXSRC = applet/$(TARGET).cpp $(ARDUINO_SRC)/HardwareSerial.cpp \ |
4927 | - $(ARDUINO_LIB_SRC)/EEPROM/EEPROM.cpp \ |
4928 | - $(ARDUINO_LIB_SRC)/Firmata/Firmata.cpp \ |
4929 | - $(ARDUINO_LIB_SRC)/Servo/Servo.cpp \ |
4930 | - $(ARDUINO_SRC)/WMath.cpp |
4931 | -HEADERS = $(wildcard $(ARDUINO_SRC)/*.h) $(wildcard $(ARDUINO_LIB_SRC)/*/*.h) |
4932 | - |
4933 | -MCU = atmega168 |
4934 | -#MCU = atmega8 |
4935 | -F_CPU = 16000000 |
4936 | -FORMAT = ihex |
4937 | -UPLOAD_RATE = 19200 |
4938 | - |
4939 | -# Name of this Makefile (used for "make depend"). |
4940 | -MAKEFILE = Makefile |
4941 | - |
4942 | -# Debugging format. |
4943 | -# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. |
4944 | -# AVR (extended) COFF requires stabs, plus an avr-objcopy run. |
4945 | -DEBUG = stabs |
4946 | - |
4947 | -OPT = s |
4948 | - |
4949 | -# Place -D or -U options here |
4950 | -CDEFS = -DF_CPU=$(F_CPU) |
4951 | -CXXDEFS = -DF_CPU=$(F_CPU) |
4952 | - |
4953 | -# Compiler flag to set the C Standard level. |
4954 | -# c89 - "ANSI" C |
4955 | -# gnu89 - c89 plus GCC extensions |
4956 | -# c99 - ISO C99 standard (not yet fully implemented) |
4957 | -# gnu99 - c99 plus GCC extensions |
4958 | -CSTANDARD = -std=gnu99 |
4959 | -CDEBUG = -g$(DEBUG) |
4960 | -CWARN = -Wall -Wstrict-prototypes |
4961 | -CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums |
4962 | -#CEXTRA = -Wa,-adhlns=$(<:.c=.lst) |
4963 | - |
4964 | -CFLAGS = $(CDEBUG) $(CDEFS) $(INCLUDE) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) |
4965 | -CXXFLAGS = $(CDEFS) $(INCLUDE) -O$(OPT) |
4966 | -#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs |
4967 | -LDFLAGS = |
4968 | - |
4969 | - |
4970 | -# Programming support using avrdude. Settings and variables. |
4971 | -AVRDUDE_PROGRAMMER = stk500 |
4972 | -AVRDUDE_PORT = $(PORT) |
4973 | -AVRDUDE_WRITE_FLASH = -U flash:w:applet/$(TARGET).hex |
4974 | -AVRDUDE_FLAGS = -F -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \ |
4975 | - -b $(UPLOAD_RATE) -q -V |
4976 | - |
4977 | -# Program settings |
4978 | -CC = avr-gcc |
4979 | -CXX = avr-g++ |
4980 | -OBJCOPY = avr-objcopy |
4981 | -OBJDUMP = avr-objdump |
4982 | -SIZE = avr-size |
4983 | -NM = avr-nm |
4984 | -AVRDUDE = avrdude |
4985 | -REMOVE = rm -f |
4986 | -MV = mv -f |
4987 | - |
4988 | -# Define all object files. |
4989 | -OBJ = $(SRC:.c=.o) $(CXXSRC:.cpp=.o) $(ASRC:.S=.o) |
4990 | - |
4991 | -# Define all listing files. |
4992 | -LST = $(ASRC:.S=.lst) $(CXXSRC:.cpp=.lst) $(SRC:.c=.lst) |
4993 | - |
4994 | -# Combine all necessary flags and optional flags. |
4995 | -# Add target processor to flags. |
4996 | -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) |
4997 | -ALL_CXXFLAGS = -mmcu=$(MCU) -I. $(CXXFLAGS) |
4998 | -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) |
4999 | - |
5000 | - |
The diff has been truncated for viewing.
This might be easier to read: bazaar. launchpad. net/~showard314 /arduino/ packaging- proposed/ revision/ 3
http://