Hello community, here is the log from the commit of package tidy for openSUSE:Factory checked in at 2020-03-19 19:44:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tidy (Old) and /work/SRC/openSUSE:Factory/.tidy.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tidy" Thu Mar 19 19:44:44 2020 rev:24 rq:785456 version:5.7.28 Changes: -------- --- /work/SRC/openSUSE:Factory/tidy/tidy.changes 2018-06-05 12:49:48.968441228 +0200 +++ /work/SRC/openSUSE:Factory/.tidy.new.3160/tidy.changes 2020-03-19 19:48:28.968121610 +0100 @@ -1,0 +2,69 @@ +Mon Mar 16 07:07:28 UTC 2020 - Martin Pluskal <[email protected]> + +- Cleanup spec file with spec-cleaner +- Fix previous changelog entry (missing patch removal) + +------------------------------------------------------------------- +Sat Mar 14 11:24:27 UTC 2020 - Matej Cepl <[email protected]> + +- Update to the versoin 5.7.28: + - Change "tidyLocalMapItem" to "tidyLocaleMapItem" + - added OS __ANDROID__ to tidyplatform.h + - Is. #781, PR #782 - Bump to 5.7.24, for nl -h removal + - PR #769 - Dump to 5.7.23, add 'data' tag - closes #649 + - Switch 32-bit build to 'next' + - Is #797 - use 'TidyRealloc' in place of raw 'realloc' + - Update BRANCHES.md + - Is. #746 PR #747 - fix other dup 'const' modifier + - PR #762 - bump to 5.7.19 for BUILD.md fix + - Is. #791 - free some allocations + - Is. #770 #780 maybe #790 - remove 'setlocal' from lib! + - Is. #783 - Fix language detection + - Is. #781 - Drop redundant blank lines in -help + - Issue#649: added <data> tag + - PHP >= 7.1.0 recognizes tidy-html5 + - Is #752 - Replace _MSC_VER with _WIN32 + - Is #752 - Slightly enhance the API doxy docs + - Is #752 - Chg TC_MAIN_ERROR_LOAD_CONFIG to 'problems' + - Is #752 - Try STRING_MUTING_TYPE to TidyInfo + - Is #741 - add RELEASE.md document + - Is #752 - Add windows tilde expansion + - Fix extra const modifier + - Is #726 #185 - HTML5 is case sensitive for anchors. + - Is #718 PR #727 - Update to CONTRIBUTING.md.2.txt + - Is #726 #185 - HTML5 is case sensitive for anchors. + - Is #719 - Set 'muted' before any callback + - Is #713 - show-filename to errout when no warnings + - PR #712 - Bump to 5.7.11 for this merge, and fix + - PR #712 - Only allow 'auto' on 'dir' for HTML5 + - Is 697 PR #708 - Bump to 5.7.10 for this merge + - Is #721 - cast away some gcc warnings + - fix spelling mistake + - add --show-filename option to show the input filename on + output messages + - update --gnu-emacs option documentation + - Is #679 PR #695 - To 5.7.5 for this merge + - Is #684 - To 5.7.4 for this 'docs' change + - Update language_en.h + - jidanni and geoffmcl + - Is #709 - Improve message if 'implict' + - Make global attribute `dir` accept auto as well. + - Is #700 - change script parsing if in html5 mode + - Is #698 - Mention need for ':' in config file + - Is #697 - Add NOWRAP to print of pre tag + - Is #698 - Mention colon in 'man' text + - Is #686 - Add attr COLOR to W3CAttrsFor_LINK + - Is #679 - add 'priority-attributes' to -show-config + - Is #679 - some fixes for -export-config + - Is #663 - Reduce static alloc to as required + - Is #663 - Open context for gcc 2.95 port + - Is #663 - Add language limit for 'Haiku' gcc 2.95 + - Is #663 - Add 'Haiku' port, '__HAIKU__' + - Is #663 - Remove UTF-8 BOM from 6 lang. headers + - Is #663 - Small change for MSVC10 + - Issue #655 - Fix unsafe use of output buffer as input param + - Issue #656 - protect against NULL node set in loop +- Drop no longer needed patch: + 0001-Issue-656-protect-against-NULL-node-set-in-loop.diff + +------------------------------------------------------------------- Old: ---- 0001-Issue-656-protect-against-NULL-node-set-in-loop.diff 5.6.0.tar.gz 97cf741.tar.gz tidy-html5-doxygen-c0d1cd1.tar.gz New: ---- 00f1e38.tar.gz 5.7.28.tar.gz tidy-html5-doxygen-0ed35c6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tidy.spec ++++++ --- /var/tmp/diff_new_pack.K2glLo/_old 2020-03-19 19:48:30.356122354 +0100 +++ /var/tmp/diff_new_pack.K2glLo/_new 2020-03-19 19:48:30.376122364 +0100 @@ -1,7 +1,7 @@ # # spec file for package tidy # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,39 +12,36 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define regression_tests 97cf741 -%define documentation c0d1cd1 - +%define regression_tests 00f1e38 +%define documentation 0ed35c6 Name: tidy -Version: 5.6.0 +Version: 5.7.28 Release: 0 Summary: Utility to Clean Up and Pretty-print HTML, XHTML or XML Markup License: W3C Group: Productivity/Publishing/HTML/Tools -Url: https://github.com/htacg/tidy-html5 +URL: https://github.com/htacg/tidy-html5 Source0: https://github.com/htacg/tidy-html5/archive/%{version}.tar.gz # Latest version of unit tests Source1: https://github.com/htacg/tidy-html5-tests/archive/%{regression_tests}.tar.gz # Documentation generation files, extracted from # https://github.com/htacg/html-tidy.org.api.git/archive/%%{documentation}.tar.gz -# using tidy_generate_documentation.sh +# using tidy_fetch_docs.sh Source2: tidy-html5-doxygen-%{documentation}.tar.gz Source10: tidy_fetch_docs.sh Patch0: dynamic_library_build.diff Patch1: test_fixes.diff Patch2: fix_doxygen_paths.diff -Patch3: 0001-Issue-656-protect-against-NULL-node-set-in-loop.diff BuildRequires: cmake BuildRequires: doxygen BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: libxslt -BuildRequires: pkg-config -BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: pkgconfig %description Tidy is a commandline frontend to TidyLib which allows for cleaning up and @@ -88,9 +85,9 @@ Group: Development/Libraries/C and C++ Requires: glibc-devel Requires: libtidy5 = %{version} -Obsoletes: libtidy-0_99-0-devel Conflicts: libtidy-0_99-0-devel Conflicts: tidy-html5-devel +Obsoletes: libtidy-0_99-0-devel < %{version} %description -n libtidy-devel This package contains all necessary include files and libraries needed @@ -99,41 +96,33 @@ %prep %setup -q -a 1 -a 2 -n tidy-html5-%{version} mv tidy-html5-tests-* tests -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 +%autopatch -p1 %build %cmake \ -DCMAKE_SKIP_RPATH:BOOL=OFF \ -DINCLUDE_INSTALL_DIR:PATH=include/%{name} \ -DTIDY_COMPAT_HEADERS:BOOL=ON -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O0 -ggdb3" -make %{?_smp_mflags} VERBOSE=1 +%cmake_build ../tidy-html5-doxygen/build_docs.sh %install %cmake_install %post -n libtidy5 -p /sbin/ldconfig - %postun -n libtidy5 -p /sbin/ldconfig %files -%defattr(-, root, root) %{_bindir}/tidy -%{_mandir}/man1/tidy.1* +%{_mandir}/man1/tidy.1%{?ext_man} %files -n tidy-doc -%defattr(-, root, root) %doc build/docs/api/ %files -n libtidy5 -%defattr(-, root, root) %{_libdir}/libtidy*.so.* %files -n libtidy-devel -%defattr(-, root, root) %dir %{_includedir}/%{name} %{_includedir}/%{name}/tidy.h %{_includedir}/%{name}/tidybuffio.h ++++++ 5.6.0.tar.gz -> 00f1e38.tar.gz ++++++ ++++ 126730 lines of diff (skipped) ++++++ 5.6.0.tar.gz -> 5.7.28.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/README/BRANCHES.md new/tidy-html5-5.7.28/README/BRANCHES.md --- old/tidy-html5-5.6.0/README/BRANCHES.md 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/README/BRANCHES.md 2019-07-08 20:52:14.000000000 +0200 @@ -6,7 +6,7 @@ As described thoroughly in our [VERSION.md](VERSION.md) document, this means that **master** will always consist of an even-numbered minor version, and activity will remain relatively quiet unless we backport a critical bug fix from **next**. -The **next** branch, then will host the majority of our development activity, and any contributions and PR’s should be again this branch. This means that **next** will always consist of an odd minor version number. +The **next** branch, then will host the majority of our development activity, and any contributions and PR’s should be against this branch. This means that **next** will always consist of an odd minor version number. ## About Versioning diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/README/BUILD.md new/tidy-html5-5.7.28/README/BUILD.md --- old/tidy-html5-5.6.0/README/BUILD.md 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/README/BUILD.md 2019-07-08 20:52:14.000000000 +0200 @@ -50,7 +50,7 @@ ## Build PHP with the tidy-html5 library -Due to API changes in the PHP source, `buffio.h` needs to be renamed to `tidybuffio.h` in the file `ext/tidy/tidy.c` in PHP's source. +Before PHP 7.1, due to API changes in the PHP source, `buffio.h` needs to be renamed to `tidybuffio.h` in the file `ext/tidy/tidy.c` in PHP's source. That is - prior to configuring PHP run this in the PHP source directory: ~~~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/README/CONTRIBUTING.md new/tidy-html5-5.7.28/README/CONTRIBUTING.md --- old/tidy-html5-5.6.0/README/CONTRIBUTING.md 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/README/CONTRIBUTING.md 2019-07-08 20:52:14.000000000 +0200 @@ -6,16 +6,18 @@ If you are having trouble running console `Tidy`, or using the `LibTidy` API in your own project, then maybe the best places to get help is either via a comment in [Tidy Issues](https://github.com/htacg/tidy-html5/issues), or on the [Tidy Mail Archive](https://lists.w3.org/Archives/Public/html-tidy/) list. +And please do a **search** using different **key** words - see [searching](https://help.github.com/articles/searching-issues-and-pull-requests/) - to make sure it is **not** a duplicate. If something similar has been discussed before, but you still feel this is **different**, then add that related reference in your post... + In either place please start with a short subject to describe the issue. If it involves running Tidy on an html file, or if it’s an API question, make sure to include: - the version: `$ tidy -v` - what was the configuration used - a small sample input - the output - - the _expected_ output expected + - the _expected_ output - some sample code (if an API question). -These data will make replication of your issue much simpler for us. +This information will make replication of your issue much simpler for us. If you do add sample HTML input, then it can also be very helpful if that sample **passes** the W3C [validator](https://validator.w3.org/#validate_by_upload). Tidy attempts to follow all current W3C standards. @@ -39,17 +41,25 @@ ### Using Git appropriately - 1. Fork the repository to your GitHub account. - 2. Optionally create a **topical branch**, a branch whose name is succint but explains what you're doing, such as "feature/add-new-lines". - 3. Make your changes, committing at logical breaks. - 4. Push your work to your personal account. - 5. [Create a pull request](https://help.github.com/articles/using-pull-requests). - 6. Watch for comments or acceptance. + 1. Fork tidy to your own github account. Use top right `Fork` icon. + 2. Optional: Generate a SSH Key, and add it to your `https://github.com/<name>` settings, SSH and GPG keys + 3. Clone your own fork - `$ git clone [email protected]:<name>/tidy-html5.git [tidy-fork]` Or using `https`. + 4. Create a branch - `$ cd tidy-fork; $ git checkout -b <branch-name>` + 5. Edit, and commit your changes to this `branch` of your fork. + 6. Test your changes, and if appropriate run [regression](https://github.com/htacg/tidy-html5-tests/blob/next/README/RUNTESTS.md) tests. + 7. Publish the branch - `$ git push -u origin <branch-name.` - to your remote fork. + 8. Create a [Pull Request](https://help.github.com/articles/about-pull-requests/), a **PR**, here. + 9. Watch for comments, acceptance. + +Item 2., SSH Key, is optional, and only required if you want to use `clone [email protected]...`. And if you generate the ssh without a `passphrase`, things like `git push` can be done without a password. Just convenience. Alternatively you can use the `HTTPS` protocol... + +Concerning 5., editing and committing your changes, **generally** it is better to `commit` changes often, adding an appropriate commit message to each, like `$ git commit -m "Is. #NNN - reason for change" <file[s]>`. This also aids in the **PR** review. + +But the situation varies. Like adding say an option, which can mean several files have to be edited, where it is likely appropriate to combine a considerable number of edits into one commit. There can be no hard and fast rules on this. -Please note - if you want to change multiple things that don't depend on each -other, it is better to use `branches`, and make sure you check the master branch back out before making more changes - that way we can take in each change seperately, otherwise Github has a tendancy to combine your requests into one. +Please note, if you want to change **multiple** things that don't depend on each other, use **different** `branches`, and make sure you check the `next` branch back out, before making more changes in a **new** branch name. That way we can take in each **change** separately, otherwise Github will **combine** all your branch commits into one **PR**. -If you are a continuing contributor then you will need to `rebase` your fork, to htacg `next`, **before** doing any more work, and likewise branches, otherwise we may not be able to cleanly merge your PR. This is a simple process: +See below on keeping your forks `next` fully in sync with here, called `upstream` - **this is important**. ``` $ git remote add upstream [email protected]:htacg/tidy-html5.git # once only @@ -62,8 +72,28 @@ $ git push # update the fork next ``` -This can be repeated for other branches, too. +This has to be repeated for other branches, too. `$ git checkout <your-branch>`, `$ git rebase next`, fix conflict, if any, and `$ git push`, for **each** branch. It is **not** fun to keep multiple `branches` fully up-to-date with an active `upstream`... + +Of course, the **regression** tests, 6., are really only if you have made `code` changes, but it is a good habit to get into. As can be seen the `tests` are in a **separate** repo, so you must also clone that, or **fork** and clone that, to be able to present a **PR**. This is best done in the same `root` folder where where you cloned `tidy-html5`, and your `tidy-fork`. See [RUNTESTS.md](https://github.com/htacg/tidy-html5-tests/blob/next/README/RUNTESTS.md). + +In brief, for unix, to use your potentially **new** `tidy-fork` tidy executable - + +``` +$ git clone [email protected]:htacg/tidy-html5-tests.git +$ cd tidy-html5-tests/tools-sh +$ ./testall.sh ../../tidy-fork/build/cmake/tidy +$ diff -u ../cases/testbase-expects ../cases/testbase-results +``` + +Use folder `tools-cmd` for windows. Run `alltest.bat --help`. + +If the `tests` shows a different exit value, or there are differences between the `expects` and `results`, these **must** be studied, and checked, very carefully. There may be cases where the **new** `results` are correct, in which case a simultaneous **PR** for the forked `tests` **must** be created to match your forked source **PR**. + +Do **NOT** change either the root `version.txt` here, nor the `cases/_version.txt` in `tests`. This will be handled by the person that does the **PR** merge. To differentiate your modified `tidy` there is a cmake option, like `-DTIDY_RC_NUMBER=I123`, which will appear in `tidy -v` as `5.7.16.I123`. The number can be anything, but using the relevant issue value is a good choice. + +Add an `issue` if you need further **help**... thanks... ### Help Tidy Get Better It goes without saying **all help is appreciated**. We need to work together to make Tidy better! + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/README/RELEASE.md new/tidy-html5-5.7.28/README/RELEASE.md --- old/tidy-html5-5.6.0/README/RELEASE.md 1970-01-01 01:00:00.000000000 +0100 +++ new/tidy-html5-5.7.28/README/RELEASE.md 2019-07-08 20:52:14.000000000 +0200 @@ -0,0 +1,46 @@ +# HTACG HTML Tidy + +The **Release Process** is made up of many little steps. These have been documented before in issues like [394-1](https://github.com/htacg/tidy-html5/issues/394#issuecomment-206952915), and [394-2](https://github.com/htacg/tidy-html5/issues/394#issuecomment-207814834), and others, but this is to further **document** the process... + +This assumes the current `next` branch is version 5.7.XXX. See VERSION.md for chosen version scheme. + +## Release Process for 5.8.0 + +### Lead up: + + - Create the next release milestone, 5.10, if not already done... + - Decide on PR's to include, bumping version.txt, accordingly... + - Decide on any show-stopper outstanding issues, and action... + - Change milestone of all excluded this time issues to the next 5.10 milestone, or to indefinite... + - Decide target date for release... + +### The Release: + + 1. Update version.txt to 5.8.0, and date... commit + 2. Create branch, `$ git checkout -b release/5.8` + 3. Update README/vershist.log... perl script... commit + 4. Add `$ git tag 5.8.0` + 5. Publish `$ git push -u origin release/5.8 --tags` + 6. Generate release 5.8.0.html... perl script... copy to... + 7. Create Github release v5.8.0 - becomes [Latest Release](https://github.com/htacg/tidy-html5/releases) + 8. Other things? + - Generate release binaries + - Add [binaries](http://binaries.html-tidy.org/) + - Add api [docs](http://api.html-tidy.org/#part_apiref) + - Update web pages [html-tidy.org](http://www.html-tidy.org/) + +### Post: + + - Update `master` branch to `release` + - Update `next` version.txt to 5.9.0, open for new fixes... + - Add more binaries... + +## Notes on `Release Process`: + +This **HTACG HTML Tidy** `official` release process must be supplemented with distribution by others. + +Of course, if possible, we recomend building tidy from the git source, it is easy, but also in some OS'es others offer distribution in various ways... + +See [Get Tidy](http://www.html-tidy.org/#homepage19700601get_tidy) - This page really needs expanding. There are some suggestions pending, and more feedback welcome... + +; eof diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/build/cmake/build-me.bat new/tidy-html5-5.7.28/build/cmake/build-me.bat --- old/tidy-html5-5.6.0/build/cmake/build-me.bat 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/build/cmake/build-me.bat 2019-07-08 20:52:14.000000000 +0200 @@ -23,7 +23,7 @@ :GOTCMD @call chkmsvc %TMPPRJ% -@call chkbranch master +@call chkbranch next @echo Build %DATE% %TIME% > %TMPLOG% diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/console/tidy.c new/tidy-html5-5.7.28/console/tidy.c --- old/tidy-html5-5.6.0/console/tidy.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/console/tidy.c 2019-07-08 20:52:14.000000000 +0200 @@ -845,7 +845,6 @@ tmbstr temp_string = NULL; uint width = 78; - printf("\n"); printf( tidyLocalizedString(TC_TXT_HELP_1), get_final_name(prog), tidyLibraryVersion() ); printf("\n"); @@ -1445,6 +1444,24 @@ } } break; + case TidyPriorityAttributes: /* Is #697 - This case seems missing */ + { + TidyIterator itAttr = tidyOptGetPriorityAttrList(tdoc); + if (itAttr && (itAttr != (TidyIterator)-1)) + { + while (itAttr) + { + d->def = tidyOptGetNextPriorityAttr(tdoc, &itAttr); + if (itAttr) + { + printf(fmt, d->name, d->type, d->def); + d->name = ""; + d->type = ""; + } + } + } + } + break; default: break; } @@ -1484,6 +1501,33 @@ ** @{ */ +/* Is #697 - specialised service to 'invert' a buffers content + split on a space character */ +static void invertBuffer(TidyBuffer *src, TidyBuffer *dst) +{ + uint len = src->size; + char *in = (char *)src->bp; + char *cp; + if (!in) + return; + while (len) + { + unsigned char uc; + len--; + uc = in[len]; + if (uc == ' ') + { + in[len] = 0; + cp = &in[len + 1]; + if (dst->size) + tidyBufAppend(dst, " ", 1); + tidyBufAppend(dst, cp, strlen(cp)); + } + } + if (dst->size) + tidyBufAppend(dst, " ", 1); + tidyBufAppend(dst, in, strlen(in)); +} /** Prints the option value for a given option. */ @@ -1493,6 +1537,7 @@ ) { TidyOptionId optId = tidyOptGetId( topt ); + TidyBuffer buf1, buf2; if ( tidyOptGetCategory(topt) == TidyInternalCategory ) return; @@ -1505,18 +1550,56 @@ case TidyPreTags: { TidyIterator pos = tidyOptGetDeclTagList( tdoc ); - while ( pos ) + if ( pos ) /* Is #697 - one or more values */ { - d->def = tidyOptGetNextDeclTag(tdoc, optId, &pos); - if ( pos ) + tidyBufInit(&buf1); + tidyBufInit(&buf2); + while (pos) { - printf( "%s: %s\n", d->name, d->def ); - d->name = ""; - d->type = ""; + d->def = tidyOptGetNextDeclTag(tdoc, optId, &pos); + if (d->def) + { + if (buf1.size) + tidyBufAppend(&buf1, " ", 1); + tidyBufAppend(&buf1, (void *)d->def, strlen(d->def)); + } } + invertBuffer(&buf1, &buf2); /* Is #697 - specialised service to invert words */ + tidyBufAppend(&buf2, (void *)"\0", 1); /* is this really required? */ + printf("%s: %s\n", d->name, buf2.bp); + d->name = ""; + d->type = ""; + d->def = 0; + tidyBufFree(&buf1); + tidyBufFree(&buf2); } } break; + case TidyPriorityAttributes: /* Is #697 - This case seems missing */ + { + TidyIterator itAttr = tidyOptGetPriorityAttrList(tdoc); + if (itAttr && (itAttr != (TidyIterator)-1)) + { + tidyBufInit(&buf1); + while (itAttr) + { + d->def = tidyOptGetNextPriorityAttr(tdoc, &itAttr); + if (d->def) + { + if (buf1.size) + tidyBufAppend(&buf1, " ", 1); + tidyBufAppend(&buf1, (void *)d->def, strlen(d->def)); + } + } + tidyBufAppend(&buf1, (void *)"\0", 1); /* is this really required? */ + printf("%s: %s\n", d->name, buf1.bp); + d->name = ""; + d->type = ""; + d->def = 0; + tidyBufFree(&buf1); + } + } + break; default: break; } @@ -1657,6 +1740,10 @@ free((tmbstr)localHit.name3); free(localName); } + if ( localHit.eqconfig ) /* Is. #791 */ + { + free((tmbstr)localHit.eqconfig); + } } else @@ -1803,6 +1890,7 @@ if (localPos.name1) free((tmbstr)localPos.name1); if (localPos.name2) free((tmbstr)localPos.name2); if (localPos.name3) free((tmbstr)localPos.name3); + if (localPos.eqconfig) free((tmbstr)localPos.eqconfig); /* Is. #791 */ } printf( "</cmdline>\n" ); @@ -2405,8 +2493,17 @@ if ( argc > 1 ) { htmlfil = argv[1]; - DEBUG_LOG( SPRTF("Tidying '%s'\n", htmlfil) ); - if ( tidyOptGetBool(tdoc, TidyEmacs) ) +#ifdef ENABLE_DEBUG_LOG + SPRTF("Tidy: '%s'\n", htmlfil); +#else /* !ENABLE_DEBUG_LOG */ + /* Is #713 - show-filename option */ + if (tidyOptGetBool(tdoc, TidyShowFilename)) + { + fprintf(errout, "Tidy: '%s'", htmlfil); + fprintf(errout, "\n"); + } +#endif /* ENABLE_DEBUG_LOG yes/no */ + if ( tidyOptGetBool(tdoc, TidyEmacs) || tidyOptGetBool(tdoc, TidyShowFilename)) tidySetEmacsFile( tdoc, htmlfil ); status = tidyParseFile( tdoc, htmlfil ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/include/tidy.h new/tidy-html5-5.7.28/include/tidy.h --- old/tidy-html5-5.6.0/include/tidy.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/include/tidy.h 2019-07-08 20:52:14.000000000 +0200 @@ -481,16 +481,16 @@ /** Load an ASCII Tidy configuration file and set the configuration per its - ** contents. - ** @result Returns 0 upon success, or any other value if there was an error. + ** contents. Reports config option errors, which can be filtered. + ** @result Returns 0 upon success, or any other value if there was an option error. */ TIDY_EXPORT int TIDY_CALL tidyLoadConfig(TidyDoc tdoc, /**< The TidyDoc to which to apply the configuration. */ ctmbstr configFile /**< The complete path to the file to load. */ ); /** Load a Tidy configuration file with the specified character encoding, and - ** set the configuration per its contents. - ** @result Returns 0 upon success, or any other value if there was an error. + ** set the configuration per its contents. Reports config option errors, which can be filtered. + ** @result Returns 0 upon success, or any other value if there was an option error. */ TIDY_EXPORT int TIDY_CALL tidyLoadConfigEnc(TidyDoc tdoc, /**< The TidyDoc to which to apply the configuration. */ ctmbstr configFile, /**< The complete path to the file to load. */ @@ -2053,7 +2053,7 @@ ** @{ */ -/** @struct tidyLocalMapItem +/** @struct tidyLocaleMapItem ** Represents an opaque type we can use for tidyLocaleMapItem, which ** is used to iterate through the language list, and used to access ** the windowsName() and the posixName(). @@ -2088,17 +2088,17 @@ */ TIDY_EXPORT const tidyLocaleMapItem* TIDY_CALL getNextWindowsLanguage( TidyIterator* iter ); -/** Given a `tidyLocalMapItem`, return the Windows name. - ** @param item An instance of tidyLocalMapItem to query. +/** Given a `tidyLocaleMapItem`, return the Windows name. + ** @param item An instance of tidyLocaleMapItem to query. ** @result Returns a string with the Windows name of the mapping. */ -TIDY_EXPORT const ctmbstr TIDY_CALL TidyLangWindowsName( const tidyLocaleMapItem *item ); +TIDY_EXPORT ctmbstr TIDY_CALL TidyLangWindowsName( const tidyLocaleMapItem *item ); -/** Given a `tidyLocalMapItem`, return the POSIX name. - ** @param item An instance of tidyLocalMapItem to query. +/** Given a `tidyLocaleMapItem`, return the POSIX name. + ** @param item An instance of tidyLocaleMapItem to query. ** @result Returns a string with the POSIX name of the mapping. */ -TIDY_EXPORT const ctmbstr TIDY_CALL TidyLangPosixName( const tidyLocaleMapItem *item ); +TIDY_EXPORT ctmbstr TIDY_CALL TidyLangPosixName( const tidyLocaleMapItem *item ); /** @} ** @name Getting Localized Strings diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/include/tidyenum.h new/tidy-html5-5.7.28/include/tidyenum.h --- old/tidy-html5-5.6.0/include/tidyenum.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/include/tidyenum.h 2019-07-08 20:52:14.000000000 +0200 @@ -107,6 +107,7 @@ */ #define FOREACH_MSG_MISC(FN) \ /** line %d column %d */ FN(LINE_COLUMN_STRING) \ +/** %s: line %d column %d */ FN(FN_LINE_COLUMN_STRING) \ /** discarding */ FN(STRING_DISCARDING) \ /** error and errors */ FN(STRING_ERROR_COUNT_ERROR) \ /** warning and warnings */ FN(STRING_ERROR_COUNT_WARNING) \ @@ -171,6 +172,7 @@ #define FOREACH_REPORT_MSG(FN) \ FN(ADDED_MISSING_CHARSET) \ FN(ANCHOR_NOT_UNIQUE) \ + FN(ANCHOR_DUPLICATED) \ FN(APOS_UNDEFINED) \ FN(ATTR_VALUE_NOT_LCASE) \ FN(ATTRIBUTE_IS_NOT_ALLOWED) \ @@ -635,6 +637,7 @@ TidyQuoteNbsp, /**< Output non-breaking space as entity */ TidyReplaceColor, /**< Replace hex color attribute values with names */ TidyShowErrors, /**< Number of errors to put out */ + TidyShowFilename, /**< If true, the input filename is displayed with the error messages */ TidyShowInfo, /**< If true, info-level messages are shown */ TidyShowMarkup, /**< If false, normal output is suppressed */ TidyShowMetaChange, /**< show when meta http-equiv content charset was changed - compatibility */ @@ -968,6 +971,7 @@ TidyTag_BDI, /**< BDI */ TidyTag_CANVAS, /**< CANVAS */ TidyTag_COMMAND, /**< COMMAND */ + TidyTag_DATA, /**< DATA */ TidyTag_DATALIST, /**< DATALIST */ TidyTag_DETAILS, /**< DETAILS */ TidyTag_DIALOG, /**< DIALOG */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/include/tidyplatform.h new/tidy-html5-5.7.28/include/tidyplatform.h --- old/tidy-html5-5.6.0/include/tidyplatform.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/include/tidyplatform.h 2019-07-08 20:52:14.000000000 +0200 @@ -315,6 +315,15 @@ # endif #endif +/* === Convenience defines for Haiku platforms === */ + +#if defined(__HAIKU__) +# define HAIKU +# ifndef PLATFORM_NAME +# define PLATFORM_NAME "Haiku" +# endif +#endif + /* === Convenience defines for Cygwin platforms === */ #if defined(__CYGWIN__) @@ -428,7 +437,7 @@ #if PRESERVE_FILE_TIMES # ifndef HAS_FUTIME -# if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) || defined(__GLIBC__) +# if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) || defined(__GLIBC__) || defined(__HAIKU__) # define HAS_FUTIME 0 # else # define HAS_FUTIME 1 @@ -456,6 +465,12 @@ # include <utime.h> # endif +#if defined(__HAIKU__) +#ifndef va_copy +#define va_copy(dest, src) (dest = src) +#endif +#endif + /* MS Windows needs _ prefix for Unix file functions. Not required by Metrowerks Standard Library (MSL). @@ -549,12 +564,12 @@ # include <sys/types.h> #endif -#if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS) +#if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS) && !defined(__HAIKU__) # undef uint typedef unsigned int uint; #endif -#if defined(HPUX_OS) || defined(CYGWIN_OS) || defined(MAC_OS) || defined(BSD_BASED_OS) || defined(_WIN32) +#if defined(HPUX_OS) || defined(CYGWIN_OS) || defined(MAC_OS) || defined(BSD_BASED_OS) || defined(_WIN32) || defined(__ANDROID__) # undef ulong typedef unsigned long ulong; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/man/tidy1.xsl.in new/tidy-html5-5.7.28/man/tidy1.xsl.in --- old/tidy-html5-5.6.0/man/tidy1.xsl.in 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/man/tidy1.xsl.in 2019-07-08 20:52:14.000000000 +0200 @@ -75,8 +75,9 @@ \fIConfiguration\fR options, on the other hand, can either be passed on the command line, starting with two dashes \fB--\fR, or specified in a configuration file, -using the option name without the starting dashes. -They are listed in the second part of this section. +using the option name, followed by a colon \fB:\fR, plus the value, without +the starting dashes. They are listed in the second part of this section, +with a sample config file. .LP For \fIcommand-line\fR options that expect a numerical argument, a default is assumed if no meaningful value can be found. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/attrdict.c new/tidy-html5-5.7.28/src/attrdict.c --- old/tidy-html5-5.6.0/src/attrdict.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/attrdict.c 2019-07-08 20:52:14.000000000 +0200 @@ -1955,6 +1955,7 @@ { TidyAttr_AS, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_CHARSET, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|xxxx|xxxx }, { TidyAttr_CLASS, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|HT50|XH50 }, /* CORE override */ + { TidyAttr_COLOR, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, /* Is #686 */ { TidyAttr_CROSSORIGIN, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, { TidyAttr_DIR, xxxx|xxxx|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|xxxx|HT50|XH50 }, /* CORE override */ { TidyAttr_HREF, HT20|HT32|H40T|H41T|X10T|H40F|H41F|X10F|H40S|H41S|X10S|XH11|XB10|HT50|XH50 }, @@ -3391,6 +3392,17 @@ INCLUDE_CORE_ATTRIBS INCLUDE_CORE_EVENTS INCLUDE_RDFA + { TidyAttr_UNKNOWN, 0 }, +}; + +const AttrVersion TY_(W3CAttrsFor_DATA)[] = +{ + INCLUDE_ARIA + INCLUDE_MICRODATA + { TidyAttr_VALUE, xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50 }, + INCLUDE_CORE_ATTRIBS + INCLUDE_CORE_EVENTS + INCLUDE_RDFA { TidyAttr_UNKNOWN, 0 }, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/attrdict.h new/tidy-html5-5.7.28/src/attrdict.h --- old/tidy-html5-5.6.0/src/attrdict.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/attrdict.h 2019-07-08 20:52:14.000000000 +0200 @@ -144,6 +144,7 @@ extern const AttrVersion TY_(W3CAttrsFor_PROGRESS)[]; extern const AttrVersion TY_(W3CAttrsFor_TEMPLATE)[]; extern const AttrVersion TY_(W3CAttrsFor_TIME)[]; +extern const AttrVersion TY_(W3CAttrsFor_DATA)[]; extern const AttrVersion TY_(W3CAttrsFor_DATALIST)[]; extern const AttrVersion TY_(W3CAttrsFor_AUDIO)[]; extern const AttrVersion TY_(W3CAttrsFor_VIDEO)[]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/attrs.c new/tidy-html5-5.7.28/src/attrs.c --- old/tidy-html5-5.6.0/src/attrs.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/attrs.c 2019-07-08 20:52:14.000000000 +0200 @@ -144,7 +144,7 @@ { TidyAttr_DATETIME, "datetime", CH_DATE }, /* INS, DEL */ { TidyAttr_DECLARE, "declare", CH_BOOL }, /* OBJECT */ { TidyAttr_DEFER, "defer", CH_BOOL }, /* SCRIPT */ - { TidyAttr_DIR, "dir", CH_TEXTDIR }, /* ltr or rtl */ + { TidyAttr_DIR, "dir", CH_TEXTDIR }, /* ltr, rtl or auto */ { TidyAttr_DISABLED, "disabled", CH_BOOL }, /* form fields */ { TidyAttr_DOWNLOAD, "download", CH_PCDATA }, /* anchor */ { TidyAttr_ENCODING, "encoding", CH_PCDATA }, /* <?xml?> */ @@ -798,7 +798,7 @@ if ( priorities->count >= priorities->capacity ) { priorities->capacity = priorities->capacity * 2; - priorities->list = realloc( priorities->list, sizeof(tmbstr) * priorities->capacity + 1 ); + priorities->list = TidyRealloc(doc->allocator, priorities->list, sizeof(tmbstr) * priorities->capacity + 1 ); } priorities->list[priorities->count] = TY_(tmbstrdup)( doc->allocator, name); @@ -997,13 +997,16 @@ FreeAnchor( doc, delme ); } -/* initialize new anchor */ +/* initialize new anchor + Is. #726 & #185 - HTML5 is case-sensitive +*/ static Anchor* NewAnchor( TidyDocImpl* doc, ctmbstr name, Node* node ) { Anchor *a = (Anchor*) TidyDocAlloc( doc, sizeof(Anchor) ); a->name = TY_(tmbstrdup)( doc->allocator, name ); - a->name = TY_(tmbstrtolower)(a->name); + if (!TY_(IsHTML5Mode)(doc)) /* Is. #726 - if NOT HTML5, to lowercase */ + a->name = TY_(tmbstrtolower)(a->name); a->node = node; a->next = NULL; @@ -1659,7 +1662,10 @@ if ((old = GetNodeByAnchor(doc, attval->value)) && old != node) { - TY_(ReportAttrError)( doc, node, attval, ANCHOR_NOT_UNIQUE); + if (node->implicit) /* Is #709 - improve warning text */ + TY_(ReportAttrError)(doc, node, attval, ANCHOR_DUPLICATED); + else + TY_(ReportAttrError)( doc, node, attval, ANCHOR_NOT_UNIQUE); } else AddAnchor( doc, attval->value, node ); @@ -1687,7 +1693,10 @@ if ((old = GetNodeByAnchor(doc, attval->value)) && old != node) { - TY_(ReportAttrError)( doc, node, attval, ANCHOR_NOT_UNIQUE); + if (node->implicit) /* Is #709 - improve warning text */ + TY_(ReportAttrError)(doc, node, attval, ANCHOR_DUPLICATED); + else + TY_(ReportAttrError)( doc, node, attval, ANCHOR_NOT_UNIQUE); } else AddAnchor( doc, attval->value, node ); @@ -2015,8 +2024,11 @@ /* checks dir attribute */ void CheckTextDir( TidyDocImpl* doc, Node *node, AttVal *attval) { - ctmbstr const values[] = {"rtl", "ltr", NULL}; - CheckAttrValidity( doc, node, attval, values ); + ctmbstr const values4[] = { "rtl", "ltr", NULL }; + /* PR #712 - add 'auto' for HTML5 - @doronbehar */ + ctmbstr const values5[] = { "rtl", "ltr", "auto", NULL }; + CheckAttrValidity(doc, node, attval, + (TY_(IsHTML5Mode)(doc) ? values5 : values4)); } /* checks lang and xml:lang attributes */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/clean.c new/tidy-html5-5.7.28/src/clean.c --- old/tidy-html5-5.6.0/src/clean.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/clean.c 2019-07-08 20:52:14.000000000 +0200 @@ -2211,8 +2211,10 @@ tidyBufAppend(&charsetString, "charset=", 8); tidyBufAppend(&charsetString, (char*)enc, TY_(tmbstrlen)(enc)); tidyBufAppend(&charsetString, "\0", 1); /* zero terminate the buffer */ - /* process the children of the head */ - for (currentNode = head->content; currentNode; currentNode = currentNode->next) + /* process the children of the head */ + /* Issue #656 - guard against 'currentNode' being set NULL in loop */ + for (currentNode = head->content; currentNode; + currentNode = (currentNode ? currentNode->next : NULL)) { if (!nodeIsMETA(currentNode)) continue; /* not a meta node */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/config.c new/tidy-html5-5.7.28/src/config.c --- old/tidy-html5-5.6.0/src/config.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/config.c 2019-07-08 20:52:14.000000000 +0200 @@ -245,6 +245,7 @@ { TidyQuoteNbsp, ME, "quote-nbsp", BL, yes, ParsePickList, &boolPicks }, { TidyReplaceColor, MX, "replace-color", BL, no, ParsePickList, &boolPicks }, { TidyShowErrors, DD, "show-errors", IN, 6, ParseInt, NULL }, + { TidyShowFilename, DD, "show-filename", BL, no, ParsePickList, &boolPicks }, { TidyShowInfo, DD, "show-info", BL, yes, ParsePickList, &boolPicks }, { TidyShowMarkup, DD, "markup", BL, yes, ParsePickList, &boolPicks }, { TidyShowMetaChange, DG, "show-meta-change", BL, no, ParsePickList, &boolPicks }, /* 20170609 - Issue #456 */ @@ -303,6 +304,7 @@ /* forward declarations */ +static void AdjustConfig( TidyDocImpl* doc ); static Bool GetPickListValue( ctmbstr value, PickListItems* pickList, uint *result ); @@ -711,6 +713,7 @@ const TidyOptionValue* value = &doc->config.value[ 0 ]; TidyOptionValue* snap = &doc->config.snapshot[ 0 ]; + AdjustConfig( doc ); /* Make sure it's consistent */ for ( ixVal=0; ixVal < N_TIDY_OPTIONS; ++option, ++ixVal ) { assert( ixVal == (uint) option->id ); @@ -759,6 +762,7 @@ } if ( needReparseTagsDecls ) ReparseTagDecls( docTo, changedUserTags ); + AdjustConfig( docTo ); /* Make sure it's consistent */ } } @@ -873,8 +877,26 @@ if (filename[1] == '/') { home_dir = getenv("HOME"); - if ( home_dir ) + if (home_dir) { ++filename; + } +#ifdef _WIN32 + else if (strlen(filename) >= 3) { /* at least '~/+1' */ + /* no HOME env in Windows - got for HOMEDRIVE=C: HOMEPATH=\Users\user */ + char * hd = getenv("HOMEDRIVE"); + char * hp = getenv("HOMEPATH"); + if (hd && hp) { + ctmbstr s = TidyDocAlloc(doc, _MAX_PATH); + strcpy(s, hd); + strcat(s, hp); + strcat(s, "\\"); + strcat(s, &filename[2]); + return s; + } + + } +#endif /* _WIN32 */ + } #ifdef SUPPORT_GETPWNAM else @@ -1052,6 +1074,8 @@ if ( fname != (tmbstr) file ) TidyDocFree( doc, fname ); + AdjustConfig( doc ); + /* any new config errors? If so, return warning status. */ return (doc->optionErrors > opterrs ? 1 : 0); } @@ -1190,7 +1214,7 @@ /* ensure that config is self consistent */ -void TY_(AdjustConfig)( TidyDocImpl* doc ) +static void AdjustConfig( TidyDocImpl* doc ) { if ( cfgBool(doc, TidyEncloseBlockText) ) TY_(SetOptionBool)( doc, TidyEncloseBodyText, yes ); @@ -1476,9 +1500,12 @@ return no; } + buf[i] = 0; /* Is #697 - Do *not* add '-' */ +#if 0 /* Is #697 - Is this still required? KEEP HISTORY - DO NOT DELETE */ buf[i++] = '-'; /* Make sure any escaped Unicode is terminated */ buf[i] = 0; /* so valid class names are generated after */ /* Tidy appends last digits. */ +#endif /* Is #697 - Is this still required? */ SetOptionValue( doc, option->id, buf ); return yes; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/config.h new/tidy-html5-5.7.28/src/config.h --- old/tidy-html5-5.6.0/src/config.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/config.h 2019-07-08 20:52:14.000000000 +0200 @@ -335,12 +335,6 @@ Bool TY_(AdjustCharEncoding)( TidyDocImpl* doc, int encoding ); -/** Ensure that the configuration options are self consistent. - ** @param doc The Tidy document to adjust. - */ -void TY_(AdjustConfig)( TidyDocImpl* doc ); - - /** Indicates whether or not the current configuration is completely default. ** @param doc The Tidy document. ** @returns The result. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language.c new/tidy-html5-5.7.28/src/language.c --- old/tidy-html5-5.6.0/src/language.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language.c 2019-07-08 20:52:14.000000000 +0200 @@ -22,12 +22,13 @@ /** * This structure type provides universal access to all of Tidy's strings. + * Note limit of 8, to be changed as more added... */ typedef struct { Bool manually_set; languageDefinition *currentLanguage; languageDefinition *fallbackLanguage; - languageDefinition *languages[]; + languageDefinition *languages[8]; } tidyLanguagesType; @@ -590,18 +591,18 @@ /** - * Given a `tidyLocalMapItemImpl, return the Windows name. + * Given a `tidyLocaleMapItemImpl, return the Windows name. */ -const ctmbstr TY_(TidyLangWindowsName)( const tidyLocaleMapItemImpl *item ) +ctmbstr TY_(TidyLangWindowsName)( const tidyLocaleMapItemImpl *item ) { return item->winName; } /** - * Given a `tidyLocalMapItemImpl, return the POSIX name. + * Given a `tidyLocaleMapItemImpl, return the POSIX name. */ -const ctmbstr TY_(TidyLangPosixName)( const tidyLocaleMapItemImpl *item ) +ctmbstr TY_(TidyLangPosixName)( const tidyLocaleMapItemImpl *item ) { return item->POSIXName; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language.h new/tidy-html5-5.7.28/src/language.h --- old/tidy-html5-5.6.0/src/language.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language.h 2019-07-08 20:52:14.000000000 +0200 @@ -189,14 +189,14 @@ const tidyLocaleMapItemImpl *TY_(getNextWindowsLanguage)( TidyIterator* iter ); /** - * Given a `tidyLocalMapItemImpl, return the Windows name. + * Given a `tidyLocaleMapItemImpl, return the Windows name. */ -const ctmbstr TY_(TidyLangWindowsName)( const tidyLocaleMapItemImpl *item ); +ctmbstr TY_(TidyLangWindowsName)( const tidyLocaleMapItemImpl *item ); /** - * Given a `tidyLocalMapItemImpl, return the POSIX name. + * Given a `tidyLocaleMapItemImpl, return the POSIX name. */ -const ctmbstr TY_(TidyLangPosixName)( const tidyLocaleMapItemImpl *item ); +ctmbstr TY_(TidyLangPosixName)( const tidyLocaleMapItemImpl *item ); /** * Initializes the TidyIterator to point to the first item diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language_en.h new/tidy-html5-5.7.28/src/language_en.h --- old/tidy-html5-5.6.0/src/language_en.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language_en.h 2019-07-08 20:52:14.000000000 +0200 @@ -363,8 +363,15 @@ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ TidyEmacs, 0, - "This option specifies if Tidy should change the format for reporting " - "errors and warnings to a format that is more easily parsed by GNU Emacs. " + "This option specifies that Tidy should change the format for reporting " + "errors and warnings to a format that is more easily parsed by GNU Emacs " + "or some other program. It changes them from the default " + "<br/>" + " line <line number> column <column number> - (Error|Warning): <message> " + "<br/>" + "to a form which includes the input filename: " + "<br/>" + " <filename>:<line number>:<column number>: (Error|Warning): <message> " }, {/* Important notes for translators: - Use only <code></code>, <var></var>, <em></em>, <strong></strong>, and @@ -533,7 +540,7 @@ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ TidyHideComments, 0, - "This option specifies if Tidy should print out comments. " + "This option specifies if Tidy should not print out comments. " }, {/* Important notes for translators: - Use only <code></code>, <var></var>, <em></em>, <strong></strong>, and @@ -1173,6 +1180,21 @@ - It's very important that <br/> be self-closing! - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ + TidyShowFilename, 0, + "This option specifies if Tidy should show the filename in messages. eg: " + "<br/>" + " tidy -q -e --show-filename yes index.html<br/>" + " index.html: line 43 column 3 - Warning: replacing invalid UTF-8 bytes (char. code U+00A9) " + }, + + {/* Important notes for translators: + - Use only <code></code>, <var></var>, <em></em>, <strong></strong>, and + <br/>. + - Entities, tags, attributes, etc., should be enclosed in <code></code>. + - Option values should be enclosed in <var></var>. + - It's very important that <br/> be self-closing! + - The strings "Tidy" and "HTML Tidy" are the program name and must not + be translated. */ TidyShowInfo, 0, "This option specifies if Tidy should display info-level messages. " }, @@ -1681,6 +1703,7 @@ ** @remark enum generator FOREACH_MSG_MISC ********************************************/ { LINE_COLUMN_STRING, 0, "line %d column %d - " }, + { FN_LINE_COLUMN_STRING, 0, "%s: line %d column %d - " }, {/* For example, "discarding invalid UTF-16 surrogate pair" */ STRING_DISCARDING, 0, "discarding" }, @@ -1924,6 +1947,7 @@ ********************************************/ { ADDED_MISSING_CHARSET, 0, "Added appropriate missing <meta charset=...> to %s" }, { ANCHOR_NOT_UNIQUE, 0, "%s anchor \"%s\" already defined" }, + { ANCHOR_DUPLICATED, 0, "Implicit %s anchor \"%s\" duplicated by Tidy." }, { APOS_UNDEFINED, 0, "named entity ' only defined in XML/XHTML" }, { ATTR_VALUE_NOT_LCASE, 0, "%s attribute value \"%s\" must be lower case for XHTML" }, { ATTRIBUTE_IS_NOT_ALLOWED, 0, "%s attribute \"is\" not allowed for autonomous custom tags." }, @@ -2170,7 +2194,7 @@ { TC_LABEL_LANG, 0, "lang" }, { TC_LABEL_LEVL, 0, "level" }, { TC_LABEL_OPT, 0, "option" }, - { TC_MAIN_ERROR_LOAD_CONFIG, 0, "Loading config file \"%s\" failed, err = %d" }, + { TC_MAIN_ERROR_LOAD_CONFIG, 0, "Loading config file \"%s\" problems, err = %d" }, { TC_OPT_ACCESS, 0, "do additional accessibility checks (<level> = 0, 1, 2, 3). 0 is " "assumed if <level> is missing." @@ -2287,7 +2311,6 @@ - Second %s represents a version number, typically x.x.xx. - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ TC_TXT_HELP_1, 0, - "\n" "%s [options...] [file...] [options...] [file...]\n" "Utility to clean up and pretty print HTML/XHTML/XML.\n" "\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language_en_gb.h new/tidy-html5-5.7.28/src/language_en_gb.h --- old/tidy-html5-5.6.0/src/language_en_gb.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language_en_gb.h 2019-07-08 20:52:14.000000000 +0200 @@ -1,4 +1,4 @@ -#ifndef language_en_gb_h +#ifndef language_en_gb_h #define language_en_gb_h /* * language_en_gb.h @@ -180,3 +180,4 @@ #endif /* language_en_gb_h */ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language_es.h new/tidy-html5-5.7.28/src/language_es.h --- old/tidy-html5-5.6.0/src/language_es.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language_es.h 2019-07-08 20:52:14.000000000 +0200 @@ -1,4 +1,4 @@ -#ifndef language_es_h +#ifndef language_es_h #define language_es_h /* * language_es.h @@ -131,3 +131,4 @@ #endif /* language_es_h */ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language_es_mx.h new/tidy-html5-5.7.28/src/language_es_mx.h --- old/tidy-html5-5.6.0/src/language_es_mx.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language_es_mx.h 2019-07-08 20:52:14.000000000 +0200 @@ -1,4 +1,4 @@ -#ifndef language_es_mx_h +#ifndef language_es_mx_h #define language_es_mx_h /* * language_es_mx.h @@ -76,3 +76,4 @@ #endif /* language_es_mx_h */ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language_fr.h new/tidy-html5-5.7.28/src/language_fr.h --- old/tidy-html5-5.6.0/src/language_fr.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language_fr.h 2019-07-08 20:52:14.000000000 +0200 @@ -1,4 +1,4 @@ -#ifndef language_fr_h +#ifndef language_fr_h #define language_fr_h /* * language_fr.h @@ -1172,3 +1172,4 @@ #endif /* language_fr_h */ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language_pt_br.h new/tidy-html5-5.7.28/src/language_pt_br.h --- old/tidy-html5-5.6.0/src/language_pt_br.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language_pt_br.h 2019-07-08 20:52:14.000000000 +0200 @@ -1,4 +1,4 @@ -#ifndef language_pt_br_h +#ifndef language_pt_br_h #define language_pt_br_h /* * language_pt_br.h @@ -1294,3 +1294,4 @@ #endif /* language_pt_br_h */ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/language_zh_cn.h new/tidy-html5-5.7.28/src/language_zh_cn.h --- old/tidy-html5-5.6.0/src/language_zh_cn.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/language_zh_cn.h 2019-07-08 20:52:14.000000000 +0200 @@ -1,4 +1,4 @@ -#ifndef language_zh_cn_h +#ifndef language_zh_cn_h #define language_zh_cn_h /* * language_zh_cn.h @@ -78,3 +78,4 @@ #endif /* language_zh_cn_h */ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/lexer.c new/tidy-html5-5.7.28/src/lexer.c --- old/tidy-html5-5.6.0/src/lexer.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/lexer.c 2019-07-08 20:52:14.000000000 +0200 @@ -2384,7 +2384,8 @@ /*\ if javascript insert backslash before / * Issue #348 - Add option, escape-scripts, to skip \*/ - if ((TY_(IsJavaScript)(container)) && cfgBool(doc, TidyEscapeScripts)) + if ((TY_(IsJavaScript)(container)) && cfgBool(doc, TidyEscapeScripts) && + !TY_(IsHTML5Mode)(doc) ) /* Is #700 - This only applies to legacy html4 mode */ { /* Issue #281 - only warn if adding the escape! */ TY_(Report)(doc, NULL, NULL, BAD_CDATA_CONTENT); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/message.c new/tidy-html5-5.7.28/src/message.c --- old/tidy-html5-5.6.0/src/message.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/message.c 2019-07-08 20:52:14.000000000 +0200 @@ -261,6 +261,7 @@ } dispatchTable[] = { { ADDED_MISSING_CHARSET, TidyInfo, formatStandard }, { ANCHOR_NOT_UNIQUE, TidyWarning, formatAttributeReport }, + { ANCHOR_DUPLICATED, TidyWarning, formatAttributeReport }, { APOS_UNDEFINED, TidyWarning, formatStandard }, { ATTR_VALUE_NOT_LCASE, TidyWarning, formatAttributeReport }, { ATTRIBUTE_VALUE_REPLACED, TidyInfo, formatAttributeReport }, @@ -346,7 +347,7 @@ { STRING_CONTENT_LOOKS, TidyInfo, formatStandard }, /* reportMarkupVersion() */ { STRING_DOCTYPE_GIVEN, TidyInfo, formatStandard }, /* reportMarkupVersion() */ { STRING_MISSING_MALFORMED, TidyConfig, formatStandard }, - { STRING_MUTING_TYPE, TidyConfig, formatStandard }, + { STRING_MUTING_TYPE, TidyInfo, formatStandard }, { STRING_NO_SYSID, TidyInfo, formatStandard }, /* reportMarkupVersion() */ { STRING_UNKNOWN_OPTION, TidyConfig, formatStandard }, { SUSPECTED_MISSING_QUOTE, TidyWarning, formatStandard }, @@ -583,6 +584,7 @@ return TY_(tidyMessageCreateWithNode)(doc, node, code, level, tagdesc, name, HTMLVersion(doc)); case ANCHOR_NOT_UNIQUE: + case ANCHOR_DUPLICATED: case ATTR_VALUE_NOT_LCASE: case PROPRIETARY_ATTR_VALUE: case XML_ID_SYNTAX: @@ -1348,7 +1350,7 @@ if ( list->count >= list->capacity ) { list->capacity = list->capacity * 2; - list->list = realloc( list->list, sizeof(tidyStrings) * list->capacity + 1 ); + list->list = TidyRealloc(doc->allocator, list->list, sizeof(tidyStrings) * list->capacity + 1 ); } list->list[list->count] = message; @@ -1520,6 +1522,7 @@ static const TidyOptionId TidyBlockTagsLinks[] = { TidyEmptyTags, TidyInlineTags, TidyPreTags, TidyUseCustomTags, TidyUnknownOption }; static const TidyOptionId TidyCharEncodingLinks[] = { TidyInCharEncoding, TidyOutCharEncoding, TidyUnknownOption }; static const TidyOptionId TidyDuplicateAttrsLinks[] = { TidyJoinClasses, TidyJoinStyles, TidyUnknownOption }; +static const TidyOptionId TidyEmacsLinks[] = { TidyShowFilename, TidyUnknownOption }; static const TidyOptionId TidyEmptyTagsLinks[] = { TidyBlockTags, TidyInlineTags, TidyPreTags, TidyUseCustomTags, TidyUnknownOption }; static const TidyOptionId TidyErrFileLinks[] = { TidyOutFile, TidyUnknownOption }; static const TidyOptionId TidyInCharEncodingLinks[] = { TidyCharEncoding, TidyUnknownOption }; @@ -1534,6 +1537,7 @@ static const TidyOptionId TidyOutCharEncodingLinks[] = { TidyCharEncoding, TidyUnknownOption }; static const TidyOptionId TidyOutFileLinks[] = { TidyErrFile, TidyUnknownOption }; static const TidyOptionId TidyPreTagsLinks[] = { TidyBlockTags, TidyEmptyTags, TidyInlineTags, TidyUseCustomTags, TidyUnknownOption }; +static const TidyOptionId TidyShowFilenameLinks[] = { TidyEmacs, TidyUnknownOption }; static const TidyOptionId TidySortAttributesLinks[] = { TidyPriorityAttributes, TidyUnknownOption }; static const TidyOptionId TidyUseCustomTagsLinks[] = { TidyBlockTags, TidyEmptyTags, TidyInlineTags, TidyPreTags, TidyUnknownOption }; static const TidyOptionId TidyWrapAttValsLinks[] = { TidyWrapScriptlets, TidyLiteralAttribs, TidyUnknownOption }; @@ -1550,6 +1554,7 @@ { TidyBlockTags, TidyBlockTagsLinks }, { TidyCharEncoding, TidyCharEncodingLinks }, { TidyDuplicateAttrs, TidyDuplicateAttrsLinks }, + { TidyEmacs, TidyEmacsLinks }, { TidyEmptyTags, TidyEmptyTagsLinks }, { TidyErrFile, TidyErrFileLinks }, { TidyInCharEncoding, TidyInCharEncodingLinks }, @@ -1563,6 +1568,7 @@ { TidyOutCharEncoding, TidyOutCharEncodingLinks }, { TidyOutFile, TidyOutFileLinks }, { TidyPreTags, TidyPreTagsLinks }, + { TidyShowFilename, TidyShowFilenameLinks }, { TidySortAttributes, TidySortAttributesLinks }, { TidyMuteReports, TidyMuteLinks }, { TidyUseCustomTags, TidyUseCustomTagsLinks }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/messageobj.c new/tidy-html5-5.7.28/src/messageobj.c --- old/tidy-html5-5.6.0/src/messageobj.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/messageobj.c 2019-07-08 20:52:14.000000000 +0200 @@ -96,6 +96,18 @@ result->line = line; result->column = column; result->level = level; + /* Is #719 - set 'muted' before any callbacks. */ + result->muted = no; + i = 0; + while ((doc->muted.list) && (doc->muted.list[i] != 0)) + { + if (doc->muted.list[i] == code) + { + result->muted = yes; + break; + } + i++; + } /* Things we create... */ @@ -127,6 +139,14 @@ TY_(tmbsnprintf)(result->messagePosDefault, sizeMessageBuf, "%s:%d:%d: ", cfgStr(doc, TidyEmacsFile), line, column); TY_(tmbsnprintf)(result->messagePos, sizeMessageBuf, "%s:%d:%d: ", cfgStr(doc, TidyEmacsFile), line, column); } + else if ( cfgBool(doc, TidyShowFilename) && cfgStr(doc, TidyEmacsFile) ) + { + /* Include filename in output */ + TY_(tmbsnprintf)(result->messagePosDefault, sizeMessageBuf, tidyDefaultString(FN_LINE_COLUMN_STRING), + cfgStr(doc, TidyEmacsFile), line, column); + TY_(tmbsnprintf)(result->messagePos, sizeMessageBuf, tidyLocalizedString(FN_LINE_COLUMN_STRING), + cfgStr(doc, TidyEmacsFile), line, column); + } else { /* traditional format */ @@ -158,8 +178,17 @@ if ( ( cfgBool(doc, TidyMuteShow) == yes ) && level <= TidyFatal ) { - TY_(tmbsnprintf)(result->messageOutputDefault, sizeMessageBuf, "%s (%s)", result->messageOutputDefault, TY_(tidyErrorCodeAsKey)(code) ); - TY_(tmbsnprintf)(result->messageOutput, sizeMessageBuf, "%s (%s)", result->messageOutput, TY_(tidyErrorCodeAsKey)(code) ); + /*\ Issue #655 - Unsafe to use output buffer as one of the va_list + * input parameters in some snprintf implmentations. + \*/ + ctmbstr pc = TY_(tidyErrorCodeAsKey)(code); + i = TY_(tmbstrlen)(result->messageOutputDefault); + if (i < sizeMessageBuf) + TY_(tmbsnprintf)(result->messageOutputDefault + i, sizeMessageBuf - i, " (%s)", pc ); + i = TY_(tmbstrlen)(result->messageOutput); + if (i < sizeMessageBuf) + TY_(tmbsnprintf)(result->messageOutput + i, sizeMessageBuf - i, " (%s)", pc ); + i = 0; } result->allowMessage = yes; @@ -191,19 +220,6 @@ result->allowMessage = result->allowMessage & doc->messageCallback( tidyImplToMessage(result) ); } - /* finally, check the document's configuration to determine whether - this message is muted. */ - result->muted = no; - while ( ( doc->muted.list ) && ( doc->muted.list[i] != 0 ) ) - { - if ( doc->muted.list[i] == code ) - { - result->muted = yes; - break; - } - i++; - } - return result; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/pprint.c new/tidy-html5-5.7.28/src/pprint.c --- old/tidy-html5-5.6.0/src/pprint.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/pprint.c 2019-07-08 20:52:14.000000000 +0200 @@ -2143,7 +2143,8 @@ TY_(PFlushLineSmart)( doc, indent ); } - PPrintTag( doc, mode, indent, node ); /* add <pre> or <textarea> tag */ + /* Issue #697 - Add NOWRAP to the mode */ + PPrintTag( doc, (mode | NOWRAP), indent, node ); /* add <pre> or <textarea> tag */ indent = 0; /* @camoy Fix #158 - remove inserted newlines in pre - TY_(PFlushLineSmart)( doc, indent ); */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/tags.c new/tidy-html5-5.7.28/src/tags.c --- old/tidy-html5-5.6.0/src/tags.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/tags.c 2019-07-08 20:52:14.000000000 +0200 @@ -133,6 +133,7 @@ #define VERS_ELEM_CANVAS (xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50) #define VERS_ELEM_COMMAND (xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50) #define VERS_ELEM_DATALIST (xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50) +#define VERS_ELEM_DATA (xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50) #define VERS_ELEM_DETAILS (xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50) #define VERS_ELEM_DIALOG (xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50) #define VERS_ELEM_EMBED (xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|xxxx|HT50|XH50) @@ -302,6 +303,7 @@ { TidyTag_COMMAND, "command", VERS_ELEM_COMMAND, &TY_(W3CAttrsFor_COMMAND)[0], (CM_HEAD|CM_INLINE|CM_EMPTY), TY_(ParseEmpty), NULL }, { TidyTag_DATALIST, "datalist", VERS_ELEM_DATALIST, &TY_(W3CAttrsFor_DATALIST)[0], (CM_INLINE|CM_FIELD), TY_(ParseDatalist), NULL }, /* { TidyTag_DATALIST, "datalist", VERS_ELEM_DATALIST, &TY_(W3CAttrsFor_DATALIST)[0], (CM_FIELD), TY_(ParseInline), NULL },*/ + { TidyTag_DATA, "data", VERS_ELEM_DATA, &TY_(W3CAttrsFor_DATA)[0], (CM_INLINE), TY_(ParseInline), NULL }, { TidyTag_DETAILS, "details", VERS_ELEM_DETAILS, &TY_(W3CAttrsFor_DETAILS)[0], (CM_BLOCK), TY_(ParseBlock), NULL }, { TidyTag_DIALOG, "dialog", VERS_ELEM_DIALOG, &TY_(W3CAttrsFor_DIALOG)[0], (CM_BLOCK), TY_(ParseBlock), NULL }, { TidyTag_EMBED, "embed", VERS_ELEM_EMBED, &TY_(W3CAttrsFor_EMBED)[0], (CM_INLINE|CM_IMG|CM_EMPTY), TY_(ParseEmpty), NULL }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/tags.h new/tidy-html5-5.7.28/src/tags.h --- old/tidy-html5-5.6.0/src/tags.h 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/tags.h 2019-07-08 20:52:14.000000000 +0200 @@ -454,6 +454,7 @@ /* HTML5 */ #define nodeIsDATALIST( node ) TagIsId( node, TidyTag_DATALIST ) +#define nodeIsDATA( node ) TagIsId( node, TidyTag_DATA ) #define nodeIsMATHML( node ) TagIsId( node, TidyTag_MATHML ) /* #130 MathML attr and entity fix! */ /* NOT in HTML 5 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/src/tidylib.c new/tidy-html5-5.7.28/src/tidylib.c --- old/tidy-html5-5.6.0/src/tidylib.c 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/src/tidylib.c 2019-07-08 20:52:14.000000000 +0200 @@ -36,6 +36,7 @@ #include "attrs.h" #include "sprtf.h" #if SUPPORT_LOCALIZATIONS +# include "stdlib.h" # include "locale.h" #endif @@ -119,7 +120,17 @@ #if SUPPORT_LOCALIZATIONS if ( TY_(tidyGetLanguageSetByUser)() == no ) { - TY_(tidySetLanguage)( setlocale( LC_ALL, "") ); + if( ! TY_(tidySetLanguage)( getenv( "LC_MESSAGES" ) ) ) + { + if( ! TY_(tidySetLanguage)( getenv( "LANG" ) ) ) + { + /*\ + * Is. #770 #783 #780 #790 and maybe others - + * TY_(tidySetLanguage)( setlocale( LC_ALL, "" ) ); + * this seems a 'bad' choice! + \*/ + } + } } #endif @@ -1135,14 +1146,16 @@ fin = fopen( filnam, "rb" ); #if PRESERVE_FILE_TIMES - struct stat sbuf = {0}; - /* get last modified time */ - TidyClearMemory( &doc->filetimes, sizeof(doc->filetimes) ); - if ( fin && cfgBool(doc,TidyKeepFileTimes) && - fstat(fileno(fin), &sbuf) != -1 ) { - doc->filetimes.actime = sbuf.st_atime; - doc->filetimes.modtime = sbuf.st_mtime; + struct stat sbuf = { 0 }; + /* get last modified time */ + TidyClearMemory(&doc->filetimes, sizeof(doc->filetimes)); + if (fin && cfgBool(doc, TidyKeepFileTimes) && + fstat(fileno(fin), &sbuf) != -1) + { + doc->filetimes.actime = sbuf.st_atime; + doc->filetimes.modtime = sbuf.st_mtime; + } } #endif @@ -1436,8 +1449,8 @@ Bool xmlIn = cfgBool( doc, TidyXmlTags ); TidyConfigChangeCallback callback = doc->pConfigChangeCallback; - doc->pConfigChangeCallback = NULL; int bomEnc; + doc->pConfigChangeCallback = NULL; assert( doc != NULL && in != NULL ); assert( doc->docIn == NULL ); @@ -1445,7 +1458,6 @@ TY_(ResetTags)(doc); /* reset table to html5 mode */ TY_(TakeConfigSnapshot)( doc ); /* Save config state */ - TY_(AdjustConfig)( doc ); /* ensure config consistency */ TY_(FreeAnchors)( doc ); TY_(FreeNode)(doc, &doc->root); @@ -2643,13 +2655,13 @@ } -const ctmbstr TIDY_CALL TidyLangWindowsName( const tidyLocaleMapItem *item ) +ctmbstr TIDY_CALL TidyLangWindowsName( const tidyLocaleMapItem *item ) { return TY_(TidyLangWindowsName)( (tidyLocaleMapItemImpl*)(item) ); } -const ctmbstr TIDY_CALL TidyLangPosixName( const tidyLocaleMapItem *item ) +ctmbstr TIDY_CALL TidyLangPosixName( const tidyLocaleMapItem *item ) { return TY_(TidyLangPosixName)( (tidyLocaleMapItemImpl*)(item) ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-5.6.0/version.txt new/tidy-html5-5.7.28/version.txt --- old/tidy-html5-5.6.0/version.txt 2017-11-25 14:54:41.000000000 +0100 +++ new/tidy-html5-5.7.28/version.txt 2019-07-08 20:52:14.000000000 +0200 @@ -1,2 +1,2 @@ -5.6.0 -2017.11.25 +5.7.28 +2019.07.08 ++++++ tidy-html5-doxygen-c0d1cd1.tar.gz -> tidy-html5-doxygen-0ed35c6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-doxygen/DoxygenLayout.xml new/tidy-html5-doxygen/DoxygenLayout.xml --- old/tidy-html5-doxygen/DoxygenLayout.xml 2017-04-04 20:13:01.000000000 +0200 +++ new/tidy-html5-doxygen/DoxygenLayout.xml 2019-11-05 19:28:01.000000000 +0100 @@ -9,17 +9,17 @@ <tab type="namespacelist" visible="yes" title="" intro=""/> <tab type="namespacemembers" visible="yes" title="" intro=""/> </tab> - <tab type="classes" visible="yes" title=""> - <tab type="classlist" visible="yes" title="" intro=""/> + <tab type="classes" visible="no" title=""> + <tab type="classlist" visible="no" title="" intro=""/> <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> - <tab type="hierarchy" visible="yes" title="" intro=""/> - <tab type="classmembers" visible="yes" title="" intro=""/> + <tab type="hierarchy" visible="no" title="" intro=""/> + <tab type="classmembers" visible="no" title="" intro=""/> </tab> - <tab type="files" visible="yes" title=""> - <tab type="filelist" visible="yes" title="" intro=""/> - <tab type="globals" visible="yes" title="" intro=""/> + <tab type="files" visible="no" title=""> + <tab type="filelist" visible="no" title="" intro=""/> + <tab type="globals" visible="no" title="" intro=""/> </tab> - <tab type="examples" visible="yes" title="" intro=""/> + <tab type="examples" visible="no" title="" intro=""/> </navindex> <!-- Layout definition for a class page --> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-doxygen/pages/main_page.md new/tidy-html5-doxygen/pages/main_page.md --- old/tidy-html5-doxygen/pages/main_page.md 2017-04-04 20:13:01.000000000 +0200 +++ new/tidy-html5-doxygen/pages/main_page.md 2019-11-05 19:28:01.000000000 +0100 @@ -36,7 +36,7 @@ via `man tidy` on Unix platforms. In addition to the automatically generated documentation from Tidy’s source -code, these three major sections provide practical information about using Tidy, +code, these four major sections provide practical information about using Tidy, how to contribute, and how LibTidy works: - \ref general @@ -53,6 +53,20 @@ - These articles detail how to work with the HTML Tidy source code. If you plan to work with HTACG and donate your own contributions, please have a look at these articles so that you have an easy transition to our team! + +- <a class="el" href="modules.html">Modules</a> + - **External Public API** If you are a user of LibTidy, then this is all of + the documentation that is of use to you in order to implement LibTidy in + any language that can link to a C library. + - **Internal API** New developers of LibTidy may find browsing this section + useful in order to become more familiar with the organization of the source + code and the files. Note that this Doxygen project is _not_ a source code + viewer, this internal documentation is incomplete, and this is not meant to + be a substitute for examining the source code. + - **Tidy Console Application** We've also organized the console application as + its own Doxygen project. This can be useful to new console application + tinkers, and also provide insight on how to use LibTidy in your own + programs. # Components diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-doxygen/quickref.include.xsl new/tidy-html5-doxygen/quickref.include.xsl --- old/tidy-html5-doxygen/quickref.include.xsl 2017-04-04 20:13:01.000000000 +0200 +++ new/tidy-html5-doxygen/quickref.include.xsl 2019-11-05 19:28:01.000000000 +0100 @@ -25,11 +25,17 @@ <a name="qtop"></a> <h2 id="top">Option Groups</h2> <ul> - <li><a class="h3" href="#MarkupHeader">HTML, XHTML, XML</a></li> + <li><a class="h3" href="#DisplayHeader">Document Display</a></li> + <li><a class="h3" href="#DocumentIOHeader">Document In and Out</a></li> + <li><a class="h3" href="#FileIOHeader">File Input-Output</a></li> <li><a class="h3" href="#DiagnosticsHeader">Diagnostics</a></li> + <li><a class="h3" href="#EncodingHeader">Encoding</a></li> + <li><a class="h3" href="#MarkupCleanupHeader">Cleanup</a></li> + <li><a class="h3" href="#MarkupEntitiesHeader">Entities</a></li> + <li><a class="h3" href="#MarkupRepairHeader">Repair</a></li> + <li><a class="h3" href="#MarkupXFormHeader">Transformation</a></li> + <li><a class="h3" href="#MarkupTeachHeader">Teaching Tidy</a></li> <li><a class="h3" href="#PrettyPrintHeader">Pretty Print</a></li> - <li><a class="h3" href="#EncodingHeader">Character Encoding</a></li> - <li><a class="h3" href="#MiscellaneousHeader">Miscellaneous</a></li> </ul> <xsl:call-template name="link-section" /> @@ -49,29 +55,59 @@ <col width="33%" /> </colgroup> <xsl:call-template name="links"> - <xsl:with-param name="class">markup</xsl:with-param> - <xsl:with-param name="header">HTML, XHTML, XML</xsl:with-param> - <xsl:with-param name="headerID">MarkupHeader</xsl:with-param> + <xsl:with-param name="class">TidyDisplay</xsl:with-param> + <xsl:with-param name="header">Document Display</xsl:with-param> + <xsl:with-param name="headerID">DisplayHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">diagnostics</xsl:with-param> + <xsl:with-param name="class">TidyDocumentIO</xsl:with-param> + <xsl:with-param name="header">Document In and Out</xsl:with-param> + <xsl:with-param name="headerID">DocumentIOHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyFileIO</xsl:with-param> + <xsl:with-param name="header">File Input-Output</xsl:with-param> + <xsl:with-param name="headerID">FileIOHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyDiagnostics</xsl:with-param> <xsl:with-param name="header">Diagnostics</xsl:with-param> <xsl:with-param name="headerID">DiagnosticsHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">print</xsl:with-param> - <xsl:with-param name="header">Pretty Print</xsl:with-param> - <xsl:with-param name="headerID">PrettyPrintHeader</xsl:with-param> + <xsl:with-param name="class">TidyEncoding</xsl:with-param> + <xsl:with-param name="header">Encoding</xsl:with-param> + <xsl:with-param name="headerID">EncodingHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">encoding</xsl:with-param> - <xsl:with-param name="header">Character Encoding</xsl:with-param> - <xsl:with-param name="headerID">EncodingHeader</xsl:with-param> + <xsl:with-param name="class">TidyMarkupCleanup</xsl:with-param> + <xsl:with-param name="header">Cleanup</xsl:with-param> + <xsl:with-param name="headerID">MarkupCleanupHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyMarkupEntities</xsl:with-param> + <xsl:with-param name="header">Entities</xsl:with-param> + <xsl:with-param name="headerID">MarkupEntitiesHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyMarkupRepair</xsl:with-param> + <xsl:with-param name="header">Repair</xsl:with-param> + <xsl:with-param name="headerID">MarkupRepairHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyMarkupXForm</xsl:with-param> + <xsl:with-param name="header">Transformation</xsl:with-param> + <xsl:with-param name="headerID">MarkupXFormHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">misc</xsl:with-param> - <xsl:with-param name="header">Miscellaneous</xsl:with-param> - <xsl:with-param name="headerID">MiscellaneousHeader</xsl:with-param> + <xsl:with-param name="class">TidyMarkupTeach</xsl:with-param> + <xsl:with-param name="header">Teaching Tidy</xsl:with-param> + <xsl:with-param name="headerID">MarkupTeachHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyPrettyPrint</xsl:with-param> + <xsl:with-param name="header">Pretty Print</xsl:with-param> + <xsl:with-param name="headerID">PrettyPrintHeader</xsl:with-param> </xsl:call-template> </table> </xsl:template> @@ -81,29 +117,59 @@ <table summary="Tidy Options Quick Reference Detail Section" border="0" cellpadding="3" cellspacing="0"> <xsl:call-template name="reference"> - <xsl:with-param name="class">markup</xsl:with-param> - <xsl:with-param name="header">HTML, XHTML, XML</xsl:with-param> - <xsl:with-param name="headerID">MarkupReference</xsl:with-param> + <xsl:with-param name="class">TidyDisplay</xsl:with-param> + <xsl:with-param name="header">Document Display</xsl:with-param> + <xsl:with-param name="headerID">DisplayReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">diagnostics</xsl:with-param> + <xsl:with-param name="class">TidyDocumentIO</xsl:with-param> + <xsl:with-param name="header">Document In and Out</xsl:with-param> + <xsl:with-param name="headerID">DocumentIOReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyFileIO</xsl:with-param> + <xsl:with-param name="header">File Input-Output</xsl:with-param> + <xsl:with-param name="headerID">FileIOReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyDiagnostics</xsl:with-param> <xsl:with-param name="header">Diagnostics</xsl:with-param> <xsl:with-param name="headerID">DiagnosticsReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">print</xsl:with-param> - <xsl:with-param name="header">Pretty Print</xsl:with-param> - <xsl:with-param name="headerID">PrettyPrintReference</xsl:with-param> + <xsl:with-param name="class">TidyEncoding</xsl:with-param> + <xsl:with-param name="header">Encoding</xsl:with-param> + <xsl:with-param name="headerID">EncodingReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">encoding</xsl:with-param> - <xsl:with-param name="header">Character Encoding</xsl:with-param> - <xsl:with-param name="headerID">EncodingReference</xsl:with-param> + <xsl:with-param name="class">TidyMarkupCleanup</xsl:with-param> + <xsl:with-param name="header">Cleanup</xsl:with-param> + <xsl:with-param name="headerID">MarkupCleanupReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyMarkupEntities</xsl:with-param> + <xsl:with-param name="header">Entities</xsl:with-param> + <xsl:with-param name="headerID">MarkupEntitiesReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyMarkupRepair</xsl:with-param> + <xsl:with-param name="header">Repair</xsl:with-param> + <xsl:with-param name="headerID">MarkupRepairReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyMarkupXForm</xsl:with-param> + <xsl:with-param name="header">Transformation</xsl:with-param> + <xsl:with-param name="headerID">MarkupXFormReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">misc</xsl:with-param> - <xsl:with-param name="header">Miscellaneous</xsl:with-param> - <xsl:with-param name="headerID">MiscellaneousReference</xsl:with-param> + <xsl:with-param name="class">TidyMarkupTeach</xsl:with-param> + <xsl:with-param name="header">Teaching Tidy</xsl:with-param> + <xsl:with-param name="headerID">MarkupTeachReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyPrettyPrint</xsl:with-param> + <xsl:with-param name="header">Pretty Print</xsl:with-param> + <xsl:with-param name="headerID">PrettyPrintReference</xsl:with-param> </xsl:call-template> </table> </xsl:template> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tidy-html5-doxygen/quickref.xsl new/tidy-html5-doxygen/quickref.xsl --- old/tidy-html5-doxygen/quickref.xsl 2017-04-04 20:13:01.000000000 +0200 +++ new/tidy-html5-doxygen/quickref.xsl 2019-11-05 19:28:01.000000000 +0100 @@ -33,11 +33,17 @@ <h2>Option Groups</h2> <ul class="option_groups"> - <li><a href="#MarkupHeader">HTML, XHTML, XML</a></li> + <li><a href="#DisplayHeader">Document Display</a></li> + <li><a href="#DocumentIOHeader">Document In and Out</a></li> + <li><a href="#FileIOHeader">File Input-Output</a></li> <li><a href="#DiagnosticsHeader">Diagnostics</a></li> + <li><a href="#EncodingHeader">Encoding</a></li> + <li><a href="#MarkupCleanupHeader">Cleanup</a></li> + <li><a href="#MarkupEntitiesHeader">Entities</a></li> + <li><a href="#MarkupRepairHeader">Repair</a></li> + <li><a href="#MarkupXFormHeader">Transformation</a></li> + <li><a href="#MarkupTeachHeader">Teaching Tidy</a></li> <li><a href="#PrettyPrintHeader">Pretty Print</a></li> - <li><a href="#EncodingHeader">Character Encoding</a></li> - <li><a href="#MiscellaneousHeader">Miscellaneous</a></li> </ul> <h2>Option Index</h2> @@ -56,29 +62,59 @@ <xsl:template name="link-section"> <table summary="Options Quick Reference Index Section" class="index_table"> <xsl:call-template name="links"> - <xsl:with-param name="class">markup</xsl:with-param> - <xsl:with-param name="header">HTML, XHTML, XML</xsl:with-param> - <xsl:with-param name="headerID">MarkupHeader</xsl:with-param> + <xsl:with-param name="class">TidyDisplay</xsl:with-param> + <xsl:with-param name="header">Document Display</xsl:with-param> + <xsl:with-param name="headerID">DisplayHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">diagnostics</xsl:with-param> + <xsl:with-param name="class">TidyDocumentIO</xsl:with-param> + <xsl:with-param name="header">Document In and Out</xsl:with-param> + <xsl:with-param name="headerID">DocumentIOHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyFileIO</xsl:with-param> + <xsl:with-param name="header">File Input-Output</xsl:with-param> + <xsl:with-param name="headerID">FileIOHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyDiagnostics</xsl:with-param> <xsl:with-param name="header">Diagnostics</xsl:with-param> <xsl:with-param name="headerID">DiagnosticsHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">print</xsl:with-param> - <xsl:with-param name="header">Pretty Print</xsl:with-param> - <xsl:with-param name="headerID">PrettyPrintHeader</xsl:with-param> + <xsl:with-param name="class">TidyEncoding</xsl:with-param> + <xsl:with-param name="header">Encoding</xsl:with-param> + <xsl:with-param name="headerID">EncodingHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">encoding</xsl:with-param> - <xsl:with-param name="header">Character Encoding</xsl:with-param> - <xsl:with-param name="headerID">EncodingHeader</xsl:with-param> + <xsl:with-param name="class">TidyMarkupCleanup</xsl:with-param> + <xsl:with-param name="header">Cleanup</xsl:with-param> + <xsl:with-param name="headerID">MarkupCleanupHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyMarkupEntities</xsl:with-param> + <xsl:with-param name="header">Entities</xsl:with-param> + <xsl:with-param name="headerID">MarkupEntitiesHeader</xsl:with-param> </xsl:call-template> <xsl:call-template name="links"> - <xsl:with-param name="class">misc</xsl:with-param> - <xsl:with-param name="header">Miscellaneous</xsl:with-param> - <xsl:with-param name="headerID">MiscellaneousHeader</xsl:with-param> + <xsl:with-param name="class">TidyMarkupRepair</xsl:with-param> + <xsl:with-param name="header">Repair</xsl:with-param> + <xsl:with-param name="headerID">MarkupRepairHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyMarkupXForm</xsl:with-param> + <xsl:with-param name="header">Transformation</xsl:with-param> + <xsl:with-param name="headerID">MarkupXFormHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyMarkupTeach</xsl:with-param> + <xsl:with-param name="header">Teaching Tidy</xsl:with-param> + <xsl:with-param name="headerID">MarkupTeachHeader</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="links"> + <xsl:with-param name="class">TidyPrettyPrint</xsl:with-param> + <xsl:with-param name="header">Pretty Print</xsl:with-param> + <xsl:with-param name="headerID">PrettyPrintHeader</xsl:with-param> </xsl:call-template> </table> </xsl:template> @@ -87,29 +123,59 @@ <xsl:template name="detail-section"> <table summary="Options Quick Reference Detail Section" class="detail_table"> <xsl:call-template name="reference"> - <xsl:with-param name="class">markup</xsl:with-param> - <xsl:with-param name="header">HTML, XHTML, XML</xsl:with-param> - <xsl:with-param name="headerID">MarkupReference</xsl:with-param> + <xsl:with-param name="class">TidyDisplay</xsl:with-param> + <xsl:with-param name="header">Document Display</xsl:with-param> + <xsl:with-param name="headerID">DisplayReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyDocumentIO</xsl:with-param> + <xsl:with-param name="header">Document In and Out</xsl:with-param> + <xsl:with-param name="headerID">DocumentIOReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyFileIO</xsl:with-param> + <xsl:with-param name="header">File Input-Output</xsl:with-param> + <xsl:with-param name="headerID">FileIOReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">diagnostics</xsl:with-param> + <xsl:with-param name="class">TidyDiagnostics</xsl:with-param> <xsl:with-param name="header">Diagnostics</xsl:with-param> <xsl:with-param name="headerID">DiagnosticsReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">print</xsl:with-param> - <xsl:with-param name="header">Pretty Print</xsl:with-param> - <xsl:with-param name="headerID">PrettyPrintReference</xsl:with-param> + <xsl:with-param name="class">TidyEncoding</xsl:with-param> + <xsl:with-param name="header">Encoding</xsl:with-param> + <xsl:with-param name="headerID">EncodingReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">encoding</xsl:with-param> - <xsl:with-param name="header">Character Encoding</xsl:with-param> - <xsl:with-param name="headerID">EncodingReference</xsl:with-param> + <xsl:with-param name="class">TidyMarkupCleanup</xsl:with-param> + <xsl:with-param name="header">Cleanup</xsl:with-param> + <xsl:with-param name="headerID">MarkupCleanupReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyMarkupEntities</xsl:with-param> + <xsl:with-param name="header">Entities</xsl:with-param> + <xsl:with-param name="headerID">MarkupEntitiesReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyMarkupRepair</xsl:with-param> + <xsl:with-param name="header">Repair</xsl:with-param> + <xsl:with-param name="headerID">MarkupRepairReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyMarkupXForm</xsl:with-param> + <xsl:with-param name="header">Transformation</xsl:with-param> + <xsl:with-param name="headerID">MarkupXFormReference</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="reference"> + <xsl:with-param name="class">TidyMarkupTeach</xsl:with-param> + <xsl:with-param name="header">Teaching Tidy</xsl:with-param> + <xsl:with-param name="headerID">MarkupTeachReference</xsl:with-param> </xsl:call-template> <xsl:call-template name="reference"> - <xsl:with-param name="class">misc</xsl:with-param> - <xsl:with-param name="header">Miscellaneous</xsl:with-param> - <xsl:with-param name="headerID">MiscellaneousReference</xsl:with-param> + <xsl:with-param name="class">TidyPrettyPrint</xsl:with-param> + <xsl:with-param name="header">Pretty Print</xsl:with-param> + <xsl:with-param name="headerID">PrettyPrintReference</xsl:with-param> </xsl:call-template> </table> </xsl:template> @@ -180,38 +246,39 @@ <td> <xsl:choose> <xsl:when test="string-length(default) > 0"> - <xsl:apply-templates select="default" /> + <var><xsl:apply-templates select="default" /></var> </xsl:when> <xsl:otherwise> - - + no default value </xsl:otherwise> </xsl:choose> </td> </tr> - <tr> - <td>Example</td> - <td> - <xsl:choose> - <xsl:when test="string-length(example) > 0"> - <xsl:apply-templates select="example"/> - </xsl:when> - <xsl:otherwise> - - - </xsl:otherwise> - </xsl:choose> - </td> - </tr> - <tr> - <td>See also:</td> - <td> - <xsl:for-each select="seealso"> - <a href="#{.}"><xsl:apply-templates select="." /></a> - <xsl:if test="position() != last()"> - <xsl:text>, </xsl:text> - </xsl:if> - </xsl:for-each> - </td> - </tr> + <xsl:choose> + <xsl:when test="string-length(example) > 0"> + <tr> + <td>Values:</td> + <td> + <var><xsl:apply-templates select="example"/></var> + </td> + </tr> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="count(seealso) > 0" > + <tr> + <td>See also:</td> + <td> + <xsl:for-each select="seealso"> + <a href="#{.}"><xsl:apply-templates select="." /></a> + <xsl:if test="position() != last()"> + <xsl:text>, </xsl:text> + </xsl:if> + </xsl:for-each> + </td> + </tr> + </xsl:when> + </xsl:choose> <tr> <td></td> <td class="qdescription"><xsl:apply-templates select="description"/></td> @@ -354,7 +421,7 @@ min-width: 6.0em; } - code, var + code { color: darkgreen; font-size: 1.3em; @@ -362,7 +429,10 @@ var { - font-weight: bold; + color: darkred; + font-size: 1.0em; + font-weight: 600; + font-style: normal; } </style>
