#!/usr/bin/php globr('.', '*'); foreach ($files as $file) { if ( !is_file($file) || prefix_is('./docs/doxygen', $file) || prefix_is('./library/standalone', $file) || prefix_is('./docs/specimens', $file) || postfix_is('.ser', $file) || postfix_is('.tgz', $file) || postfix_is('.patch', $file) || postfix_is('.dtd', $file) || postfix_is('.ent', $file) || postfix_is('.png', $file) || postfix_is('.ico', $file) || // wontfix postfix_is('.vtest', $file) || postfix_is('.svg', $file) || postfix_is('.phpt', $file) || postfix_is('VERSION', $file) || postfix_is('WHATSNEW', $file) || postfix_is('FOCUS', $file) || postfix_is('configdoc/usage.xml', $file) || postfix_is('library/HTMLPurifier.includes.php', $file) || postfix_is('library/HTMLPurifier.safe-includes.php', $file) || postfix_is('smoketests/xssAttacks.xml', $file) || // phpt files postfix_is('.diff', $file) || postfix_is('.exp', $file) || postfix_is('.log', $file) || postfix_is('.out', $file) || $file == './library/HTMLPurifier/Lexer/PH5P.php' || $file == './maintenance/PH5P.php' ) continue; $ext = strrchr($file, '.'); if ( postfix_is('README', $file) || postfix_is('LICENSE', $file) || postfix_is('CREDITS', $file) || postfix_is('INSTALL', $file) || postfix_is('NEWS', $file) || postfix_is('TODO', $file) || postfix_is('WYSIWYG', $file) || postfix_is('Changelog', $file) ) $ext = '.txt'; if (postfix_is('Doxyfile', $file)) $ext = 'Doxyfile'; if (postfix_is('.php.in', $file)) $ext = '.php'; $no_nl = false; switch ($ext) { case '.php': case '.inc': case '.js': $line = '// %s'; break; case '.html': case '.xsl': case '.xml': case '.htc': $line = ""; break; case '.htmlt': $no_nl = true; $line = '--# %s'; break; case '.ini': $line = '; %s'; break; case '.css': $line = '/* %s */'; break; case '.bat': $line = 'rem %s'; break; case '.txt': case '.utf8': if ( prefix_is('./library/HTMLPurifier/ConfigSchema', $file) || prefix_is('./smoketests/test-schema', $file) || prefix_is('./tests/HTMLPurifier/StringHashParser', $file) ) { $no_nl = true; $line = '--# %s'; } else { $line = ' %s'; } break; case 'Doxyfile': $line = '# %s'; break; default: throw new Exception('Unknown file: ' . $file); } echo "$file\n"; $contents = file_get_contents($file); $regex = '~' . str_replace('%s', 'vim: .+', preg_quote($line, '~')) . '~m'; $contents = preg_replace($regex, '', $contents); $contents = rtrim($contents); if (strpos($contents, "\r\n") !== false) $nl = "\r\n"; elseif (strpos($contents, "\n") !== false) $nl = "\n"; elseif (strpos($contents, "\r") !== false) $nl = "\r"; else $nl = PHP_EOL; if (!$no_nl) $contents .= $nl; $contents .= $nl . str_replace('%s', $vimline, $line) . $nl; file_put_contents($file, $contents); } // vim: et sw=4 sts=4