Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postfix/mantools/   (Postfix Mailserver Version 3.11©)  Datei vom 19.1.2017 mit Größe 5 kB image not shown  

Quelle  ccformat

  Sprache: C
 

#!/bin/sh

# ccformat - convert C code to standard format

# @(#) ccformat.sh 1.3 11/5/89 14:39:29

# how to suppress newlines in echo

case `echo -n` in
"") n=-n; c=;;
 *) n=; c='\c';;
esac

# initialize

TMPF=/tmp/ccformat.$$
ERROR=
TROFF=
BCK=
FLAGS="-st -di8 -npsl -bap -bad -bbb -nbc -i4 -d0 -nip -nfc1 -cd41 -c49"

trap 'rm -f .ind.$$ $TMPF; exit 1' 1 2 3 15

# parse command options

while :
do
 case $1 in
 -t) TROFF=-troff;;
 -b) case $# in
     1) ERROR="-b option requires backup argument"break;;
     *) BCK=$2; shift;;
     esac;;
 -T) case $# in
     1) ERROR="-T option requires typename argument"break;;
     *) FLAGS="$FLAGS -T$2"; shift;;
     esac;;
 -*) ERROR="invalid option: $1"break;;
  *) break;;
 esac
 shift
done

# check for invalid commands

test -z "$ERROR" || {
 echo "$0: $ERROR" 1>&2
 echo "usage: $0 [-b backup] [-t] [-T typename] [file(s)]" 1>&2
 exit 1; }

# format the files

case $# in 
 0) indent $TROFF $FLAGS;;
 *) case "$TROFF" in
-troff) for i in $*
 do
     indent $TROFF $FLAGS $i
 done;;
     *) for i in $*
 do 
     echo $n $i... $c 
     test -z "$BCK" || cp $i $i"$BCK" || { echo backup FAILED; exit 1; } 
     { # some versions of indent return garbage exit status -- gack!
     (indent $FLAGS <$i 2>.ind.$$ >$TMPF || test ! -s .ind.$$) >$TMPF &&
     # try a device full check
     # echo >>$TMPF && 
     (
  # ignore interrupts while we overwrite the original file
  trap '' 1 2 3 15; cp $TMPF $i 
     ) && echo replaced; } || { echo replacement FAILED; exit 1; }
 done;;
    esac;;
esac

rm -f $TMPF .ind.$$

exit

#++
# NAME
# ccformat 1
# SUMMARY
# convert C source text to standard format
# PROJECT
# sdetools
# SYNOPSIS
# ccformat [-b backup] [-t] [-T typename] [file(s)]
# DESCRIPTION
# The \fIccformat\fR command adjusts the layout of C program text 
# such that it approximates the Kernighan and Ritchie coding style.
#
If no file names are specified, \fIccformat\fR reads 
# from standard input and writes the result to standard output. 
This is convenient for source formatting from within a text
# editor program.
#
# Otherwise, the named files are overwritten with their 
# formatted equivalent. The \fI-b\fR option (see below) provides 
# a way to create backup copies of the original files.
#
# Alternatively, the command can be used as a preprocessor for
# pretty-printing with the \fInroff\fR or \fItroff\fR commands
# (see the -t option below). In this case, output is always written 
# to standard output and no change is made to source files.
#
# The following options are recognized:
# .TP
# -b backup
# Requests that a copy of the original files be saved. The backup
# file name is constructed by appending the specified \fIbackup\fR 
# string to the original file name. 
This option is ignored when the \fI-t\fR
# option is specifid.
# .TP
# -t
# Makes the program act as a preprocessor
for pretty-printing with \fInroff\fR or \fItroff\fR.
For example, in order to produce a pretty-printed
# version on the line printer, use
#
 ccformat -t file(s) | nroff -mindent | col | lp
# .TP
# -T typename
# Adds \fItypename\fR to the list of type keywords.
# Names accumulate: -T can be specified more
# than once. You need to specify all the
# typenames that appear in your program that
# are defined by typedefs - nothing will be
# harmed if you miss a few, but the program
# won't be formatted as nicely as it should.
# PROGRAM LAYOUT
# .fi
# .ad
# The following program layout is produced:
# .TP 
# comments
# Comments starting in the first column are left untouched.
# These are often carefully laid out by the programmer.
# .sp
# Comments that appear in-between statements are lined up with 
# the surrounding program text, and are adjusted to accommodate 
# as many words on a line as possible. 
# However, a blank line in the middle of a comment is respected.
# .sp
# Trailing comments after declarations begin at column 41 
# (5 tab stops). 
# Trailing comments after executable statements start at 
# column 49 (6 tab stops). 
# .TP
# indentation
# Statements are indented by multiples of four columns. 
# There is only one statement per line. A control statement
# is always placed on a separate line.
# .TP
# braces
If an opening brace is preceded by a control statement (\fCif,
elsedofor\fR or \fCswitch\fR), it is placed on the same line 
# as the control statement.
# .sp
# A closing brace is placed at the same level of indentation as the 
# program text that precedes the corresponding opening brace.
If a closing brace is followed by a control statement (\fCelse\fR
# or \fCwhile\fR), that control statement is placed on the same line 
# as the closing brace.
# .sp
# In practice, brace placement is as
# exemplified by the books on C by B.W. Kernighan and D.M. Ritchie.
# .TP
# blanks
# Blanks are placed around assignment and arithmetic operators.
# Commas in declarations or parameter lists are followed by one blank. 
# .sp
# In the following cases a 
# blank line is inserted if it is not already present in the text:
1) in front of a block comment, 2) between local declarations and 
# executable statements 3) after each function body. 
# .TP
# declarations
# In the output, each variable declaration appears on
# a separate line.
# COMMANDS
# indent(1)
# FILES
# /tmp/ccformat.* intermediate files
# SEE ALSO
# indent(1)
# DIAGNOSTICS
# Indent may complain in case of syntax errors. These show
# up as comments in the resulting program text.
# BUGS
# The programs seems to beave even when fed ANSI C or even C++
# code; this has not been tested thoroughly, however.
#
# Will produce useless files when fed with anything that is
# not C program text. This does not imply a judgment about
# C programs in general.
# AUTHOR(S)
# W.Z. Venema
# Eindhoven University of Technology
# Department of Mathematics and Computer Science
# Den Dolech 2, P.O. Box 5135600 MB Eindhoven, The Netherlands
# CREATION DATE
# Fri May  6 14:07:04 MET DST 1988
# STATUS
# ccformat.sh 1.3 11/5/89 14:39:29 (draft)
#--

Messung V0.5 in Prozent
C=99 H=33 G=73

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.