Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Mar 2009 13:14:18 -0700
From:      Gary Kline <kline@thought.org>
To:        Polytropon <freebsd@edvax.de>
Cc:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: Why??  (prog question)
Message-ID:  <20090331201418.GB1830@thought.org>
In-Reply-To: <20090331210142.7dcb52ec.freebsd@edvax.de>
References:  <20090331025726.GA10888@thought.org> <20090331112122.ae329221.freebsd@edvax.de> <20090331155416.GA8590@thought.org> <20090331210142.7dcb52ec.freebsd@edvax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 31, 2009 at 09:01:42PM +0200, Polytropon wrote:
> On Tue, 31 Mar 2009 08:54:17 -0700, Gary Kline <kline@thought.org> 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 <foo> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090331201418.GB1830>