#! @@AWK@@ -f
BEGIN { 

ID    =    "dclpsseparate 1.0"
DATE  =                               "2003/02/03(kagimoto)" 

EX    =    "separate multi-page dcl.ps into single page files"

USAGE =  "% dclpsseparate <file>"

#----------------------------------------------------------------------------
# NO OPTIONS

    if (ARGV[1] == "-help" || ARGV[1] == "help") { 
        exithelp=1
        print "  " ID,DATE
        print " --- " EX
        print " usage : " USAGE
        exit
    }
    exithelp=0

    head=1; body=0; page=0
    fout=""
    fname = basename(ARGV[1], "\.ps")
}

NR == 1 {
    printf("Seperating sheets...")                 > "/dev/tty"
}

/^%%Page:/  {
    if (fout != "") {
        print "%%Trailer"  >> fout
        print "%%Pages: 1" >> fout
        print "%%EOF"   >> fout
        close(fout)
    }
    page++; body=1;
    printf(" [%d]", page)                          > "/dev/tty"

    fout = sprintf("%s_%03d.ps", fname, page)
    system("cat " head " > " fout)
    print "%%Page: " page " 1" >> fout
    next 
}

/^%%Trailer/ {
    exit
}

{
    if (body == 0)
        print > head
    else
        print >> fout       
}

END {
    if (exithelp == 0) {
        if (fout != "") {
            print "%%Trailer"  >> fout
            print "%%Pages: 1" >> fout
            print "%%EOF"   >> fout
            close(fout)
        }
        system("rm -f " head)
        printf("\n")                               > "/dev/tty"
    }
}

function basename (fname, ext) {
    lmax = length(fname)
    for (l = lmax; l > 0; l--) if (substr(fname, l, 1) == "/") break
    l++
    i = index(fname, ext) - l
    return substr(fname, l, i)
}
