File Manager
#! /usr/bin/crm
#
# rewritetest.mfp - rewrite test with rewrites.mfp
# Copyright 2009 William S. Yerazunis.
# This file is under GPLv3, as described in COPYING.
#
# do rewriting, based on rewrite rules in rewrites.mfp
#
# Start with some data in the :_dw:
window
output /:*:_nl: --- CRM114 testing string rewrites :*:_nl: :*:_nl:/
output /------------------------:*:_nl:/
alter (:_dw:) /abc:*:_nl:frobnitz_singleline this should trigger :*:_nl:def:*:_nl:frobnitz_multiline zebra:*:_nl:giraffe:*:_nl:and so should this.:*:_nl:testpattern:*:_nl:mno:*:_nl:/
accept
output /------------------------:*:_nl:/
{
isolate (:rewrites:)
input (:rewrites:) [test_rewrites.mfp]
# reset matching on rewrites to start of string
match [:rewrites:] //
}
#
{
# Grab the next regexturn the one-per-line patterns into a regex
# First, do the line-spanning regexes.
match <fromend nomultiline> (:ch: :fr: :to:) [:rewrites:] /(.+)>-->(.*)/
# see if the "fr" regex matches anywhere
{
match (:place:) /:*:fr:/
# Yep, it matched... alter it and do it again
#
alter (:place:) /:*:to:/
liaf
}
# Nope, didn't match... grab the next regex and try again,
liaf
}
# reset back to the start of the rewrites.
match [:rewrites:] //
# and do it again for non-line-spanners
{
# Go through and do it again, except this time do it for
# the non-line-spanning regexes.
match <fromend nomultiline> (:ch: :fr: :to:) [:rewrites:] /(.+)>->(.*)/
# see if the "fr" regex matches anywhere
{
match <nomultiline> (:place:) /:*:fr:/
# Yep, it matched... alter it and do it again
#
alter (:place:) /:*:to:/
liaf
}
# Nope, didn't match... grab the next regex and try again,
liaf
}
accept
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com