Fossil SCM

Receive updates from trunk.

andybradford 2014-07-22 08:03 UTC cluster-changes merge
Commit 5c6891b2ab10c4d06417ea76327010bd452b005b
+1 -1
--- Makefile.in
+++ Makefile.in
@@ -37,11 +37,11 @@
3737
# care about testing the end result, this can be blank.
3838
#
3939
TCLSH = tclsh
4040
4141
LIB = @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@
42
-TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H
42
+TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H -D_HAVE_SQLITE_CONFIG_H
4343
INSTALLDIR = $(DESTDIR)@prefix@/bin
4444
USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@
4545
4646
include $(SRCDIR)/main.mk
4747
4848
--- Makefile.in
+++ Makefile.in
@@ -37,11 +37,11 @@
37 # care about testing the end result, this can be blank.
38 #
39 TCLSH = tclsh
40
41 LIB = @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@
42 TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H
43 INSTALLDIR = $(DESTDIR)@prefix@/bin
44 USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@
45
46 include $(SRCDIR)/main.mk
47
48
--- Makefile.in
+++ Makefile.in
@@ -37,11 +37,11 @@
37 # care about testing the end result, this can be blank.
38 #
39 TCLSH = tclsh
40
41 LIB = @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@
42 TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H -D_HAVE_SQLITE_CONFIG_H
43 INSTALLDIR = $(DESTDIR)@prefix@/bin
44 USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@
45
46 include $(SRCDIR)/main.mk
47
48
+2
--- auto.def
+++ auto.def
@@ -261,10 +261,12 @@
261261
if {[string match *mingw* [get-define host]]} {
262262
define-append LIBS -lwsock32
263263
}
264264
}
265265
cc-check-function-in-lib iconv iconv
266
+cc-check-functions utime
267
+cc-check-functions usleep
266268
267269
# Check for getloadavg(), and if it doesn't exist, define FOSSIL_OMIT_LOAD_AVERAGE
268270
if {![cc-check-functions getloadavg]} {
269271
define FOSSIL_OMIT_LOAD_AVERAGE 1
270272
msg-result "Load average support unavailable"
271273
--- auto.def
+++ auto.def
@@ -261,10 +261,12 @@
261 if {[string match *mingw* [get-define host]]} {
262 define-append LIBS -lwsock32
263 }
264 }
265 cc-check-function-in-lib iconv iconv
 
 
266
267 # Check for getloadavg(), and if it doesn't exist, define FOSSIL_OMIT_LOAD_AVERAGE
268 if {![cc-check-functions getloadavg]} {
269 define FOSSIL_OMIT_LOAD_AVERAGE 1
270 msg-result "Load average support unavailable"
271
--- auto.def
+++ auto.def
@@ -261,10 +261,12 @@
261 if {[string match *mingw* [get-define host]]} {
262 define-append LIBS -lwsock32
263 }
264 }
265 cc-check-function-in-lib iconv iconv
266 cc-check-functions utime
267 cc-check-functions usleep
268
269 # Check for getloadavg(), and if it doesn't exist, define FOSSIL_OMIT_LOAD_AVERAGE
270 if {![cc-check-functions getloadavg]} {
271 define FOSSIL_OMIT_LOAD_AVERAGE 1
272 msg-result "Load average support unavailable"
273
--- autosetup/config.guess
+++ autosetup/config.guess
@@ -1,44 +1,38 @@
11
#! /bin/sh
22
# Attempt to guess a canonical system name.
3
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5
-# Free Software Foundation, Inc.
3
+# Copyright 1992-2014 Free Software Foundation, Inc.
64
7
-timestamp='2010-09-24'
5
+timestamp='2014-03-23'
86
97
# This file is free software; you can redistribute it and/or modify it
108
# under the terms of the GNU General Public License as published by
11
-# the Free Software Foundation; either version 2 of the License, or
9
+# the Free Software Foundation; either version 3 of the License, or
1210
# (at your option) any later version.
1311
#
1412
# This program is distributed in the hope that it will be useful, but
1513
# WITHOUT ANY WARRANTY; without even the implied warranty of
1614
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1715
# General Public License for more details.
1816
#
1917
# You should have received a copy of the GNU General Public License
20
-# along with this program; if not, write to the Free Software
21
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
22
-# 02110-1301, USA.
18
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
2319
#
2420
# As a special exception to the GNU General Public License, if you
2521
# distribute this file as part of a program that contains a
2622
# configuration script generated by Autoconf, you may include it under
27
-# the same distribution terms that you use for the rest of that program.
28
-
29
-
30
-# Originally written by Per Bothner. Please send patches (context
31
-# diff format) to <[email protected]> and include a ChangeLog
32
-# entry.
33
-#
34
-# This script attempts to guess a canonical system name similar to
35
-# config.sub. If it succeeds, it prints the system name on stdout, and
36
-# exits with 0. Otherwise, it exits with 1.
23
+# the same distribution terms that you use for the rest of that
24
+# program. This Exception is an additional permission under section 7
25
+# of the GNU General Public License, version 3 ("GPLv3").
26
+#
27
+# Originally written by Per Bothner.
3728
#
3829
# You can get the latest version of this script from:
3930
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
31
+#
32
+# Please send patches with a ChangeLog entry to [email protected].
33
+
4034
4135
me=`echo "$0" | sed -e 's,.*/,,'`
4236
4337
usage="\
4438
Usage: $0 [OPTION]
@@ -54,13 +48,11 @@
5448
5549
version="\
5650
GNU config.guess ($timestamp)
5751
5852
Originally written by Per Bothner.
59
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
60
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
61
-Software Foundation, Inc.
53
+Copyright 1992-2014 Free Software Foundation, Inc.
6254
6355
This is free software; see the source for copying conditions. There is NO
6456
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
6557
6658
help="
@@ -90,11 +82,11 @@
9082
if test $# != 0; then
9183
echo "$me: too many arguments$help" >&2
9284
exit 1
9385
fi
9486
95
-trap 'exit 1' HUP INT TERM
87
+trap 'exit 1' 1 2 15
9688
9789
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
9890
# compiler to aid in system detection is discouraged as it requires
9991
# temporary files to be created and, as you can see below, it is a
10092
# headache to deal with in a portable fashion.
@@ -104,11 +96,11 @@
10496
10597
# Portable tmp directory creation inspired by the Autoconf team.
10698
10799
set_cc_for_build='
108100
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
109
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
101
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
110102
: ${TMPDIR=/tmp} ;
111103
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
112104
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
113105
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
114106
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -137,17 +129,38 @@
137129
138130
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
139131
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
140132
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
141133
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
134
+
135
+case "${UNAME_SYSTEM}" in
136
+Linux|GNU|GNU/*)
137
+ # If the system lacks a compiler, then just pick glibc.
138
+ # We could probably try harder.
139
+ LIBC=gnu
140
+
141
+ eval $set_cc_for_build
142
+ cat <<-EOF > $dummy.c
143
+ #include <features.h>
144
+ #if defined(__UCLIBC__)
145
+ LIBC=uclibc
146
+ #elif defined(__dietlibc__)
147
+ LIBC=dietlibc
148
+ #else
149
+ LIBC=gnu
150
+ #endif
151
+ EOF
152
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
153
+ ;;
154
+esac
142155
143156
# Note: order is significant - the case branches are not exclusive.
144157
145158
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
146159
*:NetBSD:*:*)
147160
# NetBSD (nbsd) targets should (where applicable) match one or
148
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
161
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
149162
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
150163
# switched to ELF, *-*-netbsd* would select the old
151164
# object file format. This provides both forward
152165
# compatibility and a consistent mechanism for selecting the
153166
# object file format.
@@ -179,11 +192,11 @@
179192
else
180193
os=netbsdelf
181194
fi
182195
;;
183196
*)
184
- os=netbsd
197
+ os=netbsd
185198
;;
186199
esac
187200
# The OS release
188201
# Debian GNU/NetBSD machines have a different userland, and
189202
# thus, need a distinct triplet. However, they do not need
@@ -200,10 +213,14 @@
200213
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
201214
# contains redundant information, the shorter form:
202215
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
203216
echo "${machine}-${os}${release}"
204217
exit ;;
218
+ *:Bitrig:*:*)
219
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
220
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
221
+ exit ;;
205222
*:OpenBSD:*:*)
206223
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
207224
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
208225
exit ;;
209226
*:ekkoBSD:*:*)
@@ -222,11 +239,11 @@
222239
case $UNAME_RELEASE in
223240
*4.0)
224241
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
225242
;;
226243
*5.*)
227
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
244
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
228245
;;
229246
esac
230247
# According to Compaq, /usr/sbin/psrinfo has been available on
231248
# OSF/1 and Tru64 systems produced since 1995. I hope that
232249
# covers most systems running today. This code pipes the CPU
@@ -268,11 +285,14 @@
268285
# A Vn.n version is a released version.
269286
# A Tn.n version is a released field test version.
270287
# A Xn.n version is an unreleased experimental baselevel.
271288
# 1.2 uses "1.2" for uname -r.
272289
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
273
- exit ;;
290
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
291
+ exitcode=$?
292
+ trap '' 0
293
+ exit $exitcode ;;
274294
Alpha\ *:Windows_NT*:*)
275295
# How do we know it's Interix rather than the generic POSIX subsystem?
276296
# Should we change UNAME_MACHINE based on the output of uname instead
277297
# of the specific Alpha model?
278298
echo alpha-pc-interix
@@ -294,16 +314,16 @@
294314
exit ;;
295315
*:z/VM:*:*)
296316
echo s390-ibm-zvmoe
297317
exit ;;
298318
*:OS400:*:*)
299
- echo powerpc-ibm-os400
319
+ echo powerpc-ibm-os400
300320
exit ;;
301321
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
302322
echo arm-acorn-riscix${UNAME_RELEASE}
303323
exit ;;
304
- arm:riscos:*:*|arm:RISCOS:*:*)
324
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
305325
echo arm-unknown-riscos
306326
exit ;;
307327
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
308328
echo hppa1.1-hitachi-hiuxmpp
309329
exit ;;
@@ -393,27 +413,27 @@
393413
# to the lowercase version "mint" (or "freemint"). Finally
394414
# the system name "TOS" denotes a system which is actually not
395415
# MiNT. But MiNT is downward compatible to TOS, so this should
396416
# be no problem.
397417
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
398
- echo m68k-atari-mint${UNAME_RELEASE}
418
+ echo m68k-atari-mint${UNAME_RELEASE}
399419
exit ;;
400420
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
401421
echo m68k-atari-mint${UNAME_RELEASE}
402
- exit ;;
422
+ exit ;;
403423
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
404
- echo m68k-atari-mint${UNAME_RELEASE}
424
+ echo m68k-atari-mint${UNAME_RELEASE}
405425
exit ;;
406426
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
407
- echo m68k-milan-mint${UNAME_RELEASE}
408
- exit ;;
427
+ echo m68k-milan-mint${UNAME_RELEASE}
428
+ exit ;;
409429
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
410
- echo m68k-hades-mint${UNAME_RELEASE}
411
- exit ;;
430
+ echo m68k-hades-mint${UNAME_RELEASE}
431
+ exit ;;
412432
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
413
- echo m68k-unknown-mint${UNAME_RELEASE}
414
- exit ;;
433
+ echo m68k-unknown-mint${UNAME_RELEASE}
434
+ exit ;;
415435
m68k:machten:*:*)
416436
echo m68k-apple-machten${UNAME_RELEASE}
417437
exit ;;
418438
powerpc:machten:*:*)
419439
echo powerpc-apple-machten${UNAME_RELEASE}
@@ -479,12 +499,12 @@
479499
exit ;;
480500
m88k:*:3*:R3*)
481501
echo m88k-motorola-sysv3
482502
exit ;;
483503
AViiON:dgux:*:*)
484
- # DG/UX returns AViiON for all architectures
485
- UNAME_PROCESSOR=`/usr/bin/uname -p`
504
+ # DG/UX returns AViiON for all architectures
505
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
486506
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
487507
then
488508
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
489509
[ ${TARGET_BINARY_INTERFACE}x = x ]
490510
then
@@ -493,11 +513,11 @@
493513
echo m88k-dg-dguxbcs${UNAME_RELEASE}
494514
fi
495515
else
496516
echo i586-dg-dgux${UNAME_RELEASE}
497517
fi
498
- exit ;;
518
+ exit ;;
499519
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
500520
echo m88k-dolphin-sysv3
501521
exit ;;
502522
M88*:*:R3*:*)
503523
# Delta 88k system running SVR3
@@ -593,56 +613,56 @@
593613
9000/31? ) HP_ARCH=m68000 ;;
594614
9000/[34]?? ) HP_ARCH=m68k ;;
595615
9000/[678][0-9][0-9])
596616
if [ -x /usr/bin/getconf ]; then
597617
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
598
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
599
- case "${sc_cpu_version}" in
600
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
601
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
602
- 532) # CPU_PA_RISC2_0
603
- case "${sc_kernel_bits}" in
604
- 32) HP_ARCH="hppa2.0n" ;;
605
- 64) HP_ARCH="hppa2.0w" ;;
618
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
619
+ case "${sc_cpu_version}" in
620
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
621
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
622
+ 532) # CPU_PA_RISC2_0
623
+ case "${sc_kernel_bits}" in
624
+ 32) HP_ARCH="hppa2.0n" ;;
625
+ 64) HP_ARCH="hppa2.0w" ;;
606626
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
607
- esac ;;
608
- esac
627
+ esac ;;
628
+ esac
609629
fi
610630
if [ "${HP_ARCH}" = "" ]; then
611631
eval $set_cc_for_build
612
- sed 's/^ //' << EOF >$dummy.c
613
-
614
- #define _HPUX_SOURCE
615
- #include <stdlib.h>
616
- #include <unistd.h>
617
-
618
- int main ()
619
- {
620
- #if defined(_SC_KERNEL_BITS)
621
- long bits = sysconf(_SC_KERNEL_BITS);
622
- #endif
623
- long cpu = sysconf (_SC_CPU_VERSION);
624
-
625
- switch (cpu)
626
- {
627
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
628
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
629
- case CPU_PA_RISC2_0:
630
- #if defined(_SC_KERNEL_BITS)
631
- switch (bits)
632
- {
633
- case 64: puts ("hppa2.0w"); break;
634
- case 32: puts ("hppa2.0n"); break;
635
- default: puts ("hppa2.0"); break;
636
- } break;
637
- #else /* !defined(_SC_KERNEL_BITS) */
638
- puts ("hppa2.0"); break;
639
- #endif
640
- default: puts ("hppa1.0"); break;
641
- }
642
- exit (0);
643
- }
632
+ sed 's/^ //' << EOF >$dummy.c
633
+
634
+ #define _HPUX_SOURCE
635
+ #include <stdlib.h>
636
+ #include <unistd.h>
637
+
638
+ int main ()
639
+ {
640
+ #if defined(_SC_KERNEL_BITS)
641
+ long bits = sysconf(_SC_KERNEL_BITS);
642
+ #endif
643
+ long cpu = sysconf (_SC_CPU_VERSION);
644
+
645
+ switch (cpu)
646
+ {
647
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
648
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
649
+ case CPU_PA_RISC2_0:
650
+ #if defined(_SC_KERNEL_BITS)
651
+ switch (bits)
652
+ {
653
+ case 64: puts ("hppa2.0w"); break;
654
+ case 32: puts ("hppa2.0n"); break;
655
+ default: puts ("hppa2.0"); break;
656
+ } break;
657
+ #else /* !defined(_SC_KERNEL_BITS) */
658
+ puts ("hppa2.0"); break;
659
+ #endif
660
+ default: puts ("hppa1.0"); break;
661
+ }
662
+ exit (0);
663
+ }
644664
EOF
645665
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
646666
test -z "$HP_ARCH" && HP_ARCH=hppa
647667
fi ;;
648668
esac
@@ -729,26 +749,26 @@
729749
parisc*:Lites*:*:*)
730750
echo hppa1.1-hp-lites
731751
exit ;;
732752
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
733753
echo c1-convex-bsd
734
- exit ;;
754
+ exit ;;
735755
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
736756
if getsysinfo -f scalar_acc
737757
then echo c32-convex-bsd
738758
else echo c2-convex-bsd
739759
fi
740
- exit ;;
760
+ exit ;;
741761
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
742762
echo c34-convex-bsd
743
- exit ;;
763
+ exit ;;
744764
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
745765
echo c38-convex-bsd
746
- exit ;;
766
+ exit ;;
747767
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
748768
echo c4-convex-bsd
749
- exit ;;
769
+ exit ;;
750770
CRAY*Y-MP:*:*:*)
751771
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
752772
exit ;;
753773
CRAY*[A-Z]90:*:*:*)
754774
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
@@ -768,18 +788,18 @@
768788
*:UNICOS/mp:*:*)
769789
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
770790
exit ;;
771791
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
772792
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
773
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
774
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
775
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
776
- exit ;;
793
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
794
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
795
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
796
+ exit ;;
777797
5000:UNIX_System_V:4.*:*)
778
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
779
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
780
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
798
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
799
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
800
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
781801
exit ;;
782802
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
783803
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
784804
exit ;;
785805
sparc*:BSD/OS:*:*)
@@ -787,37 +807,39 @@
787807
exit ;;
788808
*:BSD/OS:*:*)
789809
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
790810
exit ;;
791811
*:FreeBSD:*:*)
792
- case ${UNAME_MACHINE} in
793
- pc98)
794
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
812
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
813
+ case ${UNAME_PROCESSOR} in
795814
amd64)
796815
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
797816
*)
798
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
817
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
799818
esac
800819
exit ;;
801820
i*:CYGWIN*:*)
802821
echo ${UNAME_MACHINE}-pc-cygwin
803822
exit ;;
823
+ *:MINGW64*:*)
824
+ echo ${UNAME_MACHINE}-pc-mingw64
825
+ exit ;;
804826
*:MINGW*:*)
805827
echo ${UNAME_MACHINE}-pc-mingw32
806828
exit ;;
807
- i*:MSYS*:*)
808
- echo ${UNAME_MACHINE}-pc-msys
809
- exit ;;
829
+ *:MSYS*:*)
830
+ echo ${UNAME_MACHINE}-pc-msys
831
+ exit ;;
810832
i*:windows32*:*)
811
- # uname -m includes "-pc" on this system.
812
- echo ${UNAME_MACHINE}-mingw32
833
+ # uname -m includes "-pc" on this system.
834
+ echo ${UNAME_MACHINE}-mingw32
813835
exit ;;
814836
i*:PW*:*)
815837
echo ${UNAME_MACHINE}-pc-pw32
816838
exit ;;
817839
*:Interix*:*)
818
- case ${UNAME_MACHINE} in
840
+ case ${UNAME_MACHINE} in
819841
x86)
820842
echo i586-pc-interix${UNAME_RELEASE}
821843
exit ;;
822844
authenticamd | genuineintel | EM64T)
823845
echo x86_64-unknown-interix${UNAME_RELEASE}
@@ -850,74 +872,85 @@
850872
prep*:SunOS:5.*:*)
851873
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
852874
exit ;;
853875
*:GNU:*:*)
854876
# the GNU system
855
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
877
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
856878
exit ;;
857879
*:GNU/*:*:*)
858880
# other systems with GNU libc and userland
859
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
881
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
860882
exit ;;
861883
i*86:Minix:*:*)
862884
echo ${UNAME_MACHINE}-pc-minix
863885
exit ;;
886
+ aarch64:Linux:*:*)
887
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
888
+ exit ;;
889
+ aarch64_be:Linux:*:*)
890
+ UNAME_MACHINE=aarch64_be
891
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
892
+ exit ;;
864893
alpha:Linux:*:*)
865894
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
866895
EV5) UNAME_MACHINE=alphaev5 ;;
867896
EV56) UNAME_MACHINE=alphaev56 ;;
868897
PCA56) UNAME_MACHINE=alphapca56 ;;
869898
PCA57) UNAME_MACHINE=alphapca56 ;;
870899
EV6) UNAME_MACHINE=alphaev6 ;;
871900
EV67) UNAME_MACHINE=alphaev67 ;;
872901
EV68*) UNAME_MACHINE=alphaev68 ;;
873
- esac
902
+ esac
874903
objdump --private-headers /bin/sh | grep -q ld.so.1
875
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
876
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
904
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
905
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
906
+ exit ;;
907
+ arc:Linux:*:* | arceb:Linux:*:*)
908
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
877909
exit ;;
878910
arm*:Linux:*:*)
879911
eval $set_cc_for_build
880912
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
881913
| grep -q __ARM_EABI__
882914
then
883
- echo ${UNAME_MACHINE}-unknown-linux-gnu
915
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
884916
else
885
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
917
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
918
+ | grep -q __ARM_PCS_VFP
919
+ then
920
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
921
+ else
922
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
923
+ fi
886924
fi
887925
exit ;;
888926
avr32*:Linux:*:*)
889
- echo ${UNAME_MACHINE}-unknown-linux-gnu
927
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
890928
exit ;;
891929
cris:Linux:*:*)
892
- echo cris-axis-linux-gnu
930
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
893931
exit ;;
894932
crisv32:Linux:*:*)
895
- echo crisv32-axis-linux-gnu
933
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
896934
exit ;;
897935
frv:Linux:*:*)
898
- echo frv-unknown-linux-gnu
936
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
937
+ exit ;;
938
+ hexagon:Linux:*:*)
939
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
899940
exit ;;
900941
i*86:Linux:*:*)
901
- LIBC=gnu
902
- eval $set_cc_for_build
903
- sed 's/^ //' << EOF >$dummy.c
904
- #ifdef __dietlibc__
905
- LIBC=dietlibc
906
- #endif
907
-EOF
908
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
909
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
942
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
910943
exit ;;
911944
ia64:Linux:*:*)
912
- echo ${UNAME_MACHINE}-unknown-linux-gnu
945
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
913946
exit ;;
914947
m32r*:Linux:*:*)
915
- echo ${UNAME_MACHINE}-unknown-linux-gnu
948
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
916949
exit ;;
917950
m68*:Linux:*:*)
918
- echo ${UNAME_MACHINE}-unknown-linux-gnu
951
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
919952
exit ;;
920953
mips:Linux:*:* | mips64:Linux:*:*)
921954
eval $set_cc_for_build
922955
sed 's/^ //' << EOF >$dummy.c
923956
#undef CPU
@@ -932,71 +965,80 @@
932965
CPU=
933966
#endif
934967
#endif
935968
EOF
936969
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
937
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
970
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
938971
;;
939
- or32:Linux:*:*)
940
- echo or32-unknown-linux-gnu
972
+ openrisc*:Linux:*:*)
973
+ echo or1k-unknown-linux-${LIBC}
974
+ exit ;;
975
+ or32:Linux:*:* | or1k*:Linux:*:*)
976
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
941977
exit ;;
942978
padre:Linux:*:*)
943
- echo sparc-unknown-linux-gnu
979
+ echo sparc-unknown-linux-${LIBC}
944980
exit ;;
945981
parisc64:Linux:*:* | hppa64:Linux:*:*)
946
- echo hppa64-unknown-linux-gnu
982
+ echo hppa64-unknown-linux-${LIBC}
947983
exit ;;
948984
parisc:Linux:*:* | hppa:Linux:*:*)
949985
# Look for CPU level
950986
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
951
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
952
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
953
- *) echo hppa-unknown-linux-gnu ;;
987
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
988
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
989
+ *) echo hppa-unknown-linux-${LIBC} ;;
954990
esac
955991
exit ;;
956992
ppc64:Linux:*:*)
957
- echo powerpc64-unknown-linux-gnu
993
+ echo powerpc64-unknown-linux-${LIBC}
958994
exit ;;
959995
ppc:Linux:*:*)
960
- echo powerpc-unknown-linux-gnu
996
+ echo powerpc-unknown-linux-${LIBC}
997
+ exit ;;
998
+ ppc64le:Linux:*:*)
999
+ echo powerpc64le-unknown-linux-${LIBC}
1000
+ exit ;;
1001
+ ppcle:Linux:*:*)
1002
+ echo powerpcle-unknown-linux-${LIBC}
9611003
exit ;;
9621004
s390:Linux:*:* | s390x:Linux:*:*)
963
- echo ${UNAME_MACHINE}-ibm-linux
1005
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
9641006
exit ;;
9651007
sh64*:Linux:*:*)
966
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1008
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
9671009
exit ;;
9681010
sh*:Linux:*:*)
969
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1011
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
9701012
exit ;;
9711013
sparc:Linux:*:* | sparc64:Linux:*:*)
972
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1014
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
9731015
exit ;;
9741016
tile*:Linux:*:*)
975
- echo ${UNAME_MACHINE}-tilera-linux-gnu
1017
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
9761018
exit ;;
9771019
vax:Linux:*:*)
978
- echo ${UNAME_MACHINE}-dec-linux-gnu
1020
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
9791021
exit ;;
9801022
x86_64:Linux:*:*)
981
- echo x86_64-unknown-linux-gnu
1023
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
9821024
exit ;;
9831025
xtensa*:Linux:*:*)
984
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1026
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
9851027
exit ;;
9861028
i*86:DYNIX/ptx:4*:*)
9871029
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
9881030
# earlier versions are messed up and put the nodename in both
9891031
# sysname and nodename.
9901032
echo i386-sequent-sysv4
9911033
exit ;;
9921034
i*86:UNIX_SV:4.2MP:2.*)
993
- # Unixware is an offshoot of SVR4, but it has its own version
994
- # number series starting with 2...
995
- # I am not positive that other SVR4 systems won't match this,
1035
+ # Unixware is an offshoot of SVR4, but it has its own version
1036
+ # number series starting with 2...
1037
+ # I am not positive that other SVR4 systems won't match this,
9961038
# I just have to hope. -- rms.
997
- # Use sysv4.2uw... so that sysv4* matches it.
1039
+ # Use sysv4.2uw... so that sysv4* matches it.
9981040
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
9991041
exit ;;
10001042
i*86:OS/2:*:*)
10011043
# If we were able to find `uname', then EMX Unix compatibility
10021044
# is probably installed.
@@ -1024,11 +1066,11 @@
10241066
else
10251067
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
10261068
fi
10271069
exit ;;
10281070
i*86:*:5:[678]*)
1029
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
1071
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
10301072
case `/bin/uname -X | grep "^Machine"` in
10311073
*486*) UNAME_MACHINE=i486 ;;
10321074
*Pentium) UNAME_MACHINE=i586 ;;
10331075
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
10341076
esac
@@ -1052,17 +1094,17 @@
10521094
echo ${UNAME_MACHINE}-pc-sysv32
10531095
fi
10541096
exit ;;
10551097
pc:*:*:*)
10561098
# Left here for compatibility:
1057
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
1058
- # the processor, so we play safe by assuming i586.
1099
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
1100
+ # the processor, so we play safe by assuming i586.
10591101
# Note: whatever this is, it MUST be the same as what config.sub
10601102
# prints for the "djgpp" host, or else GDB configury will decide that
10611103
# this is a cross-build.
10621104
echo i586-pc-msdosdjgpp
1063
- exit ;;
1105
+ exit ;;
10641106
Intel:Mach:3*:*)
10651107
echo i386-pc-mach3
10661108
exit ;;
10671109
paragon:*:*:*)
10681110
echo i860-intel-osf1
@@ -1093,12 +1135,12 @@
10931135
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
10941136
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
10951137
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
10961138
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
10971139
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1098
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1099
- && { echo i486-ncr-sysv4; exit; } ;;
1140
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1141
+ && { echo i486-ncr-sysv4; exit; } ;;
11001142
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
11011143
OS_REL='.3'
11021144
test -r /etc/.relid \
11031145
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
11041146
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
@@ -1137,14 +1179,14 @@
11371179
echo ${UNAME_MACHINE}-sni-sysv4
11381180
else
11391181
echo ns32k-sni-sysv
11401182
fi
11411183
exit ;;
1142
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1143
- # says <[email protected]>
1144
- echo i586-unisys-sysv4
1145
- exit ;;
1184
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1185
+ # says <[email protected]>
1186
+ echo i586-unisys-sysv4
1187
+ exit ;;
11461188
*:UNIX_System_V:4*:FTX*)
11471189
# From Gerald Hewes <[email protected]>.
11481190
# How about differentiating between stratus architectures? -djm
11491191
echo hppa1.1-stratus-sysv4
11501192
exit ;;
@@ -1166,15 +1208,15 @@
11661208
news*:NEWS-OS:6*:*)
11671209
echo mips-sony-newsos6
11681210
exit ;;
11691211
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
11701212
if [ -d /usr/nec ]; then
1171
- echo mips-nec-sysv${UNAME_RELEASE}
1213
+ echo mips-nec-sysv${UNAME_RELEASE}
11721214
else
1173
- echo mips-unknown-sysv${UNAME_RELEASE}
1215
+ echo mips-unknown-sysv${UNAME_RELEASE}
11741216
fi
1175
- exit ;;
1217
+ exit ;;
11761218
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
11771219
echo powerpc-be-beos
11781220
exit ;;
11791221
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
11801222
echo powerpc-apple-beos
@@ -1183,10 +1225,13 @@
11831225
echo i586-pc-beos
11841226
exit ;;
11851227
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
11861228
echo i586-pc-haiku
11871229
exit ;;
1230
+ x86_64:Haiku:*:*)
1231
+ echo x86_64-unknown-haiku
1232
+ exit ;;
11881233
SX-4:SUPER-UX:*:*)
11891234
echo sx4-nec-superux${UNAME_RELEASE}
11901235
exit ;;
11911236
SX-5:SUPER-UX:*:*)
11921237
echo sx5-nec-superux${UNAME_RELEASE}
@@ -1209,23 +1254,35 @@
12091254
*:Rhapsody:*:*)
12101255
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
12111256
exit ;;
12121257
*:Darwin:*:*)
12131258
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1214
- case $UNAME_PROCESSOR in
1215
- i386)
1216
- eval $set_cc_for_build
1217
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1218
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1219
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1220
- grep IS_64BIT_ARCH >/dev/null
1221
- then
1222
- UNAME_PROCESSOR="x86_64"
1223
- fi
1224
- fi ;;
1225
- unknown) UNAME_PROCESSOR=powerpc ;;
1226
- esac
1259
+ eval $set_cc_for_build
1260
+ if test "$UNAME_PROCESSOR" = unknown ; then
1261
+ UNAME_PROCESSOR=powerpc
1262
+ fi
1263
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1264
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1265
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1266
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1267
+ grep IS_64BIT_ARCH >/dev/null
1268
+ then
1269
+ case $UNAME_PROCESSOR in
1270
+ i386) UNAME_PROCESSOR=x86_64 ;;
1271
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
1272
+ esac
1273
+ fi
1274
+ fi
1275
+ elif test "$UNAME_PROCESSOR" = i386 ; then
1276
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
1277
+ # that puts up a graphical alert prompting to install
1278
+ # developer tools. Any system running Mac OS X 10.7 or
1279
+ # later (Darwin 11 and later) is required to have a 64-bit
1280
+ # processor. This is not true of the ARM version of Darwin
1281
+ # that Apple uses in portable devices.
1282
+ UNAME_PROCESSOR=x86_64
1283
+ fi
12271284
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
12281285
exit ;;
12291286
*:procnto*:*:* | *:QNX:[0123456789]*:*)
12301287
UNAME_PROCESSOR=`uname -p`
12311288
if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1238,11 +1295,11 @@
12381295
echo i386-pc-qnx
12391296
exit ;;
12401297
NEO-?:NONSTOP_KERNEL:*:*)
12411298
echo neo-tandem-nsk${UNAME_RELEASE}
12421299
exit ;;
1243
- NSE-?:NONSTOP_KERNEL:*:*)
1300
+ NSE-*:NONSTOP_KERNEL:*:*)
12441301
echo nse-tandem-nsk${UNAME_RELEASE}
12451302
exit ;;
12461303
NSR-?:NONSTOP_KERNEL:*:*)
12471304
echo nsr-tandem-nsk${UNAME_RELEASE}
12481305
exit ;;
@@ -1283,17 +1340,17 @@
12831340
exit ;;
12841341
*:ITS:*:*)
12851342
echo pdp10-unknown-its
12861343
exit ;;
12871344
SEI:*:*:SEIUX)
1288
- echo mips-sei-seiux${UNAME_RELEASE}
1345
+ echo mips-sei-seiux${UNAME_RELEASE}
12891346
exit ;;
12901347
*:DragonFly:*:*)
12911348
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
12921349
exit ;;
12931350
*:*VMS:*:*)
1294
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
1351
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
12951352
case "${UNAME_MACHINE}" in
12961353
A*) echo alpha-dec-vms ; exit ;;
12971354
I*) echo ia64-dec-vms ; exit ;;
12981355
V*) echo vax-dec-vms ; exit ;;
12991356
esac ;;
@@ -1307,162 +1364,14 @@
13071364
echo ${UNAME_MACHINE}-pc-rdos
13081365
exit ;;
13091366
i*86:AROS:*:*)
13101367
echo ${UNAME_MACHINE}-pc-aros
13111368
exit ;;
1312
-esac
1313
-
1314
-#echo '(No uname command or uname output not recognized.)' 1>&2
1315
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1316
-
1317
-eval $set_cc_for_build
1318
-cat >$dummy.c <<EOF
1319
-#ifdef _SEQUENT_
1320
-# include <sys/types.h>
1321
-# include <sys/utsname.h>
1322
-#endif
1323
-main ()
1324
-{
1325
-#if defined (sony)
1326
-#if defined (MIPSEB)
1327
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1328
- I don't know.... */
1329
- printf ("mips-sony-bsd\n"); exit (0);
1330
-#else
1331
-#include <sys/param.h>
1332
- printf ("m68k-sony-newsos%s\n",
1333
-#ifdef NEWSOS4
1334
- "4"
1335
-#else
1336
- ""
1337
-#endif
1338
- ); exit (0);
1339
-#endif
1340
-#endif
1341
-
1342
-#if defined (__arm) && defined (__acorn) && defined (__unix)
1343
- printf ("arm-acorn-riscix\n"); exit (0);
1344
-#endif
1345
-
1346
-#if defined (hp300) && !defined (hpux)
1347
- printf ("m68k-hp-bsd\n"); exit (0);
1348
-#endif
1349
-
1350
-#if defined (NeXT)
1351
-#if !defined (__ARCHITECTURE__)
1352
-#define __ARCHITECTURE__ "m68k"
1353
-#endif
1354
- int version;
1355
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1356
- if (version < 4)
1357
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1358
- else
1359
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1360
- exit (0);
1361
-#endif
1362
-
1363
-#if defined (MULTIMAX) || defined (n16)
1364
-#if defined (UMAXV)
1365
- printf ("ns32k-encore-sysv\n"); exit (0);
1366
-#else
1367
-#if defined (CMU)
1368
- printf ("ns32k-encore-mach\n"); exit (0);
1369
-#else
1370
- printf ("ns32k-encore-bsd\n"); exit (0);
1371
-#endif
1372
-#endif
1373
-#endif
1374
-
1375
-#if defined (__386BSD__)
1376
- printf ("i386-pc-bsd\n"); exit (0);
1377
-#endif
1378
-
1379
-#if defined (sequent)
1380
-#if defined (i386)
1381
- printf ("i386-sequent-dynix\n"); exit (0);
1382
-#endif
1383
-#if defined (ns32000)
1384
- printf ("ns32k-sequent-dynix\n"); exit (0);
1385
-#endif
1386
-#endif
1387
-
1388
-#if defined (_SEQUENT_)
1389
- struct utsname un;
1390
-
1391
- uname(&un);
1392
-
1393
- if (strncmp(un.version, "V2", 2) == 0) {
1394
- printf ("i386-sequent-ptx2\n"); exit (0);
1395
- }
1396
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1397
- printf ("i386-sequent-ptx1\n"); exit (0);
1398
- }
1399
- printf ("i386-sequent-ptx\n"); exit (0);
1400
-
1401
-#endif
1402
-
1403
-#if defined (vax)
1404
-# if !defined (ultrix)
1405
-# include <sys/param.h>
1406
-# if defined (BSD)
1407
-# if BSD == 43
1408
- printf ("vax-dec-bsd4.3\n"); exit (0);
1409
-# else
1410
-# if BSD == 199006
1411
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
1412
-# else
1413
- printf ("vax-dec-bsd\n"); exit (0);
1414
-# endif
1415
-# endif
1416
-# else
1417
- printf ("vax-dec-bsd\n"); exit (0);
1418
-# endif
1419
-# else
1420
- printf ("vax-dec-ultrix\n"); exit (0);
1421
-# endif
1422
-#endif
1423
-
1424
-#if defined (alliant) && defined (i860)
1425
- printf ("i860-alliant-bsd\n"); exit (0);
1426
-#endif
1427
-
1428
- exit (1);
1429
-}
1430
-EOF
1431
-
1432
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1433
- { echo "$SYSTEM_NAME"; exit; }
1434
-
1435
-# Apollos put the system type in the environment.
1436
-
1437
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1438
-
1439
-# Convex versions that predate uname can use getsysinfo(1)
1440
-
1441
-if [ -x /usr/convex/getsysinfo ]
1442
-then
1443
- case `getsysinfo -f cpu_type` in
1444
- c1*)
1445
- echo c1-convex-bsd
1446
- exit ;;
1447
- c2*)
1448
- if getsysinfo -f scalar_acc
1449
- then echo c32-convex-bsd
1450
- else echo c2-convex-bsd
1451
- fi
1452
- exit ;;
1453
- c34*)
1454
- echo c34-convex-bsd
1455
- exit ;;
1456
- c38*)
1457
- echo c38-convex-bsd
1458
- exit ;;
1459
- c4*)
1460
- echo c4-convex-bsd
1461
- exit ;;
1462
- esac
1463
-fi
1369
+ x86_64:VMkernel:*:*)
1370
+ echo ${UNAME_MACHINE}-unknown-esx
1371
+ exit ;;
1372
+esac
14641373
14651374
cat >&2 <<EOF
14661375
$0: unable to guess system type
14671376
14681377
This script, last modified $timestamp, has failed to recognize
14691378
--- autosetup/config.guess
+++ autosetup/config.guess
@@ -1,44 +1,38 @@
1 #! /bin/sh
2 # Attempt to guess a canonical system name.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 # Free Software Foundation, Inc.
6
7 timestamp='2010-09-24'
8
9 # This file is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
22 # 02110-1301, USA.
23 #
24 # As a special exception to the GNU General Public License, if you
25 # distribute this file as part of a program that contains a
26 # configuration script generated by Autoconf, you may include it under
27 # the same distribution terms that you use for the rest of that program.
28
29
30 # Originally written by Per Bothner. Please send patches (context
31 # diff format) to <[email protected]> and include a ChangeLog
32 # entry.
33 #
34 # This script attempts to guess a canonical system name similar to
35 # config.sub. If it succeeds, it prints the system name on stdout, and
36 # exits with 0. Otherwise, it exits with 1.
37 #
38 # You can get the latest version of this script from:
39 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 
 
 
40
41 me=`echo "$0" | sed -e 's,.*/,,'`
42
43 usage="\
44 Usage: $0 [OPTION]
@@ -54,13 +48,11 @@
54
55 version="\
56 GNU config.guess ($timestamp)
57
58 Originally written by Per Bothner.
59 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
60 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
61 Software Foundation, Inc.
62
63 This is free software; see the source for copying conditions. There is NO
64 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
65
66 help="
@@ -90,11 +82,11 @@
90 if test $# != 0; then
91 echo "$me: too many arguments$help" >&2
92 exit 1
93 fi
94
95 trap 'exit 1' HUP INT TERM
96
97 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
98 # compiler to aid in system detection is discouraged as it requires
99 # temporary files to be created and, as you can see below, it is a
100 # headache to deal with in a portable fashion.
@@ -104,11 +96,11 @@
104
105 # Portable tmp directory creation inspired by the Autoconf team.
106
107 set_cc_for_build='
108 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
109 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
110 : ${TMPDIR=/tmp} ;
111 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
112 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
113 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
114 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -137,17 +129,38 @@
137
138 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
139 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
140 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
141 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
143 # Note: order is significant - the case branches are not exclusive.
144
145 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
146 *:NetBSD:*:*)
147 # NetBSD (nbsd) targets should (where applicable) match one or
148 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
149 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
150 # switched to ELF, *-*-netbsd* would select the old
151 # object file format. This provides both forward
152 # compatibility and a consistent mechanism for selecting the
153 # object file format.
@@ -179,11 +192,11 @@
179 else
180 os=netbsdelf
181 fi
182 ;;
183 *)
184 os=netbsd
185 ;;
186 esac
187 # The OS release
188 # Debian GNU/NetBSD machines have a different userland, and
189 # thus, need a distinct triplet. However, they do not need
@@ -200,10 +213,14 @@
200 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
201 # contains redundant information, the shorter form:
202 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
203 echo "${machine}-${os}${release}"
204 exit ;;
 
 
 
 
205 *:OpenBSD:*:*)
206 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
207 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
208 exit ;;
209 *:ekkoBSD:*:*)
@@ -222,11 +239,11 @@
222 case $UNAME_RELEASE in
223 *4.0)
224 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
225 ;;
226 *5.*)
227 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
228 ;;
229 esac
230 # According to Compaq, /usr/sbin/psrinfo has been available on
231 # OSF/1 and Tru64 systems produced since 1995. I hope that
232 # covers most systems running today. This code pipes the CPU
@@ -268,11 +285,14 @@
268 # A Vn.n version is a released version.
269 # A Tn.n version is a released field test version.
270 # A Xn.n version is an unreleased experimental baselevel.
271 # 1.2 uses "1.2" for uname -r.
272 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
273 exit ;;
 
 
 
274 Alpha\ *:Windows_NT*:*)
275 # How do we know it's Interix rather than the generic POSIX subsystem?
276 # Should we change UNAME_MACHINE based on the output of uname instead
277 # of the specific Alpha model?
278 echo alpha-pc-interix
@@ -294,16 +314,16 @@
294 exit ;;
295 *:z/VM:*:*)
296 echo s390-ibm-zvmoe
297 exit ;;
298 *:OS400:*:*)
299 echo powerpc-ibm-os400
300 exit ;;
301 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
302 echo arm-acorn-riscix${UNAME_RELEASE}
303 exit ;;
304 arm:riscos:*:*|arm:RISCOS:*:*)
305 echo arm-unknown-riscos
306 exit ;;
307 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
308 echo hppa1.1-hitachi-hiuxmpp
309 exit ;;
@@ -393,27 +413,27 @@
393 # to the lowercase version "mint" (or "freemint"). Finally
394 # the system name "TOS" denotes a system which is actually not
395 # MiNT. But MiNT is downward compatible to TOS, so this should
396 # be no problem.
397 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
398 echo m68k-atari-mint${UNAME_RELEASE}
399 exit ;;
400 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
401 echo m68k-atari-mint${UNAME_RELEASE}
402 exit ;;
403 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
404 echo m68k-atari-mint${UNAME_RELEASE}
405 exit ;;
406 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
407 echo m68k-milan-mint${UNAME_RELEASE}
408 exit ;;
409 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
410 echo m68k-hades-mint${UNAME_RELEASE}
411 exit ;;
412 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
413 echo m68k-unknown-mint${UNAME_RELEASE}
414 exit ;;
415 m68k:machten:*:*)
416 echo m68k-apple-machten${UNAME_RELEASE}
417 exit ;;
418 powerpc:machten:*:*)
419 echo powerpc-apple-machten${UNAME_RELEASE}
@@ -479,12 +499,12 @@
479 exit ;;
480 m88k:*:3*:R3*)
481 echo m88k-motorola-sysv3
482 exit ;;
483 AViiON:dgux:*:*)
484 # DG/UX returns AViiON for all architectures
485 UNAME_PROCESSOR=`/usr/bin/uname -p`
486 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
487 then
488 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
489 [ ${TARGET_BINARY_INTERFACE}x = x ]
490 then
@@ -493,11 +513,11 @@
493 echo m88k-dg-dguxbcs${UNAME_RELEASE}
494 fi
495 else
496 echo i586-dg-dgux${UNAME_RELEASE}
497 fi
498 exit ;;
499 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
500 echo m88k-dolphin-sysv3
501 exit ;;
502 M88*:*:R3*:*)
503 # Delta 88k system running SVR3
@@ -593,56 +613,56 @@
593 9000/31? ) HP_ARCH=m68000 ;;
594 9000/[34]?? ) HP_ARCH=m68k ;;
595 9000/[678][0-9][0-9])
596 if [ -x /usr/bin/getconf ]; then
597 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
598 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
599 case "${sc_cpu_version}" in
600 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
601 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
602 532) # CPU_PA_RISC2_0
603 case "${sc_kernel_bits}" in
604 32) HP_ARCH="hppa2.0n" ;;
605 64) HP_ARCH="hppa2.0w" ;;
606 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
607 esac ;;
608 esac
609 fi
610 if [ "${HP_ARCH}" = "" ]; then
611 eval $set_cc_for_build
612 sed 's/^ //' << EOF >$dummy.c
613
614 #define _HPUX_SOURCE
615 #include <stdlib.h>
616 #include <unistd.h>
617
618 int main ()
619 {
620 #if defined(_SC_KERNEL_BITS)
621 long bits = sysconf(_SC_KERNEL_BITS);
622 #endif
623 long cpu = sysconf (_SC_CPU_VERSION);
624
625 switch (cpu)
626 {
627 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
628 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
629 case CPU_PA_RISC2_0:
630 #if defined(_SC_KERNEL_BITS)
631 switch (bits)
632 {
633 case 64: puts ("hppa2.0w"); break;
634 case 32: puts ("hppa2.0n"); break;
635 default: puts ("hppa2.0"); break;
636 } break;
637 #else /* !defined(_SC_KERNEL_BITS) */
638 puts ("hppa2.0"); break;
639 #endif
640 default: puts ("hppa1.0"); break;
641 }
642 exit (0);
643 }
644 EOF
645 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
646 test -z "$HP_ARCH" && HP_ARCH=hppa
647 fi ;;
648 esac
@@ -729,26 +749,26 @@
729 parisc*:Lites*:*:*)
730 echo hppa1.1-hp-lites
731 exit ;;
732 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
733 echo c1-convex-bsd
734 exit ;;
735 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
736 if getsysinfo -f scalar_acc
737 then echo c32-convex-bsd
738 else echo c2-convex-bsd
739 fi
740 exit ;;
741 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
742 echo c34-convex-bsd
743 exit ;;
744 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
745 echo c38-convex-bsd
746 exit ;;
747 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
748 echo c4-convex-bsd
749 exit ;;
750 CRAY*Y-MP:*:*:*)
751 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
752 exit ;;
753 CRAY*[A-Z]90:*:*:*)
754 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
@@ -768,18 +788,18 @@
768 *:UNICOS/mp:*:*)
769 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
770 exit ;;
771 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
772 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
773 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
774 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
775 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
776 exit ;;
777 5000:UNIX_System_V:4.*:*)
778 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
779 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
780 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
781 exit ;;
782 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
783 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
784 exit ;;
785 sparc*:BSD/OS:*:*)
@@ -787,37 +807,39 @@
787 exit ;;
788 *:BSD/OS:*:*)
789 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
790 exit ;;
791 *:FreeBSD:*:*)
792 case ${UNAME_MACHINE} in
793 pc98)
794 echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
795 amd64)
796 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
797 *)
798 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
799 esac
800 exit ;;
801 i*:CYGWIN*:*)
802 echo ${UNAME_MACHINE}-pc-cygwin
803 exit ;;
 
 
 
804 *:MINGW*:*)
805 echo ${UNAME_MACHINE}-pc-mingw32
806 exit ;;
807 i*:MSYS*:*)
808 echo ${UNAME_MACHINE}-pc-msys
809 exit ;;
810 i*:windows32*:*)
811 # uname -m includes "-pc" on this system.
812 echo ${UNAME_MACHINE}-mingw32
813 exit ;;
814 i*:PW*:*)
815 echo ${UNAME_MACHINE}-pc-pw32
816 exit ;;
817 *:Interix*:*)
818 case ${UNAME_MACHINE} in
819 x86)
820 echo i586-pc-interix${UNAME_RELEASE}
821 exit ;;
822 authenticamd | genuineintel | EM64T)
823 echo x86_64-unknown-interix${UNAME_RELEASE}
@@ -850,74 +872,85 @@
850 prep*:SunOS:5.*:*)
851 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
852 exit ;;
853 *:GNU:*:*)
854 # the GNU system
855 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
856 exit ;;
857 *:GNU/*:*:*)
858 # other systems with GNU libc and userland
859 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
860 exit ;;
861 i*86:Minix:*:*)
862 echo ${UNAME_MACHINE}-pc-minix
863 exit ;;
 
 
 
 
 
 
 
864 alpha:Linux:*:*)
865 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
866 EV5) UNAME_MACHINE=alphaev5 ;;
867 EV56) UNAME_MACHINE=alphaev56 ;;
868 PCA56) UNAME_MACHINE=alphapca56 ;;
869 PCA57) UNAME_MACHINE=alphapca56 ;;
870 EV6) UNAME_MACHINE=alphaev6 ;;
871 EV67) UNAME_MACHINE=alphaev67 ;;
872 EV68*) UNAME_MACHINE=alphaev68 ;;
873 esac
874 objdump --private-headers /bin/sh | grep -q ld.so.1
875 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
876 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
 
 
 
877 exit ;;
878 arm*:Linux:*:*)
879 eval $set_cc_for_build
880 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
881 | grep -q __ARM_EABI__
882 then
883 echo ${UNAME_MACHINE}-unknown-linux-gnu
884 else
885 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
 
 
 
 
 
 
886 fi
887 exit ;;
888 avr32*:Linux:*:*)
889 echo ${UNAME_MACHINE}-unknown-linux-gnu
890 exit ;;
891 cris:Linux:*:*)
892 echo cris-axis-linux-gnu
893 exit ;;
894 crisv32:Linux:*:*)
895 echo crisv32-axis-linux-gnu
896 exit ;;
897 frv:Linux:*:*)
898 echo frv-unknown-linux-gnu
 
 
 
899 exit ;;
900 i*86:Linux:*:*)
901 LIBC=gnu
902 eval $set_cc_for_build
903 sed 's/^ //' << EOF >$dummy.c
904 #ifdef __dietlibc__
905 LIBC=dietlibc
906 #endif
907 EOF
908 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
909 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
910 exit ;;
911 ia64:Linux:*:*)
912 echo ${UNAME_MACHINE}-unknown-linux-gnu
913 exit ;;
914 m32r*:Linux:*:*)
915 echo ${UNAME_MACHINE}-unknown-linux-gnu
916 exit ;;
917 m68*:Linux:*:*)
918 echo ${UNAME_MACHINE}-unknown-linux-gnu
919 exit ;;
920 mips:Linux:*:* | mips64:Linux:*:*)
921 eval $set_cc_for_build
922 sed 's/^ //' << EOF >$dummy.c
923 #undef CPU
@@ -932,71 +965,80 @@
932 CPU=
933 #endif
934 #endif
935 EOF
936 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
937 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
938 ;;
939 or32:Linux:*:*)
940 echo or32-unknown-linux-gnu
 
 
 
941 exit ;;
942 padre:Linux:*:*)
943 echo sparc-unknown-linux-gnu
944 exit ;;
945 parisc64:Linux:*:* | hppa64:Linux:*:*)
946 echo hppa64-unknown-linux-gnu
947 exit ;;
948 parisc:Linux:*:* | hppa:Linux:*:*)
949 # Look for CPU level
950 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
951 PA7*) echo hppa1.1-unknown-linux-gnu ;;
952 PA8*) echo hppa2.0-unknown-linux-gnu ;;
953 *) echo hppa-unknown-linux-gnu ;;
954 esac
955 exit ;;
956 ppc64:Linux:*:*)
957 echo powerpc64-unknown-linux-gnu
958 exit ;;
959 ppc:Linux:*:*)
960 echo powerpc-unknown-linux-gnu
 
 
 
 
 
 
961 exit ;;
962 s390:Linux:*:* | s390x:Linux:*:*)
963 echo ${UNAME_MACHINE}-ibm-linux
964 exit ;;
965 sh64*:Linux:*:*)
966 echo ${UNAME_MACHINE}-unknown-linux-gnu
967 exit ;;
968 sh*:Linux:*:*)
969 echo ${UNAME_MACHINE}-unknown-linux-gnu
970 exit ;;
971 sparc:Linux:*:* | sparc64:Linux:*:*)
972 echo ${UNAME_MACHINE}-unknown-linux-gnu
973 exit ;;
974 tile*:Linux:*:*)
975 echo ${UNAME_MACHINE}-tilera-linux-gnu
976 exit ;;
977 vax:Linux:*:*)
978 echo ${UNAME_MACHINE}-dec-linux-gnu
979 exit ;;
980 x86_64:Linux:*:*)
981 echo x86_64-unknown-linux-gnu
982 exit ;;
983 xtensa*:Linux:*:*)
984 echo ${UNAME_MACHINE}-unknown-linux-gnu
985 exit ;;
986 i*86:DYNIX/ptx:4*:*)
987 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
988 # earlier versions are messed up and put the nodename in both
989 # sysname and nodename.
990 echo i386-sequent-sysv4
991 exit ;;
992 i*86:UNIX_SV:4.2MP:2.*)
993 # Unixware is an offshoot of SVR4, but it has its own version
994 # number series starting with 2...
995 # I am not positive that other SVR4 systems won't match this,
996 # I just have to hope. -- rms.
997 # Use sysv4.2uw... so that sysv4* matches it.
998 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
999 exit ;;
1000 i*86:OS/2:*:*)
1001 # If we were able to find `uname', then EMX Unix compatibility
1002 # is probably installed.
@@ -1024,11 +1066,11 @@
1024 else
1025 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1026 fi
1027 exit ;;
1028 i*86:*:5:[678]*)
1029 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1030 case `/bin/uname -X | grep "^Machine"` in
1031 *486*) UNAME_MACHINE=i486 ;;
1032 *Pentium) UNAME_MACHINE=i586 ;;
1033 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1034 esac
@@ -1052,17 +1094,17 @@
1052 echo ${UNAME_MACHINE}-pc-sysv32
1053 fi
1054 exit ;;
1055 pc:*:*:*)
1056 # Left here for compatibility:
1057 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1058 # the processor, so we play safe by assuming i586.
1059 # Note: whatever this is, it MUST be the same as what config.sub
1060 # prints for the "djgpp" host, or else GDB configury will decide that
1061 # this is a cross-build.
1062 echo i586-pc-msdosdjgpp
1063 exit ;;
1064 Intel:Mach:3*:*)
1065 echo i386-pc-mach3
1066 exit ;;
1067 paragon:*:*:*)
1068 echo i860-intel-osf1
@@ -1093,12 +1135,12 @@
1093 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1094 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1095 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1096 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1097 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1098 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1099 && { echo i486-ncr-sysv4; exit; } ;;
1100 NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1101 OS_REL='.3'
1102 test -r /etc/.relid \
1103 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1104 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
@@ -1137,14 +1179,14 @@
1137 echo ${UNAME_MACHINE}-sni-sysv4
1138 else
1139 echo ns32k-sni-sysv
1140 fi
1141 exit ;;
1142 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1143 # says <[email protected]>
1144 echo i586-unisys-sysv4
1145 exit ;;
1146 *:UNIX_System_V:4*:FTX*)
1147 # From Gerald Hewes <[email protected]>.
1148 # How about differentiating between stratus architectures? -djm
1149 echo hppa1.1-stratus-sysv4
1150 exit ;;
@@ -1166,15 +1208,15 @@
1166 news*:NEWS-OS:6*:*)
1167 echo mips-sony-newsos6
1168 exit ;;
1169 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1170 if [ -d /usr/nec ]; then
1171 echo mips-nec-sysv${UNAME_RELEASE}
1172 else
1173 echo mips-unknown-sysv${UNAME_RELEASE}
1174 fi
1175 exit ;;
1176 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1177 echo powerpc-be-beos
1178 exit ;;
1179 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1180 echo powerpc-apple-beos
@@ -1183,10 +1225,13 @@
1183 echo i586-pc-beos
1184 exit ;;
1185 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1186 echo i586-pc-haiku
1187 exit ;;
 
 
 
1188 SX-4:SUPER-UX:*:*)
1189 echo sx4-nec-superux${UNAME_RELEASE}
1190 exit ;;
1191 SX-5:SUPER-UX:*:*)
1192 echo sx5-nec-superux${UNAME_RELEASE}
@@ -1209,23 +1254,35 @@
1209 *:Rhapsody:*:*)
1210 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1211 exit ;;
1212 *:Darwin:*:*)
1213 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1214 case $UNAME_PROCESSOR in
1215 i386)
1216 eval $set_cc_for_build
1217 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1218 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1219 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1220 grep IS_64BIT_ARCH >/dev/null
1221 then
1222 UNAME_PROCESSOR="x86_64"
1223 fi
1224 fi ;;
1225 unknown) UNAME_PROCESSOR=powerpc ;;
1226 esac
 
 
 
 
 
 
 
 
 
 
 
 
1227 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1228 exit ;;
1229 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1230 UNAME_PROCESSOR=`uname -p`
1231 if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1238,11 +1295,11 @@
1238 echo i386-pc-qnx
1239 exit ;;
1240 NEO-?:NONSTOP_KERNEL:*:*)
1241 echo neo-tandem-nsk${UNAME_RELEASE}
1242 exit ;;
1243 NSE-?:NONSTOP_KERNEL:*:*)
1244 echo nse-tandem-nsk${UNAME_RELEASE}
1245 exit ;;
1246 NSR-?:NONSTOP_KERNEL:*:*)
1247 echo nsr-tandem-nsk${UNAME_RELEASE}
1248 exit ;;
@@ -1283,17 +1340,17 @@
1283 exit ;;
1284 *:ITS:*:*)
1285 echo pdp10-unknown-its
1286 exit ;;
1287 SEI:*:*:SEIUX)
1288 echo mips-sei-seiux${UNAME_RELEASE}
1289 exit ;;
1290 *:DragonFly:*:*)
1291 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1292 exit ;;
1293 *:*VMS:*:*)
1294 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1295 case "${UNAME_MACHINE}" in
1296 A*) echo alpha-dec-vms ; exit ;;
1297 I*) echo ia64-dec-vms ; exit ;;
1298 V*) echo vax-dec-vms ; exit ;;
1299 esac ;;
@@ -1307,162 +1364,14 @@
1307 echo ${UNAME_MACHINE}-pc-rdos
1308 exit ;;
1309 i*86:AROS:*:*)
1310 echo ${UNAME_MACHINE}-pc-aros
1311 exit ;;
1312 esac
1313
1314 #echo '(No uname command or uname output not recognized.)' 1>&2
1315 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1316
1317 eval $set_cc_for_build
1318 cat >$dummy.c <<EOF
1319 #ifdef _SEQUENT_
1320 # include <sys/types.h>
1321 # include <sys/utsname.h>
1322 #endif
1323 main ()
1324 {
1325 #if defined (sony)
1326 #if defined (MIPSEB)
1327 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1328 I don't know.... */
1329 printf ("mips-sony-bsd\n"); exit (0);
1330 #else
1331 #include <sys/param.h>
1332 printf ("m68k-sony-newsos%s\n",
1333 #ifdef NEWSOS4
1334 "4"
1335 #else
1336 ""
1337 #endif
1338 ); exit (0);
1339 #endif
1340 #endif
1341
1342 #if defined (__arm) && defined (__acorn) && defined (__unix)
1343 printf ("arm-acorn-riscix\n"); exit (0);
1344 #endif
1345
1346 #if defined (hp300) && !defined (hpux)
1347 printf ("m68k-hp-bsd\n"); exit (0);
1348 #endif
1349
1350 #if defined (NeXT)
1351 #if !defined (__ARCHITECTURE__)
1352 #define __ARCHITECTURE__ "m68k"
1353 #endif
1354 int version;
1355 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1356 if (version < 4)
1357 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1358 else
1359 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1360 exit (0);
1361 #endif
1362
1363 #if defined (MULTIMAX) || defined (n16)
1364 #if defined (UMAXV)
1365 printf ("ns32k-encore-sysv\n"); exit (0);
1366 #else
1367 #if defined (CMU)
1368 printf ("ns32k-encore-mach\n"); exit (0);
1369 #else
1370 printf ("ns32k-encore-bsd\n"); exit (0);
1371 #endif
1372 #endif
1373 #endif
1374
1375 #if defined (__386BSD__)
1376 printf ("i386-pc-bsd\n"); exit (0);
1377 #endif
1378
1379 #if defined (sequent)
1380 #if defined (i386)
1381 printf ("i386-sequent-dynix\n"); exit (0);
1382 #endif
1383 #if defined (ns32000)
1384 printf ("ns32k-sequent-dynix\n"); exit (0);
1385 #endif
1386 #endif
1387
1388 #if defined (_SEQUENT_)
1389 struct utsname un;
1390
1391 uname(&un);
1392
1393 if (strncmp(un.version, "V2", 2) == 0) {
1394 printf ("i386-sequent-ptx2\n"); exit (0);
1395 }
1396 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1397 printf ("i386-sequent-ptx1\n"); exit (0);
1398 }
1399 printf ("i386-sequent-ptx\n"); exit (0);
1400
1401 #endif
1402
1403 #if defined (vax)
1404 # if !defined (ultrix)
1405 # include <sys/param.h>
1406 # if defined (BSD)
1407 # if BSD == 43
1408 printf ("vax-dec-bsd4.3\n"); exit (0);
1409 # else
1410 # if BSD == 199006
1411 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1412 # else
1413 printf ("vax-dec-bsd\n"); exit (0);
1414 # endif
1415 # endif
1416 # else
1417 printf ("vax-dec-bsd\n"); exit (0);
1418 # endif
1419 # else
1420 printf ("vax-dec-ultrix\n"); exit (0);
1421 # endif
1422 #endif
1423
1424 #if defined (alliant) && defined (i860)
1425 printf ("i860-alliant-bsd\n"); exit (0);
1426 #endif
1427
1428 exit (1);
1429 }
1430 EOF
1431
1432 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1433 { echo "$SYSTEM_NAME"; exit; }
1434
1435 # Apollos put the system type in the environment.
1436
1437 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1438
1439 # Convex versions that predate uname can use getsysinfo(1)
1440
1441 if [ -x /usr/convex/getsysinfo ]
1442 then
1443 case `getsysinfo -f cpu_type` in
1444 c1*)
1445 echo c1-convex-bsd
1446 exit ;;
1447 c2*)
1448 if getsysinfo -f scalar_acc
1449 then echo c32-convex-bsd
1450 else echo c2-convex-bsd
1451 fi
1452 exit ;;
1453 c34*)
1454 echo c34-convex-bsd
1455 exit ;;
1456 c38*)
1457 echo c38-convex-bsd
1458 exit ;;
1459 c4*)
1460 echo c4-convex-bsd
1461 exit ;;
1462 esac
1463 fi
1464
1465 cat >&2 <<EOF
1466 $0: unable to guess system type
1467
1468 This script, last modified $timestamp, has failed to recognize
1469
--- autosetup/config.guess
+++ autosetup/config.guess
@@ -1,44 +1,38 @@
1 #! /bin/sh
2 # Attempt to guess a canonical system name.
3 # Copyright 1992-2014 Free Software Foundation, Inc.
 
 
4
5 timestamp='2014-03-23'
6
7 # This file is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 
19 #
20 # As a special exception to the GNU General Public License, if you
21 # distribute this file as part of a program that contains a
22 # configuration script generated by Autoconf, you may include it under
23 # the same distribution terms that you use for the rest of that
24 # program. This Exception is an additional permission under section 7
25 # of the GNU General Public License, version 3 ("GPLv3").
26 #
27 # Originally written by Per Bothner.
 
 
 
 
 
28 #
29 # You can get the latest version of this script from:
30 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
31 #
32 # Please send patches with a ChangeLog entry to [email protected].
33
34
35 me=`echo "$0" | sed -e 's,.*/,,'`
36
37 usage="\
38 Usage: $0 [OPTION]
@@ -54,13 +48,11 @@
48
49 version="\
50 GNU config.guess ($timestamp)
51
52 Originally written by Per Bothner.
53 Copyright 1992-2014 Free Software Foundation, Inc.
 
 
54
55 This is free software; see the source for copying conditions. There is NO
56 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
57
58 help="
@@ -90,11 +82,11 @@
82 if test $# != 0; then
83 echo "$me: too many arguments$help" >&2
84 exit 1
85 fi
86
87 trap 'exit 1' 1 2 15
88
89 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
90 # compiler to aid in system detection is discouraged as it requires
91 # temporary files to be created and, as you can see below, it is a
92 # headache to deal with in a portable fashion.
@@ -104,11 +96,11 @@
96
97 # Portable tmp directory creation inspired by the Autoconf team.
98
99 set_cc_for_build='
100 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
101 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
102 : ${TMPDIR=/tmp} ;
103 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
104 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
105 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
106 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -137,17 +129,38 @@
129
130 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
131 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
132 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
133 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
134
135 case "${UNAME_SYSTEM}" in
136 Linux|GNU|GNU/*)
137 # If the system lacks a compiler, then just pick glibc.
138 # We could probably try harder.
139 LIBC=gnu
140
141 eval $set_cc_for_build
142 cat <<-EOF > $dummy.c
143 #include <features.h>
144 #if defined(__UCLIBC__)
145 LIBC=uclibc
146 #elif defined(__dietlibc__)
147 LIBC=dietlibc
148 #else
149 LIBC=gnu
150 #endif
151 EOF
152 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
153 ;;
154 esac
155
156 # Note: order is significant - the case branches are not exclusive.
157
158 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
159 *:NetBSD:*:*)
160 # NetBSD (nbsd) targets should (where applicable) match one or
161 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
162 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
163 # switched to ELF, *-*-netbsd* would select the old
164 # object file format. This provides both forward
165 # compatibility and a consistent mechanism for selecting the
166 # object file format.
@@ -179,11 +192,11 @@
192 else
193 os=netbsdelf
194 fi
195 ;;
196 *)
197 os=netbsd
198 ;;
199 esac
200 # The OS release
201 # Debian GNU/NetBSD machines have a different userland, and
202 # thus, need a distinct triplet. However, they do not need
@@ -200,10 +213,14 @@
213 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
214 # contains redundant information, the shorter form:
215 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
216 echo "${machine}-${os}${release}"
217 exit ;;
218 *:Bitrig:*:*)
219 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
220 echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
221 exit ;;
222 *:OpenBSD:*:*)
223 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
224 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
225 exit ;;
226 *:ekkoBSD:*:*)
@@ -222,11 +239,11 @@
239 case $UNAME_RELEASE in
240 *4.0)
241 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
242 ;;
243 *5.*)
244 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
245 ;;
246 esac
247 # According to Compaq, /usr/sbin/psrinfo has been available on
248 # OSF/1 and Tru64 systems produced since 1995. I hope that
249 # covers most systems running today. This code pipes the CPU
@@ -268,11 +285,14 @@
285 # A Vn.n version is a released version.
286 # A Tn.n version is a released field test version.
287 # A Xn.n version is an unreleased experimental baselevel.
288 # 1.2 uses "1.2" for uname -r.
289 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
290 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
291 exitcode=$?
292 trap '' 0
293 exit $exitcode ;;
294 Alpha\ *:Windows_NT*:*)
295 # How do we know it's Interix rather than the generic POSIX subsystem?
296 # Should we change UNAME_MACHINE based on the output of uname instead
297 # of the specific Alpha model?
298 echo alpha-pc-interix
@@ -294,16 +314,16 @@
314 exit ;;
315 *:z/VM:*:*)
316 echo s390-ibm-zvmoe
317 exit ;;
318 *:OS400:*:*)
319 echo powerpc-ibm-os400
320 exit ;;
321 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
322 echo arm-acorn-riscix${UNAME_RELEASE}
323 exit ;;
324 arm*:riscos:*:*|arm*:RISCOS:*:*)
325 echo arm-unknown-riscos
326 exit ;;
327 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
328 echo hppa1.1-hitachi-hiuxmpp
329 exit ;;
@@ -393,27 +413,27 @@
413 # to the lowercase version "mint" (or "freemint"). Finally
414 # the system name "TOS" denotes a system which is actually not
415 # MiNT. But MiNT is downward compatible to TOS, so this should
416 # be no problem.
417 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
418 echo m68k-atari-mint${UNAME_RELEASE}
419 exit ;;
420 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
421 echo m68k-atari-mint${UNAME_RELEASE}
422 exit ;;
423 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
424 echo m68k-atari-mint${UNAME_RELEASE}
425 exit ;;
426 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
427 echo m68k-milan-mint${UNAME_RELEASE}
428 exit ;;
429 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
430 echo m68k-hades-mint${UNAME_RELEASE}
431 exit ;;
432 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
433 echo m68k-unknown-mint${UNAME_RELEASE}
434 exit ;;
435 m68k:machten:*:*)
436 echo m68k-apple-machten${UNAME_RELEASE}
437 exit ;;
438 powerpc:machten:*:*)
439 echo powerpc-apple-machten${UNAME_RELEASE}
@@ -479,12 +499,12 @@
499 exit ;;
500 m88k:*:3*:R3*)
501 echo m88k-motorola-sysv3
502 exit ;;
503 AViiON:dgux:*:*)
504 # DG/UX returns AViiON for all architectures
505 UNAME_PROCESSOR=`/usr/bin/uname -p`
506 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
507 then
508 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
509 [ ${TARGET_BINARY_INTERFACE}x = x ]
510 then
@@ -493,11 +513,11 @@
513 echo m88k-dg-dguxbcs${UNAME_RELEASE}
514 fi
515 else
516 echo i586-dg-dgux${UNAME_RELEASE}
517 fi
518 exit ;;
519 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
520 echo m88k-dolphin-sysv3
521 exit ;;
522 M88*:*:R3*:*)
523 # Delta 88k system running SVR3
@@ -593,56 +613,56 @@
613 9000/31? ) HP_ARCH=m68000 ;;
614 9000/[34]?? ) HP_ARCH=m68k ;;
615 9000/[678][0-9][0-9])
616 if [ -x /usr/bin/getconf ]; then
617 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
618 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
619 case "${sc_cpu_version}" in
620 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
621 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
622 532) # CPU_PA_RISC2_0
623 case "${sc_kernel_bits}" in
624 32) HP_ARCH="hppa2.0n" ;;
625 64) HP_ARCH="hppa2.0w" ;;
626 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
627 esac ;;
628 esac
629 fi
630 if [ "${HP_ARCH}" = "" ]; then
631 eval $set_cc_for_build
632 sed 's/^ //' << EOF >$dummy.c
633
634 #define _HPUX_SOURCE
635 #include <stdlib.h>
636 #include <unistd.h>
637
638 int main ()
639 {
640 #if defined(_SC_KERNEL_BITS)
641 long bits = sysconf(_SC_KERNEL_BITS);
642 #endif
643 long cpu = sysconf (_SC_CPU_VERSION);
644
645 switch (cpu)
646 {
647 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
648 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
649 case CPU_PA_RISC2_0:
650 #if defined(_SC_KERNEL_BITS)
651 switch (bits)
652 {
653 case 64: puts ("hppa2.0w"); break;
654 case 32: puts ("hppa2.0n"); break;
655 default: puts ("hppa2.0"); break;
656 } break;
657 #else /* !defined(_SC_KERNEL_BITS) */
658 puts ("hppa2.0"); break;
659 #endif
660 default: puts ("hppa1.0"); break;
661 }
662 exit (0);
663 }
664 EOF
665 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
666 test -z "$HP_ARCH" && HP_ARCH=hppa
667 fi ;;
668 esac
@@ -729,26 +749,26 @@
749 parisc*:Lites*:*:*)
750 echo hppa1.1-hp-lites
751 exit ;;
752 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
753 echo c1-convex-bsd
754 exit ;;
755 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
756 if getsysinfo -f scalar_acc
757 then echo c32-convex-bsd
758 else echo c2-convex-bsd
759 fi
760 exit ;;
761 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
762 echo c34-convex-bsd
763 exit ;;
764 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
765 echo c38-convex-bsd
766 exit ;;
767 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
768 echo c4-convex-bsd
769 exit ;;
770 CRAY*Y-MP:*:*:*)
771 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
772 exit ;;
773 CRAY*[A-Z]90:*:*:*)
774 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
@@ -768,18 +788,18 @@
788 *:UNICOS/mp:*:*)
789 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
790 exit ;;
791 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
792 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
793 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
794 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
795 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
796 exit ;;
797 5000:UNIX_System_V:4.*:*)
798 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
799 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
800 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
801 exit ;;
802 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
803 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
804 exit ;;
805 sparc*:BSD/OS:*:*)
@@ -787,37 +807,39 @@
807 exit ;;
808 *:BSD/OS:*:*)
809 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
810 exit ;;
811 *:FreeBSD:*:*)
812 UNAME_PROCESSOR=`/usr/bin/uname -p`
813 case ${UNAME_PROCESSOR} in
 
814 amd64)
815 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
816 *)
817 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
818 esac
819 exit ;;
820 i*:CYGWIN*:*)
821 echo ${UNAME_MACHINE}-pc-cygwin
822 exit ;;
823 *:MINGW64*:*)
824 echo ${UNAME_MACHINE}-pc-mingw64
825 exit ;;
826 *:MINGW*:*)
827 echo ${UNAME_MACHINE}-pc-mingw32
828 exit ;;
829 *:MSYS*:*)
830 echo ${UNAME_MACHINE}-pc-msys
831 exit ;;
832 i*:windows32*:*)
833 # uname -m includes "-pc" on this system.
834 echo ${UNAME_MACHINE}-mingw32
835 exit ;;
836 i*:PW*:*)
837 echo ${UNAME_MACHINE}-pc-pw32
838 exit ;;
839 *:Interix*:*)
840 case ${UNAME_MACHINE} in
841 x86)
842 echo i586-pc-interix${UNAME_RELEASE}
843 exit ;;
844 authenticamd | genuineintel | EM64T)
845 echo x86_64-unknown-interix${UNAME_RELEASE}
@@ -850,74 +872,85 @@
872 prep*:SunOS:5.*:*)
873 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
874 exit ;;
875 *:GNU:*:*)
876 # the GNU system
877 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
878 exit ;;
879 *:GNU/*:*:*)
880 # other systems with GNU libc and userland
881 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
882 exit ;;
883 i*86:Minix:*:*)
884 echo ${UNAME_MACHINE}-pc-minix
885 exit ;;
886 aarch64:Linux:*:*)
887 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
888 exit ;;
889 aarch64_be:Linux:*:*)
890 UNAME_MACHINE=aarch64_be
891 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
892 exit ;;
893 alpha:Linux:*:*)
894 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
895 EV5) UNAME_MACHINE=alphaev5 ;;
896 EV56) UNAME_MACHINE=alphaev56 ;;
897 PCA56) UNAME_MACHINE=alphapca56 ;;
898 PCA57) UNAME_MACHINE=alphapca56 ;;
899 EV6) UNAME_MACHINE=alphaev6 ;;
900 EV67) UNAME_MACHINE=alphaev67 ;;
901 EV68*) UNAME_MACHINE=alphaev68 ;;
902 esac
903 objdump --private-headers /bin/sh | grep -q ld.so.1
904 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
905 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
906 exit ;;
907 arc:Linux:*:* | arceb:Linux:*:*)
908 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
909 exit ;;
910 arm*:Linux:*:*)
911 eval $set_cc_for_build
912 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
913 | grep -q __ARM_EABI__
914 then
915 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
916 else
917 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
918 | grep -q __ARM_PCS_VFP
919 then
920 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
921 else
922 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
923 fi
924 fi
925 exit ;;
926 avr32*:Linux:*:*)
927 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
928 exit ;;
929 cris:Linux:*:*)
930 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
931 exit ;;
932 crisv32:Linux:*:*)
933 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
934 exit ;;
935 frv:Linux:*:*)
936 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
937 exit ;;
938 hexagon:Linux:*:*)
939 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
940 exit ;;
941 i*86:Linux:*:*)
942 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 
 
 
 
 
 
 
 
943 exit ;;
944 ia64:Linux:*:*)
945 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
946 exit ;;
947 m32r*:Linux:*:*)
948 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
949 exit ;;
950 m68*:Linux:*:*)
951 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
952 exit ;;
953 mips:Linux:*:* | mips64:Linux:*:*)
954 eval $set_cc_for_build
955 sed 's/^ //' << EOF >$dummy.c
956 #undef CPU
@@ -932,71 +965,80 @@
965 CPU=
966 #endif
967 #endif
968 EOF
969 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
970 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
971 ;;
972 openrisc*:Linux:*:*)
973 echo or1k-unknown-linux-${LIBC}
974 exit ;;
975 or32:Linux:*:* | or1k*:Linux:*:*)
976 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
977 exit ;;
978 padre:Linux:*:*)
979 echo sparc-unknown-linux-${LIBC}
980 exit ;;
981 parisc64:Linux:*:* | hppa64:Linux:*:*)
982 echo hppa64-unknown-linux-${LIBC}
983 exit ;;
984 parisc:Linux:*:* | hppa:Linux:*:*)
985 # Look for CPU level
986 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
987 PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
988 PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
989 *) echo hppa-unknown-linux-${LIBC} ;;
990 esac
991 exit ;;
992 ppc64:Linux:*:*)
993 echo powerpc64-unknown-linux-${LIBC}
994 exit ;;
995 ppc:Linux:*:*)
996 echo powerpc-unknown-linux-${LIBC}
997 exit ;;
998 ppc64le:Linux:*:*)
999 echo powerpc64le-unknown-linux-${LIBC}
1000 exit ;;
1001 ppcle:Linux:*:*)
1002 echo powerpcle-unknown-linux-${LIBC}
1003 exit ;;
1004 s390:Linux:*:* | s390x:Linux:*:*)
1005 echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
1006 exit ;;
1007 sh64*:Linux:*:*)
1008 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1009 exit ;;
1010 sh*:Linux:*:*)
1011 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1012 exit ;;
1013 sparc:Linux:*:* | sparc64:Linux:*:*)
1014 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1015 exit ;;
1016 tile*:Linux:*:*)
1017 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1018 exit ;;
1019 vax:Linux:*:*)
1020 echo ${UNAME_MACHINE}-dec-linux-${LIBC}
1021 exit ;;
1022 x86_64:Linux:*:*)
1023 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1024 exit ;;
1025 xtensa*:Linux:*:*)
1026 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1027 exit ;;
1028 i*86:DYNIX/ptx:4*:*)
1029 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1030 # earlier versions are messed up and put the nodename in both
1031 # sysname and nodename.
1032 echo i386-sequent-sysv4
1033 exit ;;
1034 i*86:UNIX_SV:4.2MP:2.*)
1035 # Unixware is an offshoot of SVR4, but it has its own version
1036 # number series starting with 2...
1037 # I am not positive that other SVR4 systems won't match this,
1038 # I just have to hope. -- rms.
1039 # Use sysv4.2uw... so that sysv4* matches it.
1040 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1041 exit ;;
1042 i*86:OS/2:*:*)
1043 # If we were able to find `uname', then EMX Unix compatibility
1044 # is probably installed.
@@ -1024,11 +1066,11 @@
1066 else
1067 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1068 fi
1069 exit ;;
1070 i*86:*:5:[678]*)
1071 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1072 case `/bin/uname -X | grep "^Machine"` in
1073 *486*) UNAME_MACHINE=i486 ;;
1074 *Pentium) UNAME_MACHINE=i586 ;;
1075 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1076 esac
@@ -1052,17 +1094,17 @@
1094 echo ${UNAME_MACHINE}-pc-sysv32
1095 fi
1096 exit ;;
1097 pc:*:*:*)
1098 # Left here for compatibility:
1099 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1100 # the processor, so we play safe by assuming i586.
1101 # Note: whatever this is, it MUST be the same as what config.sub
1102 # prints for the "djgpp" host, or else GDB configury will decide that
1103 # this is a cross-build.
1104 echo i586-pc-msdosdjgpp
1105 exit ;;
1106 Intel:Mach:3*:*)
1107 echo i386-pc-mach3
1108 exit ;;
1109 paragon:*:*:*)
1110 echo i860-intel-osf1
@@ -1093,12 +1135,12 @@
1135 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1136 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1137 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1138 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1139 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1140 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1141 && { echo i486-ncr-sysv4; exit; } ;;
1142 NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1143 OS_REL='.3'
1144 test -r /etc/.relid \
1145 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1146 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
@@ -1137,14 +1179,14 @@
1179 echo ${UNAME_MACHINE}-sni-sysv4
1180 else
1181 echo ns32k-sni-sysv
1182 fi
1183 exit ;;
1184 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1185 # says <[email protected]>
1186 echo i586-unisys-sysv4
1187 exit ;;
1188 *:UNIX_System_V:4*:FTX*)
1189 # From Gerald Hewes <[email protected]>.
1190 # How about differentiating between stratus architectures? -djm
1191 echo hppa1.1-stratus-sysv4
1192 exit ;;
@@ -1166,15 +1208,15 @@
1208 news*:NEWS-OS:6*:*)
1209 echo mips-sony-newsos6
1210 exit ;;
1211 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1212 if [ -d /usr/nec ]; then
1213 echo mips-nec-sysv${UNAME_RELEASE}
1214 else
1215 echo mips-unknown-sysv${UNAME_RELEASE}
1216 fi
1217 exit ;;
1218 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1219 echo powerpc-be-beos
1220 exit ;;
1221 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1222 echo powerpc-apple-beos
@@ -1183,10 +1225,13 @@
1225 echo i586-pc-beos
1226 exit ;;
1227 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1228 echo i586-pc-haiku
1229 exit ;;
1230 x86_64:Haiku:*:*)
1231 echo x86_64-unknown-haiku
1232 exit ;;
1233 SX-4:SUPER-UX:*:*)
1234 echo sx4-nec-superux${UNAME_RELEASE}
1235 exit ;;
1236 SX-5:SUPER-UX:*:*)
1237 echo sx5-nec-superux${UNAME_RELEASE}
@@ -1209,23 +1254,35 @@
1254 *:Rhapsody:*:*)
1255 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1256 exit ;;
1257 *:Darwin:*:*)
1258 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1259 eval $set_cc_for_build
1260 if test "$UNAME_PROCESSOR" = unknown ; then
1261 UNAME_PROCESSOR=powerpc
1262 fi
1263 if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1264 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1265 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1266 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1267 grep IS_64BIT_ARCH >/dev/null
1268 then
1269 case $UNAME_PROCESSOR in
1270 i386) UNAME_PROCESSOR=x86_64 ;;
1271 powerpc) UNAME_PROCESSOR=powerpc64 ;;
1272 esac
1273 fi
1274 fi
1275 elif test "$UNAME_PROCESSOR" = i386 ; then
1276 # Avoid executing cc on OS X 10.9, as it ships with a stub
1277 # that puts up a graphical alert prompting to install
1278 # developer tools. Any system running Mac OS X 10.7 or
1279 # later (Darwin 11 and later) is required to have a 64-bit
1280 # processor. This is not true of the ARM version of Darwin
1281 # that Apple uses in portable devices.
1282 UNAME_PROCESSOR=x86_64
1283 fi
1284 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1285 exit ;;
1286 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1287 UNAME_PROCESSOR=`uname -p`
1288 if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1238,11 +1295,11 @@
1295 echo i386-pc-qnx
1296 exit ;;
1297 NEO-?:NONSTOP_KERNEL:*:*)
1298 echo neo-tandem-nsk${UNAME_RELEASE}
1299 exit ;;
1300 NSE-*:NONSTOP_KERNEL:*:*)
1301 echo nse-tandem-nsk${UNAME_RELEASE}
1302 exit ;;
1303 NSR-?:NONSTOP_KERNEL:*:*)
1304 echo nsr-tandem-nsk${UNAME_RELEASE}
1305 exit ;;
@@ -1283,17 +1340,17 @@
1340 exit ;;
1341 *:ITS:*:*)
1342 echo pdp10-unknown-its
1343 exit ;;
1344 SEI:*:*:SEIUX)
1345 echo mips-sei-seiux${UNAME_RELEASE}
1346 exit ;;
1347 *:DragonFly:*:*)
1348 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1349 exit ;;
1350 *:*VMS:*:*)
1351 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1352 case "${UNAME_MACHINE}" in
1353 A*) echo alpha-dec-vms ; exit ;;
1354 I*) echo ia64-dec-vms ; exit ;;
1355 V*) echo vax-dec-vms ; exit ;;
1356 esac ;;
@@ -1307,162 +1364,14 @@
1364 echo ${UNAME_MACHINE}-pc-rdos
1365 exit ;;
1366 i*86:AROS:*:*)
1367 echo ${UNAME_MACHINE}-pc-aros
1368 exit ;;
1369 x86_64:VMkernel:*:*)
1370 echo ${UNAME_MACHINE}-unknown-esx
1371 exit ;;
1372 esac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1373
1374 cat >&2 <<EOF
1375 $0: unable to guess system type
1376
1377 This script, last modified $timestamp, has failed to recognize
1378
+154 -103
--- autosetup/config.sub
+++ autosetup/config.sub
@@ -1,40 +1,33 @@
11
#! /bin/sh
22
# Configuration validation subroutine script.
3
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5
-# Free Software Foundation, Inc.
6
-
7
-timestamp='2010-09-11'
8
-
9
-# This file is (in principle) common to ALL GNU software.
10
-# The presence of a machine in this file suggests that SOME GNU software
11
-# can handle that machine. It does not imply ALL GNU software can.
12
-#
13
-# This file is free software; you can redistribute it and/or modify
14
-# it under the terms of the GNU General Public License as published by
15
-# the Free Software Foundation; either version 2 of the License, or
3
+# Copyright 1992-2014 Free Software Foundation, Inc.
4
+
5
+timestamp='2014-05-01'
6
+
7
+# This file is free software; you can redistribute it and/or modify it
8
+# under the terms of the GNU General Public License as published by
9
+# the Free Software Foundation; either version 3 of the License, or
1610
# (at your option) any later version.
1711
#
18
-# This program is distributed in the hope that it will be useful,
19
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
20
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
-# GNU General Public License for more details.
12
+# This program is distributed in the hope that it will be useful, but
13
+# WITHOUT ANY WARRANTY; without even the implied warranty of
14
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+# General Public License for more details.
2216
#
2317
# You should have received a copy of the GNU General Public License
24
-# along with this program; if not, write to the Free Software
25
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
26
-# 02110-1301, USA.
18
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
2719
#
2820
# As a special exception to the GNU General Public License, if you
2921
# distribute this file as part of a program that contains a
3022
# configuration script generated by Autoconf, you may include it under
31
-# the same distribution terms that you use for the rest of that program.
23
+# the same distribution terms that you use for the rest of that
24
+# program. This Exception is an additional permission under section 7
25
+# of the GNU General Public License, version 3 ("GPLv3").
3226
3327
34
-# Please send patches to <[email protected]>. Submit a context
35
-# diff and a properly formatted GNU ChangeLog entry.
28
+# Please send patches with a ChangeLog entry to [email protected].
3629
#
3730
# Configuration subroutine to validate and canonicalize a configuration type.
3831
# Supply the specified configuration type as an argument.
3932
# If it is invalid, we print an error message on stderr and exit with code 1.
4033
# Otherwise, we print the canonical config type on stdout and succeed.
@@ -73,13 +66,11 @@
7366
Report bugs and patches to <[email protected]>."
7467
7568
version="\
7669
GNU config.sub ($timestamp)
7770
78
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
79
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80
-Software Foundation, Inc.
71
+Copyright 1992-2014 Free Software Foundation, Inc.
8172
8273
This is free software; see the source for copying conditions. There is NO
8374
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
8475
8576
help="
@@ -123,17 +114,21 @@
123114
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
124115
# Here we must recognize all the valid KERNEL-OS combinations.
125116
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
126117
case $maybe_os in
127118
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
128
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
129120
knetbsd*-gnu* | netbsd*-gnu* | \
130121
kopensolaris*-gnu* | \
131122
storm-chaos* | os2-emx* | rtmk-nova*)
132123
os=-$maybe_os
133124
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
134125
;;
126
+ android-linux)
127
+ os=-linux-android
128
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
129
+ ;;
135130
*)
136131
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
137132
if [ $basic_machine != $1 ]
138133
then os=`echo $1 | sed 's/.*-/-/'`
139134
else os=; fi
@@ -152,16 +147,16 @@
152147
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
153148
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
154149
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
155150
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
156151
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
157
- -apple | -axis | -knuth | -cray | -microblaze)
152
+ -apple | -axis | -knuth | -cray | -microblaze*)
158153
os=
159154
basic_machine=$1
160155
;;
161
- -bluegene*)
162
- os=-cnk
156
+ -bluegene*)
157
+ os=-cnk
163158
;;
164159
-sim | -cisco | -oki | -wec | -winbond)
165160
os=
166161
basic_machine=$1
167162
;;
@@ -173,14 +168,14 @@
173168
;;
174169
-chorusos*)
175170
os=-chorusos
176171
basic_machine=$1
177172
;;
178
- -chorusrdb)
179
- os=-chorusrdb
173
+ -chorusrdb)
174
+ os=-chorusrdb
180175
basic_machine=$1
181
- ;;
176
+ ;;
182177
-hiux*)
183178
os=-hiuxwe2
184179
;;
185180
-sco6)
186181
os=-sco5v6
@@ -221,10 +216,16 @@
221216
basic_machine=clipper-intergraph
222217
;;
223218
-isc*)
224219
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
225220
;;
221
+ -lynx*178)
222
+ os=-lynxos178
223
+ ;;
224
+ -lynx*5)
225
+ os=-lynxos5
226
+ ;;
226227
-lynx*)
227228
os=-lynxos
228229
;;
229230
-ptx*)
230231
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
@@ -245,24 +246,32 @@
245246
case $basic_machine in
246247
# Recognize the basic CPU types without company name.
247248
# Some are omitted here because they have special meanings below.
248249
1750a | 580 \
249250
| a29k \
251
+ | aarch64 | aarch64_be \
250252
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
251253
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
252254
| am33_2.0 \
253
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
255
+ | arc | arceb \
256
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
257
+ | avr | avr32 \
258
+ | be32 | be64 \
254259
| bfin \
255
- | c4x | clipper \
260
+ | c4x | c8051 | clipper \
256261
| d10v | d30v | dlx | dsp16xx \
262
+ | epiphany \
257263
| fido | fr30 | frv \
258264
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265
+ | hexagon \
259266
| i370 | i860 | i960 | ia64 \
260267
| ip2k | iq2000 \
268
+ | k1om \
269
+ | le32 | le64 \
261270
| lm32 \
262271
| m32c | m32r | m32rle | m68000 | m68k | m88k \
263
- | maxq | mb | microblaze | mcore | mep | metag \
272
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
264273
| mips | mipsbe | mipseb | mipsel | mipsle \
265274
| mips16 \
266275
| mips64 | mips64el \
267276
| mips64octeon | mips64octeonel \
268277
| mips64orion | mips64orionel \
@@ -272,38 +281,41 @@
272281
| mips64vr4300 | mips64vr4300el \
273282
| mips64vr5000 | mips64vr5000el \
274283
| mips64vr5900 | mips64vr5900el \
275284
| mipsisa32 | mipsisa32el \
276285
| mipsisa32r2 | mipsisa32r2el \
286
+ | mipsisa32r6 | mipsisa32r6el \
277287
| mipsisa64 | mipsisa64el \
278288
| mipsisa64r2 | mipsisa64r2el \
289
+ | mipsisa64r6 | mipsisa64r6el \
279290
| mipsisa64sb1 | mipsisa64sb1el \
280291
| mipsisa64sr71k | mipsisa64sr71kel \
292
+ | mipsr5900 | mipsr5900el \
281293
| mipstx39 | mipstx39el \
282294
| mn10200 | mn10300 \
283295
| moxie \
284296
| mt \
285297
| msp430 \
286298
| nds32 | nds32le | nds32be \
287
- | nios | nios2 \
299
+ | nios | nios2 | nios2eb | nios2el \
288300
| ns16k | ns32k \
289
- | or32 \
301
+ | open8 | or1k | or1knd | or32 \
290302
| pdp10 | pdp11 | pj | pjl \
291
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
303
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
292304
| pyramid \
293
- | rx \
305
+ | rl78 | rx \
294306
| score \
295307
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
296308
| sh64 | sh64le \
297309
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
298310
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
299
- | spu | strongarm \
300
- | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
311
+ | spu \
312
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
301313
| ubicom32 \
302
- | v850 | v850e \
314
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
303315
| we32k \
304
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
316
+ | x86 | xc16x | xstormy16 | xtensa \
305317
| z8k | z80)
306318
basic_machine=$basic_machine-unknown
307319
;;
308320
c54x)
309321
basic_machine=tic54x-unknown
@@ -312,20 +324,34 @@
312324
basic_machine=tic55x-unknown
313325
;;
314326
c6x)
315327
basic_machine=tic6x-unknown
316328
;;
317
- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
318
- # Motorola 68HC11/12.
329
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
319330
basic_machine=$basic_machine-unknown
320331
os=-none
321332
;;
322333
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
323334
;;
324335
ms1)
325336
basic_machine=mt-unknown
326337
;;
338
+
339
+ strongarm | thumb | xscale)
340
+ basic_machine=arm-unknown
341
+ ;;
342
+ xgate)
343
+ basic_machine=$basic_machine-unknown
344
+ os=-none
345
+ ;;
346
+ xscaleeb)
347
+ basic_machine=armeb-unknown
348
+ ;;
349
+
350
+ xscaleel)
351
+ basic_machine=armel-unknown
352
+ ;;
327353
328354
# We use `pc' rather than `unknown'
329355
# because (1) that's what they normally are, and
330356
# (2) the word "unknown" tends to confuse beginning users.
331357
i*86 | x86_64)
@@ -337,29 +363,35 @@
337363
exit 1
338364
;;
339365
# Recognize the basic CPU types with company name.
340366
580-* \
341367
| a29k-* \
368
+ | aarch64-* | aarch64_be-* \
342369
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
343370
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
344
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
371
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
345372
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
346373
| avr-* | avr32-* \
374
+ | be32-* | be64-* \
347375
| bfin-* | bs2000-* \
348376
| c[123]* | c30-* | [cjt]90-* | c4x-* \
349
- | clipper-* | craynv-* | cydra-* \
377
+ | c8051-* | clipper-* | craynv-* | cydra-* \
350378
| d10v-* | d30v-* | dlx-* \
351379
| elxsi-* \
352380
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
353381
| h8300-* | h8500-* \
354382
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
383
+ | hexagon-* \
355384
| i*86-* | i860-* | i960-* | ia64-* \
356385
| ip2k-* | iq2000-* \
386
+ | k1om-* \
387
+ | le32-* | le64-* \
357388
| lm32-* \
358389
| m32c-* | m32r-* | m32rle-* \
359390
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
360
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
391
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
392
+ | microblaze-* | microblazeel-* \
361393
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
362394
| mips16-* \
363395
| mips64-* | mips64el-* \
364396
| mips64octeon-* | mips64octeonel-* \
365397
| mips64orion-* | mips64orionel-* \
@@ -369,39 +401,45 @@
369401
| mips64vr4300-* | mips64vr4300el-* \
370402
| mips64vr5000-* | mips64vr5000el-* \
371403
| mips64vr5900-* | mips64vr5900el-* \
372404
| mipsisa32-* | mipsisa32el-* \
373405
| mipsisa32r2-* | mipsisa32r2el-* \
406
+ | mipsisa32r6-* | mipsisa32r6el-* \
374407
| mipsisa64-* | mipsisa64el-* \
375408
| mipsisa64r2-* | mipsisa64r2el-* \
409
+ | mipsisa64r6-* | mipsisa64r6el-* \
376410
| mipsisa64sb1-* | mipsisa64sb1el-* \
377411
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
412
+ | mipsr5900-* | mipsr5900el-* \
378413
| mipstx39-* | mipstx39el-* \
379414
| mmix-* \
380415
| mt-* \
381416
| msp430-* \
382417
| nds32-* | nds32le-* | nds32be-* \
383
- | nios-* | nios2-* \
418
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
384419
| none-* | np1-* | ns16k-* | ns32k-* \
420
+ | open8-* \
421
+ | or1k*-* \
385422
| orion-* \
386423
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
387
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
424
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
388425
| pyramid-* \
389
- | romp-* | rs6000-* | rx-* \
426
+ | rl78-* | romp-* | rs6000-* | rx-* \
390427
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
391428
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
392429
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
393430
| sparclite-* \
394
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
395
- | tahoe-* | thumb-* \
431
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
432
+ | tahoe-* \
396433
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
397
- | tile-* | tilegx-* \
434
+ | tile*-* \
398435
| tron-* \
399436
| ubicom32-* \
400
- | v850-* | v850e-* | vax-* \
437
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
438
+ | vax-* \
401439
| we32k-* \
402
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
440
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
403441
| xstormy16-* | xtensa*-* \
404442
| ymp-* \
405443
| z8k-* | z80-*)
406444
;;
407445
# Recognize the basic CPU types without company name, with glob match.
@@ -422,11 +460,11 @@
422460
;;
423461
a29khif)
424462
basic_machine=a29k-amd
425463
os=-udi
426464
;;
427
- abacus)
465
+ abacus)
428466
basic_machine=abacus-unknown
429467
;;
430468
adobe68k)
431469
basic_machine=m68010-adobe
432470
os=-scout
@@ -505,11 +543,11 @@
505543
;;
506544
c90)
507545
basic_machine=c90-cray
508546
os=-unicos
509547
;;
510
- cegcc)
548
+ cegcc)
511549
basic_machine=arm-unknown
512550
os=-cegcc
513551
;;
514552
convex-c1)
515553
basic_machine=c1-convex
@@ -537,11 +575,11 @@
537575
;;
538576
craynv)
539577
basic_machine=craynv-cray
540578
os=-unicosmp
541579
;;
542
- cr16)
580
+ cr16 | cr16-*)
543581
basic_machine=cr16-unknown
544582
os=-elf
545583
;;
546584
crds | unos)
547585
basic_machine=m68k-crds
@@ -695,11 +733,10 @@
695733
os=-proelf
696734
;;
697735
i370-ibm* | ibm*)
698736
basic_machine=i370-ibm
699737
;;
700
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
701738
i*86v32)
702739
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
703740
os=-sysv32
704741
;;
705742
i*86v4*)
@@ -753,15 +790,19 @@
753790
;;
754791
merlin)
755792
basic_machine=ns32k-utek
756793
os=-sysv
757794
;;
758
- microblaze)
795
+ microblaze*)
759796
basic_machine=microblaze-xilinx
760797
;;
798
+ mingw64)
799
+ basic_machine=x86_64-pc
800
+ os=-mingw64
801
+ ;;
761802
mingw32)
762
- basic_machine=i386-pc
803
+ basic_machine=i686-pc
763804
os=-mingw32
764805
;;
765806
mingw32ce)
766807
basic_machine=arm-unknown
767808
os=-mingw32ce
@@ -792,18 +833,22 @@
792833
os=-msdos
793834
;;
794835
ms1-*)
795836
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
796837
;;
838
+ msys)
839
+ basic_machine=i686-pc
840
+ os=-msys
841
+ ;;
797842
mvs)
798843
basic_machine=i370-ibm
799844
os=-mvs
800845
;;
801
- msys)
802
- basic_machine=i386-pc
803
- os=-msys
804
- ;;
846
+ nacl)
847
+ basic_machine=le32-unknown
848
+ os=-nacl
849
+ ;;
805850
ncr3000)
806851
basic_machine=i486-ncr
807852
os=-sysv4
808853
;;
809854
netbsd386)
@@ -864,14 +909,14 @@
864909
os=-nonstopux
865910
;;
866911
np1)
867912
basic_machine=np1-gould
868913
;;
869
- neo-tandem)
914
+ neo-tandem)
870915
basic_machine=neo-tandem
871916
;;
872
- nse-tandem)
917
+ nse-tandem)
873918
basic_machine=nse-tandem
874919
;;
875920
nsr-tandem)
876921
basic_machine=nsr-tandem
877922
;;
@@ -952,13 +997,14 @@
952997
pn)
953998
basic_machine=pn-gould
954999
;;
9551000
power) basic_machine=power-ibm
9561001
;;
957
- ppc) basic_machine=powerpc-unknown
1002
+ ppc | ppcbe) basic_machine=powerpc-unknown
9581003
;;
959
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1004
+ ppc-* | ppcbe-*)
1005
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
9601006
;;
9611007
ppcle | powerpclittle | ppc-le | powerpc-little)
9621008
basic_machine=powerpcle-unknown
9631009
;;
9641010
ppcle-* | powerpclittle-*)
@@ -979,11 +1025,15 @@
9791025
;;
9801026
pw32)
9811027
basic_machine=i586-unknown
9821028
os=-pw32
9831029
;;
984
- rdos)
1030
+ rdos | rdos64)
1031
+ basic_machine=x86_64-pc
1032
+ os=-rdos
1033
+ ;;
1034
+ rdos32)
9851035
basic_machine=i386-pc
9861036
os=-rdos
9871037
;;
9881038
rom68k)
9891039
basic_machine=m68k-rom68k
@@ -1048,10 +1098,13 @@
10481098
;;
10491099
stratus)
10501100
basic_machine=i860-stratus
10511101
os=-sysv4
10521102
;;
1103
+ strongarm-* | thumb-*)
1104
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1105
+ ;;
10531106
sun2)
10541107
basic_machine=m68000-sun
10551108
;;
10561109
sun2os3)
10571110
basic_machine=m68000-sun
@@ -1104,17 +1157,12 @@
11041157
;;
11051158
t90)
11061159
basic_machine=t90-cray
11071160
os=-unicos
11081161
;;
1109
- # This must be matched before tile*.
1110
- tilegx*)
1111
- basic_machine=tilegx-unknown
1112
- os=-linux-gnu
1113
- ;;
11141162
tile*)
1115
- basic_machine=tile-unknown
1163
+ basic_machine=$basic_machine-unknown
11161164
os=-linux-gnu
11171165
;;
11181166
tx39)
11191167
basic_machine=mipstx39-unknown
11201168
;;
@@ -1180,10 +1228,13 @@
11801228
os=-mingw32
11811229
;;
11821230
xps | xps100)
11831231
basic_machine=xps100-honeywell
11841232
;;
1233
+ xscale-* | xscalee[bl]-*)
1234
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1235
+ ;;
11851236
ymp)
11861237
basic_machine=ymp-cray
11871238
os=-unicos
11881239
;;
11891240
z8k-*-coff)
@@ -1277,15 +1328,15 @@
12771328
# Decode manufacturer-specific aliases for certain operating systems.
12781329
12791330
if [ x"$os" != x"" ]
12801331
then
12811332
case $os in
1282
- # First match some system type aliases
1283
- # that might get confused with valid system types.
1333
+ # First match some system type aliases
1334
+ # that might get confused with valid system types.
12841335
# -solaris* is a basic system type, with this one exception.
1285
- -auroraux)
1286
- os=-auroraux
1336
+ -auroraux)
1337
+ os=-auroraux
12871338
;;
12881339
-solaris1 | -solaris1.*)
12891340
os=`echo $os | sed -e 's|solaris1|sunos4|'`
12901341
;;
12911342
-solaris)
@@ -1305,33 +1356,33 @@
13051356
# Each alternative MUST END IN A *, to match a version number.
13061357
# -sysv* is not here because it comes later, after sysvr4.
13071358
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13081359
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13091360
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1310
- | -sym* | -kopensolaris* \
1361
+ | -sym* | -kopensolaris* | -plan9* \
13111362
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
13121363
| -aos* | -aros* \
13131364
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
13141365
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
13151366
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1316
- | -openbsd* | -solidbsd* \
1367
+ | -bitrig* | -openbsd* | -solidbsd* \
13171368
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13181369
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
13191370
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
13201371
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
13211372
| -chorusos* | -chorusrdb* | -cegcc* \
13221373
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1323
- | -mingw32* | -linux-gnu* | -linux-android* \
1324
- | -linux-newlib* | -linux-uclibc* \
1374
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1375
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
13251376
| -uxpv* | -beos* | -mpeix* | -udk* \
13261377
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
13271378
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
13281379
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
13291380
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
13301381
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
13311382
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1332
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1383
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
13331384
# Remember, each alternative MUST END IN *, to match a version number.
13341385
;;
13351386
-qnx*)
13361387
case $basic_machine in
13371388
x86-* | i*86-*)
@@ -1366,11 +1417,11 @@
13661417
os=`echo $os | sed -e 's|sunos6|solaris3|'`
13671418
;;
13681419
-opened*)
13691420
os=-openedition
13701421
;;
1371
- -os400*)
1422
+ -os400*)
13721423
os=-os400
13731424
;;
13741425
-wince*)
13751426
os=-wince
13761427
;;
@@ -1415,11 +1466,11 @@
14151466
os=`echo $os | sed -e 's|sinix|sysv|'`
14161467
;;
14171468
-sinix*)
14181469
os=-sysv4
14191470
;;
1420
- -tpf*)
1471
+ -tpf*)
14211472
os=-tpf
14221473
;;
14231474
-triton*)
14241475
os=-sysv3
14251476
;;
@@ -1451,21 +1502,18 @@
14511502
os=-mint
14521503
;;
14531504
-aros*)
14541505
os=-aros
14551506
;;
1456
- -kaos*)
1457
- os=-kaos
1458
- ;;
14591507
-zvmoe)
14601508
os=-zvmoe
14611509
;;
14621510
-dicos*)
14631511
os=-dicos
14641512
;;
1465
- -nacl*)
1466
- ;;
1513
+ -nacl*)
1514
+ ;;
14671515
-none)
14681516
;;
14691517
*)
14701518
# Get rid of the `-' at the beginning of $os.
14711519
os=`echo $os | sed 's/[^-]*-//'`
@@ -1484,14 +1532,14 @@
14841532
# that MANUFACTURER isn't an operating system. Otherwise, code above
14851533
# will signal an error saying that MANUFACTURER isn't an operating
14861534
# system, and we'll never get to this point.
14871535
14881536
case $basic_machine in
1489
- score-*)
1537
+ score-*)
14901538
os=-elf
14911539
;;
1492
- spu-*)
1540
+ spu-*)
14931541
os=-elf
14941542
;;
14951543
*-acorn)
14961544
os=-riscix1.2
14971545
;;
@@ -1499,12 +1547,18 @@
14991547
os=-linux
15001548
;;
15011549
arm*-semi)
15021550
os=-aout
15031551
;;
1504
- c4x-* | tic4x-*)
1505
- os=-coff
1552
+ c4x-* | tic4x-*)
1553
+ os=-coff
1554
+ ;;
1555
+ c8051-*)
1556
+ os=-elf
1557
+ ;;
1558
+ hexagon-*)
1559
+ os=-elf
15061560
;;
15071561
tic54x-*)
15081562
os=-coff
15091563
;;
15101564
tic55x-*)
@@ -1529,18 +1583,15 @@
15291583
i386-sun)
15301584
os=-sunos4.0.2
15311585
;;
15321586
m68000-sun)
15331587
os=-sunos3
1534
- # This also exists in the configure program, but was not the
1535
- # default.
1536
- # os=-sunos4
15371588
;;
15381589
m68*-cisco)
15391590
os=-aout
15401591
;;
1541
- mep-*)
1592
+ mep-*)
15421593
os=-elf
15431594
;;
15441595
mips*-cisco)
15451596
os=-elf
15461597
;;
@@ -1563,11 +1614,11 @@
15631614
os=-haiku
15641615
;;
15651616
*-ibm)
15661617
os=-aix
15671618
;;
1568
- *-knuth)
1619
+ *-knuth)
15691620
os=-mmixware
15701621
;;
15711622
*-wec)
15721623
os=-proelf
15731624
;;
15741625
--- autosetup/config.sub
+++ autosetup/config.sub
@@ -1,40 +1,33 @@
1 #! /bin/sh
2 # Configuration validation subroutine script.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 # Free Software Foundation, Inc.
6
7 timestamp='2010-09-11'
8
9 # This file is (in principle) common to ALL GNU software.
10 # The presence of a machine in this file suggests that SOME GNU software
11 # can handle that machine. It does not imply ALL GNU software can.
12 #
13 # This file is free software; you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation; either version 2 of the License, or
16 # (at your option) any later version.
17 #
18 # This program is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # GNU General Public License for more details.
22 #
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write to the Free Software
25 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
26 # 02110-1301, USA.
27 #
28 # As a special exception to the GNU General Public License, if you
29 # distribute this file as part of a program that contains a
30 # configuration script generated by Autoconf, you may include it under
31 # the same distribution terms that you use for the rest of that program.
 
 
32
33
34 # Please send patches to <[email protected]>. Submit a context
35 # diff and a properly formatted GNU ChangeLog entry.
36 #
37 # Configuration subroutine to validate and canonicalize a configuration type.
38 # Supply the specified configuration type as an argument.
39 # If it is invalid, we print an error message on stderr and exit with code 1.
40 # Otherwise, we print the canonical config type on stdout and succeed.
@@ -73,13 +66,11 @@
73 Report bugs and patches to <[email protected]>."
74
75 version="\
76 GNU config.sub ($timestamp)
77
78 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
79 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80 Software Foundation, Inc.
81
82 This is free software; see the source for copying conditions. There is NO
83 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
84
85 help="
@@ -123,17 +114,21 @@
123 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
124 # Here we must recognize all the valid KERNEL-OS combinations.
125 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
126 case $maybe_os in
127 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
128 linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
129 knetbsd*-gnu* | netbsd*-gnu* | \
130 kopensolaris*-gnu* | \
131 storm-chaos* | os2-emx* | rtmk-nova*)
132 os=-$maybe_os
133 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
134 ;;
 
 
 
 
135 *)
136 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
137 if [ $basic_machine != $1 ]
138 then os=`echo $1 | sed 's/.*-/-/'`
139 else os=; fi
@@ -152,16 +147,16 @@
152 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
153 -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
154 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
155 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
156 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
157 -apple | -axis | -knuth | -cray | -microblaze)
158 os=
159 basic_machine=$1
160 ;;
161 -bluegene*)
162 os=-cnk
163 ;;
164 -sim | -cisco | -oki | -wec | -winbond)
165 os=
166 basic_machine=$1
167 ;;
@@ -173,14 +168,14 @@
173 ;;
174 -chorusos*)
175 os=-chorusos
176 basic_machine=$1
177 ;;
178 -chorusrdb)
179 os=-chorusrdb
180 basic_machine=$1
181 ;;
182 -hiux*)
183 os=-hiuxwe2
184 ;;
185 -sco6)
186 os=-sco5v6
@@ -221,10 +216,16 @@
221 basic_machine=clipper-intergraph
222 ;;
223 -isc*)
224 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
225 ;;
 
 
 
 
 
 
226 -lynx*)
227 os=-lynxos
228 ;;
229 -ptx*)
230 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
@@ -245,24 +246,32 @@
245 case $basic_machine in
246 # Recognize the basic CPU types without company name.
247 # Some are omitted here because they have special meanings below.
248 1750a | 580 \
249 | a29k \
 
250 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
251 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
252 | am33_2.0 \
253 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
 
 
 
254 | bfin \
255 | c4x | clipper \
256 | d10v | d30v | dlx | dsp16xx \
 
257 | fido | fr30 | frv \
258 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 
259 | i370 | i860 | i960 | ia64 \
260 | ip2k | iq2000 \
 
 
261 | lm32 \
262 | m32c | m32r | m32rle | m68000 | m68k | m88k \
263 | maxq | mb | microblaze | mcore | mep | metag \
264 | mips | mipsbe | mipseb | mipsel | mipsle \
265 | mips16 \
266 | mips64 | mips64el \
267 | mips64octeon | mips64octeonel \
268 | mips64orion | mips64orionel \
@@ -272,38 +281,41 @@
272 | mips64vr4300 | mips64vr4300el \
273 | mips64vr5000 | mips64vr5000el \
274 | mips64vr5900 | mips64vr5900el \
275 | mipsisa32 | mipsisa32el \
276 | mipsisa32r2 | mipsisa32r2el \
 
277 | mipsisa64 | mipsisa64el \
278 | mipsisa64r2 | mipsisa64r2el \
 
279 | mipsisa64sb1 | mipsisa64sb1el \
280 | mipsisa64sr71k | mipsisa64sr71kel \
 
281 | mipstx39 | mipstx39el \
282 | mn10200 | mn10300 \
283 | moxie \
284 | mt \
285 | msp430 \
286 | nds32 | nds32le | nds32be \
287 | nios | nios2 \
288 | ns16k | ns32k \
289 | or32 \
290 | pdp10 | pdp11 | pj | pjl \
291 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
292 | pyramid \
293 | rx \
294 | score \
295 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
296 | sh64 | sh64le \
297 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
298 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
299 | spu | strongarm \
300 | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
301 | ubicom32 \
302 | v850 | v850e \
303 | we32k \
304 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
305 | z8k | z80)
306 basic_machine=$basic_machine-unknown
307 ;;
308 c54x)
309 basic_machine=tic54x-unknown
@@ -312,20 +324,34 @@
312 basic_machine=tic55x-unknown
313 ;;
314 c6x)
315 basic_machine=tic6x-unknown
316 ;;
317 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
318 # Motorola 68HC11/12.
319 basic_machine=$basic_machine-unknown
320 os=-none
321 ;;
322 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
323 ;;
324 ms1)
325 basic_machine=mt-unknown
326 ;;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
327
328 # We use `pc' rather than `unknown'
329 # because (1) that's what they normally are, and
330 # (2) the word "unknown" tends to confuse beginning users.
331 i*86 | x86_64)
@@ -337,29 +363,35 @@
337 exit 1
338 ;;
339 # Recognize the basic CPU types with company name.
340 580-* \
341 | a29k-* \
 
342 | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
343 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
344 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
345 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
346 | avr-* | avr32-* \
 
347 | bfin-* | bs2000-* \
348 | c[123]* | c30-* | [cjt]90-* | c4x-* \
349 | clipper-* | craynv-* | cydra-* \
350 | d10v-* | d30v-* | dlx-* \
351 | elxsi-* \
352 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
353 | h8300-* | h8500-* \
354 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 
355 | i*86-* | i860-* | i960-* | ia64-* \
356 | ip2k-* | iq2000-* \
 
 
357 | lm32-* \
358 | m32c-* | m32r-* | m32rle-* \
359 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
360 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
 
361 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
362 | mips16-* \
363 | mips64-* | mips64el-* \
364 | mips64octeon-* | mips64octeonel-* \
365 | mips64orion-* | mips64orionel-* \
@@ -369,39 +401,45 @@
369 | mips64vr4300-* | mips64vr4300el-* \
370 | mips64vr5000-* | mips64vr5000el-* \
371 | mips64vr5900-* | mips64vr5900el-* \
372 | mipsisa32-* | mipsisa32el-* \
373 | mipsisa32r2-* | mipsisa32r2el-* \
 
374 | mipsisa64-* | mipsisa64el-* \
375 | mipsisa64r2-* | mipsisa64r2el-* \
 
376 | mipsisa64sb1-* | mipsisa64sb1el-* \
377 | mipsisa64sr71k-* | mipsisa64sr71kel-* \
 
378 | mipstx39-* | mipstx39el-* \
379 | mmix-* \
380 | mt-* \
381 | msp430-* \
382 | nds32-* | nds32le-* | nds32be-* \
383 | nios-* | nios2-* \
384 | none-* | np1-* | ns16k-* | ns32k-* \
 
 
385 | orion-* \
386 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
387 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
388 | pyramid-* \
389 | romp-* | rs6000-* | rx-* \
390 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
391 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
392 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
393 | sparclite-* \
394 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
395 | tahoe-* | thumb-* \
396 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
397 | tile-* | tilegx-* \
398 | tron-* \
399 | ubicom32-* \
400 | v850-* | v850e-* | vax-* \
 
401 | we32k-* \
402 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
403 | xstormy16-* | xtensa*-* \
404 | ymp-* \
405 | z8k-* | z80-*)
406 ;;
407 # Recognize the basic CPU types without company name, with glob match.
@@ -422,11 +460,11 @@
422 ;;
423 a29khif)
424 basic_machine=a29k-amd
425 os=-udi
426 ;;
427 abacus)
428 basic_machine=abacus-unknown
429 ;;
430 adobe68k)
431 basic_machine=m68010-adobe
432 os=-scout
@@ -505,11 +543,11 @@
505 ;;
506 c90)
507 basic_machine=c90-cray
508 os=-unicos
509 ;;
510 cegcc)
511 basic_machine=arm-unknown
512 os=-cegcc
513 ;;
514 convex-c1)
515 basic_machine=c1-convex
@@ -537,11 +575,11 @@
537 ;;
538 craynv)
539 basic_machine=craynv-cray
540 os=-unicosmp
541 ;;
542 cr16)
543 basic_machine=cr16-unknown
544 os=-elf
545 ;;
546 crds | unos)
547 basic_machine=m68k-crds
@@ -695,11 +733,10 @@
695 os=-proelf
696 ;;
697 i370-ibm* | ibm*)
698 basic_machine=i370-ibm
699 ;;
700 # I'm not sure what "Sysv32" means. Should this be sysv3.2?
701 i*86v32)
702 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
703 os=-sysv32
704 ;;
705 i*86v4*)
@@ -753,15 +790,19 @@
753 ;;
754 merlin)
755 basic_machine=ns32k-utek
756 os=-sysv
757 ;;
758 microblaze)
759 basic_machine=microblaze-xilinx
760 ;;
 
 
 
 
761 mingw32)
762 basic_machine=i386-pc
763 os=-mingw32
764 ;;
765 mingw32ce)
766 basic_machine=arm-unknown
767 os=-mingw32ce
@@ -792,18 +833,22 @@
792 os=-msdos
793 ;;
794 ms1-*)
795 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
796 ;;
 
 
 
 
797 mvs)
798 basic_machine=i370-ibm
799 os=-mvs
800 ;;
801 msys)
802 basic_machine=i386-pc
803 os=-msys
804 ;;
805 ncr3000)
806 basic_machine=i486-ncr
807 os=-sysv4
808 ;;
809 netbsd386)
@@ -864,14 +909,14 @@
864 os=-nonstopux
865 ;;
866 np1)
867 basic_machine=np1-gould
868 ;;
869 neo-tandem)
870 basic_machine=neo-tandem
871 ;;
872 nse-tandem)
873 basic_machine=nse-tandem
874 ;;
875 nsr-tandem)
876 basic_machine=nsr-tandem
877 ;;
@@ -952,13 +997,14 @@
952 pn)
953 basic_machine=pn-gould
954 ;;
955 power) basic_machine=power-ibm
956 ;;
957 ppc) basic_machine=powerpc-unknown
958 ;;
959 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
 
960 ;;
961 ppcle | powerpclittle | ppc-le | powerpc-little)
962 basic_machine=powerpcle-unknown
963 ;;
964 ppcle-* | powerpclittle-*)
@@ -979,11 +1025,15 @@
979 ;;
980 pw32)
981 basic_machine=i586-unknown
982 os=-pw32
983 ;;
984 rdos)
 
 
 
 
985 basic_machine=i386-pc
986 os=-rdos
987 ;;
988 rom68k)
989 basic_machine=m68k-rom68k
@@ -1048,10 +1098,13 @@
1048 ;;
1049 stratus)
1050 basic_machine=i860-stratus
1051 os=-sysv4
1052 ;;
 
 
 
1053 sun2)
1054 basic_machine=m68000-sun
1055 ;;
1056 sun2os3)
1057 basic_machine=m68000-sun
@@ -1104,17 +1157,12 @@
1104 ;;
1105 t90)
1106 basic_machine=t90-cray
1107 os=-unicos
1108 ;;
1109 # This must be matched before tile*.
1110 tilegx*)
1111 basic_machine=tilegx-unknown
1112 os=-linux-gnu
1113 ;;
1114 tile*)
1115 basic_machine=tile-unknown
1116 os=-linux-gnu
1117 ;;
1118 tx39)
1119 basic_machine=mipstx39-unknown
1120 ;;
@@ -1180,10 +1228,13 @@
1180 os=-mingw32
1181 ;;
1182 xps | xps100)
1183 basic_machine=xps100-honeywell
1184 ;;
 
 
 
1185 ymp)
1186 basic_machine=ymp-cray
1187 os=-unicos
1188 ;;
1189 z8k-*-coff)
@@ -1277,15 +1328,15 @@
1277 # Decode manufacturer-specific aliases for certain operating systems.
1278
1279 if [ x"$os" != x"" ]
1280 then
1281 case $os in
1282 # First match some system type aliases
1283 # that might get confused with valid system types.
1284 # -solaris* is a basic system type, with this one exception.
1285 -auroraux)
1286 os=-auroraux
1287 ;;
1288 -solaris1 | -solaris1.*)
1289 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1290 ;;
1291 -solaris)
@@ -1305,33 +1356,33 @@
1305 # Each alternative MUST END IN A *, to match a version number.
1306 # -sysv* is not here because it comes later, after sysvr4.
1307 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1308 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1309 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1310 | -sym* | -kopensolaris* \
1311 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1312 | -aos* | -aros* \
1313 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1314 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1315 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1316 | -openbsd* | -solidbsd* \
1317 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1318 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1319 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1320 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1321 | -chorusos* | -chorusrdb* | -cegcc* \
1322 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1323 | -mingw32* | -linux-gnu* | -linux-android* \
1324 | -linux-newlib* | -linux-uclibc* \
1325 | -uxpv* | -beos* | -mpeix* | -udk* \
1326 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1327 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1328 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1329 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1330 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1331 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1332 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1333 # Remember, each alternative MUST END IN *, to match a version number.
1334 ;;
1335 -qnx*)
1336 case $basic_machine in
1337 x86-* | i*86-*)
@@ -1366,11 +1417,11 @@
1366 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1367 ;;
1368 -opened*)
1369 os=-openedition
1370 ;;
1371 -os400*)
1372 os=-os400
1373 ;;
1374 -wince*)
1375 os=-wince
1376 ;;
@@ -1415,11 +1466,11 @@
1415 os=`echo $os | sed -e 's|sinix|sysv|'`
1416 ;;
1417 -sinix*)
1418 os=-sysv4
1419 ;;
1420 -tpf*)
1421 os=-tpf
1422 ;;
1423 -triton*)
1424 os=-sysv3
1425 ;;
@@ -1451,21 +1502,18 @@
1451 os=-mint
1452 ;;
1453 -aros*)
1454 os=-aros
1455 ;;
1456 -kaos*)
1457 os=-kaos
1458 ;;
1459 -zvmoe)
1460 os=-zvmoe
1461 ;;
1462 -dicos*)
1463 os=-dicos
1464 ;;
1465 -nacl*)
1466 ;;
1467 -none)
1468 ;;
1469 *)
1470 # Get rid of the `-' at the beginning of $os.
1471 os=`echo $os | sed 's/[^-]*-//'`
@@ -1484,14 +1532,14 @@
1484 # that MANUFACTURER isn't an operating system. Otherwise, code above
1485 # will signal an error saying that MANUFACTURER isn't an operating
1486 # system, and we'll never get to this point.
1487
1488 case $basic_machine in
1489 score-*)
1490 os=-elf
1491 ;;
1492 spu-*)
1493 os=-elf
1494 ;;
1495 *-acorn)
1496 os=-riscix1.2
1497 ;;
@@ -1499,12 +1547,18 @@
1499 os=-linux
1500 ;;
1501 arm*-semi)
1502 os=-aout
1503 ;;
1504 c4x-* | tic4x-*)
1505 os=-coff
 
 
 
 
 
 
1506 ;;
1507 tic54x-*)
1508 os=-coff
1509 ;;
1510 tic55x-*)
@@ -1529,18 +1583,15 @@
1529 i386-sun)
1530 os=-sunos4.0.2
1531 ;;
1532 m68000-sun)
1533 os=-sunos3
1534 # This also exists in the configure program, but was not the
1535 # default.
1536 # os=-sunos4
1537 ;;
1538 m68*-cisco)
1539 os=-aout
1540 ;;
1541 mep-*)
1542 os=-elf
1543 ;;
1544 mips*-cisco)
1545 os=-elf
1546 ;;
@@ -1563,11 +1614,11 @@
1563 os=-haiku
1564 ;;
1565 *-ibm)
1566 os=-aix
1567 ;;
1568 *-knuth)
1569 os=-mmixware
1570 ;;
1571 *-wec)
1572 os=-proelf
1573 ;;
1574
--- autosetup/config.sub
+++ autosetup/config.sub
@@ -1,40 +1,33 @@
1 #! /bin/sh
2 # Configuration validation subroutine script.
3 # Copyright 1992-2014 Free Software Foundation, Inc.
4
5 timestamp='2014-05-01'
6
7 # This file is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
 
 
 
 
 
 
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 
19 #
20 # As a special exception to the GNU General Public License, if you
21 # distribute this file as part of a program that contains a
22 # configuration script generated by Autoconf, you may include it under
23 # the same distribution terms that you use for the rest of that
24 # program. This Exception is an additional permission under section 7
25 # of the GNU General Public License, version 3 ("GPLv3").
26
27
28 # Please send patches with a ChangeLog entry to [email protected].
 
29 #
30 # Configuration subroutine to validate and canonicalize a configuration type.
31 # Supply the specified configuration type as an argument.
32 # If it is invalid, we print an error message on stderr and exit with code 1.
33 # Otherwise, we print the canonical config type on stdout and succeed.
@@ -73,13 +66,11 @@
66 Report bugs and patches to <[email protected]>."
67
68 version="\
69 GNU config.sub ($timestamp)
70
71 Copyright 1992-2014 Free Software Foundation, Inc.
 
 
72
73 This is free software; see the source for copying conditions. There is NO
74 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
75
76 help="
@@ -123,17 +114,21 @@
114 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
115 # Here we must recognize all the valid KERNEL-OS combinations.
116 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
117 case $maybe_os in
118 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
119 linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
120 knetbsd*-gnu* | netbsd*-gnu* | \
121 kopensolaris*-gnu* | \
122 storm-chaos* | os2-emx* | rtmk-nova*)
123 os=-$maybe_os
124 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
125 ;;
126 android-linux)
127 os=-linux-android
128 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
129 ;;
130 *)
131 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
132 if [ $basic_machine != $1 ]
133 then os=`echo $1 | sed 's/.*-/-/'`
134 else os=; fi
@@ -152,16 +147,16 @@
147 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
148 -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
149 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
150 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
151 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
152 -apple | -axis | -knuth | -cray | -microblaze*)
153 os=
154 basic_machine=$1
155 ;;
156 -bluegene*)
157 os=-cnk
158 ;;
159 -sim | -cisco | -oki | -wec | -winbond)
160 os=
161 basic_machine=$1
162 ;;
@@ -173,14 +168,14 @@
168 ;;
169 -chorusos*)
170 os=-chorusos
171 basic_machine=$1
172 ;;
173 -chorusrdb)
174 os=-chorusrdb
175 basic_machine=$1
176 ;;
177 -hiux*)
178 os=-hiuxwe2
179 ;;
180 -sco6)
181 os=-sco5v6
@@ -221,10 +216,16 @@
216 basic_machine=clipper-intergraph
217 ;;
218 -isc*)
219 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
220 ;;
221 -lynx*178)
222 os=-lynxos178
223 ;;
224 -lynx*5)
225 os=-lynxos5
226 ;;
227 -lynx*)
228 os=-lynxos
229 ;;
230 -ptx*)
231 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
@@ -245,24 +246,32 @@
246 case $basic_machine in
247 # Recognize the basic CPU types without company name.
248 # Some are omitted here because they have special meanings below.
249 1750a | 580 \
250 | a29k \
251 | aarch64 | aarch64_be \
252 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
253 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
254 | am33_2.0 \
255 | arc | arceb \
256 | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
257 | avr | avr32 \
258 | be32 | be64 \
259 | bfin \
260 | c4x | c8051 | clipper \
261 | d10v | d30v | dlx | dsp16xx \
262 | epiphany \
263 | fido | fr30 | frv \
264 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265 | hexagon \
266 | i370 | i860 | i960 | ia64 \
267 | ip2k | iq2000 \
268 | k1om \
269 | le32 | le64 \
270 | lm32 \
271 | m32c | m32r | m32rle | m68000 | m68k | m88k \
272 | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
273 | mips | mipsbe | mipseb | mipsel | mipsle \
274 | mips16 \
275 | mips64 | mips64el \
276 | mips64octeon | mips64octeonel \
277 | mips64orion | mips64orionel \
@@ -272,38 +281,41 @@
281 | mips64vr4300 | mips64vr4300el \
282 | mips64vr5000 | mips64vr5000el \
283 | mips64vr5900 | mips64vr5900el \
284 | mipsisa32 | mipsisa32el \
285 | mipsisa32r2 | mipsisa32r2el \
286 | mipsisa32r6 | mipsisa32r6el \
287 | mipsisa64 | mipsisa64el \
288 | mipsisa64r2 | mipsisa64r2el \
289 | mipsisa64r6 | mipsisa64r6el \
290 | mipsisa64sb1 | mipsisa64sb1el \
291 | mipsisa64sr71k | mipsisa64sr71kel \
292 | mipsr5900 | mipsr5900el \
293 | mipstx39 | mipstx39el \
294 | mn10200 | mn10300 \
295 | moxie \
296 | mt \
297 | msp430 \
298 | nds32 | nds32le | nds32be \
299 | nios | nios2 | nios2eb | nios2el \
300 | ns16k | ns32k \
301 | open8 | or1k | or1knd | or32 \
302 | pdp10 | pdp11 | pj | pjl \
303 | powerpc | powerpc64 | powerpc64le | powerpcle \
304 | pyramid \
305 | rl78 | rx \
306 | score \
307 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
308 | sh64 | sh64le \
309 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
310 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
311 | spu \
312 | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
313 | ubicom32 \
314 | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
315 | we32k \
316 | x86 | xc16x | xstormy16 | xtensa \
317 | z8k | z80)
318 basic_machine=$basic_machine-unknown
319 ;;
320 c54x)
321 basic_machine=tic54x-unknown
@@ -312,20 +324,34 @@
324 basic_machine=tic55x-unknown
325 ;;
326 c6x)
327 basic_machine=tic6x-unknown
328 ;;
329 m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
 
330 basic_machine=$basic_machine-unknown
331 os=-none
332 ;;
333 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
334 ;;
335 ms1)
336 basic_machine=mt-unknown
337 ;;
338
339 strongarm | thumb | xscale)
340 basic_machine=arm-unknown
341 ;;
342 xgate)
343 basic_machine=$basic_machine-unknown
344 os=-none
345 ;;
346 xscaleeb)
347 basic_machine=armeb-unknown
348 ;;
349
350 xscaleel)
351 basic_machine=armel-unknown
352 ;;
353
354 # We use `pc' rather than `unknown'
355 # because (1) that's what they normally are, and
356 # (2) the word "unknown" tends to confuse beginning users.
357 i*86 | x86_64)
@@ -337,29 +363,35 @@
363 exit 1
364 ;;
365 # Recognize the basic CPU types with company name.
366 580-* \
367 | a29k-* \
368 | aarch64-* | aarch64_be-* \
369 | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
370 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
371 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
372 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
373 | avr-* | avr32-* \
374 | be32-* | be64-* \
375 | bfin-* | bs2000-* \
376 | c[123]* | c30-* | [cjt]90-* | c4x-* \
377 | c8051-* | clipper-* | craynv-* | cydra-* \
378 | d10v-* | d30v-* | dlx-* \
379 | elxsi-* \
380 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
381 | h8300-* | h8500-* \
382 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
383 | hexagon-* \
384 | i*86-* | i860-* | i960-* | ia64-* \
385 | ip2k-* | iq2000-* \
386 | k1om-* \
387 | le32-* | le64-* \
388 | lm32-* \
389 | m32c-* | m32r-* | m32rle-* \
390 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
391 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
392 | microblaze-* | microblazeel-* \
393 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
394 | mips16-* \
395 | mips64-* | mips64el-* \
396 | mips64octeon-* | mips64octeonel-* \
397 | mips64orion-* | mips64orionel-* \
@@ -369,39 +401,45 @@
401 | mips64vr4300-* | mips64vr4300el-* \
402 | mips64vr5000-* | mips64vr5000el-* \
403 | mips64vr5900-* | mips64vr5900el-* \
404 | mipsisa32-* | mipsisa32el-* \
405 | mipsisa32r2-* | mipsisa32r2el-* \
406 | mipsisa32r6-* | mipsisa32r6el-* \
407 | mipsisa64-* | mipsisa64el-* \
408 | mipsisa64r2-* | mipsisa64r2el-* \
409 | mipsisa64r6-* | mipsisa64r6el-* \
410 | mipsisa64sb1-* | mipsisa64sb1el-* \
411 | mipsisa64sr71k-* | mipsisa64sr71kel-* \
412 | mipsr5900-* | mipsr5900el-* \
413 | mipstx39-* | mipstx39el-* \
414 | mmix-* \
415 | mt-* \
416 | msp430-* \
417 | nds32-* | nds32le-* | nds32be-* \
418 | nios-* | nios2-* | nios2eb-* | nios2el-* \
419 | none-* | np1-* | ns16k-* | ns32k-* \
420 | open8-* \
421 | or1k*-* \
422 | orion-* \
423 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
424 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
425 | pyramid-* \
426 | rl78-* | romp-* | rs6000-* | rx-* \
427 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
428 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
429 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
430 | sparclite-* \
431 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
432 | tahoe-* \
433 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
434 | tile*-* \
435 | tron-* \
436 | ubicom32-* \
437 | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
438 | vax-* \
439 | we32k-* \
440 | x86-* | x86_64-* | xc16x-* | xps100-* \
441 | xstormy16-* | xtensa*-* \
442 | ymp-* \
443 | z8k-* | z80-*)
444 ;;
445 # Recognize the basic CPU types without company name, with glob match.
@@ -422,11 +460,11 @@
460 ;;
461 a29khif)
462 basic_machine=a29k-amd
463 os=-udi
464 ;;
465 abacus)
466 basic_machine=abacus-unknown
467 ;;
468 adobe68k)
469 basic_machine=m68010-adobe
470 os=-scout
@@ -505,11 +543,11 @@
543 ;;
544 c90)
545 basic_machine=c90-cray
546 os=-unicos
547 ;;
548 cegcc)
549 basic_machine=arm-unknown
550 os=-cegcc
551 ;;
552 convex-c1)
553 basic_machine=c1-convex
@@ -537,11 +575,11 @@
575 ;;
576 craynv)
577 basic_machine=craynv-cray
578 os=-unicosmp
579 ;;
580 cr16 | cr16-*)
581 basic_machine=cr16-unknown
582 os=-elf
583 ;;
584 crds | unos)
585 basic_machine=m68k-crds
@@ -695,11 +733,10 @@
733 os=-proelf
734 ;;
735 i370-ibm* | ibm*)
736 basic_machine=i370-ibm
737 ;;
 
738 i*86v32)
739 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
740 os=-sysv32
741 ;;
742 i*86v4*)
@@ -753,15 +790,19 @@
790 ;;
791 merlin)
792 basic_machine=ns32k-utek
793 os=-sysv
794 ;;
795 microblaze*)
796 basic_machine=microblaze-xilinx
797 ;;
798 mingw64)
799 basic_machine=x86_64-pc
800 os=-mingw64
801 ;;
802 mingw32)
803 basic_machine=i686-pc
804 os=-mingw32
805 ;;
806 mingw32ce)
807 basic_machine=arm-unknown
808 os=-mingw32ce
@@ -792,18 +833,22 @@
833 os=-msdos
834 ;;
835 ms1-*)
836 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
837 ;;
838 msys)
839 basic_machine=i686-pc
840 os=-msys
841 ;;
842 mvs)
843 basic_machine=i370-ibm
844 os=-mvs
845 ;;
846 nacl)
847 basic_machine=le32-unknown
848 os=-nacl
849 ;;
850 ncr3000)
851 basic_machine=i486-ncr
852 os=-sysv4
853 ;;
854 netbsd386)
@@ -864,14 +909,14 @@
909 os=-nonstopux
910 ;;
911 np1)
912 basic_machine=np1-gould
913 ;;
914 neo-tandem)
915 basic_machine=neo-tandem
916 ;;
917 nse-tandem)
918 basic_machine=nse-tandem
919 ;;
920 nsr-tandem)
921 basic_machine=nsr-tandem
922 ;;
@@ -952,13 +997,14 @@
997 pn)
998 basic_machine=pn-gould
999 ;;
1000 power) basic_machine=power-ibm
1001 ;;
1002 ppc | ppcbe) basic_machine=powerpc-unknown
1003 ;;
1004 ppc-* | ppcbe-*)
1005 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1006 ;;
1007 ppcle | powerpclittle | ppc-le | powerpc-little)
1008 basic_machine=powerpcle-unknown
1009 ;;
1010 ppcle-* | powerpclittle-*)
@@ -979,11 +1025,15 @@
1025 ;;
1026 pw32)
1027 basic_machine=i586-unknown
1028 os=-pw32
1029 ;;
1030 rdos | rdos64)
1031 basic_machine=x86_64-pc
1032 os=-rdos
1033 ;;
1034 rdos32)
1035 basic_machine=i386-pc
1036 os=-rdos
1037 ;;
1038 rom68k)
1039 basic_machine=m68k-rom68k
@@ -1048,10 +1098,13 @@
1098 ;;
1099 stratus)
1100 basic_machine=i860-stratus
1101 os=-sysv4
1102 ;;
1103 strongarm-* | thumb-*)
1104 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1105 ;;
1106 sun2)
1107 basic_machine=m68000-sun
1108 ;;
1109 sun2os3)
1110 basic_machine=m68000-sun
@@ -1104,17 +1157,12 @@
1157 ;;
1158 t90)
1159 basic_machine=t90-cray
1160 os=-unicos
1161 ;;
 
 
 
 
 
1162 tile*)
1163 basic_machine=$basic_machine-unknown
1164 os=-linux-gnu
1165 ;;
1166 tx39)
1167 basic_machine=mipstx39-unknown
1168 ;;
@@ -1180,10 +1228,13 @@
1228 os=-mingw32
1229 ;;
1230 xps | xps100)
1231 basic_machine=xps100-honeywell
1232 ;;
1233 xscale-* | xscalee[bl]-*)
1234 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1235 ;;
1236 ymp)
1237 basic_machine=ymp-cray
1238 os=-unicos
1239 ;;
1240 z8k-*-coff)
@@ -1277,15 +1328,15 @@
1328 # Decode manufacturer-specific aliases for certain operating systems.
1329
1330 if [ x"$os" != x"" ]
1331 then
1332 case $os in
1333 # First match some system type aliases
1334 # that might get confused with valid system types.
1335 # -solaris* is a basic system type, with this one exception.
1336 -auroraux)
1337 os=-auroraux
1338 ;;
1339 -solaris1 | -solaris1.*)
1340 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1341 ;;
1342 -solaris)
@@ -1305,33 +1356,33 @@
1356 # Each alternative MUST END IN A *, to match a version number.
1357 # -sysv* is not here because it comes later, after sysvr4.
1358 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1359 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1360 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1361 | -sym* | -kopensolaris* | -plan9* \
1362 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1363 | -aos* | -aros* \
1364 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1365 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1366 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1367 | -bitrig* | -openbsd* | -solidbsd* \
1368 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1369 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1370 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1371 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1372 | -chorusos* | -chorusrdb* | -cegcc* \
1373 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1374 | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1375 | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1376 | -uxpv* | -beos* | -mpeix* | -udk* \
1377 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1378 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1379 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1380 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1381 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1382 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1383 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
1384 # Remember, each alternative MUST END IN *, to match a version number.
1385 ;;
1386 -qnx*)
1387 case $basic_machine in
1388 x86-* | i*86-*)
@@ -1366,11 +1417,11 @@
1417 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1418 ;;
1419 -opened*)
1420 os=-openedition
1421 ;;
1422 -os400*)
1423 os=-os400
1424 ;;
1425 -wince*)
1426 os=-wince
1427 ;;
@@ -1415,11 +1466,11 @@
1466 os=`echo $os | sed -e 's|sinix|sysv|'`
1467 ;;
1468 -sinix*)
1469 os=-sysv4
1470 ;;
1471 -tpf*)
1472 os=-tpf
1473 ;;
1474 -triton*)
1475 os=-sysv3
1476 ;;
@@ -1451,21 +1502,18 @@
1502 os=-mint
1503 ;;
1504 -aros*)
1505 os=-aros
1506 ;;
 
 
 
1507 -zvmoe)
1508 os=-zvmoe
1509 ;;
1510 -dicos*)
1511 os=-dicos
1512 ;;
1513 -nacl*)
1514 ;;
1515 -none)
1516 ;;
1517 *)
1518 # Get rid of the `-' at the beginning of $os.
1519 os=`echo $os | sed 's/[^-]*-//'`
@@ -1484,14 +1532,14 @@
1532 # that MANUFACTURER isn't an operating system. Otherwise, code above
1533 # will signal an error saying that MANUFACTURER isn't an operating
1534 # system, and we'll never get to this point.
1535
1536 case $basic_machine in
1537 score-*)
1538 os=-elf
1539 ;;
1540 spu-*)
1541 os=-elf
1542 ;;
1543 *-acorn)
1544 os=-riscix1.2
1545 ;;
@@ -1499,12 +1547,18 @@
1547 os=-linux
1548 ;;
1549 arm*-semi)
1550 os=-aout
1551 ;;
1552 c4x-* | tic4x-*)
1553 os=-coff
1554 ;;
1555 c8051-*)
1556 os=-elf
1557 ;;
1558 hexagon-*)
1559 os=-elf
1560 ;;
1561 tic54x-*)
1562 os=-coff
1563 ;;
1564 tic55x-*)
@@ -1529,18 +1583,15 @@
1583 i386-sun)
1584 os=-sunos4.0.2
1585 ;;
1586 m68000-sun)
1587 os=-sunos3
 
 
 
1588 ;;
1589 m68*-cisco)
1590 os=-aout
1591 ;;
1592 mep-*)
1593 os=-elf
1594 ;;
1595 mips*-cisco)
1596 os=-elf
1597 ;;
@@ -1563,11 +1614,11 @@
1614 os=-haiku
1615 ;;
1616 *-ibm)
1617 os=-aix
1618 ;;
1619 *-knuth)
1620 os=-mmixware
1621 ;;
1622 *-wec)
1623 os=-proelf
1624 ;;
1625
+19 -2
--- src/allrepo.c
+++ src/allrepo.c
@@ -107,10 +107,12 @@
107107
**
108108
** ignore Arguments are repositories that should be ignored by
109109
** subsequent clean, extras, list, pull, push, rebuild, and
110110
** sync operations. The -c|--ckout option causes the listed
111111
** local checkouts to be ignored instead.
112
+**
113
+** info Run the "info" command on all repositories.
112114
**
113115
** list | ls Display the location of all repositories. The -c|--ckout
114116
** option causes all local checkouts to be listed instead.
115117
**
116118
** pull Run a "pull" operation on all repositories. Only the
@@ -155,10 +157,11 @@
155157
int dryRunFlag = 0;
156158
int showFile = find_option("showfile",0,0)!=0;
157159
int stopOnError = find_option("dontstop",0,0)==0;
158160
int rc;
159161
int nToDel = 0;
162
+ int showLabel = 0;
160163
161164
dryRunFlag = find_option("dry-run","n",0)!=0;
162165
if( !dryRunFlag ){
163166
dryRunFlag = find_option("test",0,0)!=0; /* deprecated */
164167
}
@@ -258,32 +261,40 @@
258261
}
259262
fossil_free(zSql);
260263
}
261264
db_end_transaction(0);
262265
return;
266
+ }else if( strncmp(zCmd, "info", n)==0 ){
267
+ zCmd = "info";
268
+ showLabel = 1;
269
+ quiet = 1;
263270
}else{
264271
fossil_fatal("\"all\" subcommand should be one of: "
265272
"changes clean extras ignore list ls push pull rebuild sync");
266273
}
267274
verify_all_options();
268275
zFossil = quoteFilename(g.nameOfExe);
276
+ db_multi_exec("CREATE TEMP TABLE repolist(name,tag);");
269277
if( useCheckouts ){
270
- db_prepare(&q,
278
+ db_multi_exec(
279
+ "INSERT INTO repolist "
271280
"SELECT DISTINCT substr(name, 7), name COLLATE nocase"
272281
" FROM global_config"
273282
" WHERE substr(name, 1, 6)=='ckout:'"
274283
" ORDER BY 1"
275284
);
276285
}else{
277
- db_prepare(&q,
286
+ db_multi_exec(
287
+ "INSERT INTO repolist "
278288
"SELECT DISTINCT substr(name, 6), name COLLATE nocase"
279289
" FROM global_config"
280290
" WHERE substr(name, 1, 5)=='repo:'"
281291
" ORDER BY 1"
282292
);
283293
}
284294
db_multi_exec("CREATE TEMP TABLE todel(x TEXT)");
295
+ db_prepare(&q, "SELECT name, tag FROM repolist ORDER BY 1");
285296
while( db_step(&q)==SQLITE_ROW ){
286297
const char *zFilename = db_column_text(&q, 0);
287298
if( file_access(zFilename, F_OK)
288299
|| !file_is_canonical(zFilename)
289300
|| (useCheckouts && file_isdir(zFilename)!=1)
@@ -300,10 +311,16 @@
300311
zFilename);
301312
}
302313
zQFilename = quoteFilename(zFilename);
303314
zSyscmd = mprintf("%s %s %s%s",
304315
zFossil, zCmd, zQFilename, blob_str(&extra));
316
+ if( showLabel ){
317
+ int len = (int)strlen(zFilename);
318
+ int nStar = 80 - (len + 15);
319
+ if( nStar<2 ) nStar = 1;
320
+ fossil_print("%.13c %s %.*c\n", '*', zFilename, nStar, '*');
321
+ }
305322
if( !quiet || dryRunFlag ){
306323
fossil_print("%s\n", zSyscmd);
307324
fflush(stdout);
308325
}
309326
rc = dryRunFlag ? 0 : fossil_system(zSyscmd);
310327
--- src/allrepo.c
+++ src/allrepo.c
@@ -107,10 +107,12 @@
107 **
108 ** ignore Arguments are repositories that should be ignored by
109 ** subsequent clean, extras, list, pull, push, rebuild, and
110 ** sync operations. The -c|--ckout option causes the listed
111 ** local checkouts to be ignored instead.
 
 
112 **
113 ** list | ls Display the location of all repositories. The -c|--ckout
114 ** option causes all local checkouts to be listed instead.
115 **
116 ** pull Run a "pull" operation on all repositories. Only the
@@ -155,10 +157,11 @@
155 int dryRunFlag = 0;
156 int showFile = find_option("showfile",0,0)!=0;
157 int stopOnError = find_option("dontstop",0,0)==0;
158 int rc;
159 int nToDel = 0;
 
160
161 dryRunFlag = find_option("dry-run","n",0)!=0;
162 if( !dryRunFlag ){
163 dryRunFlag = find_option("test",0,0)!=0; /* deprecated */
164 }
@@ -258,32 +261,40 @@
258 }
259 fossil_free(zSql);
260 }
261 db_end_transaction(0);
262 return;
 
 
 
 
263 }else{
264 fossil_fatal("\"all\" subcommand should be one of: "
265 "changes clean extras ignore list ls push pull rebuild sync");
266 }
267 verify_all_options();
268 zFossil = quoteFilename(g.nameOfExe);
 
269 if( useCheckouts ){
270 db_prepare(&q,
 
271 "SELECT DISTINCT substr(name, 7), name COLLATE nocase"
272 " FROM global_config"
273 " WHERE substr(name, 1, 6)=='ckout:'"
274 " ORDER BY 1"
275 );
276 }else{
277 db_prepare(&q,
 
278 "SELECT DISTINCT substr(name, 6), name COLLATE nocase"
279 " FROM global_config"
280 " WHERE substr(name, 1, 5)=='repo:'"
281 " ORDER BY 1"
282 );
283 }
284 db_multi_exec("CREATE TEMP TABLE todel(x TEXT)");
 
285 while( db_step(&q)==SQLITE_ROW ){
286 const char *zFilename = db_column_text(&q, 0);
287 if( file_access(zFilename, F_OK)
288 || !file_is_canonical(zFilename)
289 || (useCheckouts && file_isdir(zFilename)!=1)
@@ -300,10 +311,16 @@
300 zFilename);
301 }
302 zQFilename = quoteFilename(zFilename);
303 zSyscmd = mprintf("%s %s %s%s",
304 zFossil, zCmd, zQFilename, blob_str(&extra));
 
 
 
 
 
 
305 if( !quiet || dryRunFlag ){
306 fossil_print("%s\n", zSyscmd);
307 fflush(stdout);
308 }
309 rc = dryRunFlag ? 0 : fossil_system(zSyscmd);
310
--- src/allrepo.c
+++ src/allrepo.c
@@ -107,10 +107,12 @@
107 **
108 ** ignore Arguments are repositories that should be ignored by
109 ** subsequent clean, extras, list, pull, push, rebuild, and
110 ** sync operations. The -c|--ckout option causes the listed
111 ** local checkouts to be ignored instead.
112 **
113 ** info Run the "info" command on all repositories.
114 **
115 ** list | ls Display the location of all repositories. The -c|--ckout
116 ** option causes all local checkouts to be listed instead.
117 **
118 ** pull Run a "pull" operation on all repositories. Only the
@@ -155,10 +157,11 @@
157 int dryRunFlag = 0;
158 int showFile = find_option("showfile",0,0)!=0;
159 int stopOnError = find_option("dontstop",0,0)==0;
160 int rc;
161 int nToDel = 0;
162 int showLabel = 0;
163
164 dryRunFlag = find_option("dry-run","n",0)!=0;
165 if( !dryRunFlag ){
166 dryRunFlag = find_option("test",0,0)!=0; /* deprecated */
167 }
@@ -258,32 +261,40 @@
261 }
262 fossil_free(zSql);
263 }
264 db_end_transaction(0);
265 return;
266 }else if( strncmp(zCmd, "info", n)==0 ){
267 zCmd = "info";
268 showLabel = 1;
269 quiet = 1;
270 }else{
271 fossil_fatal("\"all\" subcommand should be one of: "
272 "changes clean extras ignore list ls push pull rebuild sync");
273 }
274 verify_all_options();
275 zFossil = quoteFilename(g.nameOfExe);
276 db_multi_exec("CREATE TEMP TABLE repolist(name,tag);");
277 if( useCheckouts ){
278 db_multi_exec(
279 "INSERT INTO repolist "
280 "SELECT DISTINCT substr(name, 7), name COLLATE nocase"
281 " FROM global_config"
282 " WHERE substr(name, 1, 6)=='ckout:'"
283 " ORDER BY 1"
284 );
285 }else{
286 db_multi_exec(
287 "INSERT INTO repolist "
288 "SELECT DISTINCT substr(name, 6), name COLLATE nocase"
289 " FROM global_config"
290 " WHERE substr(name, 1, 5)=='repo:'"
291 " ORDER BY 1"
292 );
293 }
294 db_multi_exec("CREATE TEMP TABLE todel(x TEXT)");
295 db_prepare(&q, "SELECT name, tag FROM repolist ORDER BY 1");
296 while( db_step(&q)==SQLITE_ROW ){
297 const char *zFilename = db_column_text(&q, 0);
298 if( file_access(zFilename, F_OK)
299 || !file_is_canonical(zFilename)
300 || (useCheckouts && file_isdir(zFilename)!=1)
@@ -300,10 +311,16 @@
311 zFilename);
312 }
313 zQFilename = quoteFilename(zFilename);
314 zSyscmd = mprintf("%s %s %s%s",
315 zFossil, zCmd, zQFilename, blob_str(&extra));
316 if( showLabel ){
317 int len = (int)strlen(zFilename);
318 int nStar = 80 - (len + 15);
319 if( nStar<2 ) nStar = 1;
320 fossil_print("%.13c %s %.*c\n", '*', zFilename, nStar, '*');
321 }
322 if( !quiet || dryRunFlag ){
323 fossil_print("%s\n", zSyscmd);
324 fflush(stdout);
325 }
326 rc = dryRunFlag ? 0 : fossil_system(zSyscmd);
327
+8 -8
--- src/attach.c
+++ src/attach.c
@@ -29,11 +29,11 @@
2929
**
3030
** List attachments.
3131
** Either one of tkt= or page= are supplied or neither. If neither
3232
** are given, all attachments are listed. If one is given, only
3333
** attachments for the designated ticket or wiki page are shown.
34
-** TICKETUUID must be complete
34
+** TICKETUUID must be complete
3535
*/
3636
void attachlist_page(void){
3737
const char *zPage = P("page");
3838
const char *zTkt = P("tkt");
3939
Blob sql;
@@ -53,11 +53,11 @@
5353
if( g.perm.RdWiki==0 ) login_needed();
5454
style_header("Attachments To %h", zPage);
5555
blob_appendf(&sql, " WHERE target=%Q", zPage);
5656
}else if( zTkt ){
5757
if( g.perm.RdTkt==0 ) login_needed();
58
- style_header("Attachments To Ticket %.10s", zTkt);
58
+ style_header("Attachments To Ticket %S", zTkt);
5959
blob_appendf(&sql, " WHERE target GLOB '%q*'", zTkt);
6060
}else{
6161
if( g.perm.RdTkt==0 && g.perm.RdWiki==0 ) login_needed();
6262
style_header("All Attachments");
6363
}
@@ -75,11 +75,11 @@
7575
int attachid = db_column_int(&q, 7);
7676
const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous";
7777
int i;
7878
char *zUrlTail;
7979
for(i=0; zFilename[i]; i++){
80
- if( zFilename[i]=='/' && zFilename[i+1]!=0 ){
80
+ if( zFilename[i]=='/' && zFilename[i+1]!=0 ){
8181
zFilename = &zFilename[i+1];
8282
i = -1;
8383
}
8484
}
8585
if( strlen(zTarget)==UUID_SIZE && validate16(zTarget,UUID_SIZE) ){
@@ -253,11 +253,11 @@
253253
zTargetType = mprintf("Wiki Page <a href=\"%s/wiki?name=%h\">%h</a>",
254254
g.zTop, zPage, zPage);
255255
}else{
256256
if( g.perm.ApndTkt==0 || g.perm.Attach==0 ) login_needed();
257257
if( !db_exists("SELECT 1 FROM tag WHERE tagname='tkt-%q'", zTkt) ){
258
- zTkt = db_text(0, "SELECT substr(tagname,5) FROM tag"
258
+ zTkt = db_text(0, "SELECT substr(tagname,5) FROM tag"
259259
" WHERE tagname GLOB 'tkt-%q*'", zTkt);
260260
if( zTkt==0 ) fossil_redirect_home();
261261
}
262262
zTarget = zTkt;
263263
zTargetType = mprintf("Ticket <a href=\"%s/tktview/%s\">%S</a>",
@@ -445,11 +445,11 @@
445445
@ <p>Confirm you want to delete the attachment shown below.
446446
@ <input type="submit" name="confirm" value="Confirm">
447447
@ </form>
448448
}
449449
450
- isModerator = g.perm.Admin ||
450
+ isModerator = g.perm.Admin ||
451451
(zTktUuid && g.perm.ModTkt) ||
452452
(zWikiName && g.perm.ModWiki);
453453
if( isModerator && (zModAction = P("modaction"))!=0 ){
454454
if( strcmp(zModAction,"delete")==0 ){
455455
moderation_disapprove(rid);
@@ -500,11 +500,11 @@
500500
if( g.perm.Setup ){
501501
@ <tr><th>MIME-Type:</th><td>%h(zMime)</td></tr>
502502
}
503503
@ <tr><th valign="top">Description:</th><td valign="top">%h(zDesc)</td></tr>
504504
@ </table>
505
-
505
+
506506
if( isModerator && modPending ){
507507
@ <div class="section">Moderation</div>
508508
@ <blockquote>
509509
form_begin(0, "%R/ainfo/%s", zUuid);
510510
@ <label><input type="radio" name="modaction" value="delete">
@@ -557,11 +557,11 @@
557557
db_prepare(&q,
558558
"SELECT datetime(mtime%s), filename, user,"
559559
" (SELECT uuid FROM blob WHERE rid=attachid), src"
560560
" FROM attachment"
561561
" WHERE isLatest AND src!='' AND target=%Q"
562
- " ORDER BY mtime DESC",
562
+ " ORDER BY mtime DESC",
563563
timeline_utc(), zTarget
564564
);
565565
while( db_step(&q)==SQLITE_ROW ){
566566
const char *zDate = db_column_text(&q, 0);
567567
const char *zFile = db_column_text(&q, 1);
@@ -582,7 +582,7 @@
582582
}
583583
if( cnt ){
584584
@ </ul>
585585
}
586586
db_finalize(&q);
587
-
587
+
588588
}
589589
--- src/attach.c
+++ src/attach.c
@@ -29,11 +29,11 @@
29 **
30 ** List attachments.
31 ** Either one of tkt= or page= are supplied or neither. If neither
32 ** are given, all attachments are listed. If one is given, only
33 ** attachments for the designated ticket or wiki page are shown.
34 ** TICKETUUID must be complete
35 */
36 void attachlist_page(void){
37 const char *zPage = P("page");
38 const char *zTkt = P("tkt");
39 Blob sql;
@@ -53,11 +53,11 @@
53 if( g.perm.RdWiki==0 ) login_needed();
54 style_header("Attachments To %h", zPage);
55 blob_appendf(&sql, " WHERE target=%Q", zPage);
56 }else if( zTkt ){
57 if( g.perm.RdTkt==0 ) login_needed();
58 style_header("Attachments To Ticket %.10s", zTkt);
59 blob_appendf(&sql, " WHERE target GLOB '%q*'", zTkt);
60 }else{
61 if( g.perm.RdTkt==0 && g.perm.RdWiki==0 ) login_needed();
62 style_header("All Attachments");
63 }
@@ -75,11 +75,11 @@
75 int attachid = db_column_int(&q, 7);
76 const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous";
77 int i;
78 char *zUrlTail;
79 for(i=0; zFilename[i]; i++){
80 if( zFilename[i]=='/' && zFilename[i+1]!=0 ){
81 zFilename = &zFilename[i+1];
82 i = -1;
83 }
84 }
85 if( strlen(zTarget)==UUID_SIZE && validate16(zTarget,UUID_SIZE) ){
@@ -253,11 +253,11 @@
253 zTargetType = mprintf("Wiki Page <a href=\"%s/wiki?name=%h\">%h</a>",
254 g.zTop, zPage, zPage);
255 }else{
256 if( g.perm.ApndTkt==0 || g.perm.Attach==0 ) login_needed();
257 if( !db_exists("SELECT 1 FROM tag WHERE tagname='tkt-%q'", zTkt) ){
258 zTkt = db_text(0, "SELECT substr(tagname,5) FROM tag"
259 " WHERE tagname GLOB 'tkt-%q*'", zTkt);
260 if( zTkt==0 ) fossil_redirect_home();
261 }
262 zTarget = zTkt;
263 zTargetType = mprintf("Ticket <a href=\"%s/tktview/%s\">%S</a>",
@@ -445,11 +445,11 @@
445 @ <p>Confirm you want to delete the attachment shown below.
446 @ <input type="submit" name="confirm" value="Confirm">
447 @ </form>
448 }
449
450 isModerator = g.perm.Admin ||
451 (zTktUuid && g.perm.ModTkt) ||
452 (zWikiName && g.perm.ModWiki);
453 if( isModerator && (zModAction = P("modaction"))!=0 ){
454 if( strcmp(zModAction,"delete")==0 ){
455 moderation_disapprove(rid);
@@ -500,11 +500,11 @@
500 if( g.perm.Setup ){
501 @ <tr><th>MIME-Type:</th><td>%h(zMime)</td></tr>
502 }
503 @ <tr><th valign="top">Description:</th><td valign="top">%h(zDesc)</td></tr>
504 @ </table>
505
506 if( isModerator && modPending ){
507 @ <div class="section">Moderation</div>
508 @ <blockquote>
509 form_begin(0, "%R/ainfo/%s", zUuid);
510 @ <label><input type="radio" name="modaction" value="delete">
@@ -557,11 +557,11 @@
557 db_prepare(&q,
558 "SELECT datetime(mtime%s), filename, user,"
559 " (SELECT uuid FROM blob WHERE rid=attachid), src"
560 " FROM attachment"
561 " WHERE isLatest AND src!='' AND target=%Q"
562 " ORDER BY mtime DESC",
563 timeline_utc(), zTarget
564 );
565 while( db_step(&q)==SQLITE_ROW ){
566 const char *zDate = db_column_text(&q, 0);
567 const char *zFile = db_column_text(&q, 1);
@@ -582,7 +582,7 @@
582 }
583 if( cnt ){
584 @ </ul>
585 }
586 db_finalize(&q);
587
588 }
589
--- src/attach.c
+++ src/attach.c
@@ -29,11 +29,11 @@
29 **
30 ** List attachments.
31 ** Either one of tkt= or page= are supplied or neither. If neither
32 ** are given, all attachments are listed. If one is given, only
33 ** attachments for the designated ticket or wiki page are shown.
34 ** TICKETUUID must be complete
35 */
36 void attachlist_page(void){
37 const char *zPage = P("page");
38 const char *zTkt = P("tkt");
39 Blob sql;
@@ -53,11 +53,11 @@
53 if( g.perm.RdWiki==0 ) login_needed();
54 style_header("Attachments To %h", zPage);
55 blob_appendf(&sql, " WHERE target=%Q", zPage);
56 }else if( zTkt ){
57 if( g.perm.RdTkt==0 ) login_needed();
58 style_header("Attachments To Ticket %S", zTkt);
59 blob_appendf(&sql, " WHERE target GLOB '%q*'", zTkt);
60 }else{
61 if( g.perm.RdTkt==0 && g.perm.RdWiki==0 ) login_needed();
62 style_header("All Attachments");
63 }
@@ -75,11 +75,11 @@
75 int attachid = db_column_int(&q, 7);
76 const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous";
77 int i;
78 char *zUrlTail;
79 for(i=0; zFilename[i]; i++){
80 if( zFilename[i]=='/' && zFilename[i+1]!=0 ){
81 zFilename = &zFilename[i+1];
82 i = -1;
83 }
84 }
85 if( strlen(zTarget)==UUID_SIZE && validate16(zTarget,UUID_SIZE) ){
@@ -253,11 +253,11 @@
253 zTargetType = mprintf("Wiki Page <a href=\"%s/wiki?name=%h\">%h</a>",
254 g.zTop, zPage, zPage);
255 }else{
256 if( g.perm.ApndTkt==0 || g.perm.Attach==0 ) login_needed();
257 if( !db_exists("SELECT 1 FROM tag WHERE tagname='tkt-%q'", zTkt) ){
258 zTkt = db_text(0, "SELECT substr(tagname,5) FROM tag"
259 " WHERE tagname GLOB 'tkt-%q*'", zTkt);
260 if( zTkt==0 ) fossil_redirect_home();
261 }
262 zTarget = zTkt;
263 zTargetType = mprintf("Ticket <a href=\"%s/tktview/%s\">%S</a>",
@@ -445,11 +445,11 @@
445 @ <p>Confirm you want to delete the attachment shown below.
446 @ <input type="submit" name="confirm" value="Confirm">
447 @ </form>
448 }
449
450 isModerator = g.perm.Admin ||
451 (zTktUuid && g.perm.ModTkt) ||
452 (zWikiName && g.perm.ModWiki);
453 if( isModerator && (zModAction = P("modaction"))!=0 ){
454 if( strcmp(zModAction,"delete")==0 ){
455 moderation_disapprove(rid);
@@ -500,11 +500,11 @@
500 if( g.perm.Setup ){
501 @ <tr><th>MIME-Type:</th><td>%h(zMime)</td></tr>
502 }
503 @ <tr><th valign="top">Description:</th><td valign="top">%h(zDesc)</td></tr>
504 @ </table>
505
506 if( isModerator && modPending ){
507 @ <div class="section">Moderation</div>
508 @ <blockquote>
509 form_begin(0, "%R/ainfo/%s", zUuid);
510 @ <label><input type="radio" name="modaction" value="delete">
@@ -557,11 +557,11 @@
557 db_prepare(&q,
558 "SELECT datetime(mtime%s), filename, user,"
559 " (SELECT uuid FROM blob WHERE rid=attachid), src"
560 " FROM attachment"
561 " WHERE isLatest AND src!='' AND target=%Q"
562 " ORDER BY mtime DESC",
563 timeline_utc(), zTarget
564 );
565 while( db_step(&q)==SQLITE_ROW ){
566 const char *zDate = db_column_text(&q, 0);
567 const char *zFile = db_column_text(&q, 1);
@@ -582,7 +582,7 @@
582 }
583 if( cnt ){
584 @ </ul>
585 }
586 db_finalize(&q);
587
588 }
589
+55
--- src/blob.c
+++ src/blob.c
@@ -1004,10 +1004,65 @@
10041004
else if( z[i+1]!='\n' ) z[j++] = '\n';
10051005
}
10061006
z[j] = 0;
10071007
p->nUsed = j;
10081008
}
1009
+
1010
+/*
1011
+** Convert blob from cp1252 to UTF-8. As cp1252 is a superset
1012
+** of iso8859-1, this is useful on UNIX as well.
1013
+**
1014
+** This table contains the character translations for 0x80..0xA0.
1015
+*/
1016
+
1017
+static const unsigned short cp1252[32] = {
1018
+ 0x20ac, 0x81, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1019
+ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x8D, 0x017D, 0x8F,
1020
+ 0x90, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1021
+ 0x2DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x9D, 0x017E, 0x0178
1022
+};
1023
+
1024
+void blob_cp1252_to_utf8(Blob *p){
1025
+ unsigned char *z = (unsigned char *)p->aData;
1026
+ int j = p->nUsed;
1027
+ int i, n;
1028
+ for(i=n=0; i<j; i++){
1029
+ if( z[i]>=0x80 ){
1030
+ if( (z[i]<0xa0) && (cp1252[z[i]&0x1f]>=0x800) ){
1031
+ n++;
1032
+ }
1033
+ n++;
1034
+ }
1035
+ }
1036
+ j += n;
1037
+ if( j>=p->nAlloc ){
1038
+ blob_resize(p, j);
1039
+ z = (unsigned char *)p->aData;
1040
+ }
1041
+ p->nUsed = j;
1042
+ z[j] = 0;
1043
+ while( j>i ){
1044
+ if( z[--i]>=0x80 ){
1045
+ if( z[i]<0xa0 ){
1046
+ unsigned short sym = cp1252[z[i]&0x1f];
1047
+ if( sym>=0x800 ){
1048
+ z[--j] = 0x80 | (sym&0x3f);
1049
+ z[--j] = 0x80 | ((sym>>6)&0x3f);
1050
+ z[--j] = 0xe0 | (sym>>12);
1051
+ }else{
1052
+ z[--j] = 0x80 | (sym&0x3f);
1053
+ z[--j] = 0xc0 | (sym>>6);
1054
+ }
1055
+ }else{
1056
+ z[--j] = 0x80 | (z[i]&0x3f);
1057
+ z[--j] = 0xC0 | (z[i]>>6);
1058
+ }
1059
+ }else{
1060
+ z[--j] = z[i];
1061
+ }
1062
+ }
1063
+}
10091064
10101065
/*
10111066
** Shell-escape the given string. Append the result to a blob.
10121067
*/
10131068
void shell_escape(Blob *pBlob, const char *zIn){
10141069
--- src/blob.c
+++ src/blob.c
@@ -1004,10 +1004,65 @@
1004 else if( z[i+1]!='\n' ) z[j++] = '\n';
1005 }
1006 z[j] = 0;
1007 p->nUsed = j;
1008 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1009
1010 /*
1011 ** Shell-escape the given string. Append the result to a blob.
1012 */
1013 void shell_escape(Blob *pBlob, const char *zIn){
1014
--- src/blob.c
+++ src/blob.c
@@ -1004,10 +1004,65 @@
1004 else if( z[i+1]!='\n' ) z[j++] = '\n';
1005 }
1006 z[j] = 0;
1007 p->nUsed = j;
1008 }
1009
1010 /*
1011 ** Convert blob from cp1252 to UTF-8. As cp1252 is a superset
1012 ** of iso8859-1, this is useful on UNIX as well.
1013 **
1014 ** This table contains the character translations for 0x80..0xA0.
1015 */
1016
1017 static const unsigned short cp1252[32] = {
1018 0x20ac, 0x81, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1019 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x8D, 0x017D, 0x8F,
1020 0x90, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1021 0x2DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x9D, 0x017E, 0x0178
1022 };
1023
1024 void blob_cp1252_to_utf8(Blob *p){
1025 unsigned char *z = (unsigned char *)p->aData;
1026 int j = p->nUsed;
1027 int i, n;
1028 for(i=n=0; i<j; i++){
1029 if( z[i]>=0x80 ){
1030 if( (z[i]<0xa0) && (cp1252[z[i]&0x1f]>=0x800) ){
1031 n++;
1032 }
1033 n++;
1034 }
1035 }
1036 j += n;
1037 if( j>=p->nAlloc ){
1038 blob_resize(p, j);
1039 z = (unsigned char *)p->aData;
1040 }
1041 p->nUsed = j;
1042 z[j] = 0;
1043 while( j>i ){
1044 if( z[--i]>=0x80 ){
1045 if( z[i]<0xa0 ){
1046 unsigned short sym = cp1252[z[i]&0x1f];
1047 if( sym>=0x800 ){
1048 z[--j] = 0x80 | (sym&0x3f);
1049 z[--j] = 0x80 | ((sym>>6)&0x3f);
1050 z[--j] = 0xe0 | (sym>>12);
1051 }else{
1052 z[--j] = 0x80 | (sym&0x3f);
1053 z[--j] = 0xc0 | (sym>>6);
1054 }
1055 }else{
1056 z[--j] = 0x80 | (z[i]&0x3f);
1057 z[--j] = 0xC0 | (z[i]>>6);
1058 }
1059 }else{
1060 z[--j] = z[i];
1061 }
1062 }
1063 }
1064
1065 /*
1066 ** Shell-escape the given string. Append the result to a blob.
1067 */
1068 void shell_escape(Blob *pBlob, const char *zIn){
1069
+1 -1
--- src/branch.c
+++ src/branch.c
@@ -334,11 +334,11 @@
334334
@ <li> A <div class="sideboxDescribed">%z(href("brlist?closed"))
335335
@ closed branch</a></div> is a branch with only
336336
@ <div class="sideboxDescribed">%z(href("leaves?closed"))
337337
@ closed leaves</a></div>.
338338
@ Closed branches are fixed and do not change (unless they are first
339
- @ reopened)</li>
339
+ @ reopened).</li>
340340
@ </ol>
341341
style_sidebox_end();
342342
343343
branch_prepare_list_query(&q, showAll?1:(showClosed?-1:0));
344344
cnt = 0;
345345
--- src/branch.c
+++ src/branch.c
@@ -334,11 +334,11 @@
334 @ <li> A <div class="sideboxDescribed">%z(href("brlist?closed"))
335 @ closed branch</a></div> is a branch with only
336 @ <div class="sideboxDescribed">%z(href("leaves?closed"))
337 @ closed leaves</a></div>.
338 @ Closed branches are fixed and do not change (unless they are first
339 @ reopened)</li>
340 @ </ol>
341 style_sidebox_end();
342
343 branch_prepare_list_query(&q, showAll?1:(showClosed?-1:0));
344 cnt = 0;
345
--- src/branch.c
+++ src/branch.c
@@ -334,11 +334,11 @@
334 @ <li> A <div class="sideboxDescribed">%z(href("brlist?closed"))
335 @ closed branch</a></div> is a branch with only
336 @ <div class="sideboxDescribed">%z(href("leaves?closed"))
337 @ closed leaves</a></div>.
338 @ Closed branches are fixed and do not change (unless they are first
339 @ reopened).</li>
340 @ </ol>
341 style_sidebox_end();
342
343 branch_prepare_list_query(&q, showAll?1:(showClosed?-1:0));
344 cnt = 0;
345
+1 -1
--- src/browse.c
+++ src/browse.c
@@ -179,11 +179,11 @@
179179
if( linkTip ){
180180
style_submenu_element("Tip", "Tip", "%s",
181181
url_render(&sURI, "ci", "tip", 0, 0));
182182
}
183183
if( zCI ){
184
- @ <h2>Files of check-in [%z(href("vinfo?name=%s",zUuid))%.10s(zUuid)</a>]
184
+ @ <h2>Files of check-in [%z(href("vinfo?name=%s",zUuid))%S(zUuid)</a>]
185185
@ %s(blob_str(&dirname))</h2>
186186
zSubdirLink = mprintf("%R/dir?ci=%s&name=%T", zUuid, zPrefix);
187187
if( nD==0 ){
188188
style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%s",
189189
zUuid);
190190
--- src/browse.c
+++ src/browse.c
@@ -179,11 +179,11 @@
179 if( linkTip ){
180 style_submenu_element("Tip", "Tip", "%s",
181 url_render(&sURI, "ci", "tip", 0, 0));
182 }
183 if( zCI ){
184 @ <h2>Files of check-in [%z(href("vinfo?name=%s",zUuid))%.10s(zUuid)</a>]
185 @ %s(blob_str(&dirname))</h2>
186 zSubdirLink = mprintf("%R/dir?ci=%s&name=%T", zUuid, zPrefix);
187 if( nD==0 ){
188 style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%s",
189 zUuid);
190
--- src/browse.c
+++ src/browse.c
@@ -179,11 +179,11 @@
179 if( linkTip ){
180 style_submenu_element("Tip", "Tip", "%s",
181 url_render(&sURI, "ci", "tip", 0, 0));
182 }
183 if( zCI ){
184 @ <h2>Files of check-in [%z(href("vinfo?name=%s",zUuid))%S(zUuid)</a>]
185 @ %s(blob_str(&dirname))</h2>
186 zSubdirLink = mprintf("%R/dir?ci=%s&name=%T", zUuid, zPrefix);
187 if( nD==0 ){
188 style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%s",
189 zUuid);
190
+16 -5
--- src/checkin.c
+++ src/checkin.c
@@ -928,11 +928,11 @@
928928
" WHERE datetime(mtime)>=%Q"
929929
" AND type='ci' AND objid=%d",
930930
zDate, rid
931931
);
932932
if( b ){
933
- fossil_fatal("ancestor check-in [%.10s] (%s) is not older (clock skew?)"
933
+ fossil_fatal("ancestor check-in [%S] (%s) is not older (clock skew?)"
934934
" Use --allow-older to override.", zUuid, zDate);
935935
}
936936
#endif
937937
}
938938
@@ -1296,11 +1296,10 @@
12961296
}else if( fHasInvalidUtf8 ){
12971297
if( encodingOk ){
12981298
return 0; /* We don't want encoding warnings for this file. */
12991299
}
13001300
zWarning = "invalid UTF-8";
1301
- zConvert = ""; /* Possible conversion to UTF-8 not yet implemented. */
13021301
zDisable = "\"encoding-glob\" setting";
13031302
}else if( fHasAnyCr ){
13041303
if( crnlOk ){
13051304
return 0; /* We don't want CR/NL warnings for this file. */
13061305
}
@@ -1341,10 +1340,12 @@
13411340
if( fUnicode ) {
13421341
int bomSize;
13431342
const unsigned char *bom = get_utf8_bom(&bomSize);
13441343
fwrite(bom, 1, bomSize, f);
13451344
blob_to_utf8_no_bom(p, 0);
1345
+ }else if( fHasInvalidUtf8 ){
1346
+ blob_cp1252_to_utf8(p);
13461347
}
13471348
if( fHasAnyCr ){
13481349
blob_to_lf_only(p);
13491350
}
13501351
fwrite(blob_buffer(p), 1, blob_size(p), f);
@@ -1676,15 +1677,25 @@
16761677
){
16771678
fossil_fatal("would fork. \"update\" first or use --allow-fork.");
16781679
}
16791680
16801681
/*
1681
- ** Do not allow a commit against a closed leaf
1682
+ ** Do not allow a commit against a closed leaf unless the commit
1683
+ ** ends up on a different branch.
16821684
*/
1683
- if( db_exists("SELECT 1 FROM tagxref"
1685
+ if(
1686
+ /* parent checkin has the "closed" tag... */
1687
+ db_exists("SELECT 1 FROM tagxref"
16841688
" WHERE tagid=%d AND rid=%d AND tagtype>0",
1685
- TAG_CLOSED, vid) ){
1689
+ TAG_CLOSED, vid)
1690
+ /* ... and the new checkin has no --branch option or the --branch
1691
+ ** option does not actually change the branch */
1692
+ && (sCiInfo.zBranch==0
1693
+ || db_exists("SELECT 1 FROM tagxref"
1694
+ " WHERE tagid=%d AND rid=%d AND tagtype>0"
1695
+ " AND value=%Q", TAG_BRANCH, vid, sCiInfo.zBranch))
1696
+ ){
16861697
fossil_fatal("cannot commit against a closed leaf");
16871698
}
16881699
16891700
if( useCksum ) vfile_aggregate_checksum_disk(vid, &cksum1);
16901701
if( zComment ){
16911702
--- src/checkin.c
+++ src/checkin.c
@@ -928,11 +928,11 @@
928 " WHERE datetime(mtime)>=%Q"
929 " AND type='ci' AND objid=%d",
930 zDate, rid
931 );
932 if( b ){
933 fossil_fatal("ancestor check-in [%.10s] (%s) is not older (clock skew?)"
934 " Use --allow-older to override.", zUuid, zDate);
935 }
936 #endif
937 }
938
@@ -1296,11 +1296,10 @@
1296 }else if( fHasInvalidUtf8 ){
1297 if( encodingOk ){
1298 return 0; /* We don't want encoding warnings for this file. */
1299 }
1300 zWarning = "invalid UTF-8";
1301 zConvert = ""; /* Possible conversion to UTF-8 not yet implemented. */
1302 zDisable = "\"encoding-glob\" setting";
1303 }else if( fHasAnyCr ){
1304 if( crnlOk ){
1305 return 0; /* We don't want CR/NL warnings for this file. */
1306 }
@@ -1341,10 +1340,12 @@
1341 if( fUnicode ) {
1342 int bomSize;
1343 const unsigned char *bom = get_utf8_bom(&bomSize);
1344 fwrite(bom, 1, bomSize, f);
1345 blob_to_utf8_no_bom(p, 0);
 
 
1346 }
1347 if( fHasAnyCr ){
1348 blob_to_lf_only(p);
1349 }
1350 fwrite(blob_buffer(p), 1, blob_size(p), f);
@@ -1676,15 +1677,25 @@
1676 ){
1677 fossil_fatal("would fork. \"update\" first or use --allow-fork.");
1678 }
1679
1680 /*
1681 ** Do not allow a commit against a closed leaf
 
1682 */
1683 if( db_exists("SELECT 1 FROM tagxref"
 
 
1684 " WHERE tagid=%d AND rid=%d AND tagtype>0",
1685 TAG_CLOSED, vid) ){
 
 
 
 
 
 
 
1686 fossil_fatal("cannot commit against a closed leaf");
1687 }
1688
1689 if( useCksum ) vfile_aggregate_checksum_disk(vid, &cksum1);
1690 if( zComment ){
1691
--- src/checkin.c
+++ src/checkin.c
@@ -928,11 +928,11 @@
928 " WHERE datetime(mtime)>=%Q"
929 " AND type='ci' AND objid=%d",
930 zDate, rid
931 );
932 if( b ){
933 fossil_fatal("ancestor check-in [%S] (%s) is not older (clock skew?)"
934 " Use --allow-older to override.", zUuid, zDate);
935 }
936 #endif
937 }
938
@@ -1296,11 +1296,10 @@
1296 }else if( fHasInvalidUtf8 ){
1297 if( encodingOk ){
1298 return 0; /* We don't want encoding warnings for this file. */
1299 }
1300 zWarning = "invalid UTF-8";
 
1301 zDisable = "\"encoding-glob\" setting";
1302 }else if( fHasAnyCr ){
1303 if( crnlOk ){
1304 return 0; /* We don't want CR/NL warnings for this file. */
1305 }
@@ -1341,10 +1340,12 @@
1340 if( fUnicode ) {
1341 int bomSize;
1342 const unsigned char *bom = get_utf8_bom(&bomSize);
1343 fwrite(bom, 1, bomSize, f);
1344 blob_to_utf8_no_bom(p, 0);
1345 }else if( fHasInvalidUtf8 ){
1346 blob_cp1252_to_utf8(p);
1347 }
1348 if( fHasAnyCr ){
1349 blob_to_lf_only(p);
1350 }
1351 fwrite(blob_buffer(p), 1, blob_size(p), f);
@@ -1676,15 +1677,25 @@
1677 ){
1678 fossil_fatal("would fork. \"update\" first or use --allow-fork.");
1679 }
1680
1681 /*
1682 ** Do not allow a commit against a closed leaf unless the commit
1683 ** ends up on a different branch.
1684 */
1685 if(
1686 /* parent checkin has the "closed" tag... */
1687 db_exists("SELECT 1 FROM tagxref"
1688 " WHERE tagid=%d AND rid=%d AND tagtype>0",
1689 TAG_CLOSED, vid)
1690 /* ... and the new checkin has no --branch option or the --branch
1691 ** option does not actually change the branch */
1692 && (sCiInfo.zBranch==0
1693 || db_exists("SELECT 1 FROM tagxref"
1694 " WHERE tagid=%d AND rid=%d AND tagtype>0"
1695 " AND value=%Q", TAG_BRANCH, vid, sCiInfo.zBranch))
1696 ){
1697 fossil_fatal("cannot commit against a closed leaf");
1698 }
1699
1700 if( useCksum ) vfile_aggregate_checksum_disk(vid, &cksum1);
1701 if( zComment ){
1702
+1 -1
--- src/checkout.c
+++ src/checkout.c
@@ -67,11 +67,11 @@
6767
vid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &uuid);
6868
if( vid==0 ){
6969
fossil_fatal("no such check-in: %s", g.argv[2]);
7070
}
7171
if( !is_a_version(vid) ){
72
- fossil_fatal("object [%.10s] is not a check-in", blob_str(&uuid));
72
+ fossil_fatal("object [%S] is not a check-in", blob_str(&uuid));
7373
}
7474
if( load_vfile_from_rid(vid) && !forceMissingFlag ){
7575
fossil_fatal("missing content, unable to checkout");
7676
};
7777
return vid;
7878
--- src/checkout.c
+++ src/checkout.c
@@ -67,11 +67,11 @@
67 vid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &uuid);
68 if( vid==0 ){
69 fossil_fatal("no such check-in: %s", g.argv[2]);
70 }
71 if( !is_a_version(vid) ){
72 fossil_fatal("object [%.10s] is not a check-in", blob_str(&uuid));
73 }
74 if( load_vfile_from_rid(vid) && !forceMissingFlag ){
75 fossil_fatal("missing content, unable to checkout");
76 };
77 return vid;
78
--- src/checkout.c
+++ src/checkout.c
@@ -67,11 +67,11 @@
67 vid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &uuid);
68 if( vid==0 ){
69 fossil_fatal("no such check-in: %s", g.argv[2]);
70 }
71 if( !is_a_version(vid) ){
72 fossil_fatal("object [%S] is not a check-in", blob_str(&uuid));
73 }
74 if( load_vfile_from_rid(vid) && !forceMissingFlag ){
75 fossil_fatal("missing content, unable to checkout");
76 };
77 return vid;
78
--- src/comformat.c
+++ src/comformat.c
@@ -23,10 +23,13 @@
2323
#include <assert.h>
2424
#ifdef _WIN32
2525
# include <windows.h>
2626
#else
2727
# include <termios.h>
28
+# if defined(TIOCGWINSZ)
29
+# include <sys/ioctl.h>
30
+# endif
2831
#endif
2932
3033
/*
3134
** This is the previous value used by most external callers when they
3235
** needed to specify a default maximum line length to be used with the
3336
--- src/comformat.c
+++ src/comformat.c
@@ -23,10 +23,13 @@
23 #include <assert.h>
24 #ifdef _WIN32
25 # include <windows.h>
26 #else
27 # include <termios.h>
 
 
 
28 #endif
29
30 /*
31 ** This is the previous value used by most external callers when they
32 ** needed to specify a default maximum line length to be used with the
33
--- src/comformat.c
+++ src/comformat.c
@@ -23,10 +23,13 @@
23 #include <assert.h>
24 #ifdef _WIN32
25 # include <windows.h>
26 #else
27 # include <termios.h>
28 # if defined(TIOCGWINSZ)
29 # include <sys/ioctl.h>
30 # endif
31 #endif
32
33 /*
34 ** This is the previous value used by most external callers when they
35 ** needed to specify a default maximum line length to be used with the
36
--- src/config.h
+++ src/config.h
@@ -24,10 +24,15 @@
2424
#define _LARGE_FILE 1
2525
#ifndef _FILE_OFFSET_BITS
2626
# define _FILE_OFFSET_BITS 64
2727
#endif
2828
#define _LARGEFILE_SOURCE 1
29
+
30
+/* Needed for various definitions... */
31
+#ifndef _GNU_SOURCE
32
+# define _GNU_SOURCE
33
+#endif
2934
3035
/* Make sure that in Win32 MinGW builds, _USE_32BIT_TIME_T is always defined. */
3136
#if defined(_WIN32) && !defined(_WIN64) && !defined(_MSC_VER) && !defined(_USE_32BIT_TIME_T)
3237
# define _USE_32BIT_TIME_T
3338
#endif
3439
--- src/config.h
+++ src/config.h
@@ -24,10 +24,15 @@
24 #define _LARGE_FILE 1
25 #ifndef _FILE_OFFSET_BITS
26 # define _FILE_OFFSET_BITS 64
27 #endif
28 #define _LARGEFILE_SOURCE 1
 
 
 
 
 
29
30 /* Make sure that in Win32 MinGW builds, _USE_32BIT_TIME_T is always defined. */
31 #if defined(_WIN32) && !defined(_WIN64) && !defined(_MSC_VER) && !defined(_USE_32BIT_TIME_T)
32 # define _USE_32BIT_TIME_T
33 #endif
34
--- src/config.h
+++ src/config.h
@@ -24,10 +24,15 @@
24 #define _LARGE_FILE 1
25 #ifndef _FILE_OFFSET_BITS
26 # define _FILE_OFFSET_BITS 64
27 #endif
28 #define _LARGEFILE_SOURCE 1
29
30 /* Needed for various definitions... */
31 #ifndef _GNU_SOURCE
32 # define _GNU_SOURCE
33 #endif
34
35 /* Make sure that in Win32 MinGW builds, _USE_32BIT_TIME_T is always defined. */
36 #if defined(_WIN32) && !defined(_WIN64) && !defined(_MSC_VER) && !defined(_USE_32BIT_TIME_T)
37 # define _USE_32BIT_TIME_T
38 #endif
39
+3 -8
--- src/db.c
+++ src/db.c
@@ -1465,29 +1465,24 @@
14651465
**
14661466
** Options:
14671467
** --template FILE copy settings from repository file
14681468
** --admin-user|-A USERNAME select given USERNAME as admin user
14691469
** --date-override DATETIME use DATETIME as time of the initial checkin
1470
-** (overrides --empty as well)
1471
-** --empty Do not create an initial empty checkin.
1470
+** (default: do not create an initial checkin)
14721471
**
14731472
** See also: clone
14741473
*/
14751474
void create_repository_cmd(void){
14761475
char *zPassword;
14771476
const char *zTemplate; /* Repository from which to copy settings */
14781477
const char *zDate; /* Date of the initial check-in */
14791478
const char *zDefaultUser; /* Optional name of the default user */
1480
- char const *zCreateEmpty; /* --empty flag set? */
14811479
14821480
zTemplate = find_option("template",0,1);
14831481
zDate = find_option("date-override",0,1);
14841482
zDefaultUser = find_option("admin-user","A",1);
1485
- zCreateEmpty = find_option("empty", 0, 0);
1486
- if( !zDate && !zCreateEmpty ){
1487
- zDate = "now";
1488
- }
1483
+ find_option("empty", 0, 0); /* deprecated */
14891484
if( g.argc!=3 ){
14901485
usage("REPOSITORY-NAME");
14911486
}
14921487
db_create_repository(g.argv[2]);
14931488
db_open_repository(g.argv[2]);
@@ -2153,11 +2148,11 @@
21532148
{ "allow-symlinks", 0, 0, 1, 0, "off" },
21542149
{ "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
21552150
{ "auto-hyperlink", 0, 0, 0, 0, "on", },
21562151
{ "auto-shun", 0, 0, 0, 0, "on" },
21572152
{ "autosync", 0, 0, 0, 0, "on" },
2158
- { "autosync-tries", 0, 0, 0, 0, "" },
2153
+ { "autosync-tries", 0, 16, 0, 0, "1" },
21592154
{ "binary-glob", 0, 40, 1, 0, "" },
21602155
{ "clearsign", 0, 0, 0, 0, "off" },
21612156
#if defined(_WIN32) || defined(__CYGWIN__) || defined(__DARWIN__) || \
21622157
defined(__APPLE__)
21632158
{ "case-sensitive", 0, 0, 0, 0, "off" },
21642159
--- src/db.c
+++ src/db.c
@@ -1465,29 +1465,24 @@
1465 **
1466 ** Options:
1467 ** --template FILE copy settings from repository file
1468 ** --admin-user|-A USERNAME select given USERNAME as admin user
1469 ** --date-override DATETIME use DATETIME as time of the initial checkin
1470 ** (overrides --empty as well)
1471 ** --empty Do not create an initial empty checkin.
1472 **
1473 ** See also: clone
1474 */
1475 void create_repository_cmd(void){
1476 char *zPassword;
1477 const char *zTemplate; /* Repository from which to copy settings */
1478 const char *zDate; /* Date of the initial check-in */
1479 const char *zDefaultUser; /* Optional name of the default user */
1480 char const *zCreateEmpty; /* --empty flag set? */
1481
1482 zTemplate = find_option("template",0,1);
1483 zDate = find_option("date-override",0,1);
1484 zDefaultUser = find_option("admin-user","A",1);
1485 zCreateEmpty = find_option("empty", 0, 0);
1486 if( !zDate && !zCreateEmpty ){
1487 zDate = "now";
1488 }
1489 if( g.argc!=3 ){
1490 usage("REPOSITORY-NAME");
1491 }
1492 db_create_repository(g.argv[2]);
1493 db_open_repository(g.argv[2]);
@@ -2153,11 +2148,11 @@
2153 { "allow-symlinks", 0, 0, 1, 0, "off" },
2154 { "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
2155 { "auto-hyperlink", 0, 0, 0, 0, "on", },
2156 { "auto-shun", 0, 0, 0, 0, "on" },
2157 { "autosync", 0, 0, 0, 0, "on" },
2158 { "autosync-tries", 0, 0, 0, 0, "" },
2159 { "binary-glob", 0, 40, 1, 0, "" },
2160 { "clearsign", 0, 0, 0, 0, "off" },
2161 #if defined(_WIN32) || defined(__CYGWIN__) || defined(__DARWIN__) || \
2162 defined(__APPLE__)
2163 { "case-sensitive", 0, 0, 0, 0, "off" },
2164
--- src/db.c
+++ src/db.c
@@ -1465,29 +1465,24 @@
1465 **
1466 ** Options:
1467 ** --template FILE copy settings from repository file
1468 ** --admin-user|-A USERNAME select given USERNAME as admin user
1469 ** --date-override DATETIME use DATETIME as time of the initial checkin
1470 ** (default: do not create an initial checkin)
 
1471 **
1472 ** See also: clone
1473 */
1474 void create_repository_cmd(void){
1475 char *zPassword;
1476 const char *zTemplate; /* Repository from which to copy settings */
1477 const char *zDate; /* Date of the initial check-in */
1478 const char *zDefaultUser; /* Optional name of the default user */
 
1479
1480 zTemplate = find_option("template",0,1);
1481 zDate = find_option("date-override",0,1);
1482 zDefaultUser = find_option("admin-user","A",1);
1483 find_option("empty", 0, 0); /* deprecated */
 
 
 
1484 if( g.argc!=3 ){
1485 usage("REPOSITORY-NAME");
1486 }
1487 db_create_repository(g.argv[2]);
1488 db_open_repository(g.argv[2]);
@@ -2153,11 +2148,11 @@
2148 { "allow-symlinks", 0, 0, 1, 0, "off" },
2149 { "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
2150 { "auto-hyperlink", 0, 0, 0, 0, "on", },
2151 { "auto-shun", 0, 0, 0, 0, "on" },
2152 { "autosync", 0, 0, 0, 0, "on" },
2153 { "autosync-tries", 0, 16, 0, 0, "1" },
2154 { "binary-glob", 0, 40, 1, 0, "" },
2155 { "clearsign", 0, 0, 0, 0, "off" },
2156 #if defined(_WIN32) || defined(__CYGWIN__) || defined(__DARWIN__) || \
2157 defined(__APPLE__)
2158 { "case-sensitive", 0, 0, 0, 0, "off" },
2159
--- src/descendants.c
+++ src/descendants.c
@@ -406,11 +406,11 @@
406406
zLastBr = fossil_strdup(zBr);
407407
}
408408
n++;
409409
sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n);
410410
fossil_print("%6s ", zLineNo);
411
- z = mprintf("%s [%.10s] %s", zDate, zId, zCom);
411
+ z = mprintf("%s [%S] %s", zDate, zId, zCom);
412412
comment_print(z, 7, width);
413413
fossil_free(z);
414414
}
415415
fossil_free(zLastBr);
416416
db_finalize(&q);
417417
--- src/descendants.c
+++ src/descendants.c
@@ -406,11 +406,11 @@
406 zLastBr = fossil_strdup(zBr);
407 }
408 n++;
409 sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n);
410 fossil_print("%6s ", zLineNo);
411 z = mprintf("%s [%.10s] %s", zDate, zId, zCom);
412 comment_print(z, 7, width);
413 fossil_free(z);
414 }
415 fossil_free(zLastBr);
416 db_finalize(&q);
417
--- src/descendants.c
+++ src/descendants.c
@@ -406,11 +406,11 @@
406 zLastBr = fossil_strdup(zBr);
407 }
408 n++;
409 sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n);
410 fossil_print("%6s ", zLineNo);
411 z = mprintf("%s [%S] %s", zDate, zId, zCom);
412 comment_print(z, 7, width);
413 fossil_free(z);
414 }
415 fossil_free(zLastBr);
416 db_finalize(&q);
417
+5 -5
--- src/diff.c
+++ src/diff.c
@@ -2312,12 +2312,12 @@
23122312
char *zLink = href("%R/finfo?name=%t&ci=%s",zFilename,zCI);
23132313
@ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2>
23142314
@ <ol>
23152315
for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
23162316
@ <li><span style='background-color:%s(p->zBgColor);'>%s(p->zDate)
2317
- @ check-in %z(href("%R/info/%s",p->zMUuid))%.10s(p->zMUuid)</a>
2318
- @ artifact %z(href("%R/artifact/%s",p->zFUuid))%.10s(p->zFUuid)</a>
2317
+ @ check-in %z(href("%R/info/%s",p->zMUuid))%S(p->zMUuid)</a>
2318
+ @ artifact %z(href("%R/artifact/%s",p->zFUuid))%S(p->zFUuid)</a>
23192319
@ </span>
23202320
#if 0
23212321
if( i>0 ){
23222322
char *zLink = xhref("target='infowindow'",
23232323
"%R/fdiff?v1=%S&v2=%S&sbs=1",
@@ -2465,11 +2465,11 @@
24652465
annFlags |= (ANN_FILE_ANCEST|DIFF_STRIP_EOLCR);
24662466
annotate_file(&ann, fnid, mid, iLimit, annFlags);
24672467
if( showLog ){
24682468
struct AnnVers *p;
24692469
for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
2470
- fossil_print("version %3d: %s %.10s file %.10s\n",
2470
+ fossil_print("version %3d: %s %S file %S\n",
24712471
i+1, p->zDate, p->zMUuid, p->zFUuid);
24722472
}
24732473
fossil_print("---------------------------------------------------\n");
24742474
}
24752475
for(i=0; i<ann.nOrig; i++){
@@ -2479,21 +2479,21 @@
24792479
struct AnnVers *p;
24802480
if( iLimit>ann.nVers && iVers<0 ) iVers = ann.nVers-1;
24812481
p = ann.aVers + iVers;
24822482
if( bBlame ){
24832483
if( iVers>=0 ){
2484
- fossil_print("%.10s %s %13.13s: %.*s\n",
2484
+ fossil_print("%S %s %13.13s: %.*s\n",
24852485
fileVers ? p->zFUuid : p->zMUuid, p->zDate, p->zUser, n, z);
24862486
}else{
24872487
fossil_print("%35s %.*s\n", "", n, z);
24882488
}
24892489
}else{
24902490
if( iVers>=0 ){
2491
- fossil_print("%.10s %s %5d: %.*s\n",
2491
+ fossil_print("%S %s %5d: %.*s\n",
24922492
fileVers ? p->zFUuid : p->zMUuid, p->zDate, i+1, n, z);
24932493
}else{
24942494
fossil_print("%21s %5d: %.*s\n",
24952495
"", i+1, n, z);
24962496
}
24972497
}
24982498
}
24992499
}
25002500
--- src/diff.c
+++ src/diff.c
@@ -2312,12 +2312,12 @@
2312 char *zLink = href("%R/finfo?name=%t&ci=%s",zFilename,zCI);
2313 @ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2>
2314 @ <ol>
2315 for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
2316 @ <li><span style='background-color:%s(p->zBgColor);'>%s(p->zDate)
2317 @ check-in %z(href("%R/info/%s",p->zMUuid))%.10s(p->zMUuid)</a>
2318 @ artifact %z(href("%R/artifact/%s",p->zFUuid))%.10s(p->zFUuid)</a>
2319 @ </span>
2320 #if 0
2321 if( i>0 ){
2322 char *zLink = xhref("target='infowindow'",
2323 "%R/fdiff?v1=%S&v2=%S&sbs=1",
@@ -2465,11 +2465,11 @@
2465 annFlags |= (ANN_FILE_ANCEST|DIFF_STRIP_EOLCR);
2466 annotate_file(&ann, fnid, mid, iLimit, annFlags);
2467 if( showLog ){
2468 struct AnnVers *p;
2469 for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
2470 fossil_print("version %3d: %s %.10s file %.10s\n",
2471 i+1, p->zDate, p->zMUuid, p->zFUuid);
2472 }
2473 fossil_print("---------------------------------------------------\n");
2474 }
2475 for(i=0; i<ann.nOrig; i++){
@@ -2479,21 +2479,21 @@
2479 struct AnnVers *p;
2480 if( iLimit>ann.nVers && iVers<0 ) iVers = ann.nVers-1;
2481 p = ann.aVers + iVers;
2482 if( bBlame ){
2483 if( iVers>=0 ){
2484 fossil_print("%.10s %s %13.13s: %.*s\n",
2485 fileVers ? p->zFUuid : p->zMUuid, p->zDate, p->zUser, n, z);
2486 }else{
2487 fossil_print("%35s %.*s\n", "", n, z);
2488 }
2489 }else{
2490 if( iVers>=0 ){
2491 fossil_print("%.10s %s %5d: %.*s\n",
2492 fileVers ? p->zFUuid : p->zMUuid, p->zDate, i+1, n, z);
2493 }else{
2494 fossil_print("%21s %5d: %.*s\n",
2495 "", i+1, n, z);
2496 }
2497 }
2498 }
2499 }
2500
--- src/diff.c
+++ src/diff.c
@@ -2312,12 +2312,12 @@
2312 char *zLink = href("%R/finfo?name=%t&ci=%s",zFilename,zCI);
2313 @ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2>
2314 @ <ol>
2315 for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
2316 @ <li><span style='background-color:%s(p->zBgColor);'>%s(p->zDate)
2317 @ check-in %z(href("%R/info/%s",p->zMUuid))%S(p->zMUuid)</a>
2318 @ artifact %z(href("%R/artifact/%s",p->zFUuid))%S(p->zFUuid)</a>
2319 @ </span>
2320 #if 0
2321 if( i>0 ){
2322 char *zLink = xhref("target='infowindow'",
2323 "%R/fdiff?v1=%S&v2=%S&sbs=1",
@@ -2465,11 +2465,11 @@
2465 annFlags |= (ANN_FILE_ANCEST|DIFF_STRIP_EOLCR);
2466 annotate_file(&ann, fnid, mid, iLimit, annFlags);
2467 if( showLog ){
2468 struct AnnVers *p;
2469 for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
2470 fossil_print("version %3d: %s %S file %S\n",
2471 i+1, p->zDate, p->zMUuid, p->zFUuid);
2472 }
2473 fossil_print("---------------------------------------------------\n");
2474 }
2475 for(i=0; i<ann.nOrig; i++){
@@ -2479,21 +2479,21 @@
2479 struct AnnVers *p;
2480 if( iLimit>ann.nVers && iVers<0 ) iVers = ann.nVers-1;
2481 p = ann.aVers + iVers;
2482 if( bBlame ){
2483 if( iVers>=0 ){
2484 fossil_print("%S %s %13.13s: %.*s\n",
2485 fileVers ? p->zFUuid : p->zMUuid, p->zDate, p->zUser, n, z);
2486 }else{
2487 fossil_print("%35s %.*s\n", "", n, z);
2488 }
2489 }else{
2490 if( iVers>=0 ){
2491 fossil_print("%S %s %5d: %.*s\n",
2492 fileVers ? p->zFUuid : p->zMUuid, p->zDate, i+1, n, z);
2493 }else{
2494 fossil_print("%21s %5d: %.*s\n",
2495 "", i+1, n, z);
2496 }
2497 }
2498 }
2499 }
2500
+2 -2
--- src/finfo.c
+++ src/finfo.c
@@ -200,11 +200,11 @@
200200
char *zOut;
201201
if( zBr==0 ) zBr = "trunk";
202202
if( iBrief ){
203203
fossil_print("%s ", zDate);
204204
zOut = sqlite3_mprintf(
205
- "[%.10s] %s (user: %s, artifact: [%.10s], branch: %s)",
205
+ "[%S] %s (user: %s, artifact: [%S], branch: %s)",
206206
zCiUuid, zCom, zUser, zFileUuid, zBr);
207207
comment_print(zOut, 11, iWidth);
208208
sqlite3_free(zOut);
209209
}else{
210210
blob_reset(&line);
@@ -382,11 +382,11 @@
382382
if( baseCheckin ){
383383
char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", baseCheckin);
384384
char *zLink = href("%R/info/%s", zUuid);
385385
blob_appendf(&title, "Ancestors of file ");
386386
hyperlinked_path(zFilename, &title, zUuid, "tree", "");
387
- blob_appendf(&title, " from check-in %z%.10s</a>", zLink, zUuid);
387
+ blob_appendf(&title, " from check-in %z%S</a>", zLink, zUuid);
388388
fossil_free(zUuid);
389389
}else{
390390
blob_appendf(&title, "History of files named ");
391391
hyperlinked_path(zFilename, &title, 0, "tree", "");
392392
}
393393
--- src/finfo.c
+++ src/finfo.c
@@ -200,11 +200,11 @@
200 char *zOut;
201 if( zBr==0 ) zBr = "trunk";
202 if( iBrief ){
203 fossil_print("%s ", zDate);
204 zOut = sqlite3_mprintf(
205 "[%.10s] %s (user: %s, artifact: [%.10s], branch: %s)",
206 zCiUuid, zCom, zUser, zFileUuid, zBr);
207 comment_print(zOut, 11, iWidth);
208 sqlite3_free(zOut);
209 }else{
210 blob_reset(&line);
@@ -382,11 +382,11 @@
382 if( baseCheckin ){
383 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", baseCheckin);
384 char *zLink = href("%R/info/%s", zUuid);
385 blob_appendf(&title, "Ancestors of file ");
386 hyperlinked_path(zFilename, &title, zUuid, "tree", "");
387 blob_appendf(&title, " from check-in %z%.10s</a>", zLink, zUuid);
388 fossil_free(zUuid);
389 }else{
390 blob_appendf(&title, "History of files named ");
391 hyperlinked_path(zFilename, &title, 0, "tree", "");
392 }
393
--- src/finfo.c
+++ src/finfo.c
@@ -200,11 +200,11 @@
200 char *zOut;
201 if( zBr==0 ) zBr = "trunk";
202 if( iBrief ){
203 fossil_print("%s ", zDate);
204 zOut = sqlite3_mprintf(
205 "[%S] %s (user: %s, artifact: [%S], branch: %s)",
206 zCiUuid, zCom, zUser, zFileUuid, zBr);
207 comment_print(zOut, 11, iWidth);
208 sqlite3_free(zOut);
209 }else{
210 blob_reset(&line);
@@ -382,11 +382,11 @@
382 if( baseCheckin ){
383 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", baseCheckin);
384 char *zLink = href("%R/info/%s", zUuid);
385 blob_appendf(&title, "Ancestors of file ");
386 hyperlinked_path(zFilename, &title, zUuid, "tree", "");
387 blob_appendf(&title, " from check-in %z%S</a>", zLink, zUuid);
388 fossil_free(zUuid);
389 }else{
390 blob_appendf(&title, "History of files named ");
391 hyperlinked_path(zFilename, &title, 0, "tree", "");
392 }
393
+1 -1
--- src/info.c
+++ src/info.c
@@ -531,11 +531,11 @@
531531
timeline_utc(), timeline_utc(), rid, rid
532532
);
533533
sideBySide = !is_false(PD("sbs","1"));
534534
if( db_step(&q1)==SQLITE_ROW ){
535535
const char *zUuid = db_column_text(&q1, 0);
536
- char *zTitle = mprintf("Check-in [%.10s]", zUuid);
536
+ char *zTitle = mprintf("Check-in [%S]", zUuid);
537537
char *zEUser, *zEComment;
538538
const char *zUser;
539539
const char *zComment;
540540
const char *zDate;
541541
const char *zOrigDate;
542542
--- src/info.c
+++ src/info.c
@@ -531,11 +531,11 @@
531 timeline_utc(), timeline_utc(), rid, rid
532 );
533 sideBySide = !is_false(PD("sbs","1"));
534 if( db_step(&q1)==SQLITE_ROW ){
535 const char *zUuid = db_column_text(&q1, 0);
536 char *zTitle = mprintf("Check-in [%.10s]", zUuid);
537 char *zEUser, *zEComment;
538 const char *zUser;
539 const char *zComment;
540 const char *zDate;
541 const char *zOrigDate;
542
--- src/info.c
+++ src/info.c
@@ -531,11 +531,11 @@
531 timeline_utc(), timeline_utc(), rid, rid
532 );
533 sideBySide = !is_false(PD("sbs","1"));
534 if( db_step(&q1)==SQLITE_ROW ){
535 const char *zUuid = db_column_text(&q1, 0);
536 char *zTitle = mprintf("Check-in [%S]", zUuid);
537 char *zEUser, *zEComment;
538 const char *zUser;
539 const char *zComment;
540 const char *zDate;
541 const char *zOrigDate;
542
+7 -6
--- src/main.c
+++ src/main.c
@@ -298,15 +298,16 @@
298298
*/
299299
static int name_search(
300300
const char *zName, /* The name we are looking for */
301301
const NameMap *aMap, /* Search in this array */
302302
int nMap, /* Number of slots in aMap[] */
303
+ int iBegin, /* Lower bound on the array search */
303304
int *pIndex /* OUT: The index in aMap[] of the match */
304305
){
305306
int upr, lwr, cnt, m, i;
306307
int n = strlen(zName);
307
- lwr = 0;
308
+ lwr = iBegin;
308309
upr = nMap-1;
309310
while( lwr<=upr ){
310311
int mid, c;
311312
mid = (upr+lwr)/2;
312313
c = fossil_strcmp(zName, aMap[mid].zName);
@@ -318,11 +319,11 @@
318319
}else{
319320
lwr = mid + 1;
320321
}
321322
}
322323
for(m=cnt=0, i=upr-2; cnt<2 && i<=upr+3 && i<nMap; i++){
323
- if( i<0 ) continue;
324
+ if( i<iBegin ) continue;
324325
if( strncmp(zName, aMap[i].zName, n)==0 ){
325326
m = i;
326327
cnt++;
327328
}
328329
}
@@ -655,11 +656,11 @@
655656
}
656657
#ifndef _WIN32
657658
if( !is_valid_fd(2) ) fossil_panic("file descriptor 2 not open");
658659
/* if( is_valid_fd(3) ) fossil_warning("file descriptor 3 is open"); */
659660
#endif
660
- rc = name_search(zCmdName, aCommand, count(aCommand), &idx);
661
+ rc = name_search(zCmdName, aCommand, count(aCommand), FOSSIL_FIRST_CMD, &idx);
661662
if( rc==1 ){
662663
#ifdef FOSSIL_ENABLE_TH1_HOOKS
663664
if( !g.isHTTP && !g.fNoThHook ){
664665
rc = Th_CommandHook(zCmdName, 0);
665666
}else{
@@ -1015,11 +1016,11 @@
10151016
zCmdOrPagePlural = "pages";
10161017
}else{
10171018
zCmdOrPage = "command";
10181019
zCmdOrPagePlural = "commands";
10191020
}
1020
- rc = name_search(g.argv[2], aCommand, count(aCommand), &idx);
1021
+ rc = name_search(g.argv[2], aCommand, count(aCommand), 0, &idx);
10211022
if( rc==1 ){
10221023
fossil_print("unknown %s: %s\nAvailable %s:\n",
10231024
zCmdOrPage, g.argv[2], zCmdOrPagePlural);
10241025
command_list(0, isPage ? CMDFLAG_WEBPAGE : (0xff & ~CMDFLAG_WEBPAGE));
10251026
fossil_exit(1);
@@ -1059,11 +1060,11 @@
10591060
int rc, idx;
10601061
char *z, *s, *d;
10611062
char const * zCmdOrPage = ('/'==*zCmd) ? "page" : "command";
10621063
style_submenu_element("Command-List", "Command-List", "%s/help", g.zTop);
10631064
@ <h1>The "%s(zCmd)" %s(zCmdOrPage):</h1>
1064
- rc = name_search(zCmd, aCommand, count(aCommand), &idx);
1065
+ rc = name_search(zCmd, aCommand, count(aCommand), 0, &idx);
10651066
if( rc==1 ){
10661067
@ unknown command: %s(zCmd)
10671068
}else if( rc==2 ){
10681069
@ ambiguous command prefix: %s(zCmd)
10691070
}else{
@@ -1561,11 +1562,11 @@
15611562
}
15621563
15631564
/* Locate the method specified by the path and execute the function
15641565
** that implements that method.
15651566
*/
1566
- if( name_search(g.zPath, aWebpage, count(aWebpage), &idx) ){
1567
+ if( name_search(g.zPath, aWebpage, count(aWebpage), 0, &idx) ){
15671568
#ifdef FOSSIL_ENABLE_JSON
15681569
if(g.json.isJsonMode){
15691570
json_err(FSL_JSON_E_RESOURCE_NOT_FOUND,NULL,0);
15701571
}else
15711572
#endif
15721573
--- src/main.c
+++ src/main.c
@@ -298,15 +298,16 @@
298 */
299 static int name_search(
300 const char *zName, /* The name we are looking for */
301 const NameMap *aMap, /* Search in this array */
302 int nMap, /* Number of slots in aMap[] */
 
303 int *pIndex /* OUT: The index in aMap[] of the match */
304 ){
305 int upr, lwr, cnt, m, i;
306 int n = strlen(zName);
307 lwr = 0;
308 upr = nMap-1;
309 while( lwr<=upr ){
310 int mid, c;
311 mid = (upr+lwr)/2;
312 c = fossil_strcmp(zName, aMap[mid].zName);
@@ -318,11 +319,11 @@
318 }else{
319 lwr = mid + 1;
320 }
321 }
322 for(m=cnt=0, i=upr-2; cnt<2 && i<=upr+3 && i<nMap; i++){
323 if( i<0 ) continue;
324 if( strncmp(zName, aMap[i].zName, n)==0 ){
325 m = i;
326 cnt++;
327 }
328 }
@@ -655,11 +656,11 @@
655 }
656 #ifndef _WIN32
657 if( !is_valid_fd(2) ) fossil_panic("file descriptor 2 not open");
658 /* if( is_valid_fd(3) ) fossil_warning("file descriptor 3 is open"); */
659 #endif
660 rc = name_search(zCmdName, aCommand, count(aCommand), &idx);
661 if( rc==1 ){
662 #ifdef FOSSIL_ENABLE_TH1_HOOKS
663 if( !g.isHTTP && !g.fNoThHook ){
664 rc = Th_CommandHook(zCmdName, 0);
665 }else{
@@ -1015,11 +1016,11 @@
1015 zCmdOrPagePlural = "pages";
1016 }else{
1017 zCmdOrPage = "command";
1018 zCmdOrPagePlural = "commands";
1019 }
1020 rc = name_search(g.argv[2], aCommand, count(aCommand), &idx);
1021 if( rc==1 ){
1022 fossil_print("unknown %s: %s\nAvailable %s:\n",
1023 zCmdOrPage, g.argv[2], zCmdOrPagePlural);
1024 command_list(0, isPage ? CMDFLAG_WEBPAGE : (0xff & ~CMDFLAG_WEBPAGE));
1025 fossil_exit(1);
@@ -1059,11 +1060,11 @@
1059 int rc, idx;
1060 char *z, *s, *d;
1061 char const * zCmdOrPage = ('/'==*zCmd) ? "page" : "command";
1062 style_submenu_element("Command-List", "Command-List", "%s/help", g.zTop);
1063 @ <h1>The "%s(zCmd)" %s(zCmdOrPage):</h1>
1064 rc = name_search(zCmd, aCommand, count(aCommand), &idx);
1065 if( rc==1 ){
1066 @ unknown command: %s(zCmd)
1067 }else if( rc==2 ){
1068 @ ambiguous command prefix: %s(zCmd)
1069 }else{
@@ -1561,11 +1562,11 @@
1561 }
1562
1563 /* Locate the method specified by the path and execute the function
1564 ** that implements that method.
1565 */
1566 if( name_search(g.zPath, aWebpage, count(aWebpage), &idx) ){
1567 #ifdef FOSSIL_ENABLE_JSON
1568 if(g.json.isJsonMode){
1569 json_err(FSL_JSON_E_RESOURCE_NOT_FOUND,NULL,0);
1570 }else
1571 #endif
1572
--- src/main.c
+++ src/main.c
@@ -298,15 +298,16 @@
298 */
299 static int name_search(
300 const char *zName, /* The name we are looking for */
301 const NameMap *aMap, /* Search in this array */
302 int nMap, /* Number of slots in aMap[] */
303 int iBegin, /* Lower bound on the array search */
304 int *pIndex /* OUT: The index in aMap[] of the match */
305 ){
306 int upr, lwr, cnt, m, i;
307 int n = strlen(zName);
308 lwr = iBegin;
309 upr = nMap-1;
310 while( lwr<=upr ){
311 int mid, c;
312 mid = (upr+lwr)/2;
313 c = fossil_strcmp(zName, aMap[mid].zName);
@@ -318,11 +319,11 @@
319 }else{
320 lwr = mid + 1;
321 }
322 }
323 for(m=cnt=0, i=upr-2; cnt<2 && i<=upr+3 && i<nMap; i++){
324 if( i<iBegin ) continue;
325 if( strncmp(zName, aMap[i].zName, n)==0 ){
326 m = i;
327 cnt++;
328 }
329 }
@@ -655,11 +656,11 @@
656 }
657 #ifndef _WIN32
658 if( !is_valid_fd(2) ) fossil_panic("file descriptor 2 not open");
659 /* if( is_valid_fd(3) ) fossil_warning("file descriptor 3 is open"); */
660 #endif
661 rc = name_search(zCmdName, aCommand, count(aCommand), FOSSIL_FIRST_CMD, &idx);
662 if( rc==1 ){
663 #ifdef FOSSIL_ENABLE_TH1_HOOKS
664 if( !g.isHTTP && !g.fNoThHook ){
665 rc = Th_CommandHook(zCmdName, 0);
666 }else{
@@ -1015,11 +1016,11 @@
1016 zCmdOrPagePlural = "pages";
1017 }else{
1018 zCmdOrPage = "command";
1019 zCmdOrPagePlural = "commands";
1020 }
1021 rc = name_search(g.argv[2], aCommand, count(aCommand), 0, &idx);
1022 if( rc==1 ){
1023 fossil_print("unknown %s: %s\nAvailable %s:\n",
1024 zCmdOrPage, g.argv[2], zCmdOrPagePlural);
1025 command_list(0, isPage ? CMDFLAG_WEBPAGE : (0xff & ~CMDFLAG_WEBPAGE));
1026 fossil_exit(1);
@@ -1059,11 +1060,11 @@
1060 int rc, idx;
1061 char *z, *s, *d;
1062 char const * zCmdOrPage = ('/'==*zCmd) ? "page" : "command";
1063 style_submenu_element("Command-List", "Command-List", "%s/help", g.zTop);
1064 @ <h1>The "%s(zCmd)" %s(zCmdOrPage):</h1>
1065 rc = name_search(zCmd, aCommand, count(aCommand), 0, &idx);
1066 if( rc==1 ){
1067 @ unknown command: %s(zCmd)
1068 }else if( rc==2 ){
1069 @ ambiguous command prefix: %s(zCmd)
1070 }else{
@@ -1561,11 +1562,11 @@
1562 }
1563
1564 /* Locate the method specified by the path and execute the function
1565 ** that implements that method.
1566 */
1567 if( name_search(g.zPath, aWebpage, count(aWebpage), 0, &idx) ){
1568 #ifdef FOSSIL_ENABLE_JSON
1569 if(g.json.isJsonMode){
1570 json_err(FSL_JSON_E_RESOURCE_NOT_FOUND,NULL,0);
1571 }else
1572 #endif
1573
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -157,10 +157,11 @@
157157
158158
# Options used to compile the included SQLite shell on Windows.
159159
#
160160
set SHELL_WIN32_OPTIONS $SHELL_OPTIONS
161161
lappend SHELL_WIN32_OPTIONS -Daccess=file_access
162
+lappend SHELL_WIN32_OPTIONS -Dsystem=fossil_system
162163
lappend SHELL_WIN32_OPTIONS -Dgetenv=fossil_getenv
163164
lappend SHELL_WIN32_OPTIONS -Dfopen=fossil_fopen
164165
165166
# Name of the final application
166167
#
167168
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -157,10 +157,11 @@
157
158 # Options used to compile the included SQLite shell on Windows.
159 #
160 set SHELL_WIN32_OPTIONS $SHELL_OPTIONS
161 lappend SHELL_WIN32_OPTIONS -Daccess=file_access
 
162 lappend SHELL_WIN32_OPTIONS -Dgetenv=fossil_getenv
163 lappend SHELL_WIN32_OPTIONS -Dfopen=fossil_fopen
164
165 # Name of the final application
166 #
167
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -157,10 +157,11 @@
157
158 # Options used to compile the included SQLite shell on Windows.
159 #
160 set SHELL_WIN32_OPTIONS $SHELL_OPTIONS
161 lappend SHELL_WIN32_OPTIONS -Daccess=file_access
162 lappend SHELL_WIN32_OPTIONS -Dsystem=fossil_system
163 lappend SHELL_WIN32_OPTIONS -Dgetenv=fossil_getenv
164 lappend SHELL_WIN32_OPTIONS -Dfopen=fossil_fopen
165
166 # Name of the final application
167 #
168
+31 -31
--- src/manifest.c
+++ src/manifest.c
@@ -890,58 +890,58 @@
890890
SYNTAX("cluster contains a card other than M- or Z-");
891891
}
892892
if( !seenZ ) SYNTAX("missing Z-card on cluster");
893893
p->type = CFTYPE_CLUSTER;
894894
}else if( p->zEventId ){
895
+ if( p->zAttachName ) SYNTAX("A-card in event");
896
+ if( p->zBaseline ) SYNTAX("B-card in event");
895897
if( p->rDate<=0.0 ) SYNTAX("missing date on event");
896898
if( p->nFile>0 ) SYNTAX("F-card in event");
897
- if( p->zRepoCksum ) SYNTAX("R-card in event");
898
- if( p->zBaseline ) SYNTAX("B-card in event");
899899
if( p->nField>0 ) SYNTAX("J-card in event");
900900
if( p->zTicketUuid ) SYNTAX("K-card in event");
901901
if( p->zWikiTitle!=0 ) SYNTAX("L-card in event");
902
+ if( p->zRepoCksum ) SYNTAX("R-card in event");
902903
if( p->zWiki==0 ) SYNTAX("missing W-card on event");
903
- if( p->zAttachName ) SYNTAX("A-card in event");
904904
if( !seenZ ) SYNTAX("missing Z-card on event");
905905
p->type = CFTYPE_EVENT;
906
- }else if( hasSelfRefTag || p->nFile>0 || p->zRepoCksum!=0 || p->zBaseline ){
906
+ }else if( p->zWiki!=0 || p->zWikiTitle!=0 ){
907
+ if( p->zAttachName ) SYNTAX("A-card in wiki");
908
+ if( p->zBaseline ) SYNTAX("B-card in wiki");
909
+ if( p->rDate<=0.0 ) SYNTAX("missing date on wiki");
910
+ if( p->nFile>0 ) SYNTAX("F-card in wiki");
911
+ if( p->nField>0 ) SYNTAX("J-card in wiki");
912
+ if( p->zTicketUuid ) SYNTAX("K-card in wiki");
913
+ if( p->zWikiTitle==0 ) SYNTAX("missing L-card on wiki");
914
+ if( p->zRepoCksum ) SYNTAX("R-card in wiki");
915
+ if( p->nTag>0 ) SYNTAX("T-card in wiki");
916
+ if( p->zWiki==0 ) SYNTAX("missing W-card on wiki");
917
+ if( !seenZ ) SYNTAX("missing Z-card on wiki");
918
+ p->type = CFTYPE_WIKI;
919
+ }else if( hasSelfRefTag || p->nFile>0 || p->zRepoCksum!=0 || p->zBaseline
920
+ || p->nParent>0 ){
921
+ if( p->zAttachName ) SYNTAX("A-card in manifest");
907922
if( p->rDate<=0.0 ) SYNTAX("missing date on manifest");
908923
if( p->nField>0 ) SYNTAX("J-card in manifest");
909924
if( p->zTicketUuid ) SYNTAX("K-card in manifest");
910
- if( p->zWiki ) SYNTAX("W-card in manifest");
911
- if( p->zWikiTitle ) SYNTAX("L-card in manifest");
912
- if( p->zTicketUuid ) SYNTAX("K-card in manifest");
913
- if( p->zAttachName ) SYNTAX("A-card in manifest");
914925
p->type = CFTYPE_MANIFEST;
915926
}else if( p->nField>0 || p->zTicketUuid!=0 ){
927
+ if( p->zAttachName ) SYNTAX("A-card in ticket");
916928
if( p->rDate<=0.0 ) SYNTAX("missing date on ticket");
917
- if( p->zWiki ) SYNTAX("W-card in ticket");
918
- if( p->zWikiTitle ) SYNTAX("L-card in ticket");
919929
if( p->nField==0 ) SYNTAX("missing J-card on ticket");
930
+ if( p->zTicketUuid==0 ) SYNTAX("missing K-card on ticket");
931
+ if( p->zMimetype) SYNTAX("N-card in ticket");
920932
if( p->nTag>0 ) SYNTAX("T-card in ticket");
921
- if( p->zTicketUuid==0 ) SYNTAX("missing K-card on ticket");
922933
if( p->zUser==0 ) SYNTAX("missing U-card on ticket");
923
- if( p->zAttachName ) SYNTAX("A-card in ticket");
924
- if( p->zMimetype) SYNTAX("N-card in ticket");
925934
if( !seenZ ) SYNTAX("missing Z-card on ticket");
926935
p->type = CFTYPE_TICKET;
927
- }else if( p->zWiki!=0 || p->zWikiTitle!=0 ){
928
- if( p->rDate<=0.0 ) SYNTAX("missing date on wiki");
929
- if( p->nTag>0 ) SYNTAX("T-card in wiki");
930
- if( p->zWiki==0 ) SYNTAX("missing W-card on wiki");
931
- if( p->zWikiTitle==0 ) SYNTAX("missing L-card on wiki");
932
- if( p->zAttachName ) SYNTAX("A-card in wiki");
933
- if( !seenZ ) SYNTAX("missing Z-card on wiki");
934
- p->type = CFTYPE_WIKI;
935936
}else if( p->zAttachName ){
936937
if( p->rDate<=0.0 ) SYNTAX("missing date on attachment");
937938
if( p->nTag>0 ) SYNTAX("T-card in attachment");
938939
if( !seenZ ) SYNTAX("missing Z-card on attachment");
939940
p->type = CFTYPE_ATTACHMENT;
940941
}else{
941942
if( p->rDate<=0.0 ) SYNTAX("missing date on control");
942
- if( p->nParent>0 ) SYNTAX("P-card in control");
943943
if( p->zMimetype ) SYNTAX("N-card in control");
944944
if( !seenZ ) SYNTAX("missing Z-card on control");
945945
p->type = CFTYPE_CONTROL;
946946
}
947947
md5sum_init();
@@ -1599,40 +1599,40 @@
15991599
if( fossil_strcmp(pManifest->aField[i].zName, zStatusColumn)==0 ){
16001600
zNewStatus = pManifest->aField[i].zValue;
16011601
}
16021602
}
16031603
if( zNewStatus ){
1604
- blob_appendf(&comment, "%h ticket [%s|%.10s]: <i>%h</i>",
1604
+ blob_appendf(&comment, "%h ticket [%s|%S]: <i>%h</i>",
16051605
zNewStatus, pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle
16061606
);
16071607
if( pManifest->nField>1 ){
16081608
blob_appendf(&comment, " plus %d other change%s",
16091609
pManifest->nField-1, pManifest->nField==2 ? "" : "s");
16101610
}
1611
- blob_appendf(&brief, "%h ticket [%s|%.10s].",
1611
+ blob_appendf(&brief, "%h ticket [%s|%S].",
16121612
zNewStatus, pManifest->zTicketUuid, pManifest->zTicketUuid);
16131613
}else{
16141614
zNewStatus = db_text("unknown",
16151615
"SELECT %s FROM ticket WHERE tkt_uuid='%s'",
16161616
zStatusColumn, pManifest->zTicketUuid
16171617
);
1618
- blob_appendf(&comment, "Ticket [%s|%.10s] <i>%h</i> status still %h with "
1618
+ blob_appendf(&comment, "Ticket [%s|%S] <i>%h</i> status still %h with "
16191619
"%d other change%s",
16201620
pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle, zNewStatus,
16211621
pManifest->nField, pManifest->nField==1 ? "" : "s"
16221622
);
16231623
fossil_free(zNewStatus);
1624
- blob_appendf(&brief, "Ticket [%s|%.10s]: %d change%s",
1624
+ blob_appendf(&brief, "Ticket [%s|%S]: %d change%s",
16251625
pManifest->zTicketUuid, pManifest->zTicketUuid, pManifest->nField,
16261626
pManifest->nField==1 ? "" : "s"
16271627
);
16281628
}
16291629
}else{
1630
- blob_appendf(&comment, "New ticket [%s|%.10s] <i>%h</i>.",
1630
+ blob_appendf(&comment, "New ticket [%s|%S] <i>%h</i>.",
16311631
pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle
16321632
);
1633
- blob_appendf(&brief, "New ticket [%s|%.10s].", pManifest->zTicketUuid,
1633
+ blob_appendf(&brief, "New ticket [%s|%S].", pManifest->zTicketUuid,
16341634
pManifest->zTicketUuid);
16351635
}
16361636
fossil_free(zTitle);
16371637
db_multi_exec(
16381638
"REPLACE INTO event(type,tagid,mtime,objid,user,comment,brief)"
@@ -1951,14 +1951,14 @@
19511951
p->zAttachName, p->zAttachTarget);
19521952
}
19531953
}else{
19541954
if( isAdd ){
19551955
zComment = mprintf(
1956
- "Add attachment [/artifact/%s|%h] to ticket [%s|%.10s]",
1956
+ "Add attachment [/artifact/%s|%h] to ticket [%s|%S]",
19571957
p->zAttachSrc, p->zAttachName, p->zAttachTarget, p->zAttachTarget);
19581958
}else{
1959
- zComment = mprintf("Delete attachment \"%h\" from ticket [%s|%.10s]",
1959
+ zComment = mprintf("Delete attachment \"%h\" from ticket [%s|%S]",
19601960
p->zAttachName, p->zAttachTarget, p->zAttachTarget);
19611961
}
19621962
}
19631963
db_multi_exec(
19641964
"REPLACE INTO event(type,mtime,objid,user,comment)"
@@ -1983,11 +1983,11 @@
19831983
for(i=0; i<p->nTag; i++){
19841984
zTagUuid = p->aTag[i].zUuid;
19851985
if( !zTagUuid ) continue;
19861986
if( i==0 || fossil_strcmp(zTagUuid, p->aTag[i-1].zUuid)!=0 ){
19871987
blob_appendf(&comment,
1988
- " Edit [%s|%.10s]:",
1988
+ " Edit [%s|%S]:",
19891989
zTagUuid, zTagUuid);
19901990
branchMove = 0;
19911991
if( permitHooks && db_exists("SELECT 1 FROM event, blob"
19921992
" WHERE event.type='ci' AND event.objid=blob.rid"
19931993
" AND blob.uuid='%s'", zTagUuid) ){
19941994
--- src/manifest.c
+++ src/manifest.c
@@ -890,58 +890,58 @@
890 SYNTAX("cluster contains a card other than M- or Z-");
891 }
892 if( !seenZ ) SYNTAX("missing Z-card on cluster");
893 p->type = CFTYPE_CLUSTER;
894 }else if( p->zEventId ){
 
 
895 if( p->rDate<=0.0 ) SYNTAX("missing date on event");
896 if( p->nFile>0 ) SYNTAX("F-card in event");
897 if( p->zRepoCksum ) SYNTAX("R-card in event");
898 if( p->zBaseline ) SYNTAX("B-card in event");
899 if( p->nField>0 ) SYNTAX("J-card in event");
900 if( p->zTicketUuid ) SYNTAX("K-card in event");
901 if( p->zWikiTitle!=0 ) SYNTAX("L-card in event");
 
902 if( p->zWiki==0 ) SYNTAX("missing W-card on event");
903 if( p->zAttachName ) SYNTAX("A-card in event");
904 if( !seenZ ) SYNTAX("missing Z-card on event");
905 p->type = CFTYPE_EVENT;
906 }else if( hasSelfRefTag || p->nFile>0 || p->zRepoCksum!=0 || p->zBaseline ){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
907 if( p->rDate<=0.0 ) SYNTAX("missing date on manifest");
908 if( p->nField>0 ) SYNTAX("J-card in manifest");
909 if( p->zTicketUuid ) SYNTAX("K-card in manifest");
910 if( p->zWiki ) SYNTAX("W-card in manifest");
911 if( p->zWikiTitle ) SYNTAX("L-card in manifest");
912 if( p->zTicketUuid ) SYNTAX("K-card in manifest");
913 if( p->zAttachName ) SYNTAX("A-card in manifest");
914 p->type = CFTYPE_MANIFEST;
915 }else if( p->nField>0 || p->zTicketUuid!=0 ){
 
916 if( p->rDate<=0.0 ) SYNTAX("missing date on ticket");
917 if( p->zWiki ) SYNTAX("W-card in ticket");
918 if( p->zWikiTitle ) SYNTAX("L-card in ticket");
919 if( p->nField==0 ) SYNTAX("missing J-card on ticket");
 
 
920 if( p->nTag>0 ) SYNTAX("T-card in ticket");
921 if( p->zTicketUuid==0 ) SYNTAX("missing K-card on ticket");
922 if( p->zUser==0 ) SYNTAX("missing U-card on ticket");
923 if( p->zAttachName ) SYNTAX("A-card in ticket");
924 if( p->zMimetype) SYNTAX("N-card in ticket");
925 if( !seenZ ) SYNTAX("missing Z-card on ticket");
926 p->type = CFTYPE_TICKET;
927 }else if( p->zWiki!=0 || p->zWikiTitle!=0 ){
928 if( p->rDate<=0.0 ) SYNTAX("missing date on wiki");
929 if( p->nTag>0 ) SYNTAX("T-card in wiki");
930 if( p->zWiki==0 ) SYNTAX("missing W-card on wiki");
931 if( p->zWikiTitle==0 ) SYNTAX("missing L-card on wiki");
932 if( p->zAttachName ) SYNTAX("A-card in wiki");
933 if( !seenZ ) SYNTAX("missing Z-card on wiki");
934 p->type = CFTYPE_WIKI;
935 }else if( p->zAttachName ){
936 if( p->rDate<=0.0 ) SYNTAX("missing date on attachment");
937 if( p->nTag>0 ) SYNTAX("T-card in attachment");
938 if( !seenZ ) SYNTAX("missing Z-card on attachment");
939 p->type = CFTYPE_ATTACHMENT;
940 }else{
941 if( p->rDate<=0.0 ) SYNTAX("missing date on control");
942 if( p->nParent>0 ) SYNTAX("P-card in control");
943 if( p->zMimetype ) SYNTAX("N-card in control");
944 if( !seenZ ) SYNTAX("missing Z-card on control");
945 p->type = CFTYPE_CONTROL;
946 }
947 md5sum_init();
@@ -1599,40 +1599,40 @@
1599 if( fossil_strcmp(pManifest->aField[i].zName, zStatusColumn)==0 ){
1600 zNewStatus = pManifest->aField[i].zValue;
1601 }
1602 }
1603 if( zNewStatus ){
1604 blob_appendf(&comment, "%h ticket [%s|%.10s]: <i>%h</i>",
1605 zNewStatus, pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle
1606 );
1607 if( pManifest->nField>1 ){
1608 blob_appendf(&comment, " plus %d other change%s",
1609 pManifest->nField-1, pManifest->nField==2 ? "" : "s");
1610 }
1611 blob_appendf(&brief, "%h ticket [%s|%.10s].",
1612 zNewStatus, pManifest->zTicketUuid, pManifest->zTicketUuid);
1613 }else{
1614 zNewStatus = db_text("unknown",
1615 "SELECT %s FROM ticket WHERE tkt_uuid='%s'",
1616 zStatusColumn, pManifest->zTicketUuid
1617 );
1618 blob_appendf(&comment, "Ticket [%s|%.10s] <i>%h</i> status still %h with "
1619 "%d other change%s",
1620 pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle, zNewStatus,
1621 pManifest->nField, pManifest->nField==1 ? "" : "s"
1622 );
1623 fossil_free(zNewStatus);
1624 blob_appendf(&brief, "Ticket [%s|%.10s]: %d change%s",
1625 pManifest->zTicketUuid, pManifest->zTicketUuid, pManifest->nField,
1626 pManifest->nField==1 ? "" : "s"
1627 );
1628 }
1629 }else{
1630 blob_appendf(&comment, "New ticket [%s|%.10s] <i>%h</i>.",
1631 pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle
1632 );
1633 blob_appendf(&brief, "New ticket [%s|%.10s].", pManifest->zTicketUuid,
1634 pManifest->zTicketUuid);
1635 }
1636 fossil_free(zTitle);
1637 db_multi_exec(
1638 "REPLACE INTO event(type,tagid,mtime,objid,user,comment,brief)"
@@ -1951,14 +1951,14 @@
1951 p->zAttachName, p->zAttachTarget);
1952 }
1953 }else{
1954 if( isAdd ){
1955 zComment = mprintf(
1956 "Add attachment [/artifact/%s|%h] to ticket [%s|%.10s]",
1957 p->zAttachSrc, p->zAttachName, p->zAttachTarget, p->zAttachTarget);
1958 }else{
1959 zComment = mprintf("Delete attachment \"%h\" from ticket [%s|%.10s]",
1960 p->zAttachName, p->zAttachTarget, p->zAttachTarget);
1961 }
1962 }
1963 db_multi_exec(
1964 "REPLACE INTO event(type,mtime,objid,user,comment)"
@@ -1983,11 +1983,11 @@
1983 for(i=0; i<p->nTag; i++){
1984 zTagUuid = p->aTag[i].zUuid;
1985 if( !zTagUuid ) continue;
1986 if( i==0 || fossil_strcmp(zTagUuid, p->aTag[i-1].zUuid)!=0 ){
1987 blob_appendf(&comment,
1988 " Edit [%s|%.10s]:",
1989 zTagUuid, zTagUuid);
1990 branchMove = 0;
1991 if( permitHooks && db_exists("SELECT 1 FROM event, blob"
1992 " WHERE event.type='ci' AND event.objid=blob.rid"
1993 " AND blob.uuid='%s'", zTagUuid) ){
1994
--- src/manifest.c
+++ src/manifest.c
@@ -890,58 +890,58 @@
890 SYNTAX("cluster contains a card other than M- or Z-");
891 }
892 if( !seenZ ) SYNTAX("missing Z-card on cluster");
893 p->type = CFTYPE_CLUSTER;
894 }else if( p->zEventId ){
895 if( p->zAttachName ) SYNTAX("A-card in event");
896 if( p->zBaseline ) SYNTAX("B-card in event");
897 if( p->rDate<=0.0 ) SYNTAX("missing date on event");
898 if( p->nFile>0 ) SYNTAX("F-card in event");
 
 
899 if( p->nField>0 ) SYNTAX("J-card in event");
900 if( p->zTicketUuid ) SYNTAX("K-card in event");
901 if( p->zWikiTitle!=0 ) SYNTAX("L-card in event");
902 if( p->zRepoCksum ) SYNTAX("R-card in event");
903 if( p->zWiki==0 ) SYNTAX("missing W-card on event");
 
904 if( !seenZ ) SYNTAX("missing Z-card on event");
905 p->type = CFTYPE_EVENT;
906 }else if( p->zWiki!=0 || p->zWikiTitle!=0 ){
907 if( p->zAttachName ) SYNTAX("A-card in wiki");
908 if( p->zBaseline ) SYNTAX("B-card in wiki");
909 if( p->rDate<=0.0 ) SYNTAX("missing date on wiki");
910 if( p->nFile>0 ) SYNTAX("F-card in wiki");
911 if( p->nField>0 ) SYNTAX("J-card in wiki");
912 if( p->zTicketUuid ) SYNTAX("K-card in wiki");
913 if( p->zWikiTitle==0 ) SYNTAX("missing L-card on wiki");
914 if( p->zRepoCksum ) SYNTAX("R-card in wiki");
915 if( p->nTag>0 ) SYNTAX("T-card in wiki");
916 if( p->zWiki==0 ) SYNTAX("missing W-card on wiki");
917 if( !seenZ ) SYNTAX("missing Z-card on wiki");
918 p->type = CFTYPE_WIKI;
919 }else if( hasSelfRefTag || p->nFile>0 || p->zRepoCksum!=0 || p->zBaseline
920 || p->nParent>0 ){
921 if( p->zAttachName ) SYNTAX("A-card in manifest");
922 if( p->rDate<=0.0 ) SYNTAX("missing date on manifest");
923 if( p->nField>0 ) SYNTAX("J-card in manifest");
924 if( p->zTicketUuid ) SYNTAX("K-card in manifest");
 
 
 
 
925 p->type = CFTYPE_MANIFEST;
926 }else if( p->nField>0 || p->zTicketUuid!=0 ){
927 if( p->zAttachName ) SYNTAX("A-card in ticket");
928 if( p->rDate<=0.0 ) SYNTAX("missing date on ticket");
 
 
929 if( p->nField==0 ) SYNTAX("missing J-card on ticket");
930 if( p->zTicketUuid==0 ) SYNTAX("missing K-card on ticket");
931 if( p->zMimetype) SYNTAX("N-card in ticket");
932 if( p->nTag>0 ) SYNTAX("T-card in ticket");
 
933 if( p->zUser==0 ) SYNTAX("missing U-card on ticket");
 
 
934 if( !seenZ ) SYNTAX("missing Z-card on ticket");
935 p->type = CFTYPE_TICKET;
 
 
 
 
 
 
 
 
936 }else if( p->zAttachName ){
937 if( p->rDate<=0.0 ) SYNTAX("missing date on attachment");
938 if( p->nTag>0 ) SYNTAX("T-card in attachment");
939 if( !seenZ ) SYNTAX("missing Z-card on attachment");
940 p->type = CFTYPE_ATTACHMENT;
941 }else{
942 if( p->rDate<=0.0 ) SYNTAX("missing date on control");
 
943 if( p->zMimetype ) SYNTAX("N-card in control");
944 if( !seenZ ) SYNTAX("missing Z-card on control");
945 p->type = CFTYPE_CONTROL;
946 }
947 md5sum_init();
@@ -1599,40 +1599,40 @@
1599 if( fossil_strcmp(pManifest->aField[i].zName, zStatusColumn)==0 ){
1600 zNewStatus = pManifest->aField[i].zValue;
1601 }
1602 }
1603 if( zNewStatus ){
1604 blob_appendf(&comment, "%h ticket [%s|%S]: <i>%h</i>",
1605 zNewStatus, pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle
1606 );
1607 if( pManifest->nField>1 ){
1608 blob_appendf(&comment, " plus %d other change%s",
1609 pManifest->nField-1, pManifest->nField==2 ? "" : "s");
1610 }
1611 blob_appendf(&brief, "%h ticket [%s|%S].",
1612 zNewStatus, pManifest->zTicketUuid, pManifest->zTicketUuid);
1613 }else{
1614 zNewStatus = db_text("unknown",
1615 "SELECT %s FROM ticket WHERE tkt_uuid='%s'",
1616 zStatusColumn, pManifest->zTicketUuid
1617 );
1618 blob_appendf(&comment, "Ticket [%s|%S] <i>%h</i> status still %h with "
1619 "%d other change%s",
1620 pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle, zNewStatus,
1621 pManifest->nField, pManifest->nField==1 ? "" : "s"
1622 );
1623 fossil_free(zNewStatus);
1624 blob_appendf(&brief, "Ticket [%s|%S]: %d change%s",
1625 pManifest->zTicketUuid, pManifest->zTicketUuid, pManifest->nField,
1626 pManifest->nField==1 ? "" : "s"
1627 );
1628 }
1629 }else{
1630 blob_appendf(&comment, "New ticket [%s|%S] <i>%h</i>.",
1631 pManifest->zTicketUuid, pManifest->zTicketUuid, zTitle
1632 );
1633 blob_appendf(&brief, "New ticket [%s|%S].", pManifest->zTicketUuid,
1634 pManifest->zTicketUuid);
1635 }
1636 fossil_free(zTitle);
1637 db_multi_exec(
1638 "REPLACE INTO event(type,tagid,mtime,objid,user,comment,brief)"
@@ -1951,14 +1951,14 @@
1951 p->zAttachName, p->zAttachTarget);
1952 }
1953 }else{
1954 if( isAdd ){
1955 zComment = mprintf(
1956 "Add attachment [/artifact/%s|%h] to ticket [%s|%S]",
1957 p->zAttachSrc, p->zAttachName, p->zAttachTarget, p->zAttachTarget);
1958 }else{
1959 zComment = mprintf("Delete attachment \"%h\" from ticket [%s|%S]",
1960 p->zAttachName, p->zAttachTarget, p->zAttachTarget);
1961 }
1962 }
1963 db_multi_exec(
1964 "REPLACE INTO event(type,mtime,objid,user,comment)"
@@ -1983,11 +1983,11 @@
1983 for(i=0; i<p->nTag; i++){
1984 zTagUuid = p->aTag[i].zUuid;
1985 if( !zTagUuid ) continue;
1986 if( i==0 || fossil_strcmp(zTagUuid, p->aTag[i-1].zUuid)!=0 ){
1987 blob_appendf(&comment,
1988 " Edit [%s|%S]:",
1989 zTagUuid, zTagUuid);
1990 branchMove = 0;
1991 if( permitHooks && db_exists("SELECT 1 FROM event, blob"
1992 " WHERE event.type='ci' AND event.objid=blob.rid"
1993 " AND blob.uuid='%s'", zTagUuid) ){
1994
+2 -1
--- src/mkindex.c
+++ src/mkindex.c
@@ -283,11 +283,11 @@
283283
);
284284
for(i=0; i<nFixed /*&& aEntry[i].eType==1*/; i++){
285285
const char *z = aEntry[i].zPath;
286286
int n = strlen(z);
287287
int cmdFlags = (1==aEntry[i].eType) ? 0x01 : 0x08;
288
- if(0x01==cmdFlags){
288
+ if( 0x01==cmdFlags ){
289289
if( z[n-1]=='*' ){
290290
n--;
291291
cmdFlags = 0x02;
292292
}else if( memcmp(z, "test-", 5)==0 ){
293293
cmdFlags = 0x04;
@@ -303,10 +303,11 @@
303303
cmdFlags
304304
);
305305
if( aEntry[i].zIf ) printf("#endif\n");
306306
}
307307
printf("};\n");
308
+ printf("#define FOSSIL_FIRST_CMD (sizeof(aWebpage)/sizeof(aWebpage[0]))\n");
308309
for(i=0; i<nFixed; i++){
309310
char *z = aEntry[i].zHelp;
310311
if( z && z[0] ){
311312
if( aEntry[i].zIf ) printf("%s", aEntry[i].zIf);
312313
printf("static const char zHelp_%s[] = \n", aEntry[i].zFunc);
313314
--- src/mkindex.c
+++ src/mkindex.c
@@ -283,11 +283,11 @@
283 );
284 for(i=0; i<nFixed /*&& aEntry[i].eType==1*/; i++){
285 const char *z = aEntry[i].zPath;
286 int n = strlen(z);
287 int cmdFlags = (1==aEntry[i].eType) ? 0x01 : 0x08;
288 if(0x01==cmdFlags){
289 if( z[n-1]=='*' ){
290 n--;
291 cmdFlags = 0x02;
292 }else if( memcmp(z, "test-", 5)==0 ){
293 cmdFlags = 0x04;
@@ -303,10 +303,11 @@
303 cmdFlags
304 );
305 if( aEntry[i].zIf ) printf("#endif\n");
306 }
307 printf("};\n");
 
308 for(i=0; i<nFixed; i++){
309 char *z = aEntry[i].zHelp;
310 if( z && z[0] ){
311 if( aEntry[i].zIf ) printf("%s", aEntry[i].zIf);
312 printf("static const char zHelp_%s[] = \n", aEntry[i].zFunc);
313
--- src/mkindex.c
+++ src/mkindex.c
@@ -283,11 +283,11 @@
283 );
284 for(i=0; i<nFixed /*&& aEntry[i].eType==1*/; i++){
285 const char *z = aEntry[i].zPath;
286 int n = strlen(z);
287 int cmdFlags = (1==aEntry[i].eType) ? 0x01 : 0x08;
288 if( 0x01==cmdFlags ){
289 if( z[n-1]=='*' ){
290 n--;
291 cmdFlags = 0x02;
292 }else if( memcmp(z, "test-", 5)==0 ){
293 cmdFlags = 0x04;
@@ -303,10 +303,11 @@
303 cmdFlags
304 );
305 if( aEntry[i].zIf ) printf("#endif\n");
306 }
307 printf("};\n");
308 printf("#define FOSSIL_FIRST_CMD (sizeof(aWebpage)/sizeof(aWebpage[0]))\n");
309 for(i=0; i<nFixed; i++){
310 char *z = aEntry[i].zHelp;
311 if( z && z[0] ){
312 if( aEntry[i].zIf ) printf("%s", aEntry[i].zIf);
313 printf("static const char zHelp_%s[] = \n", aEntry[i].zFunc);
314
+3 -3
--- src/name.c
+++ src/name.c
@@ -444,11 +444,11 @@
444444
" WHERE ticket.tkt_id = ticketchng.tkt_id"
445445
" AND tkt_uuid GLOB '%q*'"
446446
" GROUP BY tkt_uuid"
447447
" ORDER BY tkt_ctime DESC", z);
448448
while( db_step(&q)==SQLITE_ROW ){
449
- int rid = db_column_int(&q, 0);
449
+ int rid = db_column_int(&q, 0);
450450
const char *zUuid = db_column_text(&q, 1);
451451
const char *zTitle = db_column_text(&q, 2);
452452
@ <li><p><a href="%s(g.zTop)/%T(zSrc)/%s(zUuid)">
453453
@ %s(zUuid)</a> -
454454
@ <ul></ul>
@@ -465,11 +465,11 @@
465465
"SELECT rid, uuid FROM"
466466
" (SELECT tagxref.rid AS rid, substr(tagname, 7) AS uuid"
467467
" FROM tagxref, tag WHERE tagxref.tagid = tag.tagid"
468468
" AND tagname GLOB 'event-%q*') GROUP BY uuid", z);
469469
while( db_step(&q)==SQLITE_ROW ){
470
- int rid = db_column_int(&q, 0);
470
+ int rid = db_column_int(&q, 0);
471471
const char* zUuid = db_column_text(&q, 1);
472472
@ <li><p><a href="%s(g.zTop)/%T(zSrc)/%s(zUuid)">
473473
@ %s(zUuid)</a> -
474474
@ <ul><li>
475475
object_description(rid, 0, 0);
@@ -599,11 +599,11 @@
599599
" AND blob.rid=mlink.mid"
600600
" ORDER BY event.mtime DESC /*sort*/",
601601
timeline_utc(), rid);
602602
while( db_step(&q)==SQLITE_ROW ){
603603
fossil_print("file: %s\n", db_column_text(&q,0));
604
- fossil_print(" part of [%.10s] by %s on %s\n",
604
+ fossil_print(" part of [%S] by %s on %s\n",
605605
db_column_text(&q, 1),
606606
db_column_text(&q, 3),
607607
db_column_text(&q, 2));
608608
fossil_print(" ");
609609
comment_print(db_column_text(&q,4), 12, -1);
610610
--- src/name.c
+++ src/name.c
@@ -444,11 +444,11 @@
444 " WHERE ticket.tkt_id = ticketchng.tkt_id"
445 " AND tkt_uuid GLOB '%q*'"
446 " GROUP BY tkt_uuid"
447 " ORDER BY tkt_ctime DESC", z);
448 while( db_step(&q)==SQLITE_ROW ){
449 int rid = db_column_int(&q, 0);
450 const char *zUuid = db_column_text(&q, 1);
451 const char *zTitle = db_column_text(&q, 2);
452 @ <li><p><a href="%s(g.zTop)/%T(zSrc)/%s(zUuid)">
453 @ %s(zUuid)</a> -
454 @ <ul></ul>
@@ -465,11 +465,11 @@
465 "SELECT rid, uuid FROM"
466 " (SELECT tagxref.rid AS rid, substr(tagname, 7) AS uuid"
467 " FROM tagxref, tag WHERE tagxref.tagid = tag.tagid"
468 " AND tagname GLOB 'event-%q*') GROUP BY uuid", z);
469 while( db_step(&q)==SQLITE_ROW ){
470 int rid = db_column_int(&q, 0);
471 const char* zUuid = db_column_text(&q, 1);
472 @ <li><p><a href="%s(g.zTop)/%T(zSrc)/%s(zUuid)">
473 @ %s(zUuid)</a> -
474 @ <ul><li>
475 object_description(rid, 0, 0);
@@ -599,11 +599,11 @@
599 " AND blob.rid=mlink.mid"
600 " ORDER BY event.mtime DESC /*sort*/",
601 timeline_utc(), rid);
602 while( db_step(&q)==SQLITE_ROW ){
603 fossil_print("file: %s\n", db_column_text(&q,0));
604 fossil_print(" part of [%.10s] by %s on %s\n",
605 db_column_text(&q, 1),
606 db_column_text(&q, 3),
607 db_column_text(&q, 2));
608 fossil_print(" ");
609 comment_print(db_column_text(&q,4), 12, -1);
610
--- src/name.c
+++ src/name.c
@@ -444,11 +444,11 @@
444 " WHERE ticket.tkt_id = ticketchng.tkt_id"
445 " AND tkt_uuid GLOB '%q*'"
446 " GROUP BY tkt_uuid"
447 " ORDER BY tkt_ctime DESC", z);
448 while( db_step(&q)==SQLITE_ROW ){
449 int rid = db_column_int(&q, 0);
450 const char *zUuid = db_column_text(&q, 1);
451 const char *zTitle = db_column_text(&q, 2);
452 @ <li><p><a href="%s(g.zTop)/%T(zSrc)/%s(zUuid)">
453 @ %s(zUuid)</a> -
454 @ <ul></ul>
@@ -465,11 +465,11 @@
465 "SELECT rid, uuid FROM"
466 " (SELECT tagxref.rid AS rid, substr(tagname, 7) AS uuid"
467 " FROM tagxref, tag WHERE tagxref.tagid = tag.tagid"
468 " AND tagname GLOB 'event-%q*') GROUP BY uuid", z);
469 while( db_step(&q)==SQLITE_ROW ){
470 int rid = db_column_int(&q, 0);
471 const char* zUuid = db_column_text(&q, 1);
472 @ <li><p><a href="%s(g.zTop)/%T(zSrc)/%s(zUuid)">
473 @ %s(zUuid)</a> -
474 @ <ul><li>
475 object_description(rid, 0, 0);
@@ -599,11 +599,11 @@
599 " AND blob.rid=mlink.mid"
600 " ORDER BY event.mtime DESC /*sort*/",
601 timeline_utc(), rid);
602 while( db_step(&q)==SQLITE_ROW ){
603 fossil_print("file: %s\n", db_column_text(&q,0));
604 fossil_print(" part of [%S] by %s on %s\n",
605 db_column_text(&q, 1),
606 db_column_text(&q, 3),
607 db_column_text(&q, 2));
608 fossil_print(" ");
609 comment_print(db_column_text(&q,4), 12, -1);
610
+8 -4
--- src/printf.c
+++ src/printf.c
@@ -608,22 +608,26 @@
608608
case etROOT: {
609609
bufpt = g.zTop ? g.zTop : "";
610610
length = (int)strlen(bufpt);
611611
break;
612612
}
613
- case etSTRINGID: {
614
- precision = 16;
615
- /* Fall through */
616
- }
613
+ case etSTRINGID:
617614
case etSTRING:
618615
case etDYNSTRING: {
619616
int limit = flag_alternateform ? va_arg(ap,int) : -1;
620617
bufpt = va_arg(ap,char*);
621618
if( bufpt==0 ){
622619
bufpt = "";
623620
}else if( xtype==etDYNSTRING ){
624621
zExtra = bufpt;
622
+ }else if( xtype==etSTRINGID ){
623
+ precision = 0;
624
+ while( bufpt[precision]>='0' && bufpt[precision]<='9' ){
625
+ precision++;
626
+ }
627
+ if( bufpt[precision]!=0 ) precision++;
628
+ if( precision<10 ) precision=10;
625629
}
626630
length = StrNLen32(bufpt, limit);
627631
if( precision>=0 && precision<length ) length = precision;
628632
break;
629633
}
630634
--- src/printf.c
+++ src/printf.c
@@ -608,22 +608,26 @@
608 case etROOT: {
609 bufpt = g.zTop ? g.zTop : "";
610 length = (int)strlen(bufpt);
611 break;
612 }
613 case etSTRINGID: {
614 precision = 16;
615 /* Fall through */
616 }
617 case etSTRING:
618 case etDYNSTRING: {
619 int limit = flag_alternateform ? va_arg(ap,int) : -1;
620 bufpt = va_arg(ap,char*);
621 if( bufpt==0 ){
622 bufpt = "";
623 }else if( xtype==etDYNSTRING ){
624 zExtra = bufpt;
 
 
 
 
 
 
 
625 }
626 length = StrNLen32(bufpt, limit);
627 if( precision>=0 && precision<length ) length = precision;
628 break;
629 }
630
--- src/printf.c
+++ src/printf.c
@@ -608,22 +608,26 @@
608 case etROOT: {
609 bufpt = g.zTop ? g.zTop : "";
610 length = (int)strlen(bufpt);
611 break;
612 }
613 case etSTRINGID:
 
 
 
614 case etSTRING:
615 case etDYNSTRING: {
616 int limit = flag_alternateform ? va_arg(ap,int) : -1;
617 bufpt = va_arg(ap,char*);
618 if( bufpt==0 ){
619 bufpt = "";
620 }else if( xtype==etDYNSTRING ){
621 zExtra = bufpt;
622 }else if( xtype==etSTRINGID ){
623 precision = 0;
624 while( bufpt[precision]>='0' && bufpt[precision]<='9' ){
625 precision++;
626 }
627 if( bufpt[precision]!=0 ) precision++;
628 if( precision<10 ) precision=10;
629 }
630 length = StrNLen32(bufpt, limit);
631 if( precision>=0 && precision<length ) length = precision;
632 break;
633 }
634
+28 -15
--- src/shell.c
+++ src/shell.c
@@ -2414,10 +2414,11 @@
24142414
}else
24152415
24162416
if( c=='f' && strncmp(azArg[0], "fullschema", n)==0 ){
24172417
struct callback_data data;
24182418
char *zErrMsg = 0;
2419
+ int doStats = 0;
24192420
if( nArg!=1 ){
24202421
fprintf(stderr, "Usage: .fullschema\n");
24212422
rc = 1;
24222423
goto meta_command_exit;
24232424
}
@@ -2432,25 +2433,37 @@
24322433
" SELECT sql, type, tbl_name, name, rowid FROM sqlite_temp_master) "
24332434
"WHERE type!='meta' AND sql NOTNULL AND name NOT LIKE 'sqlite_%'"
24342435
"ORDER BY rowid",
24352436
callback, &data, &zErrMsg
24362437
);
2437
- sqlite3_exec(p->db, "SELECT 'ANALYZE sqlite_master;'",
2438
- callback, &data, &zErrMsg);
2439
- data.mode = MODE_Insert;
2440
- data.zDestTable = "sqlite_stat1";
2441
- shell_exec(p->db, "SELECT * FROM sqlite_stat1",
2442
- shell_callback, &data,&zErrMsg);
2443
- data.zDestTable = "sqlite_stat3";
2444
- shell_exec(p->db, "SELECT * FROM sqlite_stat3",
2445
- shell_callback, &data,&zErrMsg);
2446
- data.zDestTable = "sqlite_stat4";
2447
- shell_exec(p->db, "SELECT * FROM sqlite_stat4",
2448
- shell_callback, &data, &zErrMsg);
2449
- data.mode = MODE_Semi;
2450
- shell_exec(p->db, "SELECT 'ANALYZE sqlite_master;'",
2451
- shell_callback, &data, &zErrMsg);
2438
+ if( rc==SQLITE_OK ){
2439
+ sqlite3_stmt *pStmt;
2440
+ rc = sqlite3_prepare_v2(p->db,
2441
+ "SELECT rowid FROM sqlite_master"
2442
+ " WHERE name GLOB 'sqlite_stat[134]'",
2443
+ -1, &pStmt, 0);
2444
+ doStats = sqlite3_step(pStmt)==SQLITE_ROW;
2445
+ sqlite3_finalize(pStmt);
2446
+ }
2447
+ if( doStats==0 ){
2448
+ fprintf(p->out, "/* No STAT tables available */\n");
2449
+ }else{
2450
+ fprintf(p->out, "ANALYZE sqlite_master;\n");
2451
+ sqlite3_exec(p->db, "SELECT 'ANALYZE sqlite_master'",
2452
+ callback, &data, &zErrMsg);
2453
+ data.mode = MODE_Insert;
2454
+ data.zDestTable = "sqlite_stat1";
2455
+ shell_exec(p->db, "SELECT * FROM sqlite_stat1",
2456
+ shell_callback, &data,&zErrMsg);
2457
+ data.zDestTable = "sqlite_stat3";
2458
+ shell_exec(p->db, "SELECT * FROM sqlite_stat3",
2459
+ shell_callback, &data,&zErrMsg);
2460
+ data.zDestTable = "sqlite_stat4";
2461
+ shell_exec(p->db, "SELECT * FROM sqlite_stat4",
2462
+ shell_callback, &data, &zErrMsg);
2463
+ fprintf(p->out, "ANALYZE sqlite_master;\n");
2464
+ }
24522465
}else
24532466
24542467
if( c=='h' && strncmp(azArg[0], "headers", n)==0 ){
24552468
if( nArg==2 ){
24562469
p->showHeader = booleanValue(azArg[1]);
24572470
--- src/shell.c
+++ src/shell.c
@@ -2414,10 +2414,11 @@
2414 }else
2415
2416 if( c=='f' && strncmp(azArg[0], "fullschema", n)==0 ){
2417 struct callback_data data;
2418 char *zErrMsg = 0;
 
2419 if( nArg!=1 ){
2420 fprintf(stderr, "Usage: .fullschema\n");
2421 rc = 1;
2422 goto meta_command_exit;
2423 }
@@ -2432,25 +2433,37 @@
2432 " SELECT sql, type, tbl_name, name, rowid FROM sqlite_temp_master) "
2433 "WHERE type!='meta' AND sql NOTNULL AND name NOT LIKE 'sqlite_%'"
2434 "ORDER BY rowid",
2435 callback, &data, &zErrMsg
2436 );
2437 sqlite3_exec(p->db, "SELECT 'ANALYZE sqlite_master;'",
2438 callback, &data, &zErrMsg);
2439 data.mode = MODE_Insert;
2440 data.zDestTable = "sqlite_stat1";
2441 shell_exec(p->db, "SELECT * FROM sqlite_stat1",
2442 shell_callback, &data,&zErrMsg);
2443 data.zDestTable = "sqlite_stat3";
2444 shell_exec(p->db, "SELECT * FROM sqlite_stat3",
2445 shell_callback, &data,&zErrMsg);
2446 data.zDestTable = "sqlite_stat4";
2447 shell_exec(p->db, "SELECT * FROM sqlite_stat4",
2448 shell_callback, &data, &zErrMsg);
2449 data.mode = MODE_Semi;
2450 shell_exec(p->db, "SELECT 'ANALYZE sqlite_master;'",
2451 shell_callback, &data, &zErrMsg);
 
 
 
 
 
 
 
 
 
 
 
 
2452 }else
2453
2454 if( c=='h' && strncmp(azArg[0], "headers", n)==0 ){
2455 if( nArg==2 ){
2456 p->showHeader = booleanValue(azArg[1]);
2457
--- src/shell.c
+++ src/shell.c
@@ -2414,10 +2414,11 @@
2414 }else
2415
2416 if( c=='f' && strncmp(azArg[0], "fullschema", n)==0 ){
2417 struct callback_data data;
2418 char *zErrMsg = 0;
2419 int doStats = 0;
2420 if( nArg!=1 ){
2421 fprintf(stderr, "Usage: .fullschema\n");
2422 rc = 1;
2423 goto meta_command_exit;
2424 }
@@ -2432,25 +2433,37 @@
2433 " SELECT sql, type, tbl_name, name, rowid FROM sqlite_temp_master) "
2434 "WHERE type!='meta' AND sql NOTNULL AND name NOT LIKE 'sqlite_%'"
2435 "ORDER BY rowid",
2436 callback, &data, &zErrMsg
2437 );
2438 if( rc==SQLITE_OK ){
2439 sqlite3_stmt *pStmt;
2440 rc = sqlite3_prepare_v2(p->db,
2441 "SELECT rowid FROM sqlite_master"
2442 " WHERE name GLOB 'sqlite_stat[134]'",
2443 -1, &pStmt, 0);
2444 doStats = sqlite3_step(pStmt)==SQLITE_ROW;
2445 sqlite3_finalize(pStmt);
2446 }
2447 if( doStats==0 ){
2448 fprintf(p->out, "/* No STAT tables available */\n");
2449 }else{
2450 fprintf(p->out, "ANALYZE sqlite_master;\n");
2451 sqlite3_exec(p->db, "SELECT 'ANALYZE sqlite_master'",
2452 callback, &data, &zErrMsg);
2453 data.mode = MODE_Insert;
2454 data.zDestTable = "sqlite_stat1";
2455 shell_exec(p->db, "SELECT * FROM sqlite_stat1",
2456 shell_callback, &data,&zErrMsg);
2457 data.zDestTable = "sqlite_stat3";
2458 shell_exec(p->db, "SELECT * FROM sqlite_stat3",
2459 shell_callback, &data,&zErrMsg);
2460 data.zDestTable = "sqlite_stat4";
2461 shell_exec(p->db, "SELECT * FROM sqlite_stat4",
2462 shell_callback, &data, &zErrMsg);
2463 fprintf(p->out, "ANALYZE sqlite_master;\n");
2464 }
2465 }else
2466
2467 if( c=='h' && strncmp(azArg[0], "headers", n)==0 ){
2468 if( nArg==2 ){
2469 p->showHeader = booleanValue(azArg[1]);
2470
+42 -43
--- src/timeline.c
+++ src/timeline.c
@@ -20,41 +20,19 @@
2020
*/
2121
#include "config.h"
2222
#include <string.h>
2323
#include <time.h>
2424
#include "timeline.h"
25
-
26
-/*
27
-** Shorten a UUID so that is the minimum length needed to contain
28
-** at least one digit in the range 'a'..'f'. The minimum length is 10.
29
-*/
30
-static void shorten_uuid(char *zDest, const char *zSrc){
31
- int i;
32
- for(i=0; i<10 && zSrc[i]<='9'; i++){}
33
- memcpy(zDest, zSrc, 10);
34
- if( i==10 && zSrc[i] ){
35
- do{
36
- zDest[i] = zSrc[i];
37
- i++;
38
- }while( zSrc[i-1]<='9' );
39
- }else{
40
- i = 10;
41
- }
42
- zDest[i] = 0;
43
-}
44
-
4525
4626
/*
4727
** Generate a hyperlink to a version.
4828
*/
4929
void hyperlink_to_uuid(const char *zUuid){
50
- char z[UUID_SIZE+1];
51
- shorten_uuid(z, zUuid);
5230
if( g.perm.Hyperlink ){
53
- @ %z(xhref("class='timelineHistLink'","%R/info/%s",zUuid))[%s(z)]</a>
31
+ @ %z(xhref("class='timelineHistLink'","%R/info/%s",zUuid))[%S(zUuid)]</a>
5432
}else{
55
- @ <span class="timelineHistDsp">[%s(z)]</span>
33
+ @ <span class="timelineHistDsp">[%S(zUuid)]</span>
5634
}
5735
}
5836
5937
/*
6038
** Generate a hyperlink to a date & time.
@@ -1220,23 +1198,34 @@
12201198
blob_appendf(&desc, "%d ancestors", np);
12211199
db_multi_exec("%s", blob_str(&sql));
12221200
}
12231201
if( d_rid==0 && useDividers ) timeline_add_dividers(0, p_rid);
12241202
}
1225
- blob_appendf(&desc, " of %z[%.10s]</a>",
1203
+ blob_appendf(&desc, " of %z[%S]</a>",
12261204
href("%R/info/%s", zUuid), zUuid);
1227
- if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1228
- if( p_rid ){
1229
- url_add_parameter(&url, "p", zUuid);
1230
- }
1231
- if( d_rid ){
1232
- if( p_rid ){
1233
- /* If both p= and d= are set, we don't have the uuid of d yet. */
1234
- zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid);
1235
- }
1236
- url_add_parameter(&url, "d", zUuid);
1237
- }
1205
+ if( p_rid ){
1206
+ url_add_parameter(&url, "p", zUuid);
1207
+ }
1208
+ if( d_rid ){
1209
+ if( p_rid ){
1210
+ /* If both p= and d= are set, we don't have the uuid of d yet. */
1211
+ zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid);
1212
+ }
1213
+ url_add_parameter(&url, "d", zUuid);
1214
+ }
1215
+ if( nEntry>20 ){
1216
+ timeline_submenu(&url, "20 Entries", "n", "20", 0);
1217
+ }
1218
+ if( nEntry<200 ){
1219
+ timeline_submenu(&url, "200 Entries", "n", "200", 0);
1220
+ }
1221
+ if( tmFlags & TIMELINE_FCHANGES ){
1222
+ timeline_submenu(&url, "Hide Files", "v", 0, 0);
1223
+ }else{
1224
+ timeline_submenu(&url, "Show Files", "v", "", 0);
1225
+ }
1226
+ if( (tmFlags & TIMELINE_UNHIDE)==0 ){
12381227
timeline_submenu(&url, "Unhide", "unhide", "", 0);
12391228
}
12401229
}else if( f_rid && g.perm.Read ){
12411230
/* If f= is present, ignore all other parameters other than n= */
12421231
char *zUuid;
@@ -1250,14 +1239,19 @@
12501239
blob_appendf(&sql, " AND event.objid IN ok");
12511240
db_multi_exec("%s", blob_str(&sql));
12521241
if( useDividers ) timeline_add_dividers(0, f_rid);
12531242
blob_appendf(&desc, "Parents and children of check-in ");
12541243
zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid);
1255
- blob_appendf(&desc, "%z[%.10s]</a>", href("%R/info/%s", zUuid), zUuid);
1244
+ blob_appendf(&desc, "%z[%S]</a>", href("%R/info/%s", zUuid), zUuid);
12561245
tmFlags |= TIMELINE_DISJOINT;
1246
+ url_add_parameter(&url, "f", zUuid);
1247
+ if( tmFlags & TIMELINE_FCHANGES ){
1248
+ timeline_submenu(&url, "Hide Files", "v", 0, 0);
1249
+ }else{
1250
+ timeline_submenu(&url, "Show Files", "v", "", 0);
1251
+ }
12571252
if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1258
- url_add_parameter(&url, "f", zUuid);
12591253
timeline_submenu(&url, "Unhide", "unhide", "", 0);
12601254
}
12611255
}else{
12621256
/* Otherwise, a timeline based on a span of time */
12631257
int n;
@@ -1571,11 +1565,10 @@
15711565
int nChild = db_column_int(q, 4);
15721566
int nParent = db_column_int(q, 5);
15731567
char *zFree = 0;
15741568
int n = 0;
15751569
char zPrefix[80];
1576
- char zUuid[UUID_SIZE+1];
15771570
15781571
if( nAbsLimit!=0 ){
15791572
if( nLimit<0 && nLine>=nAbsLimit ){
15801573
fossil_print("--- line limit (%d) reached ---\n", nAbsLimit);
15811574
break; /* line count limit hit, stop. */
@@ -1582,11 +1575,10 @@
15821575
}else if( nEntry>=nAbsLimit ){
15831576
fossil_print("--- entry limit (%d) reached ---\n", nAbsLimit);
15841577
break; /* entry count limit hit, stop. */
15851578
}
15861579
}
1587
- sqlite3_snprintf(sizeof(zUuid), zUuid, "%.10s", zId);
15881580
if( fossil_strnicmp(zDate, zPrevDate, 10) ){
15891581
fossil_print("=== %.10s ===\n", zDate);
15901582
memcpy(zPrevDate, zDate, 10);
15911583
nLine++; /* record another line */
15921584
}
@@ -1609,13 +1601,13 @@
16091601
}
16101602
if( fossil_strcmp(zCurrentUuid,zId)==0 ){
16111603
sqlite3_snprintf(sizeof(zPrefix)-n, &zPrefix[n], "*CURRENT* ");
16121604
n += strlen(zPrefix);
16131605
}
1614
- zFree = sqlite3_mprintf("[%.10s] %s%s", zUuid, zPrefix, zCom);
1606
+ zFree = mprintf("[%S] %s%s", zId, zPrefix, zCom);
16151607
nLine += comment_print(zFree, 9, width); /* record another X lines */
1616
- sqlite3_free(zFree);
1608
+ fossil_free(zFree);
16171609
16181610
if(verboseFlag){
16191611
if( !fchngQueryInit ){
16201612
db_prepare(&fchngQuery,
16211613
"SELECT (pid==0) AS isnew,"
@@ -2051,10 +2043,12 @@
20512043
static const char * stats_report_label_for_type(){
20522044
assert( statsReportType && "Must call stats_report_init_view() first." );
20532045
switch( statsReportType ){
20542046
case 'c':
20552047
return "checkins";
2048
+ case 'e':
2049
+ return "events";
20562050
case 'w':
20572051
return "wiki changes";
20582052
case 't':
20592053
return "ticket changes";
20602054
case 'g':
@@ -2080,11 +2074,11 @@
20802074
zParam = NULL;
20812075
}
20822076
zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
20832077
zParam ? "&" : "", zParam);
20842078
cgi_printf("<div>");
2085
- cgi_printf("<span>Event types:</span> ");
2079
+ cgi_printf("<span>Types:</span> ");
20862080
if('*' == statsReportType){
20872081
cgi_printf(" <strong>all</strong>", zTop);
20882082
}else{
20892083
cgi_printf(" <a href='%s'>all</a>", zTop);
20902084
}
@@ -2091,10 +2085,15 @@
20912085
if('c' == statsReportType){
20922086
cgi_printf(" <strong>checkins</strong>", zTop);
20932087
}else{
20942088
cgi_printf(" <a href='%s&type=ci'>checkins</a>", zTop);
20952089
}
2090
+ if('e' == statsReportType){
2091
+ cgi_printf(" <strong>events</strong>", zTop);
2092
+ }else{
2093
+ cgi_printf(" <a href='%s&type=e'>events</a>", zTop);
2094
+ }
20962095
if( 't' == statsReportType ){
20972096
cgi_printf(" <strong>tickets</strong>", zTop);
20982097
}else{
20992098
cgi_printf(" <a href='%s&type=t'>tickets</a>", zTop);
21002099
}
21012100
--- src/timeline.c
+++ src/timeline.c
@@ -20,41 +20,19 @@
20 */
21 #include "config.h"
22 #include <string.h>
23 #include <time.h>
24 #include "timeline.h"
25
26 /*
27 ** Shorten a UUID so that is the minimum length needed to contain
28 ** at least one digit in the range 'a'..'f'. The minimum length is 10.
29 */
30 static void shorten_uuid(char *zDest, const char *zSrc){
31 int i;
32 for(i=0; i<10 && zSrc[i]<='9'; i++){}
33 memcpy(zDest, zSrc, 10);
34 if( i==10 && zSrc[i] ){
35 do{
36 zDest[i] = zSrc[i];
37 i++;
38 }while( zSrc[i-1]<='9' );
39 }else{
40 i = 10;
41 }
42 zDest[i] = 0;
43 }
44
45
46 /*
47 ** Generate a hyperlink to a version.
48 */
49 void hyperlink_to_uuid(const char *zUuid){
50 char z[UUID_SIZE+1];
51 shorten_uuid(z, zUuid);
52 if( g.perm.Hyperlink ){
53 @ %z(xhref("class='timelineHistLink'","%R/info/%s",zUuid))[%s(z)]</a>
54 }else{
55 @ <span class="timelineHistDsp">[%s(z)]</span>
56 }
57 }
58
59 /*
60 ** Generate a hyperlink to a date & time.
@@ -1220,23 +1198,34 @@
1220 blob_appendf(&desc, "%d ancestors", np);
1221 db_multi_exec("%s", blob_str(&sql));
1222 }
1223 if( d_rid==0 && useDividers ) timeline_add_dividers(0, p_rid);
1224 }
1225 blob_appendf(&desc, " of %z[%.10s]</a>",
1226 href("%R/info/%s", zUuid), zUuid);
1227 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1228 if( p_rid ){
1229 url_add_parameter(&url, "p", zUuid);
1230 }
1231 if( d_rid ){
1232 if( p_rid ){
1233 /* If both p= and d= are set, we don't have the uuid of d yet. */
1234 zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid);
1235 }
1236 url_add_parameter(&url, "d", zUuid);
1237 }
 
 
 
 
 
 
 
 
 
 
 
1238 timeline_submenu(&url, "Unhide", "unhide", "", 0);
1239 }
1240 }else if( f_rid && g.perm.Read ){
1241 /* If f= is present, ignore all other parameters other than n= */
1242 char *zUuid;
@@ -1250,14 +1239,19 @@
1250 blob_appendf(&sql, " AND event.objid IN ok");
1251 db_multi_exec("%s", blob_str(&sql));
1252 if( useDividers ) timeline_add_dividers(0, f_rid);
1253 blob_appendf(&desc, "Parents and children of check-in ");
1254 zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid);
1255 blob_appendf(&desc, "%z[%.10s]</a>", href("%R/info/%s", zUuid), zUuid);
1256 tmFlags |= TIMELINE_DISJOINT;
 
 
 
 
 
 
1257 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1258 url_add_parameter(&url, "f", zUuid);
1259 timeline_submenu(&url, "Unhide", "unhide", "", 0);
1260 }
1261 }else{
1262 /* Otherwise, a timeline based on a span of time */
1263 int n;
@@ -1571,11 +1565,10 @@
1571 int nChild = db_column_int(q, 4);
1572 int nParent = db_column_int(q, 5);
1573 char *zFree = 0;
1574 int n = 0;
1575 char zPrefix[80];
1576 char zUuid[UUID_SIZE+1];
1577
1578 if( nAbsLimit!=0 ){
1579 if( nLimit<0 && nLine>=nAbsLimit ){
1580 fossil_print("--- line limit (%d) reached ---\n", nAbsLimit);
1581 break; /* line count limit hit, stop. */
@@ -1582,11 +1575,10 @@
1582 }else if( nEntry>=nAbsLimit ){
1583 fossil_print("--- entry limit (%d) reached ---\n", nAbsLimit);
1584 break; /* entry count limit hit, stop. */
1585 }
1586 }
1587 sqlite3_snprintf(sizeof(zUuid), zUuid, "%.10s", zId);
1588 if( fossil_strnicmp(zDate, zPrevDate, 10) ){
1589 fossil_print("=== %.10s ===\n", zDate);
1590 memcpy(zPrevDate, zDate, 10);
1591 nLine++; /* record another line */
1592 }
@@ -1609,13 +1601,13 @@
1609 }
1610 if( fossil_strcmp(zCurrentUuid,zId)==0 ){
1611 sqlite3_snprintf(sizeof(zPrefix)-n, &zPrefix[n], "*CURRENT* ");
1612 n += strlen(zPrefix);
1613 }
1614 zFree = sqlite3_mprintf("[%.10s] %s%s", zUuid, zPrefix, zCom);
1615 nLine += comment_print(zFree, 9, width); /* record another X lines */
1616 sqlite3_free(zFree);
1617
1618 if(verboseFlag){
1619 if( !fchngQueryInit ){
1620 db_prepare(&fchngQuery,
1621 "SELECT (pid==0) AS isnew,"
@@ -2051,10 +2043,12 @@
2051 static const char * stats_report_label_for_type(){
2052 assert( statsReportType && "Must call stats_report_init_view() first." );
2053 switch( statsReportType ){
2054 case 'c':
2055 return "checkins";
 
 
2056 case 'w':
2057 return "wiki changes";
2058 case 't':
2059 return "ticket changes";
2060 case 'g':
@@ -2080,11 +2074,11 @@
2080 zParam = NULL;
2081 }
2082 zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
2083 zParam ? "&" : "", zParam);
2084 cgi_printf("<div>");
2085 cgi_printf("<span>Event types:</span> ");
2086 if('*' == statsReportType){
2087 cgi_printf(" <strong>all</strong>", zTop);
2088 }else{
2089 cgi_printf(" <a href='%s'>all</a>", zTop);
2090 }
@@ -2091,10 +2085,15 @@
2091 if('c' == statsReportType){
2092 cgi_printf(" <strong>checkins</strong>", zTop);
2093 }else{
2094 cgi_printf(" <a href='%s&type=ci'>checkins</a>", zTop);
2095 }
 
 
 
 
 
2096 if( 't' == statsReportType ){
2097 cgi_printf(" <strong>tickets</strong>", zTop);
2098 }else{
2099 cgi_printf(" <a href='%s&type=t'>tickets</a>", zTop);
2100 }
2101
--- src/timeline.c
+++ src/timeline.c
@@ -20,41 +20,19 @@
20 */
21 #include "config.h"
22 #include <string.h>
23 #include <time.h>
24 #include "timeline.h"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
26 /*
27 ** Generate a hyperlink to a version.
28 */
29 void hyperlink_to_uuid(const char *zUuid){
 
 
30 if( g.perm.Hyperlink ){
31 @ %z(xhref("class='timelineHistLink'","%R/info/%s",zUuid))[%S(zUuid)]</a>
32 }else{
33 @ <span class="timelineHistDsp">[%S(zUuid)]</span>
34 }
35 }
36
37 /*
38 ** Generate a hyperlink to a date & time.
@@ -1220,23 +1198,34 @@
1198 blob_appendf(&desc, "%d ancestors", np);
1199 db_multi_exec("%s", blob_str(&sql));
1200 }
1201 if( d_rid==0 && useDividers ) timeline_add_dividers(0, p_rid);
1202 }
1203 blob_appendf(&desc, " of %z[%S]</a>",
1204 href("%R/info/%s", zUuid), zUuid);
1205 if( p_rid ){
1206 url_add_parameter(&url, "p", zUuid);
1207 }
1208 if( d_rid ){
1209 if( p_rid ){
1210 /* If both p= and d= are set, we don't have the uuid of d yet. */
1211 zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid);
1212 }
1213 url_add_parameter(&url, "d", zUuid);
1214 }
1215 if( nEntry>20 ){
1216 timeline_submenu(&url, "20 Entries", "n", "20", 0);
1217 }
1218 if( nEntry<200 ){
1219 timeline_submenu(&url, "200 Entries", "n", "200", 0);
1220 }
1221 if( tmFlags & TIMELINE_FCHANGES ){
1222 timeline_submenu(&url, "Hide Files", "v", 0, 0);
1223 }else{
1224 timeline_submenu(&url, "Show Files", "v", "", 0);
1225 }
1226 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
1227 timeline_submenu(&url, "Unhide", "unhide", "", 0);
1228 }
1229 }else if( f_rid && g.perm.Read ){
1230 /* If f= is present, ignore all other parameters other than n= */
1231 char *zUuid;
@@ -1250,14 +1239,19 @@
1239 blob_appendf(&sql, " AND event.objid IN ok");
1240 db_multi_exec("%s", blob_str(&sql));
1241 if( useDividers ) timeline_add_dividers(0, f_rid);
1242 blob_appendf(&desc, "Parents and children of check-in ");
1243 zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid);
1244 blob_appendf(&desc, "%z[%S]</a>", href("%R/info/%s", zUuid), zUuid);
1245 tmFlags |= TIMELINE_DISJOINT;
1246 url_add_parameter(&url, "f", zUuid);
1247 if( tmFlags & TIMELINE_FCHANGES ){
1248 timeline_submenu(&url, "Hide Files", "v", 0, 0);
1249 }else{
1250 timeline_submenu(&url, "Show Files", "v", "", 0);
1251 }
1252 if( (tmFlags & TIMELINE_UNHIDE)==0 ){
 
1253 timeline_submenu(&url, "Unhide", "unhide", "", 0);
1254 }
1255 }else{
1256 /* Otherwise, a timeline based on a span of time */
1257 int n;
@@ -1571,11 +1565,10 @@
1565 int nChild = db_column_int(q, 4);
1566 int nParent = db_column_int(q, 5);
1567 char *zFree = 0;
1568 int n = 0;
1569 char zPrefix[80];
 
1570
1571 if( nAbsLimit!=0 ){
1572 if( nLimit<0 && nLine>=nAbsLimit ){
1573 fossil_print("--- line limit (%d) reached ---\n", nAbsLimit);
1574 break; /* line count limit hit, stop. */
@@ -1582,11 +1575,10 @@
1575 }else if( nEntry>=nAbsLimit ){
1576 fossil_print("--- entry limit (%d) reached ---\n", nAbsLimit);
1577 break; /* entry count limit hit, stop. */
1578 }
1579 }
 
1580 if( fossil_strnicmp(zDate, zPrevDate, 10) ){
1581 fossil_print("=== %.10s ===\n", zDate);
1582 memcpy(zPrevDate, zDate, 10);
1583 nLine++; /* record another line */
1584 }
@@ -1609,13 +1601,13 @@
1601 }
1602 if( fossil_strcmp(zCurrentUuid,zId)==0 ){
1603 sqlite3_snprintf(sizeof(zPrefix)-n, &zPrefix[n], "*CURRENT* ");
1604 n += strlen(zPrefix);
1605 }
1606 zFree = mprintf("[%S] %s%s", zId, zPrefix, zCom);
1607 nLine += comment_print(zFree, 9, width); /* record another X lines */
1608 fossil_free(zFree);
1609
1610 if(verboseFlag){
1611 if( !fchngQueryInit ){
1612 db_prepare(&fchngQuery,
1613 "SELECT (pid==0) AS isnew,"
@@ -2051,10 +2043,12 @@
2043 static const char * stats_report_label_for_type(){
2044 assert( statsReportType && "Must call stats_report_init_view() first." );
2045 switch( statsReportType ){
2046 case 'c':
2047 return "checkins";
2048 case 'e':
2049 return "events";
2050 case 'w':
2051 return "wiki changes";
2052 case 't':
2053 return "ticket changes";
2054 case 'g':
@@ -2080,11 +2074,11 @@
2074 zParam = NULL;
2075 }
2076 zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
2077 zParam ? "&" : "", zParam);
2078 cgi_printf("<div>");
2079 cgi_printf("<span>Types:</span> ");
2080 if('*' == statsReportType){
2081 cgi_printf(" <strong>all</strong>", zTop);
2082 }else{
2083 cgi_printf(" <a href='%s'>all</a>", zTop);
2084 }
@@ -2091,10 +2085,15 @@
2085 if('c' == statsReportType){
2086 cgi_printf(" <strong>checkins</strong>", zTop);
2087 }else{
2088 cgi_printf(" <a href='%s&type=ci'>checkins</a>", zTop);
2089 }
2090 if('e' == statsReportType){
2091 cgi_printf(" <strong>events</strong>", zTop);
2092 }else{
2093 cgi_printf(" <a href='%s&type=e'>events</a>", zTop);
2094 }
2095 if( 't' == statsReportType ){
2096 cgi_printf(" <strong>tickets</strong>", zTop);
2097 }else{
2098 cgi_printf(" <a href='%s&type=t'>tickets</a>", zTop);
2099 }
2100
+2 -2
--- src/tkt.c
+++ src/tkt.c
@@ -943,20 +943,20 @@
943943
}else{
944944
@
945945
@ <li><p>Add attachment
946946
@ "%z(href("%R/artifact/%s",zSrc))%s(zFile)</a>"
947947
}
948
- @ [%z(href("%R/artifact/%s",zChngUuid))%.10s(zChngUuid)</a>]
948
+ @ [%z(href("%R/artifact/%s",zChngUuid))%S(zChngUuid)</a>]
949949
@ (rid %d(rid)) by
950950
hyperlink_to_user(zUser,zDate," on");
951951
hyperlink_to_date(zDate, ".</p>");
952952
}else{
953953
pTicket = manifest_get(rid, CFTYPE_TICKET, 0);
954954
if( pTicket ){
955955
@
956956
@ <li><p>Ticket change
957
- @ [%z(href("%R/artifact/%s",zChngUuid))%.10s(zChngUuid)</a>]
957
+ @ [%z(href("%R/artifact/%s",zChngUuid))%S(zChngUuid)</a>]
958958
@ (rid %d(rid)) by
959959
hyperlink_to_user(pTicket->zUser,zDate," on");
960960
hyperlink_to_date(zDate, ":");
961961
@ </p>
962962
ticket_output_change_artifact(pTicket, "a");
963963
--- src/tkt.c
+++ src/tkt.c
@@ -943,20 +943,20 @@
943 }else{
944 @
945 @ <li><p>Add attachment
946 @ "%z(href("%R/artifact/%s",zSrc))%s(zFile)</a>"
947 }
948 @ [%z(href("%R/artifact/%s",zChngUuid))%.10s(zChngUuid)</a>]
949 @ (rid %d(rid)) by
950 hyperlink_to_user(zUser,zDate," on");
951 hyperlink_to_date(zDate, ".</p>");
952 }else{
953 pTicket = manifest_get(rid, CFTYPE_TICKET, 0);
954 if( pTicket ){
955 @
956 @ <li><p>Ticket change
957 @ [%z(href("%R/artifact/%s",zChngUuid))%.10s(zChngUuid)</a>]
958 @ (rid %d(rid)) by
959 hyperlink_to_user(pTicket->zUser,zDate," on");
960 hyperlink_to_date(zDate, ":");
961 @ </p>
962 ticket_output_change_artifact(pTicket, "a");
963
--- src/tkt.c
+++ src/tkt.c
@@ -943,20 +943,20 @@
943 }else{
944 @
945 @ <li><p>Add attachment
946 @ "%z(href("%R/artifact/%s",zSrc))%s(zFile)</a>"
947 }
948 @ [%z(href("%R/artifact/%s",zChngUuid))%S(zChngUuid)</a>]
949 @ (rid %d(rid)) by
950 hyperlink_to_user(zUser,zDate," on");
951 hyperlink_to_date(zDate, ".</p>");
952 }else{
953 pTicket = manifest_get(rid, CFTYPE_TICKET, 0);
954 if( pTicket ){
955 @
956 @ <li><p>Ticket change
957 @ [%z(href("%R/artifact/%s",zChngUuid))%S(zChngUuid)</a>]
958 @ (rid %d(rid)) by
959 hyperlink_to_user(pTicket->zUser,zDate," on");
960 hyperlink_to_date(zDate, ":");
961 @ </p>
962 ticket_output_change_artifact(pTicket, "a");
963
+166 -154
--- src/unicode.c
+++ src/unicode.c
@@ -31,101 +31,107 @@
3131
int unicode_isalnum(int c){
3232
/* Each unsigned integer in the following array corresponds to a contiguous
3333
** range of unicode codepoints that are not either letters or numbers (i.e.
3434
** codepoints for which this function should return 0).
3535
**
36
- ** The most significant 22 bits in each 32-bit value contain the first
36
+ ** The most significant 22 bits in each 32-bit value contain the first
3737
** codepoint in the range. The least significant 10 bits are used to store
38
- ** the size of the range (always at least 1). In other words, the value
39
- ** ((C<<22) + N) represents a range of N codepoints starting with codepoint
40
- ** C. It is not possible to represent a range larger than 1023 codepoints
38
+ ** the size of the range (always at least 1). In other words, the value
39
+ ** ((C<<22) + N) represents a range of N codepoints starting with codepoint
40
+ ** C. It is not possible to represent a range larger than 1023 codepoints
4141
** using this format.
4242
*/
4343
static const unsigned int aEntry[] = {
4444
0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
4545
0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
4646
0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
4747
0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
48
- 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163C01,
49
- 0x00164437, 0x0017CC02, 0x00180005, 0x00181816, 0x00187802,
50
- 0x00192C15, 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F,
51
- 0x001B9C07, 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401,
52
- 0x001CC01B, 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804,
53
- 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403,
54
- 0x00217801, 0x0023901B, 0x00240004, 0x0024E803, 0x0024F812,
55
- 0x00254407, 0x00258804, 0x0025C001, 0x00260403, 0x0026F001,
56
- 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802,
57
- 0x0027C802, 0x0027E802, 0x00280403, 0x0028F001, 0x0028F805,
58
- 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D401,
59
- 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03,
60
- 0x002B8802, 0x002BC002, 0x002C0403, 0x002CF001, 0x002CF807,
61
- 0x002D1C02, 0x002D2C03, 0x002D5802, 0x002D8802, 0x002DC001,
62
- 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804, 0x002F5C01,
63
- 0x002FCC08, 0x00300403, 0x0030F807, 0x00311803, 0x00312804,
64
- 0x00315402, 0x00318802, 0x0031FC01, 0x00320802, 0x0032F001,
65
- 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802,
66
- 0x00340802, 0x0034F807, 0x00351803, 0x00352804, 0x00355C01,
67
- 0x00358802, 0x0035E401, 0x00360802, 0x00372801, 0x00373C06,
68
- 0x00375801, 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007,
69
- 0x0038FC01, 0x00391C09, 0x00396802, 0x003AC401, 0x003AD006,
70
- 0x003AEC02, 0x003B2006, 0x003C041F, 0x003CD00C, 0x003DC417,
71
- 0x003E340B, 0x003E6424, 0x003EF80F, 0x003F380D, 0x0040AC14,
72
- 0x00412806, 0x00415804, 0x00417803, 0x00418803, 0x00419C07,
73
- 0x0041C404, 0x0042080C, 0x00423C01, 0x00426806, 0x0043EC01,
74
- 0x004D740C, 0x004E400A, 0x00500001, 0x0059B402, 0x005A0001,
75
- 0x005A6C02, 0x005BAC03, 0x005C4803, 0x005CC805, 0x005D4802,
76
- 0x005DC802, 0x005ED023, 0x005F6004, 0x005F7401, 0x0060000F,
77
- 0x0062A401, 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002,
78
- 0x0066C011, 0x00672002, 0x00677822, 0x00685C05, 0x00687802,
79
- 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007, 0x006AA006,
80
- 0x006C0005, 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D,
81
- 0x006F980E, 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802,
82
- 0x00730008, 0x00734019, 0x0073B401, 0x0073C803, 0x00770027,
48
+ 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163403,
49
+ 0x00164437, 0x0017CC02, 0x0018001D, 0x00187802, 0x00192C15,
50
+ 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F, 0x001B9C07,
51
+ 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401, 0x001CC01B,
52
+ 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804, 0x00206C09,
53
+ 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403, 0x00217801,
54
+ 0x00239020, 0x0024E803, 0x0024F812, 0x00254407, 0x00258804,
55
+ 0x0025C001, 0x00260403, 0x0026F001, 0x0026F807, 0x00271C02,
56
+ 0x00272C03, 0x00275C01, 0x00278802, 0x0027C802, 0x0027E802,
57
+ 0x00280403, 0x0028F001, 0x0028F805, 0x00291C02, 0x00292C03,
58
+ 0x00294401, 0x0029C002, 0x0029D401, 0x002A0403, 0x002AF001,
59
+ 0x002AF808, 0x002B1C03, 0x002B2C03, 0x002B8802, 0x002BC002,
60
+ 0x002C0403, 0x002CF001, 0x002CF807, 0x002D1C02, 0x002D2C03,
61
+ 0x002D5802, 0x002D8802, 0x002DC001, 0x002E0801, 0x002EF805,
62
+ 0x002F1803, 0x002F2804, 0x002F5C01, 0x002FCC08, 0x00300004,
63
+ 0x0030F807, 0x00311803, 0x00312804, 0x00315402, 0x00318802,
64
+ 0x0031FC01, 0x00320403, 0x0032F001, 0x0032F807, 0x00331803,
65
+ 0x00332804, 0x00335402, 0x00338802, 0x00340403, 0x0034F807,
66
+ 0x00351803, 0x00352804, 0x00355C01, 0x00358802, 0x0035E401,
67
+ 0x00360802, 0x00372801, 0x00373C06, 0x00375801, 0x00376008,
68
+ 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01, 0x00391C09,
69
+ 0x00396802, 0x003AC401, 0x003AD006, 0x003AEC02, 0x003B2006,
70
+ 0x003C041F, 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424,
71
+ 0x003EF80F, 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804,
72
+ 0x00417803, 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C,
73
+ 0x00423C01, 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A,
74
+ 0x00500001, 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03,
75
+ 0x005C4803, 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023,
76
+ 0x005F6004, 0x005F7401, 0x0060000F, 0x0062A401, 0x0064800C,
77
+ 0x0064C00C, 0x00650001, 0x00651002, 0x0066C011, 0x00672002,
78
+ 0x00677822, 0x00685C05, 0x00687802, 0x0069540A, 0x0069801D,
79
+ 0x0069FC01, 0x006A8007, 0x006AA006, 0x006AC00F, 0x006C0005,
80
+ 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D, 0x006F980E,
81
+ 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802, 0x00730008,
82
+ 0x00734019, 0x0073B401, 0x0073C803, 0x0073E002, 0x00770036,
8383
0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403,
84
- 0x007FB403, 0x007FF402, 0x00800065, 0x0081A806, 0x0081E805,
85
- 0x00822805, 0x0082801A, 0x00834021, 0x00840002, 0x00840C04,
84
+ 0x007FB403, 0x007FF402, 0x00800065, 0x0081980A, 0x0081E805,
85
+ 0x00822805, 0x0082801E, 0x00834021, 0x00840002, 0x00840C04,
8686
0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401,
8787
0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005,
88
- 0x00852804, 0x00853C01, 0x00864264, 0x00900027, 0x0091000B,
89
- 0x0092704E, 0x00940200, 0x009C0475, 0x009E53B9, 0x00AD400A,
90
- 0x00B39406, 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001,
91
- 0x00B5FC01, 0x00B7804F, 0x00B8C00C, 0x00BA001A, 0x00BA6C59,
92
- 0x00BC00D6, 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807,
93
- 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01,
94
- 0x00C64002, 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E,
95
- 0x00C94001, 0x00C98020, 0x00CA2827, 0x00CB003F, 0x00CC0100,
96
- 0x01370040, 0x02924037, 0x0293F802, 0x02983403, 0x0299BC10,
97
- 0x029A7C01, 0x029BC008, 0x029C0017, 0x029C8002, 0x029E2402,
98
- 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C09, 0x02A0D804,
99
- 0x02A1D004, 0x02A20002, 0x02A2D011, 0x02A33802, 0x02A38012,
100
- 0x02A3E003, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004,
101
- 0x02A6CC1B, 0x02A77802, 0x02A8A40E, 0x02A90C01, 0x02A93002,
102
- 0x02A97004, 0x02A9DC03, 0x02A9EC01, 0x02AAC001, 0x02AAC803,
103
- 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07,
104
- 0x02ABD402, 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02,
105
- 0x037FFC02, 0x03E3FC01, 0x03EC7801, 0x03ECA401, 0x03EEC810,
106
- 0x03F4F802, 0x03F7F002, 0x03F8001A, 0x03F88007, 0x03F8C023,
107
- 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807,
108
- 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405,
109
- 0x04040003, 0x0404DC09, 0x0405E411, 0x0406400C, 0x0407402E,
110
- 0x040E7C01, 0x040F4001, 0x04215C01, 0x04247C01, 0x0424FC01,
111
- 0x04280403, 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01,
112
- 0x04294009, 0x0429FC01, 0x042CE407, 0x04400003, 0x0440E016,
113
- 0x04420003, 0x0442C012, 0x04440003, 0x04449C0E, 0x04450004,
114
- 0x04460003, 0x0446CC0E, 0x04471404, 0x045AAC0D, 0x0491C004,
115
- 0x05BD442E, 0x05BE3C04, 0x074000F6, 0x07440027, 0x0744A4B5,
116
- 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01,
117
- 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401,
118
- 0x075EA401, 0x075F0C01, 0x07BBC002, 0x07C0002C, 0x07C0C064,
119
- 0x07C2800F, 0x07C2C40E, 0x07C3040F, 0x07C3440F, 0x07C4401F,
120
- 0x07C4C03C, 0x07C5C02B, 0x07C7981D, 0x07C8402B, 0x07C90009,
121
- 0x07C94002, 0x07CC0021, 0x07CCC006, 0x07CCDC46, 0x07CE0014,
122
- 0x07CE8025, 0x07CF1805, 0x07CF8011, 0x07D0003F, 0x07D10001,
123
- 0x07D108B6, 0x07D3E404, 0x07D4003E, 0x07D50004, 0x07D54018,
124
- 0x07D7EC46, 0x07D9140B, 0x07DA0046, 0x07DC0074, 0x38000401,
125
- 0x38008060, 0x380400F0, 0x3C000001, 0x3FFFF401, 0x40000001,
126
- 0x43FFF401,
88
+ 0x00852804, 0x00853C01, 0x0086426B, 0x00900027, 0x0091000B,
89
+ 0x0092704E, 0x00940276, 0x009E53E0, 0x00ADD820, 0x00AE6022,
90
+ 0x00AEF40C, 0x00AF2808, 0x00B39406, 0x00B3BC03, 0x00B3E404,
91
+ 0x00B3F802, 0x00B5C001, 0x00B5FC01, 0x00B7804F, 0x00B8C013,
92
+ 0x00BA001A, 0x00BA6C59, 0x00BC00D6, 0x00BFC00C, 0x00C00005,
93
+ 0x00C02019, 0x00C0A807, 0x00C0D802, 0x00C0F403, 0x00C26404,
94
+ 0x00C28001, 0x00C3EC01, 0x00C64002, 0x00C6580A, 0x00C70024,
95
+ 0x00C8001F, 0x00C8A81E, 0x00C94001, 0x00C98020, 0x00CA2827,
96
+ 0x00CB003F, 0x00CC0100, 0x01370040, 0x02924037, 0x0293F802,
97
+ 0x02983403, 0x0299BC10, 0x029A7C01, 0x029BC008, 0x029C0017,
98
+ 0x029C8002, 0x029E2402, 0x02A00801, 0x02A01801, 0x02A02C01,
99
+ 0x02A08C09, 0x02A0D804, 0x02A1D004, 0x02A20002, 0x02A2D011,
100
+ 0x02A33802, 0x02A38012, 0x02A3E003, 0x02A4980A, 0x02A51C0D,
101
+ 0x02A57C01, 0x02A60004, 0x02A6CC1B, 0x02A77802, 0x02A79401,
102
+ 0x02A8A40E, 0x02A90C01, 0x02A93002, 0x02A97004, 0x02A9DC03,
103
+ 0x02A9EC03, 0x02AAC001, 0x02AAC803, 0x02AADC02, 0x02AAF802,
104
+ 0x02AB0401, 0x02AB7802, 0x02ABAC07, 0x02ABD402, 0x02AD6C01,
105
+ 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02, 0x037FFC01,
106
+ 0x03EC7801, 0x03ECA401, 0x03EEC810, 0x03F4F802, 0x03F7F002,
107
+ 0x03F8001A, 0x03F8800E, 0x03F8C023, 0x03F95013, 0x03F9A004,
108
+ 0x03FBFC01, 0x03FC040F, 0x03FC6807, 0x03FCEC06, 0x03FD6C0B,
109
+ 0x03FF8007, 0x03FFA007, 0x03FFE405, 0x04040003, 0x0404DC09,
110
+ 0x0405E411, 0x04063001, 0x0406400C, 0x04068001, 0x0407402E,
111
+ 0x040B8001, 0x040DD805, 0x040E7C01, 0x040F4001, 0x0415BC01,
112
+ 0x04215C01, 0x0421DC02, 0x04247C01, 0x0424FC01, 0x04280403,
113
+ 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01, 0x04294009,
114
+ 0x0429FC01, 0x042B2001, 0x042B9402, 0x042BC007, 0x042CE407,
115
+ 0x042E6404, 0x04400003, 0x0440E016, 0x0441FC04, 0x0442C012,
116
+ 0x04440003, 0x04449C0E, 0x04450004, 0x0445CC03, 0x04460003,
117
+ 0x0446CC0E, 0x04471404, 0x04473401, 0x0448B012, 0x044B7C0C,
118
+ 0x044C0403, 0x044CF001, 0x044CF807, 0x044D1C02, 0x044D2C03,
119
+ 0x044D5C01, 0x044D8802, 0x044D9807, 0x044DC005, 0x0452C014,
120
+ 0x04531801, 0x0456BC07, 0x0456E012, 0x0458C014, 0x045AAC0D,
121
+ 0x0491C005, 0x05A9B802, 0x05ABC006, 0x05ACC010, 0x05AD1002,
122
+ 0x05BD442E, 0x05BE3C04, 0x06F27008, 0x074000F6, 0x07440027,
123
+ 0x0744A4B5, 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01,
124
+ 0x075BEC01, 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01,
125
+ 0x075E2401, 0x075EA401, 0x075F0C01, 0x07A34007, 0x07BBC002,
126
+ 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F, 0x07C3040F,
127
+ 0x07C34425, 0x07C4401F, 0x07C4C03C, 0x07C5C02B, 0x07C7981D,
128
+ 0x07C8402B, 0x07C90009, 0x07C94002, 0x07CC002D, 0x07CCC04E,
129
+ 0x07CE004F, 0x07CF5024, 0x07D000FF, 0x07D4004B, 0x07D5402A,
130
+ 0x07D5EC29, 0x07D6949E, 0x07D9148B, 0x07DB800D, 0x07DBC004,
131
+ 0x07DC0074, 0x07DE0055, 0x07E0000C, 0x07E04038, 0x07E1400A,
132
+ 0x07E18028, 0x07E2401E, 0x38000401, 0x38008060, 0x380400F0,
127133
};
128134
static const unsigned int aAscii[4] = {
129135
0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
130136
};
131137
@@ -160,35 +166,35 @@
160166
** SMALL LETTER E WITH DIAERESIS" - return 65 ("LATIN SMALL LETTER
161167
** E"). The resuls of passing a codepoint that corresponds to an
162168
** uppercase letter are undefined.
163169
*/
164170
static int unicode_remove_diacritic(int c){
165
- unsigned short aDia[] = {
166
- 0, 1797, 1848, 1859, 1891, 1928, 1940, 1995,
167
- 2024, 2040, 2060, 2110, 2168, 2206, 2264, 2286,
168
- 2344, 2383, 2472, 2488, 2516, 2596, 2668, 2732,
169
- 2782, 2842, 2894, 2954, 2984, 3000, 3028, 3336,
170
- 3456, 3696, 3712, 3728, 3744, 3896, 3912, 3928,
171
- 3968, 4008, 4040, 4106, 4138, 4170, 4202, 4234,
172
- 4266, 4296, 4312, 4344, 4408, 4424, 4472, 4504,
173
- 6148, 6198, 6264, 6280, 6360, 6429, 6505, 6529,
174
- 61448, 61468, 61534, 61592, 61642, 61688, 61704, 61726,
175
- 61784, 61800, 61836, 61880, 61914, 61948, 61998, 62122,
176
- 62154, 62200, 62218, 62302, 62364, 62442, 62478, 62536,
177
- 62554, 62584, 62604, 62640, 62648, 62656, 62664, 62730,
178
- 62924, 63050, 63082, 63274, 63390,
171
+ static const unsigned short aDia[] = {
172
+ 0, 1797, 1848, 1859, 1891, 1928, 1940, 1995,
173
+ 2024, 2040, 2060, 2110, 2168, 2206, 2264, 2286,
174
+ 2344, 2383, 2472, 2488, 2516, 2596, 2668, 2732,
175
+ 2782, 2842, 2894, 2954, 2984, 3000, 3028, 3336,
176
+ 3456, 3696, 3712, 3728, 3744, 3896, 3912, 3928,
177
+ 3968, 4008, 4040, 4106, 4138, 4170, 4202, 4234,
178
+ 4266, 4296, 4312, 4344, 4408, 4424, 4472, 4504,
179
+ 6148, 6198, 6264, 6280, 6360, 6429, 6505, 6529,
180
+ 61448, 61468, 61534, 61592, 61642, 61688, 61704, 61726,
181
+ 61784, 61800, 61836, 61880, 61914, 61948, 61998, 62122,
182
+ 62154, 62200, 62218, 62302, 62364, 62442, 62478, 62536,
183
+ 62554, 62584, 62604, 62640, 62648, 62656, 62664, 62730,
184
+ 62924, 63050, 63082, 63274, 63390,
179185
};
180
- char aChar[] = {
181
- '\0', 'a', 'c', 'e', 'i', 'n', 'o', 'u', 'y', 'y', 'a', 'c',
182
- 'd', 'e', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'n', 'o', 'r',
183
- 's', 't', 'u', 'u', 'w', 'y', 'z', 'o', 'u', 'a', 'i', 'o',
184
- 'u', 'g', 'k', 'o', 'j', 'g', 'n', 'a', 'e', 'i', 'o', 'r',
185
- 'u', 's', 't', 'h', 'a', 'e', 'o', 'y', '\0', '\0', '\0', '\0',
186
- '\0', '\0', '\0', '\0', 'a', 'b', 'd', 'd', 'e', 'f', 'g', 'h',
187
- 'h', 'i', 'k', 'l', 'l', 'm', 'n', 'p', 'r', 'r', 's', 't',
188
- 'u', 'v', 'w', 'w', 'x', 'y', 'z', 'h', 't', 'w', 'y', 'a',
189
- 'e', 'i', 'o', 'u', 'y',
186
+ static const char aChar[] = {
187
+ '\0', 'a', 'c', 'e', 'i', 'n', 'o', 'u', 'y', 'y', 'a', 'c',
188
+ 'd', 'e', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'n', 'o', 'r',
189
+ 's', 't', 'u', 'u', 'w', 'y', 'z', 'o', 'u', 'a', 'i', 'o',
190
+ 'u', 'g', 'k', 'o', 'j', 'g', 'n', 'a', 'e', 'i', 'o', 'r',
191
+ 'u', 's', 't', 'h', 'a', 'e', 'o', 'y', '\0', '\0', '\0', '\0',
192
+ '\0', '\0', '\0', '\0', 'a', 'b', 'd', 'd', 'e', 'f', 'g', 'h',
193
+ 'h', 'i', 'k', 'l', 'l', 'm', 'n', 'p', 'r', 'r', 's', 't',
194
+ 'u', 'v', 'w', 'w', 'x', 'y', 'z', 'h', 't', 'w', 'y', 'a',
195
+ 'e', 'i', 'o', 'u', 'y',
190196
};
191197
192198
unsigned int key = (((unsigned int)c)<<3) | 0x00000007;
193199
int iRes = 0;
194200
int iHi = sizeof(aDia)/sizeof(aDia[0]) - 1;
@@ -253,12 +259,12 @@
253259
unsigned char flags;
254260
unsigned char nRange;
255261
} aEntry[] = {
256262
{65, 14, 26}, {181, 64, 1}, {192, 14, 23},
257263
{216, 14, 7}, {256, 1, 48}, {306, 1, 6},
258
- {313, 1, 16}, {330, 1, 46}, {376, 116, 1},
259
- {377, 1, 6}, {383, 104, 1}, {385, 50, 1},
264
+ {313, 1, 16}, {330, 1, 46}, {376, 126, 1},
265
+ {377, 1, 6}, {383, 114, 1}, {385, 50, 1},
260266
{386, 1, 4}, {390, 44, 1}, {391, 0, 1},
261267
{393, 42, 2}, {395, 0, 1}, {398, 32, 1},
262268
{399, 38, 1}, {400, 40, 1}, {401, 0, 1},
263269
{403, 42, 1}, {404, 46, 1}, {406, 52, 1},
264270
{407, 48, 1}, {408, 0, 1}, {412, 52, 1},
@@ -267,61 +273,64 @@
267273
{428, 0, 1}, {430, 60, 1}, {431, 0, 1},
268274
{433, 58, 2}, {435, 1, 4}, {439, 62, 1},
269275
{440, 0, 1}, {444, 0, 1}, {452, 2, 1},
270276
{453, 0, 1}, {455, 2, 1}, {456, 0, 1},
271277
{458, 2, 1}, {459, 1, 18}, {478, 1, 18},
272
- {497, 2, 1}, {498, 1, 4}, {502, 122, 1},
273
- {503, 134, 1}, {504, 1, 40}, {544, 110, 1},
278
+ {497, 2, 1}, {498, 1, 4}, {502, 132, 1},
279
+ {503, 144, 1}, {504, 1, 40}, {544, 120, 1},
274280
{546, 1, 18}, {570, 70, 1}, {571, 0, 1},
275
- {573, 108, 1}, {574, 68, 1}, {577, 0, 1},
276
- {579, 106, 1}, {580, 28, 1}, {581, 30, 1},
281
+ {573, 118, 1}, {574, 68, 1}, {577, 0, 1},
282
+ {579, 116, 1}, {580, 28, 1}, {581, 30, 1},
277283
{582, 1, 10}, {837, 36, 1}, {880, 1, 4},
278
- {886, 0, 1}, {902, 18, 1}, {904, 16, 3},
279
- {908, 26, 1}, {910, 24, 2}, {913, 14, 17},
280
- {931, 14, 9}, {962, 0, 1}, {975, 4, 1},
281
- {976, 140, 1}, {977, 142, 1}, {981, 146, 1},
282
- {982, 144, 1}, {984, 1, 24}, {1008, 136, 1},
283
- {1009, 138, 1}, {1012, 130, 1}, {1013, 128, 1},
284
- {1015, 0, 1}, {1017, 152, 1}, {1018, 0, 1},
285
- {1021, 110, 3}, {1024, 34, 16}, {1040, 14, 32},
286
- {1120, 1, 34}, {1162, 1, 54}, {1216, 6, 1},
287
- {1217, 1, 14}, {1232, 1, 88}, {1329, 22, 38},
288
- {4256, 66, 38}, {4295, 66, 1}, {4301, 66, 1},
289
- {7680, 1, 150}, {7835, 132, 1}, {7838, 96, 1},
290
- {7840, 1, 96}, {7944, 150, 8}, {7960, 150, 6},
291
- {7976, 150, 8}, {7992, 150, 8}, {8008, 150, 6},
292
- {8025, 151, 8}, {8040, 150, 8}, {8072, 150, 8},
293
- {8088, 150, 8}, {8104, 150, 8}, {8120, 150, 2},
294
- {8122, 126, 2}, {8124, 148, 1}, {8126, 100, 1},
295
- {8136, 124, 4}, {8140, 148, 1}, {8152, 150, 2},
296
- {8154, 120, 2}, {8168, 150, 2}, {8170, 118, 2},
297
- {8172, 152, 1}, {8184, 112, 2}, {8186, 114, 2},
298
- {8188, 148, 1}, {8486, 98, 1}, {8490, 92, 1},
299
- {8491, 94, 1}, {8498, 12, 1}, {8544, 8, 16},
300
- {8579, 0, 1}, {9398, 10, 26}, {11264, 22, 47},
301
- {11360, 0, 1}, {11362, 88, 1}, {11363, 102, 1},
302
- {11364, 90, 1}, {11367, 1, 6}, {11373, 84, 1},
303
- {11374, 86, 1}, {11375, 80, 1}, {11376, 82, 1},
304
- {11378, 0, 1}, {11381, 0, 1}, {11390, 78, 2},
305
- {11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1},
306
- {42560, 1, 46}, {42624, 1, 24}, {42786, 1, 14},
307
- {42802, 1, 62}, {42873, 1, 4}, {42877, 76, 1},
308
- {42878, 1, 10}, {42891, 0, 1}, {42893, 74, 1},
309
- {42896, 1, 4}, {42912, 1, 10}, {42922, 72, 1},
310
- {65313, 14, 26},
284
+ {886, 0, 1}, {895, 36, 1}, {902, 18, 1},
285
+ {904, 16, 3}, {908, 26, 1}, {910, 24, 2},
286
+ {913, 14, 17}, {931, 14, 9}, {962, 0, 1},
287
+ {975, 4, 1}, {976, 150, 1}, {977, 152, 1},
288
+ {981, 156, 1}, {982, 154, 1}, {984, 1, 24},
289
+ {1008, 146, 1}, {1009, 148, 1}, {1012, 140, 1},
290
+ {1013, 138, 1}, {1015, 0, 1}, {1017, 162, 1},
291
+ {1018, 0, 1}, {1021, 120, 3}, {1024, 34, 16},
292
+ {1040, 14, 32}, {1120, 1, 34}, {1162, 1, 54},
293
+ {1216, 6, 1}, {1217, 1, 14}, {1232, 1, 96},
294
+ {1329, 22, 38}, {4256, 66, 38}, {4295, 66, 1},
295
+ {4301, 66, 1}, {7680, 1, 150}, {7835, 142, 1},
296
+ {7838, 106, 1}, {7840, 1, 96}, {7944, 160, 8},
297
+ {7960, 160, 6}, {7976, 160, 8}, {7992, 160, 8},
298
+ {8008, 160, 6}, {8025, 161, 8}, {8040, 160, 8},
299
+ {8072, 160, 8}, {8088, 160, 8}, {8104, 160, 8},
300
+ {8120, 160, 2}, {8122, 136, 2}, {8124, 158, 1},
301
+ {8126, 110, 1}, {8136, 134, 4}, {8140, 158, 1},
302
+ {8152, 160, 2}, {8154, 130, 2}, {8168, 160, 2},
303
+ {8170, 128, 2}, {8172, 162, 1}, {8184, 122, 2},
304
+ {8186, 124, 2}, {8188, 158, 1}, {8486, 108, 1},
305
+ {8490, 102, 1}, {8491, 104, 1}, {8498, 12, 1},
306
+ {8544, 8, 16}, {8579, 0, 1}, {9398, 10, 26},
307
+ {11264, 22, 47}, {11360, 0, 1}, {11362, 98, 1},
308
+ {11363, 112, 1}, {11364, 100, 1}, {11367, 1, 6},
309
+ {11373, 94, 1}, {11374, 96, 1}, {11375, 90, 1},
310
+ {11376, 92, 1}, {11378, 0, 1}, {11381, 0, 1},
311
+ {11390, 88, 2}, {11392, 1, 100}, {11499, 1, 4},
312
+ {11506, 0, 1}, {42560, 1, 46}, {42624, 1, 28},
313
+ {42786, 1, 14}, {42802, 1, 62}, {42873, 1, 4},
314
+ {42877, 86, 1}, {42878, 1, 10}, {42891, 0, 1},
315
+ {42893, 82, 1}, {42896, 1, 4}, {42902, 1, 20},
316
+ {42922, 76, 1}, {42923, 72, 1}, {42924, 74, 1},
317
+ {42925, 78, 1}, {42928, 84, 1}, {42929, 80, 1},
318
+ {65313, 14, 26},
311319
};
312320
static const unsigned short aiOff[] = {
313
- 1, 2, 8, 15, 16, 26, 28, 32,
314
- 37, 38, 40, 48, 63, 64, 69, 71,
315
- 79, 80, 116, 202, 203, 205, 206, 207,
316
- 209, 210, 211, 213, 214, 217, 218, 219,
317
- 775, 7264, 10792, 10795, 23228, 23256, 30204, 54721,
318
- 54753, 54754, 54756, 54787, 54793, 54809, 57153, 57274,
319
- 57921, 58019, 58363, 61722, 65268, 65341, 65373, 65406,
320
- 65408, 65410, 65415, 65424, 65436, 65439, 65450, 65462,
321
- 65472, 65476, 65478, 65480, 65482, 65488, 65506, 65511,
322
- 65514, 65521, 65527, 65528, 65529,
321
+ 1, 2, 8, 15, 16, 26, 28, 32,
322
+ 37, 38, 40, 48, 63, 64, 69, 71,
323
+ 79, 80, 116, 202, 203, 205, 206, 207,
324
+ 209, 210, 211, 213, 214, 217, 218, 219,
325
+ 775, 7264, 10792, 10795, 23217, 23221, 23228, 23231,
326
+ 23254, 23256, 23278, 30204, 54721, 54753, 54754, 54756,
327
+ 54787, 54793, 54809, 57153, 57274, 57921, 58019, 58363,
328
+ 61722, 65268, 65341, 65373, 65406, 65408, 65410, 65415,
329
+ 65424, 65436, 65439, 65450, 65462, 65472, 65476, 65478,
330
+ 65480, 65482, 65488, 65506, 65511, 65514, 65521, 65527,
331
+ 65528, 65529,
323332
};
324333
325334
int ret = c;
326335
327336
assert( c>=0 );
@@ -354,12 +363,15 @@
354363
}
355364
}
356365
357366
if( bRemoveDiacritic ) ret = unicode_remove_diacritic(ret);
358367
}
359
-
368
+
360369
else if( c>=66560 && c<66600 ){
361370
ret = c + 40;
371
+ }
372
+ else if( c>=71840 && c<71872 ){
373
+ ret = c + 32;
362374
}
363375
364376
return ret;
365377
}
366378
--- src/unicode.c
+++ src/unicode.c
@@ -31,101 +31,107 @@
31 int unicode_isalnum(int c){
32 /* Each unsigned integer in the following array corresponds to a contiguous
33 ** range of unicode codepoints that are not either letters or numbers (i.e.
34 ** codepoints for which this function should return 0).
35 **
36 ** The most significant 22 bits in each 32-bit value contain the first
37 ** codepoint in the range. The least significant 10 bits are used to store
38 ** the size of the range (always at least 1). In other words, the value
39 ** ((C<<22) + N) represents a range of N codepoints starting with codepoint
40 ** C. It is not possible to represent a range larger than 1023 codepoints
41 ** using this format.
42 */
43 static const unsigned int aEntry[] = {
44 0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
45 0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
46 0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
47 0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
48 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163C01,
49 0x00164437, 0x0017CC02, 0x00180005, 0x00181816, 0x00187802,
50 0x00192C15, 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F,
51 0x001B9C07, 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401,
52 0x001CC01B, 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804,
53 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403,
54 0x00217801, 0x0023901B, 0x00240004, 0x0024E803, 0x0024F812,
55 0x00254407, 0x00258804, 0x0025C001, 0x00260403, 0x0026F001,
56 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802,
57 0x0027C802, 0x0027E802, 0x00280403, 0x0028F001, 0x0028F805,
58 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D401,
59 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03,
60 0x002B8802, 0x002BC002, 0x002C0403, 0x002CF001, 0x002CF807,
61 0x002D1C02, 0x002D2C03, 0x002D5802, 0x002D8802, 0x002DC001,
62 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804, 0x002F5C01,
63 0x002FCC08, 0x00300403, 0x0030F807, 0x00311803, 0x00312804,
64 0x00315402, 0x00318802, 0x0031FC01, 0x00320802, 0x0032F001,
65 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802,
66 0x00340802, 0x0034F807, 0x00351803, 0x00352804, 0x00355C01,
67 0x00358802, 0x0035E401, 0x00360802, 0x00372801, 0x00373C06,
68 0x00375801, 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007,
69 0x0038FC01, 0x00391C09, 0x00396802, 0x003AC401, 0x003AD006,
70 0x003AEC02, 0x003B2006, 0x003C041F, 0x003CD00C, 0x003DC417,
71 0x003E340B, 0x003E6424, 0x003EF80F, 0x003F380D, 0x0040AC14,
72 0x00412806, 0x00415804, 0x00417803, 0x00418803, 0x00419C07,
73 0x0041C404, 0x0042080C, 0x00423C01, 0x00426806, 0x0043EC01,
74 0x004D740C, 0x004E400A, 0x00500001, 0x0059B402, 0x005A0001,
75 0x005A6C02, 0x005BAC03, 0x005C4803, 0x005CC805, 0x005D4802,
76 0x005DC802, 0x005ED023, 0x005F6004, 0x005F7401, 0x0060000F,
77 0x0062A401, 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002,
78 0x0066C011, 0x00672002, 0x00677822, 0x00685C05, 0x00687802,
79 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007, 0x006AA006,
80 0x006C0005, 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D,
81 0x006F980E, 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802,
82 0x00730008, 0x00734019, 0x0073B401, 0x0073C803, 0x00770027,
83 0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403,
84 0x007FB403, 0x007FF402, 0x00800065, 0x0081A806, 0x0081E805,
85 0x00822805, 0x0082801A, 0x00834021, 0x00840002, 0x00840C04,
86 0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401,
87 0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005,
88 0x00852804, 0x00853C01, 0x00864264, 0x00900027, 0x0091000B,
89 0x0092704E, 0x00940200, 0x009C0475, 0x009E53B9, 0x00AD400A,
90 0x00B39406, 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001,
91 0x00B5FC01, 0x00B7804F, 0x00B8C00C, 0x00BA001A, 0x00BA6C59,
92 0x00BC00D6, 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807,
93 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01,
94 0x00C64002, 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E,
95 0x00C94001, 0x00C98020, 0x00CA2827, 0x00CB003F, 0x00CC0100,
96 0x01370040, 0x02924037, 0x0293F802, 0x02983403, 0x0299BC10,
97 0x029A7C01, 0x029BC008, 0x029C0017, 0x029C8002, 0x029E2402,
98 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C09, 0x02A0D804,
99 0x02A1D004, 0x02A20002, 0x02A2D011, 0x02A33802, 0x02A38012,
100 0x02A3E003, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004,
101 0x02A6CC1B, 0x02A77802, 0x02A8A40E, 0x02A90C01, 0x02A93002,
102 0x02A97004, 0x02A9DC03, 0x02A9EC01, 0x02AAC001, 0x02AAC803,
103 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07,
104 0x02ABD402, 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02,
105 0x037FFC02, 0x03E3FC01, 0x03EC7801, 0x03ECA401, 0x03EEC810,
106 0x03F4F802, 0x03F7F002, 0x03F8001A, 0x03F88007, 0x03F8C023,
107 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807,
108 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405,
109 0x04040003, 0x0404DC09, 0x0405E411, 0x0406400C, 0x0407402E,
110 0x040E7C01, 0x040F4001, 0x04215C01, 0x04247C01, 0x0424FC01,
111 0x04280403, 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01,
112 0x04294009, 0x0429FC01, 0x042CE407, 0x04400003, 0x0440E016,
113 0x04420003, 0x0442C012, 0x04440003, 0x04449C0E, 0x04450004,
114 0x04460003, 0x0446CC0E, 0x04471404, 0x045AAC0D, 0x0491C004,
115 0x05BD442E, 0x05BE3C04, 0x074000F6, 0x07440027, 0x0744A4B5,
116 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01,
117 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401,
118 0x075EA401, 0x075F0C01, 0x07BBC002, 0x07C0002C, 0x07C0C064,
119 0x07C2800F, 0x07C2C40E, 0x07C3040F, 0x07C3440F, 0x07C4401F,
120 0x07C4C03C, 0x07C5C02B, 0x07C7981D, 0x07C8402B, 0x07C90009,
121 0x07C94002, 0x07CC0021, 0x07CCC006, 0x07CCDC46, 0x07CE0014,
122 0x07CE8025, 0x07CF1805, 0x07CF8011, 0x07D0003F, 0x07D10001,
123 0x07D108B6, 0x07D3E404, 0x07D4003E, 0x07D50004, 0x07D54018,
124 0x07D7EC46, 0x07D9140B, 0x07DA0046, 0x07DC0074, 0x38000401,
125 0x38008060, 0x380400F0, 0x3C000001, 0x3FFFF401, 0x40000001,
126 0x43FFF401,
 
 
 
 
 
 
127 };
128 static const unsigned int aAscii[4] = {
129 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
130 };
131
@@ -160,35 +166,35 @@
160 ** SMALL LETTER E WITH DIAERESIS" - return 65 ("LATIN SMALL LETTER
161 ** E"). The resuls of passing a codepoint that corresponds to an
162 ** uppercase letter are undefined.
163 */
164 static int unicode_remove_diacritic(int c){
165 unsigned short aDia[] = {
166 0, 1797, 1848, 1859, 1891, 1928, 1940, 1995,
167 2024, 2040, 2060, 2110, 2168, 2206, 2264, 2286,
168 2344, 2383, 2472, 2488, 2516, 2596, 2668, 2732,
169 2782, 2842, 2894, 2954, 2984, 3000, 3028, 3336,
170 3456, 3696, 3712, 3728, 3744, 3896, 3912, 3928,
171 3968, 4008, 4040, 4106, 4138, 4170, 4202, 4234,
172 4266, 4296, 4312, 4344, 4408, 4424, 4472, 4504,
173 6148, 6198, 6264, 6280, 6360, 6429, 6505, 6529,
174 61448, 61468, 61534, 61592, 61642, 61688, 61704, 61726,
175 61784, 61800, 61836, 61880, 61914, 61948, 61998, 62122,
176 62154, 62200, 62218, 62302, 62364, 62442, 62478, 62536,
177 62554, 62584, 62604, 62640, 62648, 62656, 62664, 62730,
178 62924, 63050, 63082, 63274, 63390,
179 };
180 char aChar[] = {
181 '\0', 'a', 'c', 'e', 'i', 'n', 'o', 'u', 'y', 'y', 'a', 'c',
182 'd', 'e', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'n', 'o', 'r',
183 's', 't', 'u', 'u', 'w', 'y', 'z', 'o', 'u', 'a', 'i', 'o',
184 'u', 'g', 'k', 'o', 'j', 'g', 'n', 'a', 'e', 'i', 'o', 'r',
185 'u', 's', 't', 'h', 'a', 'e', 'o', 'y', '\0', '\0', '\0', '\0',
186 '\0', '\0', '\0', '\0', 'a', 'b', 'd', 'd', 'e', 'f', 'g', 'h',
187 'h', 'i', 'k', 'l', 'l', 'm', 'n', 'p', 'r', 'r', 's', 't',
188 'u', 'v', 'w', 'w', 'x', 'y', 'z', 'h', 't', 'w', 'y', 'a',
189 'e', 'i', 'o', 'u', 'y',
190 };
191
192 unsigned int key = (((unsigned int)c)<<3) | 0x00000007;
193 int iRes = 0;
194 int iHi = sizeof(aDia)/sizeof(aDia[0]) - 1;
@@ -253,12 +259,12 @@
253 unsigned char flags;
254 unsigned char nRange;
255 } aEntry[] = {
256 {65, 14, 26}, {181, 64, 1}, {192, 14, 23},
257 {216, 14, 7}, {256, 1, 48}, {306, 1, 6},
258 {313, 1, 16}, {330, 1, 46}, {376, 116, 1},
259 {377, 1, 6}, {383, 104, 1}, {385, 50, 1},
260 {386, 1, 4}, {390, 44, 1}, {391, 0, 1},
261 {393, 42, 2}, {395, 0, 1}, {398, 32, 1},
262 {399, 38, 1}, {400, 40, 1}, {401, 0, 1},
263 {403, 42, 1}, {404, 46, 1}, {406, 52, 1},
264 {407, 48, 1}, {408, 0, 1}, {412, 52, 1},
@@ -267,61 +273,64 @@
267 {428, 0, 1}, {430, 60, 1}, {431, 0, 1},
268 {433, 58, 2}, {435, 1, 4}, {439, 62, 1},
269 {440, 0, 1}, {444, 0, 1}, {452, 2, 1},
270 {453, 0, 1}, {455, 2, 1}, {456, 0, 1},
271 {458, 2, 1}, {459, 1, 18}, {478, 1, 18},
272 {497, 2, 1}, {498, 1, 4}, {502, 122, 1},
273 {503, 134, 1}, {504, 1, 40}, {544, 110, 1},
274 {546, 1, 18}, {570, 70, 1}, {571, 0, 1},
275 {573, 108, 1}, {574, 68, 1}, {577, 0, 1},
276 {579, 106, 1}, {580, 28, 1}, {581, 30, 1},
277 {582, 1, 10}, {837, 36, 1}, {880, 1, 4},
278 {886, 0, 1}, {902, 18, 1}, {904, 16, 3},
279 {908, 26, 1}, {910, 24, 2}, {913, 14, 17},
280 {931, 14, 9}, {962, 0, 1}, {975, 4, 1},
281 {976, 140, 1}, {977, 142, 1}, {981, 146, 1},
282 {982, 144, 1}, {984, 1, 24}, {1008, 136, 1},
283 {1009, 138, 1}, {1012, 130, 1}, {1013, 128, 1},
284 {1015, 0, 1}, {1017, 152, 1}, {1018, 0, 1},
285 {1021, 110, 3}, {1024, 34, 16}, {1040, 14, 32},
286 {1120, 1, 34}, {1162, 1, 54}, {1216, 6, 1},
287 {1217, 1, 14}, {1232, 1, 88}, {1329, 22, 38},
288 {4256, 66, 38}, {4295, 66, 1}, {4301, 66, 1},
289 {7680, 1, 150}, {7835, 132, 1}, {7838, 96, 1},
290 {7840, 1, 96}, {7944, 150, 8}, {7960, 150, 6},
291 {7976, 150, 8}, {7992, 150, 8}, {8008, 150, 6},
292 {8025, 151, 8}, {8040, 150, 8}, {8072, 150, 8},
293 {8088, 150, 8}, {8104, 150, 8}, {8120, 150, 2},
294 {8122, 126, 2}, {8124, 148, 1}, {8126, 100, 1},
295 {8136, 124, 4}, {8140, 148, 1}, {8152, 150, 2},
296 {8154, 120, 2}, {8168, 150, 2}, {8170, 118, 2},
297 {8172, 152, 1}, {8184, 112, 2}, {8186, 114, 2},
298 {8188, 148, 1}, {8486, 98, 1}, {8490, 92, 1},
299 {8491, 94, 1}, {8498, 12, 1}, {8544, 8, 16},
300 {8579, 0, 1}, {9398, 10, 26}, {11264, 22, 47},
301 {11360, 0, 1}, {11362, 88, 1}, {11363, 102, 1},
302 {11364, 90, 1}, {11367, 1, 6}, {11373, 84, 1},
303 {11374, 86, 1}, {11375, 80, 1}, {11376, 82, 1},
304 {11378, 0, 1}, {11381, 0, 1}, {11390, 78, 2},
305 {11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1},
306 {42560, 1, 46}, {42624, 1, 24}, {42786, 1, 14},
307 {42802, 1, 62}, {42873, 1, 4}, {42877, 76, 1},
308 {42878, 1, 10}, {42891, 0, 1}, {42893, 74, 1},
309 {42896, 1, 4}, {42912, 1, 10}, {42922, 72, 1},
310 {65313, 14, 26},
 
 
311 };
312 static const unsigned short aiOff[] = {
313 1, 2, 8, 15, 16, 26, 28, 32,
314 37, 38, 40, 48, 63, 64, 69, 71,
315 79, 80, 116, 202, 203, 205, 206, 207,
316 209, 210, 211, 213, 214, 217, 218, 219,
317 775, 7264, 10792, 10795, 23228, 23256, 30204, 54721,
318 54753, 54754, 54756, 54787, 54793, 54809, 57153, 57274,
319 57921, 58019, 58363, 61722, 65268, 65341, 65373, 65406,
320 65408, 65410, 65415, 65424, 65436, 65439, 65450, 65462,
321 65472, 65476, 65478, 65480, 65482, 65488, 65506, 65511,
322 65514, 65521, 65527, 65528, 65529,
 
323 };
324
325 int ret = c;
326
327 assert( c>=0 );
@@ -354,12 +363,15 @@
354 }
355 }
356
357 if( bRemoveDiacritic ) ret = unicode_remove_diacritic(ret);
358 }
359
360 else if( c>=66560 && c<66600 ){
361 ret = c + 40;
 
 
 
362 }
363
364 return ret;
365 }
366
--- src/unicode.c
+++ src/unicode.c
@@ -31,101 +31,107 @@
31 int unicode_isalnum(int c){
32 /* Each unsigned integer in the following array corresponds to a contiguous
33 ** range of unicode codepoints that are not either letters or numbers (i.e.
34 ** codepoints for which this function should return 0).
35 **
36 ** The most significant 22 bits in each 32-bit value contain the first
37 ** codepoint in the range. The least significant 10 bits are used to store
38 ** the size of the range (always at least 1). In other words, the value
39 ** ((C<<22) + N) represents a range of N codepoints starting with codepoint
40 ** C. It is not possible to represent a range larger than 1023 codepoints
41 ** using this format.
42 */
43 static const unsigned int aEntry[] = {
44 0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
45 0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
46 0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
47 0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
48 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163403,
49 0x00164437, 0x0017CC02, 0x0018001D, 0x00187802, 0x00192C15,
50 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F, 0x001B9C07,
51 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401, 0x001CC01B,
52 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804, 0x00206C09,
53 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403, 0x00217801,
54 0x00239020, 0x0024E803, 0x0024F812, 0x00254407, 0x00258804,
55 0x0025C001, 0x00260403, 0x0026F001, 0x0026F807, 0x00271C02,
56 0x00272C03, 0x00275C01, 0x00278802, 0x0027C802, 0x0027E802,
57 0x00280403, 0x0028F001, 0x0028F805, 0x00291C02, 0x00292C03,
58 0x00294401, 0x0029C002, 0x0029D401, 0x002A0403, 0x002AF001,
59 0x002AF808, 0x002B1C03, 0x002B2C03, 0x002B8802, 0x002BC002,
60 0x002C0403, 0x002CF001, 0x002CF807, 0x002D1C02, 0x002D2C03,
61 0x002D5802, 0x002D8802, 0x002DC001, 0x002E0801, 0x002EF805,
62 0x002F1803, 0x002F2804, 0x002F5C01, 0x002FCC08, 0x00300004,
63 0x0030F807, 0x00311803, 0x00312804, 0x00315402, 0x00318802,
64 0x0031FC01, 0x00320403, 0x0032F001, 0x0032F807, 0x00331803,
65 0x00332804, 0x00335402, 0x00338802, 0x00340403, 0x0034F807,
66 0x00351803, 0x00352804, 0x00355C01, 0x00358802, 0x0035E401,
67 0x00360802, 0x00372801, 0x00373C06, 0x00375801, 0x00376008,
68 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01, 0x00391C09,
69 0x00396802, 0x003AC401, 0x003AD006, 0x003AEC02, 0x003B2006,
70 0x003C041F, 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424,
71 0x003EF80F, 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804,
72 0x00417803, 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C,
73 0x00423C01, 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A,
74 0x00500001, 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03,
75 0x005C4803, 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023,
76 0x005F6004, 0x005F7401, 0x0060000F, 0x0062A401, 0x0064800C,
77 0x0064C00C, 0x00650001, 0x00651002, 0x0066C011, 0x00672002,
78 0x00677822, 0x00685C05, 0x00687802, 0x0069540A, 0x0069801D,
79 0x0069FC01, 0x006A8007, 0x006AA006, 0x006AC00F, 0x006C0005,
80 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D, 0x006F980E,
81 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802, 0x00730008,
82 0x00734019, 0x0073B401, 0x0073C803, 0x0073E002, 0x00770036,
83 0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403,
84 0x007FB403, 0x007FF402, 0x00800065, 0x0081980A, 0x0081E805,
85 0x00822805, 0x0082801E, 0x00834021, 0x00840002, 0x00840C04,
86 0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401,
87 0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005,
88 0x00852804, 0x00853C01, 0x0086426B, 0x00900027, 0x0091000B,
89 0x0092704E, 0x00940276, 0x009E53E0, 0x00ADD820, 0x00AE6022,
90 0x00AEF40C, 0x00AF2808, 0x00B39406, 0x00B3BC03, 0x00B3E404,
91 0x00B3F802, 0x00B5C001, 0x00B5FC01, 0x00B7804F, 0x00B8C013,
92 0x00BA001A, 0x00BA6C59, 0x00BC00D6, 0x00BFC00C, 0x00C00005,
93 0x00C02019, 0x00C0A807, 0x00C0D802, 0x00C0F403, 0x00C26404,
94 0x00C28001, 0x00C3EC01, 0x00C64002, 0x00C6580A, 0x00C70024,
95 0x00C8001F, 0x00C8A81E, 0x00C94001, 0x00C98020, 0x00CA2827,
96 0x00CB003F, 0x00CC0100, 0x01370040, 0x02924037, 0x0293F802,
97 0x02983403, 0x0299BC10, 0x029A7C01, 0x029BC008, 0x029C0017,
98 0x029C8002, 0x029E2402, 0x02A00801, 0x02A01801, 0x02A02C01,
99 0x02A08C09, 0x02A0D804, 0x02A1D004, 0x02A20002, 0x02A2D011,
100 0x02A33802, 0x02A38012, 0x02A3E003, 0x02A4980A, 0x02A51C0D,
101 0x02A57C01, 0x02A60004, 0x02A6CC1B, 0x02A77802, 0x02A79401,
102 0x02A8A40E, 0x02A90C01, 0x02A93002, 0x02A97004, 0x02A9DC03,
103 0x02A9EC03, 0x02AAC001, 0x02AAC803, 0x02AADC02, 0x02AAF802,
104 0x02AB0401, 0x02AB7802, 0x02ABAC07, 0x02ABD402, 0x02AD6C01,
105 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02, 0x037FFC01,
106 0x03EC7801, 0x03ECA401, 0x03EEC810, 0x03F4F802, 0x03F7F002,
107 0x03F8001A, 0x03F8800E, 0x03F8C023, 0x03F95013, 0x03F9A004,
108 0x03FBFC01, 0x03FC040F, 0x03FC6807, 0x03FCEC06, 0x03FD6C0B,
109 0x03FF8007, 0x03FFA007, 0x03FFE405, 0x04040003, 0x0404DC09,
110 0x0405E411, 0x04063001, 0x0406400C, 0x04068001, 0x0407402E,
111 0x040B8001, 0x040DD805, 0x040E7C01, 0x040F4001, 0x0415BC01,
112 0x04215C01, 0x0421DC02, 0x04247C01, 0x0424FC01, 0x04280403,
113 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01, 0x04294009,
114 0x0429FC01, 0x042B2001, 0x042B9402, 0x042BC007, 0x042CE407,
115 0x042E6404, 0x04400003, 0x0440E016, 0x0441FC04, 0x0442C012,
116 0x04440003, 0x04449C0E, 0x04450004, 0x0445CC03, 0x04460003,
117 0x0446CC0E, 0x04471404, 0x04473401, 0x0448B012, 0x044B7C0C,
118 0x044C0403, 0x044CF001, 0x044CF807, 0x044D1C02, 0x044D2C03,
119 0x044D5C01, 0x044D8802, 0x044D9807, 0x044DC005, 0x0452C014,
120 0x04531801, 0x0456BC07, 0x0456E012, 0x0458C014, 0x045AAC0D,
121 0x0491C005, 0x05A9B802, 0x05ABC006, 0x05ACC010, 0x05AD1002,
122 0x05BD442E, 0x05BE3C04, 0x06F27008, 0x074000F6, 0x07440027,
123 0x0744A4B5, 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01,
124 0x075BEC01, 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01,
125 0x075E2401, 0x075EA401, 0x075F0C01, 0x07A34007, 0x07BBC002,
126 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F, 0x07C3040F,
127 0x07C34425, 0x07C4401F, 0x07C4C03C, 0x07C5C02B, 0x07C7981D,
128 0x07C8402B, 0x07C90009, 0x07C94002, 0x07CC002D, 0x07CCC04E,
129 0x07CE004F, 0x07CF5024, 0x07D000FF, 0x07D4004B, 0x07D5402A,
130 0x07D5EC29, 0x07D6949E, 0x07D9148B, 0x07DB800D, 0x07DBC004,
131 0x07DC0074, 0x07DE0055, 0x07E0000C, 0x07E04038, 0x07E1400A,
132 0x07E18028, 0x07E2401E, 0x38000401, 0x38008060, 0x380400F0,
133 };
134 static const unsigned int aAscii[4] = {
135 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
136 };
137
@@ -160,35 +166,35 @@
166 ** SMALL LETTER E WITH DIAERESIS" - return 65 ("LATIN SMALL LETTER
167 ** E"). The resuls of passing a codepoint that corresponds to an
168 ** uppercase letter are undefined.
169 */
170 static int unicode_remove_diacritic(int c){
171 static const unsigned short aDia[] = {
172 0, 1797, 1848, 1859, 1891, 1928, 1940, 1995,
173 2024, 2040, 2060, 2110, 2168, 2206, 2264, 2286,
174 2344, 2383, 2472, 2488, 2516, 2596, 2668, 2732,
175 2782, 2842, 2894, 2954, 2984, 3000, 3028, 3336,
176 3456, 3696, 3712, 3728, 3744, 3896, 3912, 3928,
177 3968, 4008, 4040, 4106, 4138, 4170, 4202, 4234,
178 4266, 4296, 4312, 4344, 4408, 4424, 4472, 4504,
179 6148, 6198, 6264, 6280, 6360, 6429, 6505, 6529,
180 61448, 61468, 61534, 61592, 61642, 61688, 61704, 61726,
181 61784, 61800, 61836, 61880, 61914, 61948, 61998, 62122,
182 62154, 62200, 62218, 62302, 62364, 62442, 62478, 62536,
183 62554, 62584, 62604, 62640, 62648, 62656, 62664, 62730,
184 62924, 63050, 63082, 63274, 63390,
185 };
186 static const char aChar[] = {
187 '\0', 'a', 'c', 'e', 'i', 'n', 'o', 'u', 'y', 'y', 'a', 'c',
188 'd', 'e', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'n', 'o', 'r',
189 's', 't', 'u', 'u', 'w', 'y', 'z', 'o', 'u', 'a', 'i', 'o',
190 'u', 'g', 'k', 'o', 'j', 'g', 'n', 'a', 'e', 'i', 'o', 'r',
191 'u', 's', 't', 'h', 'a', 'e', 'o', 'y', '\0', '\0', '\0', '\0',
192 '\0', '\0', '\0', '\0', 'a', 'b', 'd', 'd', 'e', 'f', 'g', 'h',
193 'h', 'i', 'k', 'l', 'l', 'm', 'n', 'p', 'r', 'r', 's', 't',
194 'u', 'v', 'w', 'w', 'x', 'y', 'z', 'h', 't', 'w', 'y', 'a',
195 'e', 'i', 'o', 'u', 'y',
196 };
197
198 unsigned int key = (((unsigned int)c)<<3) | 0x00000007;
199 int iRes = 0;
200 int iHi = sizeof(aDia)/sizeof(aDia[0]) - 1;
@@ -253,12 +259,12 @@
259 unsigned char flags;
260 unsigned char nRange;
261 } aEntry[] = {
262 {65, 14, 26}, {181, 64, 1}, {192, 14, 23},
263 {216, 14, 7}, {256, 1, 48}, {306, 1, 6},
264 {313, 1, 16}, {330, 1, 46}, {376, 126, 1},
265 {377, 1, 6}, {383, 114, 1}, {385, 50, 1},
266 {386, 1, 4}, {390, 44, 1}, {391, 0, 1},
267 {393, 42, 2}, {395, 0, 1}, {398, 32, 1},
268 {399, 38, 1}, {400, 40, 1}, {401, 0, 1},
269 {403, 42, 1}, {404, 46, 1}, {406, 52, 1},
270 {407, 48, 1}, {408, 0, 1}, {412, 52, 1},
@@ -267,61 +273,64 @@
273 {428, 0, 1}, {430, 60, 1}, {431, 0, 1},
274 {433, 58, 2}, {435, 1, 4}, {439, 62, 1},
275 {440, 0, 1}, {444, 0, 1}, {452, 2, 1},
276 {453, 0, 1}, {455, 2, 1}, {456, 0, 1},
277 {458, 2, 1}, {459, 1, 18}, {478, 1, 18},
278 {497, 2, 1}, {498, 1, 4}, {502, 132, 1},
279 {503, 144, 1}, {504, 1, 40}, {544, 120, 1},
280 {546, 1, 18}, {570, 70, 1}, {571, 0, 1},
281 {573, 118, 1}, {574, 68, 1}, {577, 0, 1},
282 {579, 116, 1}, {580, 28, 1}, {581, 30, 1},
283 {582, 1, 10}, {837, 36, 1}, {880, 1, 4},
284 {886, 0, 1}, {895, 36, 1}, {902, 18, 1},
285 {904, 16, 3}, {908, 26, 1}, {910, 24, 2},
286 {913, 14, 17}, {931, 14, 9}, {962, 0, 1},
287 {975, 4, 1}, {976, 150, 1}, {977, 152, 1},
288 {981, 156, 1}, {982, 154, 1}, {984, 1, 24},
289 {1008, 146, 1}, {1009, 148, 1}, {1012, 140, 1},
290 {1013, 138, 1}, {1015, 0, 1}, {1017, 162, 1},
291 {1018, 0, 1}, {1021, 120, 3}, {1024, 34, 16},
292 {1040, 14, 32}, {1120, 1, 34}, {1162, 1, 54},
293 {1216, 6, 1}, {1217, 1, 14}, {1232, 1, 96},
294 {1329, 22, 38}, {4256, 66, 38}, {4295, 66, 1},
295 {4301, 66, 1}, {7680, 1, 150}, {7835, 142, 1},
296 {7838, 106, 1}, {7840, 1, 96}, {7944, 160, 8},
297 {7960, 160, 6}, {7976, 160, 8}, {7992, 160, 8},
298 {8008, 160, 6}, {8025, 161, 8}, {8040, 160, 8},
299 {8072, 160, 8}, {8088, 160, 8}, {8104, 160, 8},
300 {8120, 160, 2}, {8122, 136, 2}, {8124, 158, 1},
301 {8126, 110, 1}, {8136, 134, 4}, {8140, 158, 1},
302 {8152, 160, 2}, {8154, 130, 2}, {8168, 160, 2},
303 {8170, 128, 2}, {8172, 162, 1}, {8184, 122, 2},
304 {8186, 124, 2}, {8188, 158, 1}, {8486, 108, 1},
305 {8490, 102, 1}, {8491, 104, 1}, {8498, 12, 1},
306 {8544, 8, 16}, {8579, 0, 1}, {9398, 10, 26},
307 {11264, 22, 47}, {11360, 0, 1}, {11362, 98, 1},
308 {11363, 112, 1}, {11364, 100, 1}, {11367, 1, 6},
309 {11373, 94, 1}, {11374, 96, 1}, {11375, 90, 1},
310 {11376, 92, 1}, {11378, 0, 1}, {11381, 0, 1},
311 {11390, 88, 2}, {11392, 1, 100}, {11499, 1, 4},
312 {11506, 0, 1}, {42560, 1, 46}, {42624, 1, 28},
313 {42786, 1, 14}, {42802, 1, 62}, {42873, 1, 4},
314 {42877, 86, 1}, {42878, 1, 10}, {42891, 0, 1},
315 {42893, 82, 1}, {42896, 1, 4}, {42902, 1, 20},
316 {42922, 76, 1}, {42923, 72, 1}, {42924, 74, 1},
317 {42925, 78, 1}, {42928, 84, 1}, {42929, 80, 1},
318 {65313, 14, 26},
319 };
320 static const unsigned short aiOff[] = {
321 1, 2, 8, 15, 16, 26, 28, 32,
322 37, 38, 40, 48, 63, 64, 69, 71,
323 79, 80, 116, 202, 203, 205, 206, 207,
324 209, 210, 211, 213, 214, 217, 218, 219,
325 775, 7264, 10792, 10795, 23217, 23221, 23228, 23231,
326 23254, 23256, 23278, 30204, 54721, 54753, 54754, 54756,
327 54787, 54793, 54809, 57153, 57274, 57921, 58019, 58363,
328 61722, 65268, 65341, 65373, 65406, 65408, 65410, 65415,
329 65424, 65436, 65439, 65450, 65462, 65472, 65476, 65478,
330 65480, 65482, 65488, 65506, 65511, 65514, 65521, 65527,
331 65528, 65529,
332 };
333
334 int ret = c;
335
336 assert( c>=0 );
@@ -354,12 +363,15 @@
363 }
364 }
365
366 if( bRemoveDiacritic ) ret = unicode_remove_diacritic(ret);
367 }
368
369 else if( c>=66560 && c<66600 ){
370 ret = c + 40;
371 }
372 else if( c>=71840 && c<71872 ){
373 ret = c + 32;
374 }
375
376 return ret;
377 }
378
--- test/merge_renames.test
+++ test/merge_renames.test
@@ -1,8 +1,8 @@
11
#
22
# Tests for merging with renames
3
-#
3
+#
44
#
55
66
catch {exec $::fossilexe info} res
77
puts res=$res
88
if {![regexp {use --repository} $res]} {
@@ -169,11 +169,44 @@
169169
# Reported: Ticket [67176c3aa4] #
170170
######################################
171171
172172
# TO BE WRITTEN.
173173
174
+######################################
175
+# Test 5 #
176
+# Handle Rename/Add via Merge #
177
+######################################
178
+
179
+repo_init
180
+
181
+write_file f1 "old f1 line"
182
+fossil add f1
183
+fossil commit -m "base file"
184
+
185
+write_file f3 "f3 line"
186
+fossil add f3
187
+fossil commit -m "branch file" -b branch_for_f3
188
+
189
+fossil update trunk
190
+fossil mv f1 f2
191
+file rename -force f1 f2
192
+write_file f1 "new f1 line"
193
+fossil add f1
194
+fossil commit -m "rename and add file with old name"
195
+
196
+fossil update branch_for_f3
197
+fossil merge trunk
198
+fossil commit -m "trunk merged, should have 3 files"
199
+
200
+fossil ls
201
+
202
+test merge_renames-5 {[string map [list \r\n \n] [string trim $RESULT]] eq {f1
203
+f2
204
+f3}}
174205
206
+######################################
207
+#
175208
# Tests for troubles not specifically linked with renames but that I'd like to
176209
# write:
177210
# [c26c63eb1b] - 'merge --backout' does not handle conflicts properly
178
-# [953031915f] - Lack of warning when overwriting extra files
179
-# [4df5f38f1e] - Troubles merging a file delete with a file change
211
+# [953031915f] - Lack of warning when overwriting extra files
212
+# [4df5f38f1e] - Troubles merging a file delete with a file change
180213
--- test/merge_renames.test
+++ test/merge_renames.test
@@ -1,8 +1,8 @@
1 #
2 # Tests for merging with renames
3 #
4 #
5
6 catch {exec $::fossilexe info} res
7 puts res=$res
8 if {![regexp {use --repository} $res]} {
@@ -169,11 +169,44 @@
169 # Reported: Ticket [67176c3aa4] #
170 ######################################
171
172 # TO BE WRITTEN.
173
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
 
 
175 # Tests for troubles not specifically linked with renames but that I'd like to
176 # write:
177 # [c26c63eb1b] - 'merge --backout' does not handle conflicts properly
178 # [953031915f] - Lack of warning when overwriting extra files
179 # [4df5f38f1e] - Troubles merging a file delete with a file change
180
--- test/merge_renames.test
+++ test/merge_renames.test
@@ -1,8 +1,8 @@
1 #
2 # Tests for merging with renames
3 #
4 #
5
6 catch {exec $::fossilexe info} res
7 puts res=$res
8 if {![regexp {use --repository} $res]} {
@@ -169,11 +169,44 @@
169 # Reported: Ticket [67176c3aa4] #
170 ######################################
171
172 # TO BE WRITTEN.
173
174 ######################################
175 # Test 5 #
176 # Handle Rename/Add via Merge #
177 ######################################
178
179 repo_init
180
181 write_file f1 "old f1 line"
182 fossil add f1
183 fossil commit -m "base file"
184
185 write_file f3 "f3 line"
186 fossil add f3
187 fossil commit -m "branch file" -b branch_for_f3
188
189 fossil update trunk
190 fossil mv f1 f2
191 file rename -force f1 f2
192 write_file f1 "new f1 line"
193 fossil add f1
194 fossil commit -m "rename and add file with old name"
195
196 fossil update branch_for_f3
197 fossil merge trunk
198 fossil commit -m "trunk merged, should have 3 files"
199
200 fossil ls
201
202 test merge_renames-5 {[string map [list \r\n \n] [string trim $RESULT]] eq {f1
203 f2
204 f3}}
205
206 ######################################
207 #
208 # Tests for troubles not specifically linked with renames but that I'd like to
209 # write:
210 # [c26c63eb1b] - 'merge --backout' does not handle conflicts properly
211 # [953031915f] - Lack of warning when overwriting extra files
212 # [4df5f38f1e] - Troubles merging a file delete with a file change
213
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -89,11 +89,11 @@
8989
9090
# define the sqlite shell files, which need special flags on compile
9191
SQLITESHELLSRC=shell.c
9292
ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
9393
SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94
-SQLITESHELLDEFINES=-Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
94
+SQLITESHELLDEFINES=-Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
9595
9696
# define the th scripting files, which need special flags on compile
9797
THSRC=th.c th_lang.c
9898
ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
9999
THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100100
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -89,11 +89,11 @@
89
90 # define the sqlite shell files, which need special flags on compile
91 SQLITESHELLSRC=shell.c
92 ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
93 SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94 SQLITESHELLDEFINES=-Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
95
96 # define the th scripting files, which need special flags on compile
97 THSRC=th.c th_lang.c
98 ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
99 THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -89,11 +89,11 @@
89
90 # define the sqlite shell files, which need special flags on compile
91 SQLITESHELLSRC=shell.c
92 ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
93 SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94 SQLITESHELLDEFINES=-Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
95
96 # define the th scripting files, which need special flags on compile
97 THSRC=th.c th_lang.c
98 ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
99 THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -26,11 +26,11 @@
2626
TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
2727
LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32
2828
2929
SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
3030
31
-SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
31
+SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
3232
3333
SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
3434
3535
OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\shun$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
3636
3737
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -26,11 +26,11 @@
26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32
28
29 SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
30
31 SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\shun$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -26,11 +26,11 @@
26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32
28
29 SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
30
31 SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\shun$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -1780,10 +1780,11 @@
17801780
SHELL_OPTIONS = -Dmain=sqlite3_shell \
17811781
-DSQLITE_OMIT_LOAD_EXTENSION=1 \
17821782
-DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
17831783
-DSQLITE_SHELL_DBNAME_PROC=fossil_open \
17841784
-Daccess=file_access \
1785
+ -Dsystem=fossil_system \
17851786
-Dgetenv=fossil_getenv \
17861787
-Dfopen=fossil_fopen
17871788
17881789
$(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c $(SRCDIR)/../win/Makefile.mingw
17891790
$(XTCC) $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o
17901791
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -1780,10 +1780,11 @@
1780 SHELL_OPTIONS = -Dmain=sqlite3_shell \
1781 -DSQLITE_OMIT_LOAD_EXTENSION=1 \
1782 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
1783 -DSQLITE_SHELL_DBNAME_PROC=fossil_open \
1784 -Daccess=file_access \
 
1785 -Dgetenv=fossil_getenv \
1786 -Dfopen=fossil_fopen
1787
1788 $(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c $(SRCDIR)/../win/Makefile.mingw
1789 $(XTCC) $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o
1790
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -1780,10 +1780,11 @@
1780 SHELL_OPTIONS = -Dmain=sqlite3_shell \
1781 -DSQLITE_OMIT_LOAD_EXTENSION=1 \
1782 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
1783 -DSQLITE_SHELL_DBNAME_PROC=fossil_open \
1784 -Daccess=file_access \
1785 -Dsystem=fossil_system \
1786 -Dgetenv=fossil_getenv \
1787 -Dfopen=fossil_fopen
1788
1789 $(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c $(SRCDIR)/../win/Makefile.mingw
1790 $(XTCC) $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o
1791
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -1780,10 +1780,11 @@
17801780
SHELL_OPTIONS = -Dmain=sqlite3_shell \
17811781
-DSQLITE_OMIT_LOAD_EXTENSION=1 \
17821782
-DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
17831783
-DSQLITE_SHELL_DBNAME_PROC=fossil_open \
17841784
-Daccess=file_access \
1785
+ -Dsystem=fossil_system \
17851786
-Dgetenv=fossil_getenv \
17861787
-Dfopen=fossil_fopen
17871788
17881789
$(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c $(SRCDIR)/../win/Makefile.mingw.mistachkin
17891790
$(XTCC) $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o
17901791
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -1780,10 +1780,11 @@
1780 SHELL_OPTIONS = -Dmain=sqlite3_shell \
1781 -DSQLITE_OMIT_LOAD_EXTENSION=1 \
1782 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
1783 -DSQLITE_SHELL_DBNAME_PROC=fossil_open \
1784 -Daccess=file_access \
 
1785 -Dgetenv=fossil_getenv \
1786 -Dfopen=fossil_fopen
1787
1788 $(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c $(SRCDIR)/../win/Makefile.mingw.mistachkin
1789 $(XTCC) $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o
1790
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -1780,10 +1780,11 @@
1780 SHELL_OPTIONS = -Dmain=sqlite3_shell \
1781 -DSQLITE_OMIT_LOAD_EXTENSION=1 \
1782 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
1783 -DSQLITE_SHELL_DBNAME_PROC=fossil_open \
1784 -Daccess=file_access \
1785 -Dsystem=fossil_system \
1786 -Dgetenv=fossil_getenv \
1787 -Dfopen=fossil_fopen
1788
1789 $(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c $(SRCDIR)/../win/Makefile.mingw.mistachkin
1790 $(XTCC) $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o
1791
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -111,10 +111,11 @@
111111
SHELL_OPTIONS = /Dmain=sqlite3_shell \
112112
/DSQLITE_OMIT_LOAD_EXTENSION=1 \
113113
/DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
114114
/DSQLITE_SHELL_DBNAME_PROC=fossil_open \
115115
/Daccess=file_access \
116
+ /Dsystem=fossil_system \
116117
/Dgetenv=fossil_getenv \
117118
/Dfopen=fossil_fopen
118119
119120
SRC = add_.c \
120121
allrepo_.c \
121122
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -111,10 +111,11 @@
111 SHELL_OPTIONS = /Dmain=sqlite3_shell \
112 /DSQLITE_OMIT_LOAD_EXTENSION=1 \
113 /DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
114 /DSQLITE_SHELL_DBNAME_PROC=fossil_open \
115 /Daccess=file_access \
 
116 /Dgetenv=fossil_getenv \
117 /Dfopen=fossil_fopen
118
119 SRC = add_.c \
120 allrepo_.c \
121
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -111,10 +111,11 @@
111 SHELL_OPTIONS = /Dmain=sqlite3_shell \
112 /DSQLITE_OMIT_LOAD_EXTENSION=1 \
113 /DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) \
114 /DSQLITE_SHELL_DBNAME_PROC=fossil_open \
115 /Daccess=file_access \
116 /Dsystem=fossil_system \
117 /Dgetenv=fossil_getenv \
118 /Dfopen=fossil_fopen
119
120 SRC = add_.c \
121 allrepo_.c \
122
+29 -30
--- www/branching.wiki
+++ www/branching.wiki
@@ -19,19 +19,19 @@
1919
2020
The arrows in figure 1 show the evolution of a project. The initial
2121
check-in is 1. Check-in 2 is derived from 1. In other words, check-in 2
2222
was created by making edits to check-in 1 and then committing those edits.
2323
We say that 2 is a <i>child</i> of 1
24
-and that 1 is a <i>parent</i> of 2.
24
+and that 1 is a <i>parent</i> of 2.
2525
Check-in 3 is derived from check-in 2, making
2626
3 a child of 2. We say that 3 is a <i>descendant</i> of both 1 and 2 and that 1
27
-and 2 are both <i>ancestors</i> of 3.
27
+and 2 are both <i>ancestors</i> of 3.
2828
2929
<a name="dag"></a>
3030
<h2>DAGs</h2>
3131
32
-The graph of check-ins is a
32
+The graph of check-ins is a
3333
[http://en.wikipedia.org/wiki/Directed_acyclic_graph | directed acyclic graph]
3434
commonly shortened to <i>DAG</i>. Check-in 1 is the <i>root</i> of the DAG
3535
since it has no ancestors. Check-in 4 is a <i>leaf</i> of the DAG since
3636
it has no descendants. (We will give a more precise definition later of
3737
"leaf.")
@@ -47,29 +47,29 @@
4747
</td></tr></table></center>
4848
4949
The graph in figure 2 has two leaves: check-ins 3 and 4. Check-in 2 has
5050
two children, check-ins 3 and 4. We call this state a <i>fork</i>.
5151
52
-Fossil tries to prevent forks. Suppose two programmers named Alice and
53
-Bob are each editing check-in 2 separately. Alice finishes her edits
54
-first and commits her changes, resulting in check-in 3. Later, when Bob
55
-attempts to commit his changes, fossil verifies that check-in 2 is still
56
-a leaf. Fossil sees that check-in 3 has occurred and aborts Bob's commit
57
-attempt with a message "would fork." This allows Bob to do a "fossil
58
-update" which pulls in Alice's changes, merging them into his own
59
-changes. After merging, Bob commits check-in 4 as a child of check-in 3.
60
-The result is a linear graph as shown in figure 1. This is how CVS
61
-works. This is also how fossil works in [./concepts.wiki#workflow |
62
-"autosync"] mode.
52
+Fossil tries to prevent forks. Suppose two programmers named Alice and
53
+Bob are each editing check-in 2 separately. Alice finishes her edits
54
+first and commits her changes, resulting in check-in 3. Later, when Bob
55
+attempts to commit his changes, fossil verifies that check-in 2 is still
56
+a leaf. Fossil sees that check-in 3 has occurred and aborts Bob's commit
57
+attempt with a message "would fork." This allows Bob to do a "fossil
58
+update" which pulls in Alice's changes, merging them into his own
59
+changes. After merging, Bob commits check-in 4 as a child of check-in 3.
60
+The result is a linear graph as shown in figure 1. This is how CVS
61
+works. This is also how fossil works in [./concepts.wiki#workflow |
62
+"autosync"] mode.
6363
6464
But perhaps Bob is off-network when he does his commit, so he
6565
has no way of knowing that Alice has already committed her changes.
6666
Or, it could be that Bob has turned off "autosync" mode in Fossil. Or,
6767
maybe Bob just doesn't want to merge in Alice's changes before he has
68
-saved his own, so he forces the commit to occur using the "--force" option
69
-to the fossil <b>commit</b> command. For any of these reasons, two commits against
70
-check-in 2 have occurred and now the DAG has two leaves.
68
+saved his own, so he forces the commit to occur using the "--allow-fork"
69
+option to the fossil <b>commit</b> command. For any of these reasons,
70
+two commits against check-in 2 have occurred and now the DAG has two leaves.
7171
7272
So which version of the project is the "latest" in the sense of having
7373
the most features and the most bug fixes? When there is more than
7474
one leaf in the graph, you don't really know. So we like to have
7575
graphs with a single leaf.
@@ -86,11 +86,11 @@
8686
</td></tr></table></center>
8787
8888
Check-in 5 is a child of check-in 3 because it was created by editing
8989
check-in 3. But check-in 5 also inherits the changes from check-in 4 by
9090
virtue of the merge. So we say that check-in 5 is a <i>merge child</i>
91
-of check-in 4 and that it is a <i>direct child</i> of check-in 3.
91
+of check-in 4 and that it is a <i>direct child</i> of check-in 3.
9292
The graph is now back to a single leaf (check-in 5).
9393
9494
We have already seen that if fossil is in autosync mode then Bob would
9595
have been warned about the potential fork the first time he tried to
9696
commit check-in 4. If Bob had updated his local check-out to merge in
@@ -112,11 +112,11 @@
112112
instead of as a separate manual step. We will not take sides in that
113113
debate. We will simply point out that fossil enables you to do it either way.
114114
115115
<h2>Forking Versus Branching</h2>
116116
117
-Having more than one leaf in the check-in DAG is called a "fork." This
117
+Having more than one leaf in the check-in DAG is called a "fork." This
118118
is usually undesirable and either avoided entirely,
119119
as in figure 1, or else quickly resolved as shown in figure 3.
120120
But sometimes, one does want to have multiple leaves. For example, a project
121121
might have one leaf that is the latest version of the project under
122122
development and another leaf that is the latest version that has been
@@ -131,19 +131,19 @@
131131
<img src="branch04.gif" width=426 height=123><br>
132132
Figure 4
133133
</td></tr></table></center>
134134
135135
The hypothetical scenario of figure 4 is this: The project starts and
136
-progresses to a point where (at check-in 2)
136
+progresses to a point where (at check-in 2)
137137
it is ready to enter testing for its first release.
138138
In a real project, of course, there might be hundreds or thousands of
139139
check-ins before a project reaches this point, but for simplicity of
140140
presentation we will say that the project is ready after check-in 2.
141141
The project then splits into two branches that are used by separate
142142
teams. The testing team, using the blue branch, finds and fixes a few
143143
bugs. This is shown by check-ins 6 and 9. Meanwhile the development
144
-team, working on the top uncolored branch,
144
+team, working on the top uncolored branch,
145145
is busy adding features for the second
146146
release. Of course, the development team would like to take advantage of
147147
the bug fixes implemented by the testing team. So periodically, the
148148
changes in the test branch are merged into the dev branch. This is
149149
shown by the dashed merge arrows between check-ins 6 and 7 and between
@@ -174,13 +174,13 @@
174174
175175
A <i>tag</i> is a name that is attached to a check-in. A
176176
<i>property</i> is a name/value pair. Internally, fossil implements
177177
tags as properties with a NULL value. So, tags and properties really
178178
are much the same thing, and henceforth we will use the word "tag"
179
-to mean either a tag or a property.
179
+to mean either a tag or a property.
180180
181
-A tag can be a one-time tag, a propagating tag or a cancellation tag.
181
+A tag can be a one-time tag, a propagating tag or a cancellation tag.
182182
A one-time tag only applies to the check-in to which it is attached. A
183183
propagating tag applies to the check-in to which it is attached and also
184184
to all direct descendants of that check-in. A <i>direct descendant</i>
185185
is a descendant through direct children. Tags propagation does not
186186
cross merges. Tag propagation also stops as soon
@@ -187,14 +187,13 @@
187187
as it encounters another check-in with the same tag. A cancellation tag
188188
is attached to a single check-in in order to either override a one-time
189189
tag that was previously placed on that same check-in, or to block
190190
tag propagation from an ancestor.
191191
192
-Every repository is created with a single empty check-in that has two
193
-propagating tags. In figure 5, that initial empty check-in is check-in 1.
194
-The <b>branch</b> tag tells (by its value)
195
-what branch the check-in is a member of.
192
+The initial checkin of every repository has two propagating tags. In
193
+figure 5, that initial check-in is check-in 1. The <b>branch</b> tag
194
+tells (by its value) what branch the check-in is a member of.
196195
The default branch is called "trunk." All tags that begin with "<b>sym-</b>"
197196
are symbolic name tags. When a symbolic name tag is attached to a
198197
check-in, that allows you to refer to that check-in by its symbolic
199198
name rather than by its 40-character SHA1 hash name. When a symbolic name
200199
tag propagates (as does the <b>sym-trunk</b> tag) then referring to that
@@ -212,12 +211,12 @@
212211
213212
Check-in 4 also has a <b>sym-test</b> tag, which gives the symbolic name
214213
"test" to check-ins 4, 6, and 9. Because tags do not propagate across
215214
merges, check-ins 7, 8, and 10 do not inherit the <b>sym-test</b> tag and
216215
are hence not known by the name "test."
217
-To prevent the <b>sym-trunk</b> tag from propagating from check-in 1
218
-into check-ins 4, 6, and 9, there is a cancellation tag for
216
+To prevent the <b>sym-trunk</b> tag from propagating from check-in 1
217
+into check-ins 4, 6, and 9, there is a cancellation tag for
219218
<b>sym-trunk</b> on check-in 4. The net effect is that
220219
check-ins on the trunk go by the symbolic name of "trunk" and check-ins
221220
on the test branch go by the symbolic name "test."
222221
223222
The <b>bgcolor=blue</b> tag on check-in 4 causes the background color
@@ -225,11 +224,11 @@
225224
226225
Figure 5 also shows two one-time tags on check-in 9. (The diagram does
227226
not make a graphical distinction between one-time and propagating tags.)
228227
The <b>sym-release-1.0</b> tag means that check-in 9 can be referred to
229228
using the more meaningful name "release-1.0." The <b>closed</b> tag means
230
-that check-in 9 is a "closed leaf." A closed leaf is a leaf that should
229
+that check-in 9 is a "closed leaf." A closed leaf is a leaf that should
231230
never have direct children.
232231
233232
<h2>Review Of Terminology</h2>
234233
235234
<blockquote><dl>
236235
--- www/branching.wiki
+++ www/branching.wiki
@@ -19,19 +19,19 @@
19
20 The arrows in figure 1 show the evolution of a project. The initial
21 check-in is 1. Check-in 2 is derived from 1. In other words, check-in 2
22 was created by making edits to check-in 1 and then committing those edits.
23 We say that 2 is a <i>child</i> of 1
24 and that 1 is a <i>parent</i> of 2.
25 Check-in 3 is derived from check-in 2, making
26 3 a child of 2. We say that 3 is a <i>descendant</i> of both 1 and 2 and that 1
27 and 2 are both <i>ancestors</i> of 3.
28
29 <a name="dag"></a>
30 <h2>DAGs</h2>
31
32 The graph of check-ins is a
33 [http://en.wikipedia.org/wiki/Directed_acyclic_graph | directed acyclic graph]
34 commonly shortened to <i>DAG</i>. Check-in 1 is the <i>root</i> of the DAG
35 since it has no ancestors. Check-in 4 is a <i>leaf</i> of the DAG since
36 it has no descendants. (We will give a more precise definition later of
37 "leaf.")
@@ -47,29 +47,29 @@
47 </td></tr></table></center>
48
49 The graph in figure 2 has two leaves: check-ins 3 and 4. Check-in 2 has
50 two children, check-ins 3 and 4. We call this state a <i>fork</i>.
51
52 Fossil tries to prevent forks. Suppose two programmers named Alice and
53 Bob are each editing check-in 2 separately. Alice finishes her edits
54 first and commits her changes, resulting in check-in 3. Later, when Bob
55 attempts to commit his changes, fossil verifies that check-in 2 is still
56 a leaf. Fossil sees that check-in 3 has occurred and aborts Bob's commit
57 attempt with a message "would fork." This allows Bob to do a "fossil
58 update" which pulls in Alice's changes, merging them into his own
59 changes. After merging, Bob commits check-in 4 as a child of check-in 3.
60 The result is a linear graph as shown in figure 1. This is how CVS
61 works. This is also how fossil works in [./concepts.wiki#workflow |
62 "autosync"] mode.
63
64 But perhaps Bob is off-network when he does his commit, so he
65 has no way of knowing that Alice has already committed her changes.
66 Or, it could be that Bob has turned off "autosync" mode in Fossil. Or,
67 maybe Bob just doesn't want to merge in Alice's changes before he has
68 saved his own, so he forces the commit to occur using the "--force" option
69 to the fossil <b>commit</b> command. For any of these reasons, two commits against
70 check-in 2 have occurred and now the DAG has two leaves.
71
72 So which version of the project is the "latest" in the sense of having
73 the most features and the most bug fixes? When there is more than
74 one leaf in the graph, you don't really know. So we like to have
75 graphs with a single leaf.
@@ -86,11 +86,11 @@
86 </td></tr></table></center>
87
88 Check-in 5 is a child of check-in 3 because it was created by editing
89 check-in 3. But check-in 5 also inherits the changes from check-in 4 by
90 virtue of the merge. So we say that check-in 5 is a <i>merge child</i>
91 of check-in 4 and that it is a <i>direct child</i> of check-in 3.
92 The graph is now back to a single leaf (check-in 5).
93
94 We have already seen that if fossil is in autosync mode then Bob would
95 have been warned about the potential fork the first time he tried to
96 commit check-in 4. If Bob had updated his local check-out to merge in
@@ -112,11 +112,11 @@
112 instead of as a separate manual step. We will not take sides in that
113 debate. We will simply point out that fossil enables you to do it either way.
114
115 <h2>Forking Versus Branching</h2>
116
117 Having more than one leaf in the check-in DAG is called a "fork." This
118 is usually undesirable and either avoided entirely,
119 as in figure 1, or else quickly resolved as shown in figure 3.
120 But sometimes, one does want to have multiple leaves. For example, a project
121 might have one leaf that is the latest version of the project under
122 development and another leaf that is the latest version that has been
@@ -131,19 +131,19 @@
131 <img src="branch04.gif" width=426 height=123><br>
132 Figure 4
133 </td></tr></table></center>
134
135 The hypothetical scenario of figure 4 is this: The project starts and
136 progresses to a point where (at check-in 2)
137 it is ready to enter testing for its first release.
138 In a real project, of course, there might be hundreds or thousands of
139 check-ins before a project reaches this point, but for simplicity of
140 presentation we will say that the project is ready after check-in 2.
141 The project then splits into two branches that are used by separate
142 teams. The testing team, using the blue branch, finds and fixes a few
143 bugs. This is shown by check-ins 6 and 9. Meanwhile the development
144 team, working on the top uncolored branch,
145 is busy adding features for the second
146 release. Of course, the development team would like to take advantage of
147 the bug fixes implemented by the testing team. So periodically, the
148 changes in the test branch are merged into the dev branch. This is
149 shown by the dashed merge arrows between check-ins 6 and 7 and between
@@ -174,13 +174,13 @@
174
175 A <i>tag</i> is a name that is attached to a check-in. A
176 <i>property</i> is a name/value pair. Internally, fossil implements
177 tags as properties with a NULL value. So, tags and properties really
178 are much the same thing, and henceforth we will use the word "tag"
179 to mean either a tag or a property.
180
181 A tag can be a one-time tag, a propagating tag or a cancellation tag.
182 A one-time tag only applies to the check-in to which it is attached. A
183 propagating tag applies to the check-in to which it is attached and also
184 to all direct descendants of that check-in. A <i>direct descendant</i>
185 is a descendant through direct children. Tags propagation does not
186 cross merges. Tag propagation also stops as soon
@@ -187,14 +187,13 @@
187 as it encounters another check-in with the same tag. A cancellation tag
188 is attached to a single check-in in order to either override a one-time
189 tag that was previously placed on that same check-in, or to block
190 tag propagation from an ancestor.
191
192 Every repository is created with a single empty check-in that has two
193 propagating tags. In figure 5, that initial empty check-in is check-in 1.
194 The <b>branch</b> tag tells (by its value)
195 what branch the check-in is a member of.
196 The default branch is called "trunk." All tags that begin with "<b>sym-</b>"
197 are symbolic name tags. When a symbolic name tag is attached to a
198 check-in, that allows you to refer to that check-in by its symbolic
199 name rather than by its 40-character SHA1 hash name. When a symbolic name
200 tag propagates (as does the <b>sym-trunk</b> tag) then referring to that
@@ -212,12 +211,12 @@
212
213 Check-in 4 also has a <b>sym-test</b> tag, which gives the symbolic name
214 "test" to check-ins 4, 6, and 9. Because tags do not propagate across
215 merges, check-ins 7, 8, and 10 do not inherit the <b>sym-test</b> tag and
216 are hence not known by the name "test."
217 To prevent the <b>sym-trunk</b> tag from propagating from check-in 1
218 into check-ins 4, 6, and 9, there is a cancellation tag for
219 <b>sym-trunk</b> on check-in 4. The net effect is that
220 check-ins on the trunk go by the symbolic name of "trunk" and check-ins
221 on the test branch go by the symbolic name "test."
222
223 The <b>bgcolor=blue</b> tag on check-in 4 causes the background color
@@ -225,11 +224,11 @@
225
226 Figure 5 also shows two one-time tags on check-in 9. (The diagram does
227 not make a graphical distinction between one-time and propagating tags.)
228 The <b>sym-release-1.0</b> tag means that check-in 9 can be referred to
229 using the more meaningful name "release-1.0." The <b>closed</b> tag means
230 that check-in 9 is a "closed leaf." A closed leaf is a leaf that should
231 never have direct children.
232
233 <h2>Review Of Terminology</h2>
234
235 <blockquote><dl>
236
--- www/branching.wiki
+++ www/branching.wiki
@@ -19,19 +19,19 @@
19
20 The arrows in figure 1 show the evolution of a project. The initial
21 check-in is 1. Check-in 2 is derived from 1. In other words, check-in 2
22 was created by making edits to check-in 1 and then committing those edits.
23 We say that 2 is a <i>child</i> of 1
24 and that 1 is a <i>parent</i> of 2.
25 Check-in 3 is derived from check-in 2, making
26 3 a child of 2. We say that 3 is a <i>descendant</i> of both 1 and 2 and that 1
27 and 2 are both <i>ancestors</i> of 3.
28
29 <a name="dag"></a>
30 <h2>DAGs</h2>
31
32 The graph of check-ins is a
33 [http://en.wikipedia.org/wiki/Directed_acyclic_graph | directed acyclic graph]
34 commonly shortened to <i>DAG</i>. Check-in 1 is the <i>root</i> of the DAG
35 since it has no ancestors. Check-in 4 is a <i>leaf</i> of the DAG since
36 it has no descendants. (We will give a more precise definition later of
37 "leaf.")
@@ -47,29 +47,29 @@
47 </td></tr></table></center>
48
49 The graph in figure 2 has two leaves: check-ins 3 and 4. Check-in 2 has
50 two children, check-ins 3 and 4. We call this state a <i>fork</i>.
51
52 Fossil tries to prevent forks. Suppose two programmers named Alice and
53 Bob are each editing check-in 2 separately. Alice finishes her edits
54 first and commits her changes, resulting in check-in 3. Later, when Bob
55 attempts to commit his changes, fossil verifies that check-in 2 is still
56 a leaf. Fossil sees that check-in 3 has occurred and aborts Bob's commit
57 attempt with a message "would fork." This allows Bob to do a "fossil
58 update" which pulls in Alice's changes, merging them into his own
59 changes. After merging, Bob commits check-in 4 as a child of check-in 3.
60 The result is a linear graph as shown in figure 1. This is how CVS
61 works. This is also how fossil works in [./concepts.wiki#workflow |
62 "autosync"] mode.
63
64 But perhaps Bob is off-network when he does his commit, so he
65 has no way of knowing that Alice has already committed her changes.
66 Or, it could be that Bob has turned off "autosync" mode in Fossil. Or,
67 maybe Bob just doesn't want to merge in Alice's changes before he has
68 saved his own, so he forces the commit to occur using the "--allow-fork"
69 option to the fossil <b>commit</b> command. For any of these reasons,
70 two commits against check-in 2 have occurred and now the DAG has two leaves.
71
72 So which version of the project is the "latest" in the sense of having
73 the most features and the most bug fixes? When there is more than
74 one leaf in the graph, you don't really know. So we like to have
75 graphs with a single leaf.
@@ -86,11 +86,11 @@
86 </td></tr></table></center>
87
88 Check-in 5 is a child of check-in 3 because it was created by editing
89 check-in 3. But check-in 5 also inherits the changes from check-in 4 by
90 virtue of the merge. So we say that check-in 5 is a <i>merge child</i>
91 of check-in 4 and that it is a <i>direct child</i> of check-in 3.
92 The graph is now back to a single leaf (check-in 5).
93
94 We have already seen that if fossil is in autosync mode then Bob would
95 have been warned about the potential fork the first time he tried to
96 commit check-in 4. If Bob had updated his local check-out to merge in
@@ -112,11 +112,11 @@
112 instead of as a separate manual step. We will not take sides in that
113 debate. We will simply point out that fossil enables you to do it either way.
114
115 <h2>Forking Versus Branching</h2>
116
117 Having more than one leaf in the check-in DAG is called a "fork." This
118 is usually undesirable and either avoided entirely,
119 as in figure 1, or else quickly resolved as shown in figure 3.
120 But sometimes, one does want to have multiple leaves. For example, a project
121 might have one leaf that is the latest version of the project under
122 development and another leaf that is the latest version that has been
@@ -131,19 +131,19 @@
131 <img src="branch04.gif" width=426 height=123><br>
132 Figure 4
133 </td></tr></table></center>
134
135 The hypothetical scenario of figure 4 is this: The project starts and
136 progresses to a point where (at check-in 2)
137 it is ready to enter testing for its first release.
138 In a real project, of course, there might be hundreds or thousands of
139 check-ins before a project reaches this point, but for simplicity of
140 presentation we will say that the project is ready after check-in 2.
141 The project then splits into two branches that are used by separate
142 teams. The testing team, using the blue branch, finds and fixes a few
143 bugs. This is shown by check-ins 6 and 9. Meanwhile the development
144 team, working on the top uncolored branch,
145 is busy adding features for the second
146 release. Of course, the development team would like to take advantage of
147 the bug fixes implemented by the testing team. So periodically, the
148 changes in the test branch are merged into the dev branch. This is
149 shown by the dashed merge arrows between check-ins 6 and 7 and between
@@ -174,13 +174,13 @@
174
175 A <i>tag</i> is a name that is attached to a check-in. A
176 <i>property</i> is a name/value pair. Internally, fossil implements
177 tags as properties with a NULL value. So, tags and properties really
178 are much the same thing, and henceforth we will use the word "tag"
179 to mean either a tag or a property.
180
181 A tag can be a one-time tag, a propagating tag or a cancellation tag.
182 A one-time tag only applies to the check-in to which it is attached. A
183 propagating tag applies to the check-in to which it is attached and also
184 to all direct descendants of that check-in. A <i>direct descendant</i>
185 is a descendant through direct children. Tags propagation does not
186 cross merges. Tag propagation also stops as soon
@@ -187,14 +187,13 @@
187 as it encounters another check-in with the same tag. A cancellation tag
188 is attached to a single check-in in order to either override a one-time
189 tag that was previously placed on that same check-in, or to block
190 tag propagation from an ancestor.
191
192 The initial checkin of every repository has two propagating tags. In
193 figure 5, that initial check-in is check-in 1. The <b>branch</b> tag
194 tells (by its value) what branch the check-in is a member of.
 
195 The default branch is called "trunk." All tags that begin with "<b>sym-</b>"
196 are symbolic name tags. When a symbolic name tag is attached to a
197 check-in, that allows you to refer to that check-in by its symbolic
198 name rather than by its 40-character SHA1 hash name. When a symbolic name
199 tag propagates (as does the <b>sym-trunk</b> tag) then referring to that
@@ -212,12 +211,12 @@
211
212 Check-in 4 also has a <b>sym-test</b> tag, which gives the symbolic name
213 "test" to check-ins 4, 6, and 9. Because tags do not propagate across
214 merges, check-ins 7, 8, and 10 do not inherit the <b>sym-test</b> tag and
215 are hence not known by the name "test."
216 To prevent the <b>sym-trunk</b> tag from propagating from check-in 1
217 into check-ins 4, 6, and 9, there is a cancellation tag for
218 <b>sym-trunk</b> on check-in 4. The net effect is that
219 check-ins on the trunk go by the symbolic name of "trunk" and check-ins
220 on the test branch go by the symbolic name "test."
221
222 The <b>bgcolor=blue</b> tag on check-in 4 causes the background color
@@ -225,11 +224,11 @@
224
225 Figure 5 also shows two one-time tags on check-in 9. (The diagram does
226 not make a graphical distinction between one-time and propagating tags.)
227 The <b>sym-release-1.0</b> tag means that check-in 9 can be referred to
228 using the more meaningful name "release-1.0." The <b>closed</b> tag means
229 that check-in 9 is a "closed leaf." A closed leaf is a leaf that should
230 never have direct children.
231
232 <h2>Review Of Terminology</h2>
233
234 <blockquote><dl>
235
--- www/changes.wiki
+++ www/changes.wiki
@@ -12,10 +12,18 @@
1212
via a compile-time option.
1313
* Add the <nowiki>[checkout], [render], [styleHeader], [styleFooter],
1414
[trace], [getParameter], [setParameter], and [artifact]</nowiki> commands
1515
to TH1, primarily for use by TH1 hooks.
1616
* Bring in the latest version of autosetup from upstream.
17
+ * When committing a (non-binary) file which contains bytes forming an
18
+ invalid UTF-8 stream, fossil now adds the possibility to convert it
19
+ to a valid UTF-8 stream ('c') if you like.
20
+ * Let [/help?cmd=new|fossil new] no longer create an initial empty commit
21
+ by default. The first commit after checking out an empty repository will
22
+ become the initial commit. (NOT PLANNED FOR 1.30, BUT DONE TO EXPOSE
23
+ [/help?cmd=new|fossil new --empty] TO MORE FIELD TESTING BEFORE
24
+ MAKING ANY DECISION ON IT!)
1725
1826
<h2>Changes For Version 1.29 (2014-06-12)</h2>
1927
* Add the ability to display content, diffs and annotations for UTF16
2028
text files in the web interface.
2129
* Add the "SaveAs..." and "Invert" buttons
2230
--- www/changes.wiki
+++ www/changes.wiki
@@ -12,10 +12,18 @@
12 via a compile-time option.
13 * Add the <nowiki>[checkout], [render], [styleHeader], [styleFooter],
14 [trace], [getParameter], [setParameter], and [artifact]</nowiki> commands
15 to TH1, primarily for use by TH1 hooks.
16 * Bring in the latest version of autosetup from upstream.
 
 
 
 
 
 
 
 
17
18 <h2>Changes For Version 1.29 (2014-06-12)</h2>
19 * Add the ability to display content, diffs and annotations for UTF16
20 text files in the web interface.
21 * Add the "SaveAs..." and "Invert" buttons
22
--- www/changes.wiki
+++ www/changes.wiki
@@ -12,10 +12,18 @@
12 via a compile-time option.
13 * Add the <nowiki>[checkout], [render], [styleHeader], [styleFooter],
14 [trace], [getParameter], [setParameter], and [artifact]</nowiki> commands
15 to TH1, primarily for use by TH1 hooks.
16 * Bring in the latest version of autosetup from upstream.
17 * When committing a (non-binary) file which contains bytes forming an
18 invalid UTF-8 stream, fossil now adds the possibility to convert it
19 to a valid UTF-8 stream ('c') if you like.
20 * Let [/help?cmd=new|fossil new] no longer create an initial empty commit
21 by default. The first commit after checking out an empty repository will
22 become the initial commit. (NOT PLANNED FOR 1.30, BUT DONE TO EXPOSE
23 [/help?cmd=new|fossil new --empty] TO MORE FIELD TESTING BEFORE
24 MAKING ANY DECISION ON IT!)
25
26 <h2>Changes For Version 1.29 (2014-06-12)</h2>
27 * Add the ability to display content, diffs and annotations for UTF16
28 text files in the web interface.
29 * Add the "SaveAs..." and "Invert" buttons
30
--- www/shunning.wiki
+++ www/shunning.wiki
@@ -42,11 +42,11 @@
4242
the shunning list does not propagate is a security feature. If the
4343
shunning list propagated then a malicious user (or
4444
a bug in the fossil code) might introduce a shun record that would
4545
propagate through all repositories in a network and permanently
4646
destroy vital information. By refusing to propagate the shunning list,
47
-Fossil insures that no remote user will ever be able to remove
47
+Fossil ensures that no remote user will ever be able to remove
4848
information from your personal repositories without your permission.
4949
5050
The shunning list does not propagate to a remote repository
5151
by the normal "sync" mechanism,
5252
but it is still possible to copy shuns from one repository to another
5353
--- www/shunning.wiki
+++ www/shunning.wiki
@@ -42,11 +42,11 @@
42 the shunning list does not propagate is a security feature. If the
43 shunning list propagated then a malicious user (or
44 a bug in the fossil code) might introduce a shun record that would
45 propagate through all repositories in a network and permanently
46 destroy vital information. By refusing to propagate the shunning list,
47 Fossil insures that no remote user will ever be able to remove
48 information from your personal repositories without your permission.
49
50 The shunning list does not propagate to a remote repository
51 by the normal "sync" mechanism,
52 but it is still possible to copy shuns from one repository to another
53
--- www/shunning.wiki
+++ www/shunning.wiki
@@ -42,11 +42,11 @@
42 the shunning list does not propagate is a security feature. If the
43 shunning list propagated then a malicious user (or
44 a bug in the fossil code) might introduce a shun record that would
45 propagate through all repositories in a network and permanently
46 destroy vital information. By refusing to propagate the shunning list,
47 Fossil ensures that no remote user will ever be able to remove
48 information from your personal repositories without your permission.
49
50 The shunning list does not propagate to a remote repository
51 by the normal "sync" mechanism,
52 but it is still possible to copy shuns from one repository to another
53

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button