pf_loader
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
| — | pf_loader [2007/05/08 18:29] (current) – created - external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ======Synopsis: | ||
| + | [[load]] -pf < | ||
| + | |||
| + | ======Description: | ||
| + | The //pf loader// (" | ||
| + | that contains one big [[block]] of code and executes it. | ||
| + | |||
| + | All of the scripts that come with epic5 are in pf-format. | ||
| + | that most, if not all script packs that work with epic5 will be in pf-format. | ||
| + | You should switch, because it's much less painful for you this way. | ||
| + | |||
| + | The //pf loader//s behavior requires that your file follows the normal | ||
| + | [[ircii syntax]]. | ||
| + | [[standard loader]] and the pf loader is | ||
| + | |||
| + | *) PF loader does not support C-like comments | ||
| + | *) PF loader does not rewrite your script by putting semicolons in at ends of lines, but it does convert newlines into spaces. | ||
| + | *) PF loader **does** expand $ values, so you need to protect them | ||
| + | |||
| + | To convert a [[standard loader]] script to pf format, follow the following | ||
| + | recipe: | ||
| + | |||
| + | ===== Rule 0: Put a sanity wrapper at the top of your script ===== | ||
| + | Always put the following line at the top of every pf script to allow it to | ||
| + | be transparantly / | ||
| + | |||
| + | if (word(2 $loadinfo()) != [pf]) { load -pf $word(1 $loadinfo()); | ||
| + | |||
| + | This checks to see what loader you're using [$word(2 $loadinfo())], | ||
| + | it is not the " | ||
| + | with the " | ||
| + | |||
| + | ===== Rule 1: Wrap C-like comments in multi-line comments ===== | ||
| + | The : command is a comment and it takes a standard ircII argument list. This | ||
| + | means you can wrap multiple lines in {} and the whole thing is used as the | ||
| + | argument list. | ||
| + | |||
| + | Before | ||
| + | ------ | ||
| + | /* | ||
| + | * The FE script... showing you the wonders of /fe! | ||
| + | * Current supported version: ircii-EPIC | ||
| + | * Mass* has never been easier! (tm) | ||
| + | */ | ||
| + | |||
| + | After | ||
| + | ----- | ||
| + | : { | ||
| + | /* | ||
| + | * The FE script... showing you the wonders of /fe! | ||
| + | * Current supported version: ircii-EPIC | ||
| + | * Mass* has never been easier! (tm) | ||
| + | */ | ||
| + | }; | ||
| + | |||
| + | ===== Rule 2: Put semicolons between (after) every command ===== | ||
| + | The biggest task the standard loader does for you is figure out where | ||
| + | semicolons need to be put into your script. | ||
| + | this task, so you will have to put in the semicolons. | ||
| + | to separate commands, so you will need to put them in. | ||
| + | |||
| + | Before | ||
| + | ------ | ||
| + | alias opalot fe ($2-) xx yy zz {mode $0 $1ooo $xx $yy $zz} | ||
| + | alias banalot fe ($2-) xx yy zz {mode $0 $1bbb $xx $yy $zz} | ||
| + | #alias kickalot fe ($1-) xx {kick $0 $xx} | ||
| + | alias kickalot for xx in ($1-) {kick $0 $xx} | ||
| + | |||
| + | After | ||
| + | ----- | ||
| + | alias opalot fe ($2-) xx yy zz {mode $0 $1ooo $xx $yy $zz}; | ||
| + | alias banalot fe ($2-) xx yy zz {mode $0 $1bbb $xx $yy $zz}; | ||
| + | #alias kickalot fe ($1-) xx {kick $0 $xx} | ||
| + | alias kickalot for xx in ($1-) {kick $0 $xx}; | ||
| + | |||
| + | Note that in Rule 1, we put a semicolon after the } in the multi-line | ||
| + | comment. | ||
| + | appended as part of the arguments to comment, and if you didn't have any | ||
| + | comments in the file, the entire file would be treated as a comment! | ||
| + | So make sure that you put semicolons between each command in your script. | ||
| + | |||
| + | ===== Rule 3: Put {}s around your alias and on bodies ===== | ||
| + | The standard loader executes your commands as though they were entered at the | ||
| + | input line, subject to the /SET INPUT_ALIASES value. | ||
| + | do "alias opalot foo $*" and it will not expand the $* at /LOAD time. The | ||
| + | PF loader does not simulate the input prompt and subjects each command to | ||
| + | standard $-expansion, | ||
| + | |||
| + | So you will need to put {}s around your alias and on bodies to make sure that | ||
| + | the expandos inside of them are not expanded at /LOAD time. | ||
| + | |||
| + | Before | ||
| + | ------ | ||
| + | alias opalot fe ($2-) xx yy zz {mode $0 $1ooo $xx $yy $zz}; | ||
| + | alias banalot fe ($2-) xx yy zz {mode $0 $1bbb $xx $yy $zz}; | ||
| + | #alias kickalot fe ($1-) xx {kick $0 $xx} | ||
| + | alias kickalot for xx in ($1-) {kick $0 $xx}; | ||
| + | |||
| + | After | ||
| + | ----- | ||
| + | alias opalot {fe ($2-) xx yy zz {mode $0 $1ooo $xx $yy $zz}}; | ||
| + | alias banalot {fe ($2-) xx yy zz {mode $0 $1bbb $xx $yy $zz}}; | ||
| + | #alias kickalot fe ($1-) xx {kick $0 $xx} | ||
| + | alias kickalot {for xx in ($1-) {kick $0 $xx}}; | ||
| + | |||
| + | Note that the semicolons go outside of the {}s that wrap your aliases! | ||
| + | |||
| + | ===== Rule 4: Put semicolons between commands inside your aliases ===== | ||
| + | This is similar to rule 2, but you need to make sure you put semicolons | ||
| + | between your commands INSIDE your aliases, and not just between the alias | ||
| + | commands themselves at the top level of your script | ||
| + | |||
| + | Before | ||
| + | ------ | ||
| + | alias cuh { | ||
| + | ^local foobar | ||
| + | # fe ($onchannel($0)) ix { push foobar $userhost($ix) } | ||
| + | for ix in ($onchannel($0)) { push foobar $userhost($ix) } | ||
| + | @ function_return = foobar | ||
| + | } | ||
| + | |||
| + | After | ||
| + | ----- | ||
| + | alias cuh { | ||
| + | ^local foobar; | ||
| + | # fe ($onchannel($0)) ix { push foobar $userhost($ix) } | ||
| + | for ix in ($onchannel($0)) { push foobar $userhost($ix) }; | ||
| + | @ function_return = foobar; | ||
| + | }; | ||
| + | |||
| + | Note that we put semicolons in after each line, but not after the comment | ||
| + | (it is not necessary, it would just be ignored), and we put a semicolon after | ||
| + | the closing } of the alias. | ||
| + | |||
pf_loader.txt · Last modified: 2007/05/08 18:29 by 127.0.0.1
