Difference between revisions of "Dirrev.tf"
Jump to navigation
Jump to search
(Added a check if no argument was given to show the syntax and added some color to the result echo.) |
m (Typo fix.) |
||
| Line 34: | Line 34: | ||
/set double_digit 0 %%;\ | /set double_digit 0 %%;\ | ||
/endif %;\ | /endif %;\ | ||
| − | /echo - | + | /echo -p %%% @{Cwhite}The reverse of @{Cgreen}%{dir_str} @{Cwhite}is @{Cgreen}%dir_rev@{n}%;\ |
/endif | /endif | ||
</pre> | </pre> | ||
Revision as of 12:15, 30 October 2008
Bug reports, suggestions and/or diffs are appreciated, sulfar _AT_ inbox +DOT+ com
Non issue: The script won't revert 3w200s, max supported is 99.
/echo -aCyellow %% /dirrev <path> Revert speedwalk path
/def -i dirrev = \
/if ({#}=0) \
/echo -p %%% @{Cred}Syntax: /%{0} <path>@{n}%;\
/else \
/set dir_str %1 %;\
/set dir_length $[strlen(dir_str)] %;\
/set double_digit=0%;\
/set dir_rev=%;\
/for c 0 $[dir_length-1] \
/set position $$[dir_length-c] %%;\
/set cur_char $$[substr(dir_str, position-1, 1)] %%;\
/set new_char %%{cur_char} %%;\
/if (cur_char =~ "e") /set new_char w %%;/endif %%;\
/if (cur_char =~ "s") /set new_char n %%;/endif %%;\
/if (cur_char =~ "w") /set new_char e %%;/endif %%;\
/if (cur_char =~ "n") /set new_char s %%;/endif %%;\
/if (cur_char =~ "u") /set new_char d %%;/endif %%;\
/if (cur_char =~ "d") /set new_char u %%;/endif %%;\
/if ((new_char =/ "[0-9]") & (!double_digit)) \
/set dir_rev $$[strcat(substr(dir_rev, 0, c-1), new_char, substr(dir_rev, c-1, 1))] %%;\
/if (substr(dir_str, position-2, 1) =/ "[0-9]") \
/set dir_rev $$[strcat(substr(dir_rev, 0, c-1), substr(dir_str, position-2, 1), substr(dir_rev, c-1, 2))] %%;\
/set double_digit 1 %%;\
/endif %%;\
/elseif ( regmatch("[nsewud]", new_char) ) \
/set dir_rev $$[strcat(dir_rev, new_char)] %%;\
/set double_digit 0 %%;\
/endif %;\
/echo -p %%% @{Cwhite}The reverse of @{Cgreen}%{dir_str} @{Cwhite}is @{Cgreen}%dir_rev@{n}%;\
/endif