From f64c8219dc2837591f0529c9ee61cc824426749f Mon Sep 17 00:00:00 2001 From: Guilherme Nascimento Date: Tue, 8 Sep 2026 08:54:04 -0300 Subject: [PATCH 1/5] Fixes Example #2 using fileperms Same as: https://github.com/php/doc-en/pull/5842 Incorrect: ```php case 0x8000: // regular $info = 'r'; ``` --- reference/filesystem/functions/fileperms.xml | 54 +++++++------------- 1 file changed, 19 insertions(+), 35 deletions(-) diff --git a/reference/filesystem/functions/fileperms.xml b/reference/filesystem/functions/fileperms.xml index 8eefcdefb..70bcf6da9 100644 --- a/reference/filesystem/functions/fileperms.xml +++ b/reference/filesystem/functions/fileperms.xml @@ -95,51 +95,35 @@ echo substr(sprintf('%o', fileperms('/etc/passwd')), -4); $perms = fileperms('/etc/passwd'); switch ($perms & 0xF000) { - case 0xC000: // Socket - $info = 's'; - break; - case 0xA000: // Symbolischer Link - $info = 'l'; - break; - case 0x8000: // Regulär - $info = 'r'; - break; - case 0x6000: // Block special - $info = 'b'; - break; - case 0x4000: // Verzeichnis - $info = 'd'; - break; - case 0x2000: // Character special - $info = 'c'; - break; - case 0x1000: // FIFO pipe - $info = 'p'; - break; - default: // unbekannt - $info = 'u'; + case 0x1000: $info = 'p'; break; // FIFO pipe + case 0x2000: $info = 'c'; break; // character special + case 0x4000: $info = 'd'; break; // directory + case 0x6000: $info = 'b'; break; // block special + case 0x8000: $info = '-'; break; // regular + case 0xA000: $info = 'l'; break; // symbolic link (reachable when using lstat function) + case 0xC000: $info = 's'; break; // socket + + // unknown + default: $info = 'u'; } -// Besitzer +// Owner +$setuid = $perms & 0x0800; $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); -$info .= (($perms & 0x0040) ? - (($perms & 0x0800) ? 's' : 'x' ) : - (($perms & 0x0800) ? 'S' : '-')); +$info .= (($perms & 0x0040) ? ($setuid ? 's' : 'x') : ($setuid ? 'S' : '-')); -// Gruppe +// Group +$setgid = $perms & 0x0400; $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); -$info .= (($perms & 0x0008) ? - (($perms & 0x0400) ? 's' : 'x' ) : - (($perms & 0x0400) ? 'S' : '-')); +$info .= (($perms & 0x0008) ? ($setgid ? 's' : 'x') : ($setgid ? 'S' : '-')); -// Andere +// World +$sticky = $perms & 0x0200; $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); -$info .= (($perms & 0x0001) ? - (($perms & 0x0200) ? 't' : 'x' ) : - (($perms & 0x0200) ? 'T' : '-')); +$info .= (($perms & 0x0001) ? ($sticky ? 't' : 'x') : ($sticky ? 'T' : '-')); echo $info; ?> From 3b5bbc53011f691ee063a9be72d27aa4889e38e9 Mon Sep 17 00:00:00 2001 From: Guilherme Nascimento Date: Tue, 8 Sep 2026 08:55:30 -0300 Subject: [PATCH 2/5] Translate comments in fileperms.xml to German --- reference/filesystem/functions/fileperms.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/filesystem/functions/fileperms.xml b/reference/filesystem/functions/fileperms.xml index 70bcf6da9..5614e1e26 100644 --- a/reference/filesystem/functions/fileperms.xml +++ b/reference/filesystem/functions/fileperms.xml @@ -107,19 +107,19 @@ switch ($perms & 0xF000) { default: $info = 'u'; } -// Owner +// Besitzer $setuid = $perms & 0x0800; $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? ($setuid ? 's' : 'x') : ($setuid ? 'S' : '-')); -// Group +// Gruppe $setgid = $perms & 0x0400; $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? ($setgid ? 's' : 'x') : ($setgid ? 'S' : '-')); -// World +// Andere $sticky = $perms & 0x0200; $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); From a5d5ef61680cde612f45b2a7300ff6febec5c4dd Mon Sep 17 00:00:00 2001 From: Guilherme Nascimento Date: Tue, 8 Sep 2026 09:12:29 -0300 Subject: [PATCH 3/5] Update file permissions comments to German --- reference/filesystem/functions/fileperms.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/reference/filesystem/functions/fileperms.xml b/reference/filesystem/functions/fileperms.xml index 5614e1e26..5f3074dcd 100644 --- a/reference/filesystem/functions/fileperms.xml +++ b/reference/filesystem/functions/fileperms.xml @@ -96,14 +96,14 @@ $perms = fileperms('/etc/passwd'); switch ($perms & 0xF000) { case 0x1000: $info = 'p'; break; // FIFO pipe - case 0x2000: $info = 'c'; break; // character special - case 0x4000: $info = 'd'; break; // directory - case 0x6000: $info = 'b'; break; // block special - case 0x8000: $info = '-'; break; // regular - case 0xA000: $info = 'l'; break; // symbolic link (reachable when using lstat function) - case 0xC000: $info = 's'; break; // socket + case 0x2000: $info = 'c'; break; // Character special + case 0x4000: $info = 'd'; break; // Verzeichnis + case 0x6000: $info = 'b'; break; // Block special + case 0x8000: $info = 'r'; break; // Regulär + case 0xA000: $info = 'l'; break; // Symbolischer Link (verfügbar bei verwendung der funktion lstat) + case 0xC000: $info = 's'; break; // Socket - // unknown + // unbekannt default: $info = 'u'; } From 6aa00396e1fdacf810e46b90039aaae2e1894a32 Mon Sep 17 00:00:00 2001 From: Guilherme Nascimento Date: Tue, 8 Sep 2026 11:00:50 -0300 Subject: [PATCH 4/5] Fix file type representation for regular files --- reference/filesystem/functions/fileperms.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/filesystem/functions/fileperms.xml b/reference/filesystem/functions/fileperms.xml index 5f3074dcd..2c22734eb 100644 --- a/reference/filesystem/functions/fileperms.xml +++ b/reference/filesystem/functions/fileperms.xml @@ -99,7 +99,7 @@ switch ($perms & 0xF000) { case 0x2000: $info = 'c'; break; // Character special case 0x4000: $info = 'd'; break; // Verzeichnis case 0x6000: $info = 'b'; break; // Block special - case 0x8000: $info = 'r'; break; // Regulär + case 0x8000: $info = '-'; break; // Regulär case 0xA000: $info = 'l'; break; // Symbolischer Link (verfügbar bei verwendung der funktion lstat) case 0xC000: $info = 's'; break; // Socket From 84239c7b3ac1076f7e6e1cd8d0e17e5d4ed73c90 Mon Sep 17 00:00:00 2001 From: Guilherme Nascimento Date: Tue, 8 Sep 2026 11:11:03 -0300 Subject: [PATCH 5/5] Update revision information in fileperms.xml --- reference/filesystem/functions/fileperms.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/filesystem/functions/fileperms.xml b/reference/filesystem/functions/fileperms.xml index 2c22734eb..290e68389 100644 --- a/reference/filesystem/functions/fileperms.xml +++ b/reference/filesystem/functions/fileperms.xml @@ -1,6 +1,6 @@ - +