I agree, full agent "version" matching is troublesome. With this
approach:
@agent ie and (min-major-version: 6) and (min-minor-version: 1) and
(max-major-version: 6) {
/* styles for IE agent version 6.1 through 6.x (inclusive) */
}
We could go up to as many decimal tokens as we wish, e.g.
*-major-version, *-minor-version, *-maintenance-version,
*-build-version for "major.minor.maintenance.build" tokens.
----
The question I would have then is what should we do with non-numeric
values like you pointed out; do we really care about skinning for
alphabetical versions?
My proposal would be to take the raw version String and split it into
up into tokens based on the dot character. We should decide how many
tokens we want to support and then we should ignore any further tokens
in the String.
For each token, we turn it into an integer. If the token contains
something other than decimal characters, keep only up to the first
non-decimal character. Here are some examples:
a.) "0b5" would become "0"
b.) "b5" would become "" which we'd treat as "0"
Regards,
Matt
On Fri, Apr 18, 2008 at 12:55 PM, Andrew Robinson
<[EMAIL PROTECTED]> wrote:
> Perhaps matching the full agent string is a bad idea. I'd hate to
have
> to parse many variations of things like:
>
> Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9b5)
> Gecko/2008032620 Firefox/3.0b5
>
> -Andrew
>
> On Fri, Apr 18, 2008 at 12:46 PM, Andrew Robinson
>
>
> <[EMAIL PROTECTED]> wrote:
> > The problem already brought up is that minor version may not be
> > enough. In a 3 part version (ie 2.0.10) the minor of 0 isn't
helpful
> > if you want to do something based on the 10 value
> >
> > -Andrew
> >
> >
> >
> > On Fri, Apr 18, 2008 at 12:40 PM, Matt Cooper
<[EMAIL PROTECTED]> wrote:
> > > Hi all,
> > >
> > > The regex would be powerful though I'm afraid that it
would not as
> > > obvious or easy to use for non-technical designers/skinners.
> > >
> > > I think something like this would be clearer:
> > >
> > > @agent ie and (min-major-version: 6) and
(min-minor-version: 1) and
> > > (max-major-version: 6) {
> > > /* styles for IE agent version 6.1 through 6.x
(inclusive) */
> > > }
> > >
> > > Regards,
> > > Matt
> > >
> > > On Fri, Apr 18, 2008 at 12:30 PM, Andrew Robinson
> > >
> > >
> > > <[EMAIL PROTECTED]> wrote:
> > > > Well that is difficult isn't it? Perhaps what I
suggested a long time
> > > > back in my bug is best and allow regexp:
> > > >
> > > > @agent blah and (matches-version: /someRegExp/)
> > > >
> > > > example to match 6.x through 7.x:
> > > > @agent ie and (matches-version: /[67](\.\d)*/)
> > > >
> > > > yeah it is harder to write, but then we can write it
once and it
> > > > handles pretty much all use cases.
> > > >
> > > > The other twist is to give the code entire user agent
string:
> > > >
> > > > @agent matches(/MSIE\s+[67]/)
> > > >
> > > > This really gives the user all the control they need
and it is pretty
> > > > easy to parse without having to code many syntax
improvements over
> > > > time as new requirements come up.
> > > >
> > > > -Andrew
> > > >
> > > > On Fri, Apr 18, 2008 at 12:10 PM, Andy Schwartz
> > > >
> > > > <[EMAIL PROTECTED]> wrote:
> > > >
> > > >
> > > > > On Thu, Apr 17, 2008 at 9:21 PM, Andrew Robinson
> > > > >
> > > > > <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > > I'll be happy either way, but I think I now bend to
the below
> > > > > > explanation of 5 == 5.0 from Jeanne's reasoning
> > > > >
> > > > > FWIW, I actually agree with Jeanne's first opinion. :-)
> > > > >
> > > > > That is, I think of "5" as "5.*". "5.0" as "5.0.*",
etc.
> > > > >
> > > > > Regarding the use of floating points to represent
versions... I was
> > > > > wondering whether we should avoid this since it
would prevents us from
> > > > > supporting "major.minor.reallyminor" version
strings. I don't know
> > > > > that we will ever need to go further than
major.minor, though the
> > > > > Gecko versions use the third digit, so perhaps we
should pick a
> > > > > solution that doesn't preclude us from supporting this?
> > > > >
> > > > > (BTW, sorry all about my little digression earlier
on the thread...)
> > > > >
> > > > > Andy
> > > > >
> > > >
> > >
> >
>