diff --git a/ua.go b/ua.go index 7082073..a348cc2 100644 --- a/ua.go +++ b/ua.go @@ -385,8 +385,8 @@ func Parse(userAgent string) UserAgent { } } - parseVersion(ua.Version, &ua.VersionNo) - parseVersion(ua.OSVersion, &ua.OSVersionNo) + ua.VersionNo = parseVersion(ua.Version) + ua.OSVersionNo = parseVersion(ua.OSVersion) return ua } diff --git a/version.go b/version.go index 30c0eb1..88f546c 100644 --- a/version.go +++ b/version.go @@ -12,24 +12,26 @@ type VersionNo struct { Patch int } -func parseVersion(ver string, verno *VersionNo) { +// parseVersion parse version string into Major.Minor.Patch struct +func parseVersion(ver string) (verno VersionNo) { var err error parts := strings.Split(ver, ".") if len(parts) > 0 { if verno.Major, err = strconv.Atoi(parts[0]); err != nil { - return + return verno } } if len(parts) > 1 { if verno.Minor, err = strconv.Atoi(parts[1]); err != nil { - return + return verno } if len(parts) > 2 { if verno.Patch, err = strconv.Atoi(parts[2]); err != nil { - return + return verno } } } + return verno } // VersionNoShort return version string in format .