/* This file is part of GNU tar.
- Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright 2006-2008, 2013-2014, 2016 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+ with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <system.h>
#include <regex.h>
\f
-int transform_flags = XFORM_ALL;
+static int transform_flags = XFORM_ALL;
static struct transform *transform_head, *transform_tail;
static struct transform *
break;
case 'L':
- /* Turn the replacement to lowercase until a `\U' or `\E'
+ /* Turn the replacement to lowercase until a '\U' or '\E'
is found, */
add_case_ctl_segment (tf, ctl_locase);
cur++;
break;
case 'U':
- /* Turn the replacement to uppercase until a `\L' or `\E'
+ /* Turn the replacement to uppercase until a '\L' or '\E'
is found, */
add_case_ctl_segment (tf, ctl_upcase);
cur++;
break;
case 'E':
- /* Stop case conversion started by `\L' or `\U'. */
+ /* Stop case conversion started by '\L' or '\U'. */
add_case_ctl_segment (tf, ctl_stop);
cur++;
break;
default:
- /* Try to be nice */
- {
- char buf[2];
- buf[0] = '\\';
- buf[1] = *cur;
- add_literal_segment (tf, buf, buf + 2);
- }
+ if (*cur == delim)
+ add_char_segment (tf, delim);
+ else
+ {
+ char buf[2];
+ buf[0] = '\\';
+ buf[1] = *cur;
+ add_literal_segment (tf, buf, buf + 2);
+ }
cur++;
break;
}
{
return transform_name_fp (pinput, type, NULL, NULL);
}
+
+bool
+transform_program_p (void)
+{
+ return transform_head != NULL;
+}