Aha.. it's buggy. You have to say "declare -stdpath ../extra/iemabs" (because, by mistake, it's relative to the pd/src directory!). I think I should fix this (hoping nobody else gets bitten in the opposite direction)...
cheers Miller
On Sun, Aug 12, 2007 at 12:59:22AM +0200, Roman Haefeli wrote:
hi again
from the help-file i got an idea, how about it is supposed to work, but i can't get it work. can you make me a working example? did you test this feature?
here a real-world example (from my first post in this thread):
location of pd: /usr/local/bin/pd
and i wanted to load [bp2~] from 'iemabs': /usr/local/lib/pd/extra/iemabs/
therefore i tried: [declare -stdpath iemabs] (assuming 'extra' is the standard location) [declare -stdpath ../lib/pd/extra/iemabs] (relative to the pd binary) [declare -stdpath extra/iemabs]
for each example, i first saved the patch with the [declared] and reloaded it and tried to instantiate [bp2~], but it always failed. i can't imagine, what argument i am supposed to give to [declare -stdpath].
here is what i get from verbose output:
- [declare -stdpath extra/iemabs]
tried /home/roman/netpd/extra/iemabs/bp2~.l_i386 and failed tried /home/roman/netpd/abs/bp2~.l_i386 and failed tried /home/roman/netpd/doc/bp2~.l_i386 and failed tried /home/roman/netpd/bp2~.l_i386 and failed tried /usr/local/lib/pd/extra/bp2~.l_i386 and failed tried /home/roman/netpd/extra/iemabs/bp2~.pd_linux and failed tried /home/roman/netpd/abs/bp2~.pd_linux and failed tried /home/roman/netpd/doc/bp2~.pd_linux and failed tried /home/roman/netpd/bp2~.pd_linux and failed tried /usr/local/lib/pd/extra/bp2~.pd_linux and failed tried /home/roman/netpd/extra/iemabs/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/abs/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/doc/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/bp2~/bp2~.l_i386 and failed tried /usr/local/lib/pd/extra/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/extra/iemabs/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/abs/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/doc/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/bp2~/bp2~.pd_linux and failed tried /usr/local/lib/pd/extra/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/extra/iemabs/bp2~.pd and failed tried /home/roman/netpd/abs/bp2~.pd and failed tried /home/roman/netpd/doc/bp2~.pd and failed tried /home/roman/netpd/bp2~.pd and failed tried /usr/local/lib/pd/extra/bp2~.pd and failed tried /home/roman/netpd/extra/iemabs/bp2~.pat and failed tried /home/roman/netpd/abs/bp2~.pat and failed tried /home/roman/netpd/doc/bp2~.pat and failed tried /home/roman/netpd/bp2~.pat and failed tried /usr/local/lib/pd/extra/bp2~.pat and failed bp2~ ... couldn't create
- [declare -stdpath iemabs]
tried /home/roman/netpd/iemabs/bp2~.l_i386 and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.l_i386 and failed tried /home/roman/netpd/abs/bp2~.l_i386 and failed tried /home/roman/netpd/doc/bp2~.l_i386 and failed tried /home/roman/netpd/bp2~.l_i386 and failed tried /usr/local/lib/pd/extra/bp2~.l_i386 and failed tried /home/roman/netpd/iemabs/bp2~.pd_linux and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.pd_linux and failed tried /home/roman/netpd/abs/bp2~.pd_linux and failed tried /home/roman/netpd/doc/bp2~.pd_linux and failed tried /home/roman/netpd/bp2~.pd_linux and failed tried /usr/local/lib/pd/extra/bp2~.pd_linux and failed tried /home/roman/netpd/iemabs/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/abs/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/doc/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/bp2~/bp2~.l_i386 and failed tried /usr/local/lib/pd/extra/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/iemabs/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/abs/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/doc/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/bp2~/bp2~.pd_linux and failed tried /usr/local/lib/pd/extra/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/iemabs/bp2~.pd and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.pd and failed tried /home/roman/netpd/abs/bp2~.pd and failed tried /home/roman/netpd/doc/bp2~.pd and failed tried /home/roman/netpd/bp2~.pd and failed tried /usr/local/lib/pd/extra/bp2~.pd and failed tried /home/roman/netpd/iemabs/bp2~.pat and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.pat and failed tried /home/roman/netpd/abs/bp2~.pat and failed tried /home/roman/netpd/doc/bp2~.pat and failed tried /home/roman/netpd/bp2~.pat and failed tried /usr/local/lib/pd/extra/bp2~.pat and failed bp2~ ... couldn't create
- [declare -stdpath ../lib/pd/extra/iemabs]
tried /home/roman/netpd/../lib/pd/extra/iemabs/bp2~.l_i386 and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.l_i386 and failed tried /home/roman/netpd/abs/bp2~.l_i386 and failed tried /home/roman/netpd/doc/bp2~.l_i386 and failed tried /home/roman/netpd/bp2~.l_i386 and failed tried /usr/local/lib/pd/extra/bp2~.l_i386 and failed tried /home/roman/netpd/../lib/pd/extra/iemabs/bp2~.pd_linux and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.pd_linux and failed tried /home/roman/netpd/abs/bp2~.pd_linux and failed tried /home/roman/netpd/doc/bp2~.pd_linux and failed tried /home/roman/netpd/bp2~.pd_linux and failed tried /usr/local/lib/pd/extra/bp2~.pd_linux and failed tried /home/roman/netpd/../lib/pd/extra/iemabs/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/abs/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/doc/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/bp2~/bp2~.l_i386 and failed tried /usr/local/lib/pd/extra/bp2~/bp2~.l_i386 and failed tried /home/roman/netpd/../lib/pd/extra/iemabs/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/abs/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/doc/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/bp2~/bp2~.pd_linux and failed tried /usr/local/lib/pd/extra/bp2~/bp2~.pd_linux and failed tried /home/roman/netpd/../lib/pd/extra/iemabs/bp2~.pd and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.pd and failed tried /home/roman/netpd/abs/bp2~.pd and failed tried /home/roman/netpd/doc/bp2~.pd and failed tried /home/roman/netpd/bp2~.pd and failed tried /usr/local/lib/pd/extra/bp2~.pd and failed tried /home/roman/netpd/../lib/pd/extra/iemabs/bp2~.pat and failed tried /home/roman/netpd/doc/5.reference/help-iemmatrix/bp2~.pat and failed tried /home/roman/netpd/abs/bp2~.pat and failed tried /home/roman/netpd/doc/bp2~.pat and failed tried /home/roman/netpd/bp2~.pat and failed tried /usr/local/lib/pd/extra/bp2~.pat and failed bp2~ ... couldn't create
(sorry for this huge post)
i noticed, that it never tries a combination of the prefix '/usr/local/<whatever>' and the argument i give, wich means, that it just doesn't try 'standard' locations, as the help-files mentions. it only tries either '/usr/local/<whatever>/<classname>.<suffix>' or '/<path_of_the_patch>/<argument_i_give_to_declare>.
roman
On Sat, 2007-08-11 at 15:06 -0700, Miller Puckette wrote:
Oops, my mistake.
In "declare" systax, "-stdpath" does take an argument... if you give it foo/bar, for example, the directory searched is .../pd/foo/bar.
My bad for naming it the same as the command-line argument, which does something different.
cheers Miller
On Sat, Aug 11, 2007 at 04:38:31PM -0400, Mathieu Bouchard wrote:
On Sat, 11 Aug 2007, Miller Puckette wrote:
On Sat, Aug 11, 2007 at 07:26:05PM +0200, Roman Haefeli wrote:
i just figured out, that i don't know how to use [declare -stdpath]. the
In vanilla at least, -stdpath and -nostdpath simpl turn on and off searching in the "extra" directory of Pd. It takes no argument.
Roman is not even talking about that feature. He's talking about the other feature of the same name. It's in a class named [declare]. You added [declare] in 0.40. It is implemented by canvas_declare, a function that you wrote for 0.40. That feature takes an argument, as you wrote in the code:
else if ((argc > i+1) && !strcmp(flag, "-stdpath")) { strncpy(strbuf, sys_libdir->s_name, MAXPDSTRING-3); strbuf[MAXPDSTRING-4] = 0; strcat(strbuf, "/"); strncpy(strbuf, atom_getsymbolarg(i+1, argc, argv)->s_name, MAXPDSTRING-strlen(strbuf)); strbuf[MAXPDSTRING-1] = 0; e->ce_path = namelist_append(e->ce_path, strbuf, 0); i++; }
Because atom_getsymbolarg takes an argument, and i++ augments the counter so that it points to the beginning of the next option, which is after that argument. This is what you wrote.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - t?l:+1.514.383.3801, Montr?al QC Canada
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
___________________________________________________________ Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de