From 17ec1deb74e2e934dc11fb4d9a2f8c6cef34c5a7 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 9 Jul 2007 20:45:58 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r7949, which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/moonlib/; revision=7950 --- basedir.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 basedir.c (limited to 'basedir.c') diff --git a/basedir.c b/basedir.c new file mode 100644 index 0000000..ad2f4f6 --- /dev/null +++ b/basedir.c @@ -0,0 +1,72 @@ +/* +Copyright (C) 2002 Antoine Rousseau + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +/*#include */ +#include "m_pd.h" + +#include +#include +#include +#include +#include +#include + +typedef struct _basedir +{ + t_object x_obj; +}t_basedir; + +t_class *basedir_class; + +void basedir_setup(void); + +static void basedir_symbol(t_basedir *x,t_symbol *sym) +{ + static t_binbuf *binbuf=0; + t_atom at[2]; + char *b,*d; + int l; + + if(!sym->s_name) return; + + b=strdup(sym->s_name); + d=strdup(sym->s_name); + + SETSYMBOL(&at[0],gensym(basename(b))); + SETSYMBOL(&at[1],gensym(dirname(d))); + + outlet_list(x->x_obj.ob_outlet,0,2,at); +} + + +static void *basedir_new(void) +{ + t_basedir *x = (t_basedir *)pd_new(basedir_class); + outlet_new(&x->x_obj, 0); + return (void *)x; +} + +void basedir_setup(void) +{ + basedir_class = class_new(gensym("basedir"),(t_newmethod)basedir_new, + 0, sizeof(t_basedir), 0, 0); + + class_addsymbol(basedir_class, basedir_symbol); +} + -- cgit v1.2.1