CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Thu, 24 Jul 2025 23:03:37 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090210094509
location: https://web.archive.org/web/20090210094509/https://examples.oreilly.com/upt2/split/recomment
server-timing: captures_list;dur=0.537299, exclusion.robots;dur=0.018675, exclusion.robots.policy;dur=0.009522, esindex;dur=0.012102, cdx.remote;dur=13.868131, LoadShardBlock;dur=205.410317, PetaboxLoader3.datanode;dur=93.045287, PetaboxLoader3.resolve;dur=44.130106
x-app-server: wwwb-app214
x-ts: 302
x-tr: 240
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: SERVER=wwwb-app214; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Thu, 24 Jul 2025 23:03:38 GMT
content-type: text/plain
content-length: 2802
x-archive-orig-date: Tue, 10 Feb 2009 09:45:09 GMT
x-archive-orig-server: Apache
x-archive-orig-last-modified: Mon, 31 Mar 2008 18:10:12 GMT
x-archive-orig-etag: "b0a85f-af2-90194900"
x-archive-orig-accept-ranges: bytes
x-archive-orig-content-length: 2802
x-archive-orig-connection: close
cache-control: max-age=1800
x-archive-guessed-content-type: text/plain
x-archive-guessed-charset: utf-8
memento-datetime: Tue, 10 Feb 2009 09:45:09 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Tue, 18 Jun 2002 23:24:55 GMT", ; rel="prev memento"; datetime="Sun, 18 May 2008 20:46:43 GMT", ; rel="memento"; datetime="Tue, 10 Feb 2009 09:45:09 GMT", ; rel="next memento"; datetime="Wed, 30 Sep 2015 17:27:08 GMT", ; rel="last memento"; datetime="Fri, 25 Mar 2016 03:20:23 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_8_20090210075601_crawl103-c/52_8_20090210094437_crawl100.arc.gz
server-timing: captures_list;dur=0.757704, exclusion.robots;dur=0.029508, exclusion.robots.policy;dur=0.014111, esindex;dur=0.014735, cdx.remote;dur=73.525265, LoadShardBlock;dur=272.955116, PetaboxLoader3.datanode;dur=226.230597, PetaboxLoader3.resolve;dur=230.485272, load_resource;dur=207.703406
x-app-server: wwwb-app214
x-ts: 200
x-tr: 585
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
accept-ranges: bytes
#! /bin/sh
#
### recomment - re-format a program's comment block, usually from "vi"
### Usage (from 'vi'): !}recomment (reads block, writes back in place)
#
## IF YOU MAKE COMMENT BLOCKS LIKE THIS:
## ##
## ## These are comment lines blah blah blah blah blah blah blah
## ## More comment lines
## OR LIKE THIS:
## # These are
## # comment lines blah blah blah blah blah blah blah blah blah
## OR LIKE THIS:
## * These are
## * comment lines blah blah blah blah blah blah blah blah blah
## (AND SO ON...)
## IT CAN BE A HASSLE TO ADD MORE TEXT TO ONE OF THE LINES IN A BLOCK,
## BECAUSE THE LINE CAN GET TOO LONG, WHICH REQUIRES YOU TO FOLD THAT
## LINE ONTO THE NEXT LINE, WHICH MEANS YOU HAVE TO WORK AROUND THE
## LEADING COMMENT CHARACTER(S). YUCK.
##
## recomment READS THE LINES YOU FEED ITS STANDARD INPUT. IT LOOKS
## AT THE FIRST LINE AND FIGURES OUT WHAT CHARACTERS YOU'RE USING
## TO COMMENT THE LINE (SEE THE $cchar VARIABLE FOR A LIST, TYPICALLY
## SPACES, TABS, #'S OR *'S). THEN, IT STRIPS THOSE COMMENT CHARACTERS
## OFF OF EACH LINE... FEEDS THE REMAINING BLOCK OF TEXT TO THE fmt
## ULILITY, AND USES sed TO ADD THE COMMENT CHARACTERS AGAIN.
##
## YOU USUALLY USE recomment FROM INSIDE vi, WITH COMMANDS LIKE:
## !}recomment (REFORMAT TO THE NEXT BLANK LINE)
## OR 5!!recomment (REFORMAT THIS LINE AND THE NEXT 4)
##
## NORMALLY, recomment LETS fmt CHOOSE THE WIDTH OF THE COMMENT BLOCK
## (72 CHARACTERS, I THINK). TO GET ANOTHER WIDTH, YOU CAN EITHER:
## * GIVE THE WIDTH ON THE COMMANDLINE, LIKE:
## recomment -50
## * SET AN ENVIRONMENT VARIABLE NAMED CBLKWID. FOR EXAMPLE,
## IN C-SHELL, USE:
## setenv CBLKWID 50
## GIVE THE MAXIMUM WIDTH, IN CHARACTERS, FOR THE COMMENT TEXT.
##
## recomment ISN'T PERFECT, BUT IT'S USUALLY MUCH BETTER THAN NOTHING.
umask 077 # MAKE $temp PRIVATE
temp=/tmp/RECOMMENT$$
trap 'rm -f $temp; exit' 0 1 2 15
cchars=' #*' # LEADING CHARACTERS TO PRESERVE (INCL. SPACE, TAB)
case "$1" in
-[0-9]|-[0-9][0-9]|-[0-9][0-9][0-9]) widopt="$1" ;;
"") # CHECK ENVARIABLE (SILENTLY IGNORE ERRORS SO DON'T SCREW UP TEXT):
case "$CBLKWID" in
[0-9]|[0-9][0-9]|[0-9][0-9][0-9]) widopt="-$CBLKWID" ;;
esac
;;
*) # PRINT ERROR, THEN GIVE THEM TEXT BACK (SO vi WON'T DELETE LINES):
echo "Usage: `basename $0` [-widthnum]. (Text output with no reformatting.)" 1>&2
cat
exit
;;
esac
cat > $temp
# GET COMMENT CHARACTERS USED ON FIRST LINE; STORE IN $comment:
comment="`sed -n \"1s/^\([$cchars]*\).*/\1/p\" $temp`"
# GET NUMBER OF CHARACTERS IN COMMENT CHARACTER STRING:
cwidth=`expr "$comment" : '.*'`
# RE-FORMAT THE COMMENT BLOCK. IF $widopt SET, USE IT:
colrm 1 $cwidth < $temp | # STRIP OFF COMMENT LEADER FROM LINES
fmt $widopt | # RE-FORMAT THE TEXT, AND
sed "s/^/$comment/" # PUT THE COMMENT CHARACTERS BACK