diff options
author | Guy Brand <gb@unistra.fr> | 2022-07-31 13:56:56 +0200 |
---|---|---|
committer | Guy Brand <gb@unistra.fr> | 2022-07-31 13:56:56 +0200 |
commit | 4438fd7fa260e164d4fe1b24a11e1e3943ac6695 (patch) | |
tree | bfa0bf704e662131b31ae7c57bc18dae9b73bc54 | |
parent | a22f5b383bd381ecaefb4537758df86785ce3003 (diff) | |
parent | 3578bf969ba82be3add2b1a26ff544163a68aa7e (diff) | |
download | dokuwiki-4438fd7fa260e164d4fe1b24a11e1e3943ac6695.tar.gz dokuwiki-4438fd7fa260e164d4fe1b24a11e1e3943ac6695.zip |
Merge master into stable
-rw-r--r-- | .github/version.php | 52 | ||||
-rw-r--r-- | .github/workflows/phpCS.yml | 7 | ||||
-rw-r--r-- | .github/workflows/release.yml | 50 | ||||
-rw-r--r-- | .github/workflows/testLinux.yml | 7 | ||||
-rw-r--r-- | .github/workflows/testWindows.yml | 7 | ||||
-rw-r--r-- | doku.php | 2 | ||||
-rw-r--r-- | inc/Logger.php | 4 | ||||
-rw-r--r-- | inc/deprecated.php | 152 | ||||
-rw-r--r-- | inc/infoutils.php | 2 | ||||
-rw-r--r-- | inc/lang/ca/lang.php | 5 | ||||
-rw-r--r-- | inc/lang/ca/onceexisted.txt | 3 | ||||
-rw-r--r-- | inc/media.php | 2 | ||||
-rw-r--r-- | lib/plugins/authad/lang/ca/settings.php | 7 | ||||
-rw-r--r-- | lib/plugins/authldap/lang/ca/settings.php | 19 | ||||
-rw-r--r-- | lib/plugins/authpdo/lang/ca/settings.php | 2 | ||||
-rw-r--r-- | lib/plugins/config/lang/ca/lang.php | 1 |
16 files changed, 315 insertions, 7 deletions
diff --git a/.github/version.php b/.github/version.php new file mode 100644 index 000000000..c85a81910 --- /dev/null +++ b/.github/version.php @@ -0,0 +1,52 @@ +<?php +/** + * Command line tool to check proper version strings + * + * Expects a tag as first argument. Used in release action to ensure proper formats + * in VERSION file and git tag. + */ + +if (!isset($argv[1])) { + echo "::error::No git tag given, this action should not have run\n"; + exit(1); +} +$TAG = $argv[1]; +$TAG = str_replace('refs/tags/', '', $TAG); + +if (!file_exists(__DIR__ . '/../VERSION')) { + echo "::error::No VERSION file found\n"; + exit(1); +} +$FILE = trim(file_get_contents(__DIR__ . '/../VERSION')); +$FILE = explode(' ', $FILE)[0]; + + +if(!preg_match('/^release_(stable|candidate)_((\d{4})-(\d{2})-(\d{2})([a-z])?)$/', $TAG, $m)) { + echo "::error::Git tag does not match expected format: $TAG\n"; + exit(1); +} else { + $TAGTYPE = $m[1]; + $TAGVERSION = $m[2]; +} + +if(!preg_match('/^(rc)?((\d{4})-(\d{2})-(\d{2})([a-z])?)$/', $FILE, $m)) { + echo "::error::VERSION file does not match expected format: $FILE\n"; + exit(1); +} else { + $FILETYPE = $m[1] == 'rc' ? 'candidate' : 'stable'; + $FILEVERSION = $m[2]; + $TGZVERSION = $m[0]; +} + +if($TAGTYPE !== $FILETYPE) { + echo "::error::Type of release mismatches between git tag and VERSION file: $TAGTYPE <-> $FILETYPE\n"; + exit(1); +} + +if($TAGVERSION !== $FILEVERSION) { + echo "::error::Version date mismatches between git tag and VERSION file: $TAGVERSION <-> $FILEVERSION\n"; + exit(1); +} + +// still here? all good, export Version +echo "::set-output name=VERSION::$TGZVERSION\n"; diff --git a/.github/workflows/phpCS.yml b/.github/workflows/phpCS.yml index b0ebe6998..920556c20 100644 --- a/.github/workflows/phpCS.yml +++ b/.github/workflows/phpCS.yml @@ -1,6 +1,11 @@ name: PHP Code Style -on: [push, pull_request] +on: + push: + branches-ignore: + - stable + - old-stable + pull_request: jobs: phpcs: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..8374d8f48 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,50 @@ +name: Build and Publish +on: + push: + tags: + - '*' + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + + - name: Get the version + id: get_version + run: php .github/version.php "${GITHUB_REF}" + + - name: Build TGZ + run: | + rm -rf .gitignore + rm -rf .git + rm -rf .github + rm -rf .gitattributes + rm -rf _test + rm -f .editorconfig + mkdir -p data/pages/playground + echo "====== PlayGround ======" > data/pages/playground/playground.txt + cd .. + mv dokuwiki "dokuwiki-${{ steps.get_version.outputs.VERSION }}" + tar -czvf "dokuwiki-${{ steps.get_version.outputs.VERSION }}.tgz" dokuwiki-${{ steps.get_version.outputs.VERSION }} + rm -rf "dokuwiki-${{ steps.get_version.outputs.VERSION }}" + mkdir dokuwiki + mv "dokuwiki-${{ steps.get_version.outputs.VERSION }}.tgz" dokuwiki/ + + - name: Setup SSH Key + uses: shimataro/ssh-key-action@v2 + with: + key: ${{ secrets.SSH_PRIVATE_KEY }} + # generate with ssh-keyscan -H <server> + known_hosts: ${{ secrets.SSH_KNOWN_HOSTS }} + + - name: Deploy to Server + run: | + scp "dokuwiki-${{ steps.get_version.outputs.VERSION }}.tgz" ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:htdocs/src/dokuwiki/ + ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "cd htdocs/src/dokuwiki/ && tar -xzvf dokuwiki-${{ steps.get_version.outputs.VERSION }}.tgz" diff --git a/.github/workflows/testLinux.yml b/.github/workflows/testLinux.yml index 4523938e6..9ca9e66af 100644 --- a/.github/workflows/testLinux.yml +++ b/.github/workflows/testLinux.yml @@ -1,6 +1,11 @@ name: Linux Unit Tests -on: [push, pull_request] +on: + push: + branches-ignore: + - stable + - old-stable + pull_request: jobs: run: diff --git a/.github/workflows/testWindows.yml b/.github/workflows/testWindows.yml index 43fe624c5..2bb1b3ac6 100644 --- a/.github/workflows/testWindows.yml +++ b/.github/workflows/testWindows.yml @@ -1,6 +1,11 @@ name: Windows Unit Tests -on: [push, pull_request] +on: + push: + branches-ignore: + - stable + - old-stable + pull_request: jobs: run: @@ -11,7 +11,7 @@ // update message version - always use a string to avoid localized floats! use dokuwiki\Extension\Event; -$updateVersion = "52.1"; +$updateVersion = "52.2"; // xdebug_start_profiling(); diff --git a/inc/Logger.php b/inc/Logger.php index 0772305f3..e48636c06 100644 --- a/inc/Logger.php +++ b/inc/Logger.php @@ -193,7 +193,9 @@ class Logger { global $conf; - if ($date !== null) $date = strtotime($date); + if($date !== null && !is_numeric($date)) { + $date = strtotime($date); + } if (!$date) $date = time(); return $conf['logdir'] . '/' . $this->facility . '/' . date('Y-m-d', $date) . '.log'; diff --git a/inc/deprecated.php b/inc/deprecated.php index 205037344..31a023293 100644 --- a/inc/deprecated.php +++ b/inc/deprecated.php @@ -568,3 +568,155 @@ class Subscription { * @deprecated 2019-12-29 use \dokuwiki\Search\Indexer */ class Doku_Indexer extends \dokuwiki\Search\Indexer {}; + +/** + * @deprecated since 2021-11-11 use \dokuwiki\Remote\IXR\Client instead! + */ +class IXR_Client extends \dokuwiki\Remote\IXR\Client +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($server, $path = false, $port = 80, $timeout = 15, $timeout_io = null) + { + DebugHelper::dbgDeprecatedFunction(dokuwiki\Remote\IXR\Client::class); + parent::__construct($server, $path, $port, $timeout, $timeout_io); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\Client\ClientMulticall instead! + */ +class IXR_ClientMulticall extends \IXR\Client\ClientMulticall +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($server, $path = false, $port = 80) + { + DebugHelper::dbgDeprecatedFunction(IXR\Client\ClientMulticall::class); + parent::__construct($server, $path, $port); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\Server\Server instead! + */ +class IXR_Server extends \IXR\Server\Server +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($callbacks = false, $data = false, $wait = false) + { + DebugHelper::dbgDeprecatedFunction(IXR\Server\Server::class); + parent::__construct($callbacks, $data, $wait); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\Server\IntrospectionServer instead! + */ +class IXR_IntrospectionServer extends \IXR\Server\IntrospectionServer +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct() + { + DebugHelper::dbgDeprecatedFunction(IXR\Server\IntrospectionServer::class); + parent::__construct(); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\Request\Request instead! + */ +class IXR_Request extends \IXR\Request\Request +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($method, $args) + { + DebugHelper::dbgDeprecatedFunction(IXR\Request\Request::class); + parent::__construct($method, $args); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\Message\Message instead! + */ +class IXR_Message extends IXR\Message\Message +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($message) + { + DebugHelper::dbgDeprecatedFunction(IXR\Message\Message::class); + parent::__construct($message); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\Message\Error instead! + */ +class IXR_Error extends \IXR\Message\Error +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($code, $message) + { + DebugHelper::dbgDeprecatedFunction(IXR\Message\Error::class); + parent::__construct($code, $message); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\DataType\Date instead! + */ +class IXR_Date extends \IXR\DataType\Date +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($time) + { + DebugHelper::dbgDeprecatedFunction(IXR\DataType\Date::class); + parent::__construct($time); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\DataType\Base64 instead! + */ +class IXR_Base64 extends \IXR\DataType\Base64 +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($data) + { + DebugHelper::dbgDeprecatedFunction(IXR\DataType\Base64::class); + parent::__construct($data); + } +} +/** + * @deprecated since 2021-11-11 use \IXR\DataType\Value instead! + */ +class IXR_Value extends \IXR\DataType\Value +{ + /** + * @inheritdoc + * @deprecated 2021-11-11 + */ + public function __construct($data, $type = null) + { + DebugHelper::dbgDeprecatedFunction(IXR\DataType\Value::class); + parent::__construct($data, $type); + } +} + diff --git a/inc/infoutils.php b/inc/infoutils.php index 6c61d037e..f89d1b3bb 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -89,7 +89,7 @@ function getVersionData(){ $subDir = substr($headCommit, 0, 2); $fileName = substr($headCommit, 2); $gitCommitObject = DOKU_INC . ".git/objects/$subDir/$fileName"; - if (file_exists($gitCommitObject) && method_exists(zlib_decode)) { + if (file_exists($gitCommitObject) && function_exists('zlib_decode')) { $commit = zlib_decode(file_get_contents($gitCommitObject)); $committerLine = explode("\n", $commit)[3]; $committerData = explode(' ', $committerLine); diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 8e489a463..3eda60764 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Marc Zulet <marczulet@gmail.com> * @author Joan <aseques@gmail.com> * @author David Surroca <davidsurrocaestrada@gmail.com> * @author Adolfo Jayme Barrientos <fito@libreoffice.org> @@ -118,6 +119,7 @@ $lang['js']['media_done_btn'] = 'Fet'; $lang['js']['media_drop'] = 'Arrossega aquí els arxius a pujar'; $lang['js']['media_cancel'] = 'esborra'; $lang['js']['media_overwrt'] = 'Sobreescriu els arxius existents'; +$lang['js']['data_insecure'] = 'ADVERTÈNCIA: Sembla que el vostre directori de dades no està degudament protegit. Si us plau, llegiu sobre <a href="https://www.dokuwiki.org/security#web_access_security">Seguretat de l\'Accés Web a DokuWiki</a>.'; $lang['search_exact_match'] = 'Coincidència exacta'; $lang['search_starts_with'] = 'Comença per'; $lang['search_ends_with'] = 'Termina per'; @@ -303,8 +305,10 @@ $lang['i_problems'] = 'L\'instal·lador ha trobat alguns problemes, q $lang['i_modified'] = 'Per raons de seguretat aquesta seqüència només funciona amb una instal·lació nova i no modificada de Dokuwiki. Hauríeu de tornar a baixar el paquet i/o descomprimir-lo o consultar les <a href="https://www.dokuwiki.org/install">instruccions d\'instal·lació de Dokuwiki</a> completes'; $lang['i_funcna'] = 'La funció PHP <code>%s</code> no està disponible. Potser el vostre proveïdor de serveis l\'ha inhabilitada per alguna raó'; $lang['i_disabled'] = 'El vostre proveïdor l\'ha desactivat.'; +$lang['i_funcnmail'] = '<b>Nota:</b> La funció de correu PHP no està disponible. %s Si es manté no disponible, podeu instal·lar el <a href="https://www.dokuwiki.org/plugin:smtp">connector smtp</a>.'; $lang['i_phpver'] = 'La vostra versió de PHP <code>%s</code> és inferior a la requerida <code>%s</code>. Necessiteu actualitzar la vostra instal·lació de PHP.'; $lang['i_mbfuncoverload'] = 'mbstring.func_overload cal que sigui deshabilitada en php.ini perquè funcioni DokuWiki'; +$lang['i_urandom'] = 'DokuWiki no pot crear números criptogràficament segurs per a les galetes. És possible que vulgueu comprovar la vostra configuració d\'open_basedir al php.ini per un accés correcte a <code>/dev/urandom</code>.'; $lang['i_permfail'] = 'DokuWiki no pot escriure <code>%s</code>. Heu d\'arreglar els permisos d\'aquest directori'; $lang['i_confexists'] = '<code>%s</code> ja existeix'; $lang['i_writeerr'] = 'No es pot crear <code>%s</code>. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.'; @@ -355,6 +359,7 @@ $lang['media_perm_upload'] = 'No teniu permisos suficients per a pujar arxiu $lang['media_update'] = 'Puja la nova versió'; $lang['media_restore'] = 'Restaura aquesta versió'; $lang['media_acl_warning'] = 'Aquesta llista pot no estar completa per restriccions ACL i per llistes ocultes'; +$lang['email_fail'] = 'Falta el correu PHP () o està desactivat. No s\'ha enviat el correu electrònic següent:'; $lang['currentns'] = 'Espai de noms actual'; $lang['searchresult'] = 'Resultats cerca'; $lang['plainhtml'] = 'HTML pla'; diff --git a/inc/lang/ca/onceexisted.txt b/inc/lang/ca/onceexisted.txt new file mode 100644 index 000000000..85e0b380a --- /dev/null +++ b/inc/lang/ca/onceexisted.txt @@ -0,0 +1,3 @@ +======= Aquesta pàgina ja no existeix ====== + +Heu seguit un enllaç a una pàgina que ja no existeix. Podeu consultar la llista de [[?do=revisions|old revisions]] per veure quan i per què es va suprimir, accedir a les revisions antigues o restaurar-la.
\ No newline at end of file diff --git a/inc/media.php b/inc/media.php index 45824d556..e9841a65e 100644 --- a/inc/media.php +++ b/inc/media.php @@ -1704,7 +1704,7 @@ function media_nstree_li($item){ function media_mod_image($file, $ext, $w, $h=0, $crop=false) { global $conf; - if(!$h) $h = $w; + if(!$h) $h = 0; // we wont scale up to infinity if($w > 2000 || $h > 2000) return $file; diff --git a/lib/plugins/authad/lang/ca/settings.php b/lib/plugins/authad/lang/ca/settings.php index 6b80a6157..4f75f3318 100644 --- a/lib/plugins/authad/lang/ca/settings.php +++ b/lib/plugins/authad/lang/ca/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Marc Zulet <marczulet@gmail.com> * @author Joan <aseques@gmail.com> * @author David Surroca <davidsurrocaestrada@gmail.com> * @author Adolfo Jayme Barrientos <fito@libreoffice.org> @@ -16,7 +17,13 @@ $lang['admin_username'] = 'Un usuari de Directori Actiu autoritzat a acce $lang['admin_password'] = 'La contrasenya de l\'usuari referit abans. '; $lang['sso'] = 'S\'hauria de fer servir Kerberos o NTLM per inici de sessió únic?'; +$lang['sso_charset'] = 'El conjunt de caràcters del vostre servidor web passarà el nom d\'usuari Kerberos o NTLM. Buit per a UTF-8 o latin-1. Requereix l\'extensió iconv.'; +$lang['real_primarygroup'] = 'S\'hauria de resoldre el grup principal real en lloc d\'assumir "Usuaris de domini" (més lent).'; +$lang['use_ssl'] = 'Utilitzeu la connexió SSL? Si s\'usa, no activeu TLS a continuació.'; +$lang['use_tls'] = 'Utilitzeu la connexió TLS? Si l\'useu, no activeu SSL a dalt.'; $lang['debug'] = 'Mostrar informació addicional de depuració en cas d\'error?'; $lang['expirywarn'] = 'Dies per endavant en avisar l\'usuari sobre la caducitat de la contrasenya. 0 per desactivar.'; +$lang['additional'] = 'Una llista separada per comes d\'atributs AD addicionals per obtenir de les dades d\'usuari. Utilitzat per alguns connectors.'; +$lang['update_name'] = 'Voleu permetre als usuaris actualitzar el seu nom de visualització d\'AD?'; $lang['update_mail'] = 'Permetre els usuaris actualitzar la seva adreça de correu electrònic?'; $lang['recursive_groups'] = 'Resoleu els grups imbricats als seus respectius membres (més lentament).'; diff --git a/lib/plugins/authldap/lang/ca/settings.php b/lib/plugins/authldap/lang/ca/settings.php index f33d6f72a..80460df48 100644 --- a/lib/plugins/authldap/lang/ca/settings.php +++ b/lib/plugins/authldap/lang/ca/settings.php @@ -3,16 +3,35 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Marc Zulet <marczulet@gmail.com> * @author David Surroca <davidsurrocaestrada@gmail.com> * @author Adolfo Jayme Barrientos <fito@libreoffice.org> * @author Àngel Pérez Beroy <aperezberoy@gmail.com> * @author Aniol Marti <amarti@caliu.cat> */ +$lang['server'] = 'El vostre servidor LDAP. Nom d\'amfitrió (<code>localhost</code>) o URL qualificat complet (<code>ldap://server.tld:389</code>)'; +$lang['port'] = 'Port del servidor LDAP si no s\'ha donat cap URL complet més amunt'; +$lang['usertree'] = 'On trobar els comptes d\'usuari. Per exemple. <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'On trobar els grups d\'usuaris. Per exemple. <code>ou=Grup, dc=servidor, dc=tld</code>'; +$lang['userfilter'] = 'Filtre LDAP per cercar comptes d\'usuari. Per exemple. <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'Filtre LDAP per cercar grups. Per exemple. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = 'La versió del protocol a utilitzar. Pot ser que hagueu d’establir-ho a <code>3</code>'; $lang['starttls'] = 'Utilitzar connexions TLS?'; +$lang['referrals'] = 'S\'han de seguir les referències?'; +$lang['deref'] = 'Com desreferenciar els àlies?'; +$lang['binddn'] = 'DN d\'un usuari opcional enllaçat si l\'enllaç anònim no és suficient. Per exemple. <code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = 'Contrasenya de l\'usuari referit abans.'; $lang['attributes'] = 'Atributs a demanar a la consulta LDAP.'; $lang['userscope'] = 'Limiteu l\'abast de cerca per a la cerca d\'usuaris'; $lang['groupscope'] = 'Limiteu l\'abast de cerca per a la cerca de grups'; +$lang['userkey'] = 'Atribut que denota el nom d\'usuari; ha de ser coherent amb el filtre d\'usuari.'; +$lang['groupkey'] = 'Pertinença al grup des de qualsevol atribut d\'usuari (en lloc de grups AD estàndard), p. ex. grup del departament o número de telèfon'; $lang['modPass'] = 'Es pot canviar la contrasenya del LDAP mitjançant el Dokuwiki?'; $lang['debug'] = 'Mostra informació addicional de depuració als errors.'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'ús per defecte'; +$lang['referrals_o_0'] = 'no seguir les referències'; +$lang['referrals_o_1'] = 'seguir les referències'; diff --git a/lib/plugins/authpdo/lang/ca/settings.php b/lib/plugins/authpdo/lang/ca/settings.php index b599da6f0..8de78d6cc 100644 --- a/lib/plugins/authpdo/lang/ca/settings.php +++ b/lib/plugins/authpdo/lang/ca/settings.php @@ -3,6 +3,8 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Marc Zulet <marczulet@gmail.com> * @author Adolfo Jayme Barrientos <fito@libreoffice.org> */ +$lang['debug'] = 'Mostra missatges d\'error detallats. S\'hauria de desactivar després de la configuració.'; $lang['dsn'] = 'El DNS per a connectar a la base de dades.'; diff --git a/lib/plugins/config/lang/ca/lang.php b/lib/plugins/config/lang/ca/lang.php index 6d949f651..df50e817d 100644 --- a/lib/plugins/config/lang/ca/lang.php +++ b/lib/plugins/config/lang/ca/lang.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Marc Zulet <marczulet@gmail.com> * @author Joan <aseques@gmail.com> * @author David Surroca <davidsurrocaestrada@gmail.com> * @author Adolfo Jayme Barrientos <fito@libreoffice.org> |