| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| https://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <html lang="en"> |
| |
| <head> |
| <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> |
| <title>FixCRLF Task</title> |
| </head> |
| |
| <body> |
| |
| <h2 id="fixcrlf">FixCRLF</h2> |
| <h3>Description</h3> |
| <p>Adjusts a text file to local conventions.</p> |
| |
| <p>The set of files to be adjusted can be refined with |
| the <var>includes</var>, <var>includesfile</var>, <var>excludes</var>, <var>excludesfile</var> |
| and <var>defaultexcludes</var> attributes. Patterns provided through the <var>includes</var> |
| or <var>includesfile</var> attributes specify files to be included. Patterns provided through |
| the <var>exclude</var> or <var>excludesfile</var> attribute specify files to be |
| excluded. Additionally, default exclusions can be specified with the <var>defaultexcludes</var> |
| attribute. See the section on <a href="../dirtasks.html#directorybasedtasks">directory-based |
| tasks</a>, for details of file inclusion/exclusion patterns and their usage.</p> |
| |
| <p>This task forms an implicit <a href="../Types/fileset.html">FileSet</a> and supports most |
| attributes of <code><fileset></code> (<var>dir</var> becomes <var>srcdir</var>) as well as |
| the nested <code><include></code>, <code><exclude></code> |
| and <code><patternset></code> elements.</p> |
| |
| <p> |
| The output file is only written if it is a new file, or if it |
| differs from the existing file. This prevents spurious |
| rebuilds based on unchanged files which have been regenerated |
| by this task. In order to assess whether a file has changed, this |
| task will create a pre-processed version of the source file inside of |
| the <a href="../running.html#tmpdir">temporary directory</a>. |
| </p> |
| |
| <p><em>Since Apache Ant 1.7</em>, this task can be used in |
| a <a href="../Types/filterchain.html">filterchain</a>.</p> |
| |
| <h3>Parameters</h3> |
| <table class="attr"> |
| <tr> |
| <th scope="col" rowspan="2">Attribute</th> |
| <th scope="col" rowspan="2">Description</th> |
| <th scope="col" colspan="2">Required</th> |
| </tr> |
| <tr> |
| <th scope="col">As Task</th> |
| <th scope="col">As Filter</th> |
| </tr> |
| <tr> |
| <td>srcDir</td> |
| <td>Where to find the files to be fixed up.</td> |
| <td rowspan="2" class="center">One of these</td> |
| <td rowspan="11">N/A</td> |
| </tr> |
| <tr> |
| <td>file</td> |
| <td class="left">Name of a single file to fix. <em>Since Ant 1.7</em></td> |
| </tr> |
| <tr> |
| <td>destDir</td> |
| <td>Where to place the corrected files.</td> |
| <td class="center">No; defaults to <var>srcDir</var> (replace the original files)</td> |
| </tr> |
| <tr> |
| <td>includes</td> |
| <td>comma- or space-separated list of patterns of files that must be included.</td> |
| <td class="center">No; defaults to all (<q>**</q>)</td> |
| </tr> |
| <tr> |
| <td>includesfile</td> |
| <td>name of a file. Each line of this file is taken to be an include pattern.</td> |
| <td class="center">No</td> |
| </tr> |
| <tr> |
| <td>excludes</td> |
| <td>comma- or space-separated list of patterns of files that must be excluded.</td> |
| <td class="center">No; defaults to default excludes or none if <var>defaultexcludes</var> |
| is <q>no</q></td> |
| </tr> |
| <tr> |
| <td>excludesfile</td> |
| <td>name of a file. Each line of this file is taken to be an exclude pattern.</td> |
| <td class="center">No</td> |
| </tr> |
| <tr> |
| <td>defaultexcludes</td> |
| <td>indicates whether default excludes should be used or not (<q>yes|no</q>).</td> |
| <td class="center">No; defaults to <q>yes</q></td> |
| </tr> |
| <tr> |
| <td>encoding</td> |
| <td>The encoding of the files.</td> |
| <td class="center">No; defaults to default JVM character encoding</td> |
| </tr> |
| <tr> |
| <td>outputencoding</td> |
| <td>The encoding to use when writing the files. <em>Since Ant 1.7</em></td> |
| <td class="center">No; defaults to <var>encoding</var> if set or default JVM character encoding |
| otherwise</td> |
| </tr> |
| <tr> |
| <td>preservelastmodified</td> |
| <td>Whether to preserve the last modified date of source files. <em>Since Ant 1.6.3</em></td> |
| <td class="center">No; default is <q>false</q></td> |
| </tr> |
| <tr> |
| <td>eol</td> |
| <td>Specifies how end-of-line (EOL) characters are to be handled. The EOL characters are CR, LF |
| and the pair CRLF. Valid values for this property are: |
| <ul> |
| <li><q>asis</q>: leave EOL characters alone</li> |
| <li><q>cr</q>: convert all EOLs to a single CR</li> |
| <li><q>lf</q>: convert all EOLs to a single LF</li> |
| <li><q>crlf</q>: convert all EOLs to the pair CRLF</li> |
| <li><q>mac</q>: convert all EOLs to a single CR</li> |
| <li><q>unix</q>: convert all EOLs to a single LF</li> |
| <li><q>dos</q>: convert all EOLs to the pair CRLF</li> |
| </ul> |
| <p>This is the preferred method for specifying EOL. The <var>cr</var> attribute (see below) |
| is now deprecated.</p> |
| <p><strong>Note</strong>: One special case is recognized. The three characters CR-CR-LF are |
| regarded as a single EOL. Unless this property is specified as <q>asis</q>, this sequence |
| will be converted into the specified EOL type.</p> |
| </td> |
| <td colspan="2">No; default is platform-specific: <q>lf</q> for Unix platforms (including Mac OS |
| X/macOS), <q>crlf</q> for DOS-based systems (including Windows), <q>cr</q> for Mac environments |
| other than OS X</td> |
| </tr> |
| <tr> |
| <td>cr</td> |
| <td><em><u>Deprecated</u></em>. Specifies how CR characters are to be handled at end-of-line |
| (EOL). Valid values for this property are: |
| <ul> |
| <li><q>asis</q>: leave EOL characters alone.</li> |
| <li><q>add</q>: add a CR before any single LF characters. The intent is to convert all EOLs |
| to the pair CRLF.</li> |
| <li><q>remove</q>: remove all CRs from the file. The intent is to convert all EOLs to a |
| single LF.</li> |
| </ul> |
| <p><strong>Note</strong>: One special case is recognized. The three characters CR-CR-LF are |
| regarded as a single EOL. Unless this property is specified as <q>asis</q>, this sequence |
| will be converted into the specified EOL type.</p> |
| </td> |
| <td colspan="2">No; default is platform-specific: <q>remove</q> for Unix platforms, <q>add</q> |
| for DOS based systems (including Windows)</td> |
| </tr> |
| <tr> |
| <td>javafiles</td> |
| <td>Used only in association with the <var>tab</var> attribute (see below), this boolean |
| attribute indicates whether the fileset is a set of Java source files (<q>yes|no</q>). See |
| notes in section on <var>tab</var>.</td> |
| <td colspan="2">No; defaults to <q>no</q></td> |
| </tr> |
| <tr> |
| <td>tab</td> |
| <td>Specifies how tab characters are to be handled. Valid values for this property are: |
| <ul> |
| <li><q>add</q>: convert sequences of spaces which span a tab stop to tabs</li> |
| <li><q>asis</q>: leave tab and space characters alone</li> |
| <li><q>remove</q>: convert tabs to spaces</li> |
| </ul> |
| <p><strong>Note</strong>: When the attribute <var>javafiles</var> (see above) is <q>true</q>, |
| literal TAB characters occurring within Java string or character constants are never |
| modified. This functionality also requires the recognition of Java-style comments.</p> |
| <p><strong>Note</strong>: There is an incompatibility between this and the previous version in |
| the handling of white space at the end of lines. This version |
| does <em><strong>not</strong></em> remove trailing whitespace on lines.</p> |
| </td> |
| <td colspan="2">No; default is <q>asis</q></td> |
| </tr> |
| <tr> |
| <td>tablength</td> |
| <td>TAB character interval. Valid values are between <q>2</q> and <q>80</q> inclusive.</td> |
| <td colspan="2">No; default is <q>8</q></td> |
| </tr> |
| <tr> |
| <td>eof</td> |
| <td>Specifies how DOS end of file (control-Z) characters are to be handled. Valid values for |
| this property are: |
| <ul> |
| <li><q>add</q>: ensure that there is an EOF character at the end of the file</li> |
| <li><q>asis</q>: leave EOF characters alone</li> |
| <li><q>remove</q>: remove any EOF character found at the end</li> |
| </ul> |
| </td> |
| <td colspan="2">No; default is platform-specific: <q>remove</q> for Unix platforms, <q>asis</q> |
| for DOS based systems (including Windows)</td> |
| </tr> |
| <tr> |
| <td>fixlast</td> |
| <td>Whether to add a missing EOL to the last line of a processed file.<br/>Ignored |
| if <var>eof</var> is <q>asis</q>.<br/><em>Since Ant 1.6.1</em></td> |
| <td colspan="2">No; default is <q>true</q></td> |
| </tr> |
| </table> |
| <h3>Examples</h3> |
| <p>Replace EOLs with LF characters and remove EOF characters from the shell scripts. Tabs and spaces |
| are left as is.</p> |
| <pre> |
| <fixcrlf srcdir="${src}" includes="**/*.sh" |
| eol="lf" eof="remove"/></pre> |
| |
| <p>Replace all EOLs with cr-lf pairs in the batch files. Tabs and spaces are left as is. EOF |
| characters are left alone if run on DOS systems, and are removed if run on Unix systems.</p> |
| <pre> |
| <fixcrlf srcdir="${src}" |
| includes="**/*.bat" eol="crlf"/></pre> |
| |
| <p>Set EOLs according to local OS conventions, and convert sequences of spaces and tabs into the |
| minimal set of spaces and tabs which will preserve spacing within the line. Tabs are set at 8 |
| character intervals. EOF characters are left alone if run on DOS systems, and are removed if run on |
| Unix systems. Many versions of make require tabs prior to commands.</p> |
| <pre> |
| <fixcrlf srcdir="${src}" |
| includes="**/Makefile" tab="add"/></pre> |
| |
| <p>Convert all EOLs in the included Java source files to a single LF. Replace all tab characters |
| except those in string or character constants with spaces, assuming a tab width of 3. If run on a |
| Unix system, any CTRL-Z EOF characters at the end of the file are removed. On DOS/Windows, any such |
| EOF characters will be left untouched. |
| </p> |
| <pre> |
| <fixcrlf srcdir="${src}" includes="**/*.java" |
| tab="remove" tablength="3" |
| eol="lf" javafiles="yes"/></pre> |
| |
| <p>Set EOLs according to local OS conventions, and convert all tabs to spaces, assuming a tab width |
| of 8. EOF characters are left alone if run on DOS systems, and are removed if run on Unix |
| systems. You never know what editor a user will use to browse READMEs.</p> |
| <pre> |
| <fixcrlf srcdir="${src}" |
| includes="**/README*" tab="remove"/></pre> |
| |
| </body> |
| </html> |