# What changed in wcwidth

> 7 changes in wcwidth 0.9 from its official release notes, upgrade guides and advisories: 1 breaking, 1 security. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/pypi/wcwidth/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## wcwidth 0.9

### Breaking changes

- Trailing content in hyperlink parameter sequences is rejected. (0.9.3) — [release notes](https://github.com/jquast/wcwidth/releases/tag/0.9.3)

### Security

- Adds null pointer safeguards in utf8.c. (0.9.3) — [release notes](https://github.com/jquast/wcwidth/releases/tag/0.9.3)

### Performance

- Includes various performance gains, shortcuts and bitsets. (0.9.4) — [release notes](https://github.com/jquast/wcwidth/releases/tag/0.9.4)

### Fixes and other changes

- Fixes flag emoji width handling after control characters. (0.9.4) — [release notes](https://github.com/jquast/wcwidth/releases/tag/0.9.4)
- Hyperlink parameters are preserved across wrapped lines. (0.9.3) — [release notes](https://github.com/jquast/wcwidth/releases/tag/0.9.3)
- Fixes clip() when tabsize=0. (0.9.2) — [release notes](https://github.com/jquast/wcwidth/releases/tag/0.9.2)
- Omits an empty line from wrap() output. (0.9.2) — [release notes](https://github.com/jquast/wcwidth/releases/tag/0.9.2)
