X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=pldnotify.awk;h=c0da0a1521dbaf31471cb26588a69bc4cb8ea1f6;hb=65f4f2e25d67ec11ef8efb1228b25e78db5df6bf;hp=f6fbd5bd7b90a2d9e5366c86587a622cc336887f;hpb=568630a36b1078d7b4af4e6d840b04f8e51140ab;p=packages%2Frpm.git diff --git a/pldnotify.awk b/pldnotify.awk index f6fbd5b..c0da0a1 100644 --- a/pldnotify.awk +++ b/pldnotify.awk @@ -8,6 +8,15 @@ function fixedsub(s1,s2,t, ind) { return t } +function ispre(s) { + if ((s~"pre")||(s~"PRE")||(s~"beta")||(s~"BETA")||(s~"alpha")||(s~"ALPHA")||(s~"rc")||(s~"RC")) { + if (DEBUG) print "pre-version" + return 1 + } else { + return 0 + } +} + function compare_ver(v1,v2) { # compares version numbers while (match(v1,/[a-zA-Z][0-9]|[0-9][a-zA-Z]/)) @@ -46,19 +55,19 @@ function compare_ver(v1,v2) { return 1 else if (v1a[i]>v2a[i]) return 0 - } else if ((v1a[i]~"pre")||(v1a[i]~"beta")||(v1a[i]~"alpha")) + } else if (ispre(v1a[i]) == 1) return 1 else return 0 } if ((count2==mincount)&&(count!=count2)) { for (i=count2+1; i<=count; i++) - if ((v1a[i]~"pre")||(v1a[i]~"beta")||(v1a[i]~"alpha")) + if (ispre(v1a[i]) == 1) return 1 return 0 } else if (count!=count2) { for (i=count+1; i<=count2; i++) - if ((v2a[i]~"pre")||(v2a[i]~"beta")||(v2a[i]~"alpha")) + if (ispre(v2a[i]) == 1) return 0 return 1 } @@ -108,19 +117,19 @@ function compare_ver_dec(v1,v2) { return 1 else if (v1a[i]>v2a[i]) return 0 - } else if ((v1a[i]~"pre")||(v1a[i]~"beta")||(v1a[i]~"alpha")) + } else if (ispre(v1a[i]) == 1) return 1 else return 0 } if ((count2==mincount)&&(count!=count2)) { for (i=count2+1; i<=count; i++) - if ((v1a[i]~"pre")||(v1a[i]~"beta")||(v1a[i]~"alpha")) + if (ispre(v1a[i]) == 1) return 1 return 0 } else if (count!=count2) { for (i=count+1; i<=count2; i++) - if ((v2a[i]~"pre")||(v2a[i]~"beta")||(v2a[i]~"alpha")) + if (ispre(v2a[i]) == 1) return 0 return 1 } @@ -253,7 +262,8 @@ function process_source(number,lurl,name,version) { filenameexp=filename gsub("\+","\\+",filenameexp) - sub(version,"[A-Za-z0-9\\.]+",filenameexp) + sub(version,"[A-Za-z0-9.]+",filenameexp) + gsub("\.","\\.",filenameexp) if ( DEBUG ) print "Wzorzec: " filenameexp match(filename,version) prever=substr(filename,1,RSTART-1) @@ -278,13 +288,14 @@ function process_source(number,lurl,name,version) { for (nr=1; nr<=c; nr++) { addr=linki[nr] if (DEBUG) print "Znaleziony link: " addr - if (addr ~ filenameexp) { + if ((addr ~ filenameexp) && !(addr ~ "[-_.0-9A-Za-z~]" filenameexp)) { match(addr,filenameexp) newfilename=substr(addr,RSTART,RLENGTH) if (DEBUG) print "Hipotetyczny nowy: " newfilename newfilename=fixedsub(prever,"",newfilename) newfilename=fixedsub(postver,"",newfilename) if (DEBUG) print "Wersja: " newfilename + if (newfilename ~ /\.(pkg|bin|binary)$/) continue if (NUMERIC) { if ( compare_ver_dec(version, newfilename)==1 ) { if (DEBUG) print "Tak, jest nowa"