Linux-Development-Sys Digest #329, Volume #6     Mon, 25 Jan 99 15:14:47 EST

Contents:
  Re: sendmail-8.9.2 claims that "seteuid" is broken - True? (Mike Dowling)
  Re: getting notified on file change? (M Sweger)
  Re: sendmail-8.9.2 claims that "seteuid" is broken - True? (Chris Rankin)
  Re: Modest next goal for Linux (Christian Bullerdick)
  Re: Modest next goal for Linux (Lars Hofhansl)
  Re: Re: How can I build a Linux system from scratch - NO distribution? (Adrian 
'Dagurashibanipal' von Bidder)
  Re: Modest next goal for Linux (Marco Anglesio)
  Re: How can I build a Linux system from scratch - NO distribution? (Stefan Monnier)
  Re: 2.2pre9 won't compile (=?iso-8859-1?Q?Jos=E9=20Ure=F1a?=)
  Re: Comparison of Swing, Qt, GTk? ([EMAIL PROTECTED])
  HELP: ISO 9660 File System (Javier Reyes)
  Possible solution to Netscape freeze (Re: Modest next goal for Linux0 (Navindra 
Umanee)
  Re: Why I'm dumping Linux, going back to Windblows (Andre Laframboise)

----------------------------------------------------------------------------

From: [EMAIL PROTECTED] (Mike Dowling)
Subject: Re: sendmail-8.9.2 claims that "seteuid" is broken - True?
Date: 25 Jan 1999 13:18:40 GMT

What error messages do you get?

$ll /usr/sbin/sendmail
-r-sr-xr-x   1 root     mem        291420 Jan  4 15:16 /usr/sbin/sendmail

It installs correctly for me.

Cheers,
  Mike Dowling

-- 
My email address [EMAIL PROTECTED] above is a valid email address.
It is, in fact, a sendmail alias; the digit 'N' is incremented regularly.
Spammed aliases will be deleted.  Currently, mike[5,7,8] have been deleted.
If email to mikeN bounces, try mikeN+1.

------------------------------

From: [EMAIL PROTECTED] (M Sweger)
Subject: Re: getting notified on file change?
Date: 25 Jan 1999 12:33:23 GMT
Reply-To: [EMAIL PROTECTED]

Malte Starostik ([EMAIL PROTECTED]) wrote:
: Hi!

: In the Win32 API there are FindFirstChangeNotification & co. to set up
: events that are triggered when files is created, deleted or changed in a
: specified directory.

: Is there something alike in Linux, so I can get a signal when a file is
: changed?

: Thanx,
: -Malte

You may also want to extend the capability to directory change too!
Since at times I would like to monitor a directory that would tell me
when a file is put into a directory, modified and deleted plus its
priveleges. Note: a directory is just a file and the data in it is the
list of files etc. I've tried the Unix command "tail -f" on the
directory structure, but this just doesn't cut it.

Perhaps you could write one that does all of the above, not only as a
shell script command but also as a library call.

--
        Mike,
        [EMAIL PROTECTED]


------------------------------

From: Chris Rankin <net.bellsouth@{no.spam}rankinc>
Subject: Re: sendmail-8.9.2 claims that "seteuid" is broken - True?
Date: Mon, 25 Jan 1999 13:56:37 GMT

Mike Dowling wrote:
> What error messages do you get?
> 
> $ll /usr/sbin/sendmail
> -r-sr-xr-x   1 root     mem        291420 Jan  4 15:16 /usr/sbin/sendmail
> 
> It installs correctly for me.

It's not an error message; it's a comment in the src/conf.h file. If you
examine the configuration options you will see that sendmail for Linux
doesn't use the "seteuid" system call because it claims that it's
broken. If this is true then it would be good to fix before 2.2.0 is
released.

Chris.

------------------------------

From: Christian Bullerdick <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.advocacy
Subject: Re: Modest next goal for Linux
Date: Mon, 25 Jan 1999 13:57:38 +0100
Reply-To: [EMAIL PROTECTED]

Hi *!

Liang-Shing Ng wrote:
> Is it possible to achieve my modest requirement of "guanranteed limited
> time response" in X window? i.e. When my Netscape started swapping, I
> want my cursor can still be responsive and move on to other windows and
> do some things.
Hm, maybe this could be achieved by changing the scheduler/dispatcher:
for 'near-realtime' operations to take place, there could be defined a new
process-type, which is handled diefferently by the scheduler/dispatcher.
Instead of dynamically assigning it a timeslice with whatever priority it 
has, a realtime-process/thread runs in a 'time-channel' and gets a specific
static ammount of CPU-time, say, it gets 20% of the overall CPU-time.
So the response time of such a process is at least constant.
In addition, the memory pages of such a process should be paged out last.

In this way, it schould be easy to create applications which rely on
synchonised timing (MIDI-sequencer, ...),  constant data rate (some 
audio/video player, ...), or minimal response times.


Christian.

------------------------------

From: Lars Hofhansl <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.advocacy
Subject: Re: Modest next goal for Linux
Date: Mon, 25 Jan 1999 16:46:18 +0100

Liang-Shing Ng wrote:
> 
> Is it possible to achieve my modest requirement of "guanranteed limited
> time response" in X window? i.e. When my Netscape started swapping, I
> want my cursor can still be responsive and move on to other windows and
> do some things.
> 

You set "real-time-RR-priority" for the X-Server process with the
sched_setscheduler(2) system call. In this case the X-Server will
only yield when it has no more work to do. I tried it and it worked
reasonably well.
You have to be aware, though, that not only the X-Server has to
stay responsive but also the Window Manager, etc.

Cheers,

        Lars

-- 
Legal Warning: Anyone sending me unsolicited/commercial email
WILL be charged a $100 proof-reading fee. See US Code Title 47,
Sec.227(a)(2)(B), Sec.227(b)(1)(C) and Sec.227(b)(3)(C).
Linux grows, see http://counter.li.org/ and register.


------------------------------

From: [EMAIL PROTECTED] (Adrian 'Dagurashibanipal' von Bidder)
Subject: Re: Re: How can I build a Linux system from scratch - NO distribution?
Date: Mon, 25 Jan 1999 16:17:06 GMT

On Fri, 22 Jan 1999 17:20:48 +0000, Richard Jones
<[EMAIL PROTECTED]> wrote:

>Jens Kristian S=F8gaard <[EMAIL PROTECTED]> wrote:

>: This is probably a DNS problem. Setup your DNS server to reply with a
>: "nonexistent domain"-error when an internet-domain is requested
>: ( ofcourse it should reply normally when connected to the net ).
>
>Can you explain how to do this?

The lazy way would be to have two named.conf files, one without a
'cache' line and set up as a root nameserver (like 'primary .' or
something like this). The other file would be normal.

Then, your ip-up script (or whatever) can switch the files (with a
symlink or so) and reset the nameserver (kill -HUP `/var/pid/named`)

I had it set up like that - it works quite good and it makes you
feel king of the world when your nameserver says to you
'microsoft.com: no such domain (authoritative)' :-)
--
                       Greets from over there
                       Dagurashibanipal
                       EMail: [EMAIL PROTECTED]

Nothing travels faster than light.
With, of course, the exception of bad news.     -- D. Adams

------------------------------

From: Marco Anglesio <[EMAIL PROTECTED]>
Subject: Re: Modest next goal for Linux
Crossposted-To: comp.os.linux.advocacy
Date: Mon, 25 Jan 1999 16:28:11 GMT

NNTP-Posting-Date: Mon, 25 Jan 1999 08:28:11 PDT

In comp.os.linux.development.system Liang-Shing Ng <[EMAIL PROTECTED]> wrote:
> Is it possible to achieve my modest requirement of "guanranteed limited
> time response" in X window? i.e. When my Netscape started swapping, I

You mean soft real-time operation. Check out RT Linux (www.rtlinux.org?).
Do bear in mind, however, that RT modes usually allow the OS to reject
requests as impossible when you overload it. That may not be what you
want: imagine starting netscape and netscape never showing up because the
request has been rejected. RT os'es usually also preclude the use of
virtual memory, as the speed at which page requests can be fulfilled
cannot be properly predicted.

Tweaking things to allow the Xserver a higher scheduling priority than X
clients would be not very difficult. However, you may not enjoy all the
results of such tweaking. Read man nice for more information.

marco

-- 
Marco Anglesio    The press isn't cynical enough. They're the only Americans
[EMAIL PROTECTED]             capable of this kind of embarrassing, greenhorn  
http://www.the-wire.com/~mpa        civic wonder anymore. (James Poniewozik)

------------------------------

From: Stefan Monnier 
<[EMAIL PROTECTED]>
Subject: Re: How can I build a Linux system from scratch - NO distribution?
Date: 25 Jan 1999 08:49:01 -0500

>>>>> "Richard" == Richard Jones <[EMAIL PROTECTED]> writes:
> My real problem is that I only want to refuse
> queries when the dial-up link is down. When the

In your script that takes to link down (or brings it up), change the
config for the resolver.  This can either be by
1 - changing /etc/resolv.conf so as to remove your named server from it
2 - changing /etc/nsswitch.conf so as to remove `dns' from the `hosts' line
3 - changing named's config and `kill -HUP' it.

I'm sure there are a few more ways to get the same result.  A more generic
way might be to make sure that when the link is down any access to something
that's not local will result in an immediate `no route to host' so as to
avoid timeouts.  But that precludes dial-on-demand.


        Stefan

------------------------------

From: =?iso-8859-1?Q?Jos=E9=20Ure=F1a?= <[EMAIL PROTECTED]>
Subject: Re: 2.2pre9 won't compile
Date: Mon, 25 Jan 1999 12:42:53 -0500


==============DC3D668BD4F737421BCD8226
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hey [EMAIL PROTECTED] ,

out of curiosity,
after downloading the patch or the whole upgraded kernel
and before doing the new compile

Did you ever used the make mrproper?

also, remember to redo

make menuconfig
make dep
make clean
make modules
make modules_install
make install

doing 'make bzImage' without cleaning the old crust from your files
could be getting in trouble

Bill Anderson wrote:

> [EMAIL PROTECTED] wrote:
> >
> > I tried compiling 2.2pre9, this is what I got:
> >
> > [ivo@one linux]$ make bzImage
> ...
>
> > /usr/src/kernel/linux/include/asm/smp.h:209: warning: implicit declaration of 
>function `GET_APIC_ID'
> > /usr/src/kernel/linux/include/asm/smp.h:209: `APIC_BASE' undeclared (first use 
>this function)
> > /usr/src/kernel/linux/include/asm/smp.h:209: (Each undeclared identifier is 
>reported only once
> > /usr/src/kernel/linux/include/asm/smp.h:209: for each function it appears in.)
> > /usr/src/kernel/linux/include/asm/smp.h:209: `APIC_ID' undeclared (first use this 
>function)
> > make: *** [init/main.o] Error 1
> >
> > (/usr/src/linux is linked to /usr/src/kernel/linux)
> >
> > It looks like someone made some changes and didn't try them with SMP
> > support turned on?
> >
> > Am I doing something wrong? Should I upgrade something first (don't think
> > so, this error really seems to be in the kernel source).
> >
> > I've been compiling each kernel from 2.1.127 without any problems.
> >
> > Currently I'm working remotely. When I'm back home I'll try to fix the
> > error myself but I'm still curious if I'm the only one experiencing this
> > problem.
> >
> >         Ivo
>
> Well, I have it on three machines now (will be 15 by monday ;-), and I
> compiled allof them with SMP on. No problems compiling here.
>
> I have heard that compiling with smp on for a machine that is
> dual-capable, but not in posession of the second chip is A-Bad-Thing
> (tm). Is this true? If so, what would the potential issues be?
>
> Bill Anderson
> My opionions are just that, *my* opinions.

==============DC3D668BD4F737421BCD8226
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Hey [EMAIL PROTECTED] ,
<p>out of curiosity,
<br>after downloading the patch or the whole upgraded kernel
<br>and before doing the new compile
<p>Did you ever used the make mrproper?
<p>also, remember to redo
<p>make menuconfig
<br>make dep
<br>make clean
<br>make modules
<br>make modules_install
<br>make install
<p>doing 'make bzImage' without cleaning the old crust from your files
<br>could be getting in trouble
<p>Bill Anderson wrote:
<blockquote TYPE=CITE>[EMAIL PROTECTED] wrote:
<br>>
<br>> I tried compiling 2.2pre9, this is what I got:
<br>>
<br>> [ivo@one linux]$ make bzImage
<br>...
<p>> /usr/src/kernel/linux/include/asm/smp.h:209: warning: implicit declaration
of function `GET_APIC_ID'
<br>> /usr/src/kernel/linux/include/asm/smp.h:209: `APIC_BASE' undeclared
(first use this function)
<br>> /usr/src/kernel/linux/include/asm/smp.h:209: (Each undeclared identifier
is reported only once
<br>> /usr/src/kernel/linux/include/asm/smp.h:209: for each function it
appears in.)
<br>> /usr/src/kernel/linux/include/asm/smp.h:209: `APIC_ID' undeclared
(first use this function)
<br>> make: *** [init/main.o] Error 1
<br>>
<br>> (/usr/src/linux is linked to /usr/src/kernel/linux)
<br>>
<br>> It looks like someone made some changes and didn't try them with
SMP
<br>> support turned on?
<br>>
<br>> Am I doing something wrong? Should I upgrade something first (don't
think
<br>> so, this error really seems to be in the kernel source).
<br>>
<br>> I've been compiling each kernel from 2.1.127 without any problems.
<br>>
<br>> Currently I'm working remotely. When I'm back home I'll try to fix
the
<br>> error myself but I'm still curious if I'm the only one experiencing
this
<br>> problem.
<br>>
<br>>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ivo
<p>Well, I have it on three machines now (will be 15 by monday ;-), and
I
<br>compiled allof them with SMP on. No problems compiling here.
<p>I have heard that compiling with smp on for a machine that is
<br>dual-capable, but not in posession of the second chip is A-Bad-Thing
<br>(tm). Is this true? If so, what would the potential issues be?
<p>Bill Anderson
<br>My opionions are just that, *my* opinions.</blockquote>
</html>

==============DC3D668BD4F737421BCD8226==


------------------------------

From: [EMAIL PROTECTED]
Crossposted-To: comp.lang.java.gui
Subject: Re: Comparison of Swing, Qt, GTk?
Date: Mon, 25 Jan 1999 16:45:34 GMT

I was looking at wxWindows since it is free for all platforms.
I think Qt is only free for unix.

I would be interested in the results of such a comparision
which includes wxWindows and maybe Tcl/Tk with the incr
extensions.

Dan Fabrizio

In article <[EMAIL PROTECTED]>,
  [EMAIL PROTECTED] (Michael Schuerig) wrote:
> BL <[EMAIL PROTECTED]> wrote:
>
> > In comp.os.linux.development.system Michael Schuerig <[EMAIL PROTECTED]>
wrote:
> >
> > : I'm wondering has done a comparison of Java's Swing with Qt (KDE /Linux)
> > : and GTk (GNOME/Linux)?
> >
> > I'm certainly no java expert - only been playing wiht it real informally,
but
> > with the current free tools (jdk) on linux and even on my work system
(irix),
> > I'd have to say that compiles are PAINFULLY slow, as are app STARTUP times!
>
> Before everyone goes down the performance path, it seems like I need to
> make clear that I'm not interested in that aspect right now. I'm looking
> for a comparison on the programming level: APIs, ease of development,
> general approach to GUI creation.
>
> Thanks,
> Michael
>
> --
> Michael Schuerig
> mailto:[EMAIL PROTECTED]
> http://www.schuerig.de/michael/
>

============= Posted via Deja News, The Discussion Network ============
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    

------------------------------

From: Javier Reyes <[EMAIL PROTECTED]>
Subject: HELP: ISO 9660 File System
Date: Mon, 25 Jan 1999 17:52:28 +0200
Reply-To: [EMAIL PROTECTED]

Hi Guys,

I need to make a program that makes a catalog of all the files and
directories of a cd-rom.
The program also has to find the absolute sector on the disc of each
file.

I know that sector 16 of ISO 9660 cdrom contains the Primary
Volume Descriptor. The Primary Volume Descriptor has something like the
following:

PRIMARY_VOLUME_DESCRIPTOR
{
    ID="CD0001";
    Other information;
    Location of root directory on the disc;  /* It points to a list of
files and directories */
    Size of root directory;
    Other information;
}

The root directory points to the list of files and sub-directories. Both
files
and directories are called directory records. Each directory record
contains
the ABSOLUTE sector where the file starts on and how long the file is in
bytes.

Can anybody give me a more detailed information on how it works, or
better, a
source code that does it?

Thanks a lot,

Javier

--
=====================================================================
Javier Reyes                            European Southern Observatory
email: [EMAIL PROTECTED]
=====================================================================



------------------------------

From: Navindra Umanee <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.advocacy
Subject: Possible solution to Netscape freeze (Re: Modest next goal for Linux0
Date: 25 Jan 1999 19:06:23 GMT

Tim Smith <[EMAIL PROTECTED]> wrote:
> Liang-Shing Ng <[EMAIL PROTECTED]> wrote:
>>By the way, I am using an VOP5PC (Very Old Pentium Class Personal
>>Computer) P75 with 24MB ram. Don't laugh. The guanranteed response
>>problem has to be solved, and has to be solved especially on old
>>systems! 
> 
> I'm using a PII 266 with 64 MB of RAM, and I see the cursor freeze, too.

I saw this on linux-kernel, is it relevant?  Many are reporting
success and even big speed improvements.  Those of you with libc5 or
problems should look at the archives for workarounds.

From: Stanislav Meduna <[EMAIL PROTECTED]>
Subject: Netscape buggy, kernel OK - some test results
To: [EMAIL PROTECTED]
Date:   Sat, 23 Jan 1999 16:41:03 +0100 (CET)

Hello,

as I am also a victim of the netscape freezing, I have
done some tests. I didn't follow all the discussion, so
perhaps what I write is duplicate, but I think
it is nevertheless interesting.

My environment is 2.2.0-final, Netscape 4.5, glibc 2.0.7,
egcs 1.1.1.

First I have located one html page where the Netscape
always freezes, even when loading from local disc.
In my environment such page is e.g. the main page
from developer.intel.com.

Then I have done a strace, located the pipe and counted
the reads and writes. No suprise - the lock happened
after the write count exceeded the read one by 4096.
The write then blocked.

So I have written a small LD_PRELOAD library, which
overloaded pipe, read and write, added some detection
logic for the given pipe and started experimenting.
I have modified the write so that it fakes successfull
write if the pipe is full. The Netscape still
did not run, but this time the blocking call
was read.

Then I counted the faked writes and faked the
corresponding reads too. The Netscape runs without
problems now and the number of reads matches
the number of reads at the end of the run.
The maximal difference between writes and
reads was 17011!

I tried to return EWOULDBLOCK from the excessive
writes - this did not help and I got blocking
read - the thing does want the same number
of reads and writes.

So the situation is quite clear. Kernel is OK,
and the Netscape is buggy, as it reads and writes
without querying if it is possible and cannot live
with limited pipe buffer size. I am unable to guess
how complicated it would be to allow greater pipes,
but it is most probably not the right thing to do
(_POSIX_PIPE_BUF is 512 anyway).

I'll try to polish my hack a bit - seems like
it can help more people.


Regards
                                Stano                       

From: Stanislav Meduna <[EMAIL PROTECTED]>
Subject: Re: Netscape buggy, kernel OK - some test results
To: [EMAIL PROTECTED]
Date:   Sat, 23 Jan 1999 19:00:24 +0100 (CET)

> I'll try to polish my hack a bit - seems like
> it can help more people.

Those who have problem with freezing netscape,
please try the following code. If it helps, we
are sure that the kernel is not the problem.

It works for me with 2.2.0-final and Netscape 4.5,
I have not tested it very carefully and I don't
guarantee it works anywhere else.

Thanks
                        Stano

========
#include <dlfcn.h>
#include <unistd.h>
#include <limits.h>

/* This is a netscape bug workaround. Search for a pipe,
   where only 1 byte strings \0372 are written to the write
   end and only 1 byte strings are requested back. Count
   the difference and fake any writes that would cause
   an overflow of the pipe and corresponding reads.

   This is a really dirty hack with almost no error checking
   and relying on the netscape's behaviour.

   Compile with
     gcc -c nspipepatch.c
     ld -shared -o libnspipepatch.so -ldl nspipepatch.o

   and add
     LD_PRELOAD=<path>/libnspipepatch.so

   to your netscape starting script.

   (C) 1999 Stanislav Meduna <[EMAIL PROTECTED]>
   There is absolutely NO WARRANTY. The use and distribution
   is completely free
*/

/* The magic netscape char flowing through the pipe */
#define MAGIC ((unsigned char) '\372')

/* libc handle for dlsym */
static void *dlhdl=0;

/* pointers to overloaded functions */
static int (*pipe_fp)(int [2])=0;
static ssize_t (*write_fp)(int, const void *, size_t)=0;
static ssize_t (*read_fp)(int, void *, size_t)=0;
static int (*close_fp)(int)=0;

/* we keep the info about our descriptors here */
static struct nshack_pipe_t
{
  /* If this is a pipe that could be our one,
     mark both ends here. If we shouldn't touch
     the descriptor, enter -1 here
  */
  int read_end, write_end;

  /* The difference between writes and reads,
     maintained on the write end
  */
  int diff;

  /* Number of faked writes, maintained on the write end */
  int faked;
} fdflags[256];


/* Mark the descriptors as unused or not of our interest */
static void clearfd(int fd)
{
  fdflags[fd].read_end = fdflags[fd].write_end = -1;
  fdflags[fd].diff = fdflags[fd].faked = 0;
}

/* Clear both ends */
static void clearboth(int fd)
{
  int rd = fdflags[fd].read_end;
  int wr = fdflags[fd].write_end;

  if (rd >= 0)
    clearfd(rd);
  if (wr >= 0)
    clearfd(wr);
}

/* Init the pointers to overloaded functions */
static void initptrs()
{
  int i;

  dlhdl = dlopen("/lib/l    exit(99);

  pipe_fp  = dlsym(dlhdl, "pipe");
  write_fp = dlsym(dlhdl, "write");
  read_fp  
    exit(99);

  for (i=0; i < sizeof(fdflags)/sizeof(fdflags[0]); i++)
    clearfd(i);
}

/* Unload the library */
void _fini()
{
  if (dlhdl)
    dlclose(dlhdl);
}

/* Overloaded pipe - mark the fresh pipes */
int pipe(int fd[2])
{
  int res;

  if (! pipe_fp)
    initptrs();

  res = (*pipe_fp)(fd);

  if (! res)
  {
    /* This could be our pipe - watch it during read/write */
    fdflags[fd[0]].read_end  = fdflags[fd[1]].read_end = fd[0];
    fdflags[fd[0]].write_end = fdflags[fd[1]].write_end= fd[1];
    fdflags[fd[0]].diff      = fdflags[fd[1]].faked = 0;
  }

  return res;
}

/* Overloaded write */
ssize_t write(int fd, const void *buf, size_t cnt)
{
  int res=0;

  if (! write_fp)
    initptrs();
  if (cnt != 1 || *(unsigned char *)buf != MAGIC)
    clearboth(fd); /* This is not our pipe - magic not seen */

  if (fd == fdflags[fd].write_end)
  {
    /* This is the write end of a watched pipe */
    fdflags[fd].diff++;

    /* Play safe - reduce the allowed difference
       to guard against off-by-one errors and
       similar :-)
    */
    if (fdflags[fd].diff >= PIPE_BUF-64)
    {
        /* We fake the write */
        fdflags[fd].faked++;
        res = 1;
    }
    else
      res = (*write_fp)(fd, buf, cnt);
  }
  else
    res = (*write_fp)(fd, buf, cnt);

  return res;
}

/* Overloaded read */
ssize_t read(int fd, void *buf, size_t cnt)
{
  int res;
  int watch=0;

  if (! read_fp)
    initptrs();

  if (fd == fdflags[fd].read_end)
  {
    if (cnt == 1)
      watch = 1;
    else
      clearboth(fd); /* The true one always wants one char only */

    /* This is the read end of a watched pipe */
    if (watch && fdflags[fdflags[fd].write_end].faked)
    {
      /* Faked writes exist - compensate with faked reads */
      fdflags[fdflags[fd].write_end].faked--;
      fdflags[fdflags[fd].write_end].diff--;
      *((unsigned char *) buf) = MAGIC;
      return 1;
    }
  }

  /* Do the real read */
  res = (*read_fp)(fd, buf, cnt);

  if (watch && res == 1)
   {
    /* If we watch the pipe and the read was successfull,
       use the read value to make sure this is THE pipe.
    */
    if (*((unsigned char *) buf) == MAGIC)
      fdflags[fd].diff--;
    else
      clearboth(fd);
  }

  return res;
}

/* Overloaded close (we want to be at least a bit correct) */
int close(int fd)
{
  if (! close_fp)
    initptrs();

  if (fd == fdflags[fd].read_end || fd == fdflags[fd].write_end)
    clearboth(fd);

  return (*close_fp)(fd);
}
========

-- 
"These download files are in Microsoft Word 6.0 format.  After unzipping, 
these files can be viewed in any text editor, including all versions of 
Microsoft Word, WordPad, and Microsoft Word Viewer."  [Microsoft website]
           < http://www.cs.mcgill.ca/~navindra/editors/ >

------------------------------

Date: Mon, 25 Jan 1999 12:24:45 -0500
From: Andre Laframboise <[EMAIL PROTECTED]>
Crossposted-To: alt.os.linux,comp.os.linux.development.apps,comp.os.linux.setup
Subject: Re: Why I'm dumping Linux, going back to Windblows

Yeah but man pages already have a structure.

Description on top, parameters in the middle and
examples and references at the end. If indexes are needed,
just pipe the man page to a viewer with string search
capabilities.


Andre
===================================================================
Andre C. Laframboise
Head, Database Administration                CA-OpenIngres/Unix/VMS
Information Technology Services              Oracle7/Unix
National Library of Canada                   MS-SQL/NT
===================================================================



------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [EMAIL PROTECTED]

You can send mail to the entire list (and comp.os.linux.development.system) via:

    Internet: [EMAIL PROTECTED]

Linux may be obtained via one of these FTP sites:
    ftp.funet.fi                                pub/Linux
    tsx-11.mit.edu                              pub/linux
    sunsite.unc.edu                             pub/Linux

End of Linux-Development-System Digest
******************************

Reply via email to