add checking sort -V
parent
86e0a8cb9f
commit
90cd79dc69
@ -0,0 +1,41 @@
|
|||||||
|
#include <apt-pkg/debversion.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char *line = NULL;
|
||||||
|
char *token;
|
||||||
|
char *orig1;
|
||||||
|
char *orig2;
|
||||||
|
char *ver1;
|
||||||
|
char *ver2;
|
||||||
|
size_t len = 0;
|
||||||
|
size_t read;
|
||||||
|
int ret;
|
||||||
|
while ((read = getline(&line, &len, stdin)) != -1) {
|
||||||
|
//fprintf(stderr, "%s", line);
|
||||||
|
orig1 = strdup(line);
|
||||||
|
orig2 = strdup(line);
|
||||||
|
token = orig1;
|
||||||
|
ver1 = strsep(&token, "\t");
|
||||||
|
if (ver1 == NULL) {
|
||||||
|
fprintf(stderr, "cannot read token1");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
ver2 = strsep(&token, "\n");
|
||||||
|
if (ver2 == NULL) {
|
||||||
|
fprintf(stderr, "cannot read token2");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
ret = debVS.CmpVersion(ver1, ver2);
|
||||||
|
if (ret != 0) {
|
||||||
|
fputs(orig2, stdout);
|
||||||
|
}
|
||||||
|
//fputs(orig2, stdout);
|
||||||
|
free(orig1);
|
||||||
|
free(orig2);
|
||||||
|
}
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# some examples where `sort -V` does the wrong thing:
|
||||||
|
# 0.04-1-5 0.4-3
|
||||||
|
# 0.1+20080921-2 0.1-1+b8
|
||||||
|
# 0.1+dfsg-4 000.001-4
|
||||||
|
# 0.1.0+20071012-1.2 0.1.0-1.1
|
||||||
|
# 0.3.0+20091229-1 0.3.0-7.2
|
||||||
|
# 0.6.0+git20130305-5 0.6.0-5+b1
|
||||||
|
# 0:2009.10.04-1 1.0pre11-1
|
||||||
|
# 0:2009.10.04-1 1.240-1
|
||||||
|
# 0:2009.10.04-1 1.7.2.4-4.1
|
||||||
|
# 0:2009.10.04-1 2.3-12
|
||||||
|
# 0:2009.10.04-1 8.0.184.15484+dfsg-2
|
||||||
|
# 1.0+dfsg-1 1.00-6
|
||||||
|
|
||||||
|
i=0
|
||||||
|
while read line; do
|
||||||
|
printf "$i\r" >&2
|
||||||
|
i=$((i+1))
|
||||||
|
set -- $line
|
||||||
|
newest=$( ( echo "$1"; echo "$2" ) | sort -V | tail -n1)
|
||||||
|
if [ "$1" != "$newest" ]; then
|
||||||
|
printf "<"
|
||||||
|
else
|
||||||
|
printf ">"
|
||||||
|
fi
|
||||||
|
printf " %s\t%s\n" $1 $2
|
||||||
|
done
|
Loading…
Reference in New Issue