Bug Tracker 
| ID | 99🔗 |
|---|---|
| Date: | 2015-11-12 03:49:52 |
| Status | Closed (Fixed) |
| Category | datatool |
| Version | 2.23 |
| Summary | strange behavior of \dtlcompare |
Sign in to subscribe to notifications about this report.
Description
I used the example from the doc-code and I cannot explain the result of\dtlcompare{\mycount}{\noopsort{z}foo}{bar}\number\mycount{} that should be 1 and not -1 as {z}foo is greater than bar.
MWE
Download (886B)
\documentclass[12pt,a4paper,final]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\listfiles
\usepackage[verbose]{datatool}
\begin{document}
\newcount\mycount
\newcommand*{\noopsort}[1]{}
\verb+\newcommand*{\noopsort}[1]{}+ then \verb+\noopsort{a}foo+ produces the text: foo, however the following
\verb+\dtlcompare{\mycount}{\noopsort{a}foo}{bar}\number\mycount+
produces: -1, since the command \verb+\noopsort+ is disregarded when the comparison is made, so \verb+\dtlcompare+ just compares \{a\}foo with bar, and since a is less than b, the first string is considered to be less than the second string.
A. result with \verb+\noopsort{a}foo}+ \dtlcompare{\mycount}{\noopsort{a}foo}{bar}\number\mycount{} as expected
B. result with \verb+\noopsort{z}foo}+
\dtlcompare{\mycount}{\noopsort{z}foo}{bar}\number\mycount{}. Should it not be 1?
\end{document}
Evaluation
I'm sorry, it turns out the documentation was wrong. What actually happens is that commands are treated as though they have a character code of 0. Since this may cause a problem for backward-compatibility for documents that rely on the actual behaviour (rather than the intended behaviour) I've added a switch \ifdtlcompareskipcs to version 2.32. This is false by default to maintain current behaviour but if you switch it to true (\dtlcompareskipcstrue) before making the comparison you should get the intended behaviour.
Comments
0 comments.
Add Comment
Page permalink: https://www.dickimaw-books.com/bugtracker.php?key=99
