Ondřej Vašík wrote:
> > Does rpmvercmp have the above property?
>
> Similar. It separates name, epoch, version, release and architecture and
> compares those. Uses subsections of alphanum segments separated by
> non-alphanum chars. When same segment have different types, numeric is
> always considered as newer than alpha or alphanum. This solves issue
> with suffix
From this description and from its source code I can still not verify that
this function has these properties which I consider essential:
1) cmp (s1, s2) == 0 if and only if s1 and s2 are the same,
(otherwise the 'ls' output would not be deterministic)
2) whenever cmp (s1, s2) < 0 && cmp (s2, s3) < 0 then cmp (s1, s3) < 0
(otherwise the 'ls' output could be sorted differently if a file
is added or removed).
3) cmp (concat (PREFIX, s1, SUFFIX), concat (PREFIX, s2, SUFFIX)) ==
cmp (s1, s2)
for all PREFIXes, and for all SUFFIXes that start with a '.'.
> but changes behaviour for prefix (name) - as fully numeric
> project/file name will be considered as "newer" than alphanum
> project/file name and will be listed after alphanumeric names.
Hmm, indeed, rpmvercmp does not fulfill axiom 3: If I understand it correctly,
rpmvercmp ("0002", "04") < 0
but rpmvercmp ("10002", "104") > 0.
I would find it more reasonable to consider zeroes at the beginning of a
segment as relevant when the segment is the first one.
Bruno
_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils