add directory Linux-0.95

This commit is contained in:
gohigh
2024-02-19 00:21:03 -05:00
parent 059f8848b1
commit b6d98600bf
139 changed files with 25302 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,100 @@
/* fdformat.c - Low-level formats a floppy disk. */
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <linux/fd.h>
static int ctrl;
struct floppy_struct param;
#define SECTOR_SIZE 512
#define PERROR(msg) { perror(msg); exit(1); }
static void format_disk(char *name)
{
struct format_descr descr;
int track;
char dummy;
printf("Formatting ... ");
fflush(stdout);
if (ioctl(ctrl,FDFMTBEG,NULL) < 0) PERROR("\nioctl(FDFMTBEG)");
for (track = 0; track < param.track; track++) {
descr.track = track;
descr.head = 0;
if (ioctl(ctrl,FDFMTTRK,(int) &descr) < 0) PERROR("\nioctl(FDFMTTRK)");
printf("%3d\b\b\b",track);
fflush(stdout);
if (param.head == 2) {
descr.head = 1;
if (ioctl(ctrl,FDFMTTRK,(int) &descr) < 0)
PERROR("\nioctl(FDFMTTRK)");
}
}
if (ioctl(ctrl,FDFMTEND,NULL) < 0) PERROR("\nioctl(FDFMTEND)");
printf("done\n");
}
static void verify_disk(char *name)
{
unsigned char *data;
int fd,cyl_size,cyl,count;
cyl_size = param.sect*param.head*512;
if ((data = (unsigned char *) malloc(cyl_size)) == NULL) PERROR("malloc");
printf("Verifying ... ");
fflush(stdout);
if ((fd = open(name,O_RDONLY)) < 0) PERROR(name);
for (cyl = 0; cyl < param.track; cyl++) {
printf("%3d\b\b\b",cyl);
fflush(stdout);
if (read(fd,data,cyl_size) != cyl_size) PERROR("read");
for (count = 0; count < cyl_size; count++)
if (data[count] != FD_FILL_BYTE) {
printf("bad data in cyl %d\nContinuing ... ",cyl);
fflush(stdout);
break;
}
}
printf("done\n");
if (close(fd) < 0) PERROR("close");
}
static void usage(char *name)
{
char *this;
if (this = strrchr(name,'/')) name = this+1;
fprintf(stderr,"usage: %s [ -n ] device\n",name);
exit(1);
}
main(int argc,char **argv)
{
int verify;
char *name;
name = argv[0];
verify = 1;
if (argc > 1 && argv[1][0] == '-') {
if (argv[1][1] != 'n') usage(name);
verify = 0;
argc--;
argv++;
}
if (argc != 2) usage(name);
if ((ctrl = open(argv[1],3)) < 0) PERROR(argv[1]);
if (ioctl(ctrl,FDGETPRM,(int) &param) < 0) PERROR("ioctl(FDGETPRM)");
printf("%sle-sided, %d tracks, %d sec/track. Total capacity %d kB.\n",
param.head ? "Doub" : "Sing",param.track,param.sect,param.size >> 1);
format_disk(argv[1]);
if (verify) verify_disk(argv[1]);
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,110 @@
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <linux/hdreg.h>
#define DISK_STRING "/dev/hd"
static int current_minor;
static int indent;
char * disk_type(unsigned char type)
{
switch (type) {
case 1: return "12-bit DOS";
case 4: return "16-bit DOS (<32M)";
case 5: return "extended partition (don't use)";
case 6: return "16-bit DOS (>=32M)";
case 0x81: return "minix";
}
return NULL;
}
char * dev_name(int minor)
{
char * ctl;
static char name[100];
if (minor & 0x3f)
ctl = "%s%c%d";
else
ctl = "%s%c";
sprintf(name,ctl,DISK_STRING,'a'+(minor >> 6),minor & 0x3f);
return name;
}
void fdisk(int minor)
{
char * type, * name;
char buffer[1024];
struct partition * p;
int fd;
int i;
int this_minor = current_minor;
if ((fd=open(name = dev_name(minor),O_RDONLY)) < 0) {
fprintf(stderr,"Unable to open %s\n",name);
exit(1);
}
if (1024 != read(fd,buffer,1024))
return;
if (!(minor & 0x3f)) {
printf("Disk %d:\n", minor >> 6);
indent = 4;
}
p = (struct partition *) (buffer + 0x1be);
for (i=0 ; i<4 ; p++,i++) {
if (!p->nr_sects)
continue;
printf("%*c",indent,' ');
printf("%s: %6d blocks",dev_name(this_minor+i),p->nr_sects>>1);
if (p->boot_ind == 0x80)
printf(" active");
else if (p->boot_ind)
printf(" active? (%02x)",p->boot_ind);
if (type = disk_type(p->sys_ind))
printf(" %s\n",type);
else
printf(" unknown partition type 0x%02X\n",p->sys_ind);
if (p->sys_ind == 5 && (0x3f & current_minor) < 60) {
indent += 4;
current_minor += 4;
fdisk(this_minor+i);
indent -= 4;
}
}
/* check for disk-manager partitions */
if (*(unsigned short *) (buffer + 0xfc) != 0x55AA)
return;
p = (struct partition *) (buffer + 0x1be);
for (i=4; i<16; i++) {
p--;
if ((current_minor & 0x3f) >= 60)
break;
if (!p->nr_sects)
continue;
printf("%*c",indent,' ');
printf("%s: %6d blocks disk-manager",dev_name(current_minor),p->nr_sects>>1);
if (p->boot_ind == 0x80)
printf(" active");
else if (p->boot_ind)
printf(" active? (%02x)",p->boot_ind);
if (type = disk_type(p->sys_ind))
printf(" %s\n",type);
else
printf(" unknown partition type 0x%02X\n",p->sys_ind);
current_minor++;
}
}
int main(int argc, char ** argv)
{
current_minor = 1;
fdisk(0);
current_minor = 65;
fdisk(64);
return 0;
}

View File

@@ -0,0 +1,114 @@
/***************************************************************************
* Program: lastlogin (c)1987 ICUS Computer Group *
* By: Lenny Tropiano ...{ihnp4,mtune}!icus!lenny *
* *
* Program intent: This will allow programs like 'finger' and 'last' to *
* lookup in the file /usr/adm/lastlogin.log and see *
* when a particular user has logged-in. This saves *
* the necessity to keep /etc/wtmp around for a long *
* period of time. *
* *
* This program can be used/modified and redistributed *
* I declare it PUBLIC DOMAIN. Please give me credit *
* when credit is due. *
* *
* AT&T 3B1 compiling instructions for shared-libaries: *
* *
* $ cc -c -O lastlogin.c *
* $ ld -s -o lastlogin lastlogin.o /lib/shlib.ifile /lib/crt0s.o *
* $ mv lastlogin /etc *
* $ su *
* Password: *
* # chown adm /etc/lastlogin /usr/adm *
* # chgrp adm /etc/lastlogin /usr/adm *
* # chmod 4755 /etc/lastlogin *
* *
* Place a call to /etc/lastlogin in your /etc/localprofile *
* to be run on all user logins. *
***************************************************************************/
/***************************************************************************
* Linux compiling instructions: *
* *
* $ gcc -o lastlogin lastlogin.c utmp2.o *
* utmp2.o is compiled from poe-IGL (1.2) *
* $ mv lastlogin /etc *
* $ su *
* Password: *
* # chown adm /etc/lastlogin /usr/adm *
* # chgrp adm /etc/lastlogin /usr/adm *
* # chmod 4755 /etc/lastlogin *
* *
* Place a call to /etc/lastlogin in your /etc/profile *
* to be run on all user logins. *
* *
* B.Bergt@informatik.tu-chemnitz.de *
***************************************************************************/
/* Print the last login time and record the new time */
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <string.h>
#include <time.h>
#include <utmp.h>
#define LOGFILE "/usr/adm/lastlog"
main()
{
struct utmp *utent, *getutent();
int fd;
long hrs, min, sec;
struct lastlog {
char ll_line[8];
time_t ll_time;
} ll;
if (access(LOGFILE, 0) == -1) {
if ((fd = creat(LOGFILE,0644)) == -1) {
fprintf(stderr,"Cannot create file %s: ", LOGFILE);
perror("creat()");
exit(1);
}
} else {
if ((fd = open(LOGFILE,O_RDWR)) == -1) {
fprintf(stderr,"Cannot open file %s: ", LOGFILE);
perror("open()");
exit(1);
}
}
if (lseek(fd, (long)(getuid()*sizeof(struct lastlog)), 0) == -1) {
fprintf(stderr,"Cannot position file %s: ", LOGFILE);
perror("lseek()");
exit(1);
}
if (read(fd, (char *) &ll, sizeof ll) == sizeof ll &&
ll.ll_time != 0L) {
printf("Last login: %.*s on %.*s\n" , 19
, (char *) ctime(&ll.ll_time) , sizeof(ll.ll_line)
, ll.ll_line);
} else printf("Last login: [No Login information on record]\n");
sprintf(ll.ll_line, "%.8s", strrchr(ttyname(0), '/')+1);
setutent();
while ((utent = getutent()) != NULL)
if (strcmp(utent->ut_line, ll.ll_line) == 0)
break;
if (utent == NULL) {
fprintf(stderr,"Cannot locate utmp entry for tty\n");
exit(1);
}
ll.ll_time = utent->ut_time;
endutent();
lseek(fd, (long)(getuid()*sizeof(struct lastlog)), 0);
write(fd, (char *) &ll, sizeof ll);
close(fd);
exit(0);
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,386 @@
Escape codes for vt102 terminal. <kivinen@hut.fi>
All numbers below are octal.<n> means numeric value,<c> means character string.
If <n> is missing it is 0 or in cursor movements 1.
Reset and set modes
Set Modes
Esc [ <c> ; ... ; <c> h
033 133 073 073 150
Reset Modes
Esc [ <c> ; ... ; <c> l
033 133 073 073 154
Where <c> is
'2'= Lock keyboard (set); Unlock keyboard (reset)
'4'= Insert mode (set); Replace mode (reset)
'12'= Echo on (set); Echo off (reset)
'20'= Return = CR+LF (set); Return = CR (reset)
'?1'= Cursorkeys application (set); Cursorkeys normal (reset)
'?2'= Ansi (set); VT52 (reset)
'?3'= 132 char/row (set); 80 char/row (reset)
'?4'= Jump scroll (set); Smooth scroll (reset)
'?5'= Reverse screen (set); Normal screen (reset)
'?6'= Sets relative coordinates (set); Sets absolute coordinates (reset)
'?7'= Auto wrap (set); Auto wrap off (reset)
'?8'= Auto repeat on (set); Auto repeat off (reset)
'?18'= Send FF to printer after print screen (set); No char after PS (reset)
'?19'= Print screen prints full screen (set); PS prints scroll region (reset)
'?25'= Cursor on (set); Cursor off (reset)
Set scrolling region (n1=upper,n2=lower)
Esc [ <n1> ; <n2> r
033 133 073 162
Cursor movement (<n>=how many chars or lines), cursor stop at margin.
Up
Esc [ <n> A
033 133 101
Down
Esc [ <n> B
033 133 102
Right
Esc [ <n> C
033 133 103
Left
Esc [ n D
033 133 104
Cursor position (<n1>=y,<n2>=x, from top of screen or scroll region)
Esc [ <n1> ; <n2> H
033 133 073 110
Or Esc [ <n1> ; <n2> f
033 133 073 146
Index (cursor down with scroll up when at margin)
Esc D
033 104
Reverse index (cursor up with scroll down when at margin)
Esc M
033 115
Next line (CR+Index)
Esc E
033 105
Save cursor and attribute
Esc 7
033 067
Restore cursor and attribute
Esc 8
033 070
Keybad character selection
Application keypad mode
Esc =
033 075
Numeric keypad mode
Esc >
033 076
Keypadkeys codes generated
Numeric Application VT52 Application
0 0 (060) Esc O p (033 117 160) Esc ? p (033 077 160)
1 1 (061) Esc O q (033 117 161) Esc ? q (033 077 161)
2 2 (062) Esc O r (033 117 162) Esc ? r (033 077 162)
3 3 (063) Esc O s (033 117 163) Esc ? s (033 077 163)
4 4 (064) Esc O t (033 117 164) Esc ? t (033 077 164)
5 5 (065) Esc O u (033 117 165) Esc ? u (033 077 165)
6 6 (066) Esc O v (033 117 166) Esc ? v (033 077 166)
7 7 (067) Esc O w (033 117 167) Esc ? w (033 077 167)
8 8 (070) Esc O x (033 117 170) Esc ? x (033 077 170)
9 9 (071) Esc O y (033 117 171) Esc ? y (033 077 171)
- (minus) - (055) Esc O m (033 117 155) Esc ? m (033 077 155)
, (comma) , (054) Esc O l (033 117 154) Esc ? l (033 077 154)
. (period) . (056) Esc O n (033 117 156) Esc ? n (033 077 156)
Enter CR (015)* Esc O M (033 117 115) Esc ? M (033 077 115)
PF1 Esc O P Esc O P (033 117 120) Esc P (033 120)
PF2 Esc O Q Esc O Q (033 117 121) Esc Q (033 121)
PF3 Esc O R Esc O R (033 117 122) Esc R (033 122)
PF4 Esc O S Esc O S (033 117 123) Esc S (033 123)
* Or CR+LF (015 012)
Cursorkeys codes generated (changed by set and reset modes '?1')
normal application
Up Esc [ A Esc O A
033 133 101 033 117 101
Down Esc [ B Esc O B
033 133 102 033 117 102
Right Esc [ C Esc O C
033 133 103 033 117 103
Left Esc [ D Esc O D
033 133 104 033 117 104
Select chaacter set
UK as G0
Esc ( A
033 050 101
US as G0
Esc ( B
033 050 102
Special characters and line drawing character set as G0
Esc ( 0
033 050 060
Alternate ROM as G0
Esc ( 1
033 050 061
Alternate ROM special characters character set as G0
Esc ( 2
033 050 062
UK as G1
Esc ) A
033 051 101
US as G1
Esc ) B
033 051 102
Special characters and line drawing character set as G1
Esc ) 0
033 051 060
Alternate ROM as G1
Esc ) 1
033 051 061
Alternate ROM special characters character set as G1
Esc ) 2
033 051 062
Selects G2 for one character
Esc N
033 115
Selects G3 for one character
Esc O
033 117
Set graphic rendition
Esc [ <n> ; <n> m
033 133 073 156
Where <n> is
0 = Turn off attributes
1 = Bold (Full)
2 = Half
4 = Underline
5 = Blink
7 = Reverse
21 = Normal intensity
22 = Normal intensity
24 = Cancel underlined
25 = Cancel blinking
27 = Cancel reverse
Tab stops
Set horizontal tab
Esc H
033 110
Clear horizontal tab
Esc [ g
033 133 147
Or Esc [ 0 g
033 133 060 147
Clear all horizontal tabs
Esc [ 3 g
033 133 063 147
Line attributes
Double-height
Top half
Esc # 3
033 043 063
Bottom half
Esc # 4
033 043 064
Single-width, single-height
Esc # 5
033 043 065
Double-width
Esc # 6
033 043 066
Erasing
Erase in line
End of line (including cursor position)
Esc [ K
033 133 113
Or Esc [ 0 K
033 133 060 113
Beginning of line (including cursor position)
Esc [ 1 K
033 133 061 113
Complete line
Esc [ 2 K
033 133 062 113
Erase in display
End of screen (including cursor position)
Esc [ J
033 133 112
Or Esc [ 0 J
033 133 060 112
Beginning of screen (including cursor position)
Esc [ 1 J
033 133 061 112
Complete display
Esc [ 2 J
033 133 062 112
Computer editing
Delete characters (<n> characters right from cursor
Esc [ <n> P
033 133 120
Inser line (<n> lines)
Esc [ <n> L
033 133 114
Delete line (<n> lines)
Esc [ <n> M
033 133 115
Printing
Esc [ <c> i
033 133 151
Where <c> is
''= Same as '0'
'0'= Prints screen (full or scroll region)
'4'= Printer controller off
'5'= Printer controller on (Print all received chars to printer)
'?1'= Print cursor line
'?4'= Auto print off
'?5'= Auto print on (Prints line to printer when you exit from it)
Reports
Device status
Esc [ <c> n
033 133 156
Where <c> is
'0'=Response Ready, no malfunctions detected
'3'=Malfunction, error in self-test.
'5'=Status report request
'6'=Request cursor position.
'?10'=Response to printer status request, All ok.
'?11'=Response to printer status request, Printer is not ready.
'?13'=Response to printer status request, No printer.
'?15'=Status report request from printer
Cursor position raport (Response to request cursor position)
Esc [ <n1> ; <n2> R
033 133 073 122
Request terminal to identify itself (esc Z may not be supported in future)
Esc [ c
033 133 143
Esc [ 0 c
033 133 060 143
Esc Z
033 132
Response to terminal identify (VT102)
Esc [ ? 6 c
033 133 077 066 143
Reset to initial state
Esc c
033 143
Tests
Invoke confidence test
Esc [ 2 ; <n> y
033 133 062 073 171
Where <n> is
'1'= Power-up test
'2'= Data loopback test
'4'= EIA loopback test
'9'= Power-up tests (continuously)
'10'= Data loopback tests (continuously)
'12'= EIA loopback tests (continuously)
'16'= Printer loopback test
'24'= Printer loopback tests (continuously)
Screen adjustments
Esc # 8
033 043 070
Keyboard indicator
Led L1 off
Esc [ 0 q
033 133 060 181
Led L1 on
Esc [ 1 q
033 133 061 181
VT52 sequences
Ansi mode
Esc <
033 074
Cursor positioning
Up Esc A
033 101
Down Esc B
033 102
Right Esc C
033 103
Left Esc D
033 104
Home Esc H
033 110
Direct cursor address
Esc Y <line+040> <columns+040>
033 131
Reverse linefeed Esc I
033 111
Erase to end of line Esc K
033 113
Erase to end of screen Esc J
033 112
Auto print on Esc ^
033 136
Auto print off Esc
033 137
Printer controller on Esc W
033 127
Printer controller off Esc X
033 130
Print cursor line Esc V
033 135
Print screen Esc ]
033 135
Indentify request Esc Z
033 132
Response to indetify Esc / Z
request (VT52) 033 057 132
Special charset (same Esc F
as line draw in VT102 033 106
Normal char set Esc G
033 107
Control characters
000 = Null (fill character)
003 = ETX (Can be selected half-duplex turnaround char)
004 = EOT (Can be turnaround or disconnect char, if turn, then DLE-EOT=disc.)
005 = ENQ (Transmits answerback message)
007 = BEL (Generates bell tone)
010 = BS (Moves cursor left)
011 = HT (Moves cursor to next tab)
012 = LF (Linefeed or New line operation)
013 = VT (Processed as LF)
014 = FF (Processed as LF, can be selected turnaround char)
015 = CR (Moves cursor to left margin, can be turnaround char)
016 = SO (Selects G1 charset)
017 = SI (Selects G0 charset)
021 = DC1 (XON, causes terminal to continue transmit)
023 = DC3 (XOFF, causes terminal to stop transmitting)
030 = CAN (Cancels escape sequence)
032 = SUB (Processed as CAN)
033 = ESC (Processed as sequence indicator)

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,55 @@
To: Linux-Activists@BLOOM-PICAYUNE.MIT.EDU
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Crossposted-To: alt.os.linux
Subject: Second 0.95a alpha-patch, part 1/2
Date: 4 Apr 92 14:42:10 GMT
This is the promised patch to 0.95a, which hopefully corrects some of
the problems encountered. This is /not/ an offical new release: it's
just a set of patches to get the same kernel I am currently running.
Bugfixes:
- extended partitions should finally work correctly (this release also
contains code for the hd-ioctl call, needed for fdisk). Code mostly
by hedrick.
- I corrected my original ptrace-fix (writing a long word to another
process' data space could fail with my original patches)
- 387-emulation bug with the instructions "fcom[p] %st(x)" which
resulted in bad results on non-387 machines with newer versions of
gcc. The emulation is still ugly, but it seems to work.
- the cooked mode deletion/linekill bugs should be fixed.
- various error-returns were wrong: I correted some of them (thanks to
bruce evans who pointed them out). The bad error-values resulted in
incorrect or spurious error-messages from 'rm' etc.
- various minor fixes (including some in the hd-driver: this might help
persons with unexpected-interrupt and/or timeout errors)
Additionally this version contains VFS-code from entropy, and a
readdir() system call needed for the VFS. The latter was inspired by
patches sent by Remy Card, who did it with a getdirents sys-call. My
version is slightly simpler, but is probably slower. Things might yet
change.
The installation has also changed slightly: the keyboard type and
math-emulation are specified in the main Makefile. That one also
contains the -fcombine-regs flag needed for 1.40. The other makefiles
should no longer need editing.
I've also incorporated the ps095 kernel patches: to get the actual
user-level stuff you still have to get the ps-distribution. Printer
ports /still/ aren't in there, but this time I positively /promise/ to
put it in next week. Really.
People who have been patching their kernel might have problems getting
this patch to work: it was made against a clean 0.95a kernel. I'll
consider a patched-up kernel version 0.95c - and I'd appreciate if
future patches to me would be sent against this version. I'll still
accept older patches, or course.
Linus

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,35 @@
Here are the PBMPlus utilities originally written by Jef Poskanzer, including
the libtiff libraries written by Sam Leffler of SGI. There are two files,
for those who just want binaries (sorry, no man pages there), then you should
get pbmplus.bin.tar.Z. If you want the man pages and sources get the other
file pbmplus.src.tar.Z also.
I've built this on Linux 0.95c+, with gcc-2.1 with success. To build the
package, login as root, cd to /, and tar xzvf pbmbin.tar.Z, then tar xzvf
pmbsrc.tar.Z. Once they're done, cd to /usr/local/pbmplus10dec91/libtiff,
type make (make sure you have lots of swap space available), then cd ..
and type make install. This should build and install all the utilities and
man pages for you. All you have to do is add /usr/local/pbmplus to your
path and play with some images.
Sorry, there's no viewer here (that I know of). Perhaps later I can add one.
But in the meantime ... Have fun. My early tests show that this runs about
1.25 times as fast as a MicroVax II, running Ultrix 3.1.
Oh yea, I believe the binaries are built NOT using shared libs - someone pleaes
check me on this. But, the Makefiles all specifiy that NEW images built will
use shared libraries. Small inconsistency, but I figured those who would
build their own would probably want the shared binaries anyway.
Enjoy! If you have questions I'll try to help, but I only check this mail
about once a week since it's long distance. But if you get stuck and aren't
in a hurry, email me at
Louie.Williams@bbs.oit.unc.eud
Thanks to everybody responsible for Linux! I can't imagine PBMPlus on DOS!
-Lou Williams

Binary file not shown.

View File

@@ -0,0 +1 @@
I believe this is about the easiest port I've never done. It compiles with GCC 1.4 (haven't gotten around to fiddling with 2.1 just yet) without a hitch.No configuration, no defines, no nuthin'. Just un-tar it, type "make", and away we go! Not so much as a peep from the compiler. I haven't tested it exhaustively, but I fooled around with it for a while, and it seems to work fine. One last note. For the time being, my only access to the internet is through a VAX running VMS. Since VMS uses 512-byte, fixed-length records forbinary files, the size will be rounded up to the next multiple of 512. Thecorrect sizes are: agrep-2.04.tar.Z - 62351 agrep.Z - 37706 agrep.ps.1.Z - 74055 agrep.ps.2.Z - 41544 I don't think it should cause any problems, but tar will probably bitch aboutthe trailing garbage. If that bothers you, use touch to fix the size beforeyou uncompress them.Ciao! Hutch. (hutchinson@wrair-emh1.army.mil)The rest of this file is the original readme from cs.arizona.edu.------------------------------------------------------------------------------This is version 2.04 of agrep - a new tool for fast text searching allowing errors.agrep is similar to egrep (or grep or fgrep), but it is much more general(and usually faster).The main changes from version 1.1 are 1) incorporating Boyer-Mooretype filtering to speed up search considerably, 2) allowing multi patterns via the -f option; this is similar to fgrep, but from our experience agrep is much faster, 3) searching for "best match" without having tospecify the number of errors allowed, and 4) ascii is no longer required.Several more options were added.To compile, simply run make in the agrep directory after untar'ingthe tar file (tar -xf agrep-2.04.tar will do it).The three most significant features of agrep that are not supported bythe grep family are 1) the ability to search for approximate patterns; for example, "agrep -2 homogenos foo" will find homogeneous as well as any other word that can be obtained from homogenos with at most 2 substitutions, insertions, or deletions. "agrep -B homogenos foo" will generate a message of the form best match has 2 errors, there are 5 matches, output them? (y/n)2) agrep is record oriented rather than just line oriented; a record is by default a line, but it can be user defined; for example, "agrep -d '^From ' 'pizza' mbox" outputs all mail messages that contain the keyword "pizza". Another example: "agrep -d '$$' pattern foo" will output all paragraphs (separated by an empty line) that contain pattern.3) multiple patterns with AND (or OR) logic queries. For example, "agrep -d '^From ' 'burger,pizza' mbox" outputs all mail messages containing at least one of the two keywords (, stands for OR). "agrep -d '^From ' 'good;pizza' mbox" outputs all mail messages containing both keywords.Putting these options together one can ask queries likeagrep -d '$$' -2 '<CACM>;TheAuthor;Curriculum;<198[5-9]>' bibwhich outputs all paragraphs referencing articles in CACM between 1985 and 1989 by TheAuthor dealing with curriculum. Two errors are allowed, but they cannot be in either CACM or the year (the <> brackets forbid errors in the pattern between them). Other features include searching for regular expressions (with orwithout errors), unlimited wild cards, limiting the errors to only insertions or only substitutions or any combination, allowing each deletion, for example, to be counted as, say, 2 substitutions or 3 insertions, restricting parts of the query to be exact and parts to be approximate, and many more.agrep is available by anonymous ftp from cs.arizona.edu (IP 192.12.69.5)as agrep/agrep-2.04.tar.Z (or in uncompressed form as agrep/agrep-2.04.tar).The tar file contains the source code (in C), man pages (agrep.1),and two additional files, agrep.algorithms and agrep.chronicle,giving more information.The agrep directory also includes two postscript files: agrep.ps.1 is a technical report from June 1991 describing the design and implementation of agrep;agrep.ps.2 is a copy of the paper as appeared in the 1992Winter USENIX conference.Please mail bug reports (or any other comments) to sw@cs.arizona.edu or to udi@cs.arizona.edu.We would appreciate if users notify us (at the address above)of any extensions, improvements, or interesting uses of this software.January 17, 1992BUGS_fixed/option_update1. remove multiple definitions of some global variables.2. fix a bug in -G option.3. fix a bug in -w option.January 23, 19924. fix a bug in pipeline input.5. make the definition of word-delimiter consistant.March 16, 19926. add option '-y' which, if specified with -B option, will alwaysoutput the best-matches without a prompt.April 10, 19927. fix a bug regarding exit status.April 15, 1992

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
70c70
< DEFS = -DDIRENT -DST_BLOCKS_MISSING -DSTDC_HEADERS -DPOSIX -DUSG
---
> DEFS = -DDIRENT -DST_BLOCKS_MISSING -DSTDC_HEADERS -DPOSIX -DUSG -D_POSIX_SOURCE
80c80
< bindir = $(prefix)/gnubin
---
> bindir = $(prefix)/bin

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.