diff --git a/url.bs b/url.bs index 06ce6881..e0e22b05 100644 --- a/url.bs +++ b/url.bs @@ -2248,6 +2248,26 @@ and then runs these steps:
  • If c is an ASCII alphanumeric, U+002B (+), U+002D (-), or U+002E (.), append c, lowercased, to buffer. +

  • +

    Otherwise, if c is U+003A (:), buffer's length is 1, + buffer contains only an ASCII alpha, and remaining starts with + U+005C (\): + +

      +
    1. Set url's scheme to "file". + +

    2. Set url's host to the empty string. + +

    3. Let driveLetter be the code point at position pointer − 1 in input. + +

    4. Set buffer to driveLetter, followed by U+003A (:). + +

      This is a (platform-independent) Windows drive letter quirk. This preserves + the case of the drive letter. + +

    5. Set state to path state. +

    +
  • Otherwise, if c is U+003A (:), then: @@ -2885,10 +2905,16 @@ and then runs these steps:

  • If url's scheme is "file", url's path is empty, and buffer is a - Windows drive letter, then replace the second code point in buffer with - U+003A (:). + Windows drive letter, then: -

    This is a (platform-independent) Windows drive letter quirk. +

      +
    1. Let driveLetter be the first code point in buffer. + +

    2. Set buffer to driveLetter, followed by U+003A (:). +

    + +

    This is a (platform-independent) Windows drive letter quirk. This preserves + the case of the drive letter while normalizing the second code point to U+003A (:).

  • Append buffer to url's path.