#!/usr/bin/perl # DeCSS v 0.06 -- a utility for stripping Cascading Style Sheet (CSS) # information from an HTML page # Copyright 2000, Mr. Bad of Pigdog Journal (http://www.pigdog.org/). # All Rights Reserved. # This software is distributed under the Artistic License, which should have # come with this file. Please distribute this software far and wide. # The original version can always be found on the World Wide Web at: # # http://www.pigdog.org/decss/ # THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. use Getopt::Std; use strict; # Choosy software uses strict! my($USAGE) = <<"END_OF_USAGE"; DeCSS 0.06: a utility to strip Cascading Style Sheets (CSS) tags from HTML documents USAGE: DeCSS [-h] [-i input file] [-o output file] options: -h print this help message -i input file input file to strip (default: standard input) -o output file place to put the output (default: standard output) END_OF_USAGE my(%options); local(*IN, *OUT); getopts("hi:o:", \%options); if (exists $options{h}) { print $USAGE; exit(0); } if (exists $options{i}) { open(IN, "<$options{i}") or die "Can't open $options{i}: $!\n"; } else { open(IN, "<&STDIN") or die "Can't open STDIN: $!\n"; } if (exists $options{o}) { open(OUT, ">$options{o}") or die "Can't open $options{o}: $!\n"; } else { open(OUT, ">&STDOUT") or die "Can't open STDOUT: $!\n"; } decssify(*IN, *OUT); close(IN); close(OUT); sub decssify { local(*IN, *OUT) = @_; # Yeah, like -you- never slurp in entire files at a time. select(IN); undef $/; my($content) = ; $content =~ s%%%mg; # Strip stylesheet links $content =~ s%%%mg; # Strip