diff options
37 files changed, 1133 insertions, 1016 deletions
diff --git a/Build/source/utils/README b/Build/source/utils/README index efee76bc59e..b7f07112a58 100644 --- a/Build/source/utils/README +++ b/Build/source/utils/README @@ -4,7 +4,7 @@ Public domain. Originally written 2005 by Karl Berry. Extra utilities we (optionally) compile for TeX Live. See comments in ../texk/README. -asymptote 2.25 - checked 21apr14 +asymptote 2.26 - checked 28apr14 update to TL from CTAN, to include prebuilt doc. see http://tug.org/texlive/build.html#asymptote and tlpkg/bin/tl-update-asy diff --git a/Build/source/utils/asymptote/ChangeLog b/Build/source/utils/asymptote/ChangeLog index b7970cb2cd3..eb4696aa1e0 100644 --- a/Build/source/utils/asymptote/ChangeLog +++ b/Build/source/utils/asymptote/ChangeLog @@ -1,4 +1,117 @@ ------------------------------------------------------------------------ +r5615 | jcbowman | 2014-04-26 10:59:00 -0600 (Sat, 26 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/patches/flex.patch + +Update flex patch. + +------------------------------------------------------------------------ +r5614 | jcbowman | 2014-04-26 10:24:56 -0600 (Sat, 26 Apr 2014) | 3 lines +Changed paths: + M /trunk/asymptote/Makefile.in + M /trunk/asymptote/asymptote.spec + A /trunk/asymptote/svnrevision + +Don't test for an svn release if special file svnrevision is missing, so that +release code imported via svn still uses the official release version. + +------------------------------------------------------------------------ +r5613 | jcbowman | 2014-04-25 20:58:03 -0600 (Fri, 25 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/interact.cc + +Test for POSIX 2008. + +------------------------------------------------------------------------ +r5612 | jcbowman | 2014-04-25 20:57:06 -0600 (Fri, 25 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/Makefile.in + +Address portability issue. + +------------------------------------------------------------------------ +r5611 | jcbowman | 2014-04-25 20:52:07 -0600 (Fri, 25 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/memory.h + M /trunk/asymptote/runmath.in + +Support c++11. + +------------------------------------------------------------------------ +r5610 | jcbowman | 2014-04-25 09:58:48 -0600 (Fri, 25 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/memory.h + +Use unordered_map if __GNUC_PREREQ is not set. + +------------------------------------------------------------------------ +r5609 | jcbowman | 2014-04-22 10:36:57 -0600 (Tue, 22 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/README + M /trunk/asymptote/doc/asymptote.texi + +Update documentation. + +------------------------------------------------------------------------ +r5608 | jcbowman | 2014-04-22 08:57:14 -0600 (Tue, 22 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/base/plain_arrows.asy + M /trunk/asymptote/base/three_arrows.asy + +Fix degenerate HookHead and SimpleHead arrows. + +------------------------------------------------------------------------ +r5607 | jcbowman | 2014-04-21 22:56:24 -0600 (Mon, 21 Apr 2014) | 2 lines +Changed paths: + D /trunk/asymptote/doc/.cvsignore + M /trunk/asymptote/doc/Makefile.in + M /trunk/asymptote/doc/extra/intro.asy + D /trunk/asymptote/examples/.cvsignore + M /trunk/asymptote/examples/refs.bib + +Remove unused files; update references. + +------------------------------------------------------------------------ +r5606 | jcbowman | 2014-04-21 14:24:14 -0600 (Mon, 21 Apr 2014) | 4 lines +Changed paths: + M /trunk/asymptote/GUI/xasy2asy.py + M /trunk/asymptote/GUI/xasyCodeEditor.py + M /trunk/asymptote/GUI/xasyMainWin.py + M /trunk/asymptote/GUI/xasyOptions.py + +Make xasy terminate asy process upon exit. + +Use winpad as the default code editor under MSWindows. + +------------------------------------------------------------------------ +r5605 | jcbowman | 2014-04-21 11:08:02 -0600 (Mon, 21 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/GUI/xasyCodeEditor.py + +Fix xasy code editor under MSWindows. + +------------------------------------------------------------------------ +r5604 | jcbowman | 2014-04-20 13:06:53 -0600 (Sun, 20 Apr 2014) | 2 lines +Changed paths: + M /trunk/asymptote/base/CAD.asy + M /trunk/asymptote/base/embed.asy + M /trunk/asymptote/doc/CAD.tex + M /trunk/asymptote/doc/CAD1.asy + M /trunk/asymptote/doc/asymptote.texi + M /trunk/asymptote/doc/extra/intro.asy + D /trunk/asymptote/doc/extra/intro_.bbl + M /trunk/asymptote/doc/ocg.sty + M /trunk/asymptote/examples/worldmap.asy + +Miscellaneous CTAN updates. + +------------------------------------------------------------------------ +r5603 | jcbowman | 2014-04-20 02:57:11 -0600 (Sun, 20 Apr 2014) | 1 line +Changed paths: + M /trunk/asymptote/configure.ac + +Increment version to 2.26svn. +------------------------------------------------------------------------ r5602 | jcbowman | 2014-04-20 00:12:08 -0600 (Sun, 20 Apr 2014) | 2 lines Changed paths: M /trunk/asymptote/doc/asymptote.texi diff --git a/Build/source/utils/asymptote/GUI/xasy2asy.py b/Build/source/utils/asymptote/GUI/xasy2asy.py index 984bd1f5dd9..3a2c1bcbe7b 100755 --- a/Build/source/utils/asymptote/GUI/xasy2asy.py +++ b/Build/source/utils/asymptote/GUI/xasy2asy.py @@ -65,6 +65,10 @@ def startQuickAsy(): except: quickAsyFailed = True +def stopQuickAsy(): + if quickAsyRunning(): + fout.write("exit;\n"); + def getAsyTempDir(): return AsyTempDir diff --git a/Build/source/utils/asymptote/GUI/xasyCodeEditor.py b/Build/source/utils/asymptote/GUI/xasyCodeEditor.py index 1f7ad60328f..d09196a41be 100755 --- a/Build/source/utils/asymptote/GUI/xasyCodeEditor.py +++ b/Build/source/utils/asymptote/GUI/xasyCodeEditor.py @@ -21,21 +21,26 @@ import xasyOptions def getText(text=""): """Launch the external editor""" temp = mkstemp() - tempf = fdopen(temp[0],"r+w") + tempf = fdopen(temp[0],"w") tempf.write(text) - tempf.flush() + tempf.close() try: - cmdpath,cmd = path.split(xasyOptions.options['externalEditor']) + cmdpath,cmd = path.split(path.expandvars(xasyOptions.options['externalEditor'])) split_cmd = split(cmd) cmdpart = [path.join(cmdpath,split_cmd[0])] argpart = split_cmd[1:]+[temp[1]] arglist = cmdpart+argpart call(arglist) - except: + except Exception as e: raise Exception('Error launching external editor.') - tempf.seek(0) - text = tempf.read() - remove(temp[1]) + + try: + tempf = open(temp[1],"r") + text = tempf.read() + tempf.close() + remove(temp[1]) + except Exception as e: + raise Exception('Error reading from external editor.') return text if __name__ == '__main__': diff --git a/Build/source/utils/asymptote/GUI/xasyMainWin.py b/Build/source/utils/asymptote/GUI/xasyMainWin.py index e3a0044011a..657d24ba81b 100755 --- a/Build/source/utils/asymptote/GUI/xasyMainWin.py +++ b/Build/source/utils/asymptote/GUI/xasyMainWin.py @@ -566,6 +566,8 @@ class xasyMainWin: os.rmdir(getAsyTempDir()) except: pass + + stopQuickAsy() self.parent.destroy() def openFile(self,name): diff --git a/Build/source/utils/asymptote/GUI/xasyOptions.py b/Build/source/utils/asymptote/GUI/xasyOptions.py index 4406687cbf4..17d58d760e5 100755 --- a/Build/source/utils/asymptote/GUI/xasyOptions.py +++ b/Build/source/utils/asymptote/GUI/xasyOptions.py @@ -33,7 +33,7 @@ defaultOptions = { } if sys.platform[:3] == "win": - defaultOptions['externalEditor'] = "notepad.exe" + defaultOptions['externalEditor'] = "%PROGRAMFILES%\Windows NT\Accessories\wordpad.exe" else: defaultOptions['externalEditor'] = "emacs" diff --git a/Build/source/utils/asymptote/Makefile.in b/Build/source/utils/asymptote/Makefile.in index 28be5fcc2ba..30ad960255c 100644 --- a/Build/source/utils/asymptote/Makefile.in +++ b/Build/source/utils/asymptote/Makefile.in @@ -37,7 +37,7 @@ COREFILES = $(CAMP) $(SYMBOL_FILES) env genv stm dec errormsg \ fftw++asy simpson coder coenv impdatum \ @getopt@ locate parser program application varinit fundec refaccess \ envcompleter process constructor array Delaunay predicates \ - $(PRC) glrender tr arcball algebra3 quaternion svnrevision + $(PRC) glrender tr arcball algebra3 quaternion FILES = $(COREFILES) main @@ -99,17 +99,23 @@ asy: version GUIversion if test -n "$(MSDOS)"; then \ cat asy.rc | sed -e "s/ASYMPTOTE_VERSION/@VERSION@$(revision)/" | \ windres -o asy.o; \ - $(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) asy.o $(LIBS) -s -static; \ + $(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) svnrevision.o asy.o $(LIBS) -s -static; \ else \ ln -sf GUI/xasy.py $(XNAME); \ - $(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) $(LIBS); \ + $(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) svnrevision.o $(LIBS); \ fi version: $(GCLIB) $(FILES:=.o) - if test "$(revision)" != "$(last)"; then \ - echo $(REVISION)\"$(revision)\"\; > svnrevision.cc; \ + if test -r svnrevision; then \ + if test "$(revision)" != "$(last)"; then \ + echo $(REVISION)\"$(revision)\"\; > svnrevision.cc; \ + $(CXX) $(OPTS) $(INCL) -o svnrevision.o -c svnrevision.cc; \ + fi \ + else \ + echo $(REVISION)\"\"\; > svnrevision.cc; \ $(CXX) $(OPTS) $(INCL) -o svnrevision.o -c svnrevision.cc; \ fi + echo string VERSION=\"@VERSION@$(revision)\"\; > base/version.asy echo @set VERSION @VERSION@$(revision) > doc/version.texi echo @set Datadir @datadir@ >> doc/version.texi @@ -119,10 +125,7 @@ GUIversion: echo xasyVersion = \"@VERSION@$(revision)\" >> GUI/xasyVersion.py asymptote.so: $(COREFILES:=.pic.o) - $(CXX) $(OPTS) -shared -o asymptote.so $(COREFILES:=.pic.o) $(SHAREDLIBS) - -svnrevision.cc: - echo $(REVISION)\"\"\; > svnrevision.cc; + $(CXX) $(OPTS) -shared -o asymptote.so svnrevision.o $(COREFILES:=.pic.o) $(SHAREDLIBS) all: asy sty man faq asy-keywords.el @@ -130,7 +133,7 @@ $(GCLIB): $(GC).tar.gz gunzip -c $(GC).tar.gz > $(GC).tar tar -xf $(GC).tar rm -f $(GC).tar - if test -e $(LIBATOMIC).tar.gz; then \ + if test -r $(LIBATOMIC).tar.gz; then \ gunzip -c $(LIBATOMIC).tar.gz > $(LIBATOMIC).tar; \ tar -xf $(LIBATOMIC).tar; \ rm -f $(LIBATOMIC).tar; \ @@ -149,7 +152,7 @@ $(GCLIB): $(GC).tar.gz if test "$(GC)" = "gc-7.2d"; then \ mv gc-7.2 gc-7.2d; \ fi - cd $(GC); \ + cd $(GC) && \ ./configure $(GCOPTIONS); \ $(MAKE) check diff --git a/Build/source/utils/asymptote/README b/Build/source/utils/asymptote/README index 2ae52a0ba7e..85b0188c317 100644 --- a/Build/source/utils/asymptote/README +++ b/Build/source/utils/asymptote/README @@ -2,7 +2,7 @@ Copyright 2004-14 Andy Hammerlindl, John Bowman, and Tom Prince Asymptote is a powerful descriptive vector graphics language for technical -drawings, inspired by MetaPost but with an improved C++-like +drawing, inspired by MetaPost but with an improved C++-like syntax. Asymptote provides for figures the same high-quality level of typesetting that LaTeX does for scientific text. diff --git a/Build/source/utils/asymptote/ReleaseNotes b/Build/source/utils/asymptote/ReleaseNotes index 80e30b1b638..1cf697c0ac2 100644 --- a/Build/source/utils/asymptote/ReleaseNotes +++ b/Build/source/utils/asymptote/ReleaseNotes @@ -1,3 +1,10 @@ +Release Notes for Version 2.26 + +The xasy graphical user interface now terminates the asy process on exit. +The xasy code editor under MSWindows was fixed; the default code editor is +now winpad. Degenerate HookHead and SimpleHead arrows were fixed. +Portability issues were addressed. + Release Notes for Version 2.25 A superfluous play button in rendered 3D images embedded by recent versions of diff --git a/Build/source/utils/asymptote/asy-keywords.el b/Build/source/utils/asymptote/asy-keywords.el index f2802d6aecc..5156a830ea3 100644 --- a/Build/source/utils/asymptote/asy-keywords.el +++ b/Build/source/utils/asymptote/asy-keywords.el @@ -2,7 +2,7 @@ ;; This file is automatically generated by asy-list.pl. ;; Changes will be overwritten. ;; -(defvar asy-keywords-version "2.25") +(defvar asy-keywords-version "2.26") (defvar asy-keyword-name '( and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator )) diff --git a/Build/source/utils/asymptote/asy.list b/Build/source/utils/asymptote/asy.list index 3504abf635b..f9d8d4cab19 100644 --- a/Build/source/utils/asymptote/asy.list +++ b/Build/source/utils/asymptote/asy.list @@ -238,9 +238,9 @@ pair min(frame f); pair min(path p); pair min(path[] p); triple min(path3 p); +pair min(picture pic, bool user=<default>); real min(... real[] a); real min(real m, scaling s, coord[] c); -pair min(picture pic, bool user=<default>); real min(real m, scaling s, coord[] c); int min(... int[] a); filltype RadialShade(pen penc, pen penr); @@ -252,20 +252,20 @@ int search(real[] a, real key, bool less(real, real)); int search(guide[] a, guide key, bool less(guide, guide)); int search(coord[] a, coord key, bool less(coord, coord)); int search(pair[] a, pair key, bool less(pair, pair)); -int search(coord[] a, coord key, bool less(coord, coord)); int search(object[] a, object key, bool less(object, object)); -int search(frame[] a, frame key, bool less(frame, frame)); int search(Legend[] a, Legend key, bool less(Legend, Legend)); +int search(frame[] a, frame key, bool less(frame, frame)); +int search(coord[] a, coord key, bool less(coord, coord)); int search(Label[] a, Label key, bool less(Label, Label)); int search(int[] a, int key, bool less(int, int)); int search(bool3[] a, bool3 key, bool less(bool3, bool3)); +int search(picture[] a, picture key, bool less(picture, picture)); int search(marker[] a, marker key, bool less(marker, marker)); int search(string[] a, string key, bool less(string, string)); int search(path[] a, path key, bool less(path, path)); int search(pen[] a, pen key, bool less(pen, pen)); int search(bool[] a, bool key, bool less(bool, bool)); int search(triple[] a, triple key, bool less(triple, triple)); -int search(picture[] a, picture key, bool less(picture, picture)); filltype RadialShadeDraw(real xmargin=<default>, real ymargin=<default>, pen penc, pen penr, pen drawpen=<default>); real sin(real x); real[] sin(real[] a); @@ -340,11 +340,11 @@ pair max(frame f); pair max(path p); pair max(path[] p); triple max(path3 p); -pair max(picture pic, bool user=<default>); +real max(real M, scaling s, coord[] c); real max(real M, scaling s, coord[] c); int max(... int[] a); +pair max(picture pic, bool user=<default>); real max(... real[] a); -real max(real M, scaling s, coord[] c); Label Label(Label L, pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>); Label Label(string s, string size=<default>, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>); Label Label(Label L, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>); @@ -518,9 +518,8 @@ bool[] copy(bool[] a, int depth=<default>); real[][] copy(real[][] a, int depth=<default>); pen[] copy(pen[] a, int depth=<default>); coord[] copy(coord[] a, int depth=<default>); -picture[] copy(picture[] a, int depth=<default>); +coord[] copy(coord[] a, int depth=<default>); marker[] copy(marker[] a, int depth=<default>); -Legend[] copy(Legend[] a, int depth=<default>); Label[] copy(Label[] a, int depth=<default>); pen[][] copy(pen[][] a, int depth=<default>); path[] copy(path[] a, int depth=<default>); @@ -531,8 +530,9 @@ string[][] copy(string[][] a, int depth=<default>); frame[] copy(frame[] a, int depth=<default>); pair[] copy(pair[] a, int depth=<default>); bool3[] copy(bool3[] a, int depth=<default>); -coord[] copy(coord[] a, int depth=<default>); object[] copy(object[] a, int depth=<default>); +picture[] copy(picture[] a, int depth=<default>); +Legend[] copy(Legend[] a, int depth=<default>); pair[][] copy(pair[][] a, int depth=<default>); real[] abs(pair[] a); real[] abs(triple[] a); @@ -565,21 +565,21 @@ pen palered; real[] map(real f(pair), pair[] a); int[] map(int f(real), real[] a); bool3[] map(bool3 f(bool3), bool3[] a); +picture[] map(picture f(picture), picture[] a); frame[] map(frame f(frame), frame[] a); -Legend[] map(Legend f(Legend), Legend[] a); +coord[] map(coord f(coord), coord[] a); Label[] map(Label f(Label), Label[] a); pen[][] map(pen[] f(pen[]), pen[][] a); triple[] map(triple f(triple), triple[] a); pen[] map(pen f(pen), pen[] a); -coord[] map(coord f(coord), coord[] a); object[] map(object f(object), object[] a); +Legend[] map(Legend f(Legend), Legend[] a); pair[] map(pair f(pair), pair[] a); coord[] map(coord f(coord), coord[] a); string[] map(string f(string), string[] a); void()()[] map(void f()()(void()()), void()()[] a); pair[][] map(pair[] f(pair[]), pair[][] a); real[] map(real f(real), real[] a); -picture[] map(picture f(picture), picture[] a); int[] map(int f(int), int[] a); string[][] map(string[] f(string[]), string[][] a); bool[] map(bool f(bool), bool[] a); @@ -601,9 +601,8 @@ pair minratio(path3 g); int[] sequence(int n); pen[][] sequence(pen[] f(int), int n); coord[] sequence(coord f(int), int n); -picture[] sequence(picture f(int), int n); +coord[] sequence(coord f(int), int n); marker[] sequence(marker f(int), int n); -Legend[] sequence(Legend f(int), int n); Label[] sequence(Label f(int), int n); int[] sequence(int f(int), int n); string[][] sequence(string[] f(int), int n); @@ -615,8 +614,9 @@ bool[] sequence(bool f(int), int n); string[] sequence(string f(int), int n); pair[][] sequence(pair[] f(int), int n); bool3[] sequence(bool3 f(int), int n); -coord[] sequence(coord f(int), int n); object[] sequence(object f(int), int n); +picture[] sequence(picture f(int), int n); +Legend[] sequence(Legend f(int), int n); real[][] sequence(real[] f(int), int n); real[] sequence(real f(int), int n); int[] sequence(int n, int m); @@ -700,7 +700,6 @@ void add(picture src, bool group=<default>, filltype filltype=<default>, bool ab void add(picture pic=<default>, void d(frame f, transform t), bool exact=<default>); void add(picture pic=<default>, void d(picture, real[][]), bool exact=<default>); void add(picture dest, picture src, bool group=<default>, filltype filltype=<default>, bool above=<default>); -void add(picture pic=<default>, Label L); void add(picture dest, picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>); void add(picture dest=<default>, object F, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>); void add(frame dest, frame src, filltype filltype, bool above=<default>); @@ -709,6 +708,7 @@ void add(picture pic=<default>, void d(frame f, real[][] t, picture pic, project void add(frame dest, frame src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>); void add(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>); void add(picture pic=<default>, void d(picture, transform), bool exact=<default>); +void add(picture pic=<default>, Label L); void add(frame f, transform t=<default>, Label L); void add(picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>); plain plain; @@ -737,8 +737,9 @@ bool[] array(int n, bool value, int depth=<default>); string[] array(int n, string value, int depth=<default>); pair[][] array(int n, pair[] value, int depth=<default>); bool3[] array(int n, bool3 value, int depth=<default>); -coord[] array(int n, coord value, int depth=<default>); object[] array(int n, object value, int depth=<default>); +picture[] array(int n, picture value, int depth=<default>); +Legend[] array(int n, Legend value, int depth=<default>); real[][] array(int n, real[] value, int depth=<default>); real[] array(int n, real value, int depth=<default>); triple[] array(int n, triple value, int depth=<default>); @@ -746,9 +747,8 @@ path[] array(int n, path value, int depth=<default>); frame[] array(int n, frame value, int depth=<default>); pen[][] array(int n, pen[] value, int depth=<default>); coord[] array(int n, coord value, int depth=<default>); -picture[] array(int n, picture value, int depth=<default>); +coord[] array(int n, coord value, int depth=<default>); marker[] array(int n, marker value, int depth=<default>); -Legend[] array(int n, Legend value, int depth=<default>); Label[] array(int n, Label value, int depth=<default>); int[] array(int n, int value, int depth=<default>); string[][] array(int n, string[] value, int depth=<default>); @@ -872,6 +872,7 @@ void write(file file=<default>, string s=<default>, guide x, void suffix(file)=< void write(file file=<default>, string s=<default>, pen x, void suffix(file)=<default> ... pen[]); void write(file file, string s=<default>, explicit guide[] x, void suffix(file)=<default>); void write(string s=<default>, cputime c, string format=<default>, void suffix(file)=<default>); +void write(pairOrTriple a); void write(string s=<default>, explicit path[] x, void suffix(file)=<default>); void write(file file, void suffix(file)=<default>); void write(file file=<default>, string s=<default>, pen[] p); @@ -879,7 +880,6 @@ void write(void suffix(file)=<default>); void write(file file, string s=<default>, explicit path[] x, void suffix(file)=<default>); void write(file file=<default>, Label L, void suffix(file)=<default>); void write(file file, string s=<default>, cputime c, string format=<default>, void suffix(file)=<default>); -void write(pairOrTriple a); void write(string s=<default>, bool3 b, void suffix(file)=<default>); void write(file file, string s=<default>, bool3 b, void suffix(file)=<default>); void write(string s=<default>, explicit guide[] x, void suffix(file)=<default>); @@ -935,19 +935,19 @@ pen dotted; string blend(pen p); arrowhead HookHead; arrowhead HookHead(real dir=<default>, real barb=<default>); -picture[] concat(... picture[][]); real[] concat(... real[][]); pair[] concat(... pair[][]); coord[] concat(... coord[][]); pen[] concat(... pen[][]); -coord[] concat(... coord[][]); object[] concat(... object[][]); -path[] concat(... path[][]); Legend[] concat(... Legend[][]); +path[] concat(... path[][]); +coord[] concat(... coord[][]); Label[] concat(... Label[][]); int[] concat(... int[][]); void()()[] concat(... void()()[][]); bool3[] concat(... bool3[][]); +picture[] concat(... picture[][]); string[] concat(... string[][]); marker[] concat(... marker[][]); triple[] concat(... triple[][]); @@ -961,16 +961,16 @@ real infinity; bool alias(pair[][] a, pair[][] b); bool alias(guide[] a, guide[] b); bool alias(marginT a, marginT b); +bool alias(coord[] a, coord[] b); bool alias(projection a, projection b); bool alias(side a, side b); bool alias(marker a, marker b); -bool alias(Legend[] a, Legend[] b); bool alias(Label[] a, Label[] b); bool alias(pair[] a, pair[] b); -bool alias(coord a, coord b); +bool alias(scaling a, scaling b); bool alias(bounds a, bounds b); bool alias(scaleT a, scaleT b); -bool alias(pairOrTriple a, pairOrTriple b); +bool alias(Legend a, Legend b); bool alias(object a, object b); bool alias(cputime a, cputime b); bool alias(int[] a, int[] b); @@ -978,40 +978,40 @@ bool alias(string[][] a, string[][] b); bool alias(slice a, slice b); bool alias(coord[] a, coord[] b); bool alias(coords2 a, coords2 b); -bool alias(picture a, picture b); +bool alias(pairOrTriple a, pairOrTriple b); bool alias(framedTransformStack a, framedTransformStack b); bool alias(real[][] a, real[][] b); bool alias(bool3 a, bool3 b); bool alias(bool3[] a, bool3[] b); bool alias(light a, light b); +bool alias(picture a, picture b); bool alias(position a, position b); +bool alias(picture[] a, picture[] b); bool alias(arrowhead a, arrowhead b); bool alias(string[] a, string[] b); bool alias(frame[] a, frame[] b); -bool alias(scaling a, scaling b); +bool alias(coords2 a, coords2 b); bool alias(coord a, coord b); bool alias(autoscaleT a, autoscaleT b); -bool alias(picture[] a, picture[] b); bool alias(bool[] a, bool[] b); bool alias(void()()[] a, void()()[] b); bool alias(pen[][] a, pen[][] b); bool alias(filltype a, filltype b); -bool alias(coord[] a, coord[] b); bool alias(freezableBounds a, freezableBounds b); bool alias(transformation a, transformation b); bool alias(align a, align b); bool alias(object[] a, object[] b); +bool alias(Legend[] a, Legend[] b); bool alias(path[] a, path[] b); bool alias(triple[] a, triple[] b); +bool alias(coord a, coord b); bool alias(coords3 a, coords3 b); -bool alias(Legend a, Legend b); bool alias(Label a, Label b); bool alias(marker[] a, marker[] b); bool alias(processtime a, processtime b); bool alias(real[] a, real[] b); bool alias(pen[] a, pen[] b); bool alias(hsv a, hsv b); -bool alias(coords2 a, coords2 b); bool alias(scaling a, scaling b); bool alias(ScaleT a, ScaleT b); bool alias(indexedTransform a, indexedTransform b); @@ -1020,8 +1020,8 @@ int getint(string name=<default>, int default=<default>, string prompt=<default> bool IgnoreAspect; void postscript(frame f, string s); void postscript(frame f, string s, pair min, pair max); -void postscript(picture pic=<default>, string s, pair min, pair max); void postscript(picture pic=<default>, string s); +void postscript(picture pic=<default>, string s, pair min, pair max); transform slant(real s); void breakpoint(code s=<default>); void breakpoints(); @@ -1041,7 +1041,6 @@ real[][] sort(real[][] a); string[] sort(string[] a); string[][] sort(string[][] a); path[] sort(path[] a, bool less(path, path)); -picture[] sort(picture[] a, bool less(picture, picture)); pair[] sort(pair[] a, bool less(pair, pair)); void()()[] sort(void()()[] a, bool less(void()(), void()())); real[] sort(real[] a, bool less(real, real)); @@ -1049,17 +1048,18 @@ bool[] sort(bool[] a, bool less(bool, bool)); coord[] sort(coord[] a, bool less(coord, coord)); pen[] sort(pen[] a, bool less(pen, pen)); pen[][] sort(pen[][] a, bool less(pen[], pen[])); -coord[] sort(coord[] a, bool less(coord, coord)); object[] sort(object[] a, bool less(object, object)); +Legend[] sort(Legend[] a, bool less(Legend, Legend)); guide[] sort(guide[] a, bool less(guide, guide)); real[][] sort(real[][] a, bool less(real[], real[])); triple[] sort(triple[] a, bool less(triple, triple)); -Legend[] sort(Legend[] a, bool less(Legend, Legend)); +coord[] sort(coord[] a, bool less(coord, coord)); Label[] sort(Label[] a, bool less(Label, Label)); string[] sort(string[] a, bool less(string, string)); int[] sort(int[] a, bool less(int, int)); string[][] sort(string[][] a, bool less(string[], string[])); bool3[] sort(bool3[] a, bool less(bool3, bool3)); +picture[] sort(picture[] a, bool less(picture, picture)); pair[][] sort(pair[][] a, bool less(pair[], pair[])); marker[] sort(marker[] a, bool less(marker, marker)); frame[] sort(frame[] a, bool less(frame, frame)); @@ -1124,7 +1124,7 @@ real arrowhookfactor; real arrowtexfactor; void comma(file file); void deletepreamble(); -real[] arrowbasepoints(path base, path left, path right); +real[] arrowbasepoints(path base, path left, path right, real default=<default>); path arrowbase(path r, pair y, real t, real size); int choose(int n, int k); real hypot(real x, real y); @@ -1347,15 +1347,15 @@ triple operator *(real[][] t, triple v); triple operator *(real x, triple v); triple operator *(triple v, real x); path3 operator *(real[][] t, path3 g); -picture operator *(transform t, picture orig); side operator *(real x, side s); Label operator *(real[][] t, Label L); +picture operator *(real[][] t, picture orig); path[] operator *(transform t, explicit path[] p); bounds operator *(transform t, bounds b); object operator *(transform t, explicit object F); pair[] operator *(transform t, pair[] z); Label operator *(transform t, Label L); -picture operator *(real[][] t, picture orig); +picture operator *(transform t, picture orig); bool operator init(); int operator init(); real operator init(); @@ -1378,28 +1378,28 @@ transformation operator init(); align operator init(); slice operator init(); coords2 operator init(); -picture operator init(); +pairOrTriple operator init(); framedTransformStack operator init(); hsv operator init(); -coords2 operator init(); scaling operator init(); ScaleT operator init(); indexedTransform operator init(); -scaling operator init(); +coords2 operator init(); coord operator init(); autoscaleT operator init(); -coord operator init(); +scaling operator init(); bounds operator init(); scaleT operator init(); -pairOrTriple operator init(); +Legend operator init(); object operator init(); cputime operator init(); +coord operator init(); coords3 operator init(); -Legend operator init(); Label operator init(); processtime operator init(); bool3 operator init(); light operator init(); +picture operator init(); position operator init(); arrowhead operator init(); real operator cast(int); @@ -1447,8 +1447,6 @@ guide[] operator cast(path[] g); position operator cast(real x); hsv operator cast(pen p); Label operator cast(string s); -pair operator cast(pairOrTriple a); -triple operator cast(pairOrTriple a); frame operator cast(object F); bool3[] operator cast(bool[] b); align operator cast(side side); @@ -1466,6 +1464,8 @@ path[] operator cast(pair[] z); path[] operator cast(path p); bool[] operator cast(bool3[] b); align operator cast(triple dir); +pair operator cast(pairOrTriple a); +triple operator cast(pairOrTriple a); bool3 operator cast(bool b); pen operator cast(hsv hsv); position operator cast(int x); @@ -1571,21 +1571,21 @@ bool operator ==(path a, path b); bool operator ==(path3 a, path3 b); bool operator ==(bool3 a, bool3 b); bool operator ==(light a, light b); +bool operator ==(picture a, picture b); bool operator ==(position a, position b); bool operator ==(arrowhead a, arrowhead b); -bool operator ==(scaling a, scaling b); +bool operator ==(coords2 a, coords2 b); bool operator ==(coord a, coord b); bool operator ==(autoscaleT a, autoscaleT b); bool operator ==(filltype a, filltype b); bool operator ==(freezableBounds a, freezableBounds b); bool operator ==(transformation a, transformation b); bool operator ==(align a, align b); +bool operator ==(coord a, coord b); bool operator ==(coords3 a, coords3 b); -bool operator ==(Legend a, Legend b); bool operator ==(Label a, Label b); bool operator ==(processtime a, processtime b); bool operator ==(hsv a, hsv b); -bool operator ==(coords2 a, coords2 b); bool operator ==(scaling a, scaling b); bool operator ==(ScaleT a, ScaleT b); bool operator ==(indexedTransform a, indexedTransform b); @@ -1594,16 +1594,16 @@ bool operator ==(marginT a, marginT b); bool operator ==(projection a, projection b); bool operator ==(side a, side b); bool operator ==(marker a, marker b); -bool operator ==(coord a, coord b); +bool operator ==(scaling a, scaling b); bool operator ==(bounds a, bounds b); bool operator ==(scaleT a, scaleT b); -bool operator ==(pairOrTriple a, pairOrTriple b); +bool operator ==(Legend a, Legend b); bool operator ==(object a, object b); bool operator ==(cputime a, cputime b); bool operator ==(bool a, bool3 b); bool operator ==(slice a, slice b); bool operator ==(coords2 a, coords2 b); -bool operator ==(picture a, picture b); +bool operator ==(pairOrTriple a, pairOrTriple b); bool operator ==(framedTransformStack a, framedTransformStack b); bool operator !=(bool a, bool b); bool[] operator !=(bool a, bool[] b); @@ -1643,21 +1643,21 @@ bool operator !=(path a, path b); bool operator !=(path3 a, path3 b); bool operator !=(bool3 a, bool3 b); bool operator !=(light a, light b); +bool operator !=(picture a, picture b); bool operator !=(position a, position b); bool operator !=(arrowhead a, arrowhead b); -bool operator !=(scaling a, scaling b); +bool operator !=(coords2 a, coords2 b); bool operator !=(coord a, coord b); bool operator !=(autoscaleT a, autoscaleT b); bool operator !=(filltype a, filltype b); bool operator !=(freezableBounds a, freezableBounds b); bool operator !=(transformation a, transformation b); bool operator !=(align a, align b); +bool operator !=(coord a, coord b); bool operator !=(coords3 a, coords3 b); -bool operator !=(Legend a, Legend b); bool operator !=(Label a, Label b); bool operator !=(processtime a, processtime b); bool operator !=(hsv a, hsv b); -bool operator !=(coords2 a, coords2 b); bool operator !=(scaling a, scaling b); bool operator !=(ScaleT a, ScaleT b); bool operator !=(indexedTransform a, indexedTransform b); @@ -1666,16 +1666,16 @@ bool operator !=(marginT a, marginT b); bool operator !=(projection a, projection b); bool operator !=(side a, side b); bool operator !=(marker a, marker b); -bool operator !=(coord a, coord b); +bool operator !=(scaling a, scaling b); bool operator !=(bounds a, bounds b); bool operator !=(scaleT a, scaleT b); -bool operator !=(pairOrTriple a, pairOrTriple b); +bool operator !=(Legend a, Legend b); bool operator !=(object a, object b); bool operator !=(cputime a, cputime b); bool operator !=(bool a, bool3 b); bool operator !=(slice a, slice b); bool operator !=(coords2 a, coords2 b); -bool operator !=(picture a, picture b); +bool operator !=(pairOrTriple a, pairOrTriple b); bool operator !=(framedTransformStack a, framedTransformStack b); bool operator <(int a, int b); bool[] operator <(int a, int[] b); @@ -1930,8 +1930,8 @@ real braceinnerangle; real braceouterangle; void tex(frame f, string s); void tex(frame f, string s, pair min, pair max); -void tex(picture pic=<default>, string s, pair min, pair max); void tex(picture pic=<default>, string s); +void tex(picture pic=<default>, string s, pair min, pair max); real bracedefaultratio; bool prconly(string format=<default>); pen Black; diff --git a/Build/source/utils/asymptote/asymptote.spec b/Build/source/utils/asymptote/asymptote.spec index fe8b84cd238..ce32aebae44 100644 --- a/Build/source/utils/asymptote/asymptote.spec +++ b/Build/source/utils/asymptote/asymptote.spec @@ -1,7 +1,7 @@ %{!?_texmf: %define _texmf %(eval "echo `kpsewhich -expand-var '$TEXMFLOCAL'`")} Name: asymptote -Version: 2.25 +Version: 2.26 Release: 1%{?dist} Summary: Descriptive vector graphics language diff --git a/Build/source/utils/asymptote/base/embed.asy b/Build/source/utils/asymptote/base/embed.asy index 30f2881da04..ad2b710c36b 100644 --- a/Build/source/utils/asymptote/base/embed.asy +++ b/Build/source/utils/asymptote/base/embed.asy @@ -10,7 +10,7 @@ if(latex() && !settings.inlineimage) { } // For documentation of the options see -// http://www.ctan.org/tex-archive/macros/latex/contrib/media9/doc/media9.pdf +// http://mirror.ctan.org/macros/latex/contrib/media9/doc/media9.pdf // Embed PRC or SWF content in pdf file string embedplayer(string name, string text="", string options="", diff --git a/Build/source/utils/asymptote/base/plain_arrows.asy b/Build/source/utils/asymptote/base/plain_arrows.asy index 3ae60938ed1..d4220103ce0 100644 --- a/Build/source/utils/asymptote/base/plain_arrows.asy +++ b/Build/source/utils/asymptote/base/plain_arrows.asy @@ -36,12 +36,12 @@ struct arrowhead filltype defaultfilltype(pen) {return FillDraw;} } -real[] arrowbasepoints(path base, path left, path right) +real[] arrowbasepoints(path base, path left, path right, real default=0) { real[][] Tl=transpose(intersections(left,base)); real[][] Tr=transpose(intersections(right,base)); - return new real[] {Tl.length > 0 ? Tl[0][0] : 0, - Tr.length > 0 ? Tr[0][0] : 0}; + return new real[] {Tl.length > 0 ? Tl[0][0] : default, + Tr.length > 0 ? Tr[0][0] : default}; } path arrowbase(path r, pair y, real t, real size) @@ -87,12 +87,12 @@ SimpleHead.head=new path(path g, position position=EndPoint, pen p=currentpen, path base=arrowbase(r,y,t,size); path left=rotate(-angle,x)*r; path right=rotate(angle,x)*r; - real[] T=arrowbasepoints(base,left,right); + real[] T=arrowbasepoints(base,left,right,1); pair denom=point(right,T[1])-y; real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1; path left=rotate(-angle*factor,x)*r; path right=rotate(angle*factor,x)*r; - real[] T=arrowbasepoints(base,left,right); + real[] T=arrowbasepoints(base,left,right,1); return subpath(left,T[0],0)--subpath(right,0,T[1]); }; @@ -114,12 +114,12 @@ arrowhead HookHead(real dir=arrowdir, real barb=arrowbarb) path base=arrowbase(r,y,t,size); path left=rotate(-angle,x)*r; path right=rotate(angle,x)*r; - real[] T=arrowbasepoints(base,left,right); + real[] T=arrowbasepoints(base,left,right,1); pair denom=point(right,T[1])-y; real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1; path left=rotate(-angle*factor,x)*r; path right=rotate(angle*factor,x)*r; - real[] T=arrowbasepoints(base,left,right); + real[] T=arrowbasepoints(base,left,right,1); left=subpath(left,0,T[0]); right=subpath(right,T[1],0); pair pl0=point(left,0), pl1=relpoint(left,1); diff --git a/Build/source/utils/asymptote/base/three_arrows.asy b/Build/source/utils/asymptote/base/three_arrows.asy index 5b9bd45d56f..4398b9bd781 100644 --- a/Build/source/utils/asymptote/base/three_arrows.asy +++ b/Build/source/utils/asymptote/base/three_arrows.asy @@ -245,14 +245,6 @@ TeXHead3.head=new surface(path3 g, position position=EndPoint, } }; -real[] arrowbasepoints(path3 base, path3 left, path3 right) -{ - real[][] Tl=transpose(intersections(left,base)); - real[][] Tr=transpose(intersections(right,base)); - return new real[] {Tl.length > 0 ? Tl[0][0] : 0, - Tr.length > 0 ? Tr[0][0] : 0}; -} - path3 arrowbase(path3 r, triple y, real t, real size) { triple perp=2*size*perp(dir(r,t)); diff --git a/Build/source/utils/asymptote/configure b/Build/source/utils/asymptote/configure index fa56ba5da44..2113cb81b86 100755 --- a/Build/source/utils/asymptote/configure +++ b/Build/source/utils/asymptote/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Asymptote 2.25. +# Generated by GNU Autoconf 2.69 for Asymptote 2.26. # # Report bugs to <http://sourceforge.net/projects/asymptote>. # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Asymptote' PACKAGE_TARNAME='asymptote' -PACKAGE_VERSION='2.25' -PACKAGE_STRING='Asymptote 2.25' +PACKAGE_VERSION='2.26' +PACKAGE_STRING='Asymptote 2.26' PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote' PACKAGE_URL='' @@ -1281,7 +1281,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Asymptote 2.25 to adapt to many kinds of systems. +\`configure' configures Asymptote 2.26 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1346,7 +1346,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Asymptote 2.25:";; + short | recursive ) echo "Configuration of Asymptote 2.26:";; esac cat <<\_ACEOF @@ -1459,7 +1459,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Asymptote configure 2.25 +Asymptote configure 2.26 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2045,7 +2045,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Asymptote $as_me 2.25, which was +It was created by Asymptote $as_me 2.26, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -8497,7 +8497,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Asymptote $as_me 2.25, which was +This file was extended by Asymptote $as_me 2.26, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -8559,7 +8559,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Asymptote config.status 2.25 +Asymptote config.status 2.26 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/Build/source/utils/asymptote/configure.ac b/Build/source/utils/asymptote/configure.ac index 94d3f622ff6..cb9058505ff 100644 --- a/Build/source/utils/asymptote/configure.ac +++ b/Build/source/utils/asymptote/configure.ac @@ -3,7 +3,7 @@ # this file. AC_PREREQ(2) -AC_INIT([Asymptote],[2.25],[http://sourceforge.net/projects/asymptote]) +AC_INIT([Asymptote],[2.26],[http://sourceforge.net/projects/asymptote]) VERSION=$PACKAGE_VERSION AC_SUBST(VERSION) m4_include([ax_pthread.m4]) diff --git a/Build/source/utils/asymptote/doc/CAD.pdf b/Build/source/utils/asymptote/doc/CAD.pdf Binary files differindex 2eeebe293a4..3f428a5d92e 100644 --- a/Build/source/utils/asymptote/doc/CAD.pdf +++ b/Build/source/utils/asymptote/doc/CAD.pdf diff --git a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info index 30134dc77d7..7740180eaf4 100644 --- a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info +++ b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info @@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir) ASYMPTOTE FREQUENTLY ASKED QUESTIONS - 20 Apr 2014 + 26 Apr 2014 This is the list of Frequently Asked Questions about Asymptote (asy). diff --git a/Build/source/utils/asymptote/doc/FAQ/install-sh b/Build/source/utils/asymptote/doc/FAQ/install-sh index 0b0fdcbba69..6781b987bdb 100755 --- a/Build/source/utils/asymptote/doc/FAQ/install-sh +++ b/Build/source/utils/asymptote/doc/FAQ/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,21 +35,25 @@ scriptversion=2013-12-25.23; # UTC # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it +# `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. -tab=' ' nl=' ' -IFS=" $tab$nl" +IFS=" "" $nl" -# Set DOITPROG to "echo" to test this script. +# set DOITPROG to echo to test this script +# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -doit_exec=${doit:-exec} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -64,6 +68,17 @@ mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + posix_mkdir= # Desired mode of installed file. @@ -82,7 +97,7 @@ dir_arg= dst_arg= copy_on_change=false -is_target_a_directory=possibly +no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -122,57 +137,42 @@ while test $# -ne 0; do -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) - is_target_a_directory=always - dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -t) dst_arg=$2 + shift;; - -T) is_target_a_directory=never;; + -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done -# We allow the use of options -d and -T together, by making -d -# take the precedence; this is for compatibility with GNU install. - -if test -n "$dir_arg"; then - if test -n "$dst_arg"; then - echo "$0: target directory not allowed when installing a directory." >&2 - exit 1 - fi -fi - if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -186,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac done fi @@ -198,26 +194,13 @@ if test $# -eq 0; then echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call 'install-sh -d' without argument. + # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then - if test $# -gt 1 || test "$is_target_a_directory" = always; then - if test ! -d "$dst_arg"; then - echo "$0: $dst_arg: Is not a directory." >&2 - exit 1 - fi - fi -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 + trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,16 +211,16 @@ if test -z "$dir_arg"; then *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -245,9 +228,9 @@ fi for src do - # Protect names problematic for 'test' and other utilities. + # Protect names starting with `-'. case $src in - -* | [=\(\)!]) src=./$src;; + -*) src=./$src;; esac if test -n "$dir_arg"; then @@ -269,20 +252,51 @@ do echo "$0: no destination specified." >&2 exit 1 fi + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test "$is_target_a_directory" = never; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - dstdir=`dirname "$dst"` + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + test -d "$dstdir" dstdir_status=$? fi @@ -293,74 +307,74 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -370,51 +384,53 @@ do # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; esac + eval "$initialize_posix_glob" + oIFS=$IFS IFS=/ - set -f + $posix_glob set -f set fnord $dstdir shift - set +f + $posix_glob set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -449,12 +465,15 @@ do # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - set +f && + $posix_glob set +f && + test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -467,24 +486,24 @@ do # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 diff --git a/Build/source/utils/asymptote/doc/Makefile.in b/Build/source/utils/asymptote/doc/Makefile.in index a9ce4565703..56b916ea16d 100644 --- a/Build/source/utils/asymptote/doc/Makefile.in +++ b/Build/source/utils/asymptote/doc/Makefile.in @@ -93,7 +93,7 @@ clean: FORCE -rm -f \ {asymptote,asymptote_}.{aux,cp,cps,dvi,fn,info,ky,log,pg,toc,tp,vr} -rm -f asymptote_.texi - -rm -f CAD.{aux,dvi,log,toc} + -rm -f {CAD,TeXShopAndAsymptote,asyRefCard}.{aux,dvi,log,toc} -rm -f options asy.1 cd png && $(MAKE) clean diff --git a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf Binary files differindex e956672af0d..ad41ec7184e 100644 --- a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf +++ b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf diff --git a/Build/source/utils/asymptote/doc/asy-latex.pdf b/Build/source/utils/asymptote/doc/asy-latex.pdf Binary files differindex bb3e9426e26..ec0c9594682 100644 --- a/Build/source/utils/asymptote/doc/asy-latex.pdf +++ b/Build/source/utils/asymptote/doc/asy-latex.pdf diff --git a/Build/source/utils/asymptote/doc/asyRefCard.pdf b/Build/source/utils/asymptote/doc/asyRefCard.pdf Binary files differindex c65e097e700..15077605062 100644 --- a/Build/source/utils/asymptote/doc/asyRefCard.pdf +++ b/Build/source/utils/asymptote/doc/asyRefCard.pdf diff --git a/Build/source/utils/asymptote/doc/asymptote.pdf b/Build/source/utils/asymptote/doc/asymptote.pdf Binary files differindex 8dd542c1c2f..0b884cd79ef 100644 --- a/Build/source/utils/asymptote/doc/asymptote.pdf +++ b/Build/source/utils/asymptote/doc/asymptote.pdf diff --git a/Build/source/utils/asymptote/doc/asymptote.texi b/Build/source/utils/asymptote/doc/asymptote.texi index 9fabe5d813d..1323381684e 100644 --- a/Build/source/utils/asymptote/doc/asymptote.texi +++ b/Build/source/utils/asymptote/doc/asymptote.texi @@ -1,4 +1,4 @@ -\input texinfo @c -*-texinfo-*- +A\input texinfo @c -*-texinfo-*- @setfilename asymptote.info @settitle Asymptote: the Vector Graphics Language @include version.texi @@ -177,7 +177,7 @@ Graphical User Interface @cindex description @code{Asymptote} is a powerful descriptive vector graphics language that -provides a mathematical coordinate-based framework for technical drawings. +provides a mathematical coordinate-based framework for technical drawing. Labels and equations are typeset with @code{LaTeX}, for overall document consistency, yielding the same high-quality level of typesetting that @code{LaTeX} provides for scientific text. By default it produces @@ -211,9 +211,10 @@ as @TeX{}/@code{LaTeX} is the de-facto standard for typesetting equations. @item @code{LaTeX} typesetting of labels, for overall document consistency; -@item the ability to generate and embed 3D vector @acronym{PRC} graphics within @acronym{PDF} files; +@item the ability to generate and embed 3D vector @acronym{PRC} +graphics within @acronym{PDF} files; -@item a natural coordinate-based framework for technical drawings, +@item a natural coordinate-based framework for technical drawing, inspired by @code{MetaPost}, with a much cleaner, powerful C++-like programming syntax; @@ -284,7 +285,7 @@ please see also @ref{Configuring}. @noindent We recommend subscribing to new release announcements at @quotation -@url{http://freshmeat.net/projects/asy} +@url{http://freecode.com/projects/asy} @end quotation @noindent Users may also wish to monitor the @code{Asymptote} forum: @@ -2994,7 +2995,7 @@ import fontsize; at the beginning of the file (this requires the @code{type1cm} package available from @quotation -@url{http://www.ctan.org/tex-archive/macros/latex/contrib/type1cm/} +@url{http://mirror.ctan.org/macros/latex/contrib/type1cm/} @end quotation and included in recent @code{LaTeX} distributions). The font size and line skip of a pen can be examined with the routines @@ -5238,7 +5239,8 @@ returns a deep copy of the array @code{a}; @cindex @code{concat} @item T[] concat(... T[][] a) -returns a new array formed by concatenating the given one-dimensional arrays given as arguments; +returns a new array formed by concatenating the given one-dimensional +arrays given as arguments; @cindex @code{alias} @item bool alias(T[] a, T[] b) @@ -6052,7 +6054,7 @@ To switch between using inline Asymptote code with @code{latex} and An even better method for processing a @code{LaTeX} file with embedded @code{Asymptote} code is to use the @code{latexmk} utility from @quotation -@url{http://www.ctan.org/tex-archive/support/latexmk/} +@url{http://mirror.ctan.org/support/latexmk/} @end quotation @noindent after putting the contents of @@ -6451,7 +6453,7 @@ The related @code{animate} module, derived from the @code{animation} module, generates higher-quality portable clickable @acronym{PDF} movies, with optional controls. This requires installing the package @quotation -@url{http://www.ctan.org/tex-archive/macros/latex/contrib/animate/animate.sty} +@url{http://mirror.ctan.org/macros/latex/contrib/animate/animate.sty} @noindent @end quotation @noindent @@ -6475,7 +6477,7 @@ string pdf(fit fit=NoBox, real delay=animationdelay, string options="", of the @code{animate} structure accepts any of the @code{animate.sty} options, as described here: @quotation -@url{http://www.ctan.org/tex-archive/macros/latex/contrib/animate/doc/animate.pdf} +@url{http://mirror.ctan.org/macros/latex/contrib/animate/doc/animate.pdf} @end quotation @node embed @@ -6484,7 +6486,7 @@ as described here: This module provides an interface to the @code{LaTeX} package (included with @code{MikTeX}) @quotation -@url{http://www.ctan.org/tex-archive/macros/latex/contrib/media9} +@url{http://mirror.ctan.org/macros/latex/contrib/media9} @end quotation @noindent for embedding movies, sounds, and 3D objects into a @acronym{PDF} document. @@ -6555,7 +6557,7 @@ defaultpen(font("T2A","cmr","m","n")); Support for Chinese, Japanese, and Korean fonts is provided by the CJK package: @quotation -@url{http://www.ctan.org/tex-archive/languages/chinese/CJK/} +@url{http://mirror.ctan.org/languages/chinese/CJK/} @end quotation @noindent The following commands enable the CJK song family (within a label, you @@ -7399,7 +7401,8 @@ least-squares fit, using the @code{stats} module. @sp 1 @center @image{generalaxis} -@item To draw a vector field of @code{n} arrows evenly spaced along the arclength of a path, use the routine +@item To draw a vector field of @code{n} arrows evenly spaced along +the arclength of a path, use the routine @cindex @code{vectorfield} @verbatim picture vectorfield(path vector(real), path g, int n, bool truesize=false, @@ -7410,7 +7413,8 @@ as illustrated in this simple example of a flow field: @sp 1 @center @image{flow} -@item To draw a vector field of @code{nx}@math{\times}@code{ny} arrows in @code{box(a,b)}, use the routine +@item To draw a vector field of @code{nx}@math{\times}@code{ny} arrows +in @code{box(a,b)}, use the routine @cindex @code{vectorfield} @verbatim picture vectorfield(path vector(pair), pair a, pair b, @@ -9035,7 +9039,10 @@ variables may also be changed at runtime. The advanced configuration variables @code{dvipsOptions}, @code{hyperrefOptions}, @code{convertOptions}, @code{gsOptions}, @code{psviewerOptions}, @code{pdfviewerOptions}, @code{pdfreloadOptions}, -@code{glOptions}, and @code{dvisvgmOptions} allow specialized options to be passed as a string to the respective applications or libraries. The default value of @code{hyperrefOptions} is @code{setpagesize=false,unicode,pdfborder=0 0 0}. +@code{glOptions}, and @code{dvisvgmOptions} allow specialized options +to be passed as a string to the respective applications or +libraries. The default value of @code{hyperrefOptions} is +@code{setpagesize=false,unicode,pdfborder=0 0 0}. If you insert @verbatim @@ -9070,7 +9077,12 @@ Alternative output formats may be produced using the @code{-f} option @cindex @code{SVG} @cindex @code{dvisvgm} @cindex @code{libgs} -To produce @acronym{SVG} output, you will need @code{dvisvgm} (version 0.8.7 or later) from @url{http://dvisvgm.sourceforge.net} and must use the @code{latex} or @code{tex} tex engine. You might need to adjust the configuration variable @code{libgs} to point to the location of your ghostscript library @code{libgs.so} (or to an empty string, depending on how @code{dvisvgm} was configured). +To produce @acronym{SVG} output, you will need @code{dvisvgm} (version +0.8.7 or later) from @url{http://dvisvgm.sourceforge.net} and must use +the @code{latex} or @code{tex} tex engine. You might need to adjust +the configuration variable @code{libgs} to point to the location of +your @code{Ghostscript} library @code{libgs.so} (or to an empty +string, depending on how @code{dvisvgm} was configured). @code{Asymptote} can also produce any output format supported by the @code{ImageMagick} @code{convert} program (version 6.3.5 or @@ -9396,7 +9408,7 @@ posted here: To receive announcements of upcoming releases, please subscribe to @code{Asymptote} at @quotation -@url{http://freshmeat.net/projects/asy} +@url{http://freecode.com/projects/asy} @end quotation @cindex bug reports @noindent @@ -9728,7 +9740,7 @@ Mark Henning, Steve Melenchuk, Martin Wiebusch, and Stefan Knorr. @c LocalWords: BeginArcArrow3 MidArcArrow3 EndArcArrow3 ArcArrow3 ' @c LocalWords: ArcArrows3 DefaultHead3 HookHead3 TeXHead3 HookHead2 @c LocalWords: DefaultHead2 TeXHead2 arrows3 NoMargin3 BeginMargin3 -@c LocalWords: EndMargin3 Margin3 Margins3 BeginPenMargin2 xaxis3 +@c LocalWords: EndMargin3 Margin3 Margins3 BeginPenMargin2 xaxis3 ' @c LocalWords: EndPenMargin2 PenMargin2 PenMargins2 BeginPenMargin3 @c LocalWords: EndPenMargin3 PenMargin3 PenMargins3 BeginDotMargin3 @c LocalWords: EndDotMargin3 DotMargin3 DotMargins3 TrueMargin3 3D @@ -9737,5 +9749,9 @@ Mark Henning, Steve Melenchuk, Martin Wiebusch, and Stefan Knorr. @c LocalWords: slopefield1 144x144 1filll 'load 'asy 'lasy 'auto 4g @c LocalWords: 5bp 1cm 2S 100pt 3t bracedefaultratio incircle 12pt @c LocalWords: 5mm 25cm 3x 5x 3y 602e 2x 2y 3sin 10cm 204e 10x Ai -@c LocalWords: Ai Ai Ai Ai Ai Ai Ai 5E 5cm 2N 2E 2n 100d 5z 5y -@c LocalWords: 5unit 144x144 +@c LocalWords: 5E 5cm 2N 2E 2n 100d 5z 5y 0pt +@c LocalWords: 5unit 144x144 1filll 's 3D 2D libgs 'load 'asy 'lasy +@c LocalWords: 'auto 5bp 1cm 4g 2S 100pt 3t 12pt 5mm 25cm 3x 5x 3y +@c LocalWords: 602e 2x 2y 3sin 10cm 204e 10x +@c LocalWords: Ai 5E 5cm 2N 2E 2n 100d 5z 5y 5unit dvisvgmOptions +@c LocalWords: 144x144 diff --git a/Build/source/utils/asymptote/doc/extra/intro.asy b/Build/source/utils/asymptote/doc/extra/intro.asy index fcafefb32a6..68aa7e0347f 100644 --- a/Build/source/utils/asymptote/doc/extra/intro.asy +++ b/Build/source/utils/asymptote/doc/extra/intro.asy @@ -15,8 +15,9 @@ usersetting(); viewportsize=pagewidth-2pagemargin; // To generate bibliographic references: -// asy -k goysr -// bibtex goysr_ +// asy -k intro +// bibtex intro_ +// asy -k intro bibliographystyle("alpha"); itempen=fontsize(22pt); @@ -418,7 +419,7 @@ asyinclude("saddle",8cm); //defaultpen(0.5); title("Lifting TeX to 3D"); -item("Glyphs are first split into simply connected regions and then decomposed into planar B\'ezier surface patches \cite{Bowman09,Shardt10}:"); +item("Glyphs are first split into simply connected regions and then decomposed into planar B\'ezier surface patches \cite{Bowman09,Shardt12}:"); asyfigure("../examples/partitionExample"); viewportmargin=(2,1cm); @@ -932,7 +933,7 @@ subitem("generalizes MetaPost path construction algorithms to 3D;"); subitem("lifts \TeX\ to 3D;"); subitem("supports 3D billboard labels and PDF grouping."); -bibliography("refs"); +bibliography("../examples/refs"); viewportmargin=(2,2); viewportsize=0; diff --git a/Build/source/utils/asymptote/doc/install-sh b/Build/source/utils/asymptote/doc/install-sh index 0b0fdcbba69..6781b987bdb 100755 --- a/Build/source/utils/asymptote/doc/install-sh +++ b/Build/source/utils/asymptote/doc/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,21 +35,25 @@ scriptversion=2013-12-25.23; # UTC # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it +# `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. -tab=' ' nl=' ' -IFS=" $tab$nl" +IFS=" "" $nl" -# Set DOITPROG to "echo" to test this script. +# set DOITPROG to echo to test this script +# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -doit_exec=${doit:-exec} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -64,6 +68,17 @@ mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + posix_mkdir= # Desired mode of installed file. @@ -82,7 +97,7 @@ dir_arg= dst_arg= copy_on_change=false -is_target_a_directory=possibly +no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -122,57 +137,42 @@ while test $# -ne 0; do -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) - is_target_a_directory=always - dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -t) dst_arg=$2 + shift;; - -T) is_target_a_directory=never;; + -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done -# We allow the use of options -d and -T together, by making -d -# take the precedence; this is for compatibility with GNU install. - -if test -n "$dir_arg"; then - if test -n "$dst_arg"; then - echo "$0: target directory not allowed when installing a directory." >&2 - exit 1 - fi -fi - if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -186,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac done fi @@ -198,26 +194,13 @@ if test $# -eq 0; then echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call 'install-sh -d' without argument. + # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then - if test $# -gt 1 || test "$is_target_a_directory" = always; then - if test ! -d "$dst_arg"; then - echo "$0: $dst_arg: Is not a directory." >&2 - exit 1 - fi - fi -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 + trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,16 +211,16 @@ if test -z "$dir_arg"; then *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -245,9 +228,9 @@ fi for src do - # Protect names problematic for 'test' and other utilities. + # Protect names starting with `-'. case $src in - -* | [=\(\)!]) src=./$src;; + -*) src=./$src;; esac if test -n "$dir_arg"; then @@ -269,20 +252,51 @@ do echo "$0: no destination specified." >&2 exit 1 fi + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test "$is_target_a_directory" = never; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - dstdir=`dirname "$dst"` + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + test -d "$dstdir" dstdir_status=$? fi @@ -293,74 +307,74 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -370,51 +384,53 @@ do # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; esac + eval "$initialize_posix_glob" + oIFS=$IFS IFS=/ - set -f + $posix_glob set -f set fnord $dstdir shift - set +f + $posix_glob set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -449,12 +465,15 @@ do # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - set +f && + $posix_glob set +f && + test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -467,24 +486,24 @@ do # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 diff --git a/Build/source/utils/asymptote/doc/png/asymptote.info b/Build/source/utils/asymptote/doc/png/asymptote.info index d9bfe6891e3..7ad8b7aab0d 100644 --- a/Build/source/utils/asymptote/doc/png/asymptote.info +++ b/Build/source/utils/asymptote/doc/png/asymptote.info @@ -1,7 +1,7 @@ This is asymptote.info, produced by makeinfo version 4.13 from ../asymptote.texi. -This file documents `Asymptote', version 2.25. +This file documents `Asymptote', version 2.26. `http://asymptote.sourceforge.net' @@ -23,7 +23,7 @@ File: asymptote.info, Node: Top, Next: Description, Up: (dir) Asymptote ********* -This file documents `Asymptote', version 2.25. +This file documents `Asymptote', version 2.26. `http://asymptote.sourceforge.net' @@ -165,7 +165,7 @@ File: asymptote.info, Node: Description, Next: Installation, Prev: Top, Up: `Asymptote' is a powerful descriptive vector graphics language that provides a mathematical coordinate-based framework for technical -drawings. Labels and equations are typeset with `LaTeX', for overall +drawing. Labels and equations are typeset with `LaTeX', for overall document consistency, yielding the same high-quality level of typesetting that `LaTeX' provides for scientific text. By default it produces `PostScript' output, but it can also generate any format that @@ -199,7 +199,7 @@ weaker syntax and capabilities) called `MetaPost'. * the ability to generate and embed 3D vector PRC graphics within PDF files; - * a natural coordinate-based framework for technical drawings, + * a natural coordinate-based framework for technical drawing, inspired by `MetaPost', with a much cleaner, powerful C++-like programming syntax; @@ -264,7 +264,7 @@ please see also *note Configuring::. We recommend subscribing to new release announcements at - `http://freshmeat.net/projects/asy' + `http://freecode.com/projects/asy' Users may also wish to monitor the `Asymptote' forum: `http://sourceforge.net/p/asymptote/discussion/409349' @@ -2372,7 +2372,7 @@ number, until it saturates with one or more color components equal to 1. at the beginning of the file (this requires the `type1cm' package available from - `http://www.ctan.org/tex-archive/macros/latex/contrib/type1cm/' + `http://mirror.ctan.org/macros/latex/contrib/type1cm/' and included in recent `LaTeX' distributions). The font size and line skip of a pen can be examined with the routines `real fontsize(pen p=currentpen)' and `real lineskip(pen p=currentpen)', @@ -4730,7 +4730,7 @@ pdflatex latexusage An even better method for processing a `LaTeX' file with embedded `Asymptote' code is to use the `latexmk' utility from - `http://www.ctan.org/tex-archive/support/latexmk/' + `http://mirror.ctan.org/support/latexmk/' after putting the contents of `http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/doc/latexmkrc' in a file `latexmkrc' in the same directory. The command @@ -5229,7 +5229,7 @@ MPEG movie. generates higher-quality portable clickable PDF movies, with optional controls. This requires installing the package - `http://www.ctan.org/tex-archive/macros/latex/contrib/animate/animate.sty' + `http://mirror.ctan.org/macros/latex/contrib/animate/animate.sty' (version 2007/11/30 or later) in a new directory `animate' in the local `LaTeX' directory (for example, in `/usr/local/share/texmf/tex/latex/animate'). On `UNIX' systems, one @@ -5245,7 +5245,7 @@ string pdf(fit fit=NoBox, real delay=animationdelay, string options="", of the `animate' structure accepts any of the `animate.sty' options, as described here: - `http://www.ctan.org/tex-archive/macros/latex/contrib/animate/doc/animate.pdf' + `http://mirror.ctan.org/macros/latex/contrib/animate/doc/animate.pdf' File: asymptote.info, Node: embed, Next: slide, Prev: animation, Up: Base modules @@ -5256,7 +5256,7 @@ File: asymptote.info, Node: embed, Next: slide, Prev: animation, Up: Base mo This module provides an interface to the `LaTeX' package (included with `MikTeX') - `http://www.ctan.org/tex-archive/macros/latex/contrib/media9' + `http://mirror.ctan.org/macros/latex/contrib/media9' for embedding movies, sounds, and 3D objects into a PDF document. A more portable method for embedding movie files, which should work @@ -5317,7 +5317,7 @@ defaultpen(font("T2A","cmr","m","n")); Support for Chinese, Japanese, and Korean fonts is provided by the CJK package: - `http://www.ctan.org/tex-archive/languages/chinese/CJK/' + `http://mirror.ctan.org/languages/chinese/CJK/' The following commands enable the CJK song family (within a label, you can also temporarily switch to another family, say kai, by prepending `"\CJKfamily{kai}"' to the label string): @@ -8091,7 +8091,7 @@ option (or `outformat' setting). To produce SVG output, you will need `dvisvgm' (version 0.8.7 or later) from `http://dvisvgm.sourceforge.net' and must use the `latex' or `tex' tex engine. You might need to adjust the configuration -variable `libgs' to point to the location of your ghostscript library +variable `libgs' to point to the location of your `Ghostscript' library `libgs.so' (or to an empty string, depending on how `dvisvgm' was configured). @@ -8361,7 +8361,7 @@ form of patches or `Asymptote' modules can be posted here: To receive announcements of upcoming releases, please subscribe to `Asymptote' at - `http://freshmeat.net/projects/asy' + `http://freecode.com/projects/asy' If you find a bug in `Asymptote', please check (if possible) whether the bug is still present in the latest `Subversion' developmental code (*note Subversion::) before submitting a bug report. New bugs can be @@ -9846,143 +9846,143 @@ Index Tag Table: Node: Top575 Node: Description6859 -Node: Installation10475 -Node: UNIX binary distributions11519 -Node: MacOS X binary distributions12625 -Node: Microsoft Windows13509 -Ref: psview14219 -Node: Configuring15153 -Node: Search paths19373 -Node: Compiling from UNIX source20215 -Node: Editing modes23112 -Node: Subversion25544 -Node: Uninstall25992 -Node: Tutorial26342 -Ref: unitcircle30640 -Node: Drawing commands32696 -Node: draw34407 -Ref: arrows35555 -Node: fill40798 -Ref: gradient shading41842 -Node: clip46399 -Node: label46991 -Ref: Label47589 -Node: Bezier curves53392 -Node: Programming57094 -Ref: array iteration57908 -Node: Data types59014 -Ref: format68211 -Node: Paths and guides72464 -Ref: circle72718 -Ref: extension82276 -Node: Pens89331 -Ref: fillrule96699 -Ref: basealign97596 -Ref: transparency100422 -Ref: makepen103865 -Ref: overwrite104703 -Node: Transforms105913 -Node: Frames and pictures107704 -Ref: envelope108845 -Ref: size109928 -Ref: unitsize110915 -Ref: shipout111975 -Ref: filltype114308 -Ref: add117445 -Ref: add about118391 -Ref: tex121329 -Node: Files122203 -Ref: cd123186 -Ref: scroll127860 -Node: Variable initializers130775 -Node: Structures133500 -Node: Operators140902 -Node: Arithmetic & logical141216 -Node: Self & prefix operators143189 -Node: User-defined operators143977 -Node: Implicit scaling144888 -Node: Functions145451 -Ref: stack overflow148204 -Node: Default arguments148768 -Node: Named arguments149507 -Node: Rest arguments152078 -Node: Mathematical functions155199 -Node: Arrays159864 -Ref: sort166853 -Ref: tridiagonal169257 -Ref: solve170485 -Node: Slices174679 -Node: Casts178569 -Node: Import180534 -Node: Static185771 -Node: LaTeX usage188665 -Node: Base modules195077 -Node: plain197577 -Node: simplex198229 -Node: math198502 -Node: interpolate201207 -Node: geometry201486 -Node: trembling202080 -Node: stats202349 -Node: patterns202609 -Node: markers202845 -Node: tree204628 -Node: binarytree204816 -Node: drawtree205436 -Node: syzygy205640 -Node: feynman205914 -Node: roundedpath206189 -Node: animation206472 -Ref: animate206892 -Node: embed208031 -Node: slide208998 -Node: MetaPost209338 -Node: unicode210054 -Node: latin1210942 -Node: babel211310 -Node: labelpath211539 -Node: labelpath3212359 -Node: annotate212670 -Node: CAD213141 -Node: graph213451 -Ref: ticks220580 -Ref: pathmarkers233907 -Ref: marker234372 -Ref: markuniform234723 -Ref: errorbars236514 -Ref: automatic scaling240551 -Node: palette251180 -Ref: images251298 -Ref: image255470 -Ref: logimage255948 -Ref: penimage257009 -Ref: penfunctionimage257230 -Node: three257954 -Ref: PostScript3D283633 -Node: obj285325 -Node: graph3285577 -Ref: GaussianSurface290732 -Node: grid3291836 -Node: solids292576 -Node: tube293524 -Node: flowchart295759 -Node: contour300328 -Node: contour3305418 -Node: slopefield305725 -Node: ode307162 -Node: Options307422 -Ref: configuration file313467 -Ref: settings313467 -Ref: convert314706 -Node: Interactive mode317853 -Ref: history320006 -Node: GUI321311 -Node: GUI installation321814 -Node: GUI usage322944 -Node: PostScript to Asymptote323847 -Node: Help324603 -Node: Debugger326330 -Node: Credits328115 -Node: Index329047 +Node: Installation10473 +Node: UNIX binary distributions11516 +Node: MacOS X binary distributions12622 +Node: Microsoft Windows13506 +Ref: psview14216 +Node: Configuring15150 +Node: Search paths19370 +Node: Compiling from UNIX source20212 +Node: Editing modes23109 +Node: Subversion25541 +Node: Uninstall25989 +Node: Tutorial26339 +Ref: unitcircle30637 +Node: Drawing commands32693 +Node: draw34404 +Ref: arrows35552 +Node: fill40795 +Ref: gradient shading41839 +Node: clip46396 +Node: label46988 +Ref: Label47586 +Node: Bezier curves53389 +Node: Programming57091 +Ref: array iteration57905 +Node: Data types59011 +Ref: format68208 +Node: Paths and guides72461 +Ref: circle72715 +Ref: extension82273 +Node: Pens89328 +Ref: fillrule96696 +Ref: basealign97593 +Ref: transparency100410 +Ref: makepen103853 +Ref: overwrite104691 +Node: Transforms105901 +Node: Frames and pictures107692 +Ref: envelope108833 +Ref: size109916 +Ref: unitsize110903 +Ref: shipout111963 +Ref: filltype114296 +Ref: add117433 +Ref: add about118379 +Ref: tex121317 +Node: Files122191 +Ref: cd123174 +Ref: scroll127848 +Node: Variable initializers130763 +Node: Structures133488 +Node: Operators140890 +Node: Arithmetic & logical141204 +Node: Self & prefix operators143177 +Node: User-defined operators143965 +Node: Implicit scaling144876 +Node: Functions145439 +Ref: stack overflow148192 +Node: Default arguments148756 +Node: Named arguments149495 +Node: Rest arguments152066 +Node: Mathematical functions155187 +Node: Arrays159852 +Ref: sort166841 +Ref: tridiagonal169245 +Ref: solve170473 +Node: Slices174667 +Node: Casts178557 +Node: Import180522 +Node: Static185759 +Node: LaTeX usage188653 +Node: Base modules195056 +Node: plain197556 +Node: simplex198208 +Node: math198481 +Node: interpolate201186 +Node: geometry201465 +Node: trembling202059 +Node: stats202328 +Node: patterns202588 +Node: markers202824 +Node: tree204607 +Node: binarytree204795 +Node: drawtree205415 +Node: syzygy205619 +Node: feynman205893 +Node: roundedpath206168 +Node: animation206451 +Ref: animate206871 +Node: embed207992 +Node: slide208950 +Node: MetaPost209290 +Node: unicode210006 +Node: latin1210885 +Node: babel211253 +Node: labelpath211482 +Node: labelpath3212302 +Node: annotate212613 +Node: CAD213084 +Node: graph213394 +Ref: ticks220523 +Ref: pathmarkers233850 +Ref: marker234315 +Ref: markuniform234666 +Ref: errorbars236457 +Ref: automatic scaling240494 +Node: palette251123 +Ref: images251241 +Ref: image255413 +Ref: logimage255891 +Ref: penimage256952 +Ref: penfunctionimage257173 +Node: three257897 +Ref: PostScript3D283576 +Node: obj285268 +Node: graph3285520 +Ref: GaussianSurface290675 +Node: grid3291779 +Node: solids292519 +Node: tube293467 +Node: flowchart295702 +Node: contour300271 +Node: contour3305361 +Node: slopefield305668 +Node: ode307105 +Node: Options307365 +Ref: configuration file313410 +Ref: settings313410 +Ref: convert314649 +Node: Interactive mode317798 +Ref: history319951 +Node: GUI321256 +Node: GUI installation321759 +Node: GUI usage322889 +Node: PostScript to Asymptote323792 +Node: Help324548 +Node: Debugger326274 +Node: Credits328059 +Node: Index328991 End Tag Table diff --git a/Build/source/utils/asymptote/examples/refs.bib b/Build/source/utils/asymptote/examples/refs.bib index 5fde126a050..1c15d4e29b8 100644 --- a/Build/source/utils/asymptote/examples/refs.bib +++ b/Build/source/utils/asymptote/examples/refs.bib @@ -13,3 +13,43 @@ YEAR = 1986, ADDRESS = "Reading, Massachusetts"} +@article{Bowman07, + title={{The 3D {A}symptote generalization of MetaPost B\'ezier interpolation}}, + author={John C. Bowman}, + journal={Proceedings in Applied Mathematics and Mechanics}, + volume={7}, + number={1}, + pages={2010021-2010022}, + year={2007} +} + +@article{Bowman08, + title={Asymptote: A vector graphics language}, + author={John C. Bowman and Andy Hammerlindl}, + journal={TUGboat: The Communications of the \TeX\ Users Group}, + volume={29}, + number={2}, + pages={288-294}, + year={2008} +} + +@article{Bowman09, + title={Asymptote: Lifting {\TeX} to three dimensions}, + author={John C. Bowman and Orest Shardt}, + journal={TUGboat: The Communications of the \TeX\ Users Group}, + volume={30}, + number={1}, + pages={58-63}, + year={2009} +} + +@article{Shardt12, + title={Surface Parametrization of Nonsimply Connected Planar {B\'ezier} Regions}, + author={Orest Shardt and John C. Bowman}, + journal = {Computer-Aided Design}, + volume={44}, + number={5}, + pages={484.e1-10}, + year={2012}, +} + diff --git a/Build/source/utils/asymptote/install-sh b/Build/source/utils/asymptote/install-sh index 0b0fdcbba69..6781b987bdb 100755 --- a/Build/source/utils/asymptote/install-sh +++ b/Build/source/utils/asymptote/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,21 +35,25 @@ scriptversion=2013-12-25.23; # UTC # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it +# `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. -tab=' ' nl=' ' -IFS=" $tab$nl" +IFS=" "" $nl" -# Set DOITPROG to "echo" to test this script. +# set DOITPROG to echo to test this script +# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -doit_exec=${doit:-exec} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -64,6 +68,17 @@ mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + posix_mkdir= # Desired mode of installed file. @@ -82,7 +97,7 @@ dir_arg= dst_arg= copy_on_change=false -is_target_a_directory=possibly +no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -122,57 +137,42 @@ while test $# -ne 0; do -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) - is_target_a_directory=always - dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -t) dst_arg=$2 + shift;; - -T) is_target_a_directory=never;; + -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done -# We allow the use of options -d and -T together, by making -d -# take the precedence; this is for compatibility with GNU install. - -if test -n "$dir_arg"; then - if test -n "$dst_arg"; then - echo "$0: target directory not allowed when installing a directory." >&2 - exit 1 - fi -fi - if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -186,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac done fi @@ -198,26 +194,13 @@ if test $# -eq 0; then echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call 'install-sh -d' without argument. + # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then - if test $# -gt 1 || test "$is_target_a_directory" = always; then - if test ! -d "$dst_arg"; then - echo "$0: $dst_arg: Is not a directory." >&2 - exit 1 - fi - fi -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 + trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,16 +211,16 @@ if test -z "$dir_arg"; then *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -245,9 +228,9 @@ fi for src do - # Protect names problematic for 'test' and other utilities. + # Protect names starting with `-'. case $src in - -* | [=\(\)!]) src=./$src;; + -*) src=./$src;; esac if test -n "$dir_arg"; then @@ -269,20 +252,51 @@ do echo "$0: no destination specified." >&2 exit 1 fi + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test "$is_target_a_directory" = never; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - dstdir=`dirname "$dst"` + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + test -d "$dstdir" dstdir_status=$? fi @@ -293,74 +307,74 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -370,51 +384,53 @@ do # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; esac + eval "$initialize_posix_glob" + oIFS=$IFS IFS=/ - set -f + $posix_glob set -f set fnord $dstdir shift - set +f + $posix_glob set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -449,12 +465,15 @@ do # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - set +f && + $posix_glob set +f && + test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -467,24 +486,24 @@ do # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 diff --git a/Build/source/utils/asymptote/interact.cc b/Build/source/utils/asymptote/interact.cc index 044b46fc6e8..cc172984ac8 100644 --- a/Build/source/utils/asymptote/interact.cc +++ b/Build/source/utils/asymptote/interact.cc @@ -13,6 +13,7 @@ #include <unistd.h> #include <csignal> #include <cstdio> +#include <cstring> #include "interact.h" #include "runhistory.h" @@ -85,10 +86,21 @@ FILE *fin=NULL; char *readpipeline(const char *prompt) { +#if _POSIX_VERSION >= 200809L char *line=NULL; size_t n; getline(&line,&n,fin); return line; +#else + const int max_size=256; + static char buf[max_size]; + ostringstream s; + do { + if(fgets(buf,max_size-1,fin) == NULL) break; + s << buf; + } while(buf[std::strlen(buf)-1] != '\n'); + return StrdupMalloc(s.str()); +#endif } void pre_readline() diff --git a/Build/source/utils/asymptote/lex.yy.cc b/Build/source/utils/asymptote/lex.yy.cc index b59638f36b0..f0fc59573eb 100644 --- a/Build/source/utils/asymptote/lex.yy.cc +++ b/Build/source/utils/asymptote/lex.yy.cc @@ -18,7 +18,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 36 +#define YY_FLEX_SUBMINOR_VERSION 39 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -217,6 +217,7 @@ extern FILE *yyin, *yyout; #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -421,6 +422,8 @@ int yylineno = 1; extern char *yytext; #define yytext_ptr yytext +/* %% [1.5] DFA */ + /* %if-c-only Standard (non-C++) definition */ static yy_state_type yy_get_previous_state (void ); @@ -436,7 +439,7 @@ static void yy_fatal_error (yyconst char msg[] ); #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ - yyleng = (size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ @@ -493,7 +496,7 @@ static yyconst flex_int16_t yy_accept[335] = 117, 117, 100, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static yyconst YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -525,7 +528,7 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[62] = +static yyconst YY_CHAR yy_meta[62] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, @@ -993,7 +996,7 @@ void getstring(void) -#line 997 "lex.yy.cc" +#line 1000 "lex.yy.cc" #define INITIAL 0 #define lexcomment 1 @@ -1239,12 +1242,6 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -/* %% [7.0] user's declarations go here */ -#line 209 "camp.l" - - -#line 1247 "lex.yy.cc" - if ( !(yy_init) ) { (yy_init) = 1; @@ -1279,6 +1276,13 @@ YY_DECL yy_load_buffer_state( ); } + { +/* %% [7.0] user's declarations go here */ +#line 209 "camp.l" + + +#line 1285 "lex.yy.cc" + while ( 1 ) /* loops until end-of-file is reached */ { /* %% [8.0] yymore()-related code goes here */ @@ -1297,7 +1301,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1392,6 +1396,7 @@ YY_RULE_SETUP case 5: /* rule 5 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +YY_LINENO_REWIND_TO(yy_bp + 1); (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP @@ -1441,6 +1446,7 @@ YY_RULE_SETUP case 11: /* rule 11 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +YY_LINENO_REWIND_TO(yy_bp + 1); (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP @@ -2092,7 +2098,7 @@ YY_RULE_SETUP #line 443 "camp.l" ECHO; YY_BREAK -#line 2096 "lex.yy.cc" +#line 2102 "lex.yy.cc" case YY_END_OF_BUFFER: { @@ -2222,6 +2228,7 @@ ECHO; "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* %ok-for-header */ @@ -2954,7 +2961,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; diff --git a/Build/source/utils/asymptote/memory.h b/Build/source/utils/asymptote/memory.h index 9bbbfd17530..495bed6c123 100644 --- a/Build/source/utils/asymptote/memory.h +++ b/Build/source/utils/asymptote/memory.h @@ -14,19 +14,32 @@ #include <string> #include <sstream> -#ifndef __GNUC_PREREQ -#define __GNUC_PREREQ(maj, min) (0) +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define PREREQ(maj,min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +# define PREREQ(maj,min) 1 #endif #ifndef NOHASH -#if __GNUC_PREREQ(4,3) || defined(__CYGWIN__) +#if PREREQ(4,3) || defined(__CYGWIN__) + +#if __cplusplus >= 201103L +#include <memory> +#include <unordered_map> +#define EXT std +#else #include <tr1/unordered_map> #define EXT std::tr1 +#endif + #else + #define EXT __gnu_cxx #include <ext/hash_map> #define unordered_map hash_map #define unordered_multimap hash_multimap + #endif #endif diff --git a/Build/source/utils/asymptote/patches/flex.patch b/Build/source/utils/asymptote/patches/flex.patch index 1e9137fc172..56a2d4d5c45 100644 --- a/Build/source/utils/asymptote/patches/flex.patch +++ b/Build/source/utils/asymptote/patches/flex.patch @@ -1,132 +1,6 @@ -diff -ru flex-2.5.31/flex.skl flex-2.5.31J/flex.skl ---- flex-2.5.31/flex.skl Mon Mar 31 18:51:38 2003 -+++ flex-2.5.31J/flex.skl Sat Nov 13 14:00:09 2004 -@@ -488,7 +488,7 @@ - - #ifndef YY_TYPEDEF_YY_SIZE_T - #define YY_TYPEDEF_YY_SIZE_T --typedef unsigned int yy_size_t; -+typedef size_t yy_size_t; - #endif - - #ifndef YY_STRUCT_YY_BUFFER_STATE -@@ -515,7 +515,7 @@ - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ -- int yy_n_chars; -+ size_t yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to -@@ -604,7 +604,7 @@ - %not-for-header - /* yy_hold_char holds the character lost when yytext is formed. */ - static char yy_hold_char; --static int yy_n_chars; /* number of characters read into yy_ch_buf */ -+static size_t yy_n_chars; /* number of characters read into yy_ch_buf */ - int yyleng; - - /* Points to current character in buffer. */ -@@ -641,7 +641,7 @@ - - YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG ); - YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG ); --YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, int len M4_YY_PROTO_LAST_ARG ); -+YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, size_t len M4_YY_PROTO_LAST_ARG ); - - %endif - -@@ -758,7 +758,7 @@ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ - char yy_hold_char; -- int yy_n_chars; -+ size_t yy_n_chars; - int yyleng_r; - char *yy_c_buf_p; - int yy_init; -@@ -938,7 +938,7 @@ - %not-for-header - m4_ifdef( [[M4_YY_NO_UNPUT]],, - [[ -- static void yyunput M4_YY_PARAMS( int c, char *buf_ptr M4_YY_PROTO_LAST_ARG); -+ void yyunput M4_YY_PARAMS( int c, char *buf_ptr M4_YY_PROTO_LAST_ARG); - ]]) - %ok-for-header - %endif -@@ -1248,7 +1248,7 @@ - yy_load_buffer_state( M4_YY_CALL_ONLY_ARG ); - } - -- while ( 1 ) /* loops until end-of-file is reached */ -+ for ( ;; ) /* loops until end-of-file is reached */ - { - %% [8.0] yymore()-related code goes here - yy_cp = YY_G(yy_c_buf_p); -@@ -1580,7 +1580,7 @@ - - if ( b->yy_is_our_buffer ) - { -- int new_size = b->yy_buf_size * 2; -+ size_t new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; -@@ -1694,7 +1694,7 @@ - %if-c-only - m4_ifdef( [[M4_YY_NO_UNPUT]],, - [[ -- static void yyunput YYFARGS2( int,c, register char *,yy_bp) -+ void yyunput YYFARGS2( int,c, register char *,yy_bp) - %endif - %if-c++-only - void yyFlexLexer::yyunput( int c, register char* yy_bp) -@@ -1711,7 +1711,7 @@ - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ -- register int number_to_move = YY_G(yy_n_chars) + 2; -+ register size_t number_to_move = YY_G(yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = -@@ -1777,7 +1777,7 @@ - - else - { /* need more input */ -- int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr); -+ long offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr); - ++YY_G(yy_c_buf_p); - - switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) ) -@@ -2156,7 +2156,7 @@ - void yyFlexLexer::yyensure_buffer_stack(void) - %endif - { -- int num_to_alloc; -+ size_t num_to_alloc; - M4_YY_DECL_GUTS_VAR(); - - if (!YY_G(yy_buffer_stack)) { -@@ -2271,12 +2271,12 @@ - * M4_YY_DOC_PARAM - * @return the newly allocated buffer state object. - */ --YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,bytes, int ,len) -+YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,bytes, size_t ,len) - { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; -- int i; -+ size_t i; - m4_dnl M4_YY_DECL_GUTS_VAR(); - - /* Get memory for full buffer, including space for trailing EOB's. */ -diff -ru flex-2.5.31/gen.c flex-2.5.31J/gen.c ---- flex-2.5.31/gen.c Sun Mar 30 12:58:44 2003 -+++ flex-2.5.31J/gen.c Sat Nov 13 14:00:09 2004 +diff -u flex-2.5.39/gen.c flex-2.5.39J/gen.c +--- flex-2.5.39/gen.c 2014-03-26 06:46:44.000000000 -0600 ++++ flex-2.5.39J/gen.c 2014-04-26 10:52:30.962073096 -0600 @@ -55,6 +55,14 @@ * 0 elements of its arrays, too.) */ @@ -142,7 +16,7 @@ diff -ru flex-2.5.31/gen.c flex-2.5.31J/gen.c static const char *get_int16_decl (void) { return (gentables) -@@ -468,7 +476,7 @@ +@@ -465,7 +473,7 @@ register int i, j; int numrows; @@ -150,22 +24,8 @@ diff -ru flex-2.5.31/gen.c flex-2.5.31J/gen.c + out_str_dec (get_yy_char_decl (), "yy_ec", csize); for (i = 1; i < csize; ++i) { - if (caseins && (i >= 'A') && (i <= 'Z')) -@@ -870,11 +878,11 @@ - if (worry_about_NULs && !nultrans) { - if (useecs) - (void) sprintf (char_map, -- "(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : %d)", -+ "(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : (YY_CHAR) %d)", - NUL_ec); - else - (void) sprintf (char_map, -- "(*yy_cp ? YY_SC_TO_UI(*yy_cp) : %d)", -+ "(*yy_cp ? YY_SC_TO_UI(*yy_cp) : (YY_CHAR) %d)", - NUL_ec); - } - -@@ -1277,7 +1285,7 @@ + ecgroup[i] = ABS (ecgroup[i]); +@@ -1271,7 +1279,7 @@ fputs (_("\n\nMeta-Equivalence Classes:\n"), stderr); @@ -174,7 +34,7 @@ diff -ru flex-2.5.31/gen.c flex-2.5.31J/gen.c buf_prints (&yydmap_buf, "\t{YYTD_ID_META, (void**)&yy_meta, sizeof(%s)},\n", "flex_int32_t"); -@@ -1522,11 +1530,11 @@ +@@ -1516,11 +1524,11 @@ if (yymore_used && !yytext_is_array) { indent_puts ("YY_G(yytext_ptr) -= YY_G(yy_more_len); \\"); indent_puts @@ -188,18 +48,3 @@ diff -ru flex-2.5.31/gen.c flex-2.5.31J/gen.c /* Now also deal with copying yytext_ptr to yytext if needed. */ skelout (); /* %% [3.0] - break point in skel */ -diff -ru flex-2.5.31/flexint.h flex-2.5.31J/flexint.h ---- flex-2.5.31/flexint.h Mon Dec 9 07:14:49 2002 -+++ flex-2.5.31J/flexint.h Sat Nov 13 14:13:00 2004 -@@ -5,7 +5,10 @@ - - /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ - --#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L -+#ifndef __STDC_VERSION__ -+#define __STDC_VERSION__ 0 -+#endif -+#if __STDC_VERSION__ >= 199901L - #include <inttypes.h> - typedef int8_t flex_int8_t; - typedef uint8_t flex_uint8_t; diff --git a/Build/source/utils/asymptote/runmath.cc b/Build/source/utils/asymptote/runmath.cc index ba283d72a6b..2d4c3abdf4b 100644 --- a/Build/source/utils/asymptote/runmath.cc +++ b/Build/source/utils/asymptote/runmath.cc @@ -535,7 +535,7 @@ void gen_runmath38(stack *Stack) Int a=vm::pop<Int>(Stack); #line 305 "runmath.in" if((uint32_t) a > 0xFFFFFFFF) {Stack->push<Int>(-1); return;} -#if __GNUC_PREREQ(3,4) +#if __GNUC__ {Stack->push<Int>(__builtin_ctz(a)); return;} #else // find the number of trailing zeros in a 32-bit number diff --git a/Build/source/utils/asymptote/runmath.in b/Build/source/utils/asymptote/runmath.in index ed4ad9e7bc8..c7b2ef217dd 100644 --- a/Build/source/utils/asymptote/runmath.in +++ b/Build/source/utils/asymptote/runmath.in @@ -304,7 +304,7 @@ Int CLZ(Int a) Int CTZ(Int a) { if((uint32_t) a > 0xFFFFFFFF) return -1; -#if __GNUC_PREREQ(3,4) +#if __GNUC__ return __builtin_ctz(a); #else // find the number of trailing zeros in a 32-bit number |