📄 fspath.pm
字号:
# The source files are wholly original Motorola proprietary work now being # licensed as BSD, the following Copyright Notice will be added to each source # code file, documentation and other materials with the distribution:# # Copyright 2006, Motorola, All Rights Reserved.# # This program is licensed under a BSD license with the following terms:# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met:## - Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. ## - Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. ## - Neither the name of the MOTOROLA nor the names of its contributors may be # used to endorse or promote products derived from this software without # specific prior written permission.### THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE.#package Bom::Parser::Fspath;#==============================================================================## General Description:# Process bom files that describe filesystem paths##==============================================================================use strict;use base 'Bom::Parser';sub entry_index { my ($self,$entry) = @_; my $fspath = $entry->get_attr('fspath'); if (!defined($fspath)) { if ($entry->path =~ m{/(/.*)$}o) { $fspath = $1; $entry->set_attr(fspath => $fspath); } else { $self->error('no fspath or // separator',$entry); } } if (substr($fspath,0,1) ne '/') { $self->error('fspath must be absolute',$entry); } $fspath;}sub put_entry { my ($self,$fspath,$entry) = @_; my $path = $entry->path; # FIXME: this "fixes" the creative abuse of boms by the OS $path = $entry->path($fspath) if ($path eq '//'); # FIXME: strip leading // that used to be needed for virtual entries $entry->path($path) if ($path =~ s{^//}{/}o); $self->SUPER::put_entry($fspath,$entry);}1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -