nlopess Wed Apr 6 13:16:46 2005 EDT
Modified files:
/phpdoc/scripts file-entities.php.in
Log:
finally put the cygwin's openjade working. I hope all setups will work.. :)
Please test.
http://cvs.php.net/diff.php/phpdoc/scripts/file-entities.php.in?r1=1.36&r2=1.37&ty=u
Index: phpdoc/scripts/file-entities.php.in
diff -u phpdoc/scripts/file-entities.php.in:1.36
phpdoc/scripts/file-entities.php.in:1.37
--- phpdoc/scripts/file-entities.php.in:1.36 Sun Apr 3 16:56:09 2005
+++ phpdoc/scripts/file-entities.php.in Wed Apr 6 13:16:45 2005
@@ -17,7 +17,7 @@
| Gabor Hojtsy <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: file-entities.php.in,v 1.36 2005/04/03 20:56:09 goba Exp $
+ $Id: file-entities.php.in,v 1.37 2005/04/06 17:16:45 nlopess Exp $
*/
/**
@@ -50,30 +50,14 @@
// Zend API integration info (either a path or "not found")
$zendapi = ("@ZENDAPI@" == "not found" ? FALSE : "@ZENDAPI@");
-// If Jade is used on Windows outside Cygwin, it
-// needs Windows like path values later on
-$windows_jade = ((bool) @WINJADE@);
-
-// The output directory, which we need to parse for windows specific
-// things, and correct all problems is needed.
-// Also use absolute path to have meaningful error messages
-$out_dir = abs_path(strip_cygdrive("@WORKDIR@"));
-
-// this path if used for saving the ent file:
-$script_out_dir = $windows_jade ? $out_dir : "@WORKDIR@";
+$not_windows = !eregi('WIN',PHP_OS);
-// The documentation source directory
-$srcdir = abs_path("@SRCDIR@");
-
-// The translation subdir to use
-$trans_dir = "$srcdir/@LANGDIR@";
+// The dir for PHP. If the cygwin wasn't compiled on Cygwin, the path needs to
be striped.
+$out_dir = ($not_windows || eregi('CYGWIN',php_uname()))? "@WORKDIR@" :
abs_path(strip_cygdrive("@WORKDIR@"));
// The language encoding to use
$encoding = "@ENCODING@";
-// The original directory is in the base directory, and named "en"
-$orig_dir = "$srcdir/en";
-
// PHP, PECL and additional extension source directories if given
$php_source = ("@PHP_SOURCE@" === "no" ? false : abs_path("@PHP_SOURCE@"));
$pecl_source = ("@PECL_SOURCE@" === "no" ? false : abs_path("@PECL_SOURCE@"));
@@ -88,9 +72,9 @@
// Put all the file entitites into $entities
$entities = array();
-file_entities($orig_dir, $trans_dir, $orig_dir, $entities);
+file_entities("$out_dir/en", "$out_dir/@LANGDIR@", "$out_dir/en", $entities);
-$refdir = "$orig_dir/reference";
+$refdir = "$out_dir/en/reference";
$dh = opendir($refdir);
while ($dir = readdir($dh)) {
if ($dir{0} === ".") continue; // ignore system dir entries and hidden
files
@@ -163,9 +147,9 @@
// Open file for appending and write out all entitities
-$fp = fopen("$script_out_dir/entities/file-entities.ent", "w");
+$fp = fopen("$out_dir/entities/file-entities.ent", "w");
if (!$fp) {
- die("ERROR: Failed to open $script_out_dir/entities/file-entities.ent for
writing\n");
+ die("ERROR: Failed to open $out_dir/entities/file-entities.ent for
writing\n");
}
echo "\nCreating file: entities/file-entities.ent...\n";
@@ -262,13 +246,7 @@
* @return boolean Success signal
*/
function file_entities($work_dir, $trans_dir, $orig_dir, &$entities,
$prefix=false) {
- // Skip the function directory not under "reference". That
- // folder is only kept for backward compatibility and only
- // in the English version of the docs.
- if (!$prefix && strpos($work_dir, "functions") &&
!preg_match("!reference/.*/functions!", $work_dir)) {
- return;
- }
-
+
// Compute translated version's path
$trans_path = str_replace($orig_dir, $trans_dir, $work_dir);
@@ -418,7 +396,7 @@
if ($filename == "") {
return sprintf("<!ENTITY %-40s ''>\n", $entname);
} else {
- return sprintf("<!ENTITY %-40s SYSTEM '%s'>\n", $entname,
strip_cygdrive($filename));
+ return sprintf("<!ENTITY %-40s SYSTEM '%s'>\n", $entname,
file2jade($filename));
}
}
@@ -429,13 +407,23 @@
* @return string windows style path
*/
function strip_cygdrive($path){
- if (!$GLOBALS['windows_jade']) {
- return $path;
- }
return preg_replace(array('!^/cygdrive/(\w)/!', '@^/home/.+$@'),
array('\1:/', strtr(dirname(dirname(__FILE__)), '\\', '/')), $path);
}
+/* Converts a path to the appropriate style for Jade */
+function file2jade($path) {
+
+ if ($GLOBALS['not_windows'])
+ return $path;
+
+ if ((bool)@WINJADE@) {
+ return strip_cygdrive($path);
+ } else {
+ return preg_replace('@^([a-zA-Z]):/@S', '/cygdrive/$1/', $path);
+ }
+}
+
/**
* Create a reference <part>
*