1#!/bin/sh 2# Exercise the fmt -g option. 3 4# Copyright (C) 2012-2023 Free Software Foundation, Inc. 5 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 20print_ver_ fmt 21 22cat <<\_EOF_ > base || framework_failure_ 23 24@command{fmt} prefers breaking lines at the end of a sentence, and tries to 25avoid line breaks after the first word of a sentence or before the last word 26of a sentence. A @dfn{sentence break} is defined as either the end of a 27paragraph or a word ending in any of @samp{.?!}, followed by two spaces or end 28of line, ignoring any intervening parentheses or quotes. Like @TeX{}, 29@command{fmt} reads entire ''paragraphs'' before choosing line breaks; the 30algorithm is a variant of that given by 31Donald E. Knuth and Michael F. Plass 32in ''Breaking Paragraphs Into Lines'', 33@cite{Software---Practice & Experience} 34@b{11}, 11 (November 1981), 1119--1184. 35_EOF_ 36 37fmt -g 60 -w 72 base > out || fail=1 38 39cat <<\_EOF_ > exp || framework_failure_ 40 41@command{fmt} prefers breaking lines at the end of a sentence, 42and tries to avoid line breaks after the first word of a sentence 43or before the last word of a sentence. A @dfn{sentence break} 44is defined as either the end of a paragraph or a word ending 45in any of @samp{.?!}, followed by two spaces or end of line, 46ignoring any intervening parentheses or quotes. Like @TeX{}, 47@command{fmt} reads entire ''paragraphs'' before choosing line 48breaks; the algorithm is a variant of that given by Donald 49E. Knuth and Michael F. Plass in ''Breaking Paragraphs Into 50Lines'', @cite{Software---Practice & Experience} @b{11}, 11 51(November 1981), 1119--1184. 52_EOF_ 53 54compare exp out || fail=1 55 56Exit $fail 57