From owner-freebsd-questions@FreeBSD.ORG Tue Mar 31 20:14:28 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CEB30106566B for ; Tue, 31 Mar 2009 20:14:28 +0000 (UTC) (envelope-from kline@thought.org) Received: from aristotle.thought.org (ns1.thought.org [209.180.213.210]) by mx1.freebsd.org (Postfix) with ESMTP id 7D6858FC13 for ; Tue, 31 Mar 2009 20:14:28 +0000 (UTC) (envelope-from kline@thought.org) Received: from thought.org (tao.thought.org [10.47.0.250]) (authenticated bits=0) by aristotle.thought.org (8.14.2/8.14.2) with ESMTP id n2VKFPIL059541; Tue, 31 Mar 2009 13:15:26 -0700 (PDT) (envelope-from kline@thought.org) Received: by thought.org (nbSMTP-1.00) for uid 1002 kline@thought.org; Tue, 31 Mar 2009 13:14:18 -0700 (PDT) Date: Tue, 31 Mar 2009 13:14:18 -0700 From: Gary Kline To: Polytropon Message-ID: <20090331201418.GB1830@thought.org> References: <20090331025726.GA10888@thought.org> <20090331112122.ae329221.freebsd@edvax.de> <20090331155416.GA8590@thought.org> <20090331210142.7dcb52ec.freebsd@edvax.de> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20090331210142.7dcb52ec.freebsd@edvax.de> User-Agent: Mutt/1.4.2.3i X-Organization: Thought Unlimited. Public service Unix since 1986. X-Of_Interest: With 22 years of service to the Unix community. X-Spam-Status: No, score=-4.4 required=3.6 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.2.3 X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on aristotle.thought.org Cc: FreeBSD Mailing List Subject: Re: Why?? (prog question) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2009 20:14:29 -0000 On Tue, Mar 31, 2009 at 09:01:42PM +0200, Polytropon wrote: > On Tue, 31 Mar 2009 08:54:17 -0700, Gary Kline wrote: > > > 1. Use the tab character for indentation. You can set its > > > length with your favourite editor (e. g. mcedit: F9, > > > Options, General; joe: ^TD). Don't waste with spaces. > > > > Ja, been doing this since 1978. Does anybody hit space-key > > 8 times!? > > I've seen "corporate guideline" for indentation = 10 spaces. > Used ^TD8 and then finally replace tab -> ' '. :-) > (sounds like corp. mentality... ) > > > > > 2. The main() function should be declared as > > > int main(int argc, char *argv[]) > > > or > > > int main(int argc, char **argv) > > > Note that it's returning (int). Use this functionality. > > > > I've come to prefer the *char argv[] ... I didn't use the formal int > > return because this was supposed throwaway code. (Going on years now > > tho, so ... my-bad.) > > The standard assumption of the return code is (int), so if > it's not declared, it's (int) anyway. > sure; and the code i've been writing as "prefab'd" C is as clean and explicit as i can make it. difft with throwaway stuff. [ may need to rethink that!] > > > > > 4. Use the predefined return codes, don't hardcode them. > > > FreeBSD has EXiT_SUCCESS and EXIT_FAILURE, they're for > > > maximum compatibility (such as with Linux). There are > > > more exit codes for differentiation, but they're specific > > > to FreeBSD, as far as I know. > > > > This I did not know. I have a prefab include file with a bunch > > of my own similar #defines. Wow, great! > > FreeBSD defines additional exit codes to specify the reason for > exiting more precisely in /usr/include/sysexits.h - for your > example, exit(EX_USAGE); would be a good exit code. > > I don't know how far this is adopted in Linux, but I think you > can only use the C99 two standard return codes. > > >From "man 3 exit": > The C Standard (ISO/IEC 9899:1999 (``ISO C99'')) defines the values 0, > EXIT_SUCCESS, and EXIT_FAILURE as possible values of status. > > > > > > 5. This is highly debatable: Use a good style for { and }. > > > > > > > Well, you're using the K&R { }; but for me, the "Ingres" > > style [[ yes, it was invented by someone else ]] gets my vote. > > I scan > > { > > and > > } > > > > more easily. 6 of one, half-dozen of another... . > > In fact, I'm sticking to the concept that only the highest level > of "code groupers" deserve a new line {: these are functions in > C and class methods in C++. Everything else has the { appended > (after a space) to the construct that causes the {. So if you find > a }, you only need to look up. It's obvious that a } is caused > by a {, but you want to know the construct that made it appear, > for example if(), while(), a struct definition or something similar. > With this concept at hand, looking up will make you find this > construct in question at the first glance. > it really is what you're used to. somehow, several weeks ago, a function just would not behave, and after close to an hour of using vi's "showmatch", i discovered that i was missing one closing brace. *mumble* > You could see this in the example. > > But as we'll all agree, this is a thing of individual preference. > > > > > Here is the program again, with some stylistic modifications > > > and the "correct" (read: recommended, usual) exit code handling: > > > > I'll swipe this. I use this code with openoffice and abiword > > because I compose with vi; but I almost always forget to run > > my text thru joinlines and have to quit the word processor, run > > jlines bar; mv bar foo; then restart the word processor. > > I figure that I've spend several centuries of my lifetime messing > > with jlines, so i'm overdue for doing it right.... > > I think OpenOffice has the function Input - from file (at least > the german version has: Alt-E D = Einfügen Datei). This makes it > easier to incorporate text from an external file. > thanks for the datapoint; i'll check. i type virtually all text in vi just because my fingers know it. (i've been in openoffice and found myself hitting the escape key or "/" to search ... and other vi-isms. :) gary > > -- > Polytropon > >From Magdeburg, Germany > Happy FreeBSD user since 4.0 > Andra moi ennepe, Mousa, ... > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org" -- Gary Kline kline@thought.org http://www.thought.org Public Service Unix http://jottings.thought.org http://transfinite.thought.org The 2.41a release of Jottings: http://jottings.thought.org/index.php