Skip to content

Commit

Permalink
Merge PR #856 branch 'develop-olympus' into develop
Browse files Browse the repository at this point in the history
* develop-olympus:
  [ticket/10937] Update documentation to say which comment styles are removed.
  [ticket/10937] Comment removal functions: Restore backward compatibility
  • Loading branch information
p committed Jul 7, 2012
2 parents 1526886 + a7da376 commit b6a364b
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 8 deletions.
15 changes: 15 additions & 0 deletions phpBB/includes/functions_admin.php
Expand Up @@ -2291,6 +2291,21 @@ function auto_prune($forum_id, $prune_mode, $prune_flags, $prune_days, $prune_fr
return;
}

/**
* remove_comments will strip the sql comment lines out of an uploaded sql file
* specifically for mssql and postgres type files in the install....
*
* @deprecated Use phpbb_remove_comments() instead.
*/
function remove_comments(&$output)
{
// Remove /* */ comments (http://ostermiller.org/findcomment.html)
$output = preg_replace('#/\*(.|[\r\n])*?\*/#', "\n", $output);

// Return by reference and value.
return $output;
}

/**
* Cache moderators, called whenever permissions are changed via admin_permissions. Changes of username
* and group names must be carried through for the moderators table
Expand Down
42 changes: 37 additions & 5 deletions phpBB/includes/functions_install.php
Expand Up @@ -49,6 +49,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'firebird',
'MODULE' => 'interbase',
'DELIM' => ';;',
'COMMENTS' => 'remove_remarks',
'DRIVER' => 'firebird',
'AVAILABLE' => true,
'2.0.x' => false,
Expand All @@ -58,6 +59,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'mysql_41',
'MODULE' => 'mysqli',
'DELIM' => ';',
'COMMENTS' => 'remove_remarks',
'DRIVER' => 'mysqli',
'AVAILABLE' => true,
'2.0.x' => true,
Expand All @@ -67,6 +69,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'mysql',
'MODULE' => 'mysql',
'DELIM' => ';',
'COMMENTS' => 'remove_remarks',
'DRIVER' => 'mysql',
'AVAILABLE' => true,
'2.0.x' => true,
Expand All @@ -76,6 +79,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'mssql',
'MODULE' => 'mssql',
'DELIM' => 'GO',
'COMMENTS' => 'remove_comments',
'DRIVER' => 'mssql',
'AVAILABLE' => true,
'2.0.x' => true,
Expand All @@ -85,6 +89,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'mssql',
'MODULE' => 'odbc',
'DELIM' => 'GO',
'COMMENTS' => 'remove_comments',
'DRIVER' => 'mssql_odbc',
'AVAILABLE' => true,
'2.0.x' => true,
Expand All @@ -94,6 +99,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'mssql',
'MODULE' => 'sqlsrv',
'DELIM' => 'GO',
'COMMENTS' => 'remove_comments',
'DRIVER' => 'mssqlnative',
'AVAILABLE' => true,
'2.0.x' => false,
Expand All @@ -103,6 +109,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'oracle',
'MODULE' => 'oci8',
'DELIM' => '/',
'COMMENTS' => 'remove_comments',
'DRIVER' => 'oracle',
'AVAILABLE' => true,
'2.0.x' => false,
Expand All @@ -112,6 +119,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'postgres',
'MODULE' => 'pgsql',
'DELIM' => ';',
'COMMENTS' => 'remove_comments',
'DRIVER' => 'postgres',
'AVAILABLE' => true,
'2.0.x' => true,
Expand All @@ -121,6 +129,7 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
'SCHEMA' => 'sqlite',
'MODULE' => 'sqlite',
'DELIM' => ';',
'COMMENTS' => 'remove_remarks',
'DRIVER' => 'sqlite',
'AVAILABLE' => true,
'2.0.x' => false,
Expand Down Expand Up @@ -464,16 +473,39 @@ function connect_check_db($error_connect, &$error, $dbms_details, $table_prefix,

/**
* Removes comments from schema files
*
* @deprecated Use phpbb_remove_comments() instead.
*/
function remove_comments($sql)
function remove_remarks(&$sql)
{
// Remove /* */ comments (http://ostermiller.org/findcomment.html)
$sql = preg_replace('#/\*(.|[\r\n])*?\*/#', "\n", $sql);

// Remove # style comments
$sql = preg_replace('/\n{2,}/', "\n", preg_replace('/^#.*$/m', "\n", $sql));

return $sql;
// Return by reference
}

/**
* Removes "/* style" as well as "# style" comments from $input.
*
* @param string $input Input string
*
* @return string Input string with comments removed
*/
function phpbb_remove_comments($input)
{
if (!function_exists('remove_comments'))
{
global $phpbb_root_path, $phpEx;
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
}

// Remove /* */ comments
remove_comments($input);

// Remove # style comments
remove_remarks($input);

return $input;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions phpBB/install/install_install.php
Expand Up @@ -1178,7 +1178,7 @@ function load_schema($mode, $sub)

$sql_query = preg_replace('#phpbb_#i', $data['table_prefix'], $sql_query);

$sql_query = remove_comments($sql_query);
$sql_query = phpbb_remove_comments($sql_query);

$sql_query = split_sql_file($sql_query, $delimiter);

Expand Down Expand Up @@ -1216,7 +1216,7 @@ function load_schema($mode, $sub)
// Change language strings...
$sql_query = preg_replace_callback('#\{L_([A-Z0-9\-_]*)\}#s', 'adjust_language_keys_callback', $sql_query);

$sql_query = remove_comments($sql_query);
$sql_query = phpbb_remove_comments($sql_query);
$sql_query = split_sql_file($sql_query, ';');

foreach ($sql_query as $sql)
Expand Down
Expand Up @@ -258,7 +258,7 @@ protected function load_schema_from_file($directory)
$filename = $directory . $schema . '_schema.sql';

$queries = file_get_contents($filename);
$sql = remove_comments($queries);
$sql = phpbb_remove_comments($queries);

$sql = split_sql_file($sql, $this->dbms['DELIM']);

Expand Down

0 comments on commit b6a364b

Please sign in to comment.