Re: [greenstone-users] More detailed info on macros

From jens wille
DateThu, 02 Nov 2006 00:12:22 +0100
Subject Re: [greenstone-users] More detailed info on macros
In-Reply-To (49573-130-217-244-2-1162418219-squirrel-webmail-scms-waikato-ac-nz)
sw64@cs.waikato.ac.nz [01.11.2006 22:56]:
> That would be great, thank you. How about you post them to the
> mailing-list, and I add them to the wiki?
well, ok, here we go (note that output might look crippled in the
mail; '$' denotes the prompt):

- first, a correction: to get really all macros, use this one:

$ expand_macros.pl -s ".*"

=> 1892 on my "stable" system (v2.62), 1979 on my "testing" system
(v2.71); all following output is for v2.62 (haven't upgraded my
production system yet ;-)

- get definition of _query:pagescriptextra_:

$ expand_macros.pl _query:pagescriptextra_
*** macro: query:pagescriptextra ***

* query:pagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 68)
{ _If_("_cgiargqt_" eq "1", _formpagescriptextra_,
_selectpagescriptextra_) _If_("_cgiarghd_" ne
"0",_historypagescriptextra_) } }

- get macros that are used by _query:pagescriptextra_ ('-s' for
short output, omit for display of definitions; '-d' for depth,
increase to see more levels):

$ expand_macros.pl -s -d 2 _query:pagescriptextra_
*** macro: query:pagescriptextra ***

* query:pagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 68)
* query:formpagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 76)
* query:formfunctions [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 178)
* query:searchfunctions [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 478)
* preferences:standardfunctions [v=0]
(/usr/local/gsdl/stable/macros/pref.dm, line 82)
* query:standardfunctions [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 143)
* query:historypagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 101)
* query:selectpagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 71)
* query:dummypagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 72)
* query:formpagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 76)

- get macros that use "any" _pagescriptextra_ ('-r' for reverse search):

$ expand_macros.pl -r _pagescriptextra_
*** macro: pagescriptextra (reverse) ***

* Style:globalscripts [v=0] (/usr/local/gsdl/stable/macros/style.dm,
line 142)
{ <script> <!-- _imagescript_ _pagescriptextra_ // --> </script> } }

* homepref:pagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/home.dm, line 198)
{ _preferences:pagescriptextra_} }

- get macros whose definitions contain "blank.gif" (a search in the
definition contents will be performed if the argument doesn't start,
and end, with an underscore (actually, it's a bit more complicated,
but that should suffice for the moment); is actually treated as full
perl regular expression):

$ expand_macros.pl "blank.gif"
*** query: blank.gif ***

* collector:iconblank [v=0]
(/usr/local/gsdl/stable/macros/collect.dm, line 42)
{ <img src="_httpimg_/blank.gif">} }

- get a macro that is defined in the c++ code (you need to extract a
greenstone source archive and point to its base location, either via
the '--source' parameter or via a GSDLSOURCE environment variable):

$ expand_macros.pl --source=/usr/local/gsdl/src/stable/
_collector:pagescriptextra_
*** macro: collector:pagescriptextra ***

* collector:pagescriptextra [v=0] (SERVER:
/usr/local/gsdl/src/stable/src/src/recpt/collectoraction.cpp, line 1058)
{ "_" + collector_page + "scriptextra_" }

- finally, here's the transcript of an interactive session ('-i' or
'-b' for "interactive", or "browse", mode):

$ expand_macros.pl -i
entered 'expand_macros.pl' in ***interactive browse mode*** (v0.22)
[you can get help at any time by typing '.h', '.?', or '.help']

enter macro name (without package specification) [leave empty to quit]
> pagescriptextra
select package for macro 'pagescriptextra' [leave empty to return]
[1] Style
[2] browse
[3] collector
[4] homepref
[5] preferences
[6] query
> 6

* query:pagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 68)
{ _If_("_cgiargqt_" eq "1", _formpagescriptextra_,
_selectpagescriptextra_)
_If_("_cgiarghd_" ne "0",_historypagescriptextra_) } }

[press key to continue]

select macro [leave empty to return]
[1] formpagescriptextra
[2] historypagescriptextra
[3] selectpagescriptextra
> 1
select package for macro 'formpagescriptextra' [leave empty to return]
[1] query
> 1

* query:formpagescriptextra [v=0]
(/usr/local/gsdl/stable/macros/query.dm, line 76)
{ // query scripts generated by \_query:pagescriptextra\_
_standardfunctions_
_formfunctions_
_searchfunctions_
function getsearchargs () \{
var args="";
args = "&fqa=0&fqv="+argfqv+"&fqf="+argfqf;
_If_(_cgiargqf_,args += "&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc;)
return args;
\}
function getqueryargs () \{
return "&fqa=1"+"&q="+argq+"&fqv="+argfqv+"&fqf="+argfqf+
"&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc ;
\}
} }

[press key to continue]

select macro [leave empty to return]
[1] formfunctions
[2] searchfunctions
[3] standardfunctions
>
select package for macro 'formpagescriptextra' [leave empty to return]
[1] query
>
select macro [leave empty to return]
[1] formpagescriptextra
[2] historypagescriptextra
[3] selectpagescriptextra
>
select package for macro 'pagescriptextra' [leave empty to return]
[1] Style
[2] browse
[3] collector
[4] homepref
[5] preferences
[6] query
>
enter macro name (without package specification) [leave empty to quit]
>

enough for now? hope that might be of help to somebody. again, any
feedback (be it comments, questions, feature requests, bug reports,
whatever...) is very welcome!

cheers
jens