From goggi@ludd.luth.se Mon Mar 21 19:51:50 1994
Received: from father.ludd.luth.se (goggi@father.ludd.luth.se [130.240.16.18]) by mother.ludd.luth.se (8.6.7/8.6.6) with ESMTP id TAA13581 for <unicorn@ludd.luth.se>; Mon, 21 Mar 1994 19:51:45 +0100
From: "G|ran \berg" <goggi@ludd.luth.se>
Received: (goggi@localhost) by father.ludd.luth.se (8.6.7/8.6.6) id TAA08965 for unicorn; Mon, 21 Mar 1994 19:51:03 +0100
Date: Mon, 21 Mar 1994 19:51:03 +0100
Message-Id: <199403211851.TAA08965@father.ludd.luth.se>
To: unicorn@ludd.luth.se
Status: RO

/*
 * Copyright (c) 1983 The Regents of the University of California.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms are permitted
 * provided that: (1) source distributions retain this entire copyright
 * notice and comment, and (2) distributions including binaries display
 * the following acknowledgement:  ``This product includes software
 * developed by the University of California, Berkeley and its contributors''
 * in the documentation or other materials provided with the distribution
 * and in all advertising materials mentioning features or use of this
 * software. Neither the name of the University nor the names of its
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */


/*   1994-03-18, 02:00
     Hacked by Goggi@ludd.luth.se
     Turned output into hmtl, added line-breaking to allow use of PRE.
     
*/


/* Todo:
   Do links to ~/.html for users with such directories.
   Allow specifying wich hosts to query by QUERY_STRING.
   Set correct http-headers, e.g. Date, Expiry (almost immediately)
   Comment the code!
   Use a conf-file, maybe in $HTTP_ROOT/conf?
   Add host 'bosch' with 'users'. Links to special descriptions.
*/


#ifndef lint
char copyright[] =
  "@(#) Copyright (c) 1983 The Regents of the University of California.\n\
 All rights reserved.\n";
#endif /* not lint */

#ifndef lint
static char sccsid[] = "@(#)rwho.c	5.5 (Berkeley) 6/1/90";
#endif /* not lint */

#include <sys/param.h>
#include <sys/dir.h>
#include <sys/file.h>
#include <protocols/rwhod.h>
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include <time.h>
#define _PATH_RWHODIR "/var/spool/rwho"

DIR	*dirp;

struct	whod wd;
int	utmpcmp();
#define	NUSERS	1000
#define	NHOSTS 100
struct	myutmp
{
  char	myhost[MAXHOSTNAMELEN];
  int	myidle;
  struct	outmp myutmp;
} myutmp[NUSERS];
int	nusers,nusers2;

#define	WHDRSIZE	(sizeof (wd) - sizeof (wd.wd_we))
/* 
 * this macro should be shared with ruptime.
 */
#define	down(w,now)	((now) - (w)->wd_recvtime > 11 * 60)

char	*ctime(), *strcpy();
time_t	now;

char hostlist[NHOSTS][MAXHOSTNAMELEN];
char used[NUSERS][9];
char *hostlistfile;

int hostnum;

void readhostlist()
{
  FILE *fp;
  int c,ind;

  hostnum = 0;
  fp = fopen(hostlistfile,"r");
  if (fp == NULL)
    {
      perror(hostlistfile);
      exit(1);
    }
  c=getc(fp);
  while(c != EOF)
    {
      ind = 0;
      while ((c != EOF) && (!isspace(c)))
	{
	  hostlist[hostnum][ind++]=c;
	  c=getc(fp);
	}
      hostlist[hostnum++][ind]=NULL;
      if(c != EOF)
	{
	  c=getc(fp);
	}
    }
  fclose(fp);
}

int is_used(nr,name)
int nr;
char *name;
{
  int i;
  int result =0;
  for(i=0;i<nr && !result;i++)
    {
      result = !strncmp(used[i],name,8);
    }
  return(result);
}

     
main(argc,argv)
     int argc;
     char *argv[];
    
{
  FILE *std_handle;
  extern char *optarg;
  extern int optind;
  int ch;
  int clock;
  int host,nr_used,chars,namep;
  struct direct *dp;
  int cc, width,cur;
  register struct whod *w;
  register struct whoent *we;
  register struct myutmp *mp;     
  int f, n, i, j;
  time_t time();
  register struct myutmp *mp2;
  

  hostlistfile = "/u0/Ludd/jobs/visning1/hosts";
  readhostlist(hostlistfile);
  w = &wd;
  nusers = 0;
  if (chdir(_PATH_RWHODIR) || (dirp = opendir(".")) == NULL)
    {
      perror(_PATH_RWHODIR);
      exit(1);
    }
  mp = myutmp;
  (void)time(&now);
  while (dp = readdir(dirp))
    {
      if (dp->d_ino == 0 || strncmp(dp->d_name, "whod.", 5))
	continue;
      f = open(dp->d_name, O_RDONLY);
      if (f < 0)
	continue;
      cc = read(f, (char *)&wd, sizeof (struct whod));
      if (cc < WHDRSIZE)
	{
	  (void) close(f);
	  continue;
	}
      if (down(w,now))
	{
	  (void) close(f);
	  continue;
	}
      cc -= WHDRSIZE;
      we = w->wd_we;
      for (n = cc / sizeof (struct whoent); n > 0; n--)
	{
	  if (nusers >= NUSERS)
	    {
	      printf("too many users\n");
	      exit(1);
	    }
	  mp->myutmp = we->we_utmp; mp->myidle = we->we_idle;
	  (void) strcpy(mp->myhost, w->wd_hostname);
	  nusers++; we++; mp++;
	}
      (void) close(f);
    }
  closedir(dirp);
  qsort((char *)myutmp, nusers, sizeof (struct myutmp), utmpcmp);
  mp = myutmp;
  width = 0;
  for (i = 0; i < nusers; i++) {
    j = strlen(mp->myhost) + 1;
    if (j > width)
      width = j;
    mp++;
  }
  clock = time(0);
  putchar(25);
  printf("Content-Type: text/html\n"
	 "Language: en\n"
	 "WWW-Link: href=\"mailto:goggi@ludd.luth.se\"; rev=made\n"
	 "\n"
	 "<HTML>\n"
	 "<HEAD>\n"
	 "<TITLE>Users logged on at LUDD</TITLE>\n"
	 "</HEAD>\n"
	 "<BODY>\n"
	 "<H2>Users logged on at LUDD</H2>"
	 "<H4>%s</H4>\n", ctime(&clock));
  printf("<HR>\n<PRE>\n");
  for (host=0;host<hostnum;host++)
    {
      nr_used = 0;
      mp = myutmp;
      printf("<A HREF=\"/cgi-bin/finger?@%s\">%s</A>",
	     hostlist[host], hostlist[host]);
      
      for(chars = strlen(hostlist[host]); chars < 10; chars++) printf(" ");
      printf(": ");
      chars = chars+2;
      for (i = 0; i < nusers; i++)
	{
	  if(!strncmp(mp->myhost,hostlist[host],strlen(hostlist[host])) &&
	     !strncmp(mp->myutmp.out_line,"console",7) &&
	     !is_used(nr_used,mp->myutmp.out_name))
	    {
	      strncpy(used[nr_used],mp->myutmp.out_name,8);
	      printf("<A HREF=\"/cgi-bin/finger?%s@%s\"><B>%s</B></A> ",
		     used[nr_used], hostlist[host], used[nr_used]);
	      for(namep=0; used[nr_used][namep] != 0; chars++,namep++);
	      chars++;
	    }
	  mp++;
	}
      mp = myutmp;
      for (i = 0; i < nusers; i++)
	{
	  if(!strncmp(mp->myhost,hostlist[host],strlen(hostlist[host])) &&
	     strncmp(mp->myutmp.out_line,"console",7) &&
	     !is_used(nr_used,mp->myutmp.out_name))		 
	    {
	      strncpy(used[nr_used],mp->myutmp.out_name,8);
	      printf("<A HREF=\"/cgi-bin/finger?%s@%s\">%s</A> ",
		     used[nr_used], hostlist[host], used[nr_used]);
	      for(namep=0; used[nr_used][namep] != 0; chars++,namep++);
	      chars++;
	      if(chars>60)
		{
		  printf("\n            ");
		  chars = 12;
		}
	      nr_used++;
	    }
	  mp++;
	}
      printf("\n");
    }
  printf("</PRE>\n"
	 "<HR>\n"
	 "</BODY>\n"
	 "</HTML>\n");
}


utmpcmp(u1, u2)
     struct myutmp *u1, *u2;
{
  int rc;
  
  rc = strncmp(u1->myhost, u2->myhost, 8);
  if (rc)
    {
      return (rc);
    }
  rc = strncmp(u1->myutmp.out_name, u2->myutmp.out_name, 8);
  return (rc);
}

From goggi@ludd.luth.se Mon Mar 21 19:51:50 1994
Received: from father.ludd.luth.se (goggi@father.ludd.luth.se [130.240.16.18]) by mother.ludd.luth.se (8.6.7/8.6.6) with ESMTP id TAA13581 for <unicorn@ludd.luth.se>; Mon, 21 Mar 1994 19:51:45 +0100
From: "G|ran \berg" <goggi@ludd.luth.se>
Received: (goggi@localhost) by father.ludd.luth.se (8.6.7/8.6.6) id TAA08965 for unicorn; Mon, 21 Mar 1994 19:51:03 +0100
Date: Mon, 21 Mar 1994 19:51:03 +0100
Message-Id: <199403211851.TAA08965@father.ludd.luth.se>
To: unicorn@ludd.luth.se
Status: RO

/*
 * Copyright (c) 1983 The Regents of the University of California.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms are permitted
 * provided that: (1) source distributions retain this entire copyright
 * notice and comment, and (2) distributions including binaries display
 * the following acknowledgement:  ``This product includes software
 * developed by the University of California, Berkeley and its contributors''
 * in the documentation or other materials provided with the distribution
 * and in all advertising materials mentioning features or use of this
 * software. Neither the name of the University nor the names of its
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */


/*   1994-03-18, 02:00
     Hacked by Goggi@ludd.luth.se
     Turned output into hmtl, added line-breaking to allow use of PRE.
     
*/


/* Todo:
   Do links to ~/.html for users with such directories.
   Allow specifying wich hosts to query by QUERY_STRING.
   Set correct http-headers, e.g. Date, Expiry (almost immediately)
   Comment the code!
   Use a conf-file, maybe in $HTTP_ROOT/conf?
   Add host 'bosch' with 'users'. Links to special descriptions.
*/


#ifndef lint
char copyright[] =
  "@(#) Copyright (c) 1983 The Regents of the University of California.\n\
 All rights reserved.\n";
#endif /* not lint */

#ifndef lint
static char sccsid[] = "@(#)rwho.c	5.5 (Berkeley) 6/1/90";
#endif /* not lint */

#include <sys/param.h>
#include <sys/dir.h>
#include <sys/file.h>
#include <protocols/rwhod.h>
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include <time.h>
#define _PATH_RWHODIR "/var/spool/rwho"

DIR	*dirp;

struct	whod wd;
int	utmpcmp();
#define	NUSERS	1000
#define	NHOSTS 100
struct	myutmp
{
  char	myhost[MAXHOSTNAMELEN];
  int	myidle;
  struct	outmp myutmp;
} myutmp[NUSERS];
int	nusers,nusers2;

#define	WHDRSIZE	(sizeof (wd) - sizeof (wd.wd_we))
/* 
 * this macro should be shared with ruptime.
 */
#define	down(w,now)	((now) - (w)->wd_recvtime > 11 * 60)

char	*ctime(), *strcpy();
time_t	now;

char hostlist[NHOSTS][MAXHOSTNAMELEN];
char used[NUSERS][9];
char *hostlistfile;

int hostnum;

void readhostlist()
{
  FILE *fp;
  int c,ind;

  hostnum = 0;
  fp = fopen(hostlistfile,"r");
  if (fp == NULL)
    {
      perror(hostlistfile);
      exit(1);
    }
  c=getc(fp);
  while(c != EOF)
    {
      ind = 0;
      while ((c != EOF) && (!isspace(c)))
	{
	  hostlist[hostnum][ind++]=c;
	  c=getc(fp);
	}
      hostlist[hostnum++][ind]=NULL;
      if(c != EOF)
	{
	  c=getc(fp);
	}
    }
  fclose(fp);
}

int is_used(nr,name)
int nr;
char *name;
{
  int i;
  int result =0;
  for(i=0;i<nr && !result;i++)
    {
      result = !strncmp(used[i],name,8);
    }
  return(result);
}

     
main(argc,argv)
     int argc;
     char *argv[];
    
{
  FILE *std_handle;
  extern char *optarg;
  extern int optind;
  int ch;
  int clock;
  int host,nr_used,chars,namep;
  struct direct *dp;
  int cc, width,cur;
  register struct whod *w;
  register struct whoent *we;
  register struct myutmp *mp;     
  int f, n, i, j;
  time_t time();
  register struct myutmp *mp2;
  

  hostlistfile = "/u0/Ludd/jobs/visning1/hosts";
  readhostlist(hostlistfile);
  w = &wd;
  nusers = 0;
  if (chdir(_PATH_RWHODIR) || (dirp = opendir(".")) == NULL)
    {
      perror(_PATH_RWHODIR);
      exit(1);
    }
  mp = myutmp;
  (void)time(&now);
  while (dp = readdir(dirp))
    {
      if (dp->d_ino == 0 || strncmp(dp->d_name, "whod.", 5))
	continue;
      f = open(dp->d_name, O_RDONLY);
      if (f < 0)
	continue;
      cc = read(f, (char *)&wd, sizeof (struct whod));
      if (cc < WHDRSIZE)
	{
	  (void) close(f);
	  continue;
	}
      if (down(w,now))
	{
	  (void) close(f);
	  continue;
	}
      cc -= WHDRSIZE;
      we = w->wd_we;
      for (n = cc / sizeof (struct whoent); n > 0; n--)
	{
	  if (nusers >= NUSERS)
	    {
	      printf("too many users\n");
	      exit(1);
	    }
	  mp->myutmp = we->we_utmp; mp->myidle = we->we_idle;
	  (void) strcpy(mp->myhost, w->wd_hostname);
	  nusers++; we++; mp++;
	}
      (void) close(f);
    }
  closedir(dirp);
  qsort((char *)myutmp, nusers, sizeof (struct myutmp), utmpcmp);
  mp = myutmp;
  width = 0;
  for (i = 0; i < nusers; i++) {
    j = strlen(mp->myhost) + 1;
    if (j > width)
      width = j;
    mp++;
  }
  clock = time(0);
  putchar(25);
  printf("Content-Type: text/html\n"
	 "Language: en\n"
	 "WWW-Link: href=\"mailto:goggi@ludd.luth.se\"; rev=made\n"
	 "\n"
	 "<HTML>\n"
	 "<HEAD>\n"
	 "<TITLE>Users logged on at LUDD</TITLE>\n"
	 "</HEAD>\n"
	 "<BODY>\n"
	 "<H2>Users logged on at LUDD</H2>"
	 "<H4>%s</H4>\n", ctime(&clock));
  printf("<HR>\n<PRE>\n");
  for (host=0;host<hostnum;host++)
    {
      nr_used = 0;
      mp = myutmp;
      printf("<A HREF=\"/cgi-bin/finger?@%s\">%s</A>",
	     hostlist[host], hostlist[host]);
      
      for(chars = strlen(hostlist[host]); chars < 10; chars++) printf(" ");
      printf(": ");
      chars = chars+2;
      for (i = 0; i < nusers; i++)
	{
	  if(!strncmp(mp->myhost,hostlist[host],strlen(hostlist[host])) &&
	     !strncmp(mp->myutmp.out_line,"console",7) &&
	     !is_used(nr_used,mp->myutmp.out_name))
	    {
	      strncpy(used[nr_used],mp->myutmp.out_name,8);
	      printf("<A HREF=\"/cgi-bin/finger?%s@%s\"><B>%s</B></A> ",
		     used[nr_used], hostlist[host], used[nr_used]);
	      for(namep=0; used[nr_used][namep] != 0; chars++,namep++);
	      chars++;
	    }
	  mp++;
	}
      mp = myutmp;
      for (i = 0; i < nusers; i++)
	{
	  if(!strncmp(mp->myhost,hostlist[host],strlen(hostlist[host])) &&
	     strncmp(mp->myutmp.out_line,"console",7) &&
	     !is_used(nr_used,mp->myutmp.out_name))		 
	    {
	      strncpy(used[nr_used],mp->myutmp.out_name,8);
	      printf("<A HREF=\"/cgi-bin/finger?%s@%s\">%s</A> ",
		     used[nr_used], hostlist[host], used[nr_used]);
	      for(namep=0; used[nr_used][namep] != 0; chars++,namep++);
	      chars++;
	      if(chars>60)
		{
		  printf("\n            ");
		  chars = 12;
		}
	      nr_used++;
	    }
	  mp++;
	}
      printf("\n");
    }
  printf("</PRE>\n"
	 "<HR>\n"
	 "</BODY>\n"
	 "</HTML>\n");
}


utmpcmp(u1, u2)
     struct myutmp *u1, *u2;
{
  int rc;
  
  rc = strncmp(u1->myhost, u2->myhost, 8);
  if (rc)
    {
      return (rc);
    }
  rc = strncmp(u1->myutmp.out_name, u2->myutmp.out_name, 8);
  return (rc);
}

From goggi@mother.ludd.luth.se Fri Mar 18 14:01:56 1994
Received: from father.ludd.luth.se (goggi@father.ludd.luth.se [130.240.16.18]) by mother.ludd.luth.se (8.6.5/8.6.5) with ESMTP id OAA26720 for <iftap@mother.ludd.luth.se>; Fri, 18 Mar 1994 14:01:52 +0100
From: "G|ran \berg" <goggi@mother.ludd.luth.se>
Received: from localhost (goggi@localhost) by father.ludd.luth.se (8.6.5/8.6.5) id OAA21763 for iftap; Fri, 18 Mar 1994 14:01:35 +0100
Message-Id: <199403181301.OAA21763@father.ludd.luth.se>
Subject: XKeysymDB
To: iftap@mother.ludd.luth.se ()
Date: Fri, 18 Mar 1994 14:01:35 +0100 (MET)
X-Mailer: ELM [version 2.4 PL23]
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Content-Length: 1217      
Status: RO

Hej!

Jag har ett f|rslag p} fix f|r er som k|r mosaic p} sm:
s{tt variabeln XKEYSYMDB:
setenv XKEYSYMDB /u4/proj/lib/XKeysymDB

L{gg till f|ljande rader i er .Xdefaults:
*XmText.translations: #override\n<Key>osfDelete: delete-previous-character()
*XmTextField.translations: #override\n<Key>osfDelete: delete-previous-character()

Om ni vill se exempel p} hur det kan se ut s} titta i:
~d90-gog/env/variables.tcsh
~d90-gog/env/Xdefaults

-- 
______________________________________________________________________________
 Gran berg                 LUDD, University of Lule, SWEDEN
 Vderleden 9:5-108          URL="http://www.luth.se/users/goggi/"
 S-951 49 Lule              goggi@ludd.luth.se
 SWEDEN                      d90-gog@sm.luth.se
 Voice: +46 920 47156        {uunet,mcsun,sunic}!ludd.luth.se!goggi
______________________________________________________________________________
The USA is so enormous, and so numerous are its schools, colleges and
religious seminaries, many devoted to special religious beliefs ranging
from the unorthodox to the dotty, that we can hardly wonder at its
yielding a more bounteous harvest of gobbledygook than the rest of the
world put together.
		-- Sir Peter Medawar

From goggi@ludd.luth.se Wed Mar 30 11:31:39 1994
Received: from father.ludd.luth.se (goggi@father.ludd.luth.se [130.240.16.18]) by mother.ludd.luth.se (8.6.8/8.6.6) with ESMTP id LAA11538; Wed, 30 Mar 1994 11:31:36 +0200
From: "G|ran \berg" <goggi@ludd.luth.se>
Received: (goggi@localhost) by father.ludd.luth.se (8.6.8/8.6.6) id LAA24428; Wed, 30 Mar 1994 11:31:15 +0200
Message-Id: <199403300931.LAA24428@father.ludd.luth.se>
Subject: Re: help (fwd)
To: yuric@ludd.luth.se (Mikael Nystr|m), unicorn@ludd.luth.se (K}re Synnes)
Date: Wed, 30 Mar 1994 11:31:14 +0200 (MET DST)
X-Mailer: ELM [version 2.4 PL23]
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Content-Length: 5146      
Status: RO

According to algorithms:
>From algorithms@theory.lcs.mit.edu Wed Mar 30 11:15:58 1994
Date: Wed, 30 Mar 94 04:18:30 EST
Message-Id: <199403300918.AA01554@theory.lcs.mit.edu>
From: algorithms@theory.lcs.mit.edu (algorithms)
To: goggi@ludd.luth.se
Subject: Re: help


Dear Reader:

Your e-mail addressed to "algorithms@theory.lcs.mit.edu" has been
handled by an automatic server program that generated this response.
This server provides several services for readers of INTRODUCTION TO
ALGORITHMS by Cormen, Leiserson, and Rivest (MIT Press and
McGraw-Hill, 1990).  For textbook orders in North America, contact
your local representative of the McGraw-Hill Book Company.  For all
other orders, contact The MIT Press.

There are several distinct services that you can obtain from this
server, each identified by a unique keyword.  To obtain a service,
email a message to "algorithms@theory.lcs.mit.edu" that contains the
appropriate keyword (and only that keyword) in the "Subject:" line.
Only one service can be obtained per message.

Here are the services available, with the appropriate "Subject:" lines
shown:

============================================================================
Subject: Help

	The server sends you this helpful message in response.  If the 
	server program seems to be broken somehow, send email to Scott
	Blomquist (sb@theory.lcs.mit.edu).
----------------------------------------------------------------------------
Subject: Bug-List

	Use this service to obtain a PostScript file of errata for the 
	second and later printings of the text.  A text version of this 
	errata sheet is not available.  A hard copy can be obtained from
	the publisher.  You can also fetch this file by anonymous ftp
	using the following protocol:
		% ftp theory.lcs.mit.edu
		Name: anonymous    
		Password: <your login @ your machine>
		ftp> cd /pub/algorithms
		ftp> get bug2.ps
		ftp> quit

---------------------------------------------------------------------------
Subject: Old-Bug-List

	Use this service to obtain a PostScript file of errata for the
	first printing of the text.  A text version of this errata sheet 
	is not available.  A hard copy can be obtained from the publisher.
	You can also fetch this file by anonymous ftp using the protocol
	in "Bug-List" above, but substituting "get bug1.ps" for "get bug2.ps".

---------------------------------------------------------------------------
Subject: New-Bug-List

	Use this service to obtain a text file of recently reported bugs
	in the textbook that have not yet been included in the official 
	errata list.

----------------------------------------------------------------------------
Subject: Bug

	Use this service to report a bug in the text.  The body of your
	message should give the page and line number of the bug, and if 
	possible, indicate the necessary correction to be made.

	Please check the "Bug-List" and "New-Bug-List" before submitting 
	a bug report so you don't submit a duplicate bug report.

	Please don't submit a bug report unless you are sure that there is
	a bug in the text; this service is not for raising questions.
----------------------------------------------------------------------------
Subject: Manual-Bug-List

        Use this service to obtain a list of known bugs in the 
        instructor's manual.
----------------------------------------------------------------------------
Subject: Manual-Bug

        Use this service to report a bug in the instructor's manual.
        The body of your message should give the page and line number of
        the bug, and if possible, indicate the necessary correction to
        be made.

        Please check the "Manual-Bug-List" before submitting a bug
        report so you don't submit a duplicate report.

        Please don't submit a bug report unless you are sure that there is
        a bug in the instructor's manual; this service is not for raising
        questions.
----------------------------------------------------------------------------
Subject: Suggestion-List

	Use this service to obtain a list of the suggestions that have been
	made to improve the book on its next edition.
----------------------------------------------------------------------------
Subject: Suggestion

	Use this service to suggest improvements to the next edition 
	of the book.  Constructive comments and criticisms are gratefully 
	appreciated.
============================================================================

We regret that we cannot personally respond to all queries and suggestions.

	Sincerely,
	Thomas H. Cormen
	Charles E. Leiserson
	Ronald L. Rivest




-- 
______________________________________________________________________________
 Gran berg                 LUDD, University of Lule, SWEDEN
 Vderleden 9:5-108          URL="http://www.luth.se/users/goggi/"
 S-951 49 Lule              goggi@ludd.luth.se
 SWEDEN                      d90-gog@sm.luth.se
 Voice: +46 920 47156        {uunet,mcsun,sunic}!ludd.luth.se!goggi
______________________________________________________________________________
You can't carve your way to success without cutting remarks.

From unicorn@mother.ludd.luth.se Mon May 23 08:17:42 1994
Received: by mother.ludd.luth.se
	(5.65+bind 1.7+ida 1.4.2/IDA-1.2.8-NS) id AA21714; Thu, 3 Feb 1994 21:52:46 +0100
From: Goran.Oberg@ludd.luth.se
Message-Id: <199402032052.AA21714@mother.ludd.luth.se>
Subject: Vandrarhem & N{r m|ts vi?
To: iftap@ludd.luth.se
Date: Thu, 3 Feb 1994 21:52:44 +0100 (MET)
X-Mailer: ELM [version 2.4 PL17]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Content-Length: 1216      

Hej

Lite info om vandrarhemmet som jag vill sprida s} att s} m}nga som m|jligt
vet det: Zinken, tel 08-668 57 86
	14 b{ddar bokat i mitt namn (G|ran \berg), tel 0920-471 56
	Gruppbokningsnummer 0885
	Frukost mellan 0700 - 1000

Det som {r viktigast {r antagligen bokningsummret.

Vidare undrar jag hur det blivit med m}ndag morgon?

Blev det 0830 vid spottkoppen slutgiltigt?

Alla svar mottages tacksamt. Jag kommer nog att kolla min post sista g}ngen
innan jag far f|re 0500 fredag morgon.

Mvh

/Goggi/
-- 
______________________________________________________________________________
 Gran berg                 LUDD, University of Lule, SWEDEN
 Vderleden 9:5-108          URL="http://www.luth.se/users/goggi/"
 S-951 49 Lule              goggi@ludd.luth.se
 SWEDEN                      d90-gog@sm.luth.se
 Voice: +46 920 47156        {uunet,mcsun,sunic}!ludd.luth.se!goggi
______________________________________________________________________________
"The society which scorns excellence in plumbing as a humble activity
and tolerates shoddiness in philosophy because it is an exaulted
activity will have neither good plumbing nor good philosophy ...
neither its pipes nor its theories will hold water."

From unicorn@skynet.ludd.luth.se Thu Jun  9 12:32:58 1994
Received: from father.ludd.luth.se (goggi@father.ludd.luth.se [130.240.16.18]) by mother.ludd.luth.se (8.6.8/8.6.6) with ESMTP id XAA13641 for <w3t@ludd.luth.se>; Tue, 31 May 1994 23:02:37 +0200
From: "G|ran \berg" <goggi@ludd.luth.se>
Received: (goggi@localhost) by father.ludd.luth.se (8.6.8/8.6.6) id XAA27243 for w3t; Tue, 31 May 1994 23:01:52 +0200
Message-Id: <199405312101.XAA27243@father.ludd.luth.se>
Subject: Re: Contents of LI in HTML+? (fwd)
To: w3t@ludd.luth.se
Date: Tue, 31 May 1994 23:01:51 +0200 (MET DST)
Return-Receipt-To: goggi@ludd.luth.se
X-Mailer: ELM [version 2.4 PL23]
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Content-Length: 2701      

According to Dave Raggett:
>From dsr@hplb.hpl.hp.com Tue May 31 15:57:26 1994
From: Dave Raggett <dsr@hplb.hpl.hp.com>
Message-Id: <9405311355.AA29638@dragget.hpl.hp.com>
Subject: Re: Contents of LI in HTML+?
To: goggi@ludd.luth.se
Date: Tue, 31 May 94 14:55:32 BST
Mailer: Elm [revision: 70.85]

> I'm in a group writing a prototype HTML+-editor

Great!

I have just returned from the WWW'94 conference where we decided
to align work on HTML and HTML+ into a single stream with a version
number. HTML 2.0 is the formalization of the de facto document
format as supported today by Mosaic. This is being written by Dan Connolly
and Tim Berners Lee. HTML 3.0 adds the HTML+ extensions and will be
taken from the HTML+ DTD with a few minor modifications. The maths
support will appear in HTML 3.1.

> On line 510 in file://15.254.100.100/pub/htmlplus.dtd.txt it is specified
> that LI should contain only (DL|UL|OL|P|HR|PRE)+ and not %text.

> We have discussed this and would like to be able to have just %text between
> <LI> and </LI>.

Why do you want this?

The DTD was designed this way to allow for nested lists with multiple
paragraphs, horizontal rules and preformatted text. Note that the </LI>
tag can and usually will be omitted. For a wysiwyg editor, the user will
have to distinguish between starting a nested list, starting a new list
item and starting a new paragraph.

A new paragraph should IMHO be created by simply pressing the Return
(Enter) key. Holding the Shift key down while pressing the Return key
creates a forced line break (<BR> tag) rather than starting a new paragraph.
You can then make it into a new list item by pressing a button on the
toolbar, just like in Word for Windows. I envisage a drop-down selection
tool being used to start and end new lists for each type.

Do you have a draft of the user interface design? If you would feel it
useful, please don't hesitate to bounce ideas off me.
--
Best wishes,

Dave Raggett

-----------------------------------------------------------------------------
Hewlett Packard Laboratories              email: dsr@hplb.hpl.hp.com
Filton Road                               tel:   +44 272 228046
Stoke Gifford                             fax:   +44 272 228003
Bristol BS12 6QZ
United Kingdom


-- 
 Gran berg       Ludd, University of Lule, SWEDEN   Student MSc CS
 Vderleden 9-108  http://www.luth.se/~goggi/           Adm./CoAdm. of
 S-951 49 Lule    goggi@ludd.luth.se           {www,wais,ftp,gopher}.luth.se
______________________________________________________________________________
You can't start worrying about what's going to happen.  You get spastic
enough worrying about what's happening now.
		-- Lauren Bacall

