summaryrefslogtreecommitdiff
path: root/extra/most
diff options
context:
space:
mode:
Diffstat (limited to 'extra/most')
-rw-r--r--extra/most/PKGBUILD22
-rw-r--r--extra/most/most-debian.patch3908
2 files changed, 2298 insertions, 1632 deletions
diff --git a/extra/most/PKGBUILD b/extra/most/PKGBUILD
index bf03914bc..0cea27712 100644
--- a/extra/most/PKGBUILD
+++ b/extra/most/PKGBUILD
@@ -1,20 +1,28 @@
-# $Id: PKGBUILD 57012 2009-10-31 08:10:58Z allan $
+# $Id: PKGBUILD 125648 2011-05-27 17:52:54Z stephane $
# Maintainer: juergen <juergen@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=most
pkgver=5.0.0a
-pkgrel=2
+pkgrel=3
pkgdesc="A terminal pager similar to 'more' and 'less'"
arch=('i686' 'x86_64')
depends=('slang')
license=('GPL')
url="ftp://space.mit.edu/pub/davis/most/"
-source=(ftp://space.mit.edu/pub/davis/$pkgname/$pkgname-$pkgver.tar.gz)
-md5sums=('30f2131b67f61716f6fe1f65205da48b')
+source=(ftp://space.mit.edu/pub/davis/${pkgname}/${pkgname}-${pkgver}.tar.gz most-debian.patch)
+sha1sums=('99eedb7169754b9a47c7755ac48949d76531e3b2'
+ '937796040c69bae3bf735fa3cd734775c582e7d0')
+
build() {
- cd $srcdir/$pkgname-$pkgver
- ./configure --prefix=/usr --sysconfdir=/etc || return 1
- make DESTDIR=$pkgdir install || return 1
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../most-debian.patch
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=$pkgdir install
}
diff --git a/extra/most/most-debian.patch b/extra/most/most-debian.patch
index 4387420e8..292c83b5a 100644
--- a/extra/most/most-debian.patch
+++ b/extra/most/most-debian.patch
@@ -1,1655 +1,2313 @@
---- most-4.10.2.orig/most.1
-+++ most-4.10.2/most.1
-@@ -134,7 +134,7 @@
- Use this switch when you want to view files
- containing 8 bit characters.
- .I most
--will display the file 16 bytes per line in hexidecimal notation.
-+will display the file 16 bytes per line in hexadecimal notation.
- A typical line looks like:
- .IP
- .Ds
-@@ -185,12 +185,13 @@
- This option is meaningful only when used with the
- .B \-v
- option.
-+.TP
- .BI + lineno
- Start up at
- .IR lineno .
+--- most-5.0.0a.orig/lesskeys.rc
++++ most-5.0.0a/lesskeys.rc
+@@ -57,3 +57,8 @@
+ setkey goto_mark "'"
+ setkey find_file "E"
+ setkey edit "v"
++setkey bob "^[[7~"
++setkey eob "^[[8~"
++setkey bob "^[OH"
++setkey eob "^[OF"
++
+--- most-5.0.0a.orig/most.1
++++ most-5.0.0a/most.1
+@@ -203,7 +203,7 @@
+ .TP
+ .B +u
+ Force UTF-8 mode. By default most will use the current locale to
+-determine if UTF-8 mode shoul be used. The
++determine if UTF-8 mode should be used. The
+ .B +u
+ and
+ .B \-u
+@@ -224,20 +224,28 @@
+ Start up at the line containing the first occurrence of
+ .IR string .
+ .SH "COMMAND USAGE"
+-The commands take effect immediately; it is not necessary to type a
+-carriage return.
+-.PP
+-In the following commands,
+-.I i
+-is a numerical argument
+-(1 by default).
+-.TP
+-.BR SPACE ", " CTRL-D ", " NEXT_SCREEN
+-Display another windowful, or jump
+-.I i
+-windowfuls if
+-.I i
+-is specified.
++Some commands have an optional numeric argument
++.I id
++,entered before the command. If not given, the
++default value of
++.I i
++is 1.
++.PP
++Commands take effect immediately; typing a
++.I RETURN
++after isn't necessary or correct. (Besides,
++.I RETURN
++itself is a command.)
++.PP
++Example: to go down one line, press the
++.I DOWN_ARROW
++key. To go down 20 lines, press
++.I 2
++then
++.I 0
++then the
++.I DOWN_ARROW
++key.
+ .TP
+ \fBRETURN\fR, \fBDOWN_ARROW\fR, \fBV\fR, \fBCTRL-N\fR
+ Display another line, or
+@@ -341,7 +349,7 @@
+ .PD
+ Set a mark on the current line for later reference.
.TP
--.B +c
--Make search case sensitive.
-+.B -c
-+Make searches case sensitive.
- By default, they are not.
+-.BR "INSERT_HERE, CTRL-X CTRL-X, COMMA, CTRL-K RETURN, GOLD PERIOD"
++.BR "INSERT_HERE" ", " "CTRL-X CTRL-X" ", " "COMMA" ", " "CTRL-K RETURN" ", " "GOLD PERIOD"
+ Set a mark on the current line but return to previous mark.
+ This allows the user to toggle back and forth between two positions
+ in the file.
+@@ -355,7 +363,7 @@
+ .BR "CTRL-X 2" ", " "CTRL-W 2" ", " "GOLD X"
+ Split this window in half.
.TP
- .B +d
-@@ -482,7 +483,7 @@
- descriptors that represent the file name and line number,
- respectively. For example, if JED is your editor, then set
- .B MOST_EDITOR
--to 'jed %s -g %d'.
-+to 'jed %s -g %d'. This will only work where the %s preceeds the %d.
+-.BR "CTRL-X o" ", " "CTRL-W o" ", " o ", " GOLD UP ", " GOLD DOWN
++.BR "CTRL-X o" ", " "CTRL-W o" ", " o ", " "GOLD UP" ", " "GOLD DOWN"
+ Move to other window.
.TP
- .B MOST_HELP
- This variable may be used to specify an alternate help file.
-@@ -496,7 +497,7 @@
- .I most.rc
- on other systems.
+ .BR "CTRL-X 0" ", " "CTRL-W 0" ", " "GOLD V"
+@@ -506,13 +514,15 @@
+ .B MOST_INITFILE
+ Set this variable to specify the initialization file to load during
+ startup. The default action is to load the system configuration file
+-and then a personal configuration file called
+-.I .mostrc
+-on Unix, and
+-.I most.rc
+-on other systems.
++from
++.I /etc/most.conf
++and then a personal configuration file located at
++.I $HOME/.mostrc
++.
.SH CONFIGURATION FILE SYNTAX
--When most starts up, it tries to read a system confiuration file and
-+When most starts up, it tries to read a system configuration file and
+-When most starts up, it tries to read a system configuration file and
++When
++.I most
++starts up, it tries to read a system configuration file and
then a personal configuration file. These files may be used to
specify keybindings and colors.
.PP
---- most-4.10.2.orig/src/buffer.c
-+++ most-4.10.2/src/buffer.c
-@@ -44,10 +44,10 @@
-
- Most_Buffer_Type *Most_Buf;
-
--int Most_Num_Lines;
-+long long Most_Num_Lines;
-
--unsigned int Most_C_Offset;
--int Most_C_Line;
-+unsigned long long Most_C_Offset;
-+long long Most_C_Line;
-
- static unsigned char *beg_of_line1(void)
- {
-@@ -61,24 +61,29 @@
- {
- if (*pos == '\n')
- {
-- pos--;
-- while ((pos > Most_Beg)
-- && (*pos != '\n'))
-+ pos--; /* Skip back the new-line. */
-+ /* This block is UTF-8 safe, because it only scans the
-+ buffer for a new-line, and doesn't count
-+ characters. */
-+ while ((pos > Most_Beg) && (*pos != '\n'))
- pos--;
-
-- if (*pos != '\n') return pos;
-+ if (*pos != '\n') return Most_Beg;
-+ /* from here on *pos == '\n' */
- if (pos + 1 != cpos)
- return pos + 1;
- }
- }
-- else pos--;
-+ else
-+ pos = SLutf8_bskip_char(Most_Beg, pos);
-
- if (*pos != '\n')
- {
-- while ((pos > Most_Beg)
-- && (*pos != '\n'))
-+ /* This block is UTF-8 safe. See comment above. */
-+ while ((pos > Most_Beg) && (*pos != '\n'))
- pos--;
- if (*pos != '\n') return Most_Beg;
-+ /* from here on *pos == '\n' */
- return pos + 1;
- }
-
-@@ -93,55 +98,6 @@
- return pos;
- }
-
--
--static unsigned char *forward_columns (unsigned char *b, unsigned char *e, unsigned int num_cols)
--{
-- unsigned int col = 0;
--
-- while ((b < e)
-- && (col < num_cols))
-- {
-- unsigned char ch = *b++;
-- if (((ch >= ' ') && (ch < 0x7F))
-- || (ch >= SLsmg_Display_Eight_Bit))
-- {
-- col++;
-- continue;
-- }
--
-- if ((ch == '\b') || (ch == '\t') || (ch == '\r'))
-- switch (ch)
-- {
-- case '\b':
-- if (Most_V_Opt == 0)
-- {
-- if (col > 0) col--;
-- }
-- else col += 2;
-- break;
--
-- case '\r':
-- if (Most_V_Opt == 0)
-- col = 0;
-- else
-- col += 2;
-- break;
--
-- case '\t':
-- if (Most_T_Opt == 0)
-- col = Most_Tab_Width * (col/Most_Tab_Width + 1);
-- else
-- col += 2;
-- break;
-- }
-- else if (ch & 0x80)
-- col += 3;
-- else
-- col += 2;
-- }
-- return b;
--}
--
- /* does not move point */
- static unsigned char *end_of_line1(void)
- {
-@@ -164,6 +120,9 @@
-
- if (*pos != '\n')
- {
-+ /* This block is UTF-8 safe, because it only scans the buffer
-+ for a new-line, and doesn't count characters. */
-+
- n = pmax - pos;
- n2 = n % 8;
- pmax = pos + (n - 8);
-@@ -215,7 +174,7 @@
- ncols = SLtt_Screen_Cols-1;
- while (1)
- {
-- unsigned char *next_b = forward_columns (b, e, ncols);
-+ unsigned char *next_b = most_forward_columns (b, e, ncols, 1);
- if ((next_b == e) || (next_b == b))
- break;
-
-@@ -237,11 +196,12 @@
- return e;
-
- if (b == NULL) b = most_beg_of_line ();
-- b = forward_columns (b, e, SLtt_Screen_Cols-1);
-+ b = most_forward_columns (b, e, SLtt_Screen_Cols-1, 1);
-
- /* Do not wrap the line if the last character falls on the last column
- * of the display.
- */
-+ /* FIXME potential bug if dealing with multi-byte char. */
- if ((b + 1 <= e)
- && (b + 1 < Most_Eob)
- && (b[1] == '\n'))
-@@ -250,10 +210,10 @@
- return b;
- }
-
--int most_forward_line(int save)
-+long long most_forward_line(long long save)
- {
-- int m;
-- register int n = save;
-+ long long m;
-+ register long long n = save;
- unsigned char *p;
- unsigned char *pmax;
-
-@@ -346,14 +306,14 @@
- }
-
- /* Count lines in the region. A half line counts as 1 */
--int most_count_lines(unsigned char *beg, unsigned char *end)
-+long long most_count_lines(unsigned char *beg, unsigned char *end)
- {
-- int save_line, n;
-+ long long save_line, n;
- unsigned char *save_beg, *save_eob;
-- unsigned int save_pos;
-+ unsigned long long save_pos;
- int dn = 1000;
-
-- if (Most_B_Opt) return(1 + (int)(end - beg) / 16);
-+ if (Most_B_Opt) return(1 + (long long)(end - beg) / 16);
-
- save_line = Most_C_Line; save_beg = Most_Beg; save_eob = Most_Eob;
- save_pos = Most_C_Offset;
-@@ -371,9 +331,9 @@
- return(n);
- }
-
--void most_goto_line(int line)
-+void most_goto_line(long long line)
- {
-- int dif_c, dif_b,dif_t;
-+ long long dif_c, dif_b,dif_t;
-
- if (line < 1) line = 1;
- most_read_to_line(line);
-@@ -420,7 +380,7 @@
- }
-
- /* return line the point is on without the final '\n's */
--int most_extract_line(unsigned char **beg, unsigned char **end)
-+long long most_extract_line(unsigned char **beg, unsigned char **end)
- {
- *beg = most_beg_of_line();
- *end = end_of_line (*beg);
-@@ -428,12 +388,12 @@
- return 0;
- }
-
--int most_what_line(unsigned char *pos)
-+long long most_what_line(unsigned char *pos)
- {
-- unsigned int save_pos;
-- int save_line, dir;
-- register int dif_c, dif_b,dif_t;
-- int ret;
-+ unsigned long long save_pos;
-+ long long save_line, dir;
-+ register long long dif_c, dif_b,dif_t;
-+ long long ret;
-
- if (Most_B_Opt)
- {
-@@ -517,7 +477,7 @@
- }
-
- /* given a buffer position, find the line and column */
--void most_find_row_column(unsigned char *pos, int *r, int *c)
-+void most_find_row_column(unsigned char *pos, long long *r, long long *c)
- {
- unsigned char *beg;
- unsigned int save_offset;
-@@ -545,7 +505,10 @@
- /* Now we have found the line it is on so.... */
- beg = most_beg_of_line();
- *c = 1;
-- while (beg++ < pos) *c = *c + 1;
-+ if (Most_UTF8_Mode)
-+ while ((beg = SLutf8_skip_char(beg, pos)) < pos) *c = *c + 1;
-+ else
-+ while (beg++ < pos) *c = *c + 1;
- Most_C_Line = save_line;
- Most_C_Offset = save_offset;
- }
---- most-4.10.2.orig/src/buffer.h
-+++ most-4.10.2/src/buffer.h
-@@ -23,12 +23,12 @@
-
- extern Most_Buffer_Type *Most_Buf;
- extern unsigned char *Most_Beg, *Most_Eob;
--extern int Most_Num_Lines;
-+extern long long Most_Num_Lines;
-
- /* Offset of current position from beginning of buffer */
--extern unsigned int Most_C_Offset;
-+extern unsigned long long Most_C_Offset;
-
--extern int Most_C_Line;
-+extern long long Most_C_Line;
- /*
- * Current line number. If at the beginning of the buffer, it is 1. If
- * we are at the last point of the buffer it is the number of lines.
-@@ -37,26 +37,26 @@
- /* This routine does not move the point */
- extern unsigned char *most_beg_of_line(void);
-
--extern int most_forward_line(int);
-+extern long long most_forward_line(long long);
- /* This routine moves the point forward n lines. n can be negative.
- It returns the number moved. */
-
--extern void most_goto_line(int);
-+extern void most_goto_line(long long);
- /* Move the point somewhere on the nth line of the buffer returning
- C_POS */
-
--extern int most_what_line(unsigned char *);
-+extern long long most_what_line(unsigned char *);
- /* return the line number of position 'argument'. Does not move point */
-
- /* count the number of lines in the region delimited by beg and end.
- Counts lines from beg up to end but does not count end.
- Does not move point. */
--extern int most_count_lines(unsigned char *, unsigned char *);
--extern int most_extract_line(unsigned char **, unsigned char **);
-+extern long long most_count_lines(unsigned char *, unsigned char *);
-+extern long long most_extract_line(unsigned char **, unsigned char **);
-
- extern Most_Buffer_Type *most_switch_to_buffer(Most_Buffer_Type *);
- extern Most_Buffer_Type *most_create_buffer(char *);
--extern void most_find_row_column(unsigned char *, int *, int *);
-+extern void most_find_row_column(unsigned char *, long long *, long long *);
-
- #endif
-
---- most-4.10.2.orig/src/keym.c
-+++ most-4.10.2/src/keym.c
-@@ -228,7 +228,7 @@
- static void goto_percent_cmd(void)
- {
- unsigned char *pos;
-- int n;
-+ long long n;
-
- if (Most_Digit_Arg != (int *) NULL) n = *Most_Digit_Arg;
- else
-@@ -282,7 +282,7 @@
-
- static void find_next_cmd(void)
- {
-- int col, line, n = 1;
-+ long long col, line, n = 1;
- unsigned long ofs;
-
- if (Most_Digit_Arg != NULL) n = *Most_Digit_Arg;
-@@ -309,7 +309,7 @@
- #else
- "Search: ",
- #endif
-- Most_Search_Str,
-+ (char *) Most_Search_Str,
- MOST_SEARCH_BUF_LEN
- ) == -1) return;
- Most_Curs_Offset = Most_C_Offset;
-@@ -325,7 +325,7 @@
- #else
- "Search Backwards: ",
- #endif
-- Most_Search_Str,
-+ (char *) Most_Search_Str,
- MOST_SEARCH_BUF_LEN) == -1) return;
- find_next_cmd();
- }
---- most-4.10.2.orig/src/line.c
-+++ most-4.10.2/src/line.c
-@@ -87,8 +87,7 @@
- while (b < end)
- {
- ch = *b++;
-- if (((ch >= ' ') && (ch < 0x7F))
-- || (ch >= SLsmg_Display_Eight_Bit))
-+ if (most_isprint(ch))
- {
- *s++ = ch;
- continue;
-@@ -108,103 +107,156 @@
-
- if (end > Most_Eob) end = Most_Eob;
-
-- sprintf (buf, "0x%08X: ", Most_C_Offset);
-+ sprintf (buf, "0x%08llX: ", Most_C_Offset);
- ascii_format_line (beg, end, buf + 12);
- SLsmg_write_string (buf);
- SLsmg_erase_eol ();
- }
-
--static int most_analyse_line(unsigned char *begg, unsigned char *endd,
-- char *out, char *attributes)
-+int most_isprint(unsigned char ch)
- {
-- unsigned char *beg, *end;
-- unsigned int min_col, max_col;
-- unsigned int i, i_max;
-+ /* Can this be directly replaced with isprint? */
-+ return (ch >= ' ' && ch < 0x7F) || ch >= SLsmg_Display_Eight_Bit;
-+}
-+
-+static void most_analyse_line(unsigned char *beg, unsigned char *end,
-+ unsigned char *out, char *attributes)
-+{
-+ unsigned char *pout;
-+ char* pattributes;
-+
-+ /* Holds the number of columns for the current character counting
-+ * from the left margin (in contrast to the leftmost visible
-+ * column).
-+ */
-+ unsigned int col;
-+
-+ /* Holds the number of the column up to which to apply the
-+ * current/following formatting. Only meaningful when format_rlim > i.
-+ */
-+ unsigned int format_rlim;
-
-- beg = begg;
-- end = endd;
-- i = i_max = 0;
-- min_col = Most_Column - 1;
-- max_col = min_col + SLtt_Screen_Cols;
-+ beg = most_forward_columns(beg, end, Most_Column - 1, 0);
-+ pout = out;
-+ pattributes = attributes;
-+ col = format_rlim = 0;
-
- while (beg < end)
- {
- char attr = ' ';
-- unsigned char ch;
-+ unsigned char ch = *beg++;
-
-- if ('\n' == (ch = *beg++))
-+ if ('\n' == ch)
- break;
-
- if ((ch == '\r') && (Most_V_Opt == 0))
- {
-- if (i > i_max) i_max = i;
-- i = 0;
-+ if (col > format_rlim) format_rlim = col;
-+ col = 0;
- continue;
- }
-
- if ((ch == '\b') && (Most_V_Opt == 0))
- {
-- if (i > i_max) i_max = i;
-- if (i > 0)
-- i--;
-+ if (col > format_rlim) format_rlim = col;
-+ if (col > 0)
-+ {
-+ if (Most_UTF8_Mode)
-+ {
-+ SLwchar_Type wc;
-+ pout = SLutf8_bskip_char(out, pout);
-+ if (SLutf8_decode(pout, pout + SLUTF8_MAX_MBLEN, &wc, NULL))
-+ {
-+ unsigned int char_len = SLwchar_wcwidth(wc);
-+ if (char_len > 1)
-+ col -= char_len - 1;
-+ }
-+ }
-+ else
-+ pout--;
-+ pattributes--;
-+ col--;
-+ }
- continue;
- }
-
-- if (i < i_max) /* overstrike */
-+ if (col < format_rlim) /* overstrike */
- {
- attr = 'b';
-- if ((i >= min_col) && (i < max_col))
-+ if (col < SLtt_Screen_Cols)
- {
-- if (out[i-min_col] == '_')
-+ if (*pout == '_')
- attr = 'u';
- else if (ch == '_')
- {
- attr = 'u';
-- ch = out[i - min_col];
-+ ch = *pout;
- }
- }
- if (ch == ' ')
- {
-- i++;
-+ col++;
- continue;
- }
- /* drop */
- }
--
-- if ((ch >= ' ') && (ch < 0x7F))
-- {
-- if ((i >= min_col) && (i < max_col))
-+
-+ if (Most_UTF8_Mode) {
-+ unsigned char *prev = --beg;
-+ SLwchar_Type wc;
-+ unsigned int len;
-+
-+ if (SLutf8_decode(beg, end, &wc, NULL))
-+ {
-+ unsigned int char_len = SLwchar_wcwidth(wc);
-+ if (char_len > 1)
-+ col += char_len - 1;
-+ }
-+
-+ beg = SLutf8_skip_char(beg, end);
-+ len = beg - prev;
-+
-+ if (len > 1) {
-+ /* Non-ASCII char, display it. */
-+ if (col < SLtt_Screen_Cols)
- {
-- out[i-min_col] = ch;
-- attributes[i-min_col] = attr;
-+ memcpy(pout, prev, len);
-+ pout += len;
-+ *pattributes++ = attr;
- }
-- i++;
-+ col++;
- continue;
-- }
--
-- if (ch >= SLsmg_Display_Eight_Bit)
-+ }
-+ }
-+
-+ if (most_isprint(ch))
- {
-- if ((i >= min_col) && (i < max_col))
-+ if (col < SLtt_Screen_Cols)
- {
-- out[i-min_col] = ch;
-- attributes[i-min_col] = attr;
-+ *pout++ = ch;
-+ *pattributes++ = attr;
- }
-- i++;
-+ col++;
- continue;
- }
-
- if ((ch == '\t') && (Most_T_Opt == 0) && (Most_Tab_Width))
- {
--
-- int nspaces = Most_Tab_Width * (i/Most_Tab_Width + 1) - i;
-+ /* Tab expansion must take into consideration the
-+ * leftmost visible column. However, variable col holds the
-+ * number of columns from the left margin and must be
-+ * corrected.
-+ */
-+ int vis_col = col + Most_Column - 1;
-+ int nspaces = Most_Tab_Width - (vis_col % Most_Tab_Width);
- while (nspaces > 0)
- {
-- if ((i >= min_col) && (i < max_col))
-+ if (col < SLtt_Screen_Cols)
- {
-- out[i-min_col] = ' ';
-- attributes[i-min_col] = attr;
-+ *pout++ = ' ';
-+ *pattributes++ = attr;
- }
-- i++;
-+ col++;
- nspaces--;
- }
- continue;
-@@ -212,36 +264,36 @@
-
- if (ch & 0x80)
- {
-- if ((i >= min_col) && (i < max_col))
-+ if (col < SLtt_Screen_Cols)
- {
-- out[i-min_col] = '~';
-- attributes[i-min_col] = attr;
-+ *pout++ = '~';
-+ *pattributes++ = attr;
- }
-- i++;
-+ col++;
- ch &= 0x7F;
- /* drop */
- }
-
-- if ((i >= min_col) && (i < max_col))
-+ if (col < SLtt_Screen_Cols)
- {
-- out[i-min_col] = '^';
-- attributes[i-min_col] = attr;
-+ *pout++ = '^';
-+ *pattributes++ = attr;
- }
-- i++;
-+ col++;
-
- if (ch == 0x7F) ch = '?';
- else ch += '@';
-
-- if ((i >= min_col) && (i < max_col))
-+ if (col < SLtt_Screen_Cols)
- {
-- out[i-min_col] = ch;
-- attributes[i-min_col] = attr;
-+ *pout++ = ch;
-+ *pattributes++ = attr;
- }
-- i++;
-+ col++;
- }
-
-- if (i < i_max)
-- i = i_max;
-+ if (col < format_rlim)
-+ col = format_rlim;
-
- /* Now add "..." if selective display. To do that, the next line needs to
- * be dealt with to determine whether or not it will be hidden.
-@@ -249,7 +301,7 @@
- if (Most_Selective_Display
- && (Most_W_Opt == 0)
- && (beg < Most_Eob)
-- && ((i >= min_col) && (i < max_col)))
-+ && (col < SLtt_Screen_Cols))
- {
- if (*beg == '\n') beg++;
-
-@@ -260,37 +312,29 @@
- if ((beg >= Most_Eob) || (*beg == '\n')
- || (most_apparant_distance(beg) >= Most_Selective_Display))
- {
-- i_max = i + 3;
-- while (i < i_max)
-+ /* Add an ellipsis, if they fit on the screen. */
-+ int rlimit = col + 3;
-+ while (col < rlimit)
- {
-- if (i < max_col)
-+ if (col < SLtt_Screen_Cols)
- {
-- out[i] = '.';
-- attributes[i] = ' ';
-+ *pout++ = '.';
-+ *pattributes++ = ' ';
- }
-- i++;
-+ col++;
- }
- }
- }
--
-- i_max = i;
-
-- if (i < min_col)
-- i = min_col;
-- else if (i >= max_col)
-- i = max_col;
--
-- i -= min_col;
--
-- out[i] = 0;
-- attributes[i] = 0;
-- return i_max;
-+ *pout = 0;
-+ *pattributes = 0;
- }
-
--static void output_with_attr (unsigned char *out, unsigned char *attr)
-+static void output_with_attr (unsigned char *out, char *attr)
- {
-- unsigned char at, ch, lat;
-+ unsigned char at, lat;
- unsigned char *p = out;
-+ unsigned char *pmax = p + strlen((char *) p);
-
- if (Most_V_Opt)
- {
-@@ -299,7 +343,7 @@
- }
-
- lat = ' ';
-- while ((ch = *p) != 0)
-+ while (p < pmax)
- {
- if (lat != *attr)
- {
-@@ -321,7 +365,7 @@
- else most_tt_normal_video ();
- lat = at;
- }
-- p++;
-+ p = SLutf8_skip_char(p, pmax);
- attr++;
- }
-
-@@ -340,10 +384,11 @@
- void most_display_line (void)
+@@ -520,13 +530,13 @@
+ .PP
+ .B setkey function-name key-sequence
+ .PP
+-The
++The
+ .I setkey
+ command requires two arguments. The
+ .I function-name
+ argument specifies the function that is to be executed as a response
+ to the keys specified by the
+-.I key-sequence
++.I key-sequence
+ argument are pressed. For example,
+ .PP
+ setkey "up" "^P"
+@@ -544,9 +554,9 @@
+ .PP
+ unsetkey "^F"
+ .PP
+-Colors may be defined through the use of the
++Colors may be defined through the use of the
+ .I color
+-keyword in the the configuration file using the syntax:
++keyword in the configuration file using the syntax:
+ .PP
+ .B color OBJECT-NAME FOREGROUND-COLOR BACKGROUND-COLOR
+ .PP
+@@ -589,19 +599,19 @@
+ for valuable comments and criticisms.
+ I would especially like to thank those individuals
+ who have contributed code to
+-.IR most.
++.IR most .
+ .PP
+ Mats Akerberg, Henk D. Davids, Rex O. Livingston, and Mark
+ Pizzolato contributed to the early VMS versions of
+-.IR most.
++.IR most .
+ In particular, Mark worked on it to get it ready for DECUS.
+ .PP
+ Foteos Macrides <MACRIDES@SCI.WFEB.EDU> adapted
+ .IR most
+-for use in
++for use in
+ .IR cswing
+ and
+-.IR gopher.
++.IR gopher .
+ A few features of the present version of
+ .IR most
+ was inspired from his work.
+@@ -613,7 +623,7 @@
+ automatic detection of zipped files.
+ .PP
+ I would also like to thank Shinichi Hama for his valuable criticisms of
+-.IR most.
++.IR most .
+ .PP
+ Javier Kohen was instrumental in the support for UTF-8.
+ .PP
+--- most-5.0.0a.orig/src/file.h
++++ most-5.0.0a/src/file.h
+@@ -22,6 +22,7 @@
+ #define MOST_MAX_FILES 4096
+ #define MOST_GUNZIP_POPEN_FORMAT "gzip -dc \"%s\""
+ #define MOST_BZIP2_POPEN_FORMAT "bzip2 -dc \"%s\""
++#define MOST_LZMA_POPEN_FORMAT "lzma -dc '%s'"
+
+ extern void most_reread_file (void);
+ extern void most_read_to_line (int);
+--- most-5.0.0a.orig/src/file.c
++++ most-5.0.0a/src/file.c
+@@ -77,7 +77,7 @@
+ static int open_compressed_file(char *file, int mode, int *size)
{
- unsigned char *beg, *end;
-- unsigned int len;
-+#if 0
- unsigned char dollar;
-+#endif
- static unsigned char *line;
-- static unsigned char *attr;
-+ static char *attr;
- static unsigned int line_len;
-
- if (Most_B_Opt)
-@@ -357,37 +402,43 @@
- if (line_len < (unsigned int)(SLtt_Screen_Cols + 1) * SLUTF8_MAX_MBLEN)
- {
- SLfree ((char *) line);
-- SLfree ((char *) attr);
-+ SLfree (attr);
-
- line_len = (SLtt_Screen_Cols + 1) * SLUTF8_MAX_MBLEN;
-
- if ((NULL == (line = (unsigned char *) SLmalloc (line_len)))
-- || (NULL == (attr = (unsigned char *) SLmalloc (line_len))))
-+ || (NULL == (attr = SLmalloc (line_len))))
- most_exit_error ("Out of memory");
- }
+ int fd;
+- char buf[4], cmdbuf[2*MAX_PATHLEN];
++ char buf[6], cmdbuf[2*MAX_PATHLEN];
+ struct stat st;
- (void) most_extract_line (&beg, &end);
+ # ifdef O_BINARY
+@@ -97,7 +97,7 @@
-- len = most_analyse_line(beg, end, (char *) line, (char *) attr);
-+ most_analyse_line(beg, end, line, attr);
+ if (fd < 0) return fd;
-+#if 0
-+ /* Currently the dollar sign is not always being written at the
-+ rightmost column when displaying multi-byte characters. */
- dollar = 0;
- if (Most_W_Opt)
- {
-- if ((end < Most_Eob)
-- && (*end != '\n'))
-- dollar = '\\';
-+ if ((end < Most_Eob)
-+ && (*end != '\n'))
-+ dollar = '\\';
- }
- else if (len > (unsigned int) SLtt_Screen_Cols + (Most_Column - 1))
- dollar = '$';
--
-+
- if (dollar)
+- if (4 == read(fd, buf, 4))
++ if (6 == read(fd, buf, 6))
{
-- line[SLtt_Screen_Cols-1] = dollar;
-- attr[SLtt_Screen_Cols-1] = ' ';
-- line[SLtt_Screen_Cols] = 0;
-- attr[SLtt_Screen_Cols] = 0;
-+ unsigned char *pline =
-+ most_forward_columns(line, line + line_len, SLtt_Screen_Cols-1, 1);
-+ *pline = dollar;
-+ *(pline+1) = 0;
-+ attr[SLtt_Screen_Cols-1] = ' ';
-+ attr[SLtt_Screen_Cols] = 0;
- }
--
-+#endif
-+
- output_with_attr (line, attr);
- SLsmg_erase_eol ();
- }
-@@ -398,21 +449,34 @@
- int most_apparant_distance (unsigned char *pos)
- {
- int i;
-- unsigned char *save_pos, ch;
-+ unsigned char *save_pos, *beg, ch;
- unsigned int save_offset;
+ char *cmd = NULL;
- save_offset = Most_C_Offset;
- save_pos = pos;
- Most_C_Offset = (unsigned int) (pos - Most_Beg);
-- pos = most_beg_of_line();
-+ beg = pos = most_beg_of_line();
- Most_C_Offset = save_offset;
-
- i = 0;
- while (pos < save_pos)
- {
-- ch = *pos++;
-- if (((ch >= ' ') && (ch < 0x7F))
-- || (ch >= SLsmg_Display_Eight_Bit))
-+ ch = *pos;
-+
-+ if (Most_UTF8_Mode) {
-+ unsigned char *prev = pos;
-+ int len;
-+ pos = SLutf8_skip_char(pos, save_pos);
-+ len = pos - prev;
-+ if (len > 1) {
-+ i++;
-+ continue;
-+ }
-+ } else {
-+ pos++;
-+ }
-+
-+ if (most_isprint(ch))
+@@ -113,6 +113,13 @@
{
- i++;
- continue;
-@@ -420,7 +484,13 @@
-
- if (!Most_V_Opt && (ch == '\b'))
- {
-- if (i > 0) i--;
-+ if (i > 0)
-+ {
-+ if (Most_UTF8_Mode)
-+ i -= pos - SLutf8_bskip_char(beg, pos);
-+ else
-+ i--;
-+ }
+ cmd = MOST_BZIP2_POPEN_FORMAT;
}
- else if (!Most_V_Opt && (ch == '\015')) /* ^M */
- {
-@@ -439,3 +509,95 @@
- }
- return i;
- }
-+
-+/*
-+ * Returns a pointer to the num_cols'th character after the one
-+ * pointed at b. Invisible character runs are not counted toward this
-+ * limit, i.e. strings that represent attributes, such as "_\b" for
-+ * underlines.
-+ *
-+ * If multi_column is non-zero, characters spanning more than one
-+ * column will add their extra width to the column count.
-+ *
-+ * If there the end of the buffer is reached, as delimited by argument
-+ * e, then e is returned.
-+ */
-+unsigned char *most_forward_columns (unsigned char *beg, unsigned char *e, unsigned int num_cols, int multi_column)
-+{
-+ unsigned int col = 0;
-+ unsigned int prev_width = 1;
-+ unsigned char* b = beg;
-+
-+ while ((b < e)
-+ && ((col < num_cols)
-+ || (*b == '\b')
-+ || (*b == '\r')))
-+ {
-+ unsigned char ch = *b;
-+
-+ if (Most_UTF8_Mode)
++ else if ((buf[0] == (char) 0xff)
++ && (buf[1] == 'L') && (buf[2] == 'Z')
++ && (buf[3] == 'M') && (buf[4] == 'A')
++ && (buf[5] == (char) 0x00))
+ {
-+ unsigned char *prev = b;
-+ int len;
-+ b = SLutf8_skip_char(b, e);
-+ len = b - prev;
-+ if (len > 1)
-+ {
-+ if (multi_column)
-+ {
-+ SLwchar_Type wc;
-+ if (SLutf8_decode(prev, e, &wc, NULL))
-+ col += prev_width = SLwchar_wcwidth(wc);
-+ }
-+ else
-+ col++;
-+ continue;
-+ }
++ cmd = MOST_LZMA_POPEN_FORMAT;
+ }
-+ else
-+ b++;
-+
-+ if (most_isprint(ch))
-+ {
-+ col++;
-+ prev_width = 1;
-+ continue;
-+ }
-+
-+ if ((ch == '\b') || (ch == '\t') || (ch == '\r'))
-+ switch (ch)
-+ {
-+ case '\b':
-+ if (Most_V_Opt == 0)
-+ {
-+ if (col > 0) col -= prev_width;
-+ }
-+ else col += 2;
-+ break;
-+
-+ case '\r':
-+ if (Most_V_Opt == 0)
-+ col = 0;
-+ else
-+ col += 2;
-+ break;
+
+ if (cmd != NULL)
+ {
+--- most-5.0.0a.orig/autoconf/config.guess
++++ most-5.0.0a/autoconf/config.guess
+@@ -1,9 +1,10 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
++# Free Software Foundation, Inc.
+
+-timestamp='2005-04-22'
++timestamp='2009-12-30'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -17,23 +18,25 @@
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+
+-# Originally written by Per Bothner <per@bothner.com>.
+-# Please send patches to <config-patches@gnu.org>. Submit a context
+-# diff and a properly formatted ChangeLog entry.
+
-+ case '\t':
-+ if (Most_T_Opt == 0)
-+ col = Most_Tab_Width * (col/Most_Tab_Width + 1);
-+ else
-+ col += 2; /* ^I is two chars long. */
-+ break;
-+ }
-+ else if (ch & 0x80)
-+ col += 3;
-+ else
-+ col += 2;
-+ }
++# Originally written by Per Bothner. Please send patches (context
++# diff format) to <config-patches@gnu.org> and include a ChangeLog
++# entry.
+ #
+ # This script attempts to guess a canonical system name similar to
+ # config.sub. If it succeeds, it prints the system name on stdout, and
+ # exits with 0. Otherwise, it exits with 1.
+ #
+-# The plan is that this can be called by configure scripts if you
+-# don't specify an explicit build system type.
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+@@ -53,8 +56,9 @@
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+-Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
++Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -66,11 +70,11 @@
+ while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+- echo "$timestamp" ; exit 0 ;;
++ echo "$timestamp" ; exit ;;
+ --version | -v )
+- echo "$version" ; exit 0 ;;
++ echo "$version" ; exit ;;
+ --help | --h* | -h )
+- echo "$usage"; exit 0 ;;
++ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+@@ -104,7 +108,7 @@
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+ : ${TMPDIR=/tmp} ;
+- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+@@ -123,7 +127,7 @@
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+-esac ;'
++esac ; set_cc_for_build= ;'
+
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+ # (ghazi@noc.rutgers.edu 1994-08-24)
+@@ -158,6 +162,7 @@
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
++ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+@@ -166,7 +171,7 @@
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+- | grep __ELF__ >/dev/null
++ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+@@ -196,55 +201,23 @@
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+- exit 0 ;;
+- amd64:OpenBSD:*:*)
+- echo x86_64-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- amiga:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- cats:OpenBSD:*:*)
+- echo arm-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- hp300:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- luna88k:OpenBSD:*:*)
+- echo m88k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mac68k:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- macppc:OpenBSD:*:*)
+- echo powerpc-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvme68k:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvme88k:OpenBSD:*:*)
+- echo m88k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvmeppc:OpenBSD:*:*)
+- echo powerpc-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- sgi:OpenBSD:*:*)
+- echo mips64-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- sun3:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:OpenBSD:*:*)
+- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
++ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
++ *:SolidBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
++ exit ;;
+ macppc:MirBSD:*:*)
+- echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+- exit 0 ;;
++ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
++ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+@@ -297,40 +270,43 @@
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- exit 0 ;;
++ exit ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+- exit 0 ;;
++ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+- exit 0 ;;
++ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+- exit 0;;
++ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+- exit 0 ;;
++ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+- exit 0 ;;
++ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+- exit 0 ;;
++ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+- exit 0 ;;
++ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+- exit 0 ;;
++ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+- exit 0;;
++ exit ;;
++ arm:riscos:*:*|arm:RISCOS:*:*)
++ echo arm-unknown-riscos
++ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+- exit 0;;
++ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+@@ -338,32 +314,51 @@
+ else
+ echo pyramid-pyramid-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+- exit 0 ;;
++ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+- exit 0 ;;
++ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+- sparc) echo sparc-icl-nx7 && exit 0 ;;
++ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
++ s390x:SunOS:*:*)
++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
+- i86pc:SunOS:5.*:*)
+- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
++ echo i386-pc-auroraux${UNAME_RELEASE}
++ exit ;;
++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
++ eval $set_cc_for_build
++ SUN_ARCH="i386"
++ # If there is a compiler, see if it is configured for 64-bit objects.
++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
++ # This test works for both compilers.
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ SUN_ARCH="x86_64"
++ fi
++ fi
++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+@@ -372,10 +367,10 @@
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+- exit 0 ;;
++ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+@@ -387,10 +382,10 @@
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+- exit 0 ;;
++ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+@@ -401,40 +396,40 @@
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+- exit 0 ;;
++ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+@@ -458,32 +453,33 @@
+ exit (-1);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c \
+- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+- && exit 0
++ $CC_FOR_BUILD -o $dummy $dummy.c &&
++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
++ SYSTEM_NAME=`$dummy $dummyarg` &&
++ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+- exit 0 ;;
++ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+- exit 0 ;;
++ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+- exit 0 ;;
++ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+- exit 0 ;;
++ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+- exit 0 ;;
++ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+- exit 0 ;;
++ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+- exit 0 ;;
++ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+@@ -499,29 +495,29 @@
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+- exit 0 ;;
++ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+- exit 0 ;;
++ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+- exit 0 ;;
++ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+- exit 0 ;;
++ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+- exit 0 ;;
++ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+- exit 0 ;;
++ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+- exit 0 ;;
++ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+@@ -529,7 +525,7 @@
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+- exit 0 ;;
++ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+@@ -544,15 +540,19 @@
+ exit(0);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+- echo rs6000-ibm-aix3.2.5
++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
++ then
++ echo "$SYSTEM_NAME"
++ else
++ echo rs6000-ibm-aix3.2.5
++ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+- exit 0 ;;
+- *:AIX:*:[45])
++ exit ;;
++ *:AIX:*:[456])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+@@ -565,28 +565,28 @@
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+- exit 0 ;;
++ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+- exit 0 ;;
++ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+- exit 0 ;;
++ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+- exit 0 ;; # report: romp-ibm BSD 4.3
++ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+- exit 0 ;;
++ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+- exit 0 ;;
++ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+- exit 0 ;;
++ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+- exit 0 ;;
++ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+@@ -648,9 +648,19 @@
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+- # avoid double evaluation of $set_cc_for_build
+- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
++ eval $set_cc_for_build
+
-+ /* Last character was too wide. Backstep it. */
-+ if (col > num_cols)
-+ b = SLutf8_bskip_char(beg, b);
++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
++ # generating 64-bit code. GNU and HP use different nomenclature:
++ #
++ # $ CC_FOR_BUILD=cc ./config.guess
++ # => hppa2.0w-hp-hpux11.23
++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++ # => hppa64-hp-hpux11.23
+
-+ return b;
-+}
---- most-4.10.2.orig/src/line.h
-+++ most-4.10.2/src/line.h
-@@ -7,5 +7,7 @@
-
- extern void most_display_line(void);
- extern int most_apparant_distance(unsigned char *);
-+extern int most_isprint(unsigned char);
-+extern unsigned char *most_forward_columns (unsigned char *, unsigned char *, unsigned int, int);
- #endif
-
---- most-4.10.2.orig/src/most.c
-+++ most-4.10.2/src/most.c
-@@ -125,7 +125,7 @@
- ch = *(++str);
- if ( ch == '/')
- {
-- strcpy (Most_Search_Str,++str);
-+ strcpy ((char *) Most_Search_Str,++str);
- return;
- }
-
-@@ -329,7 +329,8 @@
-
- static void do_most (char *file, int start)
- {
-- int piped, row, col;
-+ int piped;
-+ long long row, col;
-
- most_get_cdir(Most_C_Dir);
-
-@@ -347,7 +348,7 @@
- Most_Curs_Offset = Most_C_Offset;
-
- if (*Most_Search_Str
-- && ((row = most_search (Most_Beg + Most_C_Offset, 1, &col)) > 0))
-+ && ((row = most_search (Most_Beg + Most_C_Offset, 1LL, &col)) > 0))
- most_goto_line(row);
- else
- {
-@@ -455,13 +456,7 @@
-
- SLtt_get_terminfo();
- #if SLANG_VERSION >= 20000
--#if 0
-- Most_UTF8_Mode = SLutf8_enable (1);
-- if (Most_UTF8_Mode)
-- {
-- fprintf (stderr, "UTF-8 Mode is in effect\n");
-- }
--#endif
-+ Most_UTF8_Mode = SLutf8_enable (-1);
- #endif
- SLtt_Ignore_Beep = 1;
- if (No_Colors)
---- most-4.10.2.orig/src/most.h
-+++ most-4.10.2/src/most.h
-@@ -1,4 +1,5 @@
- #include "config.h"
-+#define SLANG_REGEXP
- extern int Most_S_Opt;
- extern int Most_A_Opt; /* automatically choose -b if necessary */
- extern int Most_V_Opt; /* display control chars */
---- most-4.10.2.orig/src/search.c
-+++ most-4.10.2/src/search.c
-@@ -20,6 +20,7 @@
- */
- #include "config.h"
-
-+#include <ctype.h>
- #include <stdio.h>
- #include <string.h>
- #include <slang.h>
-@@ -31,18 +32,18 @@
- #include "display.h"
- #include "search.h"
-
--/* Note!!! The regular expression searches may not work. I have not
-- * tested them.
-- * FIXME!!!
-- */
--
- int Most_Case_Sensitive = 0;
--char Most_Search_Str[256];
-+unsigned char Most_Search_Str[256];
- int Most_Search_Dir = 1;
-
- #include "jdmacros.h"
-
--#define UPCASE(ch) ((!Most_Case_Sensitive && (ch <= 'z') && (ch >= 'a')) ? (ch - 32) : ch)
-+#if SLANG_VERSION < 20000
-+# define NORM_CHAR(ch) ((!Most_Case_Sensitive) ? toupper(ch) : ch)
-+# define UPCASE(ch) NORM_CHAR(ch)
-+#else
-+# define NORM_CHAR(ch) (ch)
-+#endif
-
- #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
-
-@@ -78,7 +79,7 @@
- * This function is called by the V8 regcomp to report
- * errors in regular expressions.
- */
--static void regerror(char *s)
-+static void regerror(const char *s)
- {
- char string[256];
-
-@@ -95,13 +96,17 @@
- * 0 error
- *
- */
--static int do_regcomp(unsigned char *key)
-+static int do_regcomp(const unsigned char *key)
- {
- static int old_Most_Case_Sensitive;
-- unsigned char UpCaseKey[sizeof(savepattern)];
- # ifndef HAVE_V8_REGCOMP
- int posn; /* reg exp error at this offset */
- # endif
-+# if SLANG_VERSION < 20000
-+ unsigned char UpCaseKey[sizeof(savepattern)];
-+# else
-+ int re_flags = 0;
-+# endif
-
- /*
- * Only recompile search string if it has changed
-@@ -124,6 +129,7 @@
-
- old_Most_Case_Sensitive = Most_Case_Sensitive;
-
-+# if SLANG_VERSION < 20000
- if ( Most_Case_Sensitive == 0 )
- {
- register unsigned char *p; /* ptr to UpCaseKey */
-@@ -141,6 +147,7 @@
-
- *p = '\0';
- }
-+# endif
-
- strcpy((char *)savepattern, (char *)key);
-
-@@ -162,7 +169,12 @@
- # else
- if (Regexp != NULL)
- SLregexp_free (Regexp);
-- if (NULL == (Regexp = SLregexp_compile ((char *)key, Most_Case_Sensitive ? 0 : SLREGEXP_CASELESS)))
-+
-+ if (!Most_Case_Sensitive)
-+ re_flags |= SLREGEXP_CASELESS;
-+ if (Most_UTF8_Mode)
-+ re_flags |= SLREGEXP_UTF8;
-+ if (NULL == (Regexp = SLregexp_compile ((char *)key, re_flags)))
- posn = -1;
- else
- posn = 0;
-@@ -187,7 +199,7 @@
- * Call the appropriate regular expression execute function
- */
-
--static unsigned char *do_regexec(unsigned char *string)
-+static unsigned char *do_regexec(const unsigned char *string, size_t length)
- {
- # ifdef HAVE_V8_REGCOMP
- if ( regexec(regpattern, (char *)string) )
-@@ -196,40 +208,46 @@
- return( NULL );
- # else
- # if SLANG_VERSION < 20000
-- return ( SLang_regexp_match(string, strlen((char *)string), &regdata) );
-+ return ( SLang_regexp_match(string, length, &regdata) );
- # else
-- return (unsigned char *)SLregexp_match (Regexp, (char *)string, strlen ((char *)string));
-+ return (unsigned char *)SLregexp_match (Regexp, (char *)string, length);
- # endif
- # endif /* HAVE_V8_REGCOMP */
- }
-
- /*
-- * Make a upper case copy of a string. Also changes any "c\b" character
-- * strings into just "" so that highlighted and underlined characters
-- * can be searched.
-+ * Changes any "c\b" character strings into just "" so that
-+ * highlighted and underlined characters can be searched. Stores in
-+ * length the new size of the string, after the aforementioned
-+ * changes.
-+ *
-+ * If using a version of S-Lang that does not support case
-+ * insensitive regular expressions, this function upper cases the
-+ * input string, as well.
- *
- * Reuses malloced memory, so a copy cannot be retained between calls.
- */
-
--static unsigned char *StrUpCaseCopy(unsigned char *input)
-+static const unsigned char *StrNormCopy(const unsigned char *input,
-+ size_t *length)
- {
- static unsigned char *uppercase; /* ptr to malloced area */
- static size_t bufsize; /* size of malloced area */
-- unsigned char *src; /* ptr to source */
-+ const unsigned char *src; /* ptr to source */
-+ const unsigned char *end; /* ptr to end of source */
- register unsigned char *dest; /* ptr to destination */
- register int idx; /* index into uppercase[] */
-- register unsigned char c; /* source character */
-- size_t length; /* size of string to copy */
-
- src = input;
-- length = strlen((char *)src) + 1; /* len of line plus terminator */
-+ end = input + *length;
-
-- if ( length > bufsize )
-+ if ( *length >= bufsize )
- {
- if ( uppercase != (unsigned char *)NULL )
- free(uppercase);
-
-- bufsize = (length > 256 ) ? length : 256; /* 256 byte default */
-+ /* len of line plus terminator */
-+ bufsize = (*length >= 256 ) ? *length + 1 : 256; /* 256 byte default */
-
- uppercase = (unsigned char *)malloc(bufsize);
- if ( uppercase == (unsigned char *)NULL )
-@@ -242,8 +260,9 @@
-
- dest = uppercase;
-
-- for ( idx = 0 ; (c = *src) != '\0' ; src++ )
-+ for ( idx = 0 ; src < end ; src++ )
- {
-+ unsigned char c = *src;
- if ( c == '\b' ) /* backspace */
- {
- if ( idx-- > 0 )
-@@ -252,54 +271,79 @@
++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
++ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+@@ -658,11 +668,11 @@
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+- exit 0 ;;
++ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+- exit 0 ;;
++ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+@@ -690,219 +700,248 @@
+ exit (0);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
++ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+- exit 0 ;;
++ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+- exit 0 ;;
++ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+- exit 0 ;;
++ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+- exit 0 ;;
++ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+- exit 0 ;;
++ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+- exit 0 ;;
++ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
else
- {
- if ( idx++ >= 0 )
-- *dest++ = UPCASE(c);
-+ *dest++ = NORM_CHAR(c);
- }
- }
-
- *dest = '\0'; /* add termination */
-
-+ *length = dest - uppercase;
- return(uppercase);
- }
-
- /*
-- * Given an offset into a copy made by StrUpCaseCopy() and a pointer to the
-+ * Given an offset into a copy made by StrNormCopy() and a pointer to the
- * original string, returns a pointer into the original string corresponding
- * to this offset.
- */
-
--static unsigned char *GetOrigPtr(unsigned char *original, int offset)
-+static const unsigned char *
-+GetOrigPtr(const unsigned char *original, int offset,
-+ const unsigned char *end)
- {
-- register unsigned char *p = original;
-+ const unsigned char *p = original;
- register int j = offset;
-
- /*
- * Step through, adjusting offset according to backspaces found
- */
-- while ( *p != '\0' )
-+ while ( p < end )
- {
-+ const unsigned char *next;
-+ if (Most_UTF8_Mode)
-+ next = SLutf8_skip_char((unsigned char*) p, (unsigned char*) end);
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+- exit 0 ;;
++ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+- exit 0 ;;
++ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+- exit 0 ;;
++ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+- exit 0 ;;
++ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+- exit 0 ;;
++ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:FreeBSD:*:*)
+- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+- exit 0 ;;
++ case ${UNAME_MACHINE} in
++ pc98)
++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ amd64)
++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ *)
++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ esac
++ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+- exit 0 ;;
+- i*:MINGW*:*)
++ exit ;;
++ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+- exit 0 ;;
++ exit ;;
++ i*:windows32*:*)
++ # uname -m includes "-pc" on this system.
++ echo ${UNAME_MACHINE}-mingw32
++ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+- exit 0 ;;
+- x86:Interix*:[34]*)
+- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+- exit 0 ;;
++ exit ;;
++ *:Interix*:*)
++ case ${UNAME_MACHINE} in
++ x86)
++ echo i586-pc-interix${UNAME_RELEASE}
++ exit ;;
++ authenticamd | genuineintel | EM64T)
++ echo x86_64-unknown-interix${UNAME_RELEASE}
++ exit ;;
++ IA64)
++ echo ia64-unknown-interix${UNAME_RELEASE}
++ exit ;;
++ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+- exit 0 ;;
++ exit ;;
++ 8664:Windows_NT:*)
++ echo x86_64-pc-mks
++ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+- exit 0 ;;
++ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+- exit 0 ;;
+- amd64:CYGWIN*:*:*)
++ exit ;;
++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+- exit 0 ;;
++ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+- exit 0 ;;
++ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+- exit 0 ;;
++ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+- exit 0 ;;
++ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+- exit 0 ;;
++ exit ;;
++ alpha:Linux:*:*)
++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++ EV5) UNAME_MACHINE=alphaev5 ;;
++ EV56) UNAME_MACHINE=alphaev56 ;;
++ PCA56) UNAME_MACHINE=alphapca56 ;;
++ PCA57) UNAME_MACHINE=alphapca56 ;;
++ EV6) UNAME_MACHINE=alphaev6 ;;
++ EV67) UNAME_MACHINE=alphaev67 ;;
++ EV68*) UNAME_MACHINE=alphaev68 ;;
++ esac
++ objdump --private-headers /bin/sh | grep -q ld.so.1
++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ exit ;;
+ arm*:Linux:*:*)
++ eval $set_cc_for_build
++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_EABI__
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
-+ next = p + 1;
-+ size_t length_last = next - p;
-+
- if ( *p == '\b' )
-- j++;
-+ j += length_last;
++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ fi
++ exit ;;
++ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+- exit 0 ;;
++ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+- exit 0 ;;
++ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
++ i*86:Linux:*:*)
++ LIBC=gnu
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #ifdef __dietlibc__
++ LIBC=dietlibc
++ #endif
++EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
++ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
+- mips:Linux:*:*)
++ exit ;;
++ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+- #undef mips
+- #undef mipsel
++ #undef ${UNAME_MACHINE}
++ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+- CPU=mipsel
++ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+- CPU=mips
++ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+ EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+- mips64:Linux:*:*)
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #undef CPU
+- #undef mips64
+- #undef mips64el
+- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+- CPU=mips64el
+- #else
+- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+- CPU=mips64
+- #else
+- CPU=
+- #endif
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+- ;;
+- ppc:Linux:*:*)
+- echo powerpc-unknown-linux-gnu
+- exit 0 ;;
+- ppc64:Linux:*:*)
+- echo powerpc64-unknown-linux-gnu
+- exit 0 ;;
+- alpha:Linux:*:*)
+- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+- EV5) UNAME_MACHINE=alphaev5 ;;
+- EV56) UNAME_MACHINE=alphaev56 ;;
+- PCA56) UNAME_MACHINE=alphapca56 ;;
+- PCA57) UNAME_MACHINE=alphapca56 ;;
+- EV6) UNAME_MACHINE=alphaev6 ;;
+- EV67) UNAME_MACHINE=alphaev67 ;;
+- EV68*) UNAME_MACHINE=alphaev68 ;;
+- esac
+- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+- exit 0 ;;
++ or32:Linux:*:*)
++ echo or32-unknown-linux-gnu
++ exit ;;
++ padre:Linux:*:*)
++ echo sparc-unknown-linux-gnu
++ exit ;;
++ parisc64:Linux:*:* | hppa64:Linux:*:*)
++ echo hppa64-unknown-linux-gnu
++ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+@@ -910,87 +949,40 @@
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+- exit 0 ;;
+- parisc64:Linux:*:* | hppa64:Linux:*:*)
+- echo hppa64-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
++ ppc64:Linux:*:*)
++ echo powerpc64-unknown-linux-gnu
++ exit ;;
++ ppc:Linux:*:*)
++ echo powerpc-unknown-linux-gnu
++ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+- exit 0 ;;
++ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
++ vax:Linux:*:*)
++ echo ${UNAME_MACHINE}-dec-linux-gnu
++ exit ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+- exit 0 ;;
+- i*86:Linux:*:*)
+- # The BFD linker knows what the default object file format is, so
+- # first see if it will tell us. cd to the root directory to prevent
+- # problems with other programs or directories called `ld' in the path.
+- # Set LC_ALL=C to ensure ld outputs messages in English.
+- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+- | sed -ne '/supported targets:/!d
+- s/[ ][ ]*/ /g
+- s/.*supported targets: *//
+- s/ .*//
+- p'`
+- case "$ld_supported_targets" in
+- elf32-i386)
+- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+- ;;
+- a.out-i386-linux)
+- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+- exit 0 ;;
+- coff-i386)
+- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+- exit 0 ;;
+- "")
+- # Either a pre-BFD a.out linker (linux-gnuoldld) or
+- # one that does not give us useful --help.
+- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+- exit 0 ;;
+- esac
+- # Determine whether the default compiler is a.out or elf
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #include <features.h>
+- #ifdef __ELF__
+- # ifdef __GLIBC__
+- # if __GLIBC__ >= 2
+- LIBC=gnu
+- # else
+- LIBC=gnulibc1
+- # endif
+- # else
+- LIBC=gnulibc1
+- # endif
+- #else
+- #ifdef __INTEL_COMPILER
+- LIBC=gnu
+- #else
+- LIBC=gnuaout
+- #endif
+- #endif
+- #ifdef __dietlibc__
+- LIBC=dietlibc
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+- ;;
++ exit ;;
++ xtensa*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+- exit 0 ;;
++ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+@@ -998,27 +990,27 @@
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+- exit 0 ;;
++ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+- exit 0 ;;
++ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+- exit 0 ;;
++ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+- exit 0 ;;
+- i*86:syllable:*:*)
++ exit ;;
++ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+- exit 0 ;;
+- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
++ exit ;;
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+- exit 0 ;;
++ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+@@ -1026,15 +1018,16 @@
else
-- j--;
-+ j -= length_last;
-
- if ( j < 0 )
- break;
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+- exit 0 ;;
+- i*86:*:5:[78]*)
++ exit ;;
++ i*86:*:5:[678]*)
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+- exit 0 ;;
++ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+@@ -1052,73 +1045,86 @@
else
-- p++;
-+ p = next;
- }
-
- return(p);
- }
- #endif /* HAVE_V8_REGCOMP || SLANG_REGEXP */
-
-+/* Returns a pointer to the first occurrence of '\n' in string beg, or
-+ * end if no '\n' can be found between inclusive beg and exclusive
-+ * end.
-+ */
-+static const unsigned char *
-+find_eol(const unsigned char *beg, const unsigned char *end)
-+{
-+ const unsigned char *p;
-+ if ( (p = memchr(beg, '\n', end - beg)) != NULL)
-+ return p;
-+ else
-+ return end;
-+}
-+
- /* This routine returns the 1 + position of first match of key in str.
- key is modified to match the case of str. */
- /* We should try to optimize this routine */
- /* searches from beg up to but not including end */
-
--static unsigned char *forw_search_region(unsigned char *beg,
-- unsigned char *end,
-- unsigned char *key)
-+static const unsigned char *
-+forw_search_region(const unsigned char *beg,
-+ const unsigned char *end,
-+ const unsigned char *key)
- {
- #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
- /*
-@@ -307,10 +351,11 @@
- * to be broken into lines.
- *
- */
-- unsigned char *p; /* temp pointer */
-- unsigned char *linebeg; /* beginning of working line */
-- unsigned char *copy; /* ptr to upper case copy */
-+ const unsigned char *linebeg; /* beginning of working line */
-+ const unsigned char *lineend; /* end of working line */
-+ const unsigned char *norm_line; /* ptr to normalized line */
- unsigned char *match; /* ptr to matching string */
-+ int anchored_re;
-
- /*
- * Compile "key" into an executable regular expression
-@@ -318,58 +363,35 @@
- if ( do_regcomp(key) == 0 )
- return(Most_Eob);
-
-- /*
-- * For regular expression searches we need to do a line by line
-- * search, so it is necessary to temporarily replace '\n' with '\0'
-- * characters.
-- */
-- p = beg;
-- linebeg = beg;
-+ anchored_re = key[0] == '^';
-
-- while (linebeg < end)
-+ for ( linebeg = beg ; linebeg < end ; linebeg = lineend + 1 )
- {
-- while ((p < end) && (*p != '\n')) p++;
-- if (p == end) break;
-- *p = 0;
-+ size_t length;
-
-- if ( Most_Case_Sensitive == 0 ) /* i.e. case insensitive */
-- {
-- copy = StrUpCaseCopy(linebeg);
-- if ( copy == (unsigned char *)NULL )
-- return(Most_Eob);
-- }
-+ lineend = find_eol(linebeg, end);
-+
-+ length = lineend - linebeg;
-+ if (0 == length) continue; /* Skip empty lines. */
-+
-+ norm_line = StrNormCopy(linebeg, &length);
-+ if ( norm_line == NULL )
-+ return(Most_Eob);
-
- /*
- * Quick sanity check for beginning of line archored tests.
-- * If 1st char of key is "^", then the character before linebeg (which
-- * must be beyond the start of the window), must be a "\n",
-- * otherwise do_regexec() isn't called.
-+ * If 1st char of key is "^", then the character before
-+ * linebeg (which must be within the buffer), must be a "\n".
- */
-- if (
--# if 0
-- ((*key != '^')
-- || (linebeg > Most_Win->beg_pos && linebeg[-1] == '\n'))
-- &&
--#endif
-- (match = do_regexec(Most_Case_Sensitive ? linebeg : copy)))
-+ if ( !(anchored_re && (linebeg <= Most_Beg || linebeg[-1] != '\n'))
-+ && (match = do_regexec(norm_line, length)) )
- {
-- *p = '\n';
-- if ( Most_Case_Sensitive == 0 )
-- {
-- /*
-- * Use offset into "copy" as idx to find point in
-- * real line.
-- */
-- return( GetOrigPtr(linebeg, match - copy) );
-- }
-- else
-- {
-- return( match );
-- }
-+ /*
-+ * Use offset into "norm_line" as idx to find point in
-+ * real line.
-+ */
-+ return( GetOrigPtr(linebeg, match - norm_line, lineend) );
- }
--
-- *p++ = '\n';
-- linebeg = p;
- }
-
- return(Most_Eob);
-@@ -475,23 +497,18 @@
- * pattern "key".
- */
-
--static unsigned char *back_search_region(unsigned char *beg,
-- unsigned char *end,
-- unsigned char *key)
-+static const unsigned char *
-+back_search_region(const unsigned char *beg,
-+ const unsigned char *end,
-+ const unsigned char *key)
- {
- #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
-- register unsigned char *p;
-- unsigned char *endp, /* end of line */
-- *lastmatch, /* last match in line */
-+ const unsigned char *p;
-+ const unsigned char *endp, /* end of line */
-+ *lastmatch, /* last match in line */
- *endprevline, /* end of line before this one */
- *match; /* ptr to matching string */
-- unsigned char savec; /* last char on line */
--
-- /*
-- * Compile "key" into an executable regular expression
-- */
-- if ( do_regcomp(key) == 0 )
-- return(Most_Eob);
-+ int anchored_re;
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+- exit 0 ;;
++ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+- # the processor, so we play safe by assuming i386.
+- echo i386-pc-msdosdjgpp
+- exit 0 ;;
++ # the processor, so we play safe by assuming i586.
++ # Note: whatever this is, it MUST be the same as what config.sub
++ # prints for the "djgpp" host, or else GDB configury will decide that
++ # this is a cross-build.
++ echo i586-pc-msdosdjgpp
++ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+- exit 0 ;;
++ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+- exit 0 ;;
++ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+- exit 0 ;;
++ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+- exit 0 ;;
++ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+- exit 0 ;;
++ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+- exit 0 ;;
++ exit ;;
+ M68*:*:R3V[5678]*:*)
+- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && echo i486-ncr-sysv4 && exit 0 ;;
++ && { echo i486-ncr-sysv4; exit; } ;;
++ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
++ OS_REL='.3'
++ test -r /etc/.relid \
++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+- exit 0 ;;
++ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
+- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
++ exit ;;
++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+- exit 0 ;;
++ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+- exit 0 ;;
++ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+@@ -1126,73 +1132,94 @@
+ else
+ echo ns32k-sni-sysv
+ fi
+- exit 0 ;;
++ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+- exit 0 ;;
++ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+- exit 0 ;;
++ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+- exit 0 ;;
++ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+- exit 0 ;;
++ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+- exit 0 ;;
++ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+- exit 0 ;;
++ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+- exit 0 ;;
++ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+- exit 0 ;;
++ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+- exit 0 ;;
++ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+- exit 0 ;;
++ exit ;;
++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
++ echo i586-pc-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
++ SX-7:SUPER-UX:*:*)
++ echo sx7-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8:SUPER-UX:*:*)
++ echo sx8-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8R:SUPER-UX:*:*)
++ echo sx8r-nec-superux${UNAME_RELEASE}
++ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+- *86) UNAME_PROCESSOR=i686 ;;
++ i386)
++ eval $set_cc_for_build
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ UNAME_PROCESSOR="x86_64"
++ fi
++ fi ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+@@ -1200,25 +1227,25 @@
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+- exit 0 ;;
++ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+- exit 0 ;;
++ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+- exit 0 ;;
++ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+@@ -1229,41 +1256,50 @@
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+- exit 0 ;;
++ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+- exit 0 ;;
++ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+- exit 0 ;;
++ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+- exit 0 ;;
++ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+- exit 0 ;;
++ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+- exit 0 ;;
++ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+- exit 0 ;;
++ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+- exit 0 ;;
++ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+- A*) echo alpha-dec-vms && exit 0 ;;
+- I*) echo ia64-dec-vms && exit 0 ;;
+- V*) echo vax-dec-vms && exit 0 ;;
++ A*) echo alpha-dec-vms ; exit ;;
++ I*) echo ia64-dec-vms ; exit ;;
++ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+- exit 0 ;;
++ exit ;;
++ i*86:skyos:*:*)
++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
++ exit ;;
++ i*86:rdos:*:*)
++ echo ${UNAME_MACHINE}-pc-rdos
++ exit ;;
++ i*86:AROS:*:*)
++ echo ${UNAME_MACHINE}-pc-aros
++ exit ;;
+ esac
+
+ #echo '(No uname command or uname output not recognized.)' 1>&2
+@@ -1295,7 +1331,7 @@
+ #endif
- /*
- * Starting from the end of the buffer, break the buffer into lines
-@@ -501,84 +518,60 @@
- * and isn't that what we want to do in a reverse search.
- */
- endp = end;
-- lastmatch = Most_Eob;
-- while ( 1 ) /* forever loop */
-- {
-- if ( (endp < beg) )
-- return(Most_Eob); /* Reach start of buffer, no match */
-+ endprevline = end;
-+ match = Most_Eob;
+ #if defined (__arm) && defined (__acorn) && defined (__unix)
+- printf ("arm-acorn-riscix"); exit (0);
++ printf ("arm-acorn-riscix\n"); exit (0);
+ #endif
-- /* Find the real end of current line */
-- if ( (p = (unsigned char *)strchr((char *)endp, '\n')) != NULL )
-- endp = p;
+ #if defined (hp300) && !defined (hpux)
+@@ -1384,11 +1420,12 @@
+ }
+ EOF
+
+-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
++ { echo "$SYSTEM_NAME"; exit; }
+
+ # Apollos put the system type in the environment.
+
+-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+ # Convex versions that predate uname can use getsysinfo(1)
+
+@@ -1397,22 +1434,22 @@
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+- exit 0 ;;
++ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ c34*)
+ echo c34-convex-bsd
+- exit 0 ;;
++ exit ;;
+ c38*)
+ echo c38-convex-bsd
+- exit 0 ;;
++ exit ;;
+ c4*)
+ echo c4-convex-bsd
+- exit 0 ;;
++ exit ;;
+ esac
+ fi
+
+@@ -1423,9 +1460,9 @@
+ the operating system you are using. It is advised that you
+ download the most up to date version of the config scripts from
+
+- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+ and
+- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+ If the version you run ($0) is already up to date, please
+ send the following data and any information you think might be
+--- most-5.0.0a.orig/autoconf/config.sub
++++ most-5.0.0a/autoconf/config.sub
+@@ -1,9 +1,10 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
++# Free Software Foundation, Inc.
+
+-timestamp='2005-04-22'
++timestamp='2010-01-22'
+
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -21,22 +22,26 @@
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330,
+-# Boston, MA 02111-1307, USA.
-
-- savec = *endp;
-- *endp = '\0'; /* terminate line with NULL */
-+ /* Find out whether the regexp attempts to match a line boundary.
-+ * In this case, only a match on the full line should be attempted.
-+ */
-+ anchored_re = key[strlen((const char *) key)-1] == '$';
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
++#
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
-+ while ( endp > beg )
-+ {
- /* Find the beginning of line */
- for ( p = endp - 1 ; (p >= beg) && (*p != '\n') ; p-- )
- {
- }
-
-+ if ( p < beg )
-+ break;
+
- endprevline = p;
-
-- p++; /* point to 1st char after newline */
-+ /*
-+ * Quick sanity check for end of line archored tests. If last
-+ * char of key is "$", then the character after endp (which
-+ * must be within the buffer), must be a "\n".
-+ */
-+ if ( anchored_re && endp < Most_Eob && endp[0] != '\n' )
-+ {
-+ endp = p;
-+ continue;
-+ }
-
- /*
- * Keep searching forward in this line till no more matches
- */
-- if ( Most_Case_Sensitive == 0 ) /* i.e. case insensitive */
-+ do
- {
-- unsigned char *copy; /* ptr to upper case copy */
-- unsigned char *savecopy; /* copy of "copy" */
--
-- copy = StrUpCaseCopy(p);
-- if ( copy == (unsigned char *)NULL )
-- return(Most_Eob);
-+ lastmatch = match;
-
-- savecopy = copy;
--
-- /*
-- * Quick sanity check for beginning of line archored tests.
-- * Must be at start of line.
-- */
-- while ( ((*key != '^') || (copy == savecopy))
-- && (match = do_regexec(copy)) )
-- {
-- if ( GetOrigPtr(p, match - savecopy) > end )
-- break;
-- lastmatch = match;
-- if ( *lastmatch == '\0' ) /* key must be "$" or "^" */
-- break;
-- copy = lastmatch + 1; /* character after match */
-- }
-+ if (Most_UTF8_Mode)
-+ p = SLutf8_skip_char((unsigned char*) p, (unsigned char*) endp);
-+ else
-+ p++;
-
-- if ( lastmatch != Most_Eob ) /* found a match */
-- lastmatch = GetOrigPtr(p, lastmatch - savecopy);
-- }
-- else
-- {
-- /*
-- * Quick sanity check for beginning of line archored tests.
-- * Must be at start of buffer or start of line
-- */
-- while ( ( (*key != '^') || (p == endprevline + 1) )
-- && (match = do_regexec(p)) )
-- {
-- if ( match > end )
-- break;
-- lastmatch = match;
-- if ( *lastmatch == '\0' ) /* key must be "$" or "^" */
-- break;
-- p = lastmatch + 1; /* character after match */
-- }
-+ match = forw_search_region(p, endp, key);
- }
-+ while ( match <= endp );
-
-- *endp = savec;
- if ( lastmatch != Most_Eob ) /* found a match */
- return(lastmatch);
-
- endp = endprevline;
- }
+ # Please send patches to <config-patches@gnu.org>. Submit a context
+-# diff and a properly formatted ChangeLog entry.
++# diff and a properly formatted GNU ChangeLog entry.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+ # If it is invalid, we print an error message on stderr and exit with code 1.
+ # Otherwise, we print the canonical config type on stdout and succeed.
+
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
-+ return(Most_Eob); /* Reached start of buffer, no match */
- #else
- char ch, char1, work[256];
- unsigned char *pos;
-@@ -670,15 +663,15 @@
- #endif /* HAVE_V8_REGCOMP || SLANG_REGEXP */
- }
-
--int most_search(unsigned char *from, int repeat, int *col)
-+long long most_search(const unsigned char *from, int repeat, long long *col)
- {
- /* return the line match was found as well as line number,
- * search from i on; assume that line_array match the i so we need
- * no initial lookup */
-
-- int test, save_line, the_col, row, s_len;
-+ long long test, save_line, the_col, row, s_len;
- char string[300];
-- unsigned char *pos;
-+ const unsigned char *pos;
- unsigned int save_ofs;
- unsigned int found_ofs;
-
-@@ -687,7 +680,10 @@
- save_line = Most_C_Line;
- found_ofs = Most_Eob - Most_Beg;
- *col = 0;
-- s_len = strlen (Most_Search_Str);
-+ if (Most_UTF8_Mode)
-+ s_len = SLutf8_strlen (Most_Search_Str, 0);
-+ else
-+ s_len = strlen ((char *) Most_Search_Str);
- pos = from;
-
- if (*Most_Search_Str)
---- most-4.10.2.orig/src/search.h
-+++ most-4.10.2/src/search.h
-@@ -6,7 +6,7 @@
- extern int Most_Case_Sensitive;
- extern int Most_Search_Dir;
- #define MOST_SEARCH_BUF_LEN 256
--extern char Most_Search_Str[MOST_SEARCH_BUF_LEN];
--extern int most_search(unsigned char *, int, int *);
-+extern unsigned char Most_Search_Str[MOST_SEARCH_BUF_LEN];
-+extern long long most_search(const unsigned char *, int, long long *);
- #endif
-
---- most-4.10.2.orig/src/window.c
-+++ most-4.10.2/src/window.c
-@@ -48,10 +48,11 @@
-
- Most_Window_Type *Most_Win;
- Most_Window_Type *Most_Top_Win;
--int Most_Top_Line; /* row number of top window */
--int Most_Curs_Row;
--int Most_Curs_Col;
--int Most_Column = 1;
-+long long Most_Top_Line; /* row number of top window */
-+long long Most_Curs_Row;
-+long long Most_Curs_Col;
-+/* The leftmost visible column. */
-+long long Most_Column = 1;
- int Most_Restore_Width_To = 0;
- char Most_Mini_Buf[256];
- unsigned long Most_Curs_Offset;
-@@ -156,7 +157,7 @@
- SLsmg_write_nchars (buf + point, len - point);
- if (col < SLtt_Screen_Cols)
- break;
-- buf++; point--; len--; /* FIXME for UTF-8 */
-+ buf++; point--; len--;
- }
- SLsmg_erase_eol ();
- SLsmg_gotorc (SLtt_Screen_Rows - 1, col);
-@@ -227,6 +228,8 @@
- {
- SLang_RLine_Info_Type *rli;
- unsigned int flags = SL_RLINE_BLINK_MATCH;
-+ if (Most_UTF8_Mode)
-+ flags |= SL_RLINE_UTF8_MODE;
-
- if (NULL == (rli = SLrline_open (SLtt_Screen_Cols, flags)))
- return NULL;
-@@ -258,7 +261,7 @@
-
- /* do not use default. The up arrow can always get it back. */
- if ((what != NULL)
-- && (*what) && (what != Most_Search_Str))
-+ && (*what) && (what != (char *) Most_Search_Str))
- {
- if (-1 == SLrline_set_line (Most_RLI, what))
- return -1;
-@@ -593,7 +596,8 @@
- unsigned int num_chars;
- unsigned int field_width, info_len;
- unsigned char *eob;
-- int r, x;
-+ int r;
-+ long long x;
-
- eob = Most_Eob;
- #if MOST_HAS_MMAP
-@@ -601,20 +605,20 @@
- eob = Most_Beg + Most_Buf->mmap_size;
- #endif
-
-- if (eob == Most_Beg) x = 100;
-+ if (eob == Most_Beg) x = 100LL;
- else
- {
-- x = Most_C_Offset * 100;
-+ x = Most_C_Offset * 100LL;
- x = x / (eob - Most_Beg);
- }
-
- if (Most_C_Line + (Most_Win->bot - Most_Win->top + 1) >= Most_Num_Lines)
-- x = 100;
-+ x = 100LL;
-
- /* for files with end of file above the bottom row (due to window manipulations) */
-- if (x > 100) x = 100;
-+ if (x > 100LL) x = 100LL;
-
-- sprintf (info, "(%d,%d) %d%%", Most_C_Line, Most_Column, x);
-+ sprintf (info, "(%lld,%lld) %d%%", Most_C_Line, Most_Column, (int)x);
-
- r = Most_Win->bot + 1;
- most_goto_rc (r,1);
---- most-4.10.2.orig/src/window.h
-+++ most-4.10.2/src/window.h
-@@ -5,11 +5,11 @@
- typedef struct _Most_Window_Type
- {
- unsigned long top_offset; /* offset of top line of window from bob */
-- int beg_line; /* line number of top */
-- int curs_line; /* line number of curs pos */
-- int curs_col; /* column number of curs pos */
-+ long long beg_line; /* line number of top */
-+ long long curs_line; /* line number of curs pos */
-+ long long curs_col; /* column number of curs pos */
- unsigned long curs_offset; /* pos of cursor from bob*/
-- int col; /* column offset */
-+ long long col; /* column offset */
- int n_lines; /* number of lines of buffer (mode dependent) */
- int top; /* screen location of top */
- int bot; /* screen location of bot */
-@@ -29,9 +29,9 @@
- extern Most_Window_Type *Most_Win;
- extern Most_Window_Type *Most_Top_Win;
- extern unsigned long Most_Curs_Offset;
--extern int Most_Column;
--extern int Most_Curs_Row;
--extern int Most_Curs_Col;
-+extern long long Most_Column;
-+extern long long Most_Curs_Row;
-+extern long long Most_Curs_Col;
- #define MOST_MINI_BUF_LEN 256
- extern char Most_Mini_Buf[MOST_MINI_BUF_LEN];
- extern int Most_Selective_Display;
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+ # that are meaningful with *any* GNU software.
+@@ -70,8 +75,9 @@
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+-Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
++Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -83,11 +89,11 @@
+ while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+- echo "$timestamp" ; exit 0 ;;
++ echo "$timestamp" ; exit ;;
+ --version | -v )
+- echo "$version" ; exit 0 ;;
++ echo "$version" ; exit ;;
+ --help | --h* | -h )
+- echo "$usage"; exit 0 ;;
++ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+@@ -99,7 +105,7 @@
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+- exit 0;;
++ exit ;;
+
+ * )
+ break ;;
+@@ -118,8 +124,10 @@
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
++ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
++ kopensolaris*-gnu* | \
++ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+@@ -145,10 +153,13 @@
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+- -apple | -axis | -knuth | -cray)
++ -apple | -axis | -knuth | -cray | -microblaze)
+ os=
+ basic_machine=$1
+ ;;
++ -bluegene*)
++ os=-cnk
++ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+@@ -170,6 +181,10 @@
+ -hiux*)
+ os=-hiuxwe2
+ ;;
++ -sco6)
++ os=-sco5v6
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+@@ -186,6 +201,10 @@
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
++ -sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+@@ -230,23 +249,28 @@
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+- | fr30 | frv \
++ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
++ | lm32 \
++ | m32c | m32r | m32rle | m68000 | m68k | m88k \
++ | maxq | mb | microblaze | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+- | mips64vr | mips64vrel \
++ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
++ | mips64r5900 | mips64r5900el \
++ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
++ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+@@ -255,31 +279,40 @@
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
++ | moxie \
++ | mt \
+ | msp430 \
++ | nios | nios2 \
+ | ns16k | ns32k \
+- | openrisc | or32 \
++ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
++ | rx \
++ | score \
++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+- | sparcv8 | sparcv9 | sparcv9b \
+- | strongarm \
++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
++ | spu | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
++ | ubicom32 \
+ | v850 | v850e \
+ | we32k \
+- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+- | z8k)
++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+- m6811 | m68hc11 | m6812 | m68hc12)
++ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
++ ms1)
++ basic_machine=mt-unknown
++ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+@@ -299,28 +332,32 @@
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+- | avr-* \
++ | avr-* | avr32-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+- | m32r-* | m32rle-* \
++ | lm32-* \
++ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+- | m88110-* | m88k-* | maxq-* | mcore-* \
++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+- | mips64vr-* | mips64vrel-* \
++ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
++ | mips64r5900-* | mips64r5900el-* \
++ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
++ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+@@ -329,27 +366,35 @@
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
++ | mt-* \
+ | msp430-* \
++ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+- | romp-* | rs6000-* \
+- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
++ | romp-* | rs6000-* | rx-* \
++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++ | tile-* | tilegx-* \
+ | tron-* \
++ | ubicom32-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+- | xstormy16-* | xtensa-* \
++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+- | z8k-*)
++ | z8k-* | z80-*)
++ ;;
++ # Recognize the basic CPU types without company name, with glob match.
++ xtensa*)
++ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+@@ -413,6 +458,10 @@
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
++ aros)
++ basic_machine=i386-pc
++ os=-aros
++ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+@@ -421,10 +470,26 @@
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
++ blackfin)
++ basic_machine=bfin-unknown
++ os=-linux
++ ;;
++ blackfin-*)
++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
++ bluegene*)
++ basic_machine=powerpc-ibm
++ os=-cnk
++ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
++ cegcc)
++ basic_machine=arm-unknown
++ os=-cegcc
++ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+@@ -453,8 +518,8 @@
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+- cr16c)
+- basic_machine=cr16c-unknown
++ cr16)
++ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+@@ -492,6 +557,10 @@
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
++ dicos)
++ basic_machine=i686-pc
++ os=-dicos
++ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+@@ -646,6 +715,14 @@
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
++ m68knommu)
++ basic_machine=m68k-unknown
++ os=-linux
++ ;;
++ m68knommu-*)
++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+@@ -657,10 +734,17 @@
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
++ microblaze)
++ basic_machine=microblaze-xilinx
++ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
++ mingw32ce)
++ basic_machine=arm-unknown
++ os=-mingw32ce
++ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+@@ -686,6 +770,9 @@
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
++ ms1-*)
++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
++ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+@@ -761,9 +848,8 @@
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+- or32 | or32-*)
++ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+- os=-coff
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+@@ -785,6 +871,14 @@
+ basic_machine=i860-intel
+ os=-osf
+ ;;
++ parisc)
++ basic_machine=hppa-unknown
++ os=-linux
++ ;;
++ parisc-*)
++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+@@ -794,6 +888,12 @@
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
++ pc98)
++ basic_machine=i386-pc
++ ;;
++ pc98-*)
++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+@@ -850,6 +950,10 @@
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
++ rdos)
++ basic_machine=i386-pc
++ os=-rdos
++ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+@@ -876,6 +980,10 @@
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
++ sde)
++ basic_machine=mipsisa32-sde
++ os=-elf
++ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+@@ -887,6 +995,9 @@
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
++ sh5el)
++ basic_machine=sh5le-unknown
++ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+@@ -976,6 +1087,15 @@
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
++ # This must be matched before tile*.
++ tilegx*)
++ basic_machine=tilegx-unknown
++ os=-linux-gnu
++ ;;
++ tile*)
++ basic_machine=tile-unknown
++ os=-linux-gnu
++ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+@@ -1051,6 +1171,10 @@
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
++ z80-*-coff)
++ basic_machine=z80-unknown
++ os=-sim
++ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+@@ -1089,13 +1213,10 @@
+ we32k)
+ basic_machine=we32k-att
+ ;;
+- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+- sh64)
+- basic_machine=sh64-unknown
+- ;;
+- sparc | sparcv8 | sparcv9 | sparcv9b)
++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+@@ -1142,6 +1263,9 @@
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
++ -auroraux)
++ os=-auroraux
++ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+@@ -1162,26 +1286,30 @@
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
++ | -sym* | -kopensolaris* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+- | -aos* \
++ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
++ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+- | -chorusos* | -chorusrdb* \
++ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+@@ -1199,7 +1327,7 @@
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+@@ -1311,6 +1439,11 @@
+ -zvmoe)
+ os=-zvmoe
+ ;;
++ -dicos*)
++ os=-dicos
++ ;;
++ -nacl*)
++ ;;
+ -none)
+ ;;
+ *)
+@@ -1333,6 +1466,12 @@
+ # system, and we'll never get to this point.
+
+ case $basic_machine in
++ score-*)
++ os=-elf
++ ;;
++ spu-*)
++ os=-elf
++ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+@@ -1342,9 +1481,9 @@
+ arm*-semi)
+ os=-aout
+ ;;
+- c4x-* | tic4x-*)
+- os=-coff
+- ;;
++ c4x-* | tic4x-*)
++ os=-coff
++ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+@@ -1370,6 +1509,9 @@
+ m68*-cisco)
+ os=-aout
+ ;;
++ mep-*)
++ os=-elf
++ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+@@ -1388,6 +1530,9 @@
+ *-be)
+ os=-beos
+ ;;
++ *-haiku)
++ os=-haiku
++ ;;
+ *-ibm)
+ os=-aix
+ ;;
+@@ -1496,7 +1641,7 @@
+ -sunos*)
+ vendor=sun
+ ;;
+- -aix*)
++ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+@@ -1559,7 +1704,7 @@
+ esac
+
+ echo $basic_machine$os
+-exit 0
++exit
+
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)