[PD-cvs] externals/grill/py/source py.cpp, 1.32, 1.33 pyargs.cpp, 1.21, 1.22 pybase.cpp, 1.6, 1.7 pybase.h, 1.6, 1.7 pyext.cpp, 1.40, 1.41 pyext.h, 1.27, 1.28 pymeth.cpp, 1.4, 1.5 pyprefix.h, 1.4, 1.5

Thomas Grill xovo at users.sourceforge.net
Mon Aug 1 13:58:03 CEST 2005


Update of /cvsroot/pure-data/externals/grill/py/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11003/source

Modified Files:
	py.cpp pyargs.cpp pybase.cpp pybase.h pyext.cpp pyext.h 
	pymeth.cpp pyprefix.h 
Log Message:
path setting based on new flext functionality
open editor for module file on "edit" message (or click)
open editor for script under OS X


Index: pyargs.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pyargs.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** pyargs.cpp	30 Jul 2005 12:22:11 -0000	1.21
--- pyargs.cpp	1 Aug 2005 11:58:01 -0000	1.22
***************
*** 176,180 ****
  
  	// analyze return value or tuple
- 	int rargc = 0;
      const t_symbol *sym = NULL;
  
--- 176,179 ----

Index: pyprefix.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pyprefix.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** pyprefix.h	30 Jul 2005 12:22:11 -0000	1.4
--- pyprefix.h	1 Aug 2005 11:58:01 -0000	1.5
***************
*** 15,18 ****
--- 15,22 ----
  #include <flext.h>
  
+ // hack: must include math.h before Python.h (at least on OSX)
+ // otherwise some functions don't get defined
+ #include <math.h>
+ 
  #if FLEXT_OS == FLEXT_OS_MAC
  #include <Python/Python.h>

Index: pymeth.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pymeth.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** pymeth.cpp	20 Jul 2005 08:11:18 -0000	1.4
--- pymeth.cpp	1 Aug 2005 11:58:01 -0000	1.5
***************
*** 103,107 ****
  
  	virtual bool CbMethodResort(int n,const t_symbol *s,int argc,const t_atom *argv);
-     virtual void CbClick();
  
      void m_help();    
--- 103,106 ----
***************
*** 424,429 ****
  }
  
- void pymeth::CbClick() { pybase::OpenEditor(); }
- 
  void pymeth::DumpOut(const t_symbol *sym,int argc,const t_atom *argv)
  {
--- 423,426 ----

Index: pyext.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pyext.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** pyext.h	20 Jul 2005 08:11:18 -0000	1.27
--- pyext.h	1 Aug 2005 11:58:01 -0000	1.28
***************
*** 146,149 ****
--- 146,151 ----
  	FLEXT_CALLBACK(m_doc)
  
+ 	FLEXT_CALLBACK(CbClick)
+ 
  #ifdef FLEXT_THREADS
      FLEXT_CALLBACK_T(tick)

Index: pybase.h
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pybase.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** pybase.h	30 Jul 2005 12:22:11 -0000	1.6
--- pybase.h	1 Aug 2005 11:58:01 -0000	1.7
***************
*** 125,130 ****
  	bool respond;
  #ifdef FLEXT_THREADS
-     bool shouldexit;
  	int thrcount;
  	int stoptick;
      Timer stoptmr;
--- 125,130 ----
  	bool respond;
  #ifdef FLEXT_THREADS
  	int thrcount;
+     bool shouldexit;
  	int stoptick;
      Timer stoptmr;

Index: pybase.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pybase.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** pybase.cpp	30 Jul 2005 12:22:11 -0000	1.6
--- pybase.cpp	1 Aug 2005 11:58:01 -0000	1.7
***************
*** 12,15 ****
--- 12,21 ----
  #include <map>
  
+ #if FLEXT_OS == FLEXT_OS_WIN
+ #include <windows.h>
+ #elif FLEXT_OS == FLEXT_OS_MAC
+ #include <ApplicationServices/ApplicationServices.h>
+ #endif
+ 
  static PyMethodDef StdOut_Methods[] =
  {
***************
*** 296,300 ****
  void pybase::OpenEditor()
  {
!     // this should once open the editor....
  }
  
--- 302,361 ----
  void pybase::OpenEditor()
  {
!     if(!module) return;
!     const char *mname = PyModule_GetFilename(module);
!     if(!mname) {
!         PyErr_Clear();
!         return;
!     }
! 
!     char fname[1024];
!     strcpy(fname,mname);
! 
!     // replacing .pyc or .pyo for source file name
!     char *dt = strrchr(fname,'.');
!     if(dt && !strncmp(dt,".py",2)) strcpy(dt,".py");
! 
!     // this should open the editor....
! #if FLEXT_OS == FLEXT_OS_WIN
!     int err = (int)ShellExecute(NULL,"edit",fname,NULL,NULL,SW_SHOW);
!     if(err == SE_ERR_NOASSOC) {
!         // no association found - try notepad
!         err = (int)ShellExecute(NULL,NULL,"notepad.exe",fname,NULL,SW_SHOW);
!     }
!     else if(err == ERROR_FILE_NOT_FOUND || err == SE_ERR_FNF)
!         post("py/pyext - File not %s found",fname);
!     else if(err <= 32)
!         post("py/pyext - Unknown error opening %s",fname);
!        
! #elif FLEXT_OS == FLEXT_OS_MAC
! 	FSRef ref;
!     OSStatus err = FSPathMakeRef(fname,&ref,NULL);
!     if(err)
!         post("py/pyext - Error interpreting path %s",fname);
!     else {
! 		FSRef editor;
! 		err = LSGetApplicationForItem(&ref,kLSRolesEditor,&editor,NULL);
!         if(err) {
! 			// Can't find associated application... try Textedit
! 			err = FSPathMakeRef("/Applications/TextEdit.app",&editor,NULL);
! 			if(err)
! 				post("py/pyext - Can't find Textedit application");
! 		}
! 		
! 		if(!err) {
! 			LSLaunchFSRefSpec lspec;
! 			lspec.appRef = &editor;
! 			lspec.numDocs = 1;
! 			lspec.itemRefs = &ref;
! 			lspec.passThruParams = NULL;
! 			lspec.launchFlags = kLSLaunchDefaults;
! 			lspec.asyncRefCon = NULL;
! 			err = LSOpenFromRefSpec(&lspec,NULL);
! 			if(err)
! 				post("py/pyext - Couldn't launch editor");
! 		}
!     }
! #elif FLEXT_OS == FLEXT_OS_LINUX
! #endif
  }
  

Index: pyext.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/pyext.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** pyext.cpp	30 Jul 2005 12:22:11 -0000	1.40
--- pyext.cpp	1 Aug 2005 11:58:01 -0000	1.41
***************
*** 42,45 ****
--- 42,47 ----
  	FLEXT_CADDMETHOD_(c,0,"set",m_set);
  
+ 	FLEXT_CADDMETHOD_(c,0,"edit",CbClick);
+ 
    	FLEXT_CADDATTR_VAR1(c,"py",pymsg);
    	FLEXT_CADDATTR_VAR1(c,"respond",respond);
***************
*** 100,104 ****
  	// remember the this pointer
  	PyObject *th = PyLong_FromVoidPtr(this); 
! 	/*int ret =*/ PyObject_SetAttrString(pyobj,"_this",th); // ref is taken
  }
  
--- 102,106 ----
  	// remember the this pointer
  	PyObject *th = PyLong_FromVoidPtr(this); 
! 	PyObject_SetAttrString(pyobj,"_this",th); // ref is taken
  }
  

Index: py.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/py/source/py.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** py.cpp	30 Jul 2005 12:22:11 -0000	1.32
--- py.cpp	1 Aug 2005 11:58:01 -0000	1.33
***************
*** 75,78 ****
--- 75,80 ----
  	FLEXT_CALLBACK(m_doc)
  
+ 	FLEXT_CALLBACK(CbClick)
+ 
  #ifdef FLEXT_THREADS
      FLEXT_CALLBACK_T(tick)
***************
*** 100,103 ****
--- 102,107 ----
  	FLEXT_CADDMETHOD_(c,0,"set",m_set);
  
+     FLEXT_CADDMETHOD_(c,0,"edit",CbClick);
+ 
    	FLEXT_CADDATTR_VAR1(c,"py",pymsg);
    	FLEXT_CADDATTR_VAR1(c,"respond",respond);





More information about the Pd-cvs mailing list