Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix wordwrap of hyphens at limit #67

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

JaredReisinger
Copy link

If the word-thus-far is exactly at the limit and wordwrap.Write() sees a hyphen, it writes the word to the buffer and then writes hyphen, exceeding the limit. This change fixes that behavior by instead adding the hyphen to the word as a normal character, performing the existing "is the word-in-progress too long" check to add a newline, and then writing the word-in-progress (without any length check).

It is still possible to see a hyphen beyond the limit, but that's a specific case of "don't break a word", where the hyphen is considered a part of the test to its left.

Fixes #66

If the word-thus-far is exactly at the limit and `wordwrap.Write` sees a hyphen, it writes the word to the buffer *and the hyphen*, exceeding the limit. This change fixes that behavior by instead adding the byphen to the word "as normal", and *then* checking to see if the word will fit within the limit. If it does, only then will it flush the word to the buffer.

Fix muesli#66
@rwinkhart
Copy link

This fixes a bug I was experiencing when starting lines with hyphens.

I used the following simple program to demonstrate my issue:

func main() {
        fmt.Println(wrap.String(wordwrap.String("- This line wraps incorrectly on upstream reflow due to a silly bug regarding the handling of hyphens", 80), 80))
}

When run with upstream reflow, the line wraps incorrectly:

- This line wraps incorrectly on upstream reflow due to a silly bug regarding th
e
handling of hyphens

When run with this PR, the line wraps correctly:

- This line wraps incorrectly on upstream reflow due to a silly bug regarding
the handling of hyphens

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Hyphens can cause wordwrap to exceed the limit
2 participants