summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2012-05-16 23:23:29 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2012-05-16 23:23:29 (GMT)
commit9168859a32d37cb9442df3de940de98a094c664e (patch)
tree31f1f431f681cb9ee80d8c4b1110804f4b4ce10f
parent6155ef4e5cc74b11bfb0eba745e4e9c9c5e5f6be (diff)
parent95a02f829d476464637599f39be7aeaa335c70ad (diff)
downloadtcl-9168859a32d37cb9442df3de940de98a094c664e.zip
tcl-9168859a32d37cb9442df3de940de98a094c664e.tar.gz
tcl-9168859a32d37cb9442df3de940de98a094c664e.tar.bz2
[Bug 3525462]: Document what relational operators really do with string args.
-rw-r--r--ChangeLog6
-rw-r--r--doc/expr.n6
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 72af5c4..36ecd23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-05-17 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/expr.n: [Bug 3525462]: Corrected statement about what happens
+ when comparing "0y" and "0x12"; the previously documented behavior was
+ actually a subtle bug (now long-corrected).
+
2012-05-16 Donal K. Fellows <dkf@users.sf.net>
* generic/tclCmdAH.c (TclMakeFileCommandSafe): [Bug 3445787]: Improve
diff --git a/doc/expr.n b/doc/expr.n
index 2ecd501..7b29f81 100644
--- a/doc/expr.n
+++ b/doc/expr.n
@@ -326,6 +326,7 @@ returns \fB4.0\fR, not \fB4\fR.
String values may be used as operands of the comparison operators,
although the expression evaluator tries to do comparisons as integer
or floating-point when it can,
+i.e., when all arguments to the operator allow numeric interpretations,
except in the case of the \fBeq\fR and \fBne\fR operators.
If one of the operands of a comparison is a string and the other
has a numeric value, a canonical string representation of the numeric
@@ -337,12 +338,11 @@ is that produced by the \fB%g\fR format specifier of Tcl's
.PP
.CS
\fBexpr\fR {"0x03" > "2"}
-\fBexpr\fR {"0y" < "0x12"}
+\fBexpr\fR {"0y" > "0x12"}
.CE
.PP
both return 1. The first comparison is done using integer
-comparison, and the second is done using string comparison after
-the second operand is converted to the string \fB18\fR.
+comparison, and the second is done using string comparison.
Because of Tcl's tendency to treat values as numbers whenever
possible, it is not generally a good idea to use operators like \fB==\fR
when you really want string comparison and the values of the