Colorized expand.sed

    #!/bin/sed -f
    #  @(#)14apr89/31aug01 expand.sed by Greg Ubben

    /	/ !b

    # Change the text before a tab to
    #   text<MARKER>text<TAB><8 blanks><TAB>
    #
    s/\([^	]*\)	/\1&        	/g

    # Reduce the text between the marker and the tab to less
    # than eight characters.  We have to put in 8-(length MOD 8)
    # blanks, and this effectively does the modulo operation.
    :a
    s/[^	]\{8\}/\a/g
    t a

    # The buffer is now:
    #   text<MARKER><(length MOD 8) characters><TAB><expansion><extra blanks><TAB>
    #               `-----------------------------------------'
    # Notice that the expansion is 8-(length MOD 8), so the
    # underlined part is exactly nine characters.  That's how
    # we discard the extra blanks and the tabs.
    #
    s/\(.\{9\}\) *	/\1/g

    # We have now:
    #         text<MARKER><(length MOD 8) characters><TAB><expansion>
    #
    # so we discard everything between the marker and the tab
    #
    s/[^	]*	//g

    ### colorized by sedsed, a debugger and code formatter for sed scripts