HDTenEightyP/NetNews huggingface dataset:
From: s_grunwa@irau29.ira.uka.de (Knut Grunwald)
Newsgroups: de.comp.os.os9
Subject: Re: Erweiterung der stdio.h fuer schnelles fopen
Date: 31 Jul 1992 11:58:15 GMT
Organization: University of Karlsruhe, FRG
Distribution: uka
NNTP-Posting-Host: irau29.ira.uka.de

Sehr schoen !

Leider geht das nur bis 0x7e00. (trauer)
ERSTENS:
Ich habe mal ein stdio-lib in source besessen, aber leider
verschlampt oder was auch immer. Hat jemand dieses Teil (UNIX
unangepasst) noch irgendwo rumliegen ? Ein Info an mich oder:
From: Sepp@ppcger.ppc.sub.org (Josef Wolf)
Organization: PPC Germersheim, Germany
ware mir sehr willkommen.
Da inzwischen der GCC (gute Arbeit, ein hoch auf die Portierer)
vorliegt rechne ich mir jetzt Chancen aus das Teil auch zum
Laufen zu bekommen.
Das Ding hiess glaub ich TLIB.
ERSTENSA:
Hat jemand schon mal die read und write Funktionen ersetzt und das
ganze dann auch noch mit der cio gelinkt bekommen ? Ich bin
fuer jeden Tip dankbar. Ich habe die _ifunc und _ofunc schon
zu verify-Zwecken ersetzt, bekomme aber Aerger mit dem Traphandler
(kein Wunder, aber nicht ausanalysiert). Wer kennt sich aus ?
Meine derzeitige Anwendung: Automatisches _ss_size, wenn die
Dateigroesse zu stark waechst, um der Fragmentierung entgegen zu
wirken. Spaeter vielleicht cache. 

ZWEITENS. In alt.sources? Wurde letztensmal LHA1.01 gepostet fuer UNIX
und OSK. Leider wurde keine Konfiguration fuer OSK angegeben. War
jemand in der Lage das Zeug zu uebersetzen ?

DRITTENS. *********************************************
WICHTIG WICHTIG WICHTIG WICHTIG
Hat sich jemand schon mal mit Kommunikationsmanagern unter OSK
beschaeftigt. Also sowas wie pipe, message, pty, ... als file
manager ? Ich moechte das Zeug sammeln (auch halbgares, schrott usw.)
und fuer meine Diplomarbeit ausschlachten, soweit ich was damit
anfangen kann. Sollte ich mal fertig werden (DER ... schon totgelacht)
werde ich dann mein Ergebnis und 100k + TeX Dokumentation posten.
Das interessiert natuerlich keinen, da wir OSK-Fre(unde|aks) ja alles
selbst machen, aber warum sollen nur die PC-Leute Bandbreite
verschwenden ?

--- Knut Grunwald
Newsgroups: de.comp.os.os9
From: peters@dkrz-hamburg.dbp.de (Heino Peters)
Subject: Re: Problem mit struct/zeiger...
Organization: Deutsches Klimarechenzentrum, Hamburg
Date: Wed, 22 Jul 92 11:48:44 GMT

In article <1992Jul21.093829.5477@infoserver.th-darmstadt.de> misch@rbhp90.rbg.informatik.th-darmstadt.de writes:
>
>In article <1992Jul20.141723.16054@news.DKRZ-Hamburg.DE>, peters@dkrz-hamburg.dbp.de (Heino Peters) writes:
>> Ein gemeiner Hack waere strdup(blubber,0) aufzurufen. Das zweite Argument
>> wird in d1 uebergeben und dann (hoffentlich) von strdup() ignoriert.
>
>Das ist ein bekannter Fehler von MW CC 3.2. In einer der Release Notes
>fuer OSK V2.3 ist dieser Fehler beschrieben mit genau dem Workaround
>die Du angegeben hast.

Das war mir gar nicht bewusst. Aber beim Nachlesen habe ich gerade
festgestellt, dass in den Release Notes nur von Funktionen mit variabler
Parameteranzahl die Rede ist, waehrend strdup() genau einen Parameter
erwartet. Da muss also irgendwo noch ein Bug sein ...

Gruss, Heino

-- 
Heino Peters         | email:                        | Tel.:
Deutsches Klima-RZ   | peters@dkrz-hamburg.de        | +49 40 41173 287
Bundesstr. 55        | peters@dkrz-hamburg.dbp.de    | Fax:
D-2000 Hamburg 13    |                               | +49 40 41173 270
From: kt@keihh.hanse.de (Kei Thomsen)
Newsgroups: de.comp.os.os9
Subject: Re: Problem mit struct/zeiger...
Date: 21 Jul 92 15:16:32 GMT

In article <BvuoqG@ppcger.ppc.sub.org> Sepp@ppcger.ppc.sub.org (Josef Wolf) writes:

>typedef struct _foo {
>	char	**bar;
>} foo;

>n = 0;
>if (tmp -> bar = (char **) malloc (arraysize * sizeof (char *))) {
>    while (laber) {
>        [ ... ]
>        if (!((tmp -> bar)[n++] = strdup (blubber)))  /* hier kracht es */
>	    break;
>    }
>}

>Die Frage ist nun: wie kann ich den compiler ueberreden, d1 _nach_ dem
>Aufruf von strdup() zu berechnen. Alternativ nehme ich auch Vorschlaege
>entgegen, wie dieses Programmstueck korrekt zu schreiben ist ;-)

Ganz einfach: GCC benutzen. Damit geht das garantiert (habe ich gerade
getestet). Wer benutzt ueberhaupt noch den CC von Microware?

Hicks, Kei


                   /\
                  |^^|
                  |{}|
   _______________/~~\________________
  / Kei Thomsen   |  | keihh.hanse.de \
 `========--------.  .---------========'
                  ||||
 Wildermuthring 90 || kt@keihh.hanse.de
 2000 Hamburg 62   || 
 Voice 040/5205921 ||    OS-9 68030
 Modem 040/5200428 || 
 (2400 Baud)   ,---||---,
               '---<>---'
Newsgroups: de.comp.os.os9
From: misch@rbhp90.rbg.informatik.th-darmstadt.de (Clemens Misch)
Subject: Re: Problem mit struct/zeiger...
Originator: misch@rbhp90.rbg.informatik.th-darmstadt.de
Date: Tue, 21 Jul 1992 09:38:29 GMT
Reply-To: misch@rbhp90.rbg.informatik.th-darmstadt.de
Organization: Rechnerbetriebsgruppe FB20; TH Darmstadt (Germany)


In article <1992Jul20.141723.16054@news.DKRZ-Hamburg.DE>, peters@dkrz-hamburg.dbp.de (Heino Peters) writes:
> In article <BvuoqG@ppcger.ppc.sub.org> Sepp@ppcger.ppc.sub.org (Josef Wolf) writes:
> >n = 0;
> >if (tmp -> bar = (char **) malloc (arraysize * sizeof (char *))) {
> >    while (laber) {
> >        [ ... ]
> >        if (!((tmp -> bar)[n++] = strdup (blubber)))  /* hier kracht es */
> >	    break;
> >    }
> >}
> > [..]
> >Er berechnet saemtliche offsets _bevor_ er strdup() aufruft. Soweit, so
> >gut. Das Problem ist nun dass der Inhalt von d1 nach der Rueckkehr von
> >strdup() zerstoert ist. Ansonsten ist der Code durchaus akzeptabel.
> 
> Tja, nach den Aufrufkonventionen von Microware darf strdup() d1 nicht
> zerstoeren. Ist das etwa eine selbst geschriebene Assemblerversion von
> strdup() ? Oder eine mit gcc kompilierte ? Oder hat strdup() einen
> zweiten (Dummy-) Parameter deklariert ?
> 
> >Die Frage ist nun: wie kann ich den compiler ueberreden, d1 _nach_ dem
> >Aufruf von strdup() zu berechnen. Alternativ nehme ich auch Vorschlaege
> >entgegen, wie dieses Programmstueck korrekt zu schreiben ist ;-)
> 
> Ein gemeiner Hack waere strdup(blubber,0) aufzurufen. Das zweite Argument
> wird in d1 uebergeben und dann (hoffentlich) von strdup() ignoriert.

Das ist ein bekannter Fehler von MW CC 3.2. In einer der Release Notes
fuer OSK V2.3 ist dieser Fehler beschrieben mit genau dem Workaround
die Du angegeben hast.

Gruss Clemens
-- 
===============================================================================
Clemens Misch                                        Rechnerbetriebsgruppe FB20
                                                     Merckstrasse 25 
EMail: misch@rbhp90.rbg.informatik.th-darmstadt.de   W6100 Darmstadt (Germany)
From: kt@keihh.hanse.de (Kei Thomsen)
Newsgroups: de.comp.os.os9
Subject: Erweiterung der stdio.h fuer schnelles fopen
Date: 21 Jul 92 15:19:17 GMT


Hier eine erweiterung des stdio.h um die Bufsiz bei fopen
zu vergroessern. Geht leider nur mit GCC.


#define	OWNBUFSIZE	16384

#ifdef __GNUC__

#if (OWNBUFSIZE != BUFSIZE)

__inline static FILE *fopen_own (char *name, char *mode)
{
	FILE	*fp;
	fp = fopen( name, mode );
	if (fp)
	{
		fp->_bufsiz = OWNBUFSIZE;
	}
	return fp;
}

#define	fopen	fopen_own

#endif
#endif
                   /\
                  |^^|
                  |{}|
   _______________/~~\________________
  / Kei Thomsen   |  | keihh.hanse.de \
 `========--------.  .---------========'
                  ||||
 Wildermuthring 90 || kt@keihh.hanse.de
 2000 Hamburg 62   || 
 Voice 040/5205921 ||    OS-9 68030
 Modem 040/5200428 || 
 (2400 Baud)   ,---||---,
               '---<>---'
Newsgroups: de.comp.lang.c
From: bof@midget.saar.de (Patrick Schaaf)
Subject: Re: Unter Un*x ein file zweimal oeffnen ???
Organization: Yoyodyne Programming Systems,  midget headquarters, Germany
Date: Thu, 23 Jul 1992 08:21:12 GMT

Ich schrieb faelschlicherweise:
>haen@veces.stgt.sub.org (Herbert Neugebauer) writes:
>>Hallo,
>>ich habe ein kleines Problem beim portieren eines
>>Un*x-C-Programmes auf OS/2. Dabei wird in einem
>>Programmteil ein File zweimal hintereinander geoeffnet
>>ohne vor dem zweiten Mal geschlossen zu werden.
>>    if ((fp_active2w = fopen(filename, "r+")) == Nullfp) {
>>    [...]
>>    if ((fp_active2 = fopen(filename, "r")) == Nullfp) {
>  - wenn Du auf dem write-fp etwas geschrieben hast und jetzt lesen moechtest,
>    mach einen fflush(fp_active2w); fflush(fp_active2); und lies.

Das war falsch, der zweite fflush() tut nichts, zumindest nicht dokumentiert.

Ich schrieb des weiteren:
>Es bleibt noch die Frage, warum das unter OS/2 ohne weiteres funktioniert
>haben sollte, da dort meines Wissens fuer stdio die gleichen Bedenken gelten.
>Oder hattest Du dort direkte DosCalls?

Womit ich gezeigt haette, dass ich die Frage genau falschherum interpretiert
haette. Dank an Jutta Degener fuer den Hinweis...

Sofern das Problem noch nicht geloest ist: Kannst Du bitte die Source in eine
Form bringen, die das Problem noch hat, dass Du siehst, aber moeglichst wenig
sonstiges drumrum, und die mir zumailen / posten? Ich hab hier unter anderem
auch ein OS/2 rumstehen und koennt mich mal dran versuchen.

Gruss und so
  Patrick

-- 
bof@midget.saar.de      /   \      I've just spent an hour in Your head.
Saarbruecken, De     .^/ -.- \      Believe me, I've been in nicer places.
Patrick Schaaf      / /       \        (kid eternity)
-                  this line intentionally blanked right                  -
From: tom@smart.bo.open.de (Thomas Neumann)
Newsgroups: de.comp.lang.c
Subject: Re: Unter Un*x ein file zweimal oeffnen ???
Date: 20 Jul 92 17:58:52 GMT
Organization: News at smart
X-Newsreader: Tin 1.1 PL4

haen@veces.stgt.sub.org (Herbert Neugebauer) writes:
: Hallo,
: 
: ich habe ein kleines Problem beim portieren eines
: Un*x-C-Programmes auf OS/2. Dabei wird in einem
: Programmteil ein File zweimal hintereinander geoeffnet
: ohne vor dem zweiten Mal geschlossen zu werden.
: 
[einige Zeilen obskurer Code entfernt]
: 
: Nun waere es ziemlich Arbeit das ganze Programm mit mehreren
: hundert Zeilen um diesen Schnipsel herum umzuschreiben. Die
: OS/2-System-Calls wuerden einen "shared"-Zugriff erlauben, aber
: dann koennte ich die normalen fputs, fprintf... nicht mehr
: verwenden.....

Nun, ich bin kein OS/2 Experte, aber warum hast du unter der Voraussetzung
des 'shared' Oeffnens kein fputs(), fprintf() usw. mehr zur verfuegung ?
Wenn es nur daran scheitert, dass das 'shared' Oeffnen nur mit Funktionen
der Familie open(), read(), usw. moeglich ist, dann sollte dir die Funktion
fdopen() weiterhelfen, oder, in diesem speziellen Fall sogar eine Kombination
von dup() und anschliessendem fdopen().

Auf die Gefahr hin, das Problem total missverstanden zu haben...

bye -- Thomas
From: udo@ubla.novalis.public.sub.org (Udo Blatzheim)
Newsgroups: amiga.prog,amiga.general,de.comp.lang.c
Distribution: world
Subject: Help: Amiga C Timer-Device
X-Newsreader: Ann 0.8m
Date: 20 Jul 92 22:18:01 CET
Organization: home, sweet home

Hallo Ihr Spezialisten,

mein Problem:    ich  mchte  das  ein  C-prog.  fuer einen bestimmten
Zeitraum in den Hintergrund verschwindet ohne bei diesem wait die CPU
zu belasten.  Da  steht  nun in diesem dicken Buch "Amiga intern" auf
Seite  618  ein  Beispiel fuer  das  Timer-Device.    Aber  das  Ding
funktioniert nicht. Weiss jemand warum?

Im voraus herzlichen Dank fuer Eure Hilfe

ciao,
  Udo

Ps. SAS/C Version 5.10a, AmigaDOS 2.0
    Amiga500 3MB, 20MB, 50MB

#include <exec/execbase.h>
#include <string.h>
#include <devices/timer.h>
#define TIME_LEN (ULONG) (sizeof (struct timerequest))
extern struct ExecBase *SysBase;
int Error;
struct timerequest *TimeRequest=0L;

void WaitTime();

main()
{
   WaitTime(TimeRequest,20L,0L);
}

void WaitTime(TimeRequest, Secs, Micro)
struct timerequest *TimeRequest;
ULONG Secs, Micro;
{
   Error = OpenDevice("timer.device", (ULONG) UNIT_VBLANK,
                       &TimeRequest, 0L, TIME_LEN);
   if(Error!=0) printf("\nOpenDevice() - Error\n");
   TimeRequest->tr_time.tv_secs=Secs;          Hier steigt er aus !!!???
   TimeRequest->tr_time.tv_micro=Micro;
   DoIO(TimeRequest, (UWORD)TR_ADDREQUEST);
   CloseDevice(TimeRequest);
}

--
 Udo Blatzheim, Europe - Germany - 7035 Waldenbuch, Auf dem Graben 9
   home + voice only ..7157/8726   udo@ubla.novalis.public.sub.org
Newsgroups: de.comp.lang.c
From: zrawi01@indiaka.zdv.uni-tuebingen.de (J. Wiedmann)
Subject: Re: Statuswechsel im switch
Keywords: switch, c
Organization: Comp. Center (ZDV) U of Tuebingen, FRG
Date: Wed, 22 Jul 1992 10:23:57 GMT

In <sz.711790137@materna> sz@Materna.DE (Stefan Zimmermann) writes:

>	Was passiert hierbei?:

>	0:	for (was auch immer)
>	0a:	{
>	1:		switch (status)
>	2:		{
>	3:		case DEFAULT:	
>	4:			printf("DEFAULT");
>	5:			status = STATUS1;
>	6:			break;
>	7:		case STATUS1:
>	8:			printf("STATUS1");
>	9:			status = DEFAULT;
>	10:			break;
>		    :
>		    :
>	11:		}
>	12:	}

>Ich wuerde mir wuenschen, dass die Zuweisung in Zeile 5 zur Folge hat, dass
>der Zweig fuer den Fall STATUS1 auch noch durchlaufen wird. Die Zuweisung 
>in Zeile 9 allerdings erst beim naechsten Schleifendurchlauf Auswirkungen
>hat. Ist dem so und ist dies dann immer so ??

Nein, Stefan, das ist nicht so. Durch das break-Statement faellt das Programm
ein fuer allemal aus dem switch-Teil heraus. Du kannst aber denselben Effekt
erreichen, indem Du das break weglaesst oder indem Du Dein for(was auch immer)
geeignet formulierst, um den switch-Teil mehrere Male ausfuehren zu lassen.
(Etwa solange, bis ein Ende-Flag gesetzt ist.)

	Viel Glueck

			Jochen

-- 


------------------------------------------------------------------------------
Jochen Wiedmann			E-Mail: wiedmann@mailserv.zdv.uni-tuebingen.de
Wolkensteinstr. 14
7403 Ammerbuch-Poltringen	Bitte haben Sie Verstaendnis, falls Sie an
				einem Tag mehrere Briefe von mir bekommen.
Tel. 07073/4291			Ein Aussortieren von Hand waere weit teurer
				als die zusaetzlichen InterNet-Gebuehren.
--


------------------------------------------------------------------------------
Jochen Wiedmann			E-Mail: wiedmann@mailserv.zdv.uni-tuebingen.de
From: silber@orfeo.Eng.Sun.COM (Eric Silber)
Newsgroups: de.comp.lang.c
Subject: Re: v*printf
Date: 23 Jul 1992 17:05:05 GMT
Organization: Sun Microsystems, Mt. View, Ca.
NNTP-Posting-Host: orfeo

In article <flebbe.711898624@wega> flebbe@wega.tat.physik.uni-tuebingen.de (Olaf Flebbe) writes:
>gm@germal.bs.open.de (Gerald Malitz) writes:
>
>
>>	Kurz und schmerzlos: sind vprintf, vfprintf und vsprintf
>>Teil des ANSI-Standards?
>Ja: Unterpunkte 4.9.6.7-4.9.6.9 vom ANSI X3.159-1989
>
>>	Manche stdio-Implementationen bieten auch noch eine
>>vierte Funktion, die als erstes Argument einen Pointer auf
>>eine Funktion bekommt.  Diese Funktion wird fuer jedes
>>auszugebende Zeichen aufgerufen.  Ist die Standard oder
>>wenigstens verbreitet?
>
>Ich kenne so eine Funktion nicht, und sie ist mir nicht aufgefallen,
>als ich einmal eine Bibliothek auf ANSI-Compatiblit"at abegeklopft habe.
>Wie soll denn das Kind hei"sen?

 aus den 'SunOS4.x man pages' zitiert:
----------------------------------------------------------------
Reformatting page.  Wait... done

printf(3B)  SunOS/BSD Compatibility Library Functions  printf(3B)
 
NAME
     printf, fprintf, sprintf, vprintf, vfprintf, vsprintf - for-
     matted output conversion

SYNOPSIS
     /usr/ucb/cc [ flag ... ] file ...
 
     #include <stdio.h>

     int printf(char *format, /* arg */ ...);
 
     int fprintf(FILE *stream, char *format, /* arg */ ...);
 
     char *sprintf(char *s, char *format, /* arg */ ...);
 
     int vprintf(char *format, va_list ap);

     int vfprintf(FILE *stream, char *format, va_list ap);
 
     char *vsprintf(char *s, char *format, va_list ap);
 
DESCRIPTION
     printf() places output on the standard output stream stdout.
     fprintf()   places   output  on  the  named  output  stream.
     sprintf() places "output," followed by  the  NULL  character
     (\0),  in consecutive bytes starting at *s; it is the user's
     responsibility to ensure that enough storage is available.

     vprintf(),  vfprintf(),  and  vsprintf()  are  the  same  as
     printf(), fprintf(), and sprintf() respectively, except that
     instead of being called with a variable number of arguments,
     they  are  called  with  an  argument  list  as  defined  by
     varargs(5).
From: jlinz@krokus.han.de (Jochen Linz)
Newsgroups: de.comp.lang.c
Subject: Re: Statuswechsel im switch
Keywords: switch, c
Date: 26 Jul 92 07:03:59 GMT
Reply-To: jlinz@krokus.han.de
Organization: private site - Hannover/Germany
X-Software: HERMES GUS 1.03 Rev. Apr 14 1992

In <sz.711790137@materna>, Stefan Zimmermann writes:
]Hi ,
]
]nicht nur zur Belebung dieser Gruppe, folgende Frage:
]
]	Was passiert hierbei?:
]
]	0:	for (was auch immer)
]	0a:	{
]	1:		switch (status)
]	2:		{
]	3:		case DEFAULT:	
]	4:			printf("DEFAULT");
]	5:			status = STATUS1;
]	6:			break;
]	7:		case STATUS1:
]	8:			printf("STATUS1");
]	9:			status = DEFAULT;
]	10:			break;
]		    :
]		    :
]	11:		}
]	12:	}
]
]Ich wuerde mir wuenschen, dass die Zuweisung in Zeile 5 zur Folge hat, dass
]der Zweig fuer den Fall STATUS1 auch noch durchlaufen wird. Die Zuweisung 
]in Zeile 9 allerdings erst beim naechsten Schleifendurchlauf Auswirkungen
]hat. Ist dem so und ist dies dann immer so ??

 Die switch()-Anweisung wird wie eine if()-Anweisung behandelt :
 
 if(status==DEFAULT)
 {
 }
 else
 {
	if(status==STATUS1)
	{
	} 
 }
 
 Hier sieht man auch, dass nachfolgende Bedingungen nicht mehr geprueft werden, wenn
 eine Bedingung zutrifft... Du musst also switch() erneut aufrufen...

 gruss,
 Jochen
-- 

|featuring the massive, epoch-making humungous pangalactic, really quite large|
:-)---------------------------- mega-signature : ---------------------------(-:
| Jochen Linz Henckellweg 7 W-3000 Hannover 91 Germany, Voice: +49 511 417407 |
From: gm@germal.bs.open.de (Gerald Malitz)
Newsgroups: de.comp.lang.c
Subject: Re: v*printf
Date: 24 Jul 92 19:56:07 GMT
X-Newsreader: Arn V1.00 beta rel2

In article <flebbe.711898624@wega>, Olaf Flebbe writes:

> gm@germal.bs.open.de (Gerald Malitz) writes:
>
> >	Manche stdio-Implementationen bieten auch noch eine
> >vierte Funktion, die als erstes Argument einen Pointer auf
> >eine Funktion bekommt.  Diese Funktion wird fuer jedes
> >auszugebende Zeichen aufgerufen.  Ist die Standard oder
> >wenigstens verbreitet?
>
> Ich kenne so eine Funktion nicht, und sie ist mir nicht aufgefallen,
> als ich einmal eine Bibliothek auf ANSI-Compatiblit"at abegeklopft habe.
> Wie soll denn das Kind hei"sen?

	Gerade nochmal nachgeschaut: _pf :)  Ok, bei mir (SAS C) ist die
Funktion offensichtlich eine interne der Library, manche nennen das Ding
aber auch vfnprintf.

>   Olaf Flebbe

	Tschuess, Gerald.

-- 
  // Gerald Malitz,  Bolchentwete 4,  3300 Braunschweig,  Voice: +49 531 796832
\X/ gm@germal.bs.open.de                   ISO?  Nicht immer, aber immer vfter.
Newsgroups: de.comp.lang.c
From: tobi@swabsib.stgt.sub.org  (Tobias Hennerich)
Subject: Re: Statuswechsel im switch
Organization: Swabian Siberian Software Solutions
Date: Thu, 30 Jul 1992 16:53:24 GMT

In article <bsYpr*Pg0@forge.erh.sub.org> barnard@forge.erh.sub.org  
(Henning Schmiedehausen) writes:
[Beispiel in dem switch durch ein paar ifs ersetzt wurde geloescht...]
> 
> Das stimmt nur, wenn Du brav 'break' Statements einfuegst.
> 
> Diese Anweisung:
> 
> 	switch(foo)
> 	{
> 		case bar1: 
> 		{
> 			laber();
> 			break;
> 		}
> 		case bar2:
> 		{
> 			fasel();
> 		}
> 		default:
> 		{
> 			bla();
> 		}
> 	}
> 
> kannst Du kaum noch mit if's umschreiben... :)
> 
und warum nicht?

if(foo==bar1)
    laber();
else {
    if(foo==bar2)
	fasel();

    bla();
}

Hat sogar noch den Vorteil, dass foo und bar floats sein duerfen...

Nix fuer ungut,	Tobi

-- 
 MM     Tobias Hennerich, +49 7182 7956, tobi@swabsib.stgt.sub.org
<' \__/|      Remember: You can always reset the computer by
 \_  _/       taking out the plug and putting it back again.
___][___        (sinclair ZX Spectrum introduction, 1982)
From: krey@ira.uka.de (Andreas Krey)
Newsgroups: de.comp.lang.c
Subject: Re: Statuswechsel im switch
Date: 23 Jul 1992 09:19:51 GMT
Organization: University of Karlsruhe, Comp. Sc. Dept., FRG
Distribution: world
NNTP-Posting-Host: i30s20.ira.uka.de
Keywords: switch, c

In article <zrawi01.711800637@indiaka>, zrawi01@indiaka.zdv.uni-tuebingen.de (J. Wiedmann) writes:
|> In <sz.711790137@materna> sz@Materna.DE (Stefan Zimmermann) writes:
|> 
|> >	Was passiert hierbei?:
|> 
|> >	0:	for (was auch immer)
|> >	0a:	{
                   while(1) {
|> >	1:		switch (status)
|> >	2:		{
|> >	3:		case DEFAULT:	
|> >	4:			printf("DEFAULT");
|> >	5:			status = STATUS1;
                                continue;         /* statt break */
|> >	7:		case STATUS1:
|> >	8:			printf("STATUS1");
|> >	9:			status = DEFAULT;
|> >	10:			break;
|> >		    :
|> >		    :
|> >	11:		}
                     break;                /* Verlaesst while */
                   }
|> >	12:	}
|> 
|> >Ich wuerde mir wuenschen, dass die Zuweisung in Zeile 5 zur Folge hat, dass
|> >der Zweig fuer den Fall STATUS1 auch noch durchlaufen wird. Die Zuweisung 
|> >in Zeile 9 allerdings erst beim naechsten Schleifendurchlauf Auswirkungen
|> >hat. Ist dem so und ist dies dann immer so ??
|> 
|> Nein, Stefan, das ist nicht so. Durch das break-Statement faellt das Programm
|> ein fuer allemal aus dem switch-Teil heraus. Du kannst aber denselben Effekt
|> erreichen, indem Du das break weglaesst oder indem Du Dein for(was auch immer)
|> geeignet formulierst, um den switch-Teil mehrere Male ausfuehren zu lassen.
|> (Etwa solange, bis ein Ende-Flag gesetzt ist.)
|> 
Zum Drumrumwickeln der Schleife (fuer die Wiedervorlage sozusagen) habe
ich oben einen 'Dirty Trick' mit continue eingebaut.

Mit dem Continue kannst Du naemlich direkt die while-Schleife um den
switch herum fortsetzen, weil switch nur break, aber nicht continue
abfaengt :-) Hat nur den Nachteil, dass breaks, die evtl. hinter
dem switch in der for()-schleife standen, jetzt nicht mehr das for()
abbrechen. Abhilfe: Nur switch und das neue break in while-schleife.

-- 
Andreas

"Der Mensch ist gut, doch die Leut san boes." -- bayr. Redensart.

#include <disclaimer.h>
From: zok@horga.ruhr.de (Andreas Frackowiak)
Newsgroups: de.comp.lang.c
Subject: Re: Dumme Frage
Date: 30 Jul 92 19:35:44 GMT
Organization: OPeN - The Digital Advantage

udo@slice.quest.sub.org (Udo Klimaschewski) writes:
>Kann mir einer mal den Sinn erklaeren, warum das funkioniert:
...
>compiliert auf SunOS 4.1 / SunOS 4.1.1 / DEC Risc Ultrix 4.2 / IBM AIX 3.1

Auf SYSVR4 (Dell) funktionierts nicht. 


OkiDoki
Andreas


-- 
Andreas Frackowiak                                              af@germany.uucp