Changes of Revision 57

roundcubemail.spec Changed
x
 
1
@@ -57,7 +57,7 @@
2
 %global basedir %{name}-%{rc_version}%{?dash_rel_suffix}
3
 
4
 Name:           roundcubemail
5
-Version: 1.5.8.4
6
+Version: 1.5.8.5
7
 
8
 Release:        4%{?dot_rel_suffix}%{?dist}
9
 
10
debian.changelog Changed
7
 
1
@@ -1,4 +1,4 @@
2
-roundcubemail (1.5.8.4-1~kolab1) unstable; urgency=low
3
+roundcubemail (1.5.8.5-1~kolab1) unstable; urgency=low
4
 
5
   * New tarball
6
 
7
roundcubemail-1.5.tar.gz/CHANGELOG.md Changed
12
 
1
@@ -2,6 +2,10 @@
2
 
3
 ## Unreleased
4
 
5
+- Fix current script state after initial scripts creation in managesieve_kolab_master mode
6
+
7
+## Release 1.5.9
8
+
9
 - Fix regression where printing/scaling/rotating image attachments was broken (#9571)
10
 - Fix regression where HTML messages were displayed unstyled (#9586)
11
 
12
roundcubemail-1.5.tar.gz/INSTALL Changed
37
 
1
@@ -13,7 +13,8 @@
2
 * .htaccess support allowing overrides for DirectoryIndex
3
 * PHP Version 5.5 or greater including:
4
    - PCRE, DOM, JSON, Session, Sockets, OpenSSL, Mbstring, Filter, Ctype, Intl (required)
5
-   - PHP PDO with driver for either MySQL, PostgreSQL, SQL Server, Oracle or SQLite (required)
6
+   - PHP PDO with driver for either MySQL (MariaDB), PostgreSQL, SQL Server, Oracle or 
7
+   SQLite (required)
8
    - Iconv, Zip, Fileinfo, Exif (recommended)
9
    - LDAP for LDAP addressbook support (optional)
10
    - GD, Imagick (optional thumbnails generation, QR-code)
11
@@ -27,7 +28,7 @@
12
    - suhosin.session.encrypt disabled
13
    - mbstring.func_overload disabled
14
    - pcre.backtrack_limit >= 100000
15
-* A MySQL, PostgreSQL, MS SQL Server (2005 or newer), Oracle database
16
+* A MariaDB, MySQL, PostgreSQL, MS SQL Server (2005 or newer), Oracle database
17
   or SQLite v3 support in PHP - with permission to create tables
18
 * Composer installed either locally or globally (https://getcomposer.org)
19
 
20
@@ -93,13 +94,13 @@
21
 Note: Database for Roundcube must use UTF-8 character set.
22
 Note: See defaults.inc.php file for examples of DSN configuration.
23
 
24
-* MySQL
25
+* MariaDB / MySQL
26
 -------
27
-Setting up the mysql database can be done by creating an empty database,
28
+Setting up the mariadb / mysql database can be done by creating an empty database,
29
 importing the table layout and granting the proper permissions to the
30
 roundcube user. Here is an example of that procedure:
31
 
32
-# mysql
33
+# mariadb / mysql
34
 > CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
35
 > CREATE USER roundcube@localhost IDENTIFIED BY 'password';
36
 > GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;
37
roundcubemail-1.5.tar.gz/composer.lock Changed
201
 
1
@@ -2991,23 +2991,23 @@
2
         },
3
         {
4
             "name": "sabre/event",
5
-            "version": "5.1.6",
6
+            "version": "5.1.7",
7
             "source": {
8
                 "type": "git",
9
                 "url": "https://github.com/sabre-io/event.git",
10
-                "reference": "e0e1ccbff1965083de9a6530182b8b70819e1347"
11
+                "reference": "86d57e305c272898ba3c28e9bd3d65d5464587c2"
12
             },
13
             "dist": {
14
                 "type": "zip",
15
-                "url": "https://api.github.com/repos/sabre-io/event/zipball/e0e1ccbff1965083de9a6530182b8b70819e1347",
16
-                "reference": "e0e1ccbff1965083de9a6530182b8b70819e1347",
17
+                "url": "https://api.github.com/repos/sabre-io/event/zipball/86d57e305c272898ba3c28e9bd3d65d5464587c2",
18
+                "reference": "86d57e305c272898ba3c28e9bd3d65d5464587c2",
19
                 "shasum": ""
20
             },
21
             "require": {
22
                 "php": "^7.1 || ^8.0"
23
             },
24
             "require-dev": {
25
-                "friendsofphp/php-cs-fixer": "~2.17.1",
26
+                "friendsofphp/php-cs-fixer": "~2.17.1||^3.63",
27
                 "phpstan/phpstan": "^0.12",
28
                 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
29
             },
30
@@ -3053,20 +3053,20 @@
31
                 "issues": "https://github.com/sabre-io/event/issues",
32
                 "source": "https://github.com/fruux/sabre-event"
33
             },
34
-            "time": "2024-07-26T05:09:47+00:00"
35
+            "time": "2024-08-27T11:23:05+00:00"
36
         },
37
         {
38
             "name": "sabre/http",
39
-            "version": "5.1.11",
40
+            "version": "5.1.12",
41
             "source": {
42
                 "type": "git",
43
                 "url": "https://github.com/sabre-io/http.git",
44
-                "reference": "abb019d9415d8c6c39c377e212ef34ad727b711f"
45
+                "reference": "dedff73f3995578bc942fa4c8484190cac14f139"
46
             },
47
             "dist": {
48
                 "type": "zip",
49
-                "url": "https://api.github.com/repos/sabre-io/http/zipball/abb019d9415d8c6c39c377e212ef34ad727b711f",
50
-                "reference": "abb019d9415d8c6c39c377e212ef34ad727b711f",
51
+                "url": "https://api.github.com/repos/sabre-io/http/zipball/dedff73f3995578bc942fa4c8484190cac14f139",
52
+                "reference": "dedff73f3995578bc942fa4c8484190cac14f139",
53
                 "shasum": ""
54
             },
55
             "require": {
56
@@ -3078,7 +3078,7 @@
57
                 "sabre/uri": "^2.0"
58
             },
59
             "require-dev": {
60
-                "friendsofphp/php-cs-fixer": "~2.17.1",
61
+                "friendsofphp/php-cs-fixer": "~2.17.1||^3.63",
62
                 "phpstan/phpstan": "^0.12",
63
                 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
64
             },
65
@@ -3116,7 +3116,7 @@
66
                 "issues": "https://github.com/sabre-io/http/issues",
67
                 "source": "https://github.com/fruux/sabre-http"
68
             },
69
-            "time": "2024-07-26T06:15:25+00:00"
70
+            "time": "2024-08-27T16:07:41+00:00"
71
         },
72
         {
73
             "name": "sabre/uri",
74
@@ -3281,16 +3281,16 @@
75
         },
76
         {
77
             "name": "sabre/xml",
78
-            "version": "2.2.9",
79
+            "version": "2.2.11",
80
             "source": {
81
                 "type": "git",
82
                 "url": "https://github.com/sabre-io/xml.git",
83
-                "reference": "88288712d45f694be3679a0db7dfb3770f08d4f0"
84
+                "reference": "01a7927842abf3e10df3d9c2d9b0cc9d813a3fcc"
85
             },
86
             "dist": {
87
                 "type": "zip",
88
-                "url": "https://api.github.com/repos/sabre-io/xml/zipball/88288712d45f694be3679a0db7dfb3770f08d4f0",
89
-                "reference": "88288712d45f694be3679a0db7dfb3770f08d4f0",
90
+                "url": "https://api.github.com/repos/sabre-io/xml/zipball/01a7927842abf3e10df3d9c2d9b0cc9d813a3fcc",
91
+                "reference": "01a7927842abf3e10df3d9c2d9b0cc9d813a3fcc",
92
                 "shasum": ""
93
             },
94
             "require": {
95
@@ -3302,7 +3302,7 @@
96
                 "sabre/uri": ">=1.0,<3.0.0"
97
             },
98
             "require-dev": {
99
-                "friendsofphp/php-cs-fixer": "~2.17.1",
100
+                "friendsofphp/php-cs-fixer": "~2.17.1||3.63.2",
101
                 "phpstan/phpstan": "^0.12",
102
                 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
103
             },
104
@@ -3346,7 +3346,7 @@
105
                 "issues": "https://github.com/sabre-io/xml/issues",
106
                 "source": "https://github.com/fruux/sabre-xml"
107
             },
108
-            "time": "2024-07-26T12:32:40+00:00"
109
+            "time": "2024-09-06T07:37:46+00:00"
110
         },
111
         {
112
             "name": "smarty/smarty",
113
@@ -3488,22 +3488,21 @@
114
         },
115
         {
116
             "name": "symfony/polyfill-intl-idn",
117
-            "version": "v1.30.0",
118
+            "version": "v1.31.0",
119
             "source": {
120
                 "type": "git",
121
                 "url": "https://github.com/symfony/polyfill-intl-idn.git",
122
-                "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c"
123
+                "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
124
             },
125
             "dist": {
126
                 "type": "zip",
127
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c",
128
-                "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c",
129
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
130
+                "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
131
                 "shasum": ""
132
             },
133
             "require": {
134
-                "php": ">=7.1",
135
-                "symfony/polyfill-intl-normalizer": "^1.10",
136
-                "symfony/polyfill-php72": "^1.10"
137
+                "php": ">=7.2",
138
+                "symfony/polyfill-intl-normalizer": "^1.10"
139
             },
140
             "suggest": {
141
                 "ext-intl": "For best performance"
142
@@ -3552,7 +3551,7 @@
143
                 "shim"
144
             ,
145
             "support": {
146
-                "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0"
147
+                "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
148
             },
149
             "funding": 
150
                 {
151
@@ -3568,24 +3567,24 @@
152
                     "type": "tidelift"
153
                 }
154
             ,
155
-            "time": "2024-05-31T15:07:36+00:00"
156
+            "time": "2024-09-09T11:45:10+00:00"
157
         },
158
         {
159
             "name": "symfony/polyfill-intl-normalizer",
160
-            "version": "v1.30.0",
161
+            "version": "v1.31.0",
162
             "source": {
163
                 "type": "git",
164
                 "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
165
-                "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
166
+                "reference": "3833d7255cc303546435cb650316bff708a1c75c"
167
             },
168
             "dist": {
169
                 "type": "zip",
170
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
171
-                "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
172
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
173
+                "reference": "3833d7255cc303546435cb650316bff708a1c75c",
174
                 "shasum": ""
175
             },
176
             "require": {
177
-                "php": ">=7.1"
178
+                "php": ">=7.2"
179
             },
180
             "suggest": {
181
                 "ext-intl": "For best performance"
182
@@ -3633,7 +3632,7 @@
183
                 "shim"
184
             ,
185
             "support": {
186
-                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
187
+                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
188
             },
189
             "funding": 
190
                 {
191
@@ -3649,24 +3648,24 @@
192
                     "type": "tidelift"
193
                 }
194
             ,
195
-            "time": "2024-05-31T15:07:36+00:00"
196
+            "time": "2024-09-09T11:45:10+00:00"
197
         },
198
         {
199
             "name": "symfony/polyfill-mbstring",
200
-            "version": "v1.30.0",
201
roundcubemail-1.5.tar.gz/logs/errors.log Changed
16
 
1
@@ -1,4 +1,4 @@
2
-19-Aug-2024 14:12:37 UTC PHP Fatal error:  Uncaught Error: Class 'PDO' not found in /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/db/mysql.php:134
3
+25-Sep-2024 12:24:00 UTC PHP Fatal error:  Uncaught Error: Class 'PDO' not found in /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/db/mysql.php:134
4
 Stack trace:
5
 #0 /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/rcube_db.php(167): rcube_db_mysql->dsn_options(Array)
6
 #1 /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/rcube_db.php(153): rcube_db->conn_create(Array)
7
@@ -7,7 +7,7 @@
8
 #4 /tmp/roundcubemail-1.5/roundcubemail-1.5/vendor/bin/rcubeinitdb.sh(115): include('/tmp/roundcubem...')
9
 #5 {main}
10
   thrown in /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/db/mysql.php on line 134
11
-19-Aug-2024 14:12:37 UTC PHP Fatal error:  Uncaught Error: Class 'PDO' not found in /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/db/mysql.php:134
12
+25-Sep-2024 12:24:01 UTC PHP Fatal error:  Uncaught Error: Class 'PDO' not found in /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/db/mysql.php:134
13
 Stack trace:
14
 #0 /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/rcube_db.php(167): rcube_db_mysql->dsn_options(Array)
15
 #1 /tmp/roundcubemail-1.5/roundcubemail-1.5/program/lib/Roundcube/rcube_db.php(153): rcube_db->conn_create(Array)
16
roundcubemail-1.5.tar.gz/node_modules/tslib/package.json Changed
30
 
1
@@ -1,8 +1,8 @@
2
 {
3
   "_from": "tslib@^2.3.0",
4
-  "_id": "tslib@2.6.3",
5
+  "_id": "tslib@2.7.0",
6
   "_inBundle": false,
7
-  "_integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
8
+  "_integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
9
   "_location": "/tslib",
10
   "_phantomChildren": {},
11
   "_requested": {
12
@@ -18,8 +18,8 @@
13
   "_requiredBy": 
14
     "/less"
15
   ,
16
-  "_resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
17
-  "_shasum": "0438f810ad7a9edcde7a241c3d80db693c8cbfe0",
18
+  "_resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
19
+  "_shasum": "d9b40c5c40ab59e8738f297df3087bf1a2690c01",
20
   "_spec": "tslib@^2.3.0",
21
   "_where": "/tmp/roundcubemail-1.5/roundcubemail-1.5/node_modules/less",
22
   "author": {
23
@@ -70,5 +70,5 @@
24
   },
25
   "sideEffects": false,
26
   "typings": "tslib.d.ts",
27
-  "version": "2.6.3"
28
+  "version": "2.7.0"
29
 }
30
roundcubemail-1.5.tar.gz/node_modules/tslib/tslib.es6.js Changed
57
 
1
@@ -12,7 +12,7 @@
2
 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
3
 PERFORMANCE OF THIS SOFTWARE.
4
 ***************************************************************************** */
5
-/* global Reflect, Promise, SuppressedError, Symbol */
6
+/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
7
 
8
 var extendStatics = function(d, b) {
9
     extendStatics = Object.setPrototypeOf ||
10
@@ -123,8 +123,8 @@
11
 }
12
 
13
 export function __generator(thisArg, body) {
14
-    var _ = { label: 0, sent: function() { if (t0 & 1) throw t1; return t1; }, trys: , ops:  }, f, y, t, g;
15
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (gSymbol.iterator = function() { return this; }), g;
16
+    var _ = { label: 0, sent: function() { if (t0 & 1) throw t1; return t1; }, trys: , ops:  }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
17
+    return g.next = verb(0), g"throw" = verb(1), g"return" = verb(2), typeof Symbol === "function" && (gSymbol.iterator = function() { return this; }), g;
18
     function verb(n) { return function (v) { return step(n, v); }; }
19
     function step(op) {
20
         if (f) throw new TypeError("Generator is already executing.");
21
@@ -228,7 +228,7 @@
22
 export function __asyncGenerator(thisArg, _arguments, generator) {
23
     if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
24
     var g = generator.apply(thisArg, _arguments || ), i, q = ;
25
-    return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), iSymbol.asyncIterator = function () { return this; }, i;
26
+    return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), iSymbol.asyncIterator = function () { return this; }, i;
27
     function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
28
     function verb(n, f) { if (gn) { in = function (v) { return new Promise(function (a, b) { q.push(n, v, a, b) > 1 || resume(n, v); }); }; if (f) in = f(in); } }
29
     function resume(n, v) { try { step(gn(v)); } catch (e) { settle(q03, e); } }
30
@@ -327,17 +327,22 @@
31
         env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
32
         env.hasError = true;
33
     }
34
+    var r, s = 0;
35
     function next() {
36
-        while (env.stack.length) {
37
-            var rec = env.stack.pop();
38
+        while (r = env.stack.pop()) {
39
             try {
40
-                var result = rec.dispose && rec.dispose.call(rec.value);
41
-                if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
42
+                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
43
+                if (r.dispose) {
44
+                    var result = r.dispose.call(r.value);
45
+                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
46
+                }
47
+                else s |= 1;
48
             }
49
             catch (e) {
50
                 fail(e);
51
             }
52
         }
53
+        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
54
         if (env.hasError) throw env.error;
55
     }
56
     return next();
57
roundcubemail-1.5.tar.gz/node_modules/tslib/tslib.es6.mjs Changed
58
 
1
@@ -12,7 +12,7 @@
2
 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
3
 PERFORMANCE OF THIS SOFTWARE.
4
 ***************************************************************************** */
5
-/* global Reflect, Promise, SuppressedError, Symbol */
6
+/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
7
 
8
 var extendStatics = function(d, b) {
9
   extendStatics = Object.setPrototypeOf ||
10
@@ -123,8 +123,8 @@
11
 }
12
 
13
 export function __generator(thisArg, body) {
14
-  var _ = { label: 0, sent: function() { if (t0 & 1) throw t1; return t1; }, trys: , ops:  }, f, y, t, g;
15
-  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (gSymbol.iterator = function() { return this; }), g;
16
+  var _ = { label: 0, sent: function() { if (t0 & 1) throw t1; return t1; }, trys: , ops:  }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
17
+  return g.next = verb(0), g"throw" = verb(1), g"return" = verb(2), typeof Symbol === "function" && (gSymbol.iterator = function() { return this; }), g;
18
   function verb(n) { return function (v) { return step(n, v); }; }
19
   function step(op) {
20
       if (f) throw new TypeError("Generator is already executing.");
21
@@ -228,7 +228,7 @@
22
 export function __asyncGenerator(thisArg, _arguments, generator) {
23
   if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
24
   var g = generator.apply(thisArg, _arguments || ), i, q = ;
25
-  return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), iSymbol.asyncIterator = function () { return this; }, i;
26
+  return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), iSymbol.asyncIterator = function () { return this; }, i;
27
   function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
28
   function verb(n, f) { if (gn) { in = function (v) { return new Promise(function (a, b) { q.push(n, v, a, b) > 1 || resume(n, v); }); }; if (f) in = f(in); } }
29
   function resume(n, v) { try { step(gn(v)); } catch (e) { settle(q03, e); } }
30
@@ -326,17 +326,22 @@
31
     env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
32
     env.hasError = true;
33
   }
34
+  var r, s = 0;
35
   function next() {
36
-    while (env.stack.length) {
37
-      var rec = env.stack.pop();
38
+    while (r = env.stack.pop()) {
39
       try {
40
-        var result = rec.dispose && rec.dispose.call(rec.value);
41
-        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
42
+        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
43
+        if (r.dispose) {
44
+          var result = r.dispose.call(r.value);
45
+          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
46
+        }
47
+        else s |= 1;
48
       }
49
       catch (e) {
50
-          fail(e);
51
+        fail(e);
52
       }
53
     }
54
+    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
55
     if (env.hasError) throw env.error;
56
   }
57
   return next();
58
roundcubemail-1.5.tar.gz/node_modules/tslib/tslib.js Changed
57
 
1
@@ -12,7 +12,7 @@
2
 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
3
 PERFORMANCE OF THIS SOFTWARE.
4
 ***************************************************************************** */
5
-/* global global, define, Symbol, Reflect, Promise, SuppressedError */
6
+/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */
7
 var __extends;
8
 var __assign;
9
 var __rest;
10
@@ -171,8 +171,8 @@
11
     };
12
 
13
     __generator = function (thisArg, body) {
14
-        var _ = { label: 0, sent: function() { if (t0 & 1) throw t1; return t1; }, trys: , ops:  }, f, y, t, g;
15
-        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (gSymbol.iterator = function() { return this; }), g;
16
+        var _ = { label: 0, sent: function() { if (t0 & 1) throw t1; return t1; }, trys: , ops:  }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
17
+        return g.next = verb(0), g"throw" = verb(1), g"return" = verb(2), typeof Symbol === "function" && (gSymbol.iterator = function() { return this; }), g;
18
         function verb(n) { return function (v) { return step(n, v); }; }
19
         function step(op) {
20
             if (f) throw new TypeError("Generator is already executing.");
21
@@ -276,7 +276,7 @@
22
     __asyncGenerator = function (thisArg, _arguments, generator) {
23
         if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
24
         var g = generator.apply(thisArg, _arguments || ), i, q = ;
25
-        return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), iSymbol.asyncIterator = function () { return this; }, i;
26
+        return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), iSymbol.asyncIterator = function () { return this; }, i;
27
         function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
28
         function verb(n, f) { if (gn) { in = function (v) { return new Promise(function (a, b) { q.push(n, v, a, b) > 1 || resume(n, v); }); }; if (f) in = f(in); } }
29
         function resume(n, v) { try { step(gn(v)); } catch (e) { settle(q03, e); } }
30
@@ -374,17 +374,22 @@
31
             env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
32
             env.hasError = true;
33
         }
34
+        var r, s = 0;
35
         function next() {
36
-            while (env.stack.length) {
37
-                var rec = env.stack.pop();
38
+            while (r = env.stack.pop()) {
39
                 try {
40
-                    var result = rec.dispose && rec.dispose.call(rec.value);
41
-                    if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
42
+                    if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
43
+                    if (r.dispose) {
44
+                        var result = r.dispose.call(r.value);
45
+                        if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
46
+                    }
47
+                    else s |= 1;
48
                 }
49
                 catch (e) {
50
                     fail(e);
51
                 }
52
             }
53
+            if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
54
             if (env.hasError) throw env.error;
55
         }
56
         return next();
57
roundcubemail-1.5.tar.gz/package-lock.json Changed
14
 
1
@@ -133,9 +133,9 @@
2
       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
3
     },
4
     "tslib": {
5
-      "version": "2.6.3",
6
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
7
-      "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
8
+      "version": "2.7.0",
9
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
10
+      "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA=="
11
     }
12
   }
13
 }
14
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/bin Added
2
 
1
+(directory)
2
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/bin/fixprefs.sh Added
79
 
1
@@ -0,0 +1,77 @@
2
+#!/usr/bin/env php
3
+<?php
4
+
5
+/**
6
+ * User preferences update script for migration of second factor configuration.
7
+ *
8
+ * @author Aleksander Machniak <machniak@apheleia-it.ch>
9
+ *
10
+ * Copyright (C) 2024, Apheleia IT AG <contact@apheleia-it.ch>
11
+ *
12
+ * This program is free software: you can redistribute it and/or modify
13
+ * it under the terms of the GNU Affero General Public License as
14
+ * published by the Free Software Foundation, either version 3 of the
15
+ * License, or (at your option) any later version.
16
+ *
17
+ * This program is distributed in the hope that it will be useful,
18
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ * GNU Affero General Public License for more details.
21
+ *
22
+ * You should have received a copy of the GNU Affero General Public License
23
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
24
+ */
25
+
26
+define('INSTALL_PATH', __DIR__ . '/../../../');
27
+ini_set('display_errors', 1);
28
+
29
+require_once INSTALL_PATH . 'program/include/clisetup.php';
30
+
31
+// connect to database
32
+$db = $rcmail->get_dbh();
33
+$db->db_connect('w');
34
+
35
+if (!$db->is_connected() || $db->is_error()) {
36
+    die("No DB connection\n");
37
+}
38
+
39
+// Load the plugin to load its configuration
40
+$rcmail->plugins->load_plugin('kolab_2fa', true, true);
41
+$plugin = $rcmail->plugins->get_plugin('kolab_2fa');
42
+
43
+$config = 
44
+    'totp' => 'digest' => 'sha1', 'digits' => 6,
45
+    'hotp' => 'digest' => 'sha1', 'digits' => 6,
46
+;
47
+
48
+foreach ($config as $driver => $conf) {
49
+    $driver_config = $rcmail->config->get('kolab_2fa_' . $driver);
50
+    if (!empty($driver_config)) {
51
+        $config$driver = array_merge($conf, array_intersect_key($driver_config, $conf));
52
+    }
53
+}
54
+
55
+$sql_result = $db->query('SELECT * FROM ' . $db->table_name('users', true) . ' ORDER BY user_id');
56
+
57
+while ($sql_result && ($sql_arr = $db->fetch_assoc($sql_result))) {
58
+    $user = new rcube_user($sql_arr'user_id', $sql_arr);
59
+    $prefs = $user->get_prefs();
60
+
61
+    if (!empty($prefs'kolab_2fa_blob')) {
62
+        echo 'Updating prefs for user ' . $sql_arr'user_id' . '...';
63
+
64
+        foreach ($prefs'kolab_2fa_blob' as $key => $value) {
65
+            $driver = explode(':', $key);
66
+            if (!empty($config$driver)) {
67
+                $prefs'kolab_2fa_blob'$key += $config$driver;
68
+            }
69
+        }
70
+
71
+        if ($user->save_prefs($prefs, true)) {
72
+            echo " DONE\n";
73
+        } else {
74
+            echo " FAILED\n";
75
+            exit;
76
+        }
77
+    }
78
+}
79
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/kolab_2fa.php Changed
90
 
1
@@ -82,6 +82,11 @@
2
             return $args;
3
         }
4
 
5
+        // Single Sign On authentication, disable 2FA (Roundcube > 1.6)
6
+        if (!empty($args'sso')) {
7
+            return $args;
8
+        }
9
+
10
         $rcmail = rcmail::get_instance();
11
 
12
         // parse $host URL
13
@@ -242,10 +247,7 @@
14
      */
15
     protected function verify_factor_auth($method, $code, $username)
16
     {
17
-        if (strlen($code) && ($driver = $this->get_driver($method))) {
18
-            // set properties from login
19
-            $driver->username = $username;
20
-
21
+        if (strlen($code) && ($driver = $this->get_driver($method, $username))) {
22
             try {
23
                 // verify the submitted code
24
                 return $driver->verify($code, $_SESSION'kolab_2fa_time');
25
@@ -335,10 +337,12 @@
26
     /**
27
      * Load driver class for the given authentication factor
28
      *
29
-     * @param string $factor Factor identifier (<method>:<id>)
30
+     * @param string $factor   Factor identifier (<method>:<id>)
31
+     * @param string $username Username (email)
32
+     *
33
      * @return Kolab2FA\Driver\Base|false
34
      */
35
-    public function get_driver($factor)
36
+    public function get_driver($factor, $username = null)
37
     {
38
         $method = explode(':', $factor, 2);
39
 
40
@@ -350,22 +354,20 @@
41
 
42
         $config = $rcmail->config->get('kolab_2fa_' . $method, );
43
 
44
-        // use product name as "issuer""
45
+        // use product name as "issuer"
46
         if (empty($config'issuer')) {
47
             $config'issuer' = $rcmail->config->get('product_name');
48
         }
49
 
50
+        if (empty($username) && $rcmail->user->ID) {
51
+            $username = $rcmail->get_user_name();
52
+        }
53
+
54
         try {
55
-            // TODO: use external auth service if configured
56
 
57
-            $driver = \Kolab2FA\Driver\Base::factory($factor, $config);
58
+            $storage = $this->get_storage($username);
59
 
60
-            // attach storage
61
-            $driver->storage = $this->get_storage();
62
-
63
-            if ($rcmail->user->ID) {
64
-                $driver->username  = $rcmail->get_user_name();
65
-            }
66
+            $driver = \Kolab2FA\Driver\Base::factory($storage, $factor, $config);
67
 
68
             $this->drivers$factor = $driver;
69
             return $driver;
70
@@ -734,6 +736,10 @@
71
                 try {
72
                     $uri = $driver->get_provisioning_uri();
73
 
74
+                    // Some OTP apps have an issue with algorithm character case
75
+                    // So we make sure we use upper-case per the spec.
76
+                    $uri = str_replace('algorithm=sha', 'algorithm=SHA', $uri);
77
+
78
                     $qr = new Endroid\QrCode\QrCode();
79
                     $qr->setText($uri)
80
                        ->setSize(240)
81
@@ -767,7 +773,7 @@
82
             if (is_array($data)) {
83
                 foreach ($data as $key => $value) {
84
                     if ($value !== '******') {
85
-                        $driver->$key = $value;
86
+                        $driver->set($key, $value, false);
87
                     }
88
                 }
89
             }
90
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/lib/Kolab2FA/Driver/Base.php Changed
197
 
1
@@ -25,9 +25,6 @@
2
 
3
 /**
4
  * Kolab 2-Factor-Authentication Driver base class
5
- *
6
- * @property string $username
7
- * @property string $secret
8
  */
9
 abstract class Base
10
 {
11
@@ -36,6 +33,7 @@
12
     public $storage;
13
 
14
     protected $config          = ;
15
+    protected $config_keys     = ;
16
     protected $props           = ;
17
     protected $user_props      = ;
18
     protected $pending_changes = false;
19
@@ -67,7 +65,7 @@
20
     /**
21
      * Static factory method
22
      */
23
-    public static function factory($id, $config)
24
+    public static function factory($storage, $id, $config)
25
     {
26
         $method = explode(':', $id);
27
 
28
@@ -79,7 +77,7 @@
29
 
30
         $cls = $classmapstrtolower($method);
31
         if ($cls && class_exists($cls)) {
32
-            return new $cls($config, $id);
33
+            return new $cls($storage, $config, $id);
34
         }
35
 
36
         throw new Exception("Unknown 2FA driver '$method'");
37
@@ -88,30 +86,41 @@
38
     /**
39
      * Default constructor
40
      */
41
-    public function __construct($config = null, $id = null)
42
+    public function __construct($storage, $config = null, $id = null)
43
     {
44
-        $this->init($config);
45
+        if (!is_array($config)) {
46
+            $config = ;
47
+        }
48
+
49
+        $this->storage = $storage;
50
+        $this->props'username' = (string) $storage->username;
51
 
52
         if (!empty($id) && $id != $this->method) {
53
             $this->id = $id;
54
+            if ($this->storage) {
55
+                $this->user_props = (array) $this->storage->read($this->id);
56
+                foreach ($this->config_keys as $key) {
57
+                    if (isset($this->user_props$key)) {
58
+                        $config$key = $this->user_props$key;
59
+                    }
60
+                }
61
+            }
62
         } else { // generate random ID
63
             $this->id = $this->method . ':' . bin2hex(openssl_random_pseudo_bytes(12));
64
             $this->temporary = true;
65
         }
66
+
67
+        $this->init($config);
68
     }
69
 
70
     /**
71
      * Initialize the driver with the given config options
72
      */
73
-    public function init($config)
74
+    protected function init($config)
75
     {
76
         if (is_array($config)) {
77
             $this->config = array_merge($this->config, $config);
78
         }
79
-
80
-        if (!empty($config'storage')) {
81
-            $this->storage = \Kolab2FA\Storage\Base::factory($config'storage', $config'storage_config');
82
-        }
83
     }
84
 
85
     /**
86
@@ -125,6 +134,11 @@
87
     abstract public function verify($code, $timestamp = null);
88
 
89
     /**
90
+     * Implement this method if the driver can be provisioned via QR code
91
+     */
92
+    /* abstract function get_provisioning_uri(); */
93
+
94
+    /**
95
      * Getter for user-visible properties
96
      */
97
     public function props($force = false)
98
@@ -167,11 +181,6 @@
99
     }
100
 
101
     /**
102
-     * Implement this method if the driver can be provisioned via QR code
103
-     */
104
-    /* abstract function get_provisioning_uri(); */
105
-
106
-    /**
107
      * Generate a random secret string
108
      */
109
     public function generate_secret($length = 16)
110
@@ -227,7 +236,11 @@
111
                 }
112
             }
113
         } else {
114
-            $value = $this->props$key ?? null;
115
+            $value = $this->get_user_prop($key);
116
+
117
+            if ($value === null) {
118
+                $value = $this->props$key ?? null;
119
+            }
120
         }
121
 
122
         return $value;
123
@@ -262,7 +275,17 @@
124
     public function commit()
125
     {
126
         if (!empty($this->user_props) && $this->storage && $this->pending_changes) {
127
-            if ($this->storage->write($this->id, $this->user_props)) {
128
+            $props = $this->user_props;
129
+
130
+            // Remamber the driver config too. It will be used to verify the code.
131
+            // The configured one may be different than the one used on code creation.
132
+            foreach ($this->config_keys as $key) {
133
+                if (isset($this->config$key)) {
134
+                    $props$key = $this->config$key;
135
+                }
136
+            }
137
+
138
+            if ($this->storage->write($this->id, $props)) {
139
                 $this->pending_changes = false;
140
                 $this->temporary = false;
141
             }
142
@@ -272,20 +295,6 @@
143
     }
144
 
145
     /**
146
-     * Dedicated setter for the username property
147
-     */
148
-    public function set_username($username)
149
-    {
150
-        $this->props'username' = $username;
151
-
152
-        if ($this->storage) {
153
-            $this->storage->set_username($username);
154
-        }
155
-
156
-        return true;
157
-    }
158
-
159
-    /**
160
      * Clear data stored for this driver
161
      */
162
     public function clear()
163
@@ -326,33 +335,4 @@
164
         $this->user_props$key = $value;
165
         return true;
166
     }
167
-
168
-    /**
169
-     * Magic getter for read-only access to driver properties
170
-     */
171
-    public function __get($key)
172
-    {
173
-        // this is a per-user property: get from persistent storage
174
-        if (isset($this->user_settings$key)) {
175
-            return $this->get_user_prop($key);
176
-        }
177
-
178
-        return $this->props$key;
179
-    }
180
-
181
-    /**
182
-     * Magic setter for restricted access to driver properties
183
-     */
184
-    public function __set($key, $value)
185
-    {
186
-        $this->set($key, $value, false);
187
-    }
188
-
189
-    /**
190
-     * Magic check if driver property is defined
191
-     */
192
-    public function __isset($key)
193
-    {
194
-        return isset($this->props$key);
195
-    }
196
 }
197
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/lib/Kolab2FA/Driver/HOTP.php Changed
63
 
1
@@ -33,6 +33,7 @@
2
         'digest'   => 'sha1',
3
     ;
4
 
5
+    protected $config_keys = 'digits', 'digest';
6
     protected $backend;
7
 
8
     /**
9
@@ -88,31 +89,24 @@
10
     {
11
         // get my secret from the user storage
12
         $secret  = $this->get('secret');
13
-        $counter = $this->get('counter');
14
 
15
         if (!strlen($secret)) {
16
-            // LOG: "no secret set for user $this->username"
17
-            // rcube::console("VERIFY HOTP: no secret set for user $this->username");
18
             return false;
19
         }
20
 
21
         try {
22
-            $this->backend->setLabel($this->username);
23
+            $this->backend->setLabel($this->get('username'));
24
             $this->backend->setSecret($secret);
25
-            $this->backend->setCounter(intval($this->get('counter')));
26
 
27
-            $pass = $this->backend->verify($code, $counter, (int) $this->config'window');
28
+            $pass = $this->backend->verify($code, $this->get('counter'), (int) $this->config'window');
29
 
30
             // store incremented counter value
31
             $this->set('counter', $this->backend->getCounter());
32
             $this->commit();
33
         } catch (\Exception $e) {
34
-            // LOG: exception
35
-            // rcube::console("VERIFY HOTP: $this->id, " . strval($e));
36
             $pass = false;
37
         }
38
 
39
-        // rcube::console('VERIFY HOTP', $this->username, $secret, $counter, $code, $pass);
40
         return $pass;
41
     }
42
 
43
@@ -121,7 +115,7 @@
44
      */
45
     public function get_provisioning_uri()
46
     {
47
-        if (!$this->secret) {
48
+        if (!$this->get('secret')) {
49
             // generate new secret and store it
50
             $this->set('secret', $this->get('secret', true));
51
             $this->set('counter', $this->get('counter', true));
52
@@ -131,8 +125,8 @@
53
 
54
         // TODO: deny call if already active?
55
 
56
-        $this->backend->setLabel($this->username);
57
-        $this->backend->setSecret($this->secret);
58
+        $this->backend->setLabel($this->get('username'));
59
+        $this->backend->setSecret($this->get('secret'));
60
         $this->backend->setCounter(intval($this->get('counter')));
61
 
62
         return $this->backend->getProvisioningUri();
63
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/lib/Kolab2FA/Driver/TOTP.php Changed
54
 
1
@@ -33,6 +33,7 @@
2
         'digest'   => 'sha1',
3
     ;
4
 
5
+    protected $config_keys = 'digits', 'digest';
6
     protected $backend;
7
 
8
     /**
9
@@ -88,12 +89,10 @@
10
         $secret = $this->get('secret');
11
 
12
         if (!strlen($secret)) {
13
-            // LOG: "no secret set for user $this->username"
14
-            // rcube::console("VERIFY TOTP: no secret set for user $this->username");
15
             return false;
16
         }
17
 
18
-        $this->backend->setLabel($this->username);
19
+        $this->backend->setLabel($this->get('username'));
20
         $this->backend->setSecret($secret);
21
 
22
         // Pass a window to indicate the maximum timeslip between client (mobile
23
@@ -109,7 +108,6 @@
24
             }
25
         }
26
 
27
-        // rcube::console('VERIFY TOTP', $this->username, $secret, $code, $timestamp, $pass);
28
         return $pass;
29
     }
30
 
31
@@ -118,19 +116,17 @@
32
      */
33
     public function get_provisioning_uri()
34
     {
35
-        // rcube::console('PROV', $this->secret);
36
-        if (!$this->secret) {
37
+        if (!$this->get('secret')) {
38
             // generate new secret and store it
39
             $this->set('secret', $this->get('secret', true));
40
             $this->set('created', $this->get('created', true));
41
-            // rcube::console('PROV2', $this->secret);
42
             $this->commit();
43
         }
44
 
45
         // TODO: deny call if already active?
46
 
47
-        $this->backend->setLabel($this->username);
48
-        $this->backend->setSecret($this->secret);
49
+        $this->backend->setLabel($this->get('username'));
50
+        $this->backend->setSecret($this->get('secret'));
51
 
52
         return $this->backend->getProvisioningUri();
53
     }
54
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/lib/Kolab2FA/Driver/Yubikey.php Changed
17
 
1
@@ -67,7 +67,6 @@
2
         $pass  = false;
3
 
4
         if (!strlen($keyid)) {
5
-            // LOG: "no key registered for user $this->username"
6
             return false;
7
         }
8
 
9
@@ -81,7 +80,6 @@
10
             }
11
         }
12
 
13
-        // rcube::console('VERIFY Yubikey', $this->username, $keyid, $code, $pass);
14
         return $pass;
15
     }
16
 
17
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/lib/Kolab2FA/Storage/Base.php Changed
9
 
1
@@ -28,6 +28,7 @@
2
 abstract class Base
3
 {
4
     public $username = null;
5
+
6
     protected $config = ;
7
     protected $logger;
8
 
9
roundcubemail-1.5.tar.gz/plugins/kolab_2fa/lib/Kolab2FA/Storage/RcubeUser.php Changed
20
 
1
@@ -85,8 +85,6 @@
2
             $factors = $this->get_factors();
3
             $factors$key = $value;
4
 
5
-            $pkey = $this->key2property('blob');
6
-            $save_data = $pkey => $factors;
7
             $update_index = false;
8
 
9
             // remove entry
10
@@ -102,6 +100,9 @@
11
                 $update_index = true;
12
             }
13
 
14
+            $pkey = $this->key2property('blob');
15
+            $save_data = $pkey => $factors;
16
+
17
             // update the index of active factors
18
             if ($update_index) {
19
                 $save_data$this->key2property('factors') = array_keys(
20
roundcubemail-1.5.tar.gz/plugins/libkolab/lib/kolab_dav_client.php Changed
118
 
1
@@ -429,15 +429,18 @@
2
      */
3
     public function folderCreate($location, $component, $properties = )
4
     {
5
-        $ns    = 'xmlns:d="DAV:"';
6
-        $props = '';
7
+        $props, $ns = $this->folderPropertiesToXml($properties, 'xmlns:d="DAV:"');
8
 
9
         if ($component == 'VCARD') {
10
             $ns .= ' xmlns:c="urn:ietf:params:xml:ns:carddav"';
11
-            $props = '<d:resourcetype><d:collection/><c:addressbook/></d:resourcetype>';
12
+            $props .= '<d:resourcetype><d:collection/><c:addressbook/></d:resourcetype>';
13
         } else {
14
             $ns .= ' xmlns:c="urn:ietf:params:xml:ns:caldav"';
15
-            $props = '<d:resourcetype><d:collection/><c:calendar/></d:resourcetype>';
16
+            $props .= '<d:resourcetype><d:collection/><c:calendar/></d:resourcetype>'
17
+                // Note: Some clients, but also Cyrus by default allows everything in calendar folders,
18
+                // i.e. VEVENT, VTODO, VJOURNAL, VFREEBUSY, VAVAILABILITY, but we prefer a single-type folders,
19
+                // to keep tasks and event separated
20
+                . '<c:supported-calendar-component-set><c:comp name="' . $component . '"/></c:supported-calendar-component-set>';
21
         }
22
 
23
         $body = '<?xml version="1.0" encoding="utf-8"?>'
24
@@ -450,12 +453,7 @@
25
         // Create the collection
26
         $response = $this->request($location, 'MKCOL', $body);
27
 
28
-        if (empty($response)) {
29
-            return false;
30
-        }
31
-
32
-        // Update collection properties
33
-        return $this->folderUpdate($location, $component, $properties);
34
+        return $response !== false;
35
     }
36
 
37
     /**
38
@@ -483,29 +481,35 @@
39
      */
40
     public function folderUpdate($location, $component, $properties = )
41
     {
42
-        $ns    = 'xmlns:d="DAV:"';
43
-        $props = '';
44
+        // Note: Changing resourcetype property is forbidden (at least by Cyrus)
45
 
46
-        if ($component == 'VCARD') {
47
-            $ns .= ' xmlns:c="urn:ietf:params:xml:ns:carddav"';
48
-            // Resourcetype property is protected
49
-            // $props = '<d:resourcetype><d:collection/><c:addressbook/></d:resourcetype>';
50
-        } else {
51
-            $ns .= ' xmlns:c="urn:ietf:params:xml:ns:caldav"';
52
-            // Resourcetype property is protected
53
-            // $props = '<d:resourcetype><d:collection/><c:calendar/></d:resourcetype>';
54
-            /*
55
-                // Note: These are set by Cyrus automatically for calendars
56
-                . '<c:supported-calendar-component-set>'
57
-                    . '<c:comp name="VEVENT"/>'
58
-                    . '<c:comp name="VTODO"/>'
59
-                    . '<c:comp name="VJOURNAL"/>'
60
-                    . '<c:comp name="VFREEBUSY"/>'
61
-                    . '<c:comp name="VAVAILABILITY"/>'
62
-                . '</c:supported-calendar-component-set>';
63
-            */
64
+        $props, $ns = $this->folderPropertiesToXml($properties, 'xmlns:d="DAV:"');
65
+
66
+        if (empty($props)) {
67
+            return true;
68
         }
69
 
70
+        $body = '<?xml version="1.0" encoding="utf-8"?>'
71
+            . '<d:propertyupdate ' . $ns . '>'
72
+                . '<d:set>'
73
+                    . '<d:prop>' . $props . '</d:prop>'
74
+                . '</d:set>'
75
+            . '</d:propertyupdate>';
76
+
77
+        $response = $this->request($location, 'PROPPATCH', $body);
78
+
79
+        // TODO: Should we make sure "200 OK" status is set for all requested properties?
80
+
81
+        return $response !== false;
82
+    }
83
+
84
+    /**
85
+     * Parse folder properties input into XML string to use in a request
86
+     */
87
+    protected function folderPropertiesToXml($properties, $ns = '')
88
+    {
89
+        $props = '';
90
+
91
         foreach ($properties as $name => $value) {
92
             if ($name == 'name') {
93
                 $props .= '<d:displayname>' . htmlspecialchars($value, ENT_XML1, 'UTF-8') . '</d:displayname>';
94
@@ -525,22 +529,7 @@
95
             }
96
         }
97
 
98
-        if (empty($props)) {
99
-            return true;
100
-        }
101
-
102
-        $body = '<?xml version="1.0" encoding="utf-8"?>'
103
-            . '<d:propertyupdate ' . $ns . '>'
104
-                . '<d:set>'
105
-                    . '<d:prop>' . $props . '</d:prop>'
106
-                . '</d:set>'
107
-            . '</d:propertyupdate>';
108
-
109
-        $response = $this->request($location, 'PROPPATCH', $body);
110
-
111
-        // TODO: Should we make sure "200 OK" status is set for all requested properties?
112
-
113
-        return $response !== false;
114
+        return $props, $ns;
115
     }
116
 
117
     /**
118
roundcubemail-1.5.tar.gz/plugins/libkolab/lib/kolab_storage_cache.php Changed
19
 
1
@@ -76,7 +76,7 @@
2
     /**
3
      * Default constructor
4
      */
5
-    public function __construct(kolab_storage_folder $storage_folder = null)
6
+    public function __construct(?kolab_storage_folder $storage_folder = null)
7
     {
8
         $rcmail = rcube::get_instance();
9
         $this->db = $rcmail->get_dbh();
10
@@ -1456,7 +1456,7 @@
11
             $dt->setTimeZone($this->server_timezone);
12
             return $dt->format(self::DB_DATE_FORMAT);
13
         } elseif ($datetime) {
14
-            return date(self::DB_DATE_FORMAT, $datetime);
15
+            return date(self::DB_DATE_FORMAT, (int) $datetime);
16
         }
17
     }
18
 }
19
roundcubemail-1.5.tar.gz/plugins/managesieve/Changelog Changed
7
 
1
@@ -1,3 +1,5 @@
2
+- Fix current script state after initial scripts creation in managesieve_kolab_master mode
3
+
4
 * version 9.4 2021-06-06
5
 -----------------------------------------------------------
6
 - Add ability to remove 'redirect' option from UI (#7922)
7
roundcubemail-1.5.tar.gz/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php Changed
19
 
1
@@ -248,14 +248,14 @@
2
         if ($script_name === null || $script_name === '') {
3
             // get (first) active script
4
             if (!empty($this->active)) {
5
-               $script_name = $this->active0;
6
+                $script_name = $this->active0;
7
             }
8
-            else if ($list) {
9
+            else if (!empty($list)) {
10
                 $script_name = $list0;
11
             }
12
             else {
13
                 // if script does not exist create one with default content
14
-                $this->create_default_script();
15
+                $script_name = $this->create_default_script();
16
             }
17
         }
18
 
19
roundcubemail-1.5.tar.gz/vendor/composer/autoload_files.php Changed
9
 
1
@@ -18,7 +18,6 @@
2
     '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
3
     '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
4
     'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
5
-    '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
6
     '51fcf4e06c07cc00c920b44bcd900e7a' => $vendorDir . '/thecodingmachine/safe/deprecated/apc.php',
7
     '47f619d9197b36cf5ab70738d7743fe2' => $vendorDir . '/thecodingmachine/safe/deprecated/libevent.php',
8
     'ea6bb8a12ef9b68f6ada99058e530760' => $vendorDir . '/thecodingmachine/safe/deprecated/mssql.php',
9
roundcubemail-1.5.tar.gz/vendor/composer/autoload_psr4.php Changed
9
 
1
@@ -9,7 +9,6 @@
2
     'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'),
3
     'cogpowered\\FineDiff\\' => array($vendorDir . '/lolli42/finediff/src'),
4
     'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
5
-    'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
6
     'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
7
     'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
8
     'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),
9
roundcubemail-1.5.tar.gz/vendor/composer/autoload_static.php Changed
28
 
1
@@ -19,7 +19,6 @@
2
         '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
3
         '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
4
         'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
5
-        '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
6
         '51fcf4e06c07cc00c920b44bcd900e7a' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/apc.php',
7
         '47f619d9197b36cf5ab70738d7743fe2' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/libevent.php',
8
         'ea6bb8a12ef9b68f6ada99058e530760' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/mssql.php',
9
@@ -133,7 +132,6 @@
10
         ),
11
         'S' => 
12
         array (
13
-            'Symfony\\Polyfill\\Php72\\' => 23,
14
             'Symfony\\Polyfill\\Mbstring\\' => 26,
15
             'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
16
             'Symfony\\Polyfill\\Intl\\Idn\\' => 26,
17
@@ -208,10 +206,6 @@
18
         array (
19
             0 => __DIR__ . '/..' . '/webmozart/assert/src',
20
         ),
21
-        'Symfony\\Polyfill\\Php72\\' => 
22
-        array (
23
-            0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
24
-        ),
25
         'Symfony\\Polyfill\\Mbstring\\' => 
26
         array (
27
             0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
28
roundcubemail-1.5.tar.gz/vendor/composer/installed.json Changed
201
 
1
@@ -3187,17 +3187,17 @@
2
         },
3
         {
4
             "name": "phpstan/phpstan",
5
-            "version": "1.11.10",
6
-            "version_normalized": "1.11.10.0",
7
+            "version": "1.12.4",
8
+            "version_normalized": "1.12.4.0",
9
             "source": {
10
                 "type": "git",
11
                 "url": "https://github.com/phpstan/phpstan.git",
12
-                "reference": "640410b32995914bde3eed26fa89552f9c2c082f"
13
+                "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd"
14
             },
15
             "dist": {
16
                 "type": "zip",
17
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/640410b32995914bde3eed26fa89552f9c2c082f",
18
-                "reference": "640410b32995914bde3eed26fa89552f9c2c082f",
19
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ffa517cb918591b93acc9b95c0bebdcd0e4538bd",
20
+                "reference": "ffa517cb918591b93acc9b95c0bebdcd0e4538bd",
21
                 "shasum": ""
22
             },
23
             "require": {
24
@@ -3206,7 +3206,7 @@
25
             "conflict": {
26
                 "phpstan/phpstan-shim": "*"
27
             },
28
-            "time": "2024-08-08T09:02:50+00:00",
29
+            "time": "2024-09-19T07:58:01+00:00",
30
             "bin": 
31
                 "phpstan",
32
                 "phpstan.phar"
33
@@ -4101,28 +4101,28 @@
34
         },
35
         {
36
             "name": "sabre/event",
37
-            "version": "5.1.6",
38
-            "version_normalized": "5.1.6.0",
39
+            "version": "5.1.7",
40
+            "version_normalized": "5.1.7.0",
41
             "source": {
42
                 "type": "git",
43
                 "url": "https://github.com/sabre-io/event.git",
44
-                "reference": "e0e1ccbff1965083de9a6530182b8b70819e1347"
45
+                "reference": "86d57e305c272898ba3c28e9bd3d65d5464587c2"
46
             },
47
             "dist": {
48
                 "type": "zip",
49
-                "url": "https://api.github.com/repos/sabre-io/event/zipball/e0e1ccbff1965083de9a6530182b8b70819e1347",
50
-                "reference": "e0e1ccbff1965083de9a6530182b8b70819e1347",
51
+                "url": "https://api.github.com/repos/sabre-io/event/zipball/86d57e305c272898ba3c28e9bd3d65d5464587c2",
52
+                "reference": "86d57e305c272898ba3c28e9bd3d65d5464587c2",
53
                 "shasum": ""
54
             },
55
             "require": {
56
                 "php": "^7.1 || ^8.0"
57
             },
58
             "require-dev": {
59
-                "friendsofphp/php-cs-fixer": "~2.17.1",
60
+                "friendsofphp/php-cs-fixer": "~2.17.1||^3.63",
61
                 "phpstan/phpstan": "^0.12",
62
                 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
63
             },
64
-            "time": "2024-07-26T05:09:47+00:00",
65
+            "time": "2024-08-27T11:23:05+00:00",
66
             "type": "library",
67
             "installation-source": "dist",
68
             "autoload": {
69
@@ -4170,17 +4170,17 @@
70
         },
71
         {
72
             "name": "sabre/http",
73
-            "version": "5.1.11",
74
-            "version_normalized": "5.1.11.0",
75
+            "version": "5.1.12",
76
+            "version_normalized": "5.1.12.0",
77
             "source": {
78
                 "type": "git",
79
                 "url": "https://github.com/sabre-io/http.git",
80
-                "reference": "abb019d9415d8c6c39c377e212ef34ad727b711f"
81
+                "reference": "dedff73f3995578bc942fa4c8484190cac14f139"
82
             },
83
             "dist": {
84
                 "type": "zip",
85
-                "url": "https://api.github.com/repos/sabre-io/http/zipball/abb019d9415d8c6c39c377e212ef34ad727b711f",
86
-                "reference": "abb019d9415d8c6c39c377e212ef34ad727b711f",
87
+                "url": "https://api.github.com/repos/sabre-io/http/zipball/dedff73f3995578bc942fa4c8484190cac14f139",
88
+                "reference": "dedff73f3995578bc942fa4c8484190cac14f139",
89
                 "shasum": ""
90
             },
91
             "require": {
92
@@ -4192,14 +4192,14 @@
93
                 "sabre/uri": "^2.0"
94
             },
95
             "require-dev": {
96
-                "friendsofphp/php-cs-fixer": "~2.17.1",
97
+                "friendsofphp/php-cs-fixer": "~2.17.1||^3.63",
98
                 "phpstan/phpstan": "^0.12",
99
                 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
100
             },
101
             "suggest": {
102
                 "ext-curl": " to make http requests with the Client class"
103
             },
104
-            "time": "2024-07-26T06:15:25+00:00",
105
+            "time": "2024-08-27T16:07:41+00:00",
106
             "type": "library",
107
             "installation-source": "dist",
108
             "autoload": {
109
@@ -4403,17 +4403,17 @@
110
         },
111
         {
112
             "name": "sabre/xml",
113
-            "version": "2.2.9",
114
-            "version_normalized": "2.2.9.0",
115
+            "version": "2.2.11",
116
+            "version_normalized": "2.2.11.0",
117
             "source": {
118
                 "type": "git",
119
                 "url": "https://github.com/sabre-io/xml.git",
120
-                "reference": "88288712d45f694be3679a0db7dfb3770f08d4f0"
121
+                "reference": "01a7927842abf3e10df3d9c2d9b0cc9d813a3fcc"
122
             },
123
             "dist": {
124
                 "type": "zip",
125
-                "url": "https://api.github.com/repos/sabre-io/xml/zipball/88288712d45f694be3679a0db7dfb3770f08d4f0",
126
-                "reference": "88288712d45f694be3679a0db7dfb3770f08d4f0",
127
+                "url": "https://api.github.com/repos/sabre-io/xml/zipball/01a7927842abf3e10df3d9c2d9b0cc9d813a3fcc",
128
+                "reference": "01a7927842abf3e10df3d9c2d9b0cc9d813a3fcc",
129
                 "shasum": ""
130
             },
131
             "require": {
132
@@ -4425,11 +4425,11 @@
133
                 "sabre/uri": ">=1.0,<3.0.0"
134
             },
135
             "require-dev": {
136
-                "friendsofphp/php-cs-fixer": "~2.17.1",
137
+                "friendsofphp/php-cs-fixer": "~2.17.1||3.63.2",
138
                 "phpstan/phpstan": "^0.12",
139
                 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
140
             },
141
-            "time": "2024-07-26T12:32:40+00:00",
142
+            "time": "2024-09-06T07:37:46+00:00",
143
             "type": "library",
144
             "installation-source": "dist",
145
             "autoload": {
146
@@ -5208,17 +5208,17 @@
147
         },
148
         {
149
             "name": "squizlabs/php_codesniffer",
150
-            "version": "3.10.2",
151
-            "version_normalized": "3.10.2.0",
152
+            "version": "3.10.3",
153
+            "version_normalized": "3.10.3.0",
154
             "source": {
155
                 "type": "git",
156
                 "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
157
-                "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017"
158
+                "reference": "62d32998e820bddc40f99f8251958aed187a5c9c"
159
             },
160
             "dist": {
161
                 "type": "zip",
162
-                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017",
163
-                "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017",
164
+                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c",
165
+                "reference": "62d32998e820bddc40f99f8251958aed187a5c9c",
166
                 "shasum": ""
167
             },
168
             "require": {
169
@@ -5230,7 +5230,7 @@
170
             "require-dev": {
171
                 "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
172
             },
173
-            "time": "2024-07-21T23:26:44+00:00",
174
+            "time": "2024-09-18T10:38:58+00:00",
175
             "bin": 
176
                 "bin/phpcbf",
177
                 "bin/phpcs"
178
@@ -5291,21 +5291,21 @@
179
         },
180
         {
181
             "name": "symfony/polyfill-ctype",
182
-            "version": "v1.30.0",
183
-            "version_normalized": "1.30.0.0",
184
+            "version": "v1.31.0",
185
+            "version_normalized": "1.31.0.0",
186
             "source": {
187
                 "type": "git",
188
                 "url": "https://github.com/symfony/polyfill-ctype.git",
189
-                "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
190
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
191
             },
192
             "dist": {
193
                 "type": "zip",
194
-                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
195
-                "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
196
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
197
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
198
                 "shasum": ""
199
             },
200
             "require": {
201
roundcubemail-1.5.tar.gz/vendor/composer/installed.php Changed
145
 
1
@@ -3,7 +3,7 @@
2
         'name' => 'roundcube/roundcubemail',
3
         'pretty_version' => 'dev-dev/kolab-1.5',
4
         'version' => 'dev-dev/kolab-1.5',
5
-        'reference' => 'a360052d9916bea169c149874ff98b21cf8f21d8',
6
+        'reference' => '914c3736231fa997c525cd51a4f1c0ad950b1d43',
7
         'type' => 'library',
8
         'install_path' => __DIR__ . '/../../',
9
         'aliases' => array(),
10
@@ -534,9 +534,9 @@
11
             'dev_requirement' => true,
12
         ),
13
         'phpstan/phpstan' => array(
14
-            'pretty_version' => '1.11.10',
15
-            'version' => '1.11.10.0',
16
-            'reference' => '640410b32995914bde3eed26fa89552f9c2c082f',
17
+            'pretty_version' => '1.12.4',
18
+            'version' => '1.12.4.0',
19
+            'reference' => 'ffa517cb918591b93acc9b95c0bebdcd0e4538bd',
20
             'type' => 'library',
21
             'install_path' => __DIR__ . '/../phpstan/phpstan',
22
             'aliases' => array(),
23
@@ -665,7 +665,7 @@
24
         'roundcube/roundcubemail' => array(
25
             'pretty_version' => 'dev-dev/kolab-1.5',
26
             'version' => 'dev-dev/kolab-1.5',
27
-            'reference' => 'a360052d9916bea169c149874ff98b21cf8f21d8',
28
+            'reference' => '914c3736231fa997c525cd51a4f1c0ad950b1d43',
29
             'type' => 'library',
30
             'install_path' => __DIR__ . '/../../',
31
             'aliases' => array(),
32
@@ -696,18 +696,18 @@
33
             'dev_requirement' => false,
34
         ),
35
         'sabre/event' => array(
36
-            'pretty_version' => '5.1.6',
37
-            'version' => '5.1.6.0',
38
-            'reference' => 'e0e1ccbff1965083de9a6530182b8b70819e1347',
39
+            'pretty_version' => '5.1.7',
40
+            'version' => '5.1.7.0',
41
+            'reference' => '86d57e305c272898ba3c28e9bd3d65d5464587c2',
42
             'type' => 'library',
43
             'install_path' => __DIR__ . '/../sabre/event',
44
             'aliases' => array(),
45
             'dev_requirement' => false,
46
         ),
47
         'sabre/http' => array(
48
-            'pretty_version' => '5.1.11',
49
-            'version' => '5.1.11.0',
50
-            'reference' => 'abb019d9415d8c6c39c377e212ef34ad727b711f',
51
+            'pretty_version' => '5.1.12',
52
+            'version' => '5.1.12.0',
53
+            'reference' => 'dedff73f3995578bc942fa4c8484190cac14f139',
54
             'type' => 'library',
55
             'install_path' => __DIR__ . '/../sabre/http',
56
             'aliases' => array(),
57
@@ -732,9 +732,9 @@
58
             'dev_requirement' => false,
59
         ),
60
         'sabre/xml' => array(
61
-            'pretty_version' => '2.2.9',
62
-            'version' => '2.2.9.0',
63
-            'reference' => '88288712d45f694be3679a0db7dfb3770f08d4f0',
64
+            'pretty_version' => '2.2.11',
65
+            'version' => '2.2.11.0',
66
+            'reference' => '01a7927842abf3e10df3d9c2d9b0cc9d813a3fcc',
67
             'type' => 'library',
68
             'install_path' => __DIR__ . '/../sabre/xml',
69
             'aliases' => array(),
70
@@ -849,59 +849,50 @@
71
             'dev_requirement' => false,
72
         ),
73
         'squizlabs/php_codesniffer' => array(
74
-            'pretty_version' => '3.10.2',
75
-            'version' => '3.10.2.0',
76
-            'reference' => '86e5f5dd9a840c46810ebe5ff1885581c42a3017',
77
+            'pretty_version' => '3.10.3',
78
+            'version' => '3.10.3.0',
79
+            'reference' => '62d32998e820bddc40f99f8251958aed187a5c9c',
80
             'type' => 'library',
81
             'install_path' => __DIR__ . '/../squizlabs/php_codesniffer',
82
             'aliases' => array(),
83
             'dev_requirement' => true,
84
         ),
85
         'symfony/polyfill-ctype' => array(
86
-            'pretty_version' => 'v1.30.0',
87
-            'version' => '1.30.0.0',
88
-            'reference' => '0424dff1c58f028c451efff2045f5d92410bd540',
89
+            'pretty_version' => 'v1.31.0',
90
+            'version' => '1.31.0.0',
91
+            'reference' => 'a3cc8b044a6ea513310cbd48ef7333b384945638',
92
             'type' => 'library',
93
             'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
94
             'aliases' => array(),
95
             'dev_requirement' => true,
96
         ),
97
         'symfony/polyfill-intl-idn' => array(
98
-            'pretty_version' => 'v1.30.0',
99
-            'version' => '1.30.0.0',
100
-            'reference' => 'a6e83bdeb3c84391d1dfe16f42e40727ce524a5c',
101
+            'pretty_version' => 'v1.31.0',
102
+            'version' => '1.31.0.0',
103
+            'reference' => 'c36586dcf89a12315939e00ec9b4474adcb1d773',
104
             'type' => 'library',
105
             'install_path' => __DIR__ . '/../symfony/polyfill-intl-idn',
106
             'aliases' => array(),
107
             'dev_requirement' => false,
108
         ),
109
         'symfony/polyfill-intl-normalizer' => array(
110
-            'pretty_version' => 'v1.30.0',
111
-            'version' => '1.30.0.0',
112
-            'reference' => 'a95281b0be0d9ab48050ebd988b967875cdb9fdb',
113
+            'pretty_version' => 'v1.31.0',
114
+            'version' => '1.31.0.0',
115
+            'reference' => '3833d7255cc303546435cb650316bff708a1c75c',
116
             'type' => 'library',
117
             'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
118
             'aliases' => array(),
119
             'dev_requirement' => false,
120
         ),
121
         'symfony/polyfill-mbstring' => array(
122
-            'pretty_version' => 'v1.30.0',
123
-            'version' => '1.30.0.0',
124
-            'reference' => 'fd22ab50000ef01661e2a31d850ebaa297f8e03c',
125
+            'pretty_version' => 'v1.31.0',
126
+            'version' => '1.31.0.0',
127
+            'reference' => '85181ba99b2345b0ef10ce42ecac37612d9fd341',
128
             'type' => 'library',
129
             'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
130
             'aliases' => array(),
131
             'dev_requirement' => false,
132
         ),
133
-        'symfony/polyfill-php72' => array(
134
-            'pretty_version' => 'v1.30.0',
135
-            'version' => '1.30.0.0',
136
-            'reference' => '10112722600777e02d2745716b70c5db4ca70442',
137
-            'type' => 'library',
138
-            'install_path' => __DIR__ . '/../symfony/polyfill-php72',
139
-            'aliases' => array(),
140
-            'dev_requirement' => false,
141
-        ),
142
         'symfony/yaml' => array(
143
             'pretty_version' => 'v4.4.45',
144
             'version' => '4.4.45.0',
145
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/index Changed
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/logs/HEAD Changed
8
 
1
@@ -1,3 +1,3 @@
2
-0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@92ff47c51c68.(none)> 1724076757 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
3
-39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@92ff47c51c68.(none)> 1724076757 +0000   checkout: moving from master to master
4
-39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@92ff47c51c68.(none)> 1724076757 +0000   reset: moving to 39a754269fe6e5d94b0fe87215e89232876bda01
5
+0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@f345fbb8ecec.(none)> 1727267040 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
6
+39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@f345fbb8ecec.(none)> 1727267040 +0000   checkout: moving from master to master
7
+39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@f345fbb8ecec.(none)> 1727267040 +0000   reset: moving to 39a754269fe6e5d94b0fe87215e89232876bda01
8
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/logs/refs/heads/master Changed
4
 
1
@@ -1,1 +1,1 @@
2
-0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@92ff47c51c68.(none)> 1724076757 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
3
+0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@f345fbb8ecec.(none)> 1727267040 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
4
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/logs/refs/remotes/origin/HEAD Changed
4
 
1
@@ -1,1 +1,1 @@
2
-0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@92ff47c51c68.(none)> 1724076757 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
3
+0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@f345fbb8ecec.(none)> 1727267040 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
4
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/info/packs Changed
5
 
1
@@ -1,2 +1,2 @@
2
-P pack-d11f406b0b723f91b0d350db99fc935749fea803.pack
3
+P pack-52d749ffa19e23bf0aafc4622f83cebff904992a.pack
4
 
5
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-52d749ffa19e23bf0aafc4622f83cebff904992a.idx Added
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-52d749ffa19e23bf0aafc4622f83cebff904992a.pack Added
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-52d749ffa19e23bf0aafc4622f83cebff904992a.rev Added
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-d11f406b0b723f91b0d350db99fc935749fea803.idx Deleted
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-d11f406b0b723f91b0d350db99fc935749fea803.pack Deleted
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-d11f406b0b723f91b0d350db99fc935749fea803.rev Deleted
roundcubemail-1.5.tar.gz/vendor/phpstan/phpstan/README.md Changed
12
 
1
@@ -63,6 +63,10 @@
2
 <a href="https://www.getresponse.com/"><img src="website/src/images/sponsor/getresponse.png" alt="GetResponse" width="283" height="64"></a>
3
 &nbsp;&nbsp;&nbsp;
4
 <a href="https://www.shoptet.cz/"><img src="website/src/images/sponsor/shoptet.png" alt="Shoptet" width="283" height="64"></a>
5
+<br>
6
+<a href="https://route4me.com/"><img src="website/src/images/sponsor/route4me.png" alt="Route4Me: Route Optimizer and Route Planner Software" width="283" height="64"></a>
7
+&nbsp;&nbsp;&nbsp;
8
+<a href="https://jobs.ticketswap.com/"><img src="website/src/images/sponsor/ticketswap.png" alt="TicketSwap" width="269" height="64"></a>
9
 
10
 
11
 **You can now sponsor my open-source work on PHPStan through GitHub Sponsors.**(https://github.com/sponsors/ondrejmirtes)
12
roundcubemail-1.5.tar.gz/vendor/phpstan/phpstan/phpstan.phar Changed
roundcubemail-1.5.tar.gz/vendor/phpstan/phpstan/phpstan.phar.asc Changed
31
 
1
@@ -1,16 +1,16 @@
2
 -----BEGIN PGP SIGNATURE-----
3
 
4
-iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAma0iZ8ACgkQUcZzBf/C
5
-5cBohA//bMVrbkx6MXbgAGRDLfFwfw+yIh0eXtYppHNcIH55RznSH5IMuZmnC+aj
6
-8pXRSG38zf/69PZU82iaBwPIUJr2QLFeUe0E+2us6zJ81o3ifVuwqE27IQ2u4vCB
7
-JehufifJRc9ewHCTTvyibIM3IpRCKnc6PsmixBo98BD/aqp1rJKQJscdQcgW5nbq
8
-Ah6h62j1WqfJvspE6s0jegnCNoaf4ir83u3QJ5e63y7TuV+8Bxzx+co2XjYlBX5h
9
-j3Es6fOS4fGVQh5aLX6VYiLJcPPvHMOQJPzMmqqbqc10RRp9i9ASAxQpgwVL7vBe
10
-Pxc+ArPIylTSs5nD5zhURp0v6TReNONMfRa+xYE+AoQloFm9g1KtxscBjqvdLWPo
11
-0+mDDsCMPS/Bj+UB7dUVjvXCrSqhdh35tfXiM2v0W50hDnDsjBxtLln7f5jwPfvy
12
-+NnIxkFG3PFJZa0EtEnKcmBvX6zlkvNUSlR22rp7jNaNn5yrH5/1kcGSKHD9bbKb
13
-ssVcYhMkAZGA+IpOVY0kjsG3f0ItD8Y85QMN1zo5CUwDtK9hdXA0p3+a/muQd1f5
14
-IfCaME2P6I9CGAuXGPhERhbAoKnSrpBkiKVbBE+m8AP0RxjVL0IQXhxM69CaIScc
15
-qpG852WUX/pQAA36va3CWJiC6EJ+EiJ+5v6H6moxIJq4obiGWyY=
16
-=ztg6
17
+iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmbr2W0ACgkQUcZzBf/C
18
+5cAV8RAAgeLEsgJ38Vh3jld66+DBPCRBxbfLpIa/C1mBSzgOFLkqMzkCi7LjXykh
19
+CBiIoMAmRDO+1qD9UnsYxjicKPH4EmY5ZU1S0LgJvQaIUEmr830mn8f9C+JvwYjb
20
+As1ST9moEgkjb8F/Hg4xHTtGUhCcsl/vvMObSoTDLfsTPsUIv37RSnUVul3WTQYy
21
+3AoP7VCVlgGGsrdzwvBXQeH7F86+p1zo8UWO1CwHI/O4dDO09slV7+hA2MbLRqJZ
22
+xefcWPtuqXmpz1Uh2s/E0NO/6SVI1TBIGdckRfIlUizgyHxAA5pXxHEBxdOyHjlF
23
+1CQjnQdS8+Mbwb/iq66SotdhP4OuEdaLTuQsuMzCDowmdTRc6Gjt04tgnRVJU4bK
24
+KoUIDF4ZpDhXIp2ZD8m5aozClGUDca8u6RwXhtidEQL09bTQEdMdu9dk1RWV45jJ
25
+HO/nEcH8NLJ7lMW5YONpXLmjTAz3uSGPb+P4NubTubrF/2z9HlL/KzHMUjhhnuJr
26
+msriRppAoYNAq8jHJ05h1lsxq+vpaVCG0hzmhZ/j4e+jyLsQX9EJS4MdBILhwRXd
27
+XI5j46d4SYs44m3TeeA5Zw5yuIID3HStH6RIjY4fpF9nRy86jKqjUSRtAK7zL1cu
28
+c95iHmeokKYX4+7uyYongHqspztB8rVaC58/Odx+PSnruC1mqFs=
29
+=Qpd8
30
 -----END PGP SIGNATURE-----
31
roundcubemail-1.5.tar.gz/vendor/sabre/event/.php-cs-fixer.dist.php Added
21
 
1
@@ -0,0 +1,18 @@
2
+<?php
3
+
4
+$finder = PhpCsFixer\Finder::create()
5
+    ->exclude('vendor')
6
+    ->in(__DIR__);
7
+
8
+$config = new PhpCsFixer\Config();
9
+$config->setRules(
10
+    '@PSR1' => true,
11
+    '@Symfony' => true,
12
+    'blank_line_between_import_groups' => false,
13
+    'nullable_type_declaration' => 
14
+        'syntax' => 'question_mark',
15
+    ,
16
+    'nullable_type_declaration_for_default_null_value' => true,
17
+);
18
+$config->setFinder($finder);
19
+return $config;
20
\ No newline at end of file
21
roundcubemail-1.5.tar.gz/vendor/sabre/event/composer.json Changed
19
 
1
@@ -46,7 +46,7 @@
2
         }
3
     },
4
     "require-dev": {
5
-        "friendsofphp/php-cs-fixer": "~2.17.1",
6
+        "friendsofphp/php-cs-fixer": "~2.17.1||^3.63",
7
         "phpstan/phpstan": "^0.12",
8
         "phpunit/phpunit" : "^7.5 || ^8.5 || ^9.6"
9
     },
10
@@ -55,7 +55,7 @@
11
             "phpstan analyse lib tests"
12
         ,
13
         "cs-fixer": 
14
-            "php-cs-fixer fix"
15
+            "PHP_CS_FIXER_IGNORE_ENV=true php-cs-fixer fix"
16
         ,
17
         "phpunit": 
18
             "phpunit --configuration tests/phpunit.xml"
19
roundcubemail-1.5.tar.gz/vendor/sabre/event/lib/Loop/Loop.php Changed
10
 
1
@@ -24,7 +24,7 @@
2
      */
3
     public function setTimeout(callable $cb, float $timeout)
4
     {
5
-        $triggerTime = microtime(true) + ($timeout);
6
+        $triggerTime = microtime(true) + $timeout;
7
 
8
         if (!$this->timers) {
9
             // Special case when the timers array was empty.
10
roundcubemail-1.5.tar.gz/vendor/sabre/event/lib/Promise.php Changed
77
 
1
@@ -5,7 +5,6 @@
2
 namespace Sabre\Event;
3
 
4
 use Exception;
5
-use Throwable;
6
 
7
 /**
8
  * An implementation of the Promise pattern.
9
@@ -30,17 +29,17 @@
10
     /**
11
      * The asynchronous operation is pending.
12
      */
13
-    const PENDING = 0;
14
+    public const PENDING = 0;
15
 
16
     /**
17
      * The asynchronous operation has completed, and has a result.
18
      */
19
-    const FULFILLED = 1;
20
+    public const FULFILLED = 1;
21
 
22
     /**
23
      * The asynchronous operation has completed with an error.
24
      */
25
-    const REJECTED = 2;
26
+    public const REJECTED = 2;
27
 
28
     /**
29
      * The current state of this promise.
30
@@ -128,8 +127,6 @@
31
 
32
     /**
33
      * Marks this promise as fulfilled and sets its return value.
34
-     *
35
-     * @param mixed $value
36
      */
37
     public function fulfill($value = null)
38
     {
39
@@ -146,7 +143,7 @@
40
     /**
41
      * Marks this promise as rejected, and set its rejection reason.
42
      */
43
-    public function reject(Throwable $reason)
44
+    public function reject(\Throwable $reason)
45
     {
46
         if (self::PENDING !== $this->state) {
47
             throw new PromiseAlreadyResolvedException('This promise is already resolved, and you\'re not allowed to resolve a promise more than once');
48
@@ -169,7 +166,6 @@
49
      * one. In PHP it might be useful to call this on the last promise in a
50
      * chain.
51
      *
52
-     * @return mixed
53
      * @psalm-return TReturn
54
      */
55
     public function wait()
56
@@ -208,10 +204,8 @@
57
      *
58
      * If the promise was fulfilled, this will be the result value. If the
59
      * promise was rejected, this property hold the rejection reason.
60
-     *
61
-     * @var mixed
62
      */
63
-    protected $value = null;
64
+    protected $value;
65
 
66
     /**
67
      * This method is used to call either an onFulfilled or onRejected callback.
68
@@ -242,7 +236,7 @@
69
                         // immediately fulfill the chained promise.
70
                         $subPromise->fulfill($result);
71
                     }
72
-                } catch (Throwable $e) {
73
+                } catch (\Throwable $e) {
74
                     // If the event handler threw an exception, we need to make sure that
75
                     // the chained promise is rejected as well.
76
                     $subPromise->reject($e);
77
roundcubemail-1.5.tar.gz/vendor/sabre/event/lib/Promise/functions.php Changed
27
 
1
@@ -5,7 +5,6 @@
2
 namespace Sabre\Event\Promise;
3
 
4
 use Sabre\Event\Promise;
5
-use Throwable;
6
 
7
 /**
8
  * This file contains a set of functions that are useful for dealing with the
9
@@ -101,8 +100,6 @@
10
  *
11
  * If the value is a promise, the returned promise will attach itself to that
12
  * promise and eventually get the same state as the followed promise.
13
- *
14
- * @param mixed $value
15
  */
16
 function resolve($value): Promise
17
 {
18
@@ -119,7 +116,7 @@
19
 /**
20
  * Returns a Promise that will reject with the given reason.
21
  */
22
-function reject(Throwable $reason): Promise
23
+function reject(\Throwable $reason): Promise
24
 {
25
     $promise = new Promise();
26
     $promise->reject($reason);
27
roundcubemail-1.5.tar.gz/vendor/sabre/event/lib/Version.php Changed
8
 
1
@@ -16,5 +16,5 @@
2
     /**
3
      * Full version number.
4
      */
5
-    const VERSION = '5.1.6';
6
+    public const VERSION = '5.1.7';
7
 }
8
roundcubemail-1.5.tar.gz/vendor/sabre/event/lib/coroutine.php Changed
60
 
1
@@ -5,7 +5,6 @@
2
 namespace Sabre\Event;
3
 
4
 use Generator;
5
-use Throwable;
6
 
7
 /**
8
  * Turn asynchronous promise-based code into something that looks synchronous
9
@@ -43,7 +42,9 @@
10
  * });
11
  *
12
  * @psalm-template TReturn
13
+ *
14
  * @psalm-param callable():\Generator<mixed, mixed, mixed, TReturn> $gen
15
+ *
16
  * @psalm-return Promise<TReturn>
17
  *
18
  * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
19
@@ -53,7 +54,7 @@
20
 function coroutine(callable $gen): Promise
21
 {
22
     $generator = $gen();
23
-    if (!$generator instanceof Generator) {
24
+    if (!$generator instanceof \Generator) {
25
         throw new \InvalidArgumentException('You must pass a generator function');
26
     }
27
 
28
@@ -73,11 +74,11 @@
29
                         $generator->send($value);
30
                         $advanceGenerator();
31
                     },
32
-                    function (Throwable $reason) use ($generator, $advanceGenerator) {
33
+                    function (\Throwable $reason) use ($generator, $advanceGenerator) {
34
                         $generator->throw($reason);
35
                         $advanceGenerator();
36
                     }
37
-                )->otherwise(function (Throwable $reason) use ($promise) {
38
+                )->otherwise(function (\Throwable $reason) use ($promise) {
39
                     // This error handler would be called, if something in the
40
                     // generator throws an exception, and it's not caught
41
                     // locally.
42
@@ -102,7 +103,7 @@
43
             if ($returnValue instanceof Promise) {
44
                 $returnValue->then(function ($value) use ($promise) {
45
                     $promise->fulfill($value);
46
-                }, function (Throwable $reason) use ($promise) {
47
+                }, function (\Throwable $reason) use ($promise) {
48
                     $promise->reject($reason);
49
                 });
50
             } else {
51
@@ -113,7 +114,7 @@
52
 
53
     try {
54
         $advanceGenerator();
55
-    } catch (Throwable $e) {
56
+    } catch (\Throwable $e) {
57
         $promise->reject($e);
58
     }
59
 
60
roundcubemail-1.5.tar.gz/vendor/sabre/http/.github/workflows/ci.yml Changed
27
 
1
@@ -14,14 +14,14 @@
2
       matrix:
3
         php-versions: '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3'
4
         coverage: 'xdebug'
5
-        code-style: 'no'
6
+        code-style: 'yes'
7
         code-analysis: 'no'
8
         include:
9
           - php-versions: '7.1'
10
             code-style: 'yes'
11
             code-analysis: 'yes'
12
           - php-versions: '8.4'
13
-            code-style: 'no'
14
+            code-style: 'yes'
15
             code-analysis: 'yes'
16
     steps:
17
       - name: Checkout
18
@@ -51,7 +51,7 @@
19
 
20
       - name: Code Analysis (PHP CS-Fixer)
21
         if: matrix.code-style == 'yes'
22
-        run: php vendor/bin/php-cs-fixer fix --dry-run --diff
23
+        run: PHP_CS_FIXER_IGNORE_ENV=true php vendor/bin/php-cs-fixer fix --dry-run --diff
24
 
25
       - name: Code Analysis (PHPStan)
26
         if: matrix.code-analysis == 'yes'
27
roundcubemail-1.5.tar.gz/vendor/sabre/http/.gitignore Changed
6
 
1
@@ -6,3 +6,4 @@
2
 tests/cov/
3
 .phpunit.result.cache
4
 .php_cs.cache
5
+.php-cs-fixer.cache
6
roundcubemail-1.5.tar.gz/vendor/sabre/http/.php-cs-fixer.dist.php Added
20
 
1
@@ -0,0 +1,17 @@
2
+<?php
3
+
4
+$finder = PhpCsFixer\Finder::create()
5
+    ->exclude('vendor')
6
+    ->in(__DIR__);
7
+
8
+$config = new PhpCsFixer\Config();
9
+$config->setRules(
10
+    '@PSR1' => true,
11
+    '@Symfony' => true,
12
+    'nullable_type_declaration' => 
13
+        'syntax' => 'question_mark',
14
+    ,
15
+    'nullable_type_declaration_for_default_null_value' => true,
16
+);
17
+$config->setFinder($finder);
18
+return $config;
19
\ No newline at end of file
20
roundcubemail-1.5.tar.gz/vendor/sabre/http/CHANGELOG.md Changed
13
 
1
@@ -1,6 +1,11 @@
2
 ChangeLog
3
 =========
4
 
5
+5.1.12 (2024-08-27)
6
+------------------
7
+
8
+* #243 add cs-fixer v3 (@phil-davis)
9
+
10
 5.1.11 (2024-07-26)
11
 ------------------
12
 
13
roundcubemail-1.5.tar.gz/vendor/sabre/http/composer.json Changed
19
 
1
@@ -13,7 +13,7 @@
2
         "sabre/uri"    : "^2.0"
3
     },
4
     "require-dev" : {
5
-        "friendsofphp/php-cs-fixer": "~2.17.1",
6
+        "friendsofphp/php-cs-fixer": "~2.17.1||^3.63",
7
         "phpstan/phpstan": "^0.12",
8
         "phpunit/phpunit" : "^7.5 || ^8.5 || ^9.6"
9
     },
10
@@ -50,7 +50,7 @@
11
             "phpstan analyse lib tests"
12
         ,
13
         "cs-fixer": 
14
-            "php-cs-fixer fix"
15
+            "PHP_CS_FIXER_IGNORE_ENV=true php-cs-fixer fix"
16
         ,
17
         "phpunit": 
18
             "phpunit --configuration tests/phpunit.xml"
19
roundcubemail-1.5.tar.gz/vendor/sabre/http/examples/client.php Changed
10
 
1
@@ -29,7 +29,7 @@
2
 $request = new Request('GET', 'http://localhost/');
3
 
4
 $client = new Client();
5
-//$client->addCurlSetting(CURLOPT_PROXY,'localhost:8888');
6
+// $client->addCurlSetting(CURLOPT_PROXY,'localhost:8888');
7
 $response = $client->send($request);
8
 
9
 echo "Response:\n";
10
roundcubemail-1.5.tar.gz/vendor/sabre/http/examples/stringify.php Changed
19
 
1
@@ -30,7 +30,7 @@
2
 $request->setHeaders(
3
     'Host' => 'example.org',
4
     'Content-Type' => 'application/json',
5
-    );
6
+);
7
 
8
 $request->setBody(json_encode('foo' => 'bar'));
9
 
10
@@ -41,7 +41,7 @@
11
 $response->setHeaders(
12
     'Content-Type' => 'text/plain',
13
     'Connection' => 'close',
14
-    );
15
+);
16
 
17
 $response->setBody('ABORT! ABORT!');
18
 
19
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/Auth/AWS.php Changed
44
 
1
@@ -22,14 +22,14 @@
2
      *
3
      * @var string
4
      */
5
-    private $signature = null;
6
+    private $signature;
7
 
8
     /**
9
      * The accesskey supplied by the HTTP client.
10
      *
11
      * @var string
12
      */
13
-    private $accessKey = null;
14
+    private $accessKey;
15
 
16
     /**
17
      * An error code, if any.
18
@@ -40,11 +40,11 @@
19
      */
20
     public $errorCode = 0;
21
 
22
-    const ERR_NOAWSHEADER = 1;
23
-    const ERR_MD5CHECKSUMWRONG = 2;
24
-    const ERR_INVALIDDATEFORMAT = 3;
25
-    const ERR_REQUESTTIMESKEWED = 4;
26
-    const ERR_INVALIDSIGNATURE = 5;
27
+    public const ERR_NOAWSHEADER = 1;
28
+    public const ERR_MD5CHECKSUMWRONG = 2;
29
+    public const ERR_INVALIDDATEFORMAT = 3;
30
+    public const ERR_REQUESTTIMESKEWED = 4;
31
+    public const ERR_INVALIDSIGNATURE = 5;
32
 
33
     /**
34
      * Gathers all information from the headers.
35
@@ -212,7 +212,7 @@
36
         }
37
         $key = str_pad($key, $blocksize, chr(0x00));
38
         $ipad = str_repeat(chr(0x36), $blocksize);
39
-        $opad = str_repeat(chr(0x5c), $blocksize);
40
+        $opad = str_repeat(chr(0x5C), $blocksize);
41
         $hmac = pack('H*', sha1(($key ^ $opad).pack('H*', sha1(($key ^ $ipad).$message))));
42
 
43
         return $hmac;
44
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/Auth/Digest.php Changed
21
 
1
@@ -34,8 +34,8 @@
2
     /**
3
      * These constants are used in setQOP();.
4
      */
5
-    const QOP_AUTH = 1;
6
-    const QOP_AUTHINT = 2;
7
+    public const QOP_AUTH = 1;
8
+    public const QOP_AUTHINT = 2;
9
 
10
     protected $nonce;
11
     protected $opaque;
12
@@ -177,8 +177,6 @@
13
      * It should be compatible with mod_php format and other webservers.
14
      *
15
      * If the header could not be found, null will be returned
16
-     *
17
-     * @return mixed
18
      */
19
     public function getDigest()
20
     {
21
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/Client.php Changed
23
 
1
@@ -299,8 +299,6 @@
2
      * Adds a CURL setting.
3
      *
4
      * These settings will be included in every HTTP request.
5
-     *
6
-     * @param mixed $value
7
      */
8
     public function addCurlSetting(int $name, $value)
9
     {
10
@@ -419,9 +417,9 @@
11
         return $settings;
12
     }
13
 
14
-    const STATUS_SUCCESS = 0;
15
-    const STATUS_CURLERROR = 1;
16
-    const STATUS_HTTPERROR = 2;
17
+    public const STATUS_SUCCESS = 0;
18
+    public const STATUS_CURLERROR = 1;
19
+    public const STATUS_HTTPERROR = 2;
20
 
21
     private function parseResponse(string $response, $curlHandle): array
22
     {
23
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/Request.php Changed
9
 
1
@@ -4,7 +4,6 @@
2
 
3
 namespace Sabre\HTTP;
4
 
5
-use LogicException;
6
 use Sabre\Uri;
7
 
8
 /**
9
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/Response.php Changed
9
 
1
@@ -100,7 +100,6 @@
2
      * Creates the response object.
3
      *
4
      * @param string|int $status
5
-     * @param array      $headers
6
      * @param resource   $body
7
      */
8
     public function __construct($status = 500, ?array $headers = null, $body = null)
9
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/Sapi.php Changed
60
 
1
@@ -4,8 +4,6 @@
2
 
3
 namespace Sabre\HTTP;
4
 
5
-use InvalidArgumentException;
6
-
7
 /**
8
  * PHP SAPI.
9
  *
10
@@ -168,7 +166,7 @@
11
                     $url = $value;
12
                     break;
13
 
14
-                // These sometimes show up without a HTTP_ prefix
15
+                    // These sometimes show up without a HTTP_ prefix
16
                 case 'CONTENT_TYPE':
17
                     $headers'Content-Type' = $value;
18
                     break;
19
@@ -176,21 +174,21 @@
20
                     $headers'Content-Length' = $value;
21
                     break;
22
 
23
-                // mod_php on apache will put credentials in these variables.
24
-                // (fast)cgi does not usually do this, however.
25
+                    // mod_php on apache will put credentials in these variables.
26
+                    // (fast)cgi does not usually do this, however.
27
                 case 'PHP_AUTH_USER':
28
                     if (isset($serverArray'PHP_AUTH_PW')) {
29
                         $headers'Authorization' = 'Basic '.base64_encode($value.':'.$serverArray'PHP_AUTH_PW');
30
                     }
31
                     break;
32
 
33
-                // Similarly, mod_php may also screw around with digest auth.
34
+                    // Similarly, mod_php may also screw around with digest auth.
35
                 case 'PHP_AUTH_DIGEST':
36
                     $headers'Authorization' = 'Digest '.$value;
37
                     break;
38
 
39
-                // Apache may prefix the HTTP_AUTHORIZATION header with
40
-                // REDIRECT_, if mod_rewrite was used.
41
+                    // Apache may prefix the HTTP_AUTHORIZATION header with
42
+                    // REDIRECT_, if mod_rewrite was used.
43
                 case 'REDIRECT_HTTP_AUTHORIZATION':
44
                     $headers'Authorization' = $value;
45
                     break;
46
@@ -226,11 +224,11 @@
47
         }
48
 
49
         if (null === $url) {
50
-            throw new InvalidArgumentException('The _SERVER array must have a REQUEST_URI key');
51
+            throw new \InvalidArgumentException('The _SERVER array must have a REQUEST_URI key');
52
         }
53
 
54
         if (null === $method) {
55
-            throw new InvalidArgumentException('The _SERVER array must have a REQUEST_METHOD key');
56
+            throw new \InvalidArgumentException('The _SERVER array must have a REQUEST_METHOD key');
57
         }
58
         $r = new Request($method, $url, $headers);
59
         $r->setHttpVersion($httpVersion);
60
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/Version.php Changed
8
 
1
@@ -16,5 +16,5 @@
2
     /**
3
      * Full version number.
4
      */
5
-    const VERSION = '5.1.11';
6
+    public const VERSION = '5.1.12';
7
 }
8
roundcubemail-1.5.tar.gz/vendor/sabre/http/lib/functions.php Changed
60
 
1
@@ -4,9 +4,6 @@
2
 
3
 namespace Sabre\HTTP;
4
 
5
-use DateTime;
6
-use InvalidArgumentException;
7
-
8
 /**
9
  * A collection of useful helpers for parsing or generating various HTTP
10
  * headers.
11
@@ -29,7 +26,7 @@
12
  * See:
13
  *   http://tools.ietf.org/html/rfc7231#section-7.1.1.1
14
  *
15
- * @return bool|DateTime
16
+ * @return bool|\DateTime
17
  */
18
 function parseDate(string $dateString)
19
 {
20
@@ -65,7 +62,7 @@
21
     }
22
 
23
     try {
24
-        return new DateTime($dateString, new \DateTimeZone('UTC'));
25
+        return new \DateTime($dateString, new \DateTimeZone('UTC'));
26
     } catch (\Exception $e) {
27
         return false;
28
     }
29
@@ -74,7 +71,7 @@
30
 /**
31
  * Transforms a DateTime object to a valid HTTP/1.1 Date header value.
32
  */
33
-function toDate(DateTime $dateTime): string
34
+function toDate(\DateTime $dateTime): string
35
 {
36
     // We need to clone it, as we don't want to affect the existing
37
     // DateTime.
38
@@ -171,9 +168,9 @@
39
 
40
             // Does this entry win?
41
             if (
42
-                ($proposal'quality' > $lastQuality) ||
43
-                ($proposal'quality' === $lastQuality && $specificity > $lastSpecificity) ||
44
-                ($proposal'quality' === $lastQuality && $specificity === $lastSpecificity && $optionIndex < $lastOptionIndex)
45
+                ($proposal'quality' > $lastQuality)
46
+                || ($proposal'quality' === $lastQuality && $specificity > $lastSpecificity)
47
+                || ($proposal'quality' === $lastQuality && $specificity === $lastSpecificity && $optionIndex < $lastOptionIndex)
48
             ) {
49
                 $lastQuality = $proposal'quality';
50
                 $lastSpecificity = $specificity;
51
@@ -331,7 +328,7 @@
52
     if (2 !== count($mimeType)) {
53
         // Illegal value
54
         var_dump($mimeType);
55
-        exit();
56
+        exit;
57
         // throw new InvalidArgumentException('Not a valid mime-type: '.$str);
58
     }
59
     list($type, $subType) = $mimeType;
60
roundcubemail-1.5.tar.gz/vendor/sabre/http/tests/HTTP/Auth/AWSTest.php Changed
19
 
1
@@ -24,7 +24,7 @@
2
      */
3
     private $auth;
4
 
5
-    const REALM = 'SabreDAV unittest';
6
+    public const REALM = 'SabreDAV unittest';
7
 
8
     public function setUp(): void
9
     {
10
@@ -228,7 +228,7 @@
11
         }
12
         $key = str_pad($key, $blocksize, chr(0x00));
13
         $ipad = str_repeat(chr(0x36), $blocksize);
14
-        $opad = str_repeat(chr(0x5c), $blocksize);
15
+        $opad = str_repeat(chr(0x5C), $blocksize);
16
         $hmac = pack('H*', sha1(($key ^ $opad).pack('H*', sha1(($key ^ $ipad).$message))));
17
 
18
         return $hmac;
19
roundcubemail-1.5.tar.gz/vendor/sabre/http/tests/HTTP/Auth/DigestTest.php Changed
62
 
1
@@ -26,7 +26,7 @@
2
      */
3
     private $auth;
4
 
5
-    const REALM = 'SabreDAV unittest';
6
+    public const REALM = 'SabreDAV unittest';
7
 
8
     public function setUp(): void
9
     {
10
@@ -50,7 +50,7 @@
11
             $nc.':'.
12
             $cnonce.':'.
13
             'auth:'.
14
-            md5('GET'.':'.'/')
15
+            md5('GET:/')
16
         );
17
 
18
         $this->request->setMethod('GET');
19
@@ -79,7 +79,7 @@
20
             $nc.':'.
21
             $cnonce.':'.
22
             'auth:'.
23
-            md5('GET'.':'.'/')
24
+            md5('GET:/')
25
         );
26
 
27
         $this->request->setMethod('GET');
28
@@ -115,7 +115,7 @@
29
             $nc.':'.
30
             $cnonce.':'.
31
             'auth-int:'.
32
-            md5('POST'.':'.'/'.':'.md5('body'))
33
+            md5('POST:/:'.md5('body'))
34
         );
35
 
36
         $this->request->setMethod('POST');
37
@@ -143,7 +143,7 @@
38
             $nc.':'.
39
             $cnonce.':'.
40
             'auth-int:'.
41
-            md5('POST'.':'.'/'.':'.md5('body'))
42
+            md5('POST:/:'.md5('body'))
43
         );
44
 
45
         $this->request->setMethod('POST');
46
@@ -160,9 +160,12 @@
47
         $this->auth->requireLogin();
48
 
49
         switch ($qop) {
50
-            case Digest::QOP_AUTH: $qopstr = 'auth'; break;
51
-            case Digest::QOP_AUTHINT: $qopstr = 'auth-int'; break;
52
-            default: $qopstr = 'auth,auth-int'; break;
53
+            case Digest::QOP_AUTH: $qopstr = 'auth';
54
+                break;
55
+            case Digest::QOP_AUTHINT: $qopstr = 'auth-int';
56
+                break;
57
+            default: $qopstr = 'auth,auth-int';
58
+                break;
59
         }
60
 
61
         $test = preg_match('/Digest realm="'.self::REALM.'",qop="'.$qopstr.'",nonce="(0-9a-f*)",opaque="(0-9a-f*)"/',
62
roundcubemail-1.5.tar.gz/vendor/sabre/http/tests/HTTP/ClientTest.php Changed
126
 
1
@@ -14,15 +14,15 @@
2
         $request = new Request('GET', 'http://example.org/', 'X-Foo' => 'bar');
3
 
4
         $settings = 
5
-                CURLOPT_RETURNTRANSFER => true,
6
-                CURLOPT_HEADER => true,
7
-                CURLOPT_POSTREDIR => 0,
8
-                CURLOPT_HTTPHEADER => 'X-Foo: bar',
9
-                CURLOPT_NOBODY => false,
10
-                CURLOPT_URL => 'http://example.org/',
11
-                CURLOPT_CUSTOMREQUEST => 'GET',
12
-                CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
13
-            ;
14
+            CURLOPT_RETURNTRANSFER => true,
15
+            CURLOPT_HEADER => true,
16
+            CURLOPT_POSTREDIR => 0,
17
+            CURLOPT_HTTPHEADER => 'X-Foo: bar',
18
+            CURLOPT_NOBODY => false,
19
+            CURLOPT_URL => 'http://example.org/',
20
+            CURLOPT_CUSTOMREQUEST => 'GET',
21
+            CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
22
+        ;
23
 
24
         // FIXME: CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS are currently unsupported by HHVM
25
         // at least if this unit test fails in the future we know it is :)
26
@@ -67,14 +67,14 @@
27
         $request = new Request('HEAD', 'http://example.org/', 'X-Foo' => 'bar');
28
 
29
         $settings = 
30
-                CURLOPT_RETURNTRANSFER => true,
31
-                CURLOPT_HEADER => true,
32
-                CURLOPT_NOBODY => true,
33
-                CURLOPT_CUSTOMREQUEST => 'HEAD',
34
-                CURLOPT_HTTPHEADER => 'X-Foo: bar',
35
-                CURLOPT_URL => 'http://example.org/',
36
-                CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
37
-            ;
38
+            CURLOPT_RETURNTRANSFER => true,
39
+            CURLOPT_HEADER => true,
40
+            CURLOPT_NOBODY => true,
41
+            CURLOPT_CUSTOMREQUEST => 'HEAD',
42
+            CURLOPT_HTTPHEADER => 'X-Foo: bar',
43
+            CURLOPT_URL => 'http://example.org/',
44
+            CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
45
+        ;
46
 
47
         // FIXME: CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS are currently unsupported by HHVM
48
         // at least if this unit test fails in the future we know it is :)
49
@@ -100,14 +100,14 @@
50
         $request = new Request('GET', 'http://example.org/', 'X-Foo' => 'bar');
51
 
52
         $settings = 
53
-                CURLOPT_CUSTOMREQUEST => 'GET',
54
-                CURLOPT_RETURNTRANSFER => true,
55
-                CURLOPT_HEADER => true,
56
-                CURLOPT_HTTPHEADER => 'X-Foo: bar',
57
-                CURLOPT_NOBODY => false,
58
-                CURLOPT_URL => 'http://example.org/',
59
-                CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
60
-            ;
61
+            CURLOPT_CUSTOMREQUEST => 'GET',
62
+            CURLOPT_RETURNTRANSFER => true,
63
+            CURLOPT_HEADER => true,
64
+            CURLOPT_HTTPHEADER => 'X-Foo: bar',
65
+            CURLOPT_NOBODY => false,
66
+            CURLOPT_URL => 'http://example.org/',
67
+            CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
68
+        ;
69
 
70
         // FIXME: CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS are currently unsupported by HHVM
71
         // at least if this unit test fails in the future we know it is :)
72
@@ -129,17 +129,17 @@
73
         $request = new Request('PUT', 'http://example.org/', 'X-Foo' => 'bar', $h);
74
 
75
         $settings = 
76
-                CURLOPT_RETURNTRANSFER => true,
77
-                CURLOPT_HEADER => true,
78
-                CURLOPT_PUT => true,
79
-                CURLOPT_INFILE => $h,
80
-                CURLOPT_INFILESIZE => strlen($fileContent),
81
-                CURLOPT_NOBODY => false,
82
-                CURLOPT_CUSTOMREQUEST => 'PUT',
83
-                CURLOPT_HTTPHEADER => 'X-Foo: bar',
84
-                CURLOPT_URL => 'http://example.org/',
85
-                CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
86
-            ;
87
+            CURLOPT_RETURNTRANSFER => true,
88
+            CURLOPT_HEADER => true,
89
+            CURLOPT_PUT => true,
90
+            CURLOPT_INFILE => $h,
91
+            CURLOPT_INFILESIZE => strlen($fileContent),
92
+            CURLOPT_NOBODY => false,
93
+            CURLOPT_CUSTOMREQUEST => 'PUT',
94
+            CURLOPT_HTTPHEADER => 'X-Foo: bar',
95
+            CURLOPT_URL => 'http://example.org/',
96
+            CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
97
+        ;
98
 
99
         // FIXME: CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS are currently unsupported by HHVM
100
         // at least if this unit test fails in the future we know it is :)
101
@@ -157,15 +157,15 @@
102
         $request = new Request('PUT', 'http://example.org/', 'X-Foo' => 'bar', 'boo');
103
 
104
         $settings = 
105
-                CURLOPT_RETURNTRANSFER => true,
106
-                CURLOPT_HEADER => true,
107
-                CURLOPT_NOBODY => false,
108
-                CURLOPT_POSTFIELDS => 'boo',
109
-                CURLOPT_CUSTOMREQUEST => 'PUT',
110
-                CURLOPT_HTTPHEADER => 'X-Foo: bar',
111
-                CURLOPT_URL => 'http://example.org/',
112
-                CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
113
-            ;
114
+            CURLOPT_RETURNTRANSFER => true,
115
+            CURLOPT_HEADER => true,
116
+            CURLOPT_NOBODY => false,
117
+            CURLOPT_POSTFIELDS => 'boo',
118
+            CURLOPT_CUSTOMREQUEST => 'PUT',
119
+            CURLOPT_HTTPHEADER => 'X-Foo: bar',
120
+            CURLOPT_URL => 'http://example.org/',
121
+            CURLOPT_USERAGENT => 'sabre-http/'.Version::VERSION.' (http://sabre.io/)',
122
+        ;
123
 
124
         // FIXME: CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS are currently unsupported by HHVM
125
         // at least if this unit test fails in the future we know it is :)
126
roundcubemail-1.5.tar.gz/vendor/sabre/http/tests/HTTP/FunctionsTest.php Changed
10
 
1
@@ -156,7 +156,7 @@
2
     public function testParseHTTPDateFail()
3
     {
4
         $times = 
5
-            //random string
6
+            // random string
7
             'NOW',
8
             // not-GMT timezone
9
             'Wednesday, 13-Oct-10 10:26:00 UTC',
10
roundcubemail-1.5.tar.gz/vendor/sabre/http/tests/HTTP/MessageDecoratorTest.php Changed
19
 
1
@@ -30,7 +30,7 @@
2
     {
3
         $this->outer->setHeaders(
4
             'a' => 'b',
5
-            );
6
+        );
7
 
8
         $this->assertEquals('a' => 'b', $this->inner->getHeaders());
9
         $this->assertEquals('a' => 'b', $this->outer->getHeaders());
10
@@ -44,7 +44,7 @@
11
 
12
         $this->outer->addHeaders(
13
             'e' => 'f',
14
-            );
15
+        );
16
 
17
         $this->assertEquals('a' => 'b', 'c' => 'd', 'e' => 'f', $this->inner->getHeaders());
18
         $this->assertEquals('a' => 'b', 'c' => 'd', 'e' => 'f', $this->outer->getHeaders());
19
roundcubemail-1.5.tar.gz/vendor/sabre/http/tests/HTTP/SapiTest.php Changed
35
 
1
@@ -144,6 +144,7 @@
2
 
3
     /**
4
      * @runInSeparateProcess
5
+     *
6
      * @depends testSend
7
      */
8
     public function testSendLimitedByContentLengthString()
9
@@ -179,6 +180,7 @@
10
 
11
     /**
12
      * @runInSeparateProcess
13
+     *
14
      * @depends testSend
15
      */
16
     public function testSendLimitedByContentLengthStream()
17
@@ -203,7 +205,9 @@
18
 
19
     /**
20
      * @runInSeparateProcess
21
+     *
22
      * @depends testSend
23
+     *
24
      * @dataProvider sendContentRangeStreamData
25
      */
26
     public function testSendContentRangeStream($ignoreAtStart, $sendText, $multiplier, $ignoreAtEnd, $contentLength)
27
@@ -269,6 +273,7 @@
28
 
29
     /**
30
      * @runInSeparateProcess
31
+     *
32
      * @depends testSend
33
      */
34
     public function testSendWorksWithCallbackAsBody()
35
roundcubemail-1.5.tar.gz/vendor/sabre/xml/.github/workflows/ci.yml Changed
19
 
1
@@ -14,7 +14,7 @@
2
       matrix:
3
         php-versions: '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3'
4
         coverage: 'pcov'
5
-        code-style: 'no'
6
+        code-style: 'yes'
7
         code-analysis: 'no'
8
         include:
9
           - php-versions: '7.1'
10
@@ -23,7 +23,7 @@
11
             code-analysis: 'yes'
12
           - php-versions: '8.4'
13
             coverage: 'pcov'
14
-            code-style: 'no'
15
+            code-style: 'yes'
16
             code-analysis: 'yes'
17
     steps:
18
       - name: Checkout
19
roundcubemail-1.5.tar.gz/vendor/sabre/xml/.php-cs-fixer.dist.php Added
20
 
1
@@ -0,0 +1,17 @@
2
+<?php
3
+
4
+$finder = PhpCsFixer\Finder::create()
5
+    ->exclude('vendor')
6
+    ->in(__DIR__);
7
+
8
+$config = new PhpCsFixer\Config();
9
+$config->setRules(
10
+    '@PSR1' => true,
11
+    '@Symfony' => true,
12
+    'nullable_type_declaration' => 
13
+        'syntax' => 'question_mark',
14
+    ,
15
+    'nullable_type_declaration_for_default_null_value' => true,
16
+);
17
+$config->setFinder($finder);
18
+return $config;
19
\ No newline at end of file
20
roundcubemail-1.5.tar.gz/vendor/sabre/xml/composer.json Changed
19
 
1
@@ -44,7 +44,7 @@
2
         }
3
     },
4
     "require-dev": {
5
-        "friendsofphp/php-cs-fixer": "~2.17.1",
6
+        "friendsofphp/php-cs-fixer": "~2.17.1||3.63.2",
7
         "phpstan/phpstan": "^0.12",
8
         "phpunit/phpunit" : "^7.5 || ^8.5 || ^9.6"
9
     },
10
@@ -53,7 +53,7 @@
11
             "phpstan analyse lib tests"
12
         ,
13
         "cs-fixer": 
14
-            "php-cs-fixer fix"
15
+            "PHP_CS_FIXER_IGNORE_ENV=true php-cs-fixer fix"
16
         ,
17
         "phpunit": 
18
             "phpunit --configuration tests/phpunit.xml"
19
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Deserializer/functions.php Changed
10
 
1
@@ -325,8 +325,6 @@
2
  *
3
  * You can use, e.g., a named constructor (factory method) to create an object using
4
  * this function.
5
- *
6
- * @return mixed
7
  */
8
 function functionCaller(Reader $reader, callable $func, string $namespace)
9
 {
10
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Element/Base.php Changed
19
 
1
@@ -21,8 +21,6 @@
2
 {
3
     /**
4
      * PHP value to serialize.
5
-     *
6
-     * @var mixed
7
      */
8
     protected $value;
9
 
10
@@ -72,8 +70,6 @@
11
      *
12
      * $reader->parseInnerTree() will parse the entire sub-tree, and advance to
13
      * the next element.
14
-     *
15
-     * @return mixed
16
      */
17
     public static function xmlDeserialize(Xml\Reader $reader)
18
     {
19
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Element/Elements.php Changed
10
 
1
@@ -90,8 +90,6 @@
2
      *
3
      * $reader->parseSubTree() will parse the entire sub-tree, and advance to
4
      * the next element.
5
-     *
6
-     * @return mixed
7
      */
8
     public static function xmlDeserialize(Xml\Reader $reader)
9
     {
10
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Element/KeyValue.php Changed
10
 
1
@@ -90,8 +90,6 @@
2
      *
3
      * $reader->parseInnerTree() will parse the entire sub-tree, and advance to
4
      * the next element.
5
-     *
6
-     * @return mixed
7
      */
8
     public static function xmlDeserialize(Xml\Reader $reader)
9
     {
10
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Element/Uri.php Changed
10
 
1
@@ -84,8 +84,6 @@
2
      *
3
      * $reader->parseSubTree() will parse the entire sub-tree, and advance to
4
      * the next element.
5
-     *
6
-     * @return mixed
7
      */
8
     public static function xmlDeserialize(Xml\Reader $reader)
9
     {
10
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Element/XmlFragment.php Changed
10
 
1
@@ -135,8 +135,6 @@
2
      *
3
      * $reader->parseInnerTree() will parse the entire sub-tree, and advance to
4
      * the next element.
5
-     *
6
-     * @return mixed
7
      */
8
     public static function xmlDeserialize(Reader $reader)
9
     {
10
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/LibXMLException.php Changed
22
 
1
@@ -5,7 +5,6 @@
2
 namespace Sabre\Xml;
3
 
4
 use LibXMLError;
5
-use Throwable;
6
 
7
 /**
8
  * This exception is thrown when the Reader runs into a parsing error.
9
@@ -30,10 +29,9 @@
10
      *
11
      * You should pass a list of LibXMLError objects in its constructor.
12
      *
13
-     * @param LibXMLError $errors
14
-     * @param Throwable     $previousException
15
+     * @param \LibXMLError $errors
16
      */
17
-    public function __construct(array $errors, int $code = 0, ?Throwable $previousException = null)
18
+    public function __construct(array $errors, int $code = 0, ?\Throwable $previousException = null)
19
     {
20
         $this->errors = $errors;
21
         parent::__construct($errors0->message.' on line '.$errors0->line.', column '.$errors0->column, $code, $previousException);
22
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/ParseException.php Changed
9
 
1
@@ -13,6 +13,6 @@
2
  * @author Evert Pot (http://evertpot.com/)
3
  * @license http://sabre.io/license/ Modified BSD License
4
  */
5
-class ParseException extends Exception
6
+class ParseException extends \Exception
7
 {
8
 }
9
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Reader.php Changed
19
 
1
@@ -19,7 +19,7 @@
2
  * @author Evert Pot (http://evertpot.com/)
3
  * @license http://sabre.io/license/ Modified BSD License
4
  */
5
-class Reader extends XMLReader
6
+class Reader extends \XMLReader
7
 {
8
     use ContextStackTrait;
9
 
10
@@ -205,7 +205,7 @@
11
         $previousDepth = $this->depth;
12
 
13
         while ($this->read() && $this->depth != $previousDepth) {
14
-            if (in_array($this->nodeType, XMLReader::TEXT, XMLReader::CDATA, XMLReader::WHITESPACE)) {
15
+            if (in_array($this->nodeType, \XMLReader::TEXT, \XMLReader::CDATA, \XMLReader::WHITESPACE)) {
16
                 $result .= $this->value;
17
             }
18
         }
19
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Serializer/functions.php Changed
25
 
1
@@ -4,7 +4,6 @@
2
 
3
 namespace Sabre\Xml\Serializer;
4
 
5
-use InvalidArgumentException;
6
 use Sabre\Xml\Writer;
7
 use Sabre\Xml\XmlSerializable;
8
 
9
@@ -197,12 +196,12 @@
10
                 $writer->write($item);
11
                 $writer->endElement();
12
             } else {
13
-                throw new InvalidArgumentException('The writer does not know how to serialize arrays with keys of type: '.gettype($name));
14
+                throw new \InvalidArgumentException('The writer does not know how to serialize arrays with keys of type: '.gettype($name));
15
             }
16
         }
17
     } elseif (is_object($value)) {
18
-        throw new InvalidArgumentException('The writer cannot serialize objects of class: '.get_class($value));
19
+        throw new \InvalidArgumentException('The writer cannot serialize objects of class: '.get_class($value));
20
     } elseif (!is_null($value)) {
21
-        throw new InvalidArgumentException('The writer cannot serialize values of type: '.gettype($value));
22
+        throw new \InvalidArgumentException('The writer cannot serialize values of type: '.gettype($value));
23
     }
24
 }
25
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Service.php Changed
57
 
1
@@ -105,16 +105,23 @@
2
      *
3
      * @param string|resource $input
4
      *
5
-     * @throws ParseException
6
-     *
7
      * @return array|object|string
8
+     *
9
+     * @throws ParseException
10
      */
11
     public function parse($input, ?string $contextUri = null, ?string &$rootElementName = null)
12
     {
13
-        if (is_resource($input)) {
14
+        if (!is_string($input)) {
15
             // Unfortunately the XMLReader doesn't support streams. When it
16
             // does, we can optimize this.
17
-            $input = (string) stream_get_contents($input);
18
+            if (is_resource($input)) {
19
+                $input = (string) stream_get_contents($input);
20
+            } else {
21
+                // Input is not a string and not a resource.
22
+                // Therefore, it has to be a closed resource.
23
+                // Effectively empty input has been passed in.
24
+                $input = '';
25
+            }
26
         }
27
 
28
         // If input is empty, then it's safe to throw an exception
29
@@ -149,16 +156,23 @@
30
      * @param string|string $rootElementName
31
      * @param string|resource $input
32
      *
33
-     * @throws ParseException
34
-     *
35
      * @return array|object|string
36
+     *
37
+     * @throws ParseException
38
      */
39
     public function expect($rootElementName, $input, ?string $contextUri = null)
40
     {
41
-        if (is_resource($input)) {
42
+        if (!is_string($input)) {
43
             // Unfortunately the XMLReader doesn't support streams. When it
44
             // does, we can optimize this.
45
-            $input = (string) stream_get_contents($input);
46
+            if (is_resource($input)) {
47
+                $input = (string) stream_get_contents($input);
48
+            } else {
49
+                // Input is not a string and not a resource.
50
+                // Therefore, it has to be a closed resource.
51
+                // Effectively empty input has been passed in.
52
+                $input = '';
53
+            }
54
         }
55
 
56
         // If input is empty, then it's safe to throw an exception
57
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Version.php Changed
8
 
1
@@ -16,5 +16,5 @@
2
     /**
3
      * Full version number.
4
      */
5
-    const VERSION = '2.2.9';
6
+    public const VERSION = '2.2.11';
7
 }
8
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/Writer.php Changed
28
 
1
@@ -30,7 +30,7 @@
2
  * @author Evert Pot (http://evertpot.com/)
3
  * @license http://sabre.io/license/ Modified BSD License
4
  */
5
-class Writer extends XMLWriter
6
+class Writer extends \XMLWriter
7
 {
8
     use ContextStackTrait;
9
 
10
@@ -93,8 +93,6 @@
11
      *      
12
      *    
13
      * 
14
-     *
15
-     * @param mixed $value
16
      */
17
     public function write($value)
18
     {
19
@@ -151,7 +149,7 @@
20
 
21
         if (!$this->namespacesWritten) {
22
             foreach ($this->namespaceMap as $namespace => $prefix) {
23
-                $this->writeAttribute(($prefix ? 'xmlns:'.$prefix : 'xmlns'), $namespace);
24
+                $this->writeAttribute($prefix ? 'xmlns:'.$prefix : 'xmlns', $namespace);
25
             }
26
             $this->namespacesWritten = true;
27
         }
28
roundcubemail-1.5.tar.gz/vendor/sabre/xml/lib/XmlDeserializable.php Changed
10
 
1
@@ -31,8 +31,6 @@
2
      *
3
      * $reader->parseInnerTree() will parse the entire sub-tree, and advance to
4
      * the next element.
5
-     *
6
-     * @return mixed
7
      */
8
     public static function xmlDeserialize(Reader $reader);
9
 }
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/CHANGELOG.md Changed
77
 
1
@@ -6,6 +6,50 @@
2
 
3
 _Nothing yet._
4
 
5
+## 3.10.3 - 2024-09-18
6
+
7
+### Changed
8
+- Various housekeeping, including improvements to the tests and documentation.
9
+    - Thanks to Rodrigo Primo@rodrigoprimo and Juliette Reinders Folmer@jrfnl for their contributions.
10
+
11
+### Fixed
12
+- Fixed bug #553 : Squiz.Classes.SelfMemberReference: false negative(s) when namespace operator was encountered between the namespace declaration and the OO declaration.
13
+    - Thanks to Juliette Reinders Folmer@jrfnl for the patch
14
+- Fixed bug #579 : AbstractPatternSniff: potential PHP notice during live coding.
15
+    - Thanks to Juliette Reinders Folmer@jrfnl for the patch
16
+- Fixed bug #580 : Squiz.Formatting.OperatorBracket: potential PHP notice during live coding.
17
+    - Thanks to Juliette Reinders Folmer@jrfnl for the patch
18
+- Fixed bug #581 : PSR12.ControlStructures.ControlStructureSpacing: prevent fixer conflict by correctly handling multiple empty newlines before the first condition in a multi-line control structure.
19
+    - Thanks to Dan Wallis@fredden for the patch.
20
+- Fixed bug #585 : Tokenizer not applying tab replacement in heredoc/nowdoc openers.
21
+    - Thanks to Juliette Reinders Folmer@jrfnl for the patch
22
+- Fixed bug #588 : Squiz.PHP.EmbeddedPhp false positive when checking spaces after a PHP short open tag.
23
+    - Thanks to Rodrigo Primo@rodrigoprimo for the patch.
24
+- Fixed bug #597 : Generic.PHP.LowerCaseKeyword did not flag nor fix non-lowercase anonymous class keywords.
25
+    - Thanks to Marek Štípek@maryo for the patch.
26
+- Fixed bug #598 : Squiz.PHP.DisallowMultipleAssignments: false positive on assignments to variable property on object stored in array.
27
+    - Thanks to Juliette Reinders Folmer@jrfnl for the patch
28
+- Fixed bug #608 : Squiz.Functions.MultiLineFunctionDeclaration did not take (parameter) attributes into account when checking for one parameter per line.
29
+    - Thanks to Juliette Reinders Folmer@jrfnl for the patch
30
+
31
+### Other
32
+- The provenance of PHAR files associated with a release can now be verified via GitHub Artifact Attestationsghattest using the GitHub CLI toolghcli with the following command: `gh attestation verify phpcs|phpcbf.phar -o PHPCSStandards`. #574
33
+    - Thanks to Juliette Reinders Folmer@jrfnl for the patch.
34
+
35
+#553: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/553
36
+#574: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/574
37
+#579: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/579
38
+#580: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/580
39
+#581: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/581
40
+#585: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/585
41
+#588: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/588
42
+#597: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/597
43
+#598: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/598
44
+#608: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/608
45
+
46
+ghcli:    https://cli.github.com/
47
+ghattest: https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds
48
+
49
 ## 3.10.2 - 2024-07-22
50
 
51
 ### Changed
52
@@ -396,7 +440,7 @@
53
         - **_In contrast to earlier information, the `squizlabs/php_codesniffer` package now points to the new repository and everything will continue to work as before._**
54
     - PHIVE users may need to clear the PHIVE URL cache.
55
         - PHIVE users who don't use the package alias, but refer to the package URL, will need to update the URL from `https://squizlabs.github.io/PHP_CodeSniffer/phars/` to `https://phars.phpcodesniffer.com/phars/`.
56
-    - Users who download the PHAR files using curl or wget, will need to update the download URL from `https://squizlabs.github.io/PHP_CodeSniffer/phpcs|phpcbf.phar` or `https://github.com/squizlabs/PHP_CodeSnifffer/releases/latest/download/phpcs|phpcbf.phar` to `https://phars.phpcodesniffer.com/phpcs|phpcbf.phar`.
57
+    - Users who download the PHAR files using curl or wget, will need to update the download URL from `https://squizlabs.github.io/PHP_CodeSniffer/phpcs|phpcbf.phar` or `https://github.com/squizlabs/PHP_CodeSniffer/releases/latest/download/phpcs|phpcbf.phar` to `https://phars.phpcodesniffer.com/phpcs|phpcbf.phar`.
58
     - For users who install PHP_CodeSniffer via the Setup-PHP(https://github.com/shivammathur/setup-php/) action runner for GitHub Actions, nothing changes.
59
     - Users using a git clone will need to update the clone address from `git@github.com:squizlabs/PHP_CodeSniffer.git` to `git@github.com:PHPCSStandards/PHP_CodeSniffer.git`.
60
         - Contributors will need to fork the new repo and add both the new fork as well as the new repo as remotes to their local git copy of PHP_CodeSniffer.
61
@@ -7002,6 +7046,7 @@
62
 -->
63
 
64
 Unreleased: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/master...HEAD
65
+3.10.3:     https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.2...3.10.3
66
 3.10.2:     https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.1...3.10.2
67
 3.10.1:     https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.0...3.10.1
68
 3.10.0:     https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.2...3.10.0
69
@@ -7234,6 +7279,7 @@
70
 @MarkMaldaba:         https://github.com/MarkMaldaba
71
 @martinssipenko:      https://github.com/martinssipenko
72
 @marvasDE:            https://github.com/marvasDE
73
+@maryo:               https://github.com/maryo
74
 @MasterOdin:          https://github.com/MasterOdin
75
 @mathroc:             https://github.com/mathroc
76
 @maxgalbu:            https://github.com/maxgalbu
77
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/README.md Changed
10
 
1
@@ -50,6 +50,8 @@
2
 These Phars are signed with the official Release key for PHPCS with the
3
 fingerprint `689D AD77 8FF0 8760 E046 228B A978 2203 05CD 5C32`.
4
 
5
+As of PHP_CodeSniffer 3.10.3, the provenance of PHAR files associated with a release can be verified via GitHub Artifact Attestations(https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds) using the GitHub CLI tool(https://cli.github.com/) with the following command: `gh attestation verify phpcs|phpcbf.phar -o PHPCSStandards`.
6
+
7
 ### Composer
8
 If you use Composer, you can install PHP_CodeSniffer system-wide with the following command:
9
 ```bash
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/autoload.php Changed
10
 
1
@@ -204,7 +204,7 @@
2
             }
3
 
4
             // Since PHP 7.4 get_declared_classes() does not guarantee any order, making
5
-            // it impossible to use order to determine which is the parent an which is the child.
6
+            // it impossible to use order to determine which is the parent and which is the child.
7
             // Let's reduce the list of candidates by removing all the classes known to be "parents".
8
             // That way, at the end, only the "main" class just included will remain.
9
             $newClasses = array_reduce(
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Config.php Changed
10
 
1
@@ -85,7 +85,7 @@
2
      *
3
      * @var string
4
      */
5
-    const VERSION = '3.10.2';
6
+    const VERSION = '3.10.3';
7
 
8
     /**
9
      * Package stability; either stable, beta or alpha.
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractPatternSniff.php Changed
13
 
1
@@ -416,6 +416,11 @@
2
         $lastAddedStackPtr = null;
3
         $patternLen        = count($pattern);
4
 
5
+        if (($stackPtr + $patternLen - $patternInfo'listen_pos') > $phpcsFile->numTokens) {
6
+            // Pattern can never match as there are not enough tokens left in the file.
7
+            return false;
8
+        }
9
+
10
         for ($i = $patternInfo'listen_pos'; $i < $patternLen; $i++) {
11
             if (isset($tokens$stackPtr) === false) {
12
                 break;
13
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/ControlStructures/DisallowYodaConditionsStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: value to be asserted must go on the right side of the comparison.">
6
+        <code title="Valid: Value to be asserted must go on the right side of the comparison.">
7
         <!CDATA
8
 if ($test === null) <em>{</em>
9
     $var = 1;
10
 <em>}</em>
11
         >
12
         </code>
13
-        <code title="Invalid: value to be asserted must not be on the left.">
14
+        <code title="Invalid: Value to be asserted must not be on the left.">
15
         <!CDATA
16
 if (null === $test) <em>{</em>
17
     $var = 1;
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Files/InlineHTMLStandard.xml Changed
23
 
1
@@ -1,18 +1,18 @@
2
 <documentation title="Inline HTML">
3
     <standard>
4
     <!CDATA
5
-    Files that contain php code should only have php code and should not have any "inline html".
6
+    Files that contain PHP code should only have PHP code and should not have any "inline html".
7
     >
8
     </standard>
9
     <code_comparison>
10
-        <code title="Valid: A php file with only php code in it.">
11
+        <code title="Valid: A PHP file with only PHP code in it.">
12
         <!CDATA
13
 <?php
14
 $foo = 'bar';
15
 echo $foo . 'baz';
16
         >
17
         </code>
18
-        <code title="Invalid: A php file with html in it outside of the php tags.">
19
+        <code title="Invalid: A PHP file with html in it outside of the PHP tags.">
20
         <!CDATA
21
 <em>some string here</em>
22
 <?php
23
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/MultipleStatementAlignmentStandard.xml Changed
60
 
1
@@ -1,18 +1,18 @@
2
 <documentation title="Aligning Blocks of Assignments">
3
     <standard>
4
     <!CDATA
5
-      There should be one space on either side of an equals sign used to assign a value to a variable. In the case of a block of related assignments, more space may be inserted to promote readability.
6
+    There should be one space on either side of an equals sign used to assign a value to a variable. In the case of a block of related assignments, more space may be inserted to promote readability.
7
     >
8
     </standard>
9
     <code_comparison>
10
-        <code title="Equals signs aligned">
11
+        <code title="Valid: Equals signs aligned.">
12
         <!CDATA
13
 $shortVar        <em>=</em> (1 + 2);
14
 $veryLongVarName <em>=</em> 'string';
15
 $var             <em>=</em> foo($bar, $baz);
16
         >
17
         </code>
18
-        <code title="Not aligned; harder to read">
19
+        <code title="Invalid: Not aligned; harder to read.">
20
         <!CDATA
21
 $shortVar <em>=</em> (1 + 2);
22
 $veryLongVarName <em>=</em> 'string';
23
@@ -22,17 +22,17 @@
24
     </code_comparison>
25
     <standard>
26
     <!CDATA
27
-      When using plus-equals, minus-equals etc. still ensure the equals signs are aligned to one space after the longest variable name.
28
+    When using plus-equals, minus-equals etc. still ensure the equals signs are aligned to one space after the longest variable name.
29
     >
30
     </standard>
31
     <code_comparison>
32
-        <code title="Equals signs aligned; only one space after longest var name">
33
+        <code title="Valid: Equals signs aligned; only one space after longest var name.">
34
         <!CDATA
35
 $shortVar       <em>+= </em>1;
36
 $veryLongVarName<em> = </em>1;
37
         >
38
         </code>
39
-        <code title="Two spaces after longest var name">
40
+        <code title="Invalid: Two spaces after longest var name.">
41
         <!CDATA
42
 $shortVar       <em> += </em>1;
43
 $veryLongVarName<em>  = </em>1;
44
@@ -40,13 +40,13 @@
45
         </code>
46
     </code_comparison>
47
     <code_comparison>
48
-        <code title="Equals signs aligned">
49
+        <code title="Valid: Equals signs aligned.">
50
         <!CDATA
51
 $shortVar       <em>  = </em>1;
52
 $veryLongVarName<em> -= </em>1;
53
         >
54
         </code>
55
-        <code title="Equals signs not aligned">
56
+        <code title="Invalid: Equals signs not aligned.">
57
         <!CDATA
58
 $shortVar       <em> = </em>1;
59
 $veryLongVarName<em> -= </em>1;
60
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Functions/OpeningFunctionBraceBsdAllmanStandard.xml Changed
19
 
1
@@ -5,7 +5,7 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: brace on next line">
6
+        <code title="Valid: Brace on next line.">
7
         <!CDATA
8
 function fooFunction($arg1, $arg2 = '')
9
 <em>{</em>
10
@@ -13,7 +13,7 @@
11
 }
12
         >
13
         </code>
14
-        <code title="Invalid: brace on same line">
15
+        <code title="Invalid: Brace on same line.">
16
         <!CDATA
17
 function fooFunction($arg1, $arg2 = '') <em>{</em>
18
     ...
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Functions/OpeningFunctionBraceKernighanRitchieStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: brace on same line">
6
+        <code title="Valid: Brace on same line.">
7
         <!CDATA
8
 function fooFunction($arg1, $arg2 = '')<em> {</em>
9
     ...
10
 }
11
         >
12
         </code>
13
-        <code title="Invalid: brace on next line">
14
+        <code title="Invalid: Brace on next line.">
15
         <!CDATA
16
 function fooFunction($arg1, $arg2 = '')
17
 <em>{</em>
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/NamingConventions/AbstractClassNamePrefixStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: ">
6
+        <code title="Valid: Class name starts with 'Abstract'.">
7
         <!CDATA
8
 abstract class <em>AbstractBar</em>
9
 {
10
 }
11
         >
12
         </code>
13
-        <code title="Invalid: ">
14
+        <code title="Invalid: Class name does not start with 'Abstract'.">
15
         <!CDATA
16
 abstract class <em>Bar</em>
17
 {
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/NamingConventions/InterfaceNameSuffixStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: ">
6
+        <code title="Valid: Interface name ends on 'Interface'.">
7
         <!CDATA
8
 interface <em>BarInterface</em>
9
 {
10
 }
11
         >
12
         </code>
13
-        <code title="Invalid: ">
14
+        <code title="Invalid: Interface name does not end on 'Interface'.">
15
         <!CDATA
16
 interface <em>Bar</em>
17
 {
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/NamingConventions/TraitNameSuffixStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: ">
6
+        <code title="Valid: Trait name ends on 'Trait'.">
7
         <!CDATA
8
 trait <em>BarTrait</em>
9
 {
10
 }
11
         >
12
         </code>
13
-        <code title="Invalid: ">
14
+        <code title="Invalid: Trait name does not end on 'Trait'.">
15
         <!CDATA
16
 trait <em>Bar</em>
17
 {
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/NamingConventions/UpperCaseConstantNameStandard.xml Changed
24
 
1
@@ -1,11 +1,11 @@
2
 <documentation title="Constant Names">
3
     <standard>
4
     <!CDATA
5
-     Constants should always be all-uppercase, with underscores to separate words.
6
+    Constants should always be all-uppercase, with underscores to separate words.
7
     >
8
     </standard>
9
     <code_comparison>
10
-        <code title="Valid: all uppercase">
11
+        <code title="Valid: All uppercase constant name.">
12
         <!CDATA
13
 define('<em>FOO_CONSTANT</em>', 'foo');
14
 
15
@@ -15,7 +15,7 @@
16
 }
17
         >
18
         </code>
19
-        <code title="Invalid: mixed case">
20
+        <code title="Invalid: Mixed case or lowercase constant name.">
21
         <!CDATA
22
 define('<em>Foo_Constant</em>', 'foo');
23
 
24
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/CharacterBeforePHPOpeningTagStandard.xml Changed
22
 
1
@@ -1,17 +1,17 @@
2
 <documentation title="Opening Tag at Start of File">
3
     <standard>
4
     <!CDATA
5
-    The opening php tag should be the first item in the file.
6
+    The opening PHP tag should be the first item in the file.
7
     >
8
     </standard>
9
     <code_comparison>
10
-        <code title="Valid: A file starting with an opening php tag.">
11
+        <code title="Valid: A file starting with an opening PHP tag.">
12
         <!CDATA
13
 <em></em><?php
14
 echo 'Foo';
15
         >
16
         </code>
17
-        <code title="Invalid: A file with content before the opening php tag.">
18
+        <code title="Invalid: A file with content before the opening PHP tag.">
19
         <!CDATA
20
 <em>Beginning content</em>
21
 <?php
22
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/ClosingPHPTagStandard.xml Changed
15
 
1
@@ -1,11 +1,11 @@
2
 <documentation title="Closing PHP Tags">
3
     <standard>
4
     <!CDATA
5
-    All opening php tags should have a corresponding closing tag.
6
+    All opening PHP tags should have a corresponding closing tag.
7
     >
8
     </standard>
9
     <code_comparison>
10
-        <code title="Valid: A closing tag paired with it's opening tag.">
11
+        <code title="Valid: A closing tag paired with its opening tag.">
12
         <!CDATA
13
 <em><?php</em>
14
 echo 'Foo';
15
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/LowerCaseConstantStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: lowercase constants">
6
+        <code title="Valid: Lowercase constants.">
7
         <!CDATA
8
 if ($var === <em>false</em> || $var === <em>null</em>) {
9
     $var = <em>true</em>;
10
 }
11
         >
12
         </code>
13
-        <code title="Invalid: uppercase constants">
14
+        <code title="Invalid: Uppercase constants.">
15
         <!CDATA
16
 if ($var === <em>FALSE</em> || $var === <em>NULL</em>) {
17
     $var = <em>TRUE</em>;
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/RequireStrictTypesStandard.xml Changed
33
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: strict_types declaration is present.">
6
+        <code title="Valid: `strict_types` declaration is present.">
7
         <!CDATA
8
 declare(<em>strict_types=1</em>);
9
 
10
 declare(encoding='UTF-8', <em>strict_types=0</em>);
11
         >
12
         </code>
13
-        <code title="Invalid: Missing strict_types declaration.">
14
+        <code title="Invalid: Missing `strict_types` declaration.">
15
         <!CDATA
16
 declare(encoding='ISO-8859-1'<em></em>);
17
         >
18
@@ -24,12 +24,12 @@
19
     >
20
     </standard>
21
     <code_comparison>
22
-        <code title="Valid: strict_types declaration is enabled.">
23
+        <code title="Valid: `strict_types` declaration is enabled.">
24
         <!CDATA
25
 declare(strict_types=<em>1</em>);
26
         >
27
         </code>
28
-        <code title="Invalid: strict_types declaration is disabled.">
29
+        <code title="Invalid: `strict_types` declaration is disabled.">
30
         <!CDATA
31
 declare(strict_types=<em>0</em>);
32
         >
33
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/SAPIUsageStandard.xml Changed
10
 
1
@@ -12,7 +12,7 @@
2
 }
3
         >
4
         </code>
5
-        <code title="Invalid: php_sapi_name() is used.">
6
+        <code title="Invalid: Function call to php_sapi_name() is used.">
7
         <!CDATA
8
 if (<em>php_sapi_name()</em> === 'cli') {
9
     echo "Hello, CLI user.";
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/UpperCaseConstantStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: uppercase constants">
6
+        <code title="Valid: Uppercase constants.">
7
         <!CDATA
8
 if ($var === <em>FALSE</em> || $var === <em>NULL</em>) {
9
     $var = <em>TRUE</em>;
10
 }
11
         >
12
         </code>
13
-        <code title="Invalid: lowercase constants">
14
+        <code title="Invalid: Lowercase constants.">
15
         <!CDATA
16
 if ($var === <em>false</em> || $var === <em>null</em>) {
17
     $var = <em>true</em>;
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/VersionControl/SubversionPropertiesStandard.xml Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Subversion Properties">
3
     <standard>
4
     <!CDATA
5
-    All php files in a subversion repository should have the svn:keywords property set to 'Author Id Revision' and the svn:eol-style property set to 'native'.
6
+    All PHP files in a subversion repository should have the svn:keywords property set to 'Author Id Revision' and the svn:eol-style property set to 'native'.
7
     >
8
     </standard>
9
 </documentation>
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/ArbitraryParenthesesSpacingStandard.xml Changed
16
 
1
@@ -5,12 +5,12 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: no spaces on the inside of a set of arbitrary parentheses.">
6
+        <code title="Valid: No spaces on the inside of a set of arbitrary parentheses.">
7
         <!CDATA
8
 $a = (null !== $extra);
9
         >
10
         </code>
11
-        <code title="Invalid: spaces or new lines on the inside of a set of arbitrary parentheses.">
12
+        <code title="Invalid: Spaces or new lines on the inside of a set of arbitrary parentheses.">
13
         <!CDATA
14
 $a = ( null !== $extra );
15
 
16
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/SpreadOperatorSpacingAfterStandard.xml Changed
10
 
1
@@ -17,7 +17,7 @@
2
 }
3
         >
4
         </code>
5
-        <code title="Invalid: space found between the spread operator and the variable/function call it applies to.">
6
+        <code title="Invalid: Space found between the spread operator and the variable/function call it applies to.">
7
         <!CDATA
8
 function bar(<em>... </em>$spread) {
9
     bar(<em>...
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php Changed
18
 
1
@@ -27,15 +27,12 @@
2
     {
3
         $targets  = Tokens::$contextSensitiveKeywords;
4
         $targets += 
5
+            T_ANON_CLASS    => T_ANON_CLASS,
6
             T_CLOSURE       => T_CLOSURE,
7
-            T_EMPTY         => T_EMPTY,
8
             T_ENUM_CASE     => T_ENUM_CASE,
9
-            T_EVAL          => T_EVAL,
10
-            T_ISSET         => T_ISSET,
11
             T_MATCH_DEFAULT => T_MATCH_DEFAULT,
12
             T_PARENT        => T_PARENT,
13
             T_SELF          => T_SELF,
14
-            T_UNSET         => T_UNSET,
15
         ;
16
 
17
         return $targets;
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc Changed
16
 
1
@@ -44,5 +44,14 @@
2
     Case HEARTS;
3
 }
4
 
5
+new Class {};
6
+new clasS extends stdClass {};
7
+new class {};
8
+
9
+if (isset($a) && !empty($a)) { unset($a); }
10
+if (ISSET($a) && !Empty($a)) { UnSeT($a); }
11
+eval('foo');
12
+eVaL('foo');
13
+
14
 __HALT_COMPILER(); // An exception due to phar support.
15
 function
16
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc.fixed Changed
16
 
1
@@ -44,5 +44,14 @@
2
     case HEARTS;
3
 }
4
 
5
+new class {};
6
+new class extends stdClass {};
7
+new class {};
8
+
9
+if (isset($a) && !empty($a)) { unset($a); }
10
+if (isset($a) && !empty($a)) { unset($a); }
11
+eval('foo');
12
+eval('foo');
13
+
14
 __HALT_COMPILER(); // An exception due to phar support.
15
 function
16
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.php Changed
12
 
1
@@ -48,6 +48,10 @@
2
             39 => 2,
3
             42 => 1,
4
             44 => 1,
5
+            47 => 1,
6
+            48 => 1,
7
+            52 => 3,
8
+            54 => 1,
9
         ;
10
 
11
     }//end getErrorList()
12
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Docs/Commenting/FileCommentStandard.xml Changed
57
 
1
@@ -1,7 +1,14 @@
2
 <documentation title="File Comments">
3
     <standard>
4
     <!CDATA
5
-    Files must have a non-empty doc comment.  The short description must be on the second line of the comment.  Each description must have one blank comment line before and after.  There must be one blank line before the tags in the comments.  There must be a category, package, author, license, and link tag.  There may only be one category, package, subpackage, license, version, since and deprecated tag.  The tags must be in the order category, package, subpackage, author, copyright, license, version, link, see, since, and deprecated.  The php version must be specified.
6
+    Files must have a non-empty doc comment.
7
+    The short description must be on the second line of the comment.
8
+    Each description must have one blank comment line before and after.
9
+    There must be one blank line before the tags in the comments.
10
+    There must be a category, package, author, license, and link tag.
11
+    There may only be one category, package, subpackage, license, version, since and deprecated tag.
12
+    The tags must be in the order category, package, subpackage, author, copyright, license, version, link, see, since, and deprecated.
13
+    The PHP version must be specified.
14
     >
15
     </standard>
16
     <code_comparison>
17
@@ -231,16 +238,14 @@
18
  */
19
         >
20
         </code>
21
-        <code title="Invalid: Category and package tags are swapped in order.">
22
+        <code title="Invalid: No PHP version specified.">
23
         <!CDATA
24
 <?php
25
 /**
26
  * Short description here.
27
  *
28
- * PHP version 5
29
- *
30
- * <em>@package</em> Foo_Helpers
31
- * <em>@category</em> Foo
32
+ * @category Foo
33
+ * @package Foo_Helpers
34
  * @author Marty McFly <mmcfly@example.com>
35
  * @copyright 2013-2014 Foo Inc.
36
  * @license MIT License
37
@@ -267,14 +272,16 @@
38
  */
39
         >
40
         </code>
41
-        <code title="Invalid: No php version specified.">
42
+        <code title="Invalid: Category and package tags are swapped in order.">
43
         <!CDATA
44
 <?php
45
 /**
46
  * Short description here.
47
  *
48
- * @category Foo
49
- * @package Foo_Helpers
50
+ * PHP version 5
51
+ *
52
+ * <em>@package</em> Foo_Helpers
53
+ * <em>@category</em> Foo
54
  * @author Marty McFly <mmcfly@example.com>
55
  * @copyright 2013-2014 Foo Inc.
56
  * @license MIT License
57
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Docs/Files/IncludingFileStandard.xml Changed
16
 
1
@@ -10,12 +10,12 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: used as statement">
6
+        <code title="Valid: Used as statement.">
7
         <!CDATA
8
 require_once 'PHP/CodeSniffer.php';
9
         >
10
         </code>
11
-        <code title="Invalid: used as function">
12
+        <code title="Invalid: Used as function.">
13
         <!CDATA
14
 require_once<em>(</em>'PHP/CodeSniffer.php'<em>)</em>;
15
         >
16
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Docs/Functions/FunctionCallSignatureStandard.xml Changed
21
 
1
@@ -1,16 +1,16 @@
2
 <documentation title="Function Calls">
3
     <standard>
4
     <!CDATA
5
-      Functions should be called with no spaces between the function name, the opening parenthesis, and the first parameter; and no space between the last parameter, the closing parenthesis, and the semicolon.
6
+    Functions should be called with no spaces between the function name, the opening parenthesis, and the first parameter; and no space between the last parameter, the closing parenthesis, and the semicolon.
7
     >
8
     </standard>
9
     <code_comparison>
10
-        <code title="Valid: spaces between parameters">
11
+        <code title="Valid: Spaces between parameters.">
12
         <!CDATA
13
 $var = foo($bar, $baz, $quux);
14
         >
15
         </code>
16
-        <code title="Invalid: additional spaces used">
17
+        <code title="Invalid: Additional spaces used.">
18
         <!CDATA
19
 $var = foo<em> </em>(<em> </em>$bar, $baz, $quux<em> </em>)<em> </em>;
20
         >
21
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Docs/Functions/ValidDefaultValueStandard.xml Changed
19
 
1
@@ -5,7 +5,7 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: argument with default value at end of declaration">
6
+        <code title="Valid: Argument with default value at end of declaration.">
7
         <!CDATA
8
 function connect($dsn, <em>$persistent = false</em>)
9
 {
10
@@ -13,7 +13,7 @@
11
 }
12
         >
13
         </code>
14
-        <code title="Invalid: argument with default value at start of declaration">
15
+        <code title="Invalid: Argument with default value at start of declaration.">
16
         <!CDATA
17
 function connect(<em>$persistent = false</em>, $dsn)
18
 {
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Docs/NamingConventions/ValidClassNameStandard.xml Changed
18
 
1
@@ -5,14 +5,14 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Examples of valid class names">
6
+        <code title="Valid: Examples of valid class names.">
7
         <!CDATA
8
 Log
9
 Net_Finger
10
 HTML_Upload_Error
11
         >
12
         </code>
13
-        <code title="Examples of invalid class names">
14
+        <code title="Invalid: Examples of invalid class names.">
15
         <!CDATA
16
 log
17
 NetFinger
18
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Docs/NamingConventions/ValidFunctionNameStandard.xml Changed
19
 
1
@@ -5,7 +5,7 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Examples of valid function names">
6
+        <code title="Valid: Examples of valid function names.">
7
         <!CDATA
8
 connect()
9
 getData()
10
@@ -13,7 +13,7 @@
11
 XML_RPC_serializeData()
12
         >
13
         </code>
14
-        <code title="Examples of invalid function names">
15
+        <code title="Invalid: Examples of invalid function names.">
16
         <!CDATA
17
 Connect()
18
 get_data()
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Docs/NamingConventions/ValidVariableNameStandard.xml Changed
10
 
1
@@ -15,7 +15,7 @@
2
 }
3
         >
4
         </code>
5
-        <code title="Invalid: underscores used on public/protected variables and not used on private variables.">
6
+        <code title="Invalid: Underscores used on public/protected variables and not used on private variables.">
7
         <!CDATA
8
 class Foo
9
 {
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Docs/Files/SideEffectsStandard.xml Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Side Effects">
3
     <standard>
4
     <!CDATA
5
-    A php file should either contain declarations with no side effects, or should just have logic (including side effects) with no declarations.
6
+    A PHP file should either contain declarations with no side effects, or should just have logic (including side effects) with no declarations.
7
     >
8
     </standard>
9
     <code_comparison>
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Docs/Methods/CamelCapsMethodNameStandard.xml Changed
19
 
1
@@ -5,7 +5,7 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: method name in camelCase.">
6
+        <code title="Valid: Method name in camelCase.">
7
         <!CDATA
8
 class Foo
9
 {
10
@@ -15,7 +15,7 @@
11
 }
12
         >
13
         </code>
14
-        <code title="Invalid: method name not in camelCase.">
15
+        <code title="Invalid: Method name not in camelCase.">
16
         <!CDATA
17
 class Foo
18
 {
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Functions/NullableTypeDeclarationStandard.xml Changed
36
 
1
@@ -5,7 +5,7 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: no whitespace used.">
6
+        <code title="Valid: No whitespace used.">
7
         <!CDATA
8
 public function functionName(
9
     ?string $arg1,
10
@@ -14,7 +14,7 @@
11
 }
12
         >
13
         </code>
14
-        <code title="Invalid: superfluous whitespace used.">
15
+        <code title="Invalid: Superfluous whitespace used.">
16
         <!CDATA
17
 public function functionName(
18
     ? string $arg1,
19
@@ -25,14 +25,14 @@
20
         </code>
21
     </code_comparison>
22
     <code_comparison>
23
-        <code title="Valid: no unexpected characters.">
24
+        <code title="Valid: No unexpected characters.">
25
         <!CDATA
26
 public function foo(?int $arg): ?string
27
 {
28
 }
29
         >
30
         </code>
31
-        <code title="Invalid: unexpected characters used.">
32
+        <code title="Invalid: Unexpected characters used.">
33
         <!CDATA
34
 public function bar(? /* comment */ int $arg): ?
35
     // nullable for a reason
36
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/ControlStructureSpacingSniff.php Changed
21
 
1
@@ -101,7 +101,19 @@
2
             $error = 'The first expression of a multi-line control structure must be on the line after the opening parenthesis';
3
             $fix   = $phpcsFile->addFixableError($error, $next, 'FirstExpressionLine');
4
             if ($fix === true) {
5
+                $phpcsFile->fixer->beginChangeset();
6
+                if ($tokens$next'line' > ($tokens$parenOpener'line' + 1)) {
7
+                    for ($i = ($parenOpener + 1); $i < $next; $i++) {
8
+                        if ($tokens$next'line' === $tokens$i'line') {
9
+                            break;
10
+                        }
11
+
12
+                        $phpcsFile->fixer->replaceToken($i, '');
13
+                    }
14
+                }
15
+
16
                 $phpcsFile->fixer->addNewline($parenOpener);
17
+                $phpcsFile->fixer->endChangeset();
18
             }
19
         }
20
 
21
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/ControlStructureSpacingUnitTest.inc Changed
38
 
1
@@ -98,3 +98,36 @@
2
   $expr3) {
3
       // structure body
4
 };
5
+
6
+// Ensure the sniff handles too many newlines (not just too few).
7
+for (
8
+
9
+
10
+    $i = 0;
11
+    $i < 10;
12
+    $i++
13
+
14
+
15
+) {}
16
+
17
+// Ensure the sniff does not remove indentation whitespace when comments are involved.
18
+for (
19
+
20
+
21
+    // comment.
22
+    $i = 0;
23
+    $i < 10;
24
+    $i++
25
+) {}
26
+
27
+// The sniff treats a comment (ie non-whitespace) as content, but only at the
28
+// start / end of the control structure. So the inner-whitespace here is
29
+// intentionally ignored by this sniff. Additionally, the comment is not indented
30
+// by this sniff when fixing.
31
+for (// comment.
32
+
33
+
34
+    $i = 0;
35
+    $i < 10;
36
+    $i++
37
+) {}
38
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/ControlStructureSpacingUnitTest.inc.fixed Changed
33
 
1
@@ -101,3 +101,31 @@
2
 ) {
3
       // structure body
4
 };
5
+
6
+// Ensure the sniff handles too many newlines (not just too few).
7
+for (
8
+    $i = 0;
9
+    $i < 10;
10
+    $i++
11
+) {}
12
+
13
+// Ensure the sniff does not remove indentation whitespace when comments are involved.
14
+for (
15
+    // comment.
16
+    $i = 0;
17
+    $i < 10;
18
+    $i++
19
+) {}
20
+
21
+// The sniff treats a comment (ie non-whitespace) as content, but only at the
22
+// start / end of the control structure. So the inner-whitespace here is
23
+// intentionally ignored by this sniff. Additionally, the comment is not indented
24
+// by this sniff when fixing.
25
+for (
26
+// comment.
27
+
28
+
29
+    $i = 0;
30
+    $i < 10;
31
+    $i++
32
+) {}
33
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/ControlStructureSpacingUnitTest.php Changed
50
 
1
@@ -31,25 +31,29 @@
2
     public function getErrorList()
3
     {
4
         return 
5
-            2  => 2,
6
-            16 => 1,
7
-            17 => 1,
8
-            18 => 1,
9
-            22 => 1,
10
-            23 => 1,
11
-            32 => 1,
12
-            33 => 1,
13
-            34 => 1,
14
-            37 => 1,
15
-            38 => 1,
16
-            39 => 1,
17
-            48 => 2,
18
-            58 => 1,
19
-            59 => 1,
20
-            92 => 1,
21
-            96 => 1,
22
-            97 => 1,
23
-            98 => 2,
24
+            2   => 2,
25
+            16  => 1,
26
+            17  => 1,
27
+            18  => 1,
28
+            22  => 1,
29
+            23  => 1,
30
+            32  => 1,
31
+            33  => 1,
32
+            34  => 1,
33
+            37  => 1,
34
+            38  => 1,
35
+            39  => 1,
36
+            48  => 2,
37
+            58  => 1,
38
+            59  => 1,
39
+            92  => 1,
40
+            96  => 1,
41
+            97  => 1,
42
+            98  => 2,
43
+            106 => 1,
44
+            111 => 1,
45
+            117 => 1,
46
+            127 => 1,
47
         ;
48
 
49
     }//end getErrorList()
50
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Methods/MethodDeclarationStandard.xml Changed
10
 
1
@@ -37,7 +37,7 @@
2
 }
3
         >
4
         </code>
5
-        <code title="Invalid: static keyword used before visibility and final used after.">
6
+        <code title="Invalid: `static` keyword used before visibility and final used after.">
7
         <!CDATA
8
 class Foo
9
 {
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Arrays/ArrayDeclarationStandard.xml Changed
88
 
1
@@ -10,12 +10,12 @@
2
     >
3
     </standard>
4
     <code_comparison>
5
-        <code title="Valid: array keyword lowercase">
6
+        <code title="Valid: Array keyword lowercase.">
7
         <!CDATA
8
 $array = array('val1', 'val2');
9
         >
10
         </code>
11
-        <code title="Invalid: first letter capitalised">
12
+        <code title="Invalid: First letter capitalised.">
13
         <!CDATA
14
 $array = Array('val1', 'val2');
15
         >
16
@@ -27,7 +27,7 @@
17
     >
18
     </standard>
19
     <code_comparison>
20
-        <code title="Valid: first key on second line">
21
+        <code title="Valid: First key on second line.">
22
         <!CDATA
23
 $array = array(
24
           'key1' => 'value1',
25
@@ -35,7 +35,7 @@
26
          );
27
         >
28
         </code>
29
-        <code title="Invalid: first key on same line">
30
+        <code title="Invalid: First key on same line.">
31
         <!CDATA
32
 $array = array('key1' => 'value1',
33
           'key2' => 'value2',
34
@@ -49,7 +49,7 @@
35
     >
36
     </standard>
37
     <code_comparison>
38
-        <code title="Valid: aligned correctly">
39
+        <code title="Valid: Aligned correctly.">
40
         <!CDATA
41
 $array = array(
42
          <em> </em>'key1' => 'value1',
43
@@ -57,7 +57,7 @@
44
          );
45
         >
46
         </code>
47
-        <code title="Invalid: keys and parenthesis aligned incorrectly">
48
+        <code title="Invalid: Keys and parenthesis aligned incorrectly.">
49
         <!CDATA
50
 $array = array(
51
          <em>'</em>key1' => 'value1',
52
@@ -72,7 +72,7 @@
53
     >
54
     </standard>
55
     <code_comparison>
56
-        <code title="Valid: keys and values aligned">
57
+        <code title="Valid: Keys and values aligned.">
58
         <!CDATA
59
 $array = array(
60
           'keyTen'<em>    </em>=> 'ValueTen',
61
@@ -80,7 +80,7 @@
62
          );
63
         >
64
         </code>
65
-        <code title="Invalid: alignment incorrect">
66
+        <code title="Invalid: Alignment incorrect.">
67
         <!CDATA
68
 $array = array(
69
           'keyTen'<em> </em>=> 'ValueTen',
70
@@ -95,7 +95,7 @@
71
     >
72
     </standard>
73
     <code_comparison>
74
-        <code title="Valid: comma after each value">
75
+        <code title="Valid: Comma after each value.">
76
         <!CDATA
77
 $array = array(
78
           'key1' => 'value1',
79
@@ -104,7 +104,7 @@
80
          );
81
         >
82
         </code>
83
-        <code title="Invalid: no comma after last value">
84
+        <code title="Invalid: No comma after last value.">
85
         <!CDATA
86
 $array = array(
87
           'key1' => 'value1',
88
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/LowercaseClassKeywordsStandard.xml Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Lowercase Class Keywords">
3
     <standard>
4
     <!CDATA
5
-    The php keywords class, interface, trait, extends, implements, abstract, final, var, and const should be lowercase.
6
+    The PHP keywords class, interface, trait, extends, implements, abstract, final, var, and const should be lowercase.
7
     >
8
     </standard>
9
     <code_comparison>
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/LowercaseDeclarationStandard.xml Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Lowercase Control Structure Keywords">
3
     <standard>
4
     <!CDATA
5
-    The php keywords if, else, elseif, foreach, for, do, switch, while, try, and catch should be lowercase.
6
+    The PHP keywords if, else, elseif, foreach, for, do, switch, while, try, and catch should be lowercase.
7
     >
8
     </standard>
9
     <code_comparison>
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/FunctionDuplicateArgumentStandard.xml Deleted
25
 
1
@@ -1,23 +0,0 @@
2
-<documentation title="Lowercase Built-In functions">
3
-    <standard>
4
-    <!CDATA
5
-    All PHP built-in functions should be lowercased when called.
6
-    >
7
-    </standard>
8
-    <code_comparison>
9
-        <code title="Valid: Lowercase function call.">
10
-        <!CDATA
11
-if (<em>isset</em>($foo)) {
12
-    echo $foo;
13
-}
14
-        >
15
-        </code>
16
-        <code title="Invalid: isset not called as lowercase.">
17
-        <!CDATA
18
-if (<em>isSet</em>($foo)) {
19
-    echo $foo;
20
-}
21
-        >
22
-        </code>
23
-    </code_comparison>
24
-</documentation>
25
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/LowercaseFunctionKeywordsStandard.xml Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Lowercase Function Keywords">
3
     <standard>
4
     <!CDATA
5
-    The php keywords function, public, private, protected, and static should be lowercase.
6
+    The PHP keywords function, public, private, protected, and static should be lowercase.
7
     >
8
     </standard>
9
     <code_comparison>
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Language Construct Whitespace">
3
     <standard>
4
     <!CDATA
5
-    The php constructs echo, print, return, include, include_once, require, require_once, and new should have one space after them.
6
+    The PHP constructs echo, print, return, include, include_once, require, require_once, and new should have one space after them.
7
     >
8
     </standard>
9
     <code_comparison>
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeKeywordSpacingStandard.xml Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Scope Keyword Spacing">
3
     <standard>
4
     <!CDATA
5
-    The php keywords static, public, private, and protected should have one space after them.
6
+    The PHP keywords static, public, private, and protected should have one space after them.
7
     >
8
     </standard>
9
     <code_comparison>
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php Changed
28
 
1
@@ -221,15 +221,23 @@
2
      */
3
     protected function getNamespaceOfScope(File $phpcsFile, $stackPtr)
4
     {
5
-        $namespace            = '\\';
6
-        $namespaceDeclaration = $phpcsFile->findPrevious(T_NAMESPACE, $stackPtr);
7
+        $namespace = '\\';
8
+        $tokens    = $phpcsFile->getTokens();
9
+
10
+        while (($namespaceDeclaration = $phpcsFile->findPrevious(T_NAMESPACE, $stackPtr)) !== false) {
11
+            $nextNonEmpty = $phpcsFile->findNext(Tokens::$emptyTokens, ($namespaceDeclaration + 1), null, true);
12
+            if ($tokens$nextNonEmpty'code' === T_NS_SEPARATOR) {
13
+                // Namespace operator. Ignore.
14
+                $stackPtr = ($namespaceDeclaration - 1);
15
+                continue;
16
+            }
17
 
18
-        if ($namespaceDeclaration !== false) {
19
             $endOfNamespaceDeclaration = $phpcsFile->findNext(T_SEMICOLON, T_OPEN_CURLY_BRACKET, T_CLOSE_TAG, $namespaceDeclaration);
20
             $namespace = $this->getDeclarationNameWithNamespace(
21
                 $phpcsFile->getTokens(),
22
                 ($endOfNamespaceDeclaration - 1)
23
             );
24
+            break;
25
         }
26
 
27
         return $namespace;
28
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php Changed
30
 
1
@@ -354,16 +354,23 @@
2
             }
3
 
4
             if ($tokens$after'code' === T_OPEN_PARENTHESIS) {
5
+                if (isset($tokens$after'parenthesis_closer') === false) {
6
+                    // Live coding/parse error. Ignore.
7
+                    return;
8
+                }
9
+
10
                 $after = $tokens$after'parenthesis_closer';
11
                 continue;
12
             }
13
 
14
-            if ($tokens$after'code' === T_OPEN_SQUARE_BRACKET) {
15
-                $after = $tokens$after'bracket_closer';
16
-                continue;
17
-            }
18
+            if (($tokens$after'code' === T_OPEN_SQUARE_BRACKET
19
+                || $tokens$after'code' === T_OPEN_SHORT_ARRAY)
20
+            ) {
21
+                if (isset($tokens$after'bracket_closer') === false) {
22
+                    // Live coding/parse error. Ignore.
23
+                    return;
24
+                }
25
 
26
-            if ($tokens$after'code' === T_OPEN_SHORT_ARRAY) {
27
                 $after = $tokens$after'bracket_closer';
28
                 continue;
29
             }
30
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php Changed
25
 
1
@@ -227,16 +227,21 @@
2
         // Each line between the brackets should contain a single parameter.
3
         for ($i = ($openBracket + 1); $i < $closeBracket; $i++) {
4
             // Skip brackets, like arrays, as they can contain commas.
5
-            if (isset($tokens$i'bracket_opener') === true) {
6
+            if (isset($tokens$i'bracket_closer') === true) {
7
                 $i = $tokens$i'bracket_closer';
8
                 continue;
9
             }
10
 
11
-            if (isset($tokens$i'parenthesis_opener') === true) {
12
+            if (isset($tokens$i'parenthesis_closer') === true) {
13
                 $i = $tokens$i'parenthesis_closer';
14
                 continue;
15
             }
16
 
17
+            if (isset($tokens$i'attribute_closer') === true) {
18
+                $i = $tokens$i'attribute_closer';
19
+                continue;
20
+            }
21
+
22
             if ($tokens$i'code' !== T_COMMA) {
23
                 continue;
24
             }
25
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php Changed
39
 
1
@@ -105,6 +105,13 @@
2
             }
3
 
4
             if ($tokens$varToken'code' === T_VARIABLE) {
5
+                $prevNonEmpty = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($varToken - 1), null, true);
6
+                if ($tokens$prevNonEmpty'code' === T_OBJECT_OPERATOR) {
7
+                    // Dynamic property access, the real "start" variable still needs to be found.
8
+                    $varToken = $prevNonEmpty;
9
+                    continue;
10
+                }
11
+
12
                 // We found our variable.
13
                 break;
14
             }
15
@@ -119,15 +126,14 @@
16
 
17
         $allowed = Tokens::$emptyTokens;
18
 
19
-        $allowedT_STRING          = T_STRING;
20
-        $allowedT_NS_SEPARATOR    = T_NS_SEPARATOR;
21
-        $allowedT_DOUBLE_COLON    = T_DOUBLE_COLON;
22
-        $allowedT_OBJECT_OPERATOR = T_OBJECT_OPERATOR;
23
-        $allowedT_ASPERAND        = T_ASPERAND;
24
-        $allowedT_DOLLAR          = T_DOLLAR;
25
-        $allowedT_SELF            = T_SELF;
26
-        $allowedT_PARENT          = T_PARENT;
27
-        $allowedT_STATIC          = T_STATIC;
28
+        $allowedT_STRING       = T_STRING;
29
+        $allowedT_NS_SEPARATOR = T_NS_SEPARATOR;
30
+        $allowedT_DOUBLE_COLON = T_DOUBLE_COLON;
31
+        $allowedT_ASPERAND     = T_ASPERAND;
32
+        $allowedT_DOLLAR       = T_DOLLAR;
33
+        $allowedT_SELF         = T_SELF;
34
+        $allowedT_PARENT       = T_PARENT;
35
+        $allowedT_STATIC       = T_STATIC;
36
 
37
         $varToken = $phpcsFile->findPrevious($allowed, ($varToken - 1), null, true);
38
 
39
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php Changed
28
 
1
@@ -379,10 +379,14 @@
2
         }
3
 
4
         // Check that there is one, and only one space at the start of the statement.
5
-        $leadingSpace = 0;
6
-        if ($tokens$stackPtr'code' === T_OPEN_TAG) {
7
+        $leadingSpace  = 0;
8
+        $isLongOpenTag = false;
9
+        if ($tokens$stackPtr'code' === T_OPEN_TAG
10
+            && stripos($tokens$stackPtr'content', '<?php') === 0
11
+        ) {
12
             // The long open tag token in a single line tag set always contains a single space after it.
13
-            $leadingSpace = 1;
14
+            $leadingSpace  = 1;
15
+            $isLongOpenTag = true;
16
         }
17
 
18
         if ($tokens($stackPtr + 1)'code' === T_WHITESPACE) {
19
@@ -394,7 +398,7 @@
20
             $data  = $leadingSpace;
21
             $fix   = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingAfterOpen', $data);
22
             if ($fix === true) {
23
-                if ($tokens$stackPtr'code' === T_OPEN_TAG) {
24
+                if ($isLongOpenTag === true) {
25
                     $phpcsFile->fixer->replaceToken(($stackPtr + 1), '');
26
                 } else if ($tokens($stackPtr + 1)'code' === T_WHITESPACE) {
27
                     // Short open tag with too much whitespace.
28
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.inc Changed
19
 
1
@@ -183,3 +183,17 @@
2
         \EndsIn\CloseTag\Baz::something();
3
     }
4
 }
5
+
6
+// Issue PHPCSStandards/PHP_CodeSniffer#553.
7
+namespace TestMe;
8
+
9
+namespace\functionCall();
10
+namespace\anotherFunctionCall();
11
+
12
+class SelfMemberReference
13
+{
14
+    public function falseNegative()
15
+    {
16
+        $testResults = \TestMe\SelfMemberReference::test();
17
+    }
18
+}
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.inc.fixed Changed
19
 
1
@@ -171,3 +171,17 @@
2
         self::something();
3
     }
4
 }
5
+
6
+// Issue PHPCSStandards/PHP_CodeSniffer#553.
7
+namespace TestMe;
8
+
9
+namespace\functionCall();
10
+namespace\anotherFunctionCall();
11
+
12
+class SelfMemberReference
13
+{
14
+    public function falseNegative()
15
+    {
16
+        $testResults = self::test();
17
+    }
18
+}
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.php Changed
9
 
1
@@ -47,6 +47,7 @@
2
             162 => 1,
3
             171 => 1,
4
             183 => 1,
5
+            197 => 1,
6
         ;
7
 
8
     }//end getErrorList()
9
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.1.inc Changed
2
 
1
(renamed from vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc)
2
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.1.inc.fixed Changed
2
 
1
(renamed from vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc.fixed)
2
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.2.inc Added
9
 
1
@@ -0,0 +1,7 @@
2
+<?php
3
+
4
+// Intentional parse error. This has to be the last (and only) test in the file.
5
+// Live coding test. The sniff should stay silent.
6
+class ParseErrors {
7
+    const A|(B PARSE_ERROR = null;
8
+}
9
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.3.inc Added
7
 
1
@@ -0,0 +1,5 @@
2
+<?php
3
+
4
+// Intentional parse error. This has to be the last (and only) test in the file.
5
+// Live coding test. The sniff should stay silent.
6
+$a = 10, 20 + 
7
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.php Changed
10
 
1
@@ -33,7 +33,7 @@
2
     public function getErrorList($testFile='')
3
     {
4
         switch ($testFile) {
5
-        case 'OperatorBracketUnitTest.inc':
6
+        case 'OperatorBracketUnitTest.1.inc':
7
             return 
8
                 3   => 1,
9
                 6   => 1,
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.1.inc Changed
2
 
1
(renamed from vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.inc)
2
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.2.inc Added
7
 
1
@@ -0,0 +1,5 @@
2
+<?php
3
+
4
+// Intentional parse error. This has to be the last (and only) test in the file.
5
+// Live coding test. The sniff should stay silent.
6
+function
7
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.3.inc Added
7
 
1
@@ -0,0 +1,5 @@
2
+<?php
3
+
4
+// Intentional parse error. This has to be the last (and only) test in the file.
5
+// Live coding test. The sniff should stay silent.
6
+function // Comment.
7
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.php Changed
29
 
1
@@ -26,14 +26,22 @@
2
      * The key of the array should represent the line number and the value
3
      * should represent the number of errors that should occur on that line.
4
      *
5
+     * @param string $testFile The name of the file being tested.
6
+     *
7
      * @return array<int, int>
8
      */
9
-    public function getErrorList()
10
+    public function getErrorList($testFile='')
11
     {
12
-        return 
13
-            55 => 1,
14
-            68 => 1,
15
-        ;
16
+        switch ($testFile) {
17
+        case 'FunctionDeclarationUnitTest.1.inc':
18
+            return 
19
+                55 => 1,
20
+                68 => 1,
21
+            ;
22
+
23
+        default:
24
+            return ;
25
+        }//end switch
26
 
27
     }//end getErrorList()
28
 
29
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc Changed
57
 
1
@@ -302,3 +302,55 @@
2
     ) {
3
     }
4
 }
5
+
6
+// Issue #608 - multi-attributes are not handled correctly.
7
+function ParamWithMultiAttributeOnSameLine(
8
+    #AttributeA, AttributeB string $param,
9
+) {
10
+}
11
+
12
+function ParamWithMultiAttributeOnSameLineWithParamsShouldNotBeSeenAsMultipleFnParams(
13
+    #AttributeA(10, 'test'), AttributeB(1, 2, 3,) string $param,
14
+) {
15
+}
16
+
17
+function ParamWithMultiAttributeOnSameLine(
18
+    #AttributeA, AttributeB string $paramA, int $paramB
19
+) {
20
+}
21
+
22
+function ParamWithMultiAttributeOnSameLineWithParamsShouldNotBeSeenAsMultipleFnParams(
23
+    #AttributeA(10, 'test'), AttributeB(1, 2, 3,) string $param, int $paramB
24
+) {
25
+}
26
+
27
+function ParamWithAttributeOnOwnLineShouldNotBeSeenAsMultipleFnParams(
28
+    #Attribute
29
+    string $param,
30
+) {
31
+}
32
+
33
+function ParamWithMultipleAttributesOnOwnLineShouldNotBeSeenAsMultipleFnParams(
34
+    #AttributeA
35
+    #AttributeB
36
+    string $param,
37
+) {
38
+}
39
+
40
+function ParamWithAttributeOnOwnLineWithParamsShouldNotBeSeenAsMultipleFnParamse(
41
+    #Attribute(10, 20)
42
+    string $param,
43
+) {
44
+}
45
+
46
+function ParamWithMultiAttributeOnOwnLineShouldNotBeSeenAsMultipleFnParams(
47
+    #AttributeA, AttributeB
48
+    string $param,
49
+) {
50
+}
51
+
52
+function ParamWithMultiAttributeOnOwnLineWithParamsShouldNotBeSeenAsMultipleFnParams(
53
+    #AttributeA(10, 'test'), AttributeB(1, 2, 3,)
54
+    string $param,
55
+) {
56
+}
57
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc.fixed Changed
59
 
1
@@ -314,3 +314,57 @@
2
     ) {
3
     }
4
 }
5
+
6
+// Issue #608 - multi-attributes are not handled correctly.
7
+function ParamWithMultiAttributeOnSameLine(
8
+    #AttributeA, AttributeB string $param,
9
+) {
10
+}
11
+
12
+function ParamWithMultiAttributeOnSameLineWithParamsShouldNotBeSeenAsMultipleFnParams(
13
+    #AttributeA(10, 'test'), AttributeB(1, 2, 3,) string $param,
14
+) {
15
+}
16
+
17
+function ParamWithMultiAttributeOnSameLine(
18
+    #AttributeA, AttributeB string $paramA,
19
+    int $paramB
20
+) {
21
+}
22
+
23
+function ParamWithMultiAttributeOnSameLineWithParamsShouldNotBeSeenAsMultipleFnParams(
24
+    #AttributeA(10, 'test'), AttributeB(1, 2, 3,) string $param,
25
+    int $paramB
26
+) {
27
+}
28
+
29
+function ParamWithAttributeOnOwnLineShouldNotBeSeenAsMultipleFnParams(
30
+    #Attribute
31
+    string $param,
32
+) {
33
+}
34
+
35
+function ParamWithMultipleAttributesOnOwnLineShouldNotBeSeenAsMultipleFnParams(
36
+    #AttributeA
37
+    #AttributeB
38
+    string $param,
39
+) {
40
+}
41
+
42
+function ParamWithAttributeOnOwnLineWithParamsShouldNotBeSeenAsMultipleFnParamse(
43
+    #Attribute(10, 20)
44
+    string $param,
45
+) {
46
+}
47
+
48
+function ParamWithMultiAttributeOnOwnLineShouldNotBeSeenAsMultipleFnParams(
49
+    #AttributeA, AttributeB
50
+    string $param,
51
+) {
52
+}
53
+
54
+function ParamWithMultiAttributeOnOwnLineWithParamsShouldNotBeSeenAsMultipleFnParams(
55
+    #AttributeA(10, 'test'), AttributeB(1, 2, 3,)
56
+    string $param,
57
+) {
58
+}
59
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.php Changed
10
 
1
@@ -75,6 +75,8 @@
2
                 252 => 1,
3
                 253 => 1,
4
                 254 => 1,
5
+                318 => 1,
6
+                323 => 1,
7
             ;
8
         } else {
9
             $errors = 
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowMultipleAssignmentsUnitTest.1.inc Changed
19
 
1
@@ -134,3 +134,17 @@
2
 <?= $a * $b ?>
3
 <?= $c, $d = explode(',', '1,2');
4
 ?>
5
+<?php
6
+
7
+// Issue #598.
8
+$filtered_results->field = $result;
9
+$filtered_results->$field = $result;
10
+$filtered_results->$row->field = $result;
11
+$filtered_results->$row->$field = $result;
12
+
13
+$filtered_results $i ->field = $result;
14
+$filtered_results $i ->$field = $result;
15
+$filtered_results $i ->$row->field = $result;
16
+$filtered_results $i ->$row->$field = $result;
17
+$filtered_results $i ->$row0->field = $result;
18
+$filtered_results $i ->$row$j->$field = $result;
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.1.inc Changed
12
 
1
@@ -265,6 +265,10 @@
2
                 echo 'the PHP tag is incorrectly indented as the indent is more than 4 different from the indent of the previous code';
3
     ?>
4
 
5
+<?PHP echo 'Uppercase long open tag'; ?>
6
+
7
+<?PHP  echo 'Extra space after uppercase long open tag '; ?>
8
+
9
 <?php
10
 // This test case file MUST always end with an unclosed long open PHP tag (with this comment) to prevent
11
 // the tests running into the "last PHP closing tag excepted" condition breaking tests.
12
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.1.inc.fixed Changed
12
 
1
@@ -277,6 +277,10 @@
2
         echo 'the PHP tag is incorrectly indented as the indent is more than 4 different from the indent of the previous code';
3
     ?>
4
 
5
+<?PHP echo 'Uppercase long open tag'; ?>
6
+
7
+<?PHP echo 'Extra space after uppercase long open tag '; ?>
8
+
9
 <?php
10
 // This test case file MUST always end with an unclosed long open PHP tag (with this comment) to prevent
11
 // the tests running into the "last PHP closing tag excepted" condition breaking tests.
12
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.24.inc Added
27
 
1
@@ -0,0 +1,25 @@
2
+<?
3
+
4
+// This test case file MUST always start with a open PHP tag set (with this comment) to prevent
5
+// the tests running into the "first PHP open tag excepted" condition breaking the tests.
6
+// Tests related to that "first PHP open tag excepted" condition should go in separate files.
7
+
8
+// This test case file only deals with SHORT OPEN TAGS.
9
+
10
+?>
11
+
12
+<?
13
+/* Contrary to the long open tag token, the short open tag token does not contain a space after the
14
+   tag and the sniff should handle it accordingly. The test below protects against regressions
15
+   related to https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/588. */
16
+?>
17
+<? echo 'one space after short open tag'; ?>
18
+
19
+<?  echo 'two spaces after short open tag'; ?>
20
+
21
+<?echo 'without space after short open tag'; ?>
22
+
23
+<?
24
+// This test case file MUST always end with an unclosed open PHP tag (with this comment) to prevent
25
+// the tests running into the "last PHP closing tag excepted" condition breaking tests.
26
+// Tests related to that "last PHP closing tag excepted" condition should go in separate files.
27
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.24.inc.fixed Added
27
 
1
@@ -0,0 +1,25 @@
2
+<?
3
+
4
+// This test case file MUST always start with a open PHP tag set (with this comment) to prevent
5
+// the tests running into the "first PHP open tag excepted" condition breaking the tests.
6
+// Tests related to that "first PHP open tag excepted" condition should go in separate files.
7
+
8
+// This test case file only deals with SHORT OPEN TAGS.
9
+
10
+?>
11
+
12
+<?
13
+/* Contrary to the long open tag token, the short open tag token does not contain a space after the
14
+   tag and the sniff should handle it accordingly. The test below protects against regressions
15
+   related to https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/588. */
16
+?>
17
+<? echo 'one space after short open tag'; ?>
18
+
19
+<? echo 'two spaces after short open tag'; ?>
20
+
21
+<? echo 'without space after short open tag'; ?>
22
+
23
+<?
24
+// This test case file MUST always end with an unclosed open PHP tag (with this comment) to prevent
25
+// the tests running into the "last PHP closing tag excepted" condition breaking tests.
26
+// Tests related to that "last PHP closing tag excepted" condition should go in separate files.
27
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.php Changed
26
 
1
@@ -100,6 +100,7 @@
2
                 258 => 1,
3
                 263 => 1,
4
                 264 => 1,
5
+                270 => 1,
6
             ;
7
 
8
         case 'EmbeddedPhpUnitTest.2.inc':
9
@@ -190,6 +191,16 @@
10
                 22 => 2,
11
             ;
12
 
13
+        case 'EmbeddedPhpUnitTest.24.inc':
14
+            $shortOpenTagDirective = (bool) ini_get('short_open_tag');
15
+            if ($shortOpenTagDirective === true) {
16
+                return 
17
+                    18 => 1,
18
+                    20 => 1,
19
+                ;
20
+            }
21
+            return ;
22
+
23
         default:
24
             return ;
25
         }//end switch
26
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Docs/Files/ClosingTagStandard.xml Changed
19
 
1
@@ -1,7 +1,7 @@
2
 <documentation title="Closing PHP Tags">
3
     <standard>
4
     <!CDATA
5
-    Files should not have closing php tags.
6
+    Files should not have closing PHP tags.
7
     >
8
     </standard>
9
     <code_comparison>
10
@@ -11,7 +11,7 @@
11
 $var = 1;
12
         >
13
         </code>
14
-        <code title="Invalid: A closing php tag is included at the end of the file.">
15
+        <code title="Invalid: A closing PHP tag is included at the end of the file.">
16
         <!CDATA
17
 <?php
18
 $var = 1;
19
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Tokenizers/PHP.php Changed
10
 
1
@@ -737,7 +737,7 @@
2
             }
3
 
4
             /*
5
-                Close an open "inside constant declaration" marker when no keyword convertion was needed.
6
+                Close an open "inside constant declaration" marker when no keyword conversion was needed.
7
             */
8
 
9
             if ($insideConstDeclaration === true
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Tokenizers/Tokenizer.php Changed
10
 
1
@@ -193,6 +193,8 @@
2
             T_DOC_COMMENT_STRING       => true,
3
             T_CONSTANT_ENCAPSED_STRING => true,
4
             T_DOUBLE_QUOTED_STRING     => true,
5
+            T_START_HEREDOC            => true,
6
+            T_START_NOWDOC             => true,
7
             T_HEREDOC                  => true,
8
             T_NOWDOC                   => true,
9
             T_END_HEREDOC              => true,
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/src/Util/Common.php Changed
10
 
1
@@ -420,7 +420,7 @@
2
      */
3
     public static function isUnderscoreName($string)
4
     {
5
-        // If there are space in the name, it can't be valid.
6
+        // If there is whitespace in the name, it can't be valid.
7
         if (strpos($string, ' ') !== false) {
8
             return false;
9
         }
10
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/ConfigDouble.php Changed
24
 
1
@@ -73,6 +73,22 @@
2
 
3
 
4
     /**
5
+     * Ensures the static properties in the Config class are reset to their default values
6
+     * when the ConfigDouble is no longer used.
7
+     *
8
+     * @return void
9
+     */
10
+    public function __destruct()
11
+    {
12
+        $this->setStaticConfigProperty('overriddenDefaults', );
13
+        $this->setStaticConfigProperty('executablePaths', );
14
+        $this->setStaticConfigProperty('configData', null);
15
+        $this->setStaticConfigProperty('configDataFile', null);
16
+
17
+    }//end __destruct()
18
+
19
+
20
+    /**
21
      * Sets the command line values and optionally prevents a file system search for a custom ruleset.
22
      *
23
      * @param array<string> $args An array of command line arguments to set.
24
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/AbstractMethodUnitTest.php Changed
35
 
1
@@ -81,6 +81,33 @@
2
 
3
 
4
     /**
5
+     * Clean up after finished test by resetting all static properties on the class to their default values.
6
+     *
7
+     * Note: This is a PHPUnit cross-version compatible {@see \PHPUnit\Framework\TestCase::tearDownAfterClass()}
8
+     * method.
9
+     *
10
+     * @afterClass
11
+     *
12
+     * @return void
13
+     */
14
+    public static function reset()
15
+    {
16
+        // Explicitly trigger __destruct() on the ConfigDouble to reset the Config statics.
17
+        // The explicit method call prevents potential stray test-local references to the $config object
18
+        // preventing the destructor from running the clean up (which without stray references would be
19
+        // automagically triggered when `self::$phpcsFile` is reset, but we can't definitively rely on that).
20
+        if (isset(self::$phpcsFile) === true) {
21
+            self::$phpcsFile->config->__destruct();
22
+        }
23
+
24
+        self::$fileExtension = 'inc';
25
+        self::$tabWidth      = 4;
26
+        self::$phpcsFile     = null;
27
+
28
+    }//end reset()
29
+
30
+
31
+    /**
32
      * Get the token pointer for a target token based on a specific comment found on the line before.
33
      *
34
      * Note: the test delimiter comment MUST start with "/* test" to allow this function to
35
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/Filters/AbstractFilterTestCase.php Changed
31
 
1
@@ -52,6 +52,29 @@
2
 
3
 
4
     /**
5
+     * Clean up after finished test by resetting all static properties on the Config class to their default values.
6
+     *
7
+     * Note: This is a PHPUnit cross-version compatible {@see \PHPUnit\Framework\TestCase::tearDownAfterClass()}
8
+     * method.
9
+     *
10
+     * @afterClass
11
+     *
12
+     * @return void
13
+     */
14
+    public static function reset()
15
+    {
16
+        // Explicitly trigger __destruct() on the ConfigDouble to reset the Config statics.
17
+        // The explicit method call prevents potential stray test-local references to the $config object
18
+        // preventing the destructor from running the clean up (which without stray references would be
19
+        // automagically triggered when `self::$phpcsFile` is reset, but we can't definitively rely on that).
20
+        if (isset(self::$config) === true) {
21
+            self::$config->__destruct();
22
+        }
23
+
24
+    }//end reset()
25
+
26
+
27
+    /**
28
      * Helper method to retrieve a mock object for a Filter class.
29
      *
30
      * The `setMethods()` method was silently deprecated in PHPUnit 9 and removed in PHPUnit 10.
31
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocNowdocTest.inc Added
41
 
1
@@ -0,0 +1,39 @@
2
+<?php
3
+
4
+/* testHeredocSingleLine */
5
+echo <<<EOD
6
+Some $var text
7
+EOD;
8
+
9
+/* testNowdocSingleLine */
10
+echo <<<'MARKER'
11
+Some text
12
+MARKER;
13
+
14
+/* testHeredocMultiLine */
15
+echo <<<"😬"
16
+Lorum ipsum
17
+Some $var text
18
+dolor sit amet
19
+😬;
20
+
21
+/* testNowdocMultiLine */
22
+echo <<<'multi_line'
23
+Lorum ipsum
24
+Some text
25
+dolor sit amet
26
+multi_line;
27
+
28
+/* testHeredocEndsOnBlankLine */
29
+echo <<<EOD
30
+Lorum ipsum
31
+dolor sit amet
32
+
33
+EOD;
34
+
35
+/* testNowdocEndsOnBlankLine */
36
+echo <<<'EOD'
37
+Lorum ipsum
38
+dolor sit amet
39
+
40
+EOD;
41
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocNowdocTest.php Added
201
 
1
@@ -0,0 +1,213 @@
2
+<?php
3
+/**
4
+ * Tests the tokenization for heredoc/nowdoc constructs.
5
+ *
6
+ * @author    Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl>
7
+ * @copyright 2024 PHPCSStandards and contributors
8
+ * @license   https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
9
+ */
10
+
11
+namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP;
12
+
13
+use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase;
14
+use PHP_CodeSniffer\Util\Tokens;
15
+
16
+/**
17
+ * Tests the tokenization for heredoc/nowdoc constructs.
18
+ *
19
+ * Verifies that:
20
+ * - Nowdoc opener/closers are retokenized from `T_START_|END_HEREDOC` to `T_START_|END_NOWDOC`.
21
+ * - The contents of the heredoc/nowdoc is tokenized as `T_HEREDOC`/`T_NOWDOC`.
22
+ * - Each line of the contents has its own token, which includes the new line char.
23
+ *
24
+ * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize
25
+ */
26
+final class HeredocNowdocTest extends AbstractTokenizerTestCase
27
+{
28
+
29
+
30
+    /**
31
+     * Verify tokenization a heredoc construct.
32
+     *
33
+     * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment.
34
+     *
35
+     * @return void
36
+     */
37
+    public function testHeredocSingleLine()
38
+    {
39
+        $expectedSequence = 
40
+            T_START_HEREDOC => '<<<EOD'."\n",
41
+            T_HEREDOC       => 'Some $var text'."\n",
42
+            T_END_HEREDOC   => 'EOD',
43
+        ;
44
+
45
+        $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_START_HEREDOC);
46
+
47
+        $this->checkTokenSequence($target, $expectedSequence);
48
+
49
+    }//end testHeredocSingleLine()
50
+
51
+
52
+    /**
53
+     * Verify tokenization a nowdoc construct.
54
+     *
55
+     * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment.
56
+     *
57
+     * @return void
58
+     */
59
+    public function testNowdocSingleLine()
60
+    {
61
+        $expectedSequence = 
62
+            T_START_NOWDOC => "<<<'MARKER'\n",
63
+            T_NOWDOC       => 'Some text'."\n",
64
+            T_END_NOWDOC   => 'MARKER',
65
+        ;
66
+
67
+        $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_START_NOWDOC);
68
+
69
+        $this->checkTokenSequence($target, $expectedSequence);
70
+
71
+    }//end testNowdocSingleLine()
72
+
73
+
74
+    /**
75
+     * Verify tokenization a multiline heredoc construct.
76
+     *
77
+     * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment.
78
+     *
79
+     * @return void
80
+     */
81
+    public function testHeredocMultiLine()
82
+    {
83
+        $expectedSequence = 
84
+            T_START_HEREDOC => '<<<"😬"'."\n",
85
+            T_HEREDOC       => 'Lorum ipsum'."\n",
86
+            T_HEREDOC       => 'Some $var text'."\n",
87
+            T_HEREDOC       => 'dolor sit amet'."\n",
88
+            T_END_HEREDOC   => '😬',
89
+        ;
90
+
91
+        $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_START_HEREDOC);
92
+
93
+        $this->checkTokenSequence($target, $expectedSequence);
94
+
95
+    }//end testHeredocMultiLine()
96
+
97
+
98
+    /**
99
+     * Verify tokenization a multiline testNowdocSingleLine construct.
100
+     *
101
+     * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment.
102
+     *
103
+     * @return void
104
+     */
105
+    public function testNowdocMultiLine()
106
+    {
107
+        $expectedSequence = 
108
+            T_START_NOWDOC => "<<<'multi_line'\n",
109
+            T_NOWDOC       => 'Lorum ipsum'."\n",
110
+            T_NOWDOC       => 'Some text'."\n",
111
+            T_NOWDOC       => 'dolor sit amet'."\n",
112
+            T_END_NOWDOC   => 'multi_line',
113
+        ;
114
+
115
+        $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_START_NOWDOC);
116
+
117
+        $this->checkTokenSequence($target, $expectedSequence);
118
+
119
+    }//end testNowdocMultiLine()
120
+
121
+
122
+    /**
123
+     * Verify tokenization a multiline heredoc construct.
124
+     *
125
+     * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment.
126
+     *
127
+     * @return void
128
+     */
129
+    public function testHeredocEndsOnBlankLine()
130
+    {
131
+        $expectedSequence = 
132
+            T_START_HEREDOC => '<<<EOD'."\n",
133
+            T_HEREDOC       => 'Lorum ipsum'."\n",
134
+            T_HEREDOC       => 'dolor sit amet'."\n",
135
+            T_HEREDOC       => "\n",
136
+            T_END_HEREDOC   => 'EOD',
137
+        ;
138
+
139
+        $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_START_HEREDOC);
140
+
141
+        $this->checkTokenSequence($target, $expectedSequence);
142
+
143
+    }//end testHeredocEndsOnBlankLine()
144
+
145
+
146
+    /**
147
+     * Verify tokenization a multiline testNowdocSingleLine construct.
148
+     *
149
+     * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment.
150
+     *
151
+     * @return void
152
+     */
153
+    public function testNowdocEndsOnBlankLine()
154
+    {
155
+        $expectedSequence = 
156
+            T_START_NOWDOC => "<<<'EOD'\n",
157
+            T_NOWDOC       => 'Lorum ipsum'."\n",
158
+            T_NOWDOC       => 'dolor sit amet'."\n",
159
+            T_NOWDOC       => "\n",
160
+            T_END_NOWDOC   => 'EOD',
161
+        ;
162
+
163
+        $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_START_NOWDOC);
164
+
165
+        $this->checkTokenSequence($target, $expectedSequence);
166
+
167
+    }//end testNowdocEndsOnBlankLine()
168
+
169
+
170
+    /**
171
+     * Test helper. Check a token sequence complies with an expected token sequence.
172
+     *
173
+     * @param int                              $startPtr         The position in the file to start checking from.
174
+     * @param array<array<int|string, string>> $expectedSequence The consecutive token constants and their contents to expect.
175
+     *
176
+     * @return void
177
+     */
178
+    private function checkTokenSequence($startPtr, array $expectedSequence)
179
+    {
180
+        $tokens = $this->phpcsFile->getTokens();
181
+
182
+        $sequenceKey   = 0;
183
+        $sequenceCount = count($expectedSequence);
184
+
185
+        for ($i = $startPtr; $sequenceKey < $sequenceCount; $i++, $sequenceKey++) {
186
+            $currentItem     = $expectedSequence$sequenceKey;
187
+            $expectedCode    = key($currentItem);
188
+            $expectedType    = Tokens::tokenName($expectedCode);
189
+            $expectedContent = current($currentItem);
190
+            $errorMsgSuffix  = PHP_EOL.'(StackPtr: '.$i.' | Position in sequence: '.$sequenceKey.' | Expected: '.$expectedType.')';
191
+
192
+            $this->assertSame(
193
+                $expectedCode,
194
+                $tokens$i'code',
195
+                'Token tokenized as '.Tokens::tokenName($tokens$i'code').', not '.$expectedType.' (code)'.$errorMsgSuffix
196
+            );
197
+
198
+            $this->assertSame(
199
+                $expectedType,
200
+                $tokens$i'type',
201
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocParseErrorTest.inc Added
13
 
1
@@ -0,0 +1,11 @@
2
+<?php
3
+
4
+// This is an intentional parse error. This test should be the only test in the file!
5
+// NOTE: this is NOT a _real_ merge conflict, but a valid test.
6
+
7
+/* testUnclosedHeredoc */
8
+<<<<<<< HEAD
9
+    $a = 10;
10
+=======
11
+    $a = 20;
12
+>>>>>>> master
13
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocParseErrorTest.php Added
43
 
1
@@ -0,0 +1,41 @@
2
+<?php
3
+/**
4
+ * Tests the tokenization for an unclosed heredoc construct.
5
+ *
6
+ * @author    Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl>
7
+ * @copyright 2024 PHPCSStandards and contributors
8
+ * @license   https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
9
+ */
10
+
11
+namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP;
12
+
13
+use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase;
14
+
15
+/**
16
+ * Tests the tokenization for an unclosed heredoc construct.
17
+ *
18
+ * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize
19
+ */
20
+final class HeredocParseErrorTest extends AbstractTokenizerTestCase
21
+{
22
+
23
+
24
+    /**
25
+     * Verify that a heredoc (and nowdoc) start token is retokenized to T_STRING if no closer is found.
26
+     *
27
+     * @return void
28
+     */
29
+    public function testMergeConflict()
30
+    {
31
+        $tokens = $this->phpcsFile->getTokens();
32
+
33
+        $token      = $this->getTargetToken('/* testUnclosedHeredoc */', T_START_HEREDOC, T_STRING, '<<< HEAD'."\n");
34
+        $tokenArray = $tokens$token;
35
+
36
+        $this->assertSame(T_STRING, $tokenArray'code', 'Token tokenized as '.$tokenArray'type'.', not T_START_HEREDOC (code)');
37
+        $this->assertSame('T_STRING', $tokenArray'type', 'Token tokenized as '.$tokenArray'type'.', not T_START_HEREDOC (type)');
38
+
39
+    }//end testMergeConflict()
40
+
41
+
42
+}//end class
43
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/HeredocNowdocOpenerTest.inc Added
33
 
1
@@ -0,0 +1,31 @@
2
+<?php
3
+
4
+/* testHeredocOpenerNoSpace */
5
+$heredoc = <<<EOD
6
+some text
7
+EOD;
8
+
9
+/* testNowdocOpenerNoSpace */
10
+$nowdoc = <<<'EOD'
11
+some text
12
+EOD;
13
+
14
+/* testHeredocOpenerHasSpace */
15
+$heredoc = <<< END
16
+some text
17
+END;
18
+
19
+/* testNowdocOpenerHasSpace */
20
+$nowdoc = <<<             'END'
21
+some text
22
+END;
23
+
24
+/* testHeredocOpenerHasTab */
25
+$heredoc = <<<         "END"
26
+some text
27
+END;
28
+
29
+/* testNowdocOpenerHasTab */
30
+$nowdoc = <<<  'END'
31
+some text
32
+END;
33
roundcubemail-1.5.tar.gz/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/HeredocNowdocOpenerTest.php Added
123
 
1
@@ -0,0 +1,121 @@
2
+<?php
3
+/**
4
+ * Tests the tokenization of heredoc/nowdoc opener tokens.
5
+ *
6
+ * @author    Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl>
7
+ * @copyright 2024 PHPCSStandards and contributors
8
+ * @license   https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
9
+ */
10
+
11
+namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Tokenizer;
12
+
13
+use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase;
14
+
15
+/**
16
+ * Heredoc/nowdoc opener token test.
17
+ */
18
+final class HeredocNowdocOpenerTest extends AbstractTokenizerTestCase
19
+{
20
+
21
+
22
+    /**
23
+     * Verify that spaces/tabs in a heredoc/nowdoc opener token get the tab replacement treatment.
24
+     *
25
+     * @param string                         $testMarker The comment prefacing the target token.
26
+     * @param array<string, int|string|null> $expected   Expectations for the token array.
27
+     *
28
+     * @dataProvider dataHeredocNowdocOpenerTabReplacement
29
+     * @covers       PHP_CodeSniffer\Tokenizers\Tokenizer::createPositionMap
30
+     *
31
+     * @return void
32
+     */
33
+    public function testHeredocNowdocOpenerTabReplacement($testMarker, $expected)
34
+    {
35
+        $tokens = $this->phpcsFile->getTokens();
36
+        $opener = $this->getTargetToken($testMarker, T_START_HEREDOC, T_START_NOWDOC);
37
+
38
+        foreach ($expected as $key => $value) {
39
+            if ($key === 'orig_content' && $value === null) {
40
+                $this->assertArrayNotHasKey($key, $tokens$opener, "Unexpected 'orig_content' key found in the token array.");
41
+                continue;
42
+            }
43
+
44
+            $this->assertArrayHasKey($key, $tokens$opener, "Key $key not found in the token array.");
45
+            $this->assertSame($value, $tokens$opener$key, "Value for key $key does not match expectation.");
46
+        }
47
+
48
+    }//end testHeredocNowdocOpenerTabReplacement()
49
+
50
+
51
+    /**
52
+     * Data provider.
53
+     *
54
+     * @see testHeredocNowdocOpenerTabReplacement()
55
+     *
56
+     * @return array<string, array<string, string|array<string, int|string|null>>>
57
+     */
58
+    public static function dataHeredocNowdocOpenerTabReplacement()
59
+    {
60
+        return 
61
+            'Heredoc opener without space' => 
62
+                'testMarker' => '/* testHeredocOpenerNoSpace */',
63
+                'expected'   => 
64
+                    'length'       => 6,
65
+                    'content'      => '<<<EOD
66
+',
67
+                    'orig_content' => null,
68
+                ,
69
+            ,
70
+            'Nowdoc opener without space'  => 
71
+                'testMarker' => '/* testNowdocOpenerNoSpace */',
72
+                'expected'   => 
73
+                    'length'       => 8,
74
+                    'content'      => "<<<'EOD'
75
+",
76
+                    'orig_content' => null,
77
+                ,
78
+            ,
79
+            'Heredoc opener with space(s)' => 
80
+                'testMarker' => '/* testHeredocOpenerHasSpace */',
81
+                'expected'   => 
82
+                    'length'       => 7,
83
+                    'content'      => '<<< END
84
+',
85
+                    'orig_content' => null,
86
+                ,
87
+            ,
88
+            'Nowdoc opener with space(s)'  => 
89
+                'testMarker' => '/* testNowdocOpenerHasSpace */',
90
+                'expected'   => 
91
+                    'length'       => 21,
92
+                    'content'      => "<<<             'END'
93
+",
94
+                    'orig_content' => null,
95
+                ,
96
+            ,
97
+            'Heredoc opener with tab(s)'   => 
98
+                'testMarker' => '/* testHeredocOpenerHasTab */',
99
+                'expected'   => 
100
+                    'length'       => 18,
101
+                    'content'      => '<<<          "END"
102
+',
103
+                    'orig_content' => '<<<         "END"
104
+',
105
+                ,
106
+            ,
107
+            'Nowdoc opener with tab(s)'    => 
108
+                'testMarker' => '/* testNowdocOpenerHasTab */',
109
+                'expected'   => 
110
+                    'length'       => 11,
111
+                    'content'      => "<<<   'END'
112
+",
113
+                    'orig_content' => "<<< 'END'
114
+",
115
+                ,
116
+            ,
117
+        ;
118
+
119
+    }//end dataHeredocNowdocOpenerTabReplacement()
120
+
121
+
122
+}//end class
123
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-ctype/composer.json Changed
10
 
1
@@ -16,7 +16,7 @@
2
         }
3
     ,
4
     "require": {
5
-        "php": ">=7.1"
6
+        "php": ">=7.2"
7
     },
8
     "provide": {
9
         "ext-ctype": "*"
10
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-intl-idn/Idn.php Changed
19
 
1
@@ -145,7 +145,7 @@
2
      */
3
     public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = )
4
     {
5
-        if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
6
+        if (self::INTL_IDNA_VARIANT_2003 === $variant) {
7
             @trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
8
         }
9
 
10
@@ -198,7 +198,7 @@
11
      */
12
     public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = )
13
     {
14
-        if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
15
+        if (self::INTL_IDNA_VARIANT_2003 === $variant) {
16
             @trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
17
         }
18
 
19
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-intl-idn/composer.json Changed
13
 
1
@@ -20,9 +20,8 @@
2
         }
3
     ,
4
     "require": {
5
-        "php": ">=7.1",
6
-        "symfony/polyfill-intl-normalizer": "^1.10",
7
-        "symfony/polyfill-php72": "^1.10"
8
+        "php": ">=7.2",
9
+        "symfony/polyfill-intl-normalizer": "^1.10"
10
     },
11
     "autoload": {
12
         "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
13
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-intl-normalizer/composer.json Changed
10
 
1
@@ -16,7 +16,7 @@
2
         }
3
     ,
4
     "require": {
5
-        "php": ">=7.1"
6
+        "php": ">=7.2"
7
     },
8
     "autoload": {
9
         "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" },
10
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-mbstring/Mbstring.php Changed
115
 
1
@@ -50,6 +50,9 @@
2
  * - mb_substr_count         - Count the number of substring occurrences
3
  * - mb_ucfirst              - Make a string's first character uppercase
4
  * - mb_lcfirst              - Make a string's first character lowercase
5
+ * - mb_trim                 - Strip whitespace (or other characters) from the beginning and end of a string
6
+ * - mb_ltrim                - Strip whitespace (or other characters) from the beginning of a string
7
+ * - mb_rtrim                - Strip whitespace (or other characters) from the end of a string
8
  *
9
  * Not implemented:
10
  * - mb_convert_kana         - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
11
@@ -83,12 +86,6 @@
12
     public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
13
     {
14
         if (\is_array($s)) {
15
-            if (PHP_VERSION_ID < 70200) {
16
-                trigger_error('mb_convert_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING);
17
-
18
-                return null;
19
-            }
20
-
21
             $r = ;
22
             foreach ($s as $str) {
23
                 $r = self::mb_convert_encoding($str, $toEncoding, $fromEncoding);
24
@@ -427,12 +424,6 @@
25
 
26
     public static function mb_check_encoding($var = null, $encoding = null)
27
     {
28
-        if (\PHP_VERSION_ID < 70200 && \is_array($var)) {
29
-            trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING);
30
-
31
-            return null;
32
-        }
33
-
34
         if (null === $encoding) {
35
             if (null === $var) {
36
                 return false;
37
@@ -980,17 +971,75 @@
38
         return $encoding;
39
     }
40
 
41
+    public static function mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string
42
+    {
43
+        return self::mb_internal_trim('{^%s+|%1$s+$}Du', $string, $characters, $encoding, __FUNCTION__);
44
+    }
45
+
46
+    public static function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null): string
47
+    {
48
+        return self::mb_internal_trim('{^%s+}Du', $string, $characters, $encoding, __FUNCTION__);
49
+    }
50
+
51
+    public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string
52
+    {
53
+        return self::mb_internal_trim('{%s+$}D', $string, $characters, $encoding, __FUNCTION__);
54
+    }
55
+
56
+    private static function mb_internal_trim(string $regex, string $string, ?string $characters, ?string $encoding, string $function): string
57
+    {
58
+        if (null === $encoding) {
59
+            $encoding = self::mb_internal_encoding();
60
+        } else {
61
+            self::assertEncoding($encoding, $function.'(): Argument #3 ($encoding) must be a valid encoding, "%s" given');
62
+        }
63
+
64
+        if ('' === $characters) {
65
+            return null === $encoding ? $string : self::mb_convert_encoding($string, $encoding);
66
+        }
67
+
68
+        if ('UTF-8' === $encoding) {
69
+            $encoding = null;
70
+            if (!preg_match('//u', $string)) {
71
+                $string = @iconv('UTF-8', 'UTF-8//IGNORE', $string);
72
+            }
73
+            if (null !== $characters && !preg_match('//u', $characters)) {
74
+                $characters = @iconv('UTF-8', 'UTF-8//IGNORE', $characters);
75
+            }
76
+        } else {
77
+            $string = iconv($encoding, 'UTF-8//IGNORE', $string);
78
+
79
+            if (null !== $characters) {
80
+                $characters = iconv($encoding, 'UTF-8//IGNORE', $characters);
81
+            }
82
+        }
83
+
84
+        if (null === $characters) {
85
+            $characters = "\\0 \f\n\r\t\v\u{00A0}\u{1680}\u{2000}\u{2001}\u{2002}\u{2003}\u{2004}\u{2005}\u{2006}\u{2007}\u{2008}\u{2009}\u{200A}\u{2028}\u{2029}\u{202F}\u{205F}\u{3000}\u{0085}\u{180E}";
86
+        } else {
87
+            $characters = preg_quote($characters);
88
+        }
89
+
90
+        $string = preg_replace(sprintf($regex, $characters), '', $string);
91
+
92
+        if (null === $encoding) {
93
+            return $string;
94
+        }
95
+
96
+        return iconv('UTF-8', $encoding.'//IGNORE', $string);
97
+    }
98
+
99
     private static function assertEncoding(string $encoding, string $errorFormat): void
100
     {
101
         try {
102
             $validEncoding = @self::mb_check_encoding('', $encoding);
103
         } catch (\ValueError $e) {
104
-            throw new \ValueError(\sprintf($errorFormat, $encoding));
105
+            throw new \ValueError(sprintf($errorFormat, $encoding));
106
         }
107
 
108
         // BC for PHP 7.3 and lower
109
         if (!$validEncoding) {
110
-            throw new \ValueError(\sprintf($errorFormat, $encoding));
111
+            throw new \ValueError(sprintf($errorFormat, $encoding));
112
         }
113
     }
114
 }
115
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-mbstring/bootstrap.php Changed
21
 
1
@@ -144,6 +144,19 @@
2
     function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
3
 }
4
 
5
+if (!function_exists('mb_trim')) {
6
+    function mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_trim($string, $characters, $encoding); }
7
+}
8
+
9
+if (!function_exists('mb_ltrim')) {
10
+    function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_ltrim($string, $characters, $encoding); }
11
+}
12
+
13
+if (!function_exists('mb_rtrim')) {
14
+    function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_rtrim($string, $characters, $encoding); }
15
+}
16
+
17
+
18
 if (extension_loaded('mbstring')) {
19
     return;
20
 }
21
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-mbstring/bootstrap80.php Changed
29
 
1
@@ -93,7 +93,7 @@
2
     function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strstr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
3
 }
4
 if (!function_exists('mb_get_info')) {
5
-    function mb_get_info(?string $type = 'all'): array|string|int|false { return p\Mbstring::mb_get_info((string) $type); }
6
+    function mb_get_info(?string $type = 'all'): array|string|int|false|null { return p\Mbstring::mb_get_info((string) $type); }
7
 }
8
 if (!function_exists('mb_http_output')) {
9
     function mb_http_output(?string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); }
10
@@ -140,6 +140,18 @@
11
     function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
12
 }
13
 
14
+if (!function_exists('mb_trim')) {
15
+    function mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_trim($string, $characters, $encoding); }
16
+}
17
+
18
+if (!function_exists('mb_ltrim')) {
19
+    function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_ltrim($string, $characters, $encoding); }
20
+}
21
+
22
+if (!function_exists('mb_rtrim')) {
23
+    function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_rtrim($string, $characters, $encoding); }
24
+}
25
+
26
 if (extension_loaded('mbstring')) {
27
     return;
28
 }
29
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-mbstring/composer.json Changed
10
 
1
@@ -16,7 +16,7 @@
2
         }
3
     ,
4
     "require": {
5
-        "php": ">=7.1"
6
+        "php": ">=7.2"
7
     },
8
     "provide": {
9
         "ext-mbstring": "*"
10
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-php72 Deleted
2
 
1
-(directory)
2
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-php72/LICENSE Deleted
21
 
1
@@ -1,19 +0,0 @@
2
-Copyright (c) 2015-present Fabien Potencier
3
-
4
-Permission is hereby granted, free of charge, to any person obtaining a copy
5
-of this software and associated documentation files (the "Software"), to deal
6
-in the Software without restriction, including without limitation the rights
7
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
-copies of the Software, and to permit persons to whom the Software is furnished
9
-to do so, subject to the following conditions:
10
-
11
-The above copyright notice and this permission notice shall be included in all
12
-copies or substantial portions of the Software.
13
-
14
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
-THE SOFTWARE.
21
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-php72/Php72.php Deleted
201
 
1
@@ -1,218 +0,0 @@
2
-<?php
3
-
4
-/*
5
- * This file is part of the Symfony package.
6
- *
7
- * (c) Fabien Potencier <fabien@symfony.com>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
-namespace Symfony\Polyfill\Php72;
14
-
15
-/**
16
- * @author Nicolas Grekas <p@tchwork.com>
17
- * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
18
- *
19
- * @internal
20
- */
21
-final class Php72
22
-{
23
-    private static $hashMask;
24
-
25
-    public static function utf8_encode($s)
26
-    {
27
-        $s .= $s;
28
-        $len = \strlen($s);
29
-
30
-        for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
31
-            switch (true) {
32
-                case $s$i < "\x80": $s$j = $s$i; break;
33
-                case $s$i < "\xC0": $s$j = "\xC2"; $s++$j = $s$i; break;
34
-                default: $s$j = "\xC3"; $s++$j = \chr(\ord($s$i) - 64); break;
35
-            }
36
-        }
37
-
38
-        return substr($s, 0, $j);
39
-    }
40
-
41
-    public static function utf8_decode($s)
42
-    {
43
-        $s = (string) $s;
44
-        $len = \strlen($s);
45
-
46
-        for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) {
47
-            switch ($s$i & "\xF0") {
48
-                case "\xC0":
49
-                case "\xD0":
50
-                    $c = (\ord($s$i & "\x1F") << 6) | \ord($s++$i & "\x3F");
51
-                    $s$j = $c < 256 ? \chr($c) : '?';
52
-                    break;
53
-
54
-                case "\xF0":
55
-                    ++$i;
56
-                    // no break
57
-
58
-                case "\xE0":
59
-                    $s$j = '?';
60
-                    $i += 2;
61
-                    break;
62
-
63
-                default:
64
-                    $s$j = $s$i;
65
-            }
66
-        }
67
-
68
-        return substr($s, 0, $j);
69
-    }
70
-
71
-    public static function php_os_family()
72
-    {
73
-        if ('\\' === \DIRECTORY_SEPARATOR) {
74
-            return 'Windows';
75
-        }
76
-
77
-        $map = 
78
-            'Darwin' => 'Darwin',
79
-            'DragonFly' => 'BSD',
80
-            'FreeBSD' => 'BSD',
81
-            'NetBSD' => 'BSD',
82
-            'OpenBSD' => 'BSD',
83
-            'Linux' => 'Linux',
84
-            'SunOS' => 'Solaris',
85
-        ;
86
-
87
-        return $map\PHP_OS ?? 'Unknown';
88
-    }
89
-
90
-    public static function spl_object_id($object)
91
-    {
92
-        if (null === self::$hashMask) {
93
-            self::initHashMask();
94
-        }
95
-        if (null === $hash = spl_object_hash($object)) {
96
-            return;
97
-        }
98
-
99
-        // On 32-bit systems, PHP_INT_SIZE is 4,
100
-        return self::$hashMask ^ hexdec(substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1));
101
-    }
102
-
103
-    public static function sapi_windows_vt100_support($stream, $enable = null)
104
-    {
105
-        if (!\is_resource($stream)) {
106
-            trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, '.\gettype($stream).' given', \E_USER_WARNING);
107
-
108
-            return false;
109
-        }
110
-
111
-        $meta = stream_get_meta_data($stream);
112
-
113
-        if ('STDIO' !== $meta'stream_type') {
114
-            trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', \E_USER_WARNING);
115
-
116
-            return false;
117
-        }
118
-
119
-        // We cannot actually disable vt100 support if it is set
120
-        if (false === $enable || !self::stream_isatty($stream)) {
121
-            return false;
122
-        }
123
-
124
-        // The native function does not apply to stdin
125
-        $meta = array_map('strtolower', $meta);
126
-        $stdin = 'php://stdin' === $meta'uri' || 'php://fd/0' === $meta'uri';
127
-
128
-        return !$stdin
129
-            && (false !== getenv('ANSICON')
130
-            || 'ON' === getenv('ConEmuANSI')
131
-            || 'xterm' === getenv('TERM')
132
-            || 'Hyper' === getenv('TERM_PROGRAM'));
133
-    }
134
-
135
-    public static function stream_isatty($stream)
136
-    {
137
-        if (!\is_resource($stream)) {
138
-            trigger_error('stream_isatty() expects parameter 1 to be resource, '.\gettype($stream).' given', \E_USER_WARNING);
139
-
140
-            return false;
141
-        }
142
-
143
-        if ('\\' === \DIRECTORY_SEPARATOR) {
144
-            $stat = @fstat($stream);
145
-
146
-            // Check if formatted mode is S_IFCHR
147
-            return $stat ? 0020000 === ($stat'mode' & 0170000) : false;
148
-        }
149
-
150
-        return \function_exists('posix_isatty') && @posix_isatty($stream);
151
-    }
152
-
153
-    private static function initHashMask()
154
-    {
155
-        $obj = (object) ;
156
-        self::$hashMask = -1;
157
-
158
-        // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below
159
-        $obFuncs = 'ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush';
160
-        foreach (debug_backtrace(\PHP_VERSION_ID >= 50400 ? \DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {
161
-            if (isset($frame'function'0) && !isset($frame'class') && 'o' === $frame'function'0 && \in_array($frame'function', $obFuncs)) {
162
-                $frame'line' = 0;
163
-                break;
164
-            }
165
-        }
166
-        if (!empty($frame'line')) {
167
-            ob_start();
168
-            debug_zval_dump($obj);
169
-            self::$hashMask = (int) substr(ob_get_clean(), 17);
170
-        }
171
-
172
-        self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1));
173
-    }
174
-
175
-    public static function mb_chr($code, $encoding = null)
176
-    {
177
-        if (0x80 > $code %= 0x200000) {
178
-            $s = \chr($code);
179
-        } elseif (0x800 > $code) {
180
-            $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
181
-        } elseif (0x10000 > $code) {
182
-            $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
183
-        } else {
184
-            $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
185
-        }
186
-
187
-        if ('UTF-8' !== $encoding = $encoding ?? mb_internal_encoding()) {
188
-            $s = mb_convert_encoding($s, $encoding, 'UTF-8');
189
-        }
190
-
191
-        return $s;
192
-    }
193
-
194
-    public static function mb_ord($s, $encoding = null)
195
-    {
196
-        if (null === $encoding) {
197
-            $s = mb_convert_encoding($s, 'UTF-8');
198
-        } elseif ('UTF-8' !== $encoding) {
199
-            $s = mb_convert_encoding($s, 'UTF-8', $encoding);
200
-        }
201
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-php72/README.md Deleted
37
 
1
@@ -1,35 +0,0 @@
2
-Symfony Polyfill / Php72
3
-========================
4
-
5
-This component provides functions added to PHP 7.2 core:
6
-
7
-- `spl_object_id`(https://php.net/spl_object_id)
8
-- `stream_isatty`(https://php.net/stream_isatty)
9
-
10
-And also functions added to PHP 7.2 mbstring:
11
-
12
-- `mb_ord`(https://php.net/mb_ord)
13
-- `mb_chr`(https://php.net/mb_chr)
14
-- `mb_scrub`(https://php.net/mb_scrub)
15
-
16
-On Windows only:
17
-
18
-- `sapi_windows_vt100_support`(https://php.net/sapi_windows_vt100_support)
19
-
20
-Moved to core since 7.2 (was in the optional XML extension earlier):
21
-
22
-- `utf8_encode`(https://php.net/utf8_encode)
23
-- `utf8_decode`(https://php.net/utf8_decode)
24
-
25
-Also, it provides constants added to PHP 7.2:
26
-
27
-- `PHP_FLOAT_*`(https://php.net/reserved.constants#constant.php-float-dig)
28
-- `PHP_OS_FAMILY`(https://php.net/reserved.constants#constant.php-os-family)
29
-
30
-More information can be found in the
31
-main Polyfill README(https://github.com/symfony/polyfill/blob/main/README.md).
32
-
33
-License
34
-=======
35
-
36
-This library is released under the MIT license(LICENSE).
37
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-php72/bootstrap.php Deleted
59
 
1
@@ -1,57 +0,0 @@
2
-<?php
3
-
4
-/*
5
- * This file is part of the Symfony package.
6
- *
7
- * (c) Fabien Potencier <fabien@symfony.com>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
-use Symfony\Polyfill\Php72 as p;
14
-
15
-if (\PHP_VERSION_ID >= 70200) {
16
-    return;
17
-}
18
-
19
-if (!defined('PHP_FLOAT_DIG')) {
20
-    define('PHP_FLOAT_DIG', 15);
21
-}
22
-if (!defined('PHP_FLOAT_EPSILON')) {
23
-    define('PHP_FLOAT_EPSILON', 2.2204460492503E-16);
24
-}
25
-if (!defined('PHP_FLOAT_MIN')) {
26
-    define('PHP_FLOAT_MIN', 2.2250738585072E-308);
27
-}
28
-if (!defined('PHP_FLOAT_MAX')) {
29
-    define('PHP_FLOAT_MAX', 1.7976931348623157E+308);
30
-}
31
-if (!defined('PHP_OS_FAMILY')) {
32
-    define('PHP_OS_FAMILY', p\Php72::php_os_family());
33
-}
34
-
35
-if ('\\' === \DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {
36
-    function sapi_windows_vt100_support($stream, $enable = null) { return p\Php72::sapi_windows_vt100_support($stream, $enable); }
37
-}
38
-if (!function_exists('stream_isatty')) {
39
-    function stream_isatty($stream) { return p\Php72::stream_isatty($stream); }
40
-}
41
-if (!function_exists('utf8_encode')) {
42
-    function utf8_encode($string) { return p\Php72::utf8_encode($string); }
43
-}
44
-if (!function_exists('utf8_decode')) {
45
-    function utf8_decode($string) { return p\Php72::utf8_decode($string); }
46
-}
47
-if (!function_exists('spl_object_id')) {
48
-    function spl_object_id($object) { return p\Php72::spl_object_id($object); }
49
-}
50
-if (!function_exists('mb_ord')) {
51
-    function mb_ord($string, $encoding = null) { return p\Php72::mb_ord($string, $encoding); }
52
-}
53
-if (!function_exists('mb_chr')) {
54
-    function mb_chr($codepoint, $encoding = null) { return p\Php72::mb_chr($codepoint, $encoding); }
55
-}
56
-if (!function_exists('mb_scrub')) {
57
-    function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); }
58
-}
59
roundcubemail-1.5.tar.gz/vendor/symfony/polyfill-php72/composer.json Deleted
34
 
1
@@ -1,32 +0,0 @@
2
-{
3
-    "name": "symfony/polyfill-php72",
4
-    "type": "library",
5
-    "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
6
-    "keywords": "polyfill", "shim", "compatibility", "portable",
7
-    "homepage": "https://symfony.com",
8
-    "license": "MIT",
9
-    "authors": 
10
-        {
11
-            "name": "Nicolas Grekas",
12
-            "email": "p@tchwork.com"
13
-        },
14
-        {
15
-            "name": "Symfony Community",
16
-            "homepage": "https://symfony.com/contributors"
17
-        }
18
-    ,
19
-    "require": {
20
-        "php": ">=7.1"
21
-    },
22
-    "autoload": {
23
-        "psr-4": { "Symfony\\Polyfill\\Php72\\": "" },
24
-        "files":  "bootstrap.php" 
25
-    },
26
-    "minimum-stability": "dev",
27
-    "extra": {
28
-        "thanks": {
29
-            "name": "symfony/polyfill",
30
-            "url": "https://github.com/symfony/polyfill"
31
-        }
32
-    }
33
-}
34
roundcubemail.dsc Changed
10
 
1
@@ -2,7 +2,7 @@
2
 Source: roundcubemail
3
 Binary: roundcubemail
4
 Architecture: all
5
-Version: 1:1.5.8.4-1~kolab1
6
+Version: 1:1.5.8.5-1~kolab1
7
 Maintainer: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
8
 Uploaders: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
9
 Homepage: http://www.roundcube.net/
10