pkgsrc/net/irrtoolset-nox11/patches/patch-dh
spz 015569be5a patches irrtoolset to handle extended autnums
most changes supplied by mlelstv@NetBSD.org (Michael van Elst)
patch to src/rpsl/rpsl/rptype.cc supplied by he@NetBSD.org (Havard Eidnes)

also fixes PR pkg/36807
2007-09-07 21:26:31 +00:00

35 lines
1.1 KiB
Text

$NetBSD: patch-dh,v 1.1 2007/09/07 21:26:34 spz Exp $
--- src/rpsl/rpsl/rpsl.l.orig 2006-10-01 13:23:32.000000000 +0200
+++ src/rpsl/rpsl/rpsl.l
@@ -74,7 +74,7 @@ INT [[:digit:]]+
SINT [+-]?{INT}
REAL [+-]?{INT}?\.{INT}({WS}*E{WS}*[+-]?{INT})?
NAME [[:alpha:]]([[:alnum:]_-]*[[:alnum:]])?
-ASNO AS{INT}
+ASNO AS{INT}\.{INT}|AS{INT}
ASNAME AS-[[:alnum:]_-]*[[:alnum:]]
RSNAME RS-[[:alnum:]_-]*[[:alnum:]]
RTRSNAME RTRS-[[:alnum:]_-]*[[:alnum:]]
@@ -455,7 +455,11 @@ extern void atollRA(...);
/* The order of these rules are important */
{ASNO} {
- yylval.i = atoi(yytext+2);
+ const char *dot = strchr(yytext,'.');
+ if (dot)
+ yylval.i = atoi(yytext+2)<<16 | atoi(dot+1);
+ else
+ yylval.i = atoi(yytext+2);
LEXER_RETURN(TKN_ASNO);
}
@@ -751,7 +755,7 @@ void yy_scan_object(Object *o) {
if (rpsl_buffer)
yy_delete_buffer(rpsl_buffer);
- rpsl_buffer = yy_scan_bytes(o->contents, o->size);
+ rpsl_buffer = yy_scan_bytes(o->contents, (yy_size_t)o->size);
BEGIN(INITIAL);
}