Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package editorconfig-checker for
openSUSE:Factory checked in at 2026-01-30 18:27:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/editorconfig-checker (Old)
and /work/SRC/openSUSE:Factory/.editorconfig-checker.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "editorconfig-checker"
Fri Jan 30 18:27:06 2026 rev:11 rq:1329944 version:3.6.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/editorconfig-checker/editorconfig-checker.changes
2025-11-26 18:50:25.031248707 +0100
+++
/work/SRC/openSUSE:Factory/.editorconfig-checker.new.1995/editorconfig-checker.changes
2026-01-30 18:27:19.438239185 +0100
@@ -1,0 +2,30 @@
+Fri Jan 30 06:34:37 UTC 2026 - Johannes Kastl
<[email protected]>
+
+- Update to version 3.6.1:
+ * Bug Fixes
+ - empty charset on xlf files (#527) (ebaf1b9)
+ - github actions workflow example in readme (#528) (1e564b2)
+ * Dependencies
+ - chore(deps): bump anchore/sbom-action from 0.21.1 to 0.22.0
+ (#531)
+ - chore(deps): bump golang.org/x/text from 0.32.0 to 0.33.0
+ (#526)
+ - chore(deps): bump anchore/sbom-action from 0.21.0 to 0.21.1
+ (#525)
+ - chore(deps): bump github.com/gkampitakis/go-snaps from 0.5.18
+ to 0.5.19 (#524)
+ - chore(deps): bump anchore/sbom-action from 0.20.11 to 0.21.0
+ (#523)
+ - chore(deps): bump anchore/sbom-action from 0.20.10 to 0.20.11
+ (#518)
+ - chore(deps): bump
+ github.com/editorconfig/editorconfig-core-go/v2 (#522)
+ - chore(deps): bump golang.org/x/text from 0.31.0 to 0.32.0
+ (#516)
+ - chore(deps): bump github.com/gabriel-vasile/mimetype (#520)
+ - chore(deps): bump github.com/gkampitakis/go-snaps from 0.5.17
+ to 0.5.18 (#514)
+ - chore(deps): bump github.com/gkampitakis/go-snaps from 0.5.16
+ to 0.5.17 (#513)
+
+-------------------------------------------------------------------
Old:
----
editorconfig-checker-3.6.0.obscpio
New:
----
editorconfig-checker-3.6.1.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ editorconfig-checker.spec ++++++
--- /var/tmp/diff_new_pack.tX8BcL/_old 2026-01-30 18:27:20.702292253 +0100
+++ /var/tmp/diff_new_pack.tX8BcL/_new 2026-01-30 18:27:20.702292253 +0100
@@ -1,7 +1,7 @@
#
# spec file for package editorconfig-checker
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define executable_name ec
Name: editorconfig-checker
-Version: 3.6.0
+Version: 3.6.1
Release: 0
Summary: Tool to verify that your files are in harmony with your
.editorconfig
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.tX8BcL/_old 2026-01-30 18:27:20.738293765 +0100
+++ /var/tmp/diff_new_pack.tX8BcL/_new 2026-01-30 18:27:20.742293933 +0100
@@ -3,7 +3,7 @@
<param
name="url">https://github.com/editorconfig-checker/editorconfig-checker</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v3.6.0</param>
+ <param name="revision">v3.6.1</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.tX8BcL/_old 2026-01-30 18:27:20.770295108 +0100
+++ /var/tmp/diff_new_pack.tX8BcL/_new 2026-01-30 18:27:20.774295276 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/editorconfig-checker/editorconfig-checker</param>
- <param
name="changesrevision">6b2f463397341e827af22305a5630d26a9aedc21</param></service></servicedata>
+ <param
name="changesrevision">aa06cea887b26f372f9368aa53665266ec6dc364</param></service></servicedata>
(No newline at EOF)
++++++ editorconfig-checker-3.6.0.obscpio -> editorconfig-checker-3.6.1.obscpio
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-checker-3.6.0/.release-please-manifest.json
new/editorconfig-checker-3.6.1/.release-please-manifest.json
--- old/editorconfig-checker-3.6.0/.release-please-manifest.json
2025-11-25 17:39:46.000000000 +0100
+++ new/editorconfig-checker-3.6.1/.release-please-manifest.json
2026-01-28 21:45:37.000000000 +0100
@@ -1,3 +1,3 @@
{
- ".": "3.6.0"
+ ".": "3.6.1"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-checker-3.6.0/CHANGELOG.md
new/editorconfig-checker-3.6.1/CHANGELOG.md
--- old/editorconfig-checker-3.6.0/CHANGELOG.md 2025-11-25 17:39:46.000000000
+0100
+++ new/editorconfig-checker-3.6.1/CHANGELOG.md 2026-01-28 21:45:37.000000000
+0100
@@ -1,5 +1,13 @@
# Changelog
+##
[3.6.1](https://github.com/editorconfig-checker/editorconfig-checker/compare/v3.6.0...v3.6.1)
(2026-01-22)
+
+
+### Bug Fixes
+
+* empty charset on xlf files
([#527](https://github.com/editorconfig-checker/editorconfig-checker/issues/527))
([ebaf1b9](https://github.com/editorconfig-checker/editorconfig-checker/commit/ebaf1b91a7b75bbd09f39cea7dee2aa72891b3c6))
+* github actions workflow example in readme
([#528](https://github.com/editorconfig-checker/editorconfig-checker/issues/528))
([1e564b2](https://github.com/editorconfig-checker/editorconfig-checker/commit/1e564b21ad9dce1bb242ee1acc8b8cec6083ad86))
+
##
[3.6.0](https://github.com/editorconfig-checker/editorconfig-checker/compare/v3.5.0...v3.6.0)
(2025-11-25)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-checker-3.6.0/README.md
new/editorconfig-checker-3.6.1/README.md
--- old/editorconfig-checker-3.6.0/README.md 2025-11-25 17:39:46.000000000
+0100
+++ new/editorconfig-checker-3.6.1/README.md 2026-01-28 21:45:37.000000000
+0100
@@ -25,11 +25,10 @@
1. [via configuration](#via-configuration)
2. [via arguments](#via-arguments)
7. [Charset Setting](#charset-setting)
-8. [Docker](#docker)
-9. [Continuous Integration](#continuous-integration)
-10. [Support](#support)
-11. [Contributing](#contributing)
-12. [Semantic Versioning Policy](#semantic-versioning-policy)
+8. [Continuous Integration](#continuous-integration)
+9. [Support](#support)
+10. [Contributing](#contributing)
+11. [Semantic Versioning Policy](#semantic-versioning-policy)
## What?
@@ -60,7 +59,7 @@
<!-- x-release-please-start-version -->
```shell
-VERSION="v3.6.0"
+VERSION="v3.6.1"
OS="linux"
ARCH="amd64"
curl -O -L -C -
https://github.com/editorconfig-checker/editorconfig-checker/releases/download/$VERSION/ec-$OS-$ARCH.tar.gz
&& \
@@ -71,33 +70,84 @@
## Installation
+You can install **editorconfig-checker** in several ways, depending on your
platform and preferences:
+
+### 1. Using Go
+
+If you have Go installed, you can install **editorconfig-checker** with the
following command:
+
+```shell
+go install
github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker@latest
+```
+
+### 2. Download Prebuilt Binaries
+
Grab a binary from the [release
page](https://github.com/editorconfig-checker/editorconfig-checker/releases).
-If you have go installed you can run `go get
github.com/editorconfig-checker/editorconfig-checker/v3` <!--
x-release-please-major -->
-and run `make build` inside the project folder.
-This will place a binary called `ec` into the `bin` directory.
-If you are using Arch Linux, you can use
[pacman](https://wiki.archlinux.org/title/Pacman) to install from [extra
repository](https://archlinux.org/packages/extra/x86_64/editorconfig-checker/):
+### 3. Using Nix
+
+If you use [Nix](https://nixos.org/):
```shell
-pacman -S editorconfig-checker
+nix-env -iA nixpkgs.editorconfig-checker
```
-Also, development (VCS) package is available in the
[AUR](https://aur.archlinux.org/packages/editorconfig-checker-git):
+Or, with flakes:
```shell
-# <favourite-aur-helper> <install-command> editorconfig-checker-git
+nix run nixpkgs#editorconfig-checker
+```
-# i.e.
-paru -S editorconfig-checker-git
+### 4. Using Docker
+
+You can run **editorconfig-checker** inside a Docker container without
installing it locally:
+
+```shell
+docker run --rm --volume=$PWD:/check mstruebing/editorconfig-checker
```
-If Go 1.16 or greater is installed, you can also install it globally via `go
install`:
+This command mounts your current directory into the container and runs the
check inside it.
+
+See also: [Docker Hub:
mstruebing/editorconfig-checker](https://hub.docker.com/r/mstruebing/editorconfig-checker)
+
+### 5. Using mise (Polyglot Tool Version Manager)
+
+If you use [mise](https://github.com/jdx/mise), install with:
```shell
-go install
github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker@latest
+mise use -g editorconfig-checker@latest
+```
+
+### 6. Using Homebrew
+
+If you use [Homebrew](https://brew.sh/) on macOS or Linux:
+
+```shell
+brew install editorconfig-checker
```
+### 7. Arch Linux
+
+- Install from the [extra
repository](https://archlinux.org/packages/extra/x86_64/editorconfig-checker/):
+ ```shell
+ pacman -S editorconfig-checker
+ ```
+- Or install the development (VCS) package from the
[AUR](https://aur.archlinux.org/packages/editorconfig-checker-git):
+ ```shell
+ # With your favorite AUR helper, e.g.:
+ paru -S editorconfig-checker-git
+ ```
+
+### Language Specific Wrappers:
+
+We do have a couple of language specific wrappers available that you can
install with your favorites language package manager.
+See their respective documentation for installation and usage instructions.
+
+* JavaScript/TypeScript: [npm
package](https://www.npmjs.com/package/editorconfig-checker)
+* Python: [PyPI package](https://pypi.org/project/editorconfig-checker/)
+* PHP: [Composer
package](https://packagist.org/packages/editorconfig-checker/editorconfig-checker)
+
## Usage
```txt
@@ -487,15 +537,30 @@
If a file's encoding can't be determined, we identify the encoding as
`unknown`,
report the issue, and decode the file using the default decoder.
-## Docker
+## Continuous Integration
-You are able to run this tool inside a Docker container.
-To do this you need to have Docker installed and run this command in your
repository root which you want to check:
-`docker run --rm --volume=$PWD:/check mstruebing/editorconfig-checker`
+### GitHub Actions
-Docker Hub:
[mstruebing/editorconfig-checker](https://hub.docker.com/r/mstruebing/editorconfig-checker)
+You can use **editorconfig-checker** in your GitHub Actions workflows to
automatically check your codebase for `.editorconfig` compliance on every push
or pull request.
-## Continuous Integration
+Example workflow step:
+
+```yaml
+- name: Set up editorconfig-checker
+ uses: editorconfig-checker/action-editorconfig-checker@main
+
+- name: Run editorconfig-checker
+ run: editorconfig-checker
+```
+
+See also: [action-editorconfig-checker
repository](https://github.com/editorconfig-checker/action-editorconfig-checker)
+
+### GitLab CI
+
+The [ss-open/ci/recipes project](https://gitlab.com/ss-open/ci/recipes) offers
a ready to use lint job integrating editorconfig-checker.
+
+- Main documentation:
<https://gitlab.com/ss-open/ci/recipes/-/blob/main/README.md>
+- Editorconfig job specific documentation:
<https://gitlab.com/ss-open/ci/recipes/-/blob/main/stages/lint/editorconfig/README.md>
### Mega-Linter
@@ -510,17 +575,10 @@
- EDITORCONFIG
```
-### GitLab CI
-
-The [ss-open/ci/recipes project](https://gitlab.com/ss-open/ci/recipes) offers
a ready to use lint job integrating editorconfig-checker.
-
-- Main documentation:
<https://gitlab.com/ss-open/ci/recipes/-/blob/main/README.md>
-- Editorconfig job specific documentation:
<https://gitlab.com/ss-open/ci/recipes/-/blob/main/stages/lint/editorconfig/README.md>
-
## Support
-If you have any questions, suggestions, need a wrapper for a programming
language or just want to chat join #editorconfig-checker on freenode(IRC).
-If you don't have an IRC-client set up you can use the [freenode
webchat](https://webchat.freenode.net/?channels=editorconfig-checker).
+If you have any questions, suggestions, need a wrapper for a programming
language or just want to chat join `#editorconfig-checker` on [Libera
IRC](https://libera.chat/).
+If you do not have an IRC client you can also use a
[webclient](https://libera.chat/guides/clients#connecting-without-installing-anything).
## Contributing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-checker-3.6.0/cmd/editorconfig-checker/main.go
new/editorconfig-checker-3.6.1/cmd/editorconfig-checker/main.go
--- old/editorconfig-checker-3.6.0/cmd/editorconfig-checker/main.go
2025-11-25 17:39:46.000000000 +0100
+++ new/editorconfig-checker-3.6.1/cmd/editorconfig-checker/main.go
2026-01-28 21:45:37.000000000 +0100
@@ -22,7 +22,7 @@
// version is used for the help and to verify against the version stored in
the config file
// version is dynamically set at compiletime
-var version string = "v3.6.0" // x-release-please-version
+var version string = "v3.6.1" // x-release-please-version
// defaultConfigFileNames determines the file names where the config is located
var defaultConfigFileNames = []string{".editorconfig-checker.json", ".ecrc"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-checker-3.6.0/default.nix
new/editorconfig-checker-3.6.1/default.nix
--- old/editorconfig-checker-3.6.0/default.nix 2025-11-25 17:39:46.000000000
+0100
+++ new/editorconfig-checker-3.6.1/default.nix 2026-01-28 21:45:37.000000000
+0100
@@ -2,7 +2,7 @@
with pkgs;
buildGoPackage rec {
- version = "v3.6.0" # x-release-please-version
+ version = "v3.6.1" # x-release-please-version
# create link so the tool can also be executed as `ec`
postInstall = ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-checker-3.6.0/go.mod
new/editorconfig-checker-3.6.1/go.mod
--- old/editorconfig-checker-3.6.0/go.mod 2025-11-25 17:39:46.000000000
+0100
+++ new/editorconfig-checker-3.6.1/go.mod 2026-01-28 21:45:37.000000000
+0100
@@ -3,10 +3,10 @@
go 1.24.0
require (
- github.com/editorconfig/editorconfig-core-go/v2 v2.6.3
- github.com/gabriel-vasile/mimetype v1.4.11
+ github.com/editorconfig/editorconfig-core-go/v2 v2.6.4
+ github.com/gabriel-vasile/mimetype v1.4.12
github.com/wlynxg/chardet v1.0.4
- golang.org/x/text v0.31.0
+ golang.org/x/text v0.33.0
)
require (
@@ -25,7 +25,7 @@
)
require (
- github.com/gkampitakis/go-snaps v0.5.16
- golang.org/x/mod v0.29.0 // indirect
+ github.com/gkampitakis/go-snaps v0.5.19
+ golang.org/x/mod v0.31.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-checker-3.6.0/go.sum
new/editorconfig-checker-3.6.1/go.sum
--- old/editorconfig-checker-3.6.0/go.sum 2025-11-25 17:39:46.000000000
+0100
+++ new/editorconfig-checker-3.6.1/go.sum 2026-01-28 21:45:37.000000000
+0100
@@ -2,14 +2,14 @@
github.com/davecgh/go-spew v1.1.0/go.mod
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/editorconfig/editorconfig-core-go/v2 v2.6.3
h1:XVUp6qW3BIkmM3/1EkrHpa6bL56APOynfXcZEmIgOhs=
-github.com/editorconfig/editorconfig-core-go/v2 v2.6.3/go.mod
h1:ThHVc+hqbUsmE1wmK/MASpQEhCleWu1JDJDNhUOMy0c=
-github.com/gabriel-vasile/mimetype v1.4.11
h1:AQvxbp830wPhHTqc1u7nzoLT+ZFxGY7emj5DR5DYFik=
-github.com/gabriel-vasile/mimetype v1.4.11/go.mod
h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
+github.com/editorconfig/editorconfig-core-go/v2 v2.6.4
h1:CHwUbBVVyKWRX9kt5A/OtwhYUJB32DrFp9xzmjR6cac=
+github.com/editorconfig/editorconfig-core-go/v2 v2.6.4/go.mod
h1:JWRVKHdVW+dkv6F8p+xGCa6a+TyMrqsFbFkSs/aQkrQ=
+github.com/gabriel-vasile/mimetype v1.4.12
h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw=
+github.com/gabriel-vasile/mimetype v1.4.12/go.mod
h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
github.com/gkampitakis/ciinfo v0.3.2
h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs=
github.com/gkampitakis/ciinfo v0.3.2/go.mod
h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo=
-github.com/gkampitakis/go-snaps v0.5.16
h1:tihmwY3YMe+kv0hohos2AB4yM1SiRUE9VFleGEnKt1Q=
-github.com/gkampitakis/go-snaps v0.5.16/go.mod
h1:gC3YqxQTPyIXvQrw/Vpt3a8VqR1MO8sVpZFWN4DGwNs=
+github.com/gkampitakis/go-snaps v0.5.19
h1:hUJlCQOpTt1M+kSisMwioDWZDWpDtdAvUhvWCx1YGW0=
+github.com/gkampitakis/go-snaps v0.5.19/go.mod
h1:gC3YqxQTPyIXvQrw/Vpt3a8VqR1MO8sVpZFWN4DGwNs=
github.com/goccy/go-yaml v1.18.0
h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
github.com/goccy/go-yaml v1.18.0/go.mod
h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
@@ -51,10 +51,10 @@
github.com/tidwall/sjson v1.2.5/go.mod
h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
github.com/wlynxg/chardet v1.0.4
h1:hkI71Dx8v3RiAz3XKV5lJEh9QfKo7xXKUmYJQeIMlpo=
github.com/wlynxg/chardet v1.0.4/go.mod
h1:HLQMNsa0w4MkH2e7waQaFD+Yh85riFFTLhFtP8fsdbQ=
-golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
-golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
-golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
-golang.org/x/text v0.31.0/go.mod
h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
+golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI=
+golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg=
+golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
+golang.org/x/text v0.33.0/go.mod
h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-checker-3.6.0/pkg/config/config.go
new/editorconfig-checker-3.6.1/pkg/config/config.go
--- old/editorconfig-checker-3.6.0/pkg/config/config.go 2025-11-25
17:39:46.000000000 +0100
+++ new/editorconfig-checker-3.6.1/pkg/config/config.go 2026-01-28
21:45:37.000000000 +0100
@@ -107,7 +107,7 @@
"~$",
}
-// keep synced with pkg/validation/validation.go#L20
+// keep synced with pkg/validation/validation.go#L20 (but no escaping)
var defaultAllowedContentTypes = []string{
"text/",
"application/octet-stream",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/editorconfig-checker-3.6.0/pkg/config/config_test.go
new/editorconfig-checker-3.6.1/pkg/config/config_test.go
--- old/editorconfig-checker-3.6.0/pkg/config/config_test.go 2025-11-25
17:39:46.000000000 +0100
+++ new/editorconfig-checker-3.6.1/pkg/config/config_test.go 2026-01-28
21:45:37.000000000 +0100
@@ -116,7 +116,7 @@
mergeConfig := Config{
ShowVersion: true,
- Version: "v3.6.0", // x-release-please-version
+ Version: "v3.6.1", // x-release-please-version
Help: true,
DryRun: true,
Path: "some-other",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-checker-3.6.0/pkg/validation/validation.go
new/editorconfig-checker-3.6.1/pkg/validation/validation.go
--- old/editorconfig-checker-3.6.0/pkg/validation/validation.go 2025-11-25
17:39:46.000000000 +0100
+++ new/editorconfig-checker-3.6.1/pkg/validation/validation.go 2026-01-28
21:45:37.000000000 +0100
@@ -30,8 +30,8 @@
"^application/json$",
"^application/x-ndjson$",
"^application/xml$",
- "+json",
- "+xml$",
+ "\\+json",
+ "\\+xml$",
}
// ValidateFile Validates a single file and returns the errors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-checker-3.6.0/pkg/validation/validation_test.go
new/editorconfig-checker-3.6.1/pkg/validation/validation_test.go
--- old/editorconfig-checker-3.6.0/pkg/validation/validation_test.go
2025-11-25 17:39:46.000000000 +0100
+++ new/editorconfig-checker-3.6.1/pkg/validation/validation_test.go
2026-01-28 21:45:37.000000000 +0100
@@ -169,4 +169,12 @@
if len(result) != 1 {
t.Error("Should have one error, got", result)
}
+
+ configuration = config.NewConfig(nil)
+ configuration.Verbose = true
+ configuration.Disable.Indentation = true
+ result = ValidateFile("./../../testfiles/favorites.gpx.txt",
*configuration)
+ if len(result) != 0 {
+ t.Error("Should have no errors when validating valid file,
got", result)
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/editorconfig-checker-3.6.0/testfiles/favorites.gpx.txt
new/editorconfig-checker-3.6.1/testfiles/favorites.gpx.txt
--- old/editorconfig-checker-3.6.0/testfiles/favorites.gpx.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/editorconfig-checker-3.6.1/testfiles/favorites.gpx.txt 2026-01-28
21:45:37.000000000 +0100
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<gpx xmlns="http://www.topografix.com/GPX/1/1"
xmlns:osmand="https://osmand.net"
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1"
creator="OsmAnd+ 4.9.10" xsi:schemaLocation="http://www.topografix.com/GPX/1/1
http://www.topografix.com/GPX/1/1/gpx.xsd">
+ <metadata>
+ <name>favorites</name>
+ </metadata>
+ <extensions>
+ <osmand:points_groups>
+ <group name="work" color="#EECC22" icon="special_star"
background="circle"/>
+ </osmand:points_groups>
+ </extensions>
+</gpx>
++++++ editorconfig-checker.obsinfo ++++++
--- /var/tmp/diff_new_pack.tX8BcL/_old 2026-01-30 18:27:21.922343473 +0100
+++ /var/tmp/diff_new_pack.tX8BcL/_new 2026-01-30 18:27:21.926343641 +0100
@@ -1,5 +1,5 @@
name: editorconfig-checker
-version: 3.6.0
-mtime: 1764088786
-commit: 6b2f463397341e827af22305a5630d26a9aedc21
+version: 3.6.1
+mtime: 1769633137
+commit: aa06cea887b26f372f9368aa53665266ec6dc364
++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/.editorconfig
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/.editorconfig
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/.editorconfig
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/.editorconfig
2026-01-28 21:45:37.000000000 +0100
@@ -9,10 +9,18 @@
indent_style = space
indent_size = 2
-[{Makefile,go.mod,go.sum,*.go,.gitmodules}]
+[{Makefile,*.go,.gitmodules}]
indent_style = tab
indent_size = 4
+[go.{mod,work,work.sum,sum}]
+charset = unset
+end_of_line = unset
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+indent_style = unset
+indent_size = unset
+
[*.md]
indent_size = 4
trim_trailing_whitespace = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/.golangci.yml
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/.golangci.yml
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/.golangci.yml
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/.golangci.yml
2026-01-28 21:45:37.000000000 +0100
@@ -1,40 +1,65 @@
-linters-settings:
- depguard:
- rules:
- main:
- files:
- - "!**/internal/**/*.go"
- - "!$test"
- allow:
- - $gostd
- - "github.com/editorconfig/editorconfig-core-go/v2"
- - "github.com/hashicorp/go-multierror"
- - "golang.org/x/mod/semver"
- - "gopkg.in/ini.v1"
- deny: []
- internal:
- files:
- - "**/internal/**/*.go"
- - "!$test"
- allow:
- - $gostd
- - "github.com/google/go-cmp"
- gci:
- sections:
- - standard
- - default
- - prefix(github.com/editorconfig/editorconfig-core-go)
- cyclop:
- max-complexity: 15
- package-average: 10
-
+version: "2"
linters:
- enable-all: true
+ default: all
disable:
- exhaustruct
- mnd
- tagliatelle
- - tenv
- - typecheck
- varnamelen
- fast: false
+ - wsl
+ settings:
+ cyclop:
+ max-complexity: 15
+ package-average: 10
+ depguard:
+ rules:
+ internal:
+ files:
+ - '**/internal/**/*.go'
+ - '!$test'
+ allow:
+ - $gostd
+ - github.com/google/go-cmp
+ main:
+ files:
+ - '!**/internal/**/*.go'
+ - '!$test'
+ allow:
+ - $gostd
+ - github.com/editorconfig/editorconfig-core-go/v2
+ - github.com/hashicorp/go-multierror
+ - golang.org/x/mod/semver
+ - gopkg.in/ini.v1
+ wsl_v5:
+ allow-first-in-block: true
+ allow-whole-block: false
+ branch-max-lines: 2
+ exclusions:
+ generated: lax
+ presets:
+ - comments
+ - common-false-positives
+ - legacy
+ - std-error-handling
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ enable:
+ - gci
+ - gofmt
+ - gofumpt
+ - goimports
+ settings:
+ gci:
+ sections:
+ - standard
+ - default
+ - prefix(github.com/editorconfig/editorconfig-core-go)
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/CHANGELOG.md
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/CHANGELOG.md
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/CHANGELOG.md
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/CHANGELOG.md
2026-01-28 21:45:37.000000000 +0100
@@ -1,8 +1,14 @@
# Change log
+## v2.6.4 - 2025-12-16
+
+- Target Go 1.24
+- Bump x/mod to 0.31
+- Typos
+
## v2.6.3 - 2025-03-12
-- Targets Go 1.22
+- Target Go 1.22
- Bump x/mod to 0.23
- Bump google/go-cmp to 0.7.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/cached_parser.go
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/cached_parser.go
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/cached_parser.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/cached_parser.go
2026-01-28 21:45:37.000000000 +0100
@@ -38,25 +38,27 @@
func (parser *CachedParser) ParseIniGraceful(filename string) (*Editorconfig,
error, error) {
var warning error
+ empty := (*Editorconfig)(nil)
+
ec, ok := parser.editorconfigs[filename]
if !ok {
fp, err := os.Open(filename)
if err != nil {
- return nil, nil, fmt.Errorf("error opening %q: %w",
filename, err)
+ return empty, nil, fmt.Errorf("error opening %q: %w",
filename, err)
}
defer fp.Close()
iniFile, err := ini.Load(fp)
if err != nil {
- return nil, nil, fmt.Errorf("error loading ini file %q:
%w", filename, err)
+ return empty, nil, fmt.Errorf("error loading ini file
%q: %w", filename, err)
}
var warn error
ec, warn, err = newEditorconfig(iniFile)
if err != nil {
- return nil, nil, fmt.Errorf("error creating config:
%w", err)
+ return empty, nil, fmt.Errorf("error creating config:
%w", err)
}
if warn != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/config.go
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/config.go
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/config.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/config.go
2026-01-28 21:45:37.000000000 +0100
@@ -39,9 +39,11 @@
config.Parser = new(SimpleParser)
}
+ empty := (*Definition)(nil)
+
absFilename, err := filepath.Abs(filename)
if err != nil {
- return nil, nil, fmt.Errorf("cannot get absolute path for %q:
%w", filename, err)
+ return empty, nil, fmt.Errorf("cannot get absolute path for %q:
%w", filename, err)
}
ecFile := config.Name
@@ -59,7 +61,7 @@
}
if ok := semver.IsValid(version); !ok {
- return nil, nil, fmt.Errorf("version %s error: %w",
config.Version, ErrInvalidVersion)
+ return empty, nil, fmt.Errorf("version %s error: %w",
config.Version, ErrInvalidVersion)
}
definition.version = version
@@ -81,7 +83,7 @@
continue
}
- return nil, nil, fmt.Errorf("cannot parse the ini file
%q: %w", ecFile, err)
+ return empty, nil, fmt.Errorf("cannot parse the ini
file %q: %w", ecFile, err)
}
// give it the current config.
@@ -97,7 +99,7 @@
def, err := ec.GetDefinitionForFilename(relativeFilename)
if err != nil {
- return nil, nil, fmt.Errorf("cannot get definition for
%q: %w", relativeFilename, err)
+ return empty, nil, fmt.Errorf("cannot get definition
for %q: %w", relativeFilename, err)
}
definition.merge(def)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/definition.go
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/definition.go
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/definition.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/definition.go
2026-01-28 21:45:37.000000000 +0100
@@ -33,6 +33,79 @@
return config.Load(config.Path)
}
+// InsertToIniFile writes the definition into a ini file.
+func (d *Definition) InsertToIniFile(iniFile *ini.File) {
//nolint:funlen,gocognit,cyclop
+ iniSec := iniFile.Section(d.Selector)
+
+ for k, v := range d.Raw {
+ switch k {
+ case "insert_final_newline":
+ if d.InsertFinalNewline != nil {
+ v = strconv.FormatBool(*d.InsertFinalNewline)
+ } else {
+ insertFinalNewline, ok :=
d.Raw["insert_final_newline"]
+ if !ok {
+ break
+ }
+
+ v = strings.ToLower(insertFinalNewline)
+ }
+ case "trim_trailing_whitespace":
+ if d.TrimTrailingWhitespace != nil {
+ v =
strconv.FormatBool(*d.TrimTrailingWhitespace)
+ } else {
+ trimTrailingWhitespace, ok :=
d.Raw["trim_trailing_whitespace"]
+ if !ok {
+ break
+ }
+
+ v = strings.ToLower(trimTrailingWhitespace)
+ }
+ case "charset":
+ v = d.Charset
+ case "end_of_line":
+ v = d.EndOfLine
+ case "indent_style":
+ v = d.IndentStyle
+ case "tab_width":
+ tabWidth, ok := d.Raw["tab_width"]
+ if ok && tabWidth == UnsetValue {
+ v = tabWidth
+ } else {
+ v = strconv.Itoa(d.TabWidth)
+ }
+ case "indent_size":
+ v = d.IndentSize
+ }
+
+ iniSec.NewKey(k, v) //nolint:errcheck
+ }
+
+ if _, ok := d.Raw["indent_size"]; !ok {
+ tabWidth, ok := d.Raw["tab_width"]
+
+ switch {
+ case ok && tabWidth == UnsetValue:
+ // do nothing
+ case d.TabWidth > 0:
+ iniSec.NewKey("indent_size", strconv.Itoa(d.TabWidth))
//nolint:errcheck
+ case d.IndentStyle == IndentStyleTab && (d.version == "" ||
semver.Compare(d.version, "v0.9.0") >= 0):
+ iniSec.NewKey("indent_size", IndentStyleTab)
//nolint:errcheck
+ }
+ }
+
+ if _, ok := d.Raw["tab_width"]; !ok {
+ if d.IndentSize == UnsetValue {
+ iniSec.NewKey("tab_width", d.IndentSize)
//nolint:errcheck
+ } else {
+ _, err := strconv.Atoi(d.IndentSize)
+ if err == nil {
+ iniSec.NewKey("tab_width",
d.Raw["indent_size"]) //nolint:errcheck
+ }
+ }
+ }
+}
+
// normalize fixes some values to their lowercase value.
func (d *Definition) normalize() error {
var result error
@@ -128,76 +201,3 @@
}
}
}
-
-// InsertToIniFile writes the definition into a ini file.
-func (d *Definition) InsertToIniFile(iniFile *ini.File) {
//nolint:funlen,gocognit,cyclop
- iniSec := iniFile.Section(d.Selector)
-
- for k, v := range d.Raw {
- switch k {
- case "insert_final_newline":
- if d.InsertFinalNewline != nil {
- v = strconv.FormatBool(*d.InsertFinalNewline)
- } else {
- insertFinalNewline, ok :=
d.Raw["insert_final_newline"]
- if !ok {
- break
- }
-
- v = strings.ToLower(insertFinalNewline)
- }
- case "trim_trailing_whitespace":
- if d.TrimTrailingWhitespace != nil {
- v =
strconv.FormatBool(*d.TrimTrailingWhitespace)
- } else {
- trimTrailingWhitespace, ok :=
d.Raw["trim_trailing_whitespace"]
- if !ok {
- break
- }
-
- v = strings.ToLower(trimTrailingWhitespace)
- }
- case "charset":
- v = d.Charset
- case "end_of_line":
- v = d.EndOfLine
- case "indent_style":
- v = d.IndentStyle
- case "tab_width":
- tabWidth, ok := d.Raw["tab_width"]
- if ok && tabWidth == UnsetValue {
- v = tabWidth
- } else {
- v = strconv.Itoa(d.TabWidth)
- }
- case "indent_size":
- v = d.IndentSize
- }
-
- iniSec.NewKey(k, v) //nolint:errcheck
- }
-
- if _, ok := d.Raw["indent_size"]; !ok {
- tabWidth, ok := d.Raw["tab_width"]
-
- switch {
- case ok && tabWidth == UnsetValue:
- // do nothing
- case d.TabWidth > 0:
- iniSec.NewKey("indent_size", strconv.Itoa(d.TabWidth))
//nolint:errcheck
- case d.IndentStyle == IndentStyleTab && (d.version == "" ||
semver.Compare(d.version, "v0.9.0") >= 0):
- iniSec.NewKey("indent_size", IndentStyleTab)
//nolint:errcheck
- }
- }
-
- if _, ok := d.Raw["tab_width"]; !ok {
- if d.IndentSize == UnsetValue {
- iniSec.NewKey("tab_width", d.IndentSize)
//nolint:errcheck
- } else {
- _, err := strconv.Atoi(d.IndentSize)
- if err == nil {
- iniSec.NewKey("tab_width",
d.Raw["indent_size"]) //nolint:errcheck
- }
- }
- }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/editorconfig.go
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/editorconfig.go
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/editorconfig.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/editorconfig.go
2026-01-28 21:45:37.000000000 +0100
@@ -75,8 +75,9 @@
definition := &Definition{}
raw := make(map[string]string)
- if err := iniSection.MapTo(&definition); err != nil {
- return nil, nil, fmt.Errorf("error mapping current
section: %w", err)
+ err := iniSection.MapTo(&definition)
+ if err != nil {
+ return editorConfig, nil, fmt.Errorf("error mapping
current section: %w", err)
}
// Shallow copy all the properties
@@ -87,7 +88,8 @@
definition.Raw = raw
definition.Selector = sectionStr
- if err := definition.normalize(); err != nil {
+ err = definition.normalize()
+ if err != nil {
// Append those error(s) into the warning
warning = errors.Join(warning, err)
}
@@ -156,7 +158,8 @@
func (e *Editorconfig) Serialize() ([]byte, error) {
buffer := bytes.NewBuffer(nil)
- if err := e.Write(buffer); err != nil {
+ err := e.Write(buffer)
+ if err != nil {
return nil, fmt.Errorf("cannot write into buffer: %w", err)
}
@@ -177,7 +180,8 @@
d.InsertToIniFile(iniFile)
}
- if _, err := iniFile.WriteTo(w); err != nil {
+ _, err := iniFile.WriteTo(w)
+ if err != nil {
return fmt.Errorf("error writing ini file: %w", err)
}
@@ -221,7 +225,7 @@
func ParseGraceful(r io.Reader) (*Editorconfig, error, error) {
iniFile, err := ini.Load(r)
if err != nil {
- return nil, nil, fmt.Errorf("cannot load ini file: %w", err)
+ return &Editorconfig{}, nil, fmt.Errorf("cannot load ini file:
%w", err)
}
return newEditorconfig(iniFile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/parser.go
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/parser.go
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/parser.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/parser.go
2026-01-28 21:45:37.000000000 +0100
@@ -12,7 +12,7 @@
// a joined errors and might be ignored in some cases.
ParseIniGraceful(filename string) (*Editorconfig, error, error)
- // FnmatchCase takes a pattern, a filename, and tells wether the given
filename
+ // FnmatchCase takes a pattern, a filename, and tells whether the given
filename
// matches the globbing pattern.
FnmatchCase(pattern string, filename string) (bool, error)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/editorconfig/editorconfig-core-go/v2/simple_parser.go
new/vendor/github.com/editorconfig/editorconfig-core-go/v2/simple_parser.go
--- old/vendor/github.com/editorconfig/editorconfig-core-go/v2/simple_parser.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/editorconfig/editorconfig-core-go/v2/simple_parser.go
2026-01-28 21:45:37.000000000 +0100
@@ -22,16 +22,18 @@
// ParseIni calls go-ini's Load on the file and keep warnings in a separate
error.
func (parser *SimpleParser) ParseIniGraceful(filename string) (*Editorconfig,
error, error) {
+ empty := &Editorconfig{}
+
fp, err := os.Open(filename)
if err != nil {
- return nil, nil, err //nolint:wrapcheck
+ return empty, nil, err //nolint:wrapcheck
}
defer fp.Close()
iniFile, err := ini.Load(fp)
if err != nil {
- return nil, nil, fmt.Errorf("cannot load %q: %w", filename, err)
+ return empty, nil, fmt.Errorf("cannot load %q: %w", filename,
err)
}
return newEditorconfig(iniFile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/.golangci.yml
new/vendor/github.com/gabriel-vasile/mimetype/.golangci.yml
--- old/vendor/github.com/gabriel-vasile/mimetype/.golangci.yml 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/.golangci.yml 2026-01-28
21:45:37.000000000 +0100
@@ -1,5 +1,41 @@
version: "2"
+
+run:
+ timeout: 5m
+
linters:
exclusions:
presets:
- std-error-handling
+ enable:
+ - gosec # Detects security problems.
+ # Keep all extras disabled for now to focus on the integer overflow
problem.
+ # TODO: enable these and other good linters
+ - dogsled # Detects assignments with too many blank identifiers.
+ - errcheck
+ - errchkjson # Detects unsupported types passed to json encoding
functions and reports if checks for the returned error can be omitted.
+ - exhaustive # Detects missing options in enum switch statements.
+ - gocyclo
+ - govet
+ - ineffassign
+ - makezero # Finds slice declarations with non-zero initial length.
+ - misspell # Detects commonly misspelled English words in comments.
+ - nakedret # Detects uses of naked returns.
+ - prealloc # Detects slice declarations that could potentially be
pre-allocated.
+ - predeclared # Detects code that shadows one of Go's predeclared
identifiers.
+ - reassign # Detects reassigning a top-level variable in another
package.
+ - staticcheck
+ - thelper # Detects test helpers without t.Helper().
+ - tparallel # Detects inappropriate usage of t.Parallel().
+ - unconvert # Detects unnecessary type conversions.
+ - unused
+ - usestdlibvars # Detects the possibility to use variables/constants from
the Go standard library.
+ - usetesting # Reports uses of functions with replacement inside the
testing package.
+ settings:
+ govet:
+ disable:
+ - stdversion
+ gosec:
+ excludes:
+ - G404 # Weak random number generator used in tests.
+ - G304 # File inclusion
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/github.com/gabriel-vasile/mimetype/README.md
new/vendor/github.com/gabriel-vasile/mimetype/README.md
--- old/vendor/github.com/gabriel-vasile/mimetype/README.md 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/README.md 2026-01-28
21:45:37.000000000 +0100
@@ -70,13 +70,13 @@
## Tests
In addition to unit tests,
[mimetype_tests](https://github.com/gabriel-vasile/mimetype_tests) compares the
-library with the [Unix file
utility](https://en.wikipedia.org/wiki/File_(command))
+library with [libmagic](https://en.wikipedia.org/wiki/File_(command))
for around 50 000 sample files. Check the latest comparison results
[here](https://github.com/gabriel-vasile/mimetype_tests/actions).
## Benchmarks
-Benchmarks for each file format are performed when a PR is open. The results
can
-be seen on the [workflows
page](https://github.com/gabriel-vasile/mimetype/actions/workflows/benchmark.yml).
+Benchmarks are performed when a PR is open. The results can be seen on the
+[workflows
page](https://github.com/gabriel-vasile/mimetype/actions/workflows/benchmark.yml).
Performance improvements are welcome but correctness is prioritized.
## Structure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go
2026-01-28 21:45:37.000000000 +0100
@@ -94,20 +94,6 @@
return true
}
-// LooksLikeObjectOrArray reports if first non white space character from raw
-// is either { or [. Parsing raw as JSON is a heavy operation. When receiving
some
-// text input we can skip parsing if the input does not even look like JSON.
-func LooksLikeObjectOrArray(raw []byte) bool {
- for i := range raw {
- if isSpace(raw[i]) {
- continue
- }
- return raw[i] == '{' || raw[i] == '['
- }
-
- return false
-}
-
// Parse will take out a parser from the pool depending on queryType and tries
// to parse raw bytes as JSON.
func Parse(queryType string, raw []byte) (parsed, inspected, firstToken int,
querySatisfied bool) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go
2026-01-28 21:45:37.000000000 +0100
@@ -106,10 +106,10 @@
if len(raw) < minHeaderLen || !bytes.HasPrefix(raw, []byte("Cr24")) {
return false
}
- pubkeyLen := binary.LittleEndian.Uint32(raw[8:12])
- sigLen := binary.LittleEndian.Uint32(raw[12:16])
+ pubkeyLen := int64(binary.LittleEndian.Uint32(raw[8:12]))
+ sigLen := int64(binary.LittleEndian.Uint32(raw[12:16]))
zipOffset := minHeaderLen + pubkeyLen + sigLen
- if uint32(len(raw)) < zipOffset {
+ if zipOffset < 0 || int64(len(raw)) < zipOffset {
return false
}
return Zip(raw[zipOffset:], limit)
@@ -209,3 +209,13 @@
}
return unsigned, signed
}
+
+// Zlib matches zlib compressed files.
+func Zlib(raw []byte, _ uint32) bool {
+ // https://www.ietf.org/rfc/rfc6713.txt
+ // This check has one fault: ASCII code can satisfy it; for ex:
[]byte("x ")
+ zlib := len(raw) > 1 &&
+ raw[0] == 'x' && binary.BigEndian.Uint16(raw)%31 == 0
+ // Check that the file is not a regular text to avoid false positives.
+ return zlib && !Text(raw, 0)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/meteo.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/meteo.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/meteo.go
1970-01-01 01:00:00.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/meteo.go
2026-01-28 21:45:37.000000000 +0100
@@ -0,0 +1,12 @@
+package magic
+
+import "bytes"
+
+// GRIB matches a GRIdded Binary meteorological file.
+// https://www.nco.ncep.noaa.gov/pmb/docs/on388/
+// https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/
+func GRIB(raw []byte, _ uint32) bool {
+ return len(raw) > 7 &&
+ bytes.HasPrefix(raw, []byte("GRIB")) &&
+ (raw[7] == 1 || raw[7] == 2)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go
2026-01-28 21:45:37.000000000 +0100
@@ -192,7 +192,8 @@
// Expected offset of CLSID for root storage object.
clsidOffset := sectorLength*(1+firstSecID) + 80
- if len(in) <= clsidOffset+16 {
+ // #731 offset is outside in or wrapped around due to integer overflow.
+ if len(in) <= clsidOffset+16 || clsidOffset < 0 {
return false
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go
2026-01-28 21:45:37.000000000 +0100
@@ -283,7 +283,7 @@
// Text matches a plain text file.
//
// TODO: This function does not parse BOM-less UTF16 and UTF32 files. Not
really
-// sure it should. Linux file utility also requires a BOM for UTF16 and UTF32.
+// sure it should. libmagic also requires a BOM for UTF16 and UTF32.
func Text(raw []byte, _ uint32) bool {
// First look for BOM.
if cset := charset.FromBOM(raw); cset != "" {
@@ -352,13 +352,20 @@
return jsonHelper(raw, limit, json.QueryGLTF, json.TokObject)
}
-func jsonHelper(raw []byte, limit uint32, q string, wantTok int) bool {
- if !json.LooksLikeObjectOrArray(raw) {
+func jsonHelper(raw scan.Bytes, limit uint32, q string, wantToks ...int) bool {
+ firstNonWS := raw.FirstNonWS()
+
+ hasTargetTok := false
+ for _, t := range wantToks {
+ hasTargetTok = hasTargetTok || (t&json.TokArray > 0 &&
firstNonWS == '[')
+ hasTargetTok = hasTargetTok || (t&json.TokObject > 0 &&
firstNonWS == '{')
+ }
+ if !hasTargetTok {
return false
}
lraw := len(raw)
- parsed, inspected, firstToken, querySatisfied := json.Parse(q, raw)
- if !querySatisfied || firstToken&wantTok == 0 {
+ parsed, inspected, _, querySatisfied := json.Parse(q, raw)
+ if !querySatisfied {
return false
}
@@ -369,7 +376,7 @@
// If a section of the file was provided, check if all of it was
inspected.
// In other words, check that if there was a problem parsing, that
problem
- // occured at the last byte in the input.
+ // occurred at the last byte in the input.
return inspected == lraw && lraw > 0
}
@@ -536,3 +543,57 @@
return bytes.Equal(raw, []byte{0xEF, 0xBB, 0xBF, 0x57, 0x45, 0x42,
0x56, 0x54, 0x54}) || // UTF-8 BOM and "WEBVTT"
bytes.Equal(raw, []byte{0x57, 0x45, 0x42, 0x56, 0x54, 0x54}) //
"WEBVTT"
}
+
+type rfc822Hint struct {
+ h []byte
+ matchFlags scan.Flags
+}
+
+// The hints come from libmagic, but the implementation is bit different.
libmagic
+// only checks if the file starts with the hint, while we additionally look for
+// a secondary hint in the first few lines of input.
+func RFC822(raw []byte, limit uint32) bool {
+ b := scan.Bytes(raw)
+
+ // Keep hints here to avoid instantiating them several times in
lineHasRFC822Hint.
+ // The alternative is to make them a package level var, but then they'd
go
+ // on the heap.
+ // Some of the hints are IgnoreCase, some not. I selected based on what
libmagic
+ // does and based on personal observations from sample files.
+ hints := []rfc822Hint{
+ {[]byte("From: "), 0},
+ {[]byte("To: "), 0},
+ {[]byte("CC: "), scan.IgnoreCase},
+ {[]byte("Date: "), 0},
+ {[]byte("Subject: "), 0},
+ {[]byte("Received: "), 0},
+ {[]byte("Relay-Version: "), 0},
+ {[]byte("#! rnews"), 0},
+ {[]byte("N#! rnews"), 0},
+ {[]byte("Forward to"), 0},
+ {[]byte("Pipe to"), 0},
+ {[]byte("DELIVERED-TO: "), scan.IgnoreCase},
+ {[]byte("RETURN-PATH: "), scan.IgnoreCase},
+ {[]byte("Content-Type: "), 0},
+ {[]byte("Content-Transfer-Encoding: "), 0},
+ }
+ if !lineHasRFC822Hint(b.Line(), hints) {
+ return false
+ }
+ for i := 0; i < 20; i++ {
+ if lineHasRFC822Hint(b.Line(), hints) {
+ return true
+ }
+ }
+
+ return false
+}
+
+func lineHasRFC822Hint(b scan.Bytes, hints []rfc822Hint) bool {
+ for _, h := range hints {
+ if b.Match(h.h, h.matchFlags) > -1 {
+ return true
+ }
+ }
+ return false
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/video.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/video.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/video.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/video.go
2026-01-28 21:45:37.000000000 +0100
@@ -69,9 +69,9 @@
// vintWidth parses the variable-integer width in matroska containers
func vintWidth(v int) int {
- mask, max, num := 128, 8, 1
- for num < max && v&mask == 0 {
- mask = mask >> 1
+ mask, nTimes, num := 128, 8, 1
+ for num < nTimes && v&mask == 0 {
+ mask >>= 1
num++
}
return num
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go
2026-01-28 21:45:37.000000000 +0100
@@ -85,10 +85,14 @@
// (instead of relying on offsets told by the file.)
func Jar(raw []byte, limit uint32) bool {
return executableJar(raw) ||
+ // First entry must be an empty META-INF directory or the
manifest.
+ // There is no specification saying that, but the jar reader
and writer
+ // implementations from Java do it that way.
+ //
https://github.com/openjdk/jdk/blob/88c4678eed818cbe9380f35352e90883fed27d33/src/java.base/share/classes/java/util/jar/JarInputStream.java#L170-L173
zipHas(raw, zipEntries{{
- name: []byte("META-INF/MANIFEST.MF"),
- }, {
name: []byte("META-INF/"),
+ }, {
+ name: []byte("META-INF/MANIFEST.MF"),
}}, 1)
}
@@ -127,11 +131,14 @@
func (z zipEntries) match(file []byte) bool {
for i := range z {
- if z[i].dir && bytes.HasPrefix(file, z[i].name) {
- return true
- }
- if bytes.Equal(file, z[i].name) {
- return true
+ if z[i].dir {
+ if bytes.HasPrefix(file, z[i].name) {
+ return true
+ }
+ } else {
+ if bytes.Equal(file, z[i].name) {
+ return true
+ }
}
}
return false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go
new/vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go
--- old/vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go
2026-01-28 21:45:37.000000000 +0100
@@ -35,6 +35,19 @@
}
}
+// FirstNonWS returns the first non-whitespace character from b,
+// or 0x00 if no such character is found.
+func (b Bytes) FirstNonWS() byte {
+ for i := range b {
+ if ByteIsWS(b[i]) {
+ continue
+ }
+ return b[i]
+ }
+
+ return 0x00
+}
+
// Peek one byte from b or 0x00 if b is empty.
func (b *Bytes) Peek() byte {
if len(*b) > 0 {
@@ -63,8 +76,8 @@
return nil
}
-// PopUntil will advance b until, but not including, the first occurence of
stopAt
-// character. If no occurence is found, then it will advance until the end of
b.
+// PopUntil will advance b until, but not including, the first occurrence of
stopAt
+// character. If no occurrence is found, then it will advance until the end of
b.
// The returned Bytes is a slice of all the bytes that we're advanced over.
func (b *Bytes) PopUntil(stopAt ...byte) Bytes {
if len(*b) == 0 {
@@ -77,7 +90,7 @@
prefix := (*b)[:i]
*b = (*b)[i:]
- return Bytes(prefix)
+ return prefix
}
// ReadSlice is the same as PopUntil, but the returned value includes stopAt
as well.
@@ -94,7 +107,7 @@
prefix := (*b)[:i]
*b = (*b)[i:]
- return Bytes(prefix)
+ return prefix
}
// Line returns the first line from b and advances b with the length of the
@@ -117,7 +130,7 @@
// If b length is less than readLimit, it means we received an incomplete file
// and proceed with dropping the last line.
func (b *Bytes) DropLastLine(readLimit uint32) {
- if readLimit == 0 || uint32(len(*b)) < readLimit {
+ if readLimit == 0 || uint64(len(*b)) < uint64(readLimit) {
return
}
@@ -151,7 +164,7 @@
FullWord
)
-// Search for occurences of pattern p inside b at any index.
+// Search for occurrences of pattern p inside b at any index.
// It returns the index where p was found in b and how many bytes were needed
// for matching the pattern.
func (b Bytes) Search(p []byte, flags Flags) (i int, l int) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/github.com/gabriel-vasile/mimetype/mime.go
new/vendor/github.com/gabriel-vasile/mimetype/mime.go
--- old/vendor/github.com/gabriel-vasile/mimetype/mime.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/mime.go 2026-01-28
21:45:37.000000000 +0100
@@ -2,6 +2,7 @@
import (
"mime"
+ "slices"
"strings"
"github.com/gabriel-vasile/mimetype/internal/charset"
@@ -58,10 +59,8 @@
return true
}
- for _, alias := range m.aliases {
- if alias == expectedMIME {
- return true
- }
+ if slices.Contains(m.aliases, expectedMIME) {
+ return true
}
return false
@@ -180,10 +179,8 @@
if mime == m.mime {
return m
}
- for _, n := range m.aliases {
- if n == mime {
- return m
- }
+ if slices.Contains(m.aliases, mime) {
+ return m
}
for _, c := range m.children {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md
new/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md
--- old/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md
2026-01-28 21:45:37.000000000 +0100
@@ -1,4 +1,4 @@
-## 192 Supported MIME types
+## 195 Supported MIME types
This file is automatically generated when running tests. Do not edit manually.
Extension | MIME type <br> Aliases | Hierarchy
@@ -152,6 +152,8 @@
**.chm** | **application/vnd.ms-htmlhelp** | chm>root
**.wpd** | **application/vnd.wordperfect** | wpd>root
**.dxf** | **image/vnd.dxf** | dxf>root
+**.grb** | **application/grib** | grb>root
+**n/a** | **application/zlib** | zlib>root
**.txt** | **text/plain** | txt>root
**.svg** | **image/svg+xml** | svg>txt>root
**.html** | **text/html** | html>txt>root
@@ -195,3 +197,4 @@
**.pgm** | **image/x-portable-graymap** | pgm>txt>root
**.ppm** | **image/x-portable-pixmap** | ppm>txt>root
**.pam** | **image/x-portable-arbitrarymap** | pam>txt>root
+**.eml** | **message/rfc822** | eml>txt>root
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/github.com/gabriel-vasile/mimetype/tree.go
new/vendor/github.com/gabriel-vasile/mimetype/tree.go
--- old/vendor/github.com/gabriel-vasile/mimetype/tree.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/github.com/gabriel-vasile/mimetype/tree.go 2026-01-28
21:45:37.000000000 +0100
@@ -24,7 +24,7 @@
woff2, otf, ttc, eot, wasm, shx, dbf, dcm, rar, djvu, mobi, lit, bpg,
cbor,
sqlite3, dwg, nes, lnk, macho, qcp, icns, hdr, mrc, mdb, accdb, zstd,
cab,
rpm, xz, lzip, torrent, cpio, tzif, xcf, pat, gbr, glb, cabIS, jxr,
parquet,
- oneNote, chm, wpd, dxf,
+ oneNote, chm, wpd, dxf, grib, zlib,
// Keep text last because it is the slowest check.
text,
)
@@ -82,7 +82,7 @@
alias("application/x-ogg")
oggAudio = newMIME("audio/ogg", ".oga", magic.OggAudio)
oggVideo = newMIME("video/ogg", ".ogv", magic.OggVideo)
- text = newMIME("text/plain", ".txt", magic.Text, svg, html, xml,
php, js, lua, perl, python, ruby, json, ndJSON, rtf, srt, tcl, csv, tsv, vCard,
iCalendar, warc, vtt, shell, netpbm, netpgm, netppm, netpam)
+ text = newMIME("text/plain", ".txt", magic.Text, svg, html, xml,
php, js, lua, perl, python, ruby, json, ndJSON, rtf, srt, tcl, csv, tsv, vCard,
iCalendar, warc, vtt, shell, netpbm, netpgm, netppm, netpam, rfc822)
xml = newMIME("text/xml", ".xml", magic.XML, rss, atom, x3d, kml,
xliff, collada, gml, gpx, tcx, amf, threemf, xfdf, owl2, xhtml).
alias("application/xml")
xhtml = newMIME("application/xhtml+xml", ".html", magic.XHTML)
@@ -287,4 +287,7 @@
chm = newMIME("application/vnd.ms-htmlhelp", ".chm", magic.CHM)
wpd = newMIME("application/vnd.wordperfect", ".wpd", magic.WPD)
dxf = newMIME("image/vnd.dxf", ".dxf", magic.DXF)
+ rfc822 = newMIME("message/rfc822", ".eml", magic.RFC822)
+ grib = newMIME("application/grib", ".grb", magic.GRIB)
+ zlib = newMIME("application/zlib", "", magic.Zlib)
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gkampitakis/go-snaps/snaps/matchInlineSnapshot.go
new/vendor/github.com/gkampitakis/go-snaps/snaps/matchInlineSnapshot.go
--- old/vendor/github.com/gkampitakis/go-snaps/snaps/matchInlineSnapshot.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/github.com/gkampitakis/go-snaps/snaps/matchInlineSnapshot.go
2026-01-28 21:45:37.000000000 +0100
@@ -8,6 +8,7 @@
"go/parser"
"go/token"
"os"
+ "strconv"
"strings"
"sync"
@@ -226,10 +227,7 @@
/* AST Code */
func createInlineArgument(s string) ast.Expr {
- v := fmt.Sprintf("`%s`", s)
- if isSingleline(s) {
- v = fmt.Sprintf("%q", s)
- }
+ v := getInlineStringValue(s)
return &ast.CallExpr{
Fun: &ast.SelectorExpr{
@@ -243,6 +241,14 @@
}
}
+func getInlineStringValue(s string) string {
+ if strconv.Quote(s) != `"`+s+`"` {
+ return fmt.Sprintf("`%s`", s)
+ }
+
+ return fmt.Sprintf("%q", s)
+}
+
func traverseMatchInlineSnapshotAst(astFile *ast.File, fn func(*ast.CallExpr)
bool) {
breakEarly := false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/github.com/gkampitakis/go-snaps/snaps/utils.go
new/vendor/github.com/gkampitakis/go-snaps/snaps/utils.go
--- old/vendor/github.com/gkampitakis/go-snaps/snaps/utils.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/github.com/gkampitakis/go-snaps/snaps/utils.go 2026-01-28
21:45:37.000000000 +0100
@@ -2,7 +2,6 @@
import (
"bufio"
- "bytes"
"errors"
"io"
"math"
@@ -116,7 +115,6 @@
// snapshotScanner returns a new *bufio.Scanner with a `MaxScanTokenSize ==
math.MaxInt` to read from r.
func snapshotScanner(r io.Reader) *bufio.Scanner {
s := bufio.NewScanner(r)
- s.Split(scanLines)
s.Buffer([]byte{}, math.MaxInt)
return s
}
@@ -138,23 +136,6 @@
return updateVAR == "true"
}
-// code taken from bufio/scan.go, modified to not terminal \r from the data.
-func scanLines(data []byte, atEOF bool) (advance int, token []byte, err error)
{
- if atEOF && len(data) == 0 {
- return 0, nil, nil
- }
- if i := bytes.IndexByte(data, '\n'); i >= 0 {
- // We have a full newline-terminated line.
- return i + 1, data[0:i], nil
- }
- // If we're at EOF, we have a final, non-terminated line. Return it.
- if atEOF {
- return len(data), data, nil
- }
- // Request more data.
- return 0, nil, nil
-}
-
// shouldCreate determines whether snapshots should be created
func shouldCreate(u *bool) bool {
if updateVAR == "always" {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/golang.org/x/mod/semver/semver.go
new/vendor/golang.org/x/mod/semver/semver.go
--- old/vendor/golang.org/x/mod/semver/semver.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/mod/semver/semver.go 2026-01-28
21:45:37.000000000 +0100
@@ -45,8 +45,8 @@
// Canonical returns the canonical formatting of the semantic version v.
// It fills in any missing .MINOR or .PATCH and discards build metadata.
-// Two semantic versions compare equal only if their canonical formattings
-// are identical strings.
+// Two semantic versions compare equal only if their canonical formatting
+// is an identical string.
// The canonical invalid semantic version is the empty string.
func Canonical(v string) string {
p, ok := parse(v)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/golang.org/x/text/encoding/japanese/eucjp.go
new/vendor/golang.org/x/text/encoding/japanese/eucjp.go
--- old/vendor/golang.org/x/text/encoding/japanese/eucjp.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/japanese/eucjp.go 2026-01-28
21:45:37.000000000 +0100
@@ -17,9 +17,9 @@
var EUCJP encoding.Encoding = &eucJP
var eucJP = internal.Encoding{
- &internal.SimpleEncoding{eucJPDecoder{}, eucJPEncoder{}},
- "EUC-JP",
- identifier.EUCPkdFmtJapanese,
+ Encoding: &internal.SimpleEncoding{Decoder: eucJPDecoder{}, Encoder:
eucJPEncoder{}},
+ Name: "EUC-JP",
+ MIB: identifier.EUCPkdFmtJapanese,
}
type eucJPDecoder struct{ transform.NopResetter }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go
new/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go
--- old/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go 2026-01-28
21:45:37.000000000 +0100
@@ -17,9 +17,9 @@
var ISO2022JP encoding.Encoding = &iso2022JP
var iso2022JP = internal.Encoding{
- internal.FuncEncoding{iso2022JPNewDecoder, iso2022JPNewEncoder},
- "ISO-2022-JP",
- identifier.ISO2022JP,
+ Encoding: internal.FuncEncoding{Decoder: iso2022JPNewDecoder, Encoder:
iso2022JPNewEncoder},
+ Name: "ISO-2022-JP",
+ MIB: identifier.ISO2022JP,
}
func iso2022JPNewDecoder() transform.Transformer {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/golang.org/x/text/encoding/japanese/shiftjis.go
new/vendor/golang.org/x/text/encoding/japanese/shiftjis.go
--- old/vendor/golang.org/x/text/encoding/japanese/shiftjis.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/japanese/shiftjis.go 2026-01-28
21:45:37.000000000 +0100
@@ -18,9 +18,9 @@
var ShiftJIS encoding.Encoding = &shiftJIS
var shiftJIS = internal.Encoding{
- &internal.SimpleEncoding{shiftJISDecoder{}, shiftJISEncoder{}},
- "Shift JIS",
- identifier.ShiftJIS,
+ Encoding: &internal.SimpleEncoding{Decoder: shiftJISDecoder{}, Encoder:
shiftJISEncoder{}},
+ Name: "Shift JIS",
+ MIB: identifier.ShiftJIS,
}
type shiftJISDecoder struct{ transform.NopResetter }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/golang.org/x/text/encoding/korean/euckr.go
new/vendor/golang.org/x/text/encoding/korean/euckr.go
--- old/vendor/golang.org/x/text/encoding/korean/euckr.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/korean/euckr.go 2026-01-28
21:45:37.000000000 +0100
@@ -20,9 +20,9 @@
var EUCKR encoding.Encoding = &eucKR
var eucKR = internal.Encoding{
- &internal.SimpleEncoding{eucKRDecoder{}, eucKREncoder{}},
- "EUC-KR",
- identifier.EUCKR,
+ Encoding: &internal.SimpleEncoding{Decoder: eucKRDecoder{}, Encoder:
eucKREncoder{}},
+ Name: "EUC-KR",
+ MIB: identifier.EUCKR,
}
type eucKRDecoder struct{ transform.NopResetter }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
new/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
--- old/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
2026-01-28 21:45:37.000000000 +0100
@@ -22,21 +22,21 @@
)
var gbk = internal.Encoding{
- &internal.SimpleEncoding{
- gbkDecoder{gb18030: false},
- gbkEncoder{gb18030: false},
+ Encoding: &internal.SimpleEncoding{
+ Decoder: gbkDecoder{gb18030: false},
+ Encoder: gbkEncoder{gb18030: false},
},
- "GBK",
- identifier.GBK,
+ Name: "GBK",
+ MIB: identifier.GBK,
}
var gbk18030 = internal.Encoding{
- &internal.SimpleEncoding{
- gbkDecoder{gb18030: true},
- gbkEncoder{gb18030: true},
+ Encoding: &internal.SimpleEncoding{
+ Decoder: gbkDecoder{gb18030: true},
+ Encoder: gbkEncoder{gb18030: true},
},
- "GB18030",
- identifier.GB18030,
+ Name: "GB18030",
+ MIB: identifier.GB18030,
}
type gbkDecoder struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go
new/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go
--- old/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go
2026-01-28 21:45:37.000000000 +0100
@@ -17,9 +17,9 @@
var HZGB2312 encoding.Encoding = &hzGB2312
var hzGB2312 = internal.Encoding{
- internal.FuncEncoding{hzGB2312NewDecoder, hzGB2312NewEncoder},
- "HZ-GB2312",
- identifier.HZGB2312,
+ Encoding: internal.FuncEncoding{Decoder: hzGB2312NewDecoder, Encoder:
hzGB2312NewEncoder},
+ Name: "HZ-GB2312",
+ MIB: identifier.HZGB2312,
}
func hzGB2312NewDecoder() transform.Transformer {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go
new/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go
--- old/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go
2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go
2026-01-28 21:45:37.000000000 +0100
@@ -20,9 +20,9 @@
var Big5 encoding.Encoding = &big5
var big5 = internal.Encoding{
- &internal.SimpleEncoding{big5Decoder{}, big5Encoder{}},
- "Big5",
- identifier.Big5,
+ Encoding: &internal.SimpleEncoding{Decoder: big5Decoder{}, Encoder:
big5Encoder{}},
+ Name: "Big5",
+ MIB: identifier.Big5,
}
type big5Decoder struct{ transform.NopResetter }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/golang.org/x/text/encoding/unicode/unicode.go
new/vendor/golang.org/x/text/encoding/unicode/unicode.go
--- old/vendor/golang.org/x/text/encoding/unicode/unicode.go 2025-11-25
17:39:46.000000000 +0100
+++ new/vendor/golang.org/x/text/encoding/unicode/unicode.go 2026-01-28
21:45:37.000000000 +0100
@@ -60,9 +60,9 @@
}
var utf8enc = &internal.Encoding{
- &internal.SimpleEncoding{utf8Decoder{}, runes.ReplaceIllFormed()},
- "UTF-8",
- identifier.UTF8,
+ Encoding: &internal.SimpleEncoding{Decoder: utf8Decoder{}, Encoder:
runes.ReplaceIllFormed()},
+ Name: "UTF-8",
+ MIB: identifier.UTF8,
}
type utf8bomDecoder struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt 2025-11-25 17:39:46.000000000 +0100
+++ new/vendor/modules.txt 2026-01-28 21:45:37.000000000 +0100
@@ -1,7 +1,7 @@
-# github.com/editorconfig/editorconfig-core-go/v2 v2.6.3
-## explicit; go 1.22.0
+# github.com/editorconfig/editorconfig-core-go/v2 v2.6.4
+## explicit; go 1.24.0
github.com/editorconfig/editorconfig-core-go/v2
-# github.com/gabriel-vasile/mimetype v1.4.11
+# github.com/gabriel-vasile/mimetype v1.4.12
## explicit; go 1.21
github.com/gabriel-vasile/mimetype
github.com/gabriel-vasile/mimetype/internal/charset
@@ -13,7 +13,7 @@
# github.com/gkampitakis/ciinfo v0.3.2
## explicit; go 1.20
github.com/gkampitakis/ciinfo
-# github.com/gkampitakis/go-snaps v0.5.16
+# github.com/gkampitakis/go-snaps v0.5.19
## explicit; go 1.22
github.com/gkampitakis/go-snaps/internal/colors
github.com/gkampitakis/go-snaps/internal/difflib
@@ -66,10 +66,10 @@
github.com/wlynxg/chardet/cda
github.com/wlynxg/chardet/consts
github.com/wlynxg/chardet/probe
-# golang.org/x/mod v0.29.0
+# golang.org/x/mod v0.31.0
## explicit; go 1.24.0
golang.org/x/mod/semver
-# golang.org/x/text v0.31.0
+# golang.org/x/text v0.33.0
## explicit; go 1.24.0
golang.org/x/text/encoding
golang.org/x/text/encoding/charmap