[SCM] supercollider/master: Imported Upstream version 3.4.3

danstowell-guest at users.alioth.debian.org danstowell-guest at users.alioth.debian.org
Fri Apr 15 21:24:08 UTC 2011


The following commit has been merged in the master branch:
commit dc463ddbcf7f908f6b23ea79ebe9637701287773
Author: Dan Stowell <danstowell at users.sourceforge.net>
Date:   Fri Apr 15 13:08:35 2011 +0100

    Imported Upstream version 3.4.3

diff --git a/VERSION b/VERSION
index 2d54055..a46bb9d 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-3.4.2
-classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".2";
+3.4.3
+classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".3";
diff --git a/common/SConstruct b/common/SConstruct
index 0b049de..76908d0 100644
--- a/common/SConstruct
+++ b/common/SConstruct
@@ -817,14 +817,14 @@ libscsynthEnv = serverEnv.Clone(
     PKGCONFIG_LIBS = ['-lscsynth'],
 #     PKGCONFIG_LIBS_PRIVATE = ['-lm', '-lpthread', '-ldl'],
     PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/server'],
-    SHLIBSUFFIX='.so.1.0.0',
-    LIBSUFFIXES=['.so.1.0.0']
+    SHLIBSUFFIX='.so.1',
+    LIBSUFFIXES=['.so.1']
     )
 if PLATFORM == 'linux':
     libscsynthEnv.Append(
-        LINKFLAGS = ['-Wl,-soname,libscsynth.so.1.0.0'])
+        LINKFLAGS = ['-Wl,-soname,libscsynth.so.1'])
     # create local symlink for linker to follow (not installed)
-    libscsynthEnv.Command('build/libscsynth.so', 'build/libscsynth.so.1.0.0', make_local_symlink, chdir=1)
+    libscsynthEnv.Command('build/libscsynth.so', 'build/libscsynth.so.1', make_local_symlink, chdir=1)
 
 libscsynthSources = Split('''
 Source/server/Rendezvous.cpp
@@ -855,7 +855,7 @@ scsynthSources = ['Source/server/scsynth_main.cpp']
 
 libscsynth = libscsynthEnv.SharedLibrary('build/scsynth', libscsynthSources)
 env.Alias('install-programs', env.Install(lib_dir(INSTALL_PREFIX), [libscsynth]))
-env.Alias('install-programs', env.Command(lib_dir(INSTALL_PREFIX) + '/libscsynth.so', lib_dir(INSTALL_PREFIX) + '/libscsynth.so.1.0.0', make_local_symlink, chdir=1))
+env.Alias('install-programs', env.Command(lib_dir(INSTALL_PREFIX) + '/libscsynth.so', lib_dir(INSTALL_PREFIX) + '/libscsynth.so.1', make_local_symlink, chdir=1))
 
 libscsynthStaticSources = libscsynthSources + make_static_objects(serverEnv, commonSources, "_libscsynthStatic");
 libscsynthStatic = serverEnv.StaticLibrary('build/scsynth', libscsynthStaticSources)
@@ -1064,18 +1064,18 @@ libsclangEnv = langEnv.Clone(
     PKGCONFIG_REQUIRES = make_pkgconfig_requires(libraries['sndfile']) + ['libscsynth'],
     PKGCONFIG_LIBS = ['-lsclang'],
     PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/lang', '-I${includedir}/server'],
-    SHLIBSUFFIX='.so.1.0.0',
-    LIBSUFFIXES=['.so.1.0.0']
+    SHLIBSUFFIX='.so.1',
+    LIBSUFFIXES=['.so.1']
     )
 if PLATFORM == 'linux':
     libsclangEnv.Append(
-        LINKFLAGS = ['-Wl,-soname,libsclang.so.1.0.0'])
+        LINKFLAGS = ['-Wl,-soname,libsclang.so.1'])
     # create local symlink for linker to follow (not installed)
-    libsclangEnv.Command('build/libsclang.so', 'build/libsclang.so.1.0.0', make_local_symlink, chdir=1)
-    Requires('build/libsclang.so.1.0.0', 'build/libscsynth.so')
+    libsclangEnv.Command('build/libsclang.so', 'build/libsclang.so.1', make_local_symlink, chdir=1)
+    Requires('build/libsclang.so.1', 'build/libscsynth.so')
 
 # required libraries
-merge_lib_info(langEnv, libraries['sndfile'])
+merge_lib_info(libsclangEnv, libraries['sndfile'])
 
 libsclangSources = Split('''
 Source/lang/LangSource/AdvancingAllocPool.cpp
@@ -1125,11 +1125,11 @@ Source/common/fftlib.c
 ''')
 
 if env['LANG']:
-    merge_lib_info(langEnv, libraries['libicu'])
+    merge_lib_info(libsclangEnv, libraries['libicu'])
 
 # optional features
 if features['midiapi']:
-    merge_lib_info(langEnv, libraries['midiapi'])
+    merge_lib_info(libsclangEnv, libraries['midiapi'])
     if features['midiapi'] == 'CoreMIDI':
                 libsclangSources += ['Source/lang/LangPrimSource/SC_CoreMIDI.cpp']
     else:
@@ -1139,7 +1139,7 @@ else:
     libsclangSources += ['Source/lang/LangPrimSource/SC_AlsaMIDI.cpp']
 
 if PLATFORM == 'darwin':
-    langEnv.Append(
+    libsclangEnv.Append(
                 CPPPATH = ['#Source/lang/LangPrimSource/HID_Utilities',
                                    '#Source/lang/LangPrimSource/WiiMote_OSX'],
                 LINKFLAGS = '-framework Carbon -framework IOKit -framework IOBluetooth'
@@ -1161,15 +1161,15 @@ if PLATFORM == 'linux':
     # HAVE_LID does the right thing in SC_LID.cpp source
     libsclangSources += ['Source/lang/LangPrimSource/SC_LID.cpp']
     if features['wii']:
-                langEnv.Append(CPPDEFINES = 'HAVE_WII')
-                langEnv.Append(LINKFLAGS = '-lcwiid')
+                libsclangEnv.Append(CPPDEFINES = 'HAVE_WII')
+                libsclangEnv.Append(LINKFLAGS = '-lcwiid')
         #langEnv.Append(LINKFLAGS = '-lbluetooth')
         #langEnv.Append(CPPPATH = '-I/usr/local/include/libcwiimote-0.4.0/libcwiimote/' ) #FIXME: to proper include directory
     if features['lid']:
-            langEnv.Append(CPPDEFINES = 'HAVE_LID')
+            libsclangEnv.Append(CPPDEFINES = 'HAVE_LID')
 
 if PLATFORM == 'darwin':
-    langEnv.Append(CPPDEFINES = 'HAVE_SPEECH')
+    libsclangEnv.Append(CPPDEFINES = 'HAVE_SPEECH')
     libsclangSources += ['Source/lang/LangPrimSource/SC_Speech.cpp']
 
 sclangSources = ['Source/lang/LangSource/cmdLineFuncs.cpp']
@@ -1177,7 +1177,7 @@ sclangSources = ['Source/lang/LangSource/cmdLineFuncs.cpp']
 if env['LANG']:
     libsclang = libsclangEnv.SharedLibrary('build/sclang', libsclangSources)
     env.Alias('install-bin', env.Install(lib_dir(INSTALL_PREFIX), [libsclang]))
-    env.Alias('install-bin', env.Command(lib_dir(INSTALL_PREFIX) + '/libsclang.so', lib_dir(INSTALL_PREFIX) + '/libsclang.so.1.0.0', make_local_symlink, chdir=1))
+    env.Alias('install-bin', env.Command(lib_dir(INSTALL_PREFIX) + '/libsclang.so', lib_dir(INSTALL_PREFIX) + '/libsclang.so.1', make_local_symlink, chdir=1))
     if PLATFORM == 'darwin':
         sclangLibs = ['scsynth', 'sclang']
     else:
diff --git a/common/build/SCClassLibrary/Common/Audio/Env.sc b/common/build/SCClassLibrary/Common/Audio/Env.sc
index eb06b74..d07c131 100644
--- a/common/build/SCClassLibrary/Common/Audio/Env.sc
+++ b/common/build/SCClassLibrary/Common/Audio/Env.sc
@@ -77,7 +77,7 @@ Env {
 	}
 
 	asPseg {
-		var c = if(curves.isSequenceableCollection.not) { curves } { Pseq(curves) };
+		var c = if(curves.isSequenceableCollection.not) { curves } { Pseq(curves, inf) };
 		^Pseg(Pseq(levels), Pseq(times ++ [1.0]), c) // last time is a dummy
 	}
 
diff --git a/common/build/SCClassLibrary/Common/Core/Kernel.sc b/common/build/SCClassLibrary/Common/Core/Kernel.sc
index 9ff3509..b50d467 100644
--- a/common/build/SCClassLibrary/Common/Core/Kernel.sc
+++ b/common/build/SCClassLibrary/Common/Core/Kernel.sc
@@ -56,15 +56,28 @@ Class {
 		},{ ^nil });
 	}
 	findRespondingMethodFor { arg methodName;
-		var class, method;
-		class = this;
-		while ({class.notNil && (class != Class)}, {
-			method = class.findMethod(methodName);
-			if (method.notNil, { ^method });
-			class = class.superclass;
-		});
+		this.superclassesDo { arg class;
+			var method = class.findMethod(methodName);
+			method !? { ^method };
+		};
+		^nil
+	}
+	findOverriddenMethod { arg methodName;
+		if(this.findMethod(methodName).isNil) { ^nil };
+		this.superclass.superclassesDo { arg class;
+			var method = class.findMethod(methodName);
+			if(method.notNil) { ^method }
+		};
 		^nil
 	}
+	superclassesDo { arg function;
+		var class = this;
+		while ({ class.notNil and: { class != Class} }) {
+			function.value(class);
+			class = class.superclass;
+		}
+	}
+	
 	dumpByteCodes { arg methodName;
 		var meth;
 		meth = this.findMethod(methodName);
@@ -151,11 +164,8 @@ Class {
 		^list
 	}
 	superclasses {
-		var list, class;
-		class = this;
-		while ({ class = class.superclass; class.notNil },{
-			list = list.add(class)
-		});
+		var list;
+		this.superclass.superclassesDo { arg class; list = list.add(class) }
 		^list
 	}
 
@@ -214,6 +224,7 @@ Process {
 		var string, class, method, words;
 		string = interpreter.cmdLine;
 		if (string.includes($:), {
+			string.removeAllSuchThat(_.isSpace);
 			words = string.delimit({ arg c; c == $: });
 			class = words.at(0).asSymbol.asClass;
 			if (class.notNil, {
@@ -235,6 +246,7 @@ Process {
 		var string, class, method, words;
 		string = interpreter.cmdLine;
 		if (string.includes($:), {
+			string.removeAllSuchThat(_.isSpace);
 			words = string.delimit({ arg c; c == $: });
 			class = words.at(0).asSymbol.asClass;
 			if (class.notNil, {
diff --git a/common/build/SCClassLibrary/Common/Files/File.sc b/common/build/SCClassLibrary/Common/Files/File.sc
index 98f0570..d23888f 100644
--- a/common/build/SCClassLibrary/Common/Files/File.sc
+++ b/common/build/SCClassLibrary/Common/Files/File.sc
@@ -41,6 +41,7 @@ File : UnixFILE {
 	close {	// close the file
 		// the GC will not call this for you
 		this.prClose;
+		fileptr = nil;
 		openFiles.remove(this);
 	}
 	length { // returns the length of the file
@@ -123,6 +124,7 @@ Pipe : UnixFILE {
 
 	close {
 		this.prClose;
+		fileptr = nil;
 		openFiles.remove(this);
 	}
 
diff --git a/common/build/SCClassLibrary/Common/GUI/Model.sc b/common/build/SCClassLibrary/Common/GUI/Model.sc
index 5898abf..e1b0bdb 100644
--- a/common/build/SCClassLibrary/Common/GUI/Model.sc
+++ b/common/build/SCClassLibrary/Common/GUI/Model.sc
@@ -92,9 +92,9 @@ NotificationCenter {
 		});
 	}
 	*registerOneShot {  arg object,message,listener,action;
-		registrations.put(object,message,listener,
-			{
-				action.value;
+		^this.register(object, message, listener,
+			{	|... args|
+				action.valueArray(args);
 				this.unregister(object,message,listener)
 			})
 	}
diff --git a/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc b/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc
index 12dc49b..1bfa5c8 100644
--- a/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc
+++ b/common/build/SCClassLibrary/Common/GUI/PlusGUI/Core/ClassBrowser.sc
@@ -616,9 +616,11 @@ ClassBrowser {
 						// of the new state environment
 						// might be nil unless subclass also implements
 					extraValuesDict: (methodViewIndex: {
-						~methodArray.detectIndex({ |item|
-							item.name == prevMethod.name
-						})
+						if(prevMethod.isNil) { 0 } {
+							~methodArray.detectIndex({ |item|
+								item.name == prevMethod.name
+							})
+						};
 					}));
 			},
 			navigateToCurrentClassAction: {
diff --git a/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc b/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc
index 677cf88..2ce6f45 100644
--- a/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc
+++ b/common/build/SCClassLibrary/Common/Streams/EventStreamCleanup.sc
@@ -12,21 +12,21 @@ EventStreamCleanup {
 	}
 
 	addFunction { |event, function |
-		if(event.respondsTo(\keysValuesDo)) {
+		if(event.isKindOf(Dictionary)) {
 			functions = functions.add(function);
 			event[\addToCleanup] = event[\addToCleanup].add(function);
 		};
 	}
 
 	addNodeCleanup { |event, function |
-		if(event.respondsTo(\keysValuesDo)) {
+		if(event.isKindOf(Dictionary)) {
 			functions = functions.add(function);
 			event[\addToNodeCleanup] = event[\addToNodeCleanup].add(function);
 		};
 	}
 
 	update { | event |
-		if(event.respondsTo(\keysValuesDo)) {
+		if(event.isKindOf(Dictionary)) {
 			functions = functions.addAll(event[\addToNodeCleanup]);
 			functions = functions.addAll(event[\addToCleanup]);
 			functions = functions.removeAll(event[\removeFromCleanup]);
@@ -35,7 +35,7 @@ EventStreamCleanup {
 	}
 
 	exit { | event, freeNodes = true |
-		if(event.respondsTo(\keysValuesDo)) {
+		if(event.isKindOf(Dictionary)) {
 			this.update(event);
 			functions.do(_.value(freeNodes) );
 			event[\removeFromCleanup] = event[\removeFromCleanup].addAll(functions);
diff --git a/common/build/SCClassLibrary/DefaultLibrary/Main.sc b/common/build/SCClassLibrary/DefaultLibrary/Main.sc
index da35282..48b5cc2 100644
--- a/common/build/SCClassLibrary/DefaultLibrary/Main.sc
+++ b/common/build/SCClassLibrary/DefaultLibrary/Main.sc
@@ -1,7 +1,7 @@
 Main : Process {
 	// do not change the next lines manually:
 	//==== replace with new version from bash script ====
-classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".2";
+classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".3";
 	//==== end replace ====
 
 	var <platform, argv;
diff --git a/editors/scel/sc/EmacsDocument.sc b/editors/scel/sc/EmacsDocument.sc
index 6aa20de..e0ca652 100644
--- a/editors/scel/sc/EmacsDocument.sc
+++ b/editors/scel/sc/EmacsDocument.sc
@@ -21,7 +21,7 @@ EmacsDocument
 	classvar documentMap, <>current;
 	var <>sceld;
 	var title, path;
-	var dataptr;
+	var <dataptr;
 	var <isEdited, <isListener, <envir;
 
 	*initClass {
diff --git a/editors/scel/sc/ScelDocument.sc b/editors/scel/sc/ScelDocument.sc
index 575e9c5..dc16280 100644
--- a/editors/scel/sc/ScelDocument.sc
+++ b/editors/scel/sc/ScelDocument.sc
@@ -295,6 +295,8 @@ ScelDocument : Document{
 		^this.string( rangestart, rangesize );
 	}
 
+	dataptr { ^thisdoc.tryPerform(\dataptr) }
+
 	// not implemented:
 	selectRange { arg start=0, length=0; }
 	background_ {arg color, rangestart= -1, rangesize = 0;

-- 
supercollider packaging



More information about the pkg-multimedia-commits mailing list