Hello community,

here is the log from the commit of package adminer for openSUSE:Factory checked 
in at 2016-02-18 11:07:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/adminer (Old)
 and      /work/SRC/openSUSE:Factory/.adminer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "adminer"

Changes:
--------
--- /work/SRC/openSUSE:Factory/adminer/adminer.changes  2016-02-16 
09:18:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.adminer.new/adminer.changes     2016-02-18 
12:36:32.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Feb  9 22:05:41 UTC 2016 - [email protected]
+
+- Update to 4.2.4.
+
+-------------------------------------------------------------------

Old:
----
  adminer-v4.2.3.tar.xz

New:
----
  adminer-v4.2.4.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ adminer.spec ++++++
--- /var/tmp/diff_new_pack.oyqUI2/_old  2016-02-18 12:36:33.000000000 +0100
+++ /var/tmp/diff_new_pack.oyqUI2/_new  2016-02-18 12:36:33.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package adminer
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2015 Jimmy Berry <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -20,7 +20,7 @@
 # pending php5-pear-Horde_Mongo package submission to Factory
 %bcond_with mongodb
 Name:           adminer
-Version:        4.2.3
+Version:        4.2.4
 Release:        0
 Summary:        Database management in a single PHP file
 License:        GPL-2.0 or Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.oyqUI2/_old  2016-02-18 12:36:33.000000000 +0100
+++ /var/tmp/diff_new_pack.oyqUI2/_new  2016-02-18 12:36:33.000000000 +0100
@@ -1,7 +1,7 @@
 <services>
   <service name="tar_scm" mode="disabled">
     <param name="versionformat">@PARENT_TAG@</param>
-    <param name="revision">refs/tags/v4.2.3</param>
+    <param name="revision">refs/tags/v4.2.4</param>
     <param name="url">https://github.com/vrana/adminer.git</param>
     <param name="scm">git</param>
   </service>

++++++ adminer-v4.2.3.tar.xz -> adminer-v4.2.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/drivers/mysql.inc.php 
new/adminer-v4.2.4/adminer/drivers/mysql.inc.php
--- old/adminer-v4.2.3/adminer/drivers/mysql.inc.php    2015-11-16 
06:12:44.000000000 +0100
+++ new/adminer-v4.2.4/adminer/drivers/mysql.inc.php    2016-02-09 
23:05:14.000000000 +0100
@@ -13,16 +13,16 @@
                                parent::init();
                        }
 
-                       function connect($server, $username, $password) {
+                       function connect($server = "", $username = "", 
$password = "", $database = null, $port = null, $socket = null) {
                                mysqli_report(MYSQLI_REPORT_OFF); // stays 
between requests, not required since PHP 5.3.4
                                list($host, $port) = explode(":", $server, 2); 
// part after : is used for port or socket
                                $return = @$this->real_connect(
                                        ($server != "" ? $host : 
ini_get("mysqli.default_host")),
                                        ($server . $username != "" ? $username 
: ini_get("mysqli.default_user")),
                                        ($server . $username . $password != "" 
? $password : ini_get("mysqli.default_pw")),
-                                       null,
+                                       $database,
                                        (is_numeric($port) ? $port : 
ini_get("mysqli.default_port")),
-                                       (!is_numeric($port) ? $port : null)
+                                       (!is_numeric($port) ? $port : $socket)
                                );
                                return $return;
                        }
@@ -581,16 +581,6 @@
                return h(preg_replace('~^You have an error.*syntax to use~U', 
"Syntax error", $connection->error));
        }
 
-       /** Get line of error
-       * @return int 0 for first line
-       */
-       function error_line() {
-               global $connection;
-               if (preg_match('~ at line ([0-9]+)$~', $connection->error, 
$regs)) {
-                       return $regs[1] - 1;
-               }
-       }
-
        /** Create database
        * @param string
        * @param string
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/include/lang.inc.php 
new/adminer-v4.2.4/adminer/include/lang.inc.php
--- old/adminer-v4.2.3/adminer/include/lang.inc.php     2015-11-16 
06:12:44.000000000 +0100
+++ new/adminer-v4.2.4/adminer/include/lang.inc.php     2016-02-09 
23:05:14.000000000 +0100
@@ -6,6 +6,7 @@
        'ar' => 'العربية', // Y.M Amine - Algeria - [email protected]
        'bg' => 'Български', // Deyan Delchev
        'bn' => 'বাংলা', // Dipak Kumar - [email protected]
+       'bs' => 'Bosanski', // Emir Kurtovic
        'ca' => 'Català', // Joan Llosas
        'cs' => 'Čeština', // Jakub Vrána - http://www.vrana.cz
        'da' => 'Dansk', // Jarne W. Beutnagel - [email protected]
@@ -14,6 +15,7 @@
        'es' => 'Español', // Klemens Häckel - 
http://clickdimension.wordpress.com
        'et' => 'Eesti', // Priit Kallas
        'fa' => 'فارسی', // mojtaba barghbani - Iran - [email protected], 
Nima Amini - http://nimlog.com
+       'fi' => 'Suomi', // Finnish - Kari Eveli - http://www.lexitec.fi/
        'fr' => 'Français', // Francis Gagné, Aurélien Royer
        'gl' => 'Galego', // Eduardo Penabad Ramos
        'hu' => 'Magyar', // Borsos Szilárd (Borsosfi) - 
http://www.borsosfi.hu, [email protected]
@@ -61,10 +63,10 @@
                $pos = ($number == 1 ? 0
                        : ($LANG == 'cs' || $LANG == 'sk' ? ($number && $number 
< 5 ? 1 : 2) // different forms for 1, 2-4, other
                        : ($LANG == 'fr' ? (!$number ? 0 : 1) // different 
forms for 0-1, other
-                       : ($LANG == 'pl' ? ($number % 10 > 1 && $number % 10 < 
5 && $number / 10 % 10 != 1 ? 1 : 2) // different forms for 1, 2-4, other
+                       : ($LANG == 'pl' ? ($number % 10 > 1 && $number % 10 < 
5 && $number / 10 % 10 != 1 ? 1 : 2) // different forms for 1, 2-4 except 
12-14, other
                        : ($LANG == 'sl' ? ($number % 100 == 1 ? 0 : ($number % 
100 == 2 ? 1 : ($number % 100 == 3 || $number % 100 == 4 ? 2 : 3))) // 
different forms for 1, 2, 3-4, other
                        : ($LANG == 'lt' ? ($number % 10 == 1 && $number % 100 
!= 11 ? 0 : ($number % 10 > 1 && $number / 10 % 10 != 1 ? 1 : 2)) // different 
forms for 1, 12-19, other
-                       : ($LANG == 'ru' || $LANG == 'sr' || $LANG == 'uk' ? 
($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number % 10 > 1 && $number % 
10 < 5 && $number / 10 % 10 != 1 ? 1 : 2)) // different forms for 1, 2-4, other
+                       : ($LANG == 'bs' || $LANG == 'ru' || $LANG == 'sr' || 
$LANG == 'uk' ? ($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number % 10 > 
1 && $number % 10 < 5 && $number / 10 % 10 != 1 ? 1 : 2)) // different forms 
for 1 except 11, 2-4 except 12-14, other
                        : 1 // different forms for 1, other
                ))))))); // 
http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html
                $translation = $translation[$pos];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/include/version.inc.php 
new/adminer-v4.2.4/adminer/include/version.inc.php
--- old/adminer-v4.2.3/adminer/include/version.inc.php  2015-11-16 
06:12:44.000000000 +0100
+++ new/adminer-v4.2.4/adminer/include/version.inc.php  2016-02-09 
23:05:14.000000000 +0100
@@ -1,2 +1,2 @@
 <?php
-$VERSION = "4.2.3";
+$VERSION = "4.2.4";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/lang/bs.inc.php 
new/adminer-v4.2.4/adminer/lang/bs.inc.php
--- old/adminer-v4.2.3/adminer/lang/bs.inc.php  1970-01-01 01:00:00.000000000 
+0100
+++ new/adminer-v4.2.4/adminer/lang/bs.inc.php  2016-02-09 23:05:14.000000000 
+0100
@@ -0,0 +1,322 @@
+<?php
+$translations = array(
+       // label for database system selection (MySQL, SQLite, ...)
+       'System' => 'Sistem',
+       'Server' => 'Server',
+       'Username' => 'Korisničko ime',
+       'Password' => 'Lozinka',
+       'Permanent login' => 'Trajna prijava',
+       'Login' => 'Prijava',
+       'Logout' => 'Odjava',
+       'Logged as: %s' => 'Prijavi se kao: %s',
+       'Logout successful.' => 'Uspešna odjava.',
+       'Invalid credentials.' => 'Nevažeće dozvole.',
+       'Language' => 'Jezik',
+       'Invalid CSRF token. Send the form again.' => 'Nevažeći CSRF kod. 
Proslijedite ponovo formu.',
+       'No extension' => 'Bez dodataka',
+       'None of the supported PHP extensions (%s) are available.' => 'Nijedan 
od podržanih PHP dodataka nije dostupan.',
+       'Session support must be enabled.' => 'Morate omogućiti podršku za 
sesije.',
+       'Session expired, please login again.' => 'Vaša sesija je istekla, 
prijavite se ponovo.',
+       '%s version: %s through PHP extension %s' => '%s verzija: %s pomoću PHP 
dodatka je %s',
+       'Refresh' => 'Osveži',
+
+       // text direction - 'ltr' or 'rtl'
+       'ltr' => 'ltr',
+
+       'Privileges' => 'Dozvole',
+       'Create user' => 'Novi korisnik',
+       'User has been dropped.' => 'Korisnik je izbrisan.',
+       'User has been altered.' => 'Korisnik je izmijenjen.',
+       'User has been created.' => 'korisnik je spašen.',
+       'Hashed' => 'Heširano',
+       'Column' => 'kolumna',
+       'Routine' => 'Rutina',
+       'Grant' => 'Dozvoli',
+       'Revoke' => 'Opozovi',
+
+       'Process list' => 'Spisak procesa',
+       '%d process(es) have been killed.' => array('%d proces je ukinut.', '%d 
procesa su ukinuta.', '%d procesa je ukinuto.'),
+       'Kill' => 'Ubij',
+
+       'Variables' => 'Promijenljive',
+       'Status' => 'Status',
+
+       'SQL command' => 'SQL komanda',
+       '%d query(s) executed OK.' => array('%d upit je uspiješno izvršen.', 
'%d upita su uspiješno izvršena.', '%d upita je uspiješno izvršeno.'),
+       'Query executed OK, %d row(s) affected.' => array('Upit je uspiješno 
izvršen, %d red je ažuriran.', 'Upit je uspiješno izvršen, %d reda su 
ažurirana.', 'Upit je uspiješno izvršen, %d redova je ažurirano.'),
+       'No commands to execute.' => 'Bez komandi za izvršavanje.',
+       'Error in query' => 'Greška u upitu',
+       'Execute' => 'Izvrši',
+       'Stop on error' => 'Zaustavi prilikom greške',
+       'Show only errors' => 'Prikazuj samo greške',
+       // sprintf() format for time of the command
+       '%.3f s' => '%.3f s',
+       'History' => 'Historijat',
+       'Clear' => 'Očisti',
+       'Edit all' => 'Izmijeni sve',
+
+       'File upload' => 'Slanje datoteka',
+       'From server' => 'Sa servera',
+       'Webserver file %s' => 'Datoteka %s sa veb servera',
+       'Run file' => 'Pokreni datoteku',
+       'File does not exist.' => 'Datoteka ne postoji.',
+       'File uploads are disabled.' => 'Onemogućeno je slanje datoteka.',
+       'Unable to upload a file.' => 'Slanje datoteke nije uspelo.',
+       'Maximum allowed file size is %sB.' => 'Najveća dozvoljena veličina 
datoteke je %sB.',
+       'Too big POST data. Reduce the data or increase the %s configuration 
directive.' => 'Preveliki POST podatak. Morate da smanjite podatak ili 
povećajte vrijednost konfiguracione direktive %s.',
+
+       'Export' => 'Izvoz',
+       'Output' => 'Ispis',
+       'open' => 'otvori',
+       'save' => 'spasi',
+       'Format' => 'Format',
+       'Data' => 'Podaci',
+
+       'Database' => 'Baza podataka',
+       'database' => 'baza podataka',
+       'Use' => 'Koristi',
+       'Select database' => 'Izaberite bazu',
+       'Invalid database.' => 'Neispravna baza podataka.',
+       'Create new database' => 'Napravi novu bazu podataka',
+       'Database has been dropped.' => 'Baza podataka je izbrisana.',
+       'Databases have been dropped.' => 'Baze podataka su izbrisane.',
+       'Database has been created.' => 'Baza podataka je spašena.',
+       'Database has been renamed.' => 'Baza podataka je preimenovana.',
+       'Database has been altered.' => 'Baza podataka je izmijenjena.',
+       'Alter database' => 'Ažuriraj bazu podataka',
+       'Create database' => 'Formiraj bazu podataka',
+       'Database schema' => 'Šema baze podataka',
+
+       // link to current database schema layout
+       'Permanent link' => 'Trajna veza',
+
+       // thousands separator - must contain single byte
+       ',' => ',',
+       '0123456789' => '0123456789',
+       'Engine' => 'Stroj',
+       'Collation' => 'Sravnjivanje',
+       'Data Length' => 'Dužina podataka',
+       'Index Length' => 'Dužina indeksa',
+       'Data Free' => 'Slobodno podataka',
+       'Rows' => 'Redova',
+       '%d in total' => 'ukupno %d',
+       'Analyze' => 'Analiziraj',
+       'Optimize' => 'Optimizuj',
+       'Check' => 'Provjeri',
+       'Repair' => 'Popravi',
+       'Truncate' => 'Isprazni',
+       'Tables have been truncated.' => 'Tabele su ispražnjene.',
+       'Move to other database' => 'Premijesti u drugu bazu podataka',
+       'Move' => 'Premijesti',
+       'Tables have been moved.' => 'Tabele su premješćene.',
+       'Copy' => 'Umnoži',
+       'Tables have been copied.' => 'Tabele su umnožene.',
+
+       'Routines' => 'Rutine',
+       'Routine has been called, %d row(s) affected.' => array('Pozvana je 
rutina, %d red je ažuriran.', 'Pozvana je rutina, %d reda su ažurirani.', 
'Pozvana je rutina, %d redova je ažurirano.'),
+       'Call' => 'Pozovi',
+       'Parameter name' => 'Naziv parametra',
+       'Create procedure' => 'Formiraj proceduru',
+       'Create function' => 'Formiraj funkciju',
+       'Routine has been dropped.' => 'Rutina je izbrisana.',
+       'Routine has been altered.' => 'Rutina je izmijenjena.',
+       'Routine has been created.' => 'Rutina je spašena.',
+       'Alter function' => 'Ažuriraj funkciju',
+       'Alter procedure' => 'Ažuriraj proceduru',
+       'Return type' => 'Povratni tip',
+
+       'Events' => 'Događaji',
+       'Event has been dropped.' => 'Događaj je izbrisan.',
+       'Event has been altered.' => 'Događaj je izmijenjen.',
+       'Event has been created.' => 'Događaj je spašen.',
+       'Alter event' => 'Ažuriraj događaj',
+       'Create event' => 'Napravi događaj',
+       'At given time' => 'U zadato vrijeme',
+       'Every' => 'Svaki',
+       'Schedule' => 'Raspored',
+       'Start' => 'Početak',
+       'End' => 'Kraj',
+       'On completion preserve' => 'Zadrži po završetku',
+
+       'Tables' => 'Tabele',
+       'Tables and views' => 'Tabele i pogledi',
+       'Table' => 'Tabela',
+       'No tables.' => 'Bez tabela.',
+       'Alter table' => 'Ažuriraj tabelu',
+       'Create table' => 'Napravi tabelu',
+       'Table has been dropped.' => 'Tabela je izbrisana.',
+       'Tables have been dropped.' => 'Tabele su izbrisane.',
+       'Tables have been optimized.' => 'Tabele su optimizovane.',
+       'Table has been altered.' => 'Tabela je izmijenjena.',
+       'Table has been created.' => 'Tabela je spašena.',
+       'Table name' => 'Naziv tabele',
+       'Show structure' => 'Prikaži strukturu',
+       'engine' => 'stroj',
+       'collation' => 'Sravnjivanje',
+       'Column name' => 'Naziv kolumne',
+       'Type' => 'Tip',
+       'Length' => 'Dužina',
+       'Auto Increment' => 'Auto-priraštaj',
+       'Options' => 'Opcije',
+       'Comment' => 'Komentar',
+       'Default values' => 'Podrazumijevane vrijednosti',
+       'Drop' => 'Izbriši',
+       'Are you sure?' => 'Da li ste sigurni?',
+       'Move up' => 'Pomijeri na gore',
+       'Move down' => 'Pomijeri na dole',
+       'Remove' => 'Ukloni',
+       'Maximum number of allowed fields exceeded. Please increase %s.' => 
'Premašen je maksimalni broj dozvoljenih polja. Molim uvećajte %s.',
+
+       'Partition by' => 'Podijeli po',
+       'Partitions' => 'Podijele',
+       'Partition name' => 'Ime podijele',
+       'Values' => 'Vrijednosti',
+
+       'View' => 'Pogled',
+       'View has been dropped.' => 'Pogled je izbrisan.',
+       'View has been altered.' => 'Pogled je izmijenjen.',
+       'View has been created.' => 'Pogled je spašen.',
+       'Alter view' => 'Ažuriraj pogled',
+       'Create view' => 'Napravi pogled',
+
+       'Indexes' => 'Indeksi',
+       'Indexes have been altered.' => 'Indeksi su izmijenjeni.',
+       'Alter indexes' => 'Ažuriraj indekse',
+       'Add next' => 'Dodaj slijedeći',
+       'Index Type' => 'Tip indeksa',
+       'Column (length)' => 'kolumna (dužina)',
+
+       'Foreign keys' => 'Strani ključevi',
+       'Foreign key' => 'Strani ključ',
+       'Foreign key has been dropped.' => 'Strani ključ je izbrisan.',
+       'Foreign key has been altered.' => 'Strani ključ je izmijenjen.',
+       'Foreign key has been created.' => 'Strani ključ je spašen.',
+       'Target table' => 'Ciljna tabela',
+       'Change' => 'izmijeni',
+       'Source' => 'Izvor',
+       'Target' => 'Cilj',
+       'Add column' => 'Dodaj kolumnu',
+       'Alter' => 'Ažuriraj',
+       'Add foreign key' => 'Dodaj strani ključ',
+       'ON DELETE' => 'ON DELETE (prilikom brisanja)',
+       'ON UPDATE' => 'ON UPDATE (prilikom osvežavanja)',
+       'Source and target columns must have the same data type, there must be 
an index on the target columns and referenced data must exist.' => 'Izvorne i 
ciljne kolumne moraju biti istog tipa, ciljna kolumna mora biti indeksirana i 
izvorna tabela mora sadržati podatke iz ciljne.',
+
+       'Triggers' => 'Okidači',
+       'Add trigger' => 'Dodaj okidač',
+       'Trigger has been dropped.' => 'Okidač je izbrisan.',
+       'Trigger has been altered.' => 'Okidač je izmijenjen.',
+       'Trigger has been created.' => 'Okidač je spašen.',
+       'Alter trigger' => 'Ažuriraj okidač',
+       'Create trigger' => 'Formiraj okidač',
+       'Time' => 'Vrijeme',
+       'Event' => 'Događaj',
+       'Name' => 'Ime',
+
+       'select' => 'izaberi',
+       'Select' => 'Izaberi',
+       'Selected' => 'Izabrano',
+       'Select data' => 'Izaberi podatke',
+       'Functions' => 'Funkcije',
+       'Aggregation' => 'Sakupljanje',
+       'Search' => 'Pretraga',
+       'anywhere' => 'bilo gdje',
+       'Search data in tables' => 'Pretraži podatke u tabelama',
+       'Sort' => 'Poređaj',
+       'descending' => 'opadajuće',
+       'Limit' => 'Granica',
+       'Text length' => 'Dužina teksta',
+       'Action' => 'Akcija',
+       'Full table scan' => 'Skreniranje kompletne tabele',
+       'Unable to select the table' => 'Ne mogu da izaberem tabelu',
+       'No rows.' => 'Bez redova.',
+       '%d row(s)' => array('%d red', '%d reda', '%d redova'),
+       'Page' => 'Strana',
+       'last' => 'poslijednja',
+       'Loading' => 'Učitavam',
+       'Load more data' => 'Učitavam još podataka',
+       'whole result' => 'ceo rezultat',
+       '%d byte(s)' => array('%d bajt', '%d bajta', '%d bajtova'),
+
+       'Import' => 'Uvoz',
+       '%d row(s) have been imported.' => array('%d red je uvežen.', '%d reda 
su uvežena.', '%d redova je uveženo.'),
+
+       // in-place editing in select
+       'Ctrl+click on a value to modify it.' => 'Ctrl+klik na vrijednost za 
izmijenu.',
+       'Use edit link to modify this value.' => 'Koristi vezu za izmijenu ove 
vrijednosti.',
+
+       // %s can contain auto-increment value
+       'Item%s has been inserted.' => 'Stavka %s je spašena.',
+       'Item has been deleted.' => 'Stavka je izbrisana.',
+       'Item has been updated.' => 'Stavka je izmijenjena.',
+       '%d item(s) have been affected.' => array('%d stavka je ažurirana.', 
'%d stavke su ažurirane.', '%d stavki je ažurirano.'),
+       'New item' => 'Nova stavka',
+       'original' => 'original',
+       // label for value '' in enum data type
+       'empty' => 'prazno',
+       'edit' => 'izmijeni',
+       'Edit' => 'Izmijeni',
+       'Insert' => 'Umetni',
+       'Save' => 'Sačuvaj',
+       'Save and continue edit' => 'Sačuvaj i nastavi uređenje',
+       'Save and insert next' => 'Sačuvaj i umijetni slijedeće',
+       'Clone' => 'Dupliraj',
+       'Delete' => 'Izbriši',
+       'Modify' => 'Izmjene',
+
+       'E-mail' => 'El. pošta',
+       'From' => 'Od',
+       'Subject' => 'Naslov',
+       'Attachments' => 'Prilozi',
+       'Send' => 'Pošalji',
+       '%d e-mail(s) have been sent.' => array('%d poruka el. pošte je 
poslata.', '%d poruke el. pošte su poslate.', '%d poruka el. pošte je 
poslato.'),
+
+       // data type descriptions
+       'Numbers' => 'Broj',
+       'Date and time' => 'Datum i vrijeme',
+       'Strings' => 'Tekst',
+       'Binary' => 'Binarno',
+       'Lists' => 'Liste',
+       'Network' => 'Mreža',
+       'Geometry' => 'Geometrija',
+       'Relations' => 'Odnosi',
+
+       'Editor' => 'Uređivač',
+       // date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
+       '$1-$3-$5' => '$5.$3.$1.',
+       // hint for date format - use language equivalents for day, month and 
year shortcuts
+       '[yyyy]-mm-dd' => 'dd.mm.[yyyy].',
+       // hint for time format - use language equivalents for hour, minute and 
second shortcuts
+       'HH:MM:SS' => 'HH:MM:SS',
+       'now' => 'sad',
+       'yes' => 'da',
+       'no' => 'ne',
+
+       // general SQLite error in create, drop or rename database
+       'File exists.' => 'Datoteka već postoji.',
+       'Please use one of the extensions %s.' => 'Molim koristite jedan od 
nastavaka %s.',
+
+       // PostgreSQL and MS SQL schema support
+       'Alter schema' => 'Ažuriraj šemu',
+       'Create schema' => 'Formiraj šemu',
+       'Schema has been dropped.' => 'Šema je izbrisana.',
+       'Schema has been created.' => 'Šema je spašena.',
+       'Schema has been altered.' => 'Šema je izmijenjena.',
+       'Schema' => 'Šema',
+       'Invalid schema.' => 'Šema nije ispravna.',
+
+       // PostgreSQL sequences support
+       'Sequences' => 'Nizovi',
+       'Create sequence' => 'Napravi niz',
+       'Sequence has been dropped.' => 'Niz je izbrisan.',
+       'Sequence has been created.' => 'Niz je formiran.',
+       'Sequence has been altered.' => 'Niz je izmijenjen.',
+       'Alter sequence' => 'Ažuriraj niz',
+
+       // PostgreSQL user types support
+       'User types' => 'Korisnički tipovi',
+       'Create type' => 'Definiši tip',
+       'Type has been dropped.' => 'Tip je izbrisan.',
+       'Type has been created.' => 'tip je spašen.',
+       'Alter type' => 'Ažuriraj tip',
+);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/lang/cs.inc.php 
new/adminer-v4.2.4/adminer/lang/cs.inc.php
--- old/adminer-v4.2.3/adminer/lang/cs.inc.php  2015-11-16 06:12:44.000000000 
+0100
+++ new/adminer-v4.2.4/adminer/lang/cs.inc.php  2016-02-09 23:05:14.000000000 
+0100
@@ -49,6 +49,7 @@
        'Query executed OK, %d row(s) affected.' => array('Příkaz proběhl v 
pořádku, byl změněn %d záznam.', 'Příkaz proběhl v pořádku, byly změněny %d 
záznamy.', 'Příkaz proběhl v pořádku, bylo změněno %d záznamů.'),
        'No commands to execute.' => 'Žádné příkazy k vykonání.',
        'Error in query' => 'Chyba v dotazu',
+       'ATTACH queries are not supported.' => 'Dotazy ATTACH nejsou 
podporované.',
        'Execute' => 'Provést',
        'Stop on error' => 'Zastavit při chybě',
        'Show only errors' => 'Zobrazit pouze chyby',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/lang/fi.inc.php 
new/adminer-v4.2.4/adminer/lang/fi.inc.php
--- old/adminer-v4.2.3/adminer/lang/fi.inc.php  1970-01-01 01:00:00.000000000 
+0100
+++ new/adminer-v4.2.4/adminer/lang/fi.inc.php  2016-02-09 23:05:14.000000000 
+0100
@@ -0,0 +1,338 @@
+<?php
+$translations = array(
+       // label for database system selection (MySQL, SQLite, ...)
+       'System' => 'Järjestelmä',
+       'Server' => 'Palvelin',
+       'Username' => 'Käyttäjänimi',
+       'Password' => 'Salasana',
+       'Permanent login' => 'Haluan pysyä kirjautuneena',
+       'Login' => 'Kirjaudu',
+       'Logout' => 'Kirjaudu ulos',
+       'Logged as: %s' => 'Olet kirjautunut käyttäjänä: %s',
+       'Logout successful.' => 'Uloskirjautuminen onnistui.',
+       'Invalid credentials.' => 'Virheelliset kirjautumistiedot.',
+       'Too many unsuccessful logins, try again in %d minute(s).' => 
array('Liian monta epäonnistunutta sisäänkirjautumisyritystä, kokeile uudestaan 
%d minuutin kuluttua.', 'Liian monta epäonnistunutta sisäänkirjautumisyritystä, 
kokeile uudestaan %d minuutin kuluttua.'),
+       'Master password expired. <a 
href="https://www.adminer.org/en/extension/"; target="_blank">Implement</a> %s 
method to make it permanent.' => 'Master-salasana ei ole enää voimassa. <a 
href="https://www.adminer.org/en/extension/"; target="_blank">Toteuta</a> 
%s-metodi sen tekemiseksi pysyväksi.',
+       'Language' => 'Kieli',
+       'Invalid CSRF token. Send the form again.' => 'Virheellinen 
CSRF-vastamerkki. Lähetä lomake uudelleen.',
+       'If you did not send this request from Adminer then close this page.' 
=> 'Jollet lähettänyt tämä pyyntö Adminerista, sulje tämä sivu.',
+       'No extension' => 'Ei laajennusta',
+       'None of the supported PHP extensions (%s) are available.' => 'Mitään 
tuetuista PHP-laajennuksista (%s) ei ole käytettävissä.',
+       'Session support must be enabled.' => 'Istuntotuki on oltava päällä.',
+       'Session expired, please login again.' => 'Istunto vanhentunut, 
kirjaudu uudelleen.',
+       '%s version: %s through PHP extension %s' => '%s versio: %s 
PHP-laajennuksella %s',
+       'Refresh' => 'Virkistä',
+       
+       // text direction - 'ltr' or 'rtl'
+       'ltr' => 'ltr',
+       
+       'Privileges' => 'Oikeudet',
+       'Create user' => 'Luo käyttäjä',
+       'User has been dropped.' => 'Käyttäjä poistettiin.',
+       'User has been altered.' => 'Käyttäjää muutettiin.',
+       'User has been created.' => 'Käyttäjä luotiin.',
+       'Hashed' => 'Hashed',
+       'Column' => 'Sarake',
+       'Routine' => 'Rutiini',
+       'Grant' => 'Myönnä',
+       'Revoke' => 'Kiellä',
+       
+       'Process list' => 'Prosessilista',
+       '%d process(es) have been killed.' => array('%d prosessi lopetettu.', 
'%d prosessia lopetettu..'),
+       'Kill' => 'Lopeta',
+       
+       'Variables' => 'Muuttujat',
+       'Status' => 'Tila',
+       
+       'SQL command' => 'SQL-komento',
+       '%d query(s) executed OK.' => array('%d kysely onnistui.', '%d kyselyä 
onnistui.'),
+       'Query executed OK, %d row(s) affected.' => array('Kysely onnistui, 
kohdistui %d riviin.', 'Kysely onnistui, kohdistui %d riviin.'),
+       'No commands to execute.' => 'Ei komentoja suoritettavana.',
+       'Error in query' => 'Virhe kyselyssä',
+       'Execute' => 'Suorita',
+       'Stop on error' => 'Pysähdy virheeseen',
+       'Show only errors' => 'Näytä vain virheet',
+       // sprintf() format for time of the command
+       '%.3f s' => '%.3f s',
+       'History' => 'Historia',
+       'Clear' => 'Tyhjennä',
+       'Edit all' => 'Muokkaa kaikkia',
+       
+       'File upload' => 'Tiedoston lataus palvelimelle',
+       'From server' => 'Verkkopalvelimella Adminer-kansiossa oleva tiedosto',
+       'Webserver file %s' => 'Verkkopalvelintiedosto %s',
+       'Run file' => 'Suorita tämä',
+       'File does not exist.' => 'Tiedostoa ei ole.',
+       'File uploads are disabled.' => 'Tiedostojen lataaminen palvelimelle on 
estetty.',
+       'Unable to upload a file.' => 'Tiedostoa ei voida ladata palvelimelle.',
+       'Maximum allowed file size is %sB.' => 'Suurin sallittu tiedostokoko on 
%sB.',
+       'Too big POST data. Reduce the data or increase the %s configuration 
directive.' => 'Liian suuri POST-datamäärä. Pienennä dataa tai kasvata arvoa %s 
konfigurointitiedostossa.',
+       'You can upload a big SQL file via FTP and import it from server.' => 
'Voit ladata suuren SQL-tiedoston FTP:n kautta ja tuoda sen sitten 
palvelimelta.',
+       'You are offline.' => 'Olet offline-tilassa.',
+       
+       'Export' => 'Vienti',
+       'Output' => 'Tulos',
+       'open' => 'avaa',
+       'save' => 'tallenna',
+       'Saving' => 'Tallennetaan',
+       'Format' => 'Muoto',
+       'Data' => 'Data',
+       
+       'Database' => 'Tietokanta',
+       'database' => 'tietokanta',
+       'Use' => 'Käytä',
+       'Select database' => 'Valitse tietokanta',
+       'Invalid database.' => 'Tietokanta ei kelpaa.',
+       'Create new database' => 'Luo uusi tietokanta',
+       'Database has been dropped.' => 'Tietokanta on poistettu.',
+       'Databases have been dropped.' => 'Tietokannat on poistettu.',
+       'Database has been created.' => 'Tietokanta on luotu.',
+       'Database has been renamed.' => 'Tietokanta on nimetty uudelleen.',
+       'Database has been altered.' => 'Tietokantaa on muutettu.',
+       'Alter database' => 'Muuta tietokantaa',
+       'Create database' => 'Luo tietokanta',
+       'Database schema' => 'Tietokantakaava',
+       
+       // link to current database schema layout
+       'Permanent link' => 'Pysyvä linkki',
+       
+       // thousands separator - must contain single byte
+       ',' => ',',
+       '0123456789' => '0123456789',
+       'Engine' => 'Moottori',
+       'Collation' => 'Kollaatio',
+       'Data Length' => 'Datan pituus',
+       'Index Length' => 'Indeksin pituus',
+       'Data Free' => 'Vapaa tila',
+       'Rows' => 'Riviä',
+       '%d in total' => '%d kaikkiaan',
+       'Analyze' => 'Analysoi',
+       'Optimize' => 'Optimoi',
+       'Vacuum' => 'Siivoa',
+       'Check' => 'Tarkista',
+       'Repair' => 'Korjaa',
+       'Truncate' => 'Tyhjennä',
+       'Tables have been truncated.' => 'Taulujen sisältö on tyhjennetty.',
+       'Move to other database' => 'Siirrä toiseen tietokantaan',
+       'Move' => 'Siirrä',
+       'Tables have been moved.' => 'Taulut on siirretty.',
+       'Copy' => 'Kopioi',
+       'Tables have been copied.' => 'Taulut on kopioitu.',
+       
+       'Routines' => 'Rutiinit',
+       'Routine has been called, %d row(s) affected.' => array('Rutiini 
kutsuttu, kohdistui %d riviin.', 'Rutiini kutsuttu, kohdistui %d riviin.'),
+       'Call' => 'Kutsua',
+       'Parameter name' => 'Parametrin nimi',
+       'Create procedure' => 'Luo proseduuri',
+       'Create function' => 'Luo funktio',
+       'Routine has been dropped.' => 'Rutiini on poistettu.',
+       'Routine has been altered.' => 'Rutiinia on muutettu.',
+       'Routine has been created.' => 'Rutiini on luotu.',
+       'Alter function' => 'Muuta funktiota',
+       'Alter procedure' => 'Muuta proseduuria',
+       'Return type' => 'Palautustyyppi',
+       
+       'Events' => 'Tapahtumat',
+       'Event has been dropped.' => 'Tapahtuma on poistettu.',
+       'Event has been altered.' => 'Tapahtumaa on muutettu.',
+       'Event has been created.' => 'Tapahtuma on luotu.',
+       'Alter event' => 'Muuta tapahtumaa',
+       'Create event' => 'Luo tapahtuma',
+       'At given time' => 'Tiettynä aikana',
+       'Every' => 'Joka',
+       'Schedule' => 'Aikataulu',
+       'Start' => 'Aloitus',
+       'End' => 'Lopetus',
+       'On completion preserve' => 'Säilytä, kun valmis',
+       
+       'Tables' => 'Taulut',
+       'Tables and views' => 'Taulut ja näkymät',
+       'Table' => 'Taulu',
+       'No tables.' => 'Ei tauluja.',
+       'Alter table' => 'Muuta taulua',
+       'Create table' => 'Luo taulu',
+       'Table has been dropped.' => 'Taulu on poistettu.',
+       'Tables have been dropped.' => 'Tauluja on poistettu.',
+       'Tables have been optimized.' => 'Taulut on optimoitu.',
+       'Table has been altered.' => 'Taulua on muutettu.',
+       'Table has been created.' => 'Taulu on luotu.',
+       'Table name' => 'Taulun nimi',
+       'Show structure' => 'Näytä rakenne',
+       'engine' => 'moottori',
+       'collation' => 'kollaatio',
+       'Column name' => 'Sarakkeen nimi',
+       'Type' => 'Tyyppi',
+       'Length' => 'Pituus',
+       'Auto Increment' => 'Automaattinen lisäys',
+       'Options' => 'Asetukset',
+       'Comment' => 'Kommentit',
+       'Default value' => 'Oletusarvo',
+       'Default values' => 'Oletusarvot',
+       'Drop' => 'Poista',
+       'Are you sure?' => 'Oletko varma?',
+       'Size' => 'Koko',
+       'Compute' => 'Laske',
+       'Move up' => 'Siirrä ylös',
+       'Move down' => 'Siirrä alas',
+       'Remove' => 'Poista',
+       'Maximum number of allowed fields exceeded. Please increase %s.' => 
'Kenttien sallittu enimmäismäärä ylitetty. Kasvata arvoa %s.',
+       
+       'Partition by' => 'Osioi arvolla',
+       'Partitions' => 'Osiot',
+       'Partition name' => 'Osion nimi',
+       'Values' => 'Arvot',
+       
+       'View' => 'Näkymä',
+       'Materialized View' => 'Materialisoitunut näkymä',
+       'View has been dropped.' => 'Näkymä on poistettu.',
+       'View has been altered.' => 'Näkymää on muutettu.',
+       'View has been created.' => 'Näkymä on luotu.',
+       'Alter view' => 'Muuta näkymää',
+       'Create view' => 'Luo näkymä',
+       'Create materialized view' => 'Luo materialisoitunut näkymä',
+       
+       'Indexes' => 'Indeksit',
+       'Indexes have been altered.' => 'Indeksejä on muutettu.',
+       'Alter indexes' => 'Muuta indeksejä',
+       'Add next' => 'Lisää seuraava',
+       'Index Type' => 'Indeksityyppi',
+       'Column (length)' => 'Sarake (pituus)',
+       
+       'Foreign keys' => 'Vieraat avaimet',
+       'Foreign key' => 'Vieras avain',
+       'Foreign key has been dropped.' => 'Vieras avain on poistettu.',
+       'Foreign key has been altered.' => 'Vierasta avainta on muutettu.',
+       'Foreign key has been created.' => 'Vieras avain on luotu.',
+       'Target table' => 'Kohdetaulu',
+       'Change' => 'Muuta',
+       'Source' => 'Lähde',
+       'Target' => 'Kohde',
+       'Add column' => 'Lisää sarake',
+       'Alter' => 'Muuta',
+       'Add foreign key' => 'Lisää vieras avain',
+       'ON DELETE' => 'ON DELETE',
+       'ON UPDATE' => 'ON UPDATE',
+       'Source and target columns must have the same data type, there must be 
an index on the target columns and referenced data must exist.' => 'Lähde- ja 
kohdesarakkeiden tulee olla samaa tietotyyppiä, kohdesarakkeisiin tulee olla 
indeksi ja dataa, johon viitataan, täytyy olla.',
+       
+       'Triggers' => 'Liipaisimet',
+       'Add trigger' => 'Lisää liipaisin',
+       'Trigger has been dropped.' => 'Liipaisin on poistettu.',
+       'Trigger has been altered.' => 'Liipaisinta on muutettu.',
+       'Trigger has been created.' => 'Liipaisin on luotu.',
+       'Alter trigger' => 'Muuta liipaisinta',
+       'Create trigger' => 'Luo liipaisin',
+       'Time' => 'Aika',
+       'Event' => 'Tapahtuma',
+       'Name' => 'Nimi',
+       
+       'select' => 'valitse',
+       'Select' => 'Valitse',
+       'Select data' => 'Valitse data',
+       'Functions' => 'Funktiot',
+       'Aggregation' => 'Aggregaatiot',
+       'Search' => 'Hae',
+       'anywhere' => 'kaikkialta',
+       'Search data in tables' => 'Hae dataa tauluista',
+       'Sort' => 'Lajittele',
+       'descending' => 'alenevasti',
+       'Limit' => 'Raja',
+       'Limit rows' => 'Rajoita rivimäärää',
+       'Text length' => 'Tekstin pituus',
+       'Action' => 'Toimenpide',
+       'Full table scan' => 'Koko taulun läpikäynti',
+       'Unable to select the table' => 'Taulua ei voitu valita',
+       'No rows.' => 'Ei rivejä.',
+       '%d / ' => '%d / ',
+       '%d row(s)' => array('%d rivi', '%d riviä'),
+       'Page' => 'Sivu',
+       'last' => 'viimeinen',
+       'Load more data' => 'Lataa lisää dataa',
+       'Loading' => 'Ladataan',
+       'whole result' => 'koko tulos',
+       '%d byte(s)' => array('%d tavu', '%d tavua'),
+       
+       'Import' => 'Tuonti',
+       '%d row(s) have been imported.' => array('%d rivi tuotiin.', '%d riviä 
tuotiin.'),
+       'File must be in UTF-8 encoding.' => 'Tiedoston täytyy olla 
UTF-8-muodossa.',
+       
+       // in-place editing in select
+       'Modify' => 'Muuta',
+       'Ctrl+click on a value to modify it.' => 'Ctrl+napsauta arvoa 
muuttaaksesi.',
+       'Use edit link to modify this value.' => 'Käytä muokkaa-linkkiä 
muuttaaksesi tätä arvoa.',
+       
+       // %s can contain auto-increment value
+       'Item%s has been inserted.' => 'Tietue%s lisättiin.',
+       'Item has been deleted.' => 'Tietue poistettiin.',
+       'Item has been updated.' => 'Tietue päivitettiin.',
+       '%d item(s) have been affected.' => array('Kohdistui %d tietueeseen.', 
'Kohdistui %d tietueeseen.'),
+       'New item' => 'Uusi tietue',
+       'original' => 'alkuperäinen',
+       // label for value '' in enum data type
+       'empty' => 'tyhjä',
+       'edit' => 'muokkaa',
+       'Edit' => 'Muokkaa',
+       'Insert' => 'Lisää',
+       'Save' => 'Tallenna',
+       'Save and continue edit' => 'Tallenna ja jatka muokkaamista',
+       'Save and insert next' => 'Tallenna ja lisää seuraava',
+       'Selected' => 'Valitut',
+       'Clone' => 'Kloonaa',
+       'Delete' => 'Poista',
+       'You have no privileges to update this table.' => 'Sinulla ei ole 
oikeutta päivittää tätä taulua.',
+       
+       'E-mail' => 'S-posti',
+       'From' => 'Lähettäjä',
+       'Subject' => 'Aihe',
+       'Attachments' => 'Liitteet',
+       'Send' => 'Lähetä',
+       '%d e-mail(s) have been sent.' => array('% sähköpostiviestiä 
lähetetty.', '% sähköpostiviestiä lähetetty.'),
+       
+       // data type descriptions
+       'Numbers' => 'Numerot',
+       'Date and time' => 'Päiväys ja aika',
+       'Strings' => 'Merkkijonot',
+       'Binary' => 'Binäärinen',
+       'Lists' => 'Luettelot',
+       'Network' => 'Verkko',
+       'Geometry' => 'Geometria',
+       'Relations' => 'Suhteet',
+       
+       'Editor' => 'Editori',
+       // date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
+       '$1-$3-$5' => '$5.$3.$1',
+       // hint for date format - use language equivalents for day, month and 
year shortcuts
+       '[yyyy]-mm-dd' => 'pp.kk.[vvvv]',
+       // hint for time format - use language equivalents for hour, minute and 
second shortcuts
+       'HH:MM:SS' => 'HH:MM:SS',
+       'now' => 'nyt',
+       'yes' => 'kyllä',
+       'no' => 'ei',
+       
+       // general SQLite error in create, drop or rename database
+       'File exists.' => 'Tiedosto on olemassa.',
+       'Please use one of the extensions %s.' => 'Käytä jotain 
%s-laajennuksista.',
+       
+       // PostgreSQL and MS SQL schema support
+       'Alter schema' => 'Muuta kaavaa',
+       'Create schema' => 'Luo kaava',
+       'Schema has been dropped.' => 'Kaava poistettiin.',
+       'Schema has been created.' => 'Kaava luotiin.',
+       'Schema has been altered.' => 'Kaavaa muutettiin.',
+       'Schema' => 'Kaava',
+       'Invalid schema.' => 'Kaava ei kelpaa.',
+       
+       // PostgreSQL sequences support
+       'Sequences' => 'Sekvenssit',
+       'Create sequence' => 'Luo sekvenssi',
+       'Sequence has been dropped.' => 'Sekvenssi on poistettu.',
+       'Sequence has been created.' => 'Sekvenssi on luotu.',
+       'Sequence has been altered.' => 'Sekvenssiä on muutettu.',
+       'Alter sequence' => 'Muuta sekvenssiä',
+       
+       // PostgreSQL user types support
+       'User types' => 'Käyttäjän tyypit',
+       'Create type' => 'Luo tyyppi',
+       'Type has been dropped.' => 'Tyyppi poistettiin.',
+       'Type has been created.' => 'Tyyppi luotiin.',
+       'Alter type' => 'Muuta tyyppiä',
+);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/lang/xx.inc.php 
new/adminer-v4.2.4/adminer/lang/xx.inc.php
--- old/adminer-v4.2.3/adminer/lang/xx.inc.php  2015-11-16 06:12:44.000000000 
+0100
+++ new/adminer-v4.2.4/adminer/lang/xx.inc.php  2016-02-09 23:05:14.000000000 
+0100
@@ -49,6 +49,7 @@
        'Query executed OK, %d row(s) affected.' => array('Xx.', 'Xx.'),
        'No commands to execute.' => 'Xx.',
        'Error in query' => 'Xx',
+       'ATTACH queries are not supported.' => 'Xx.',
        'Execute' => 'Xx',
        'Stop on error' => 'Xx',
        'Show only errors' => 'Xx',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/adminer/sql.inc.php 
new/adminer-v4.2.4/adminer/sql.inc.php
--- old/adminer-v4.2.3/adminer/sql.inc.php      2015-11-16 06:12:44.000000000 
+0100
+++ new/adminer-v4.2.4/adminer/sql.inc.php      2016-02-09 23:05:14.000000000 
+0100
@@ -55,7 +55,6 @@
                }
                $commands = 0;
                $errors = array();
-               $line = 0;
                $parse = '[\'"' . ($jush == "sql" ? '`#' : ($jush == "sqlite" ? 
'`[' : ($jush == "mssql" ? '[' : ''))) . ']|/\\*|-- |$' . ($jush == "pgsql" ? 
'|\\$[^$]*\\$' : '');
                $total_start = microtime(true);
                parse_str($_COOKIE["adminer_export"], $adminer_export);
@@ -95,73 +94,82 @@
                                                $q = substr($query, 0, $pos);
                                                $commands++;
                                                $print = "<pre 
id='sql-$commands'><code class='jush-$jush'>" . shorten_utf8(trim($q), 1000) . 
"</code></pre>\n";
-                                               if (!$_POST["only_errors"]) {
+                                               if ($jush == "sqlite" && 
preg_match("~^$space*ATTACH\b~i", $q, $match)) {
+                                                       // PHP doesn't support 
setting SQLITE_LIMIT_ATTACHED
                                                        echo $print;
-                                                       ob_flush();
-                                                       flush(); // can take a 
long time - show the running query
-                                               }
-                                               $start = microtime(true);
-                                               //! don't allow changing of 
character_set_results, convert encoding of displayed query
-                                               if 
($connection->multi_query($q) && is_object($connection2) && 
preg_match("~^$space*USE\\b~isU", $q)) {
-                                                       $connection2->query($q);
-                                               }
+                                                       echo "<p 
class='error'>" . lang('ATTACH queries are not supported.') . "\n";
+                                                       $errors[] = " <a 
href='#sql-$commands'>$commands</a>";
+                                                       if 
($_POST["error_stops"]) {
+                                                               break;
+                                                       }
+                                               } else {
+                                                       if 
(!$_POST["only_errors"]) {
+                                                               echo $print;
+                                                               ob_flush();
+                                                               flush(); // can 
take a long time - show the running query
+                                                       }
+                                                       $start = 
microtime(true);
+                                                       //! don't allow 
changing of character_set_results, convert encoding of displayed query
+                                                       if 
($connection->multi_query($q) && is_object($connection2) && 
preg_match("~^$space*USE\\b~isU", $q)) {
+                                                               
$connection2->query($q);
+                                                       }
 
-                                               do {
-                                                       $result = 
$connection->store_result();
-                                                       $time = " <span 
class='time'>(" . format_time($start) . ")</span>"
-                                                               . (strlen($q) < 
1000 ? " <a href='" . h(ME) . "sql=" . urlencode(trim($q)) . "'>" . 
lang('Edit') . "</a>" : "") // 1000 - maximum length of encoded URL in IE is 
2083 characters
-                                                       ;
-
-                                                       if ($connection->error) 
{
-                                                               echo 
($_POST["only_errors"] ? $print : "");
-                                                               echo "<p 
class='error'>" . lang('Error in query') . ($connection->errno ? " 
($connection->errno)" : "") . ": " . error() . "\n";
-                                                               $errors[] = " 
<a href='#sql-$commands'>$commands</a>";
-                                                               if 
($_POST["error_stops"]) {
-                                                                       break 2;
-                                                               }
+                                                       do {
+                                                               $result = 
$connection->store_result();
+                                                               $time = " <span 
class='time'>(" . format_time($start) . ")</span>"
+                                                                       . 
(strlen($q) < 1000 ? " <a href='" . h(ME) . "sql=" . urlencode(trim($q)) . "'>" 
. lang('Edit') . "</a>" : "") // 1000 - maximum length of encoded URL in IE is 
2083 characters
+                                                               ;
+
+                                                               if 
($connection->error) {
+                                                                       echo 
($_POST["only_errors"] ? $print : "");
+                                                                       echo 
"<p class='error'>" . lang('Error in query') . ($connection->errno ? " 
($connection->errno)" : "") . ": " . error() . "\n";
+                                                                       
$errors[] = " <a href='#sql-$commands'>$commands</a>";
+                                                                       if 
($_POST["error_stops"]) {
+                                                                               
break 2;
+                                                                       }
 
-                                                       } elseif 
(is_object($result)) {
-                                                               $limit = 
$_POST["limit"];
-                                                               $orgtables = 
select($result, $connection2, array(), $limit);
-                                                               if 
(!$_POST["only_errors"]) {
-                                                                       echo 
"<form action='' method='post'>\n";
-                                                                       
$num_rows = $result->num_rows;
-                                                                       echo 
"<p>" . ($num_rows ? ($limit && $num_rows > $limit ? lang('%d / ', $limit) : 
"") . lang('%d row(s)', $num_rows) : "");
-                                                                       echo 
$time;
-                                                                       $id = 
"export-$commands";
-                                                                       $export 
= ", <a href='#$id' onclick=\"return !toggle('$id');\">" . lang('Export') . 
"</a><span id='$id' class='hidden'>: "
-                                                                               
. html_select("output", $adminer->dumpOutput(), $adminer_export["output"]) . " "
-                                                                               
. html_select("format", $dump_format, $adminer_export["format"])
-                                                                               
. "<input type='hidden' name='query' value='" . h($q) . "'>"
-                                                                               
. " <input type='submit' name='export' value='" . lang('Export') . "'><input 
type='hidden' name='token' value='$token'></span>\n"
-                                                                       ;
-                                                                       if 
($connection2 && preg_match("~^($space|\\()*SELECT\\b~isU", $q) && ($explain = 
explain($connection2, $q))) {
-                                                                               
$id = "explain-$commands";
-                                                                               
echo ", <a href='#$id' onclick=\"return !toggle('$id');\">EXPLAIN</a>$export";
-                                                                               
echo "<div id='$id' class='hidden'>\n";
-                                                                               
select($explain, $connection2, $orgtables);
-                                                                               
echo "</div>\n";
-                                                                       } else {
-                                                                               
echo $export;
+                                                               } elseif 
(is_object($result)) {
+                                                                       $limit 
= $_POST["limit"];
+                                                                       
$orgtables = select($result, $connection2, array(), $limit);
+                                                                       if 
(!$_POST["only_errors"]) {
+                                                                               
echo "<form action='' method='post'>\n";
+                                                                               
$num_rows = $result->num_rows;
+                                                                               
echo "<p>" . ($num_rows ? ($limit && $num_rows > $limit ? lang('%d / ', $limit) 
: "") . lang('%d row(s)', $num_rows) : "");
+                                                                               
echo $time;
+                                                                               
$id = "export-$commands";
+                                                                               
$export = ", <a href='#$id' onclick=\"return !toggle('$id');\">" . 
lang('Export') . "</a><span id='$id' class='hidden'>: "
+                                                                               
        . html_select("output", $adminer->dumpOutput(), 
$adminer_export["output"]) . " "
+                                                                               
        . html_select("format", $dump_format, $adminer_export["format"])
+                                                                               
        . "<input type='hidden' name='query' value='" . h($q) . "'>"
+                                                                               
        . " <input type='submit' name='export' value='" . lang('Export') . 
"'><input type='hidden' name='token' value='$token'></span>\n"
+                                                                               
;
+                                                                               
if ($connection2 && preg_match("~^($space|\\()*SELECT\\b~isU", $q) && ($explain 
= explain($connection2, $q))) {
+                                                                               
        $id = "explain-$commands";
+                                                                               
        echo ", <a href='#$id' onclick=\"return 
!toggle('$id');\">EXPLAIN</a>$export";
+                                                                               
        echo "<div id='$id' class='hidden'>\n";
+                                                                               
        select($explain, $connection2, $orgtables);
+                                                                               
        echo "</div>\n";
+                                                                               
} else {
+                                                                               
        echo $export;
+                                                                               
}
+                                                                               
echo "</form>\n";
                                                                        }
-                                                                       echo 
"</form>\n";
-                                                               }
 
-                                                       } else {
-                                                               if 
(preg_match("~^$space*(CREATE|DROP|ALTER)$space+(DATABASE|SCHEMA)\\b~isU", $q)) 
{
-                                                                       
restart_session();
-                                                                       
set_session("dbs", null); // clear cache
-                                                                       
stop_session();
-                                                               }
-                                                               if 
(!$_POST["only_errors"]) {
-                                                                       echo 
"<p class='message' title='" . h($connection->info) . "'>" . lang('Query 
executed OK, %d row(s) affected.', $connection->affected_rows) . "$time\n";
+                                                               } else {
+                                                                       if 
(preg_match("~^$space*(CREATE|DROP|ALTER)$space+(DATABASE|SCHEMA)\\b~isU", $q)) 
{
+                                                                               
restart_session();
+                                                                               
set_session("dbs", null); // clear cache
+                                                                               
stop_session();
+                                                                       }
+                                                                       if 
(!$_POST["only_errors"]) {
+                                                                               
echo "<p class='message' title='" . h($connection->info) . "'>" . lang('Query 
executed OK, %d row(s) affected.', $connection->affected_rows) . "$time\n";
+                                                                       }
                                                                }
-                                                       }
 
-                                                       $start = 
microtime(true);
-                                               } while 
($connection->next_result());
+                                                               $start = 
microtime(true);
+                                                       } while 
($connection->next_result());
+                                               }
 
-                                               $line += 
substr_count($q.$found, "\n");
                                                $query = substr($query, 
$offset);
                                                $offset = 0;
                                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/changes.txt 
new/adminer-v4.2.4/changes.txt
--- old/adminer-v4.2.3/changes.txt      2015-11-16 06:12:44.000000000 +0100
+++ new/adminer-v4.2.4/changes.txt      2016-02-09 23:05:14.000000000 +0100
@@ -1,3 +1,9 @@
+Adminer 4.2.4 (released 2016-02-06):
+Fix remote execution in SQLite query
+MySQL: Support PHP 7
+Bosnian translation
+Finnish translation
+
 Adminer 4.2.3 (released 2015-11-15):
 Fix XSS in indexes (non-MySQL only)
 Support PHP 7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/adminer-v4.2.3/designs/pappu687/adminer.css 
new/adminer-v4.2.4/designs/pappu687/adminer.css
--- old/adminer-v4.2.3/designs/pappu687/adminer.css     2015-11-16 
06:12:44.000000000 +0100
+++ new/adminer-v4.2.4/designs/pappu687/adminer.css     2016-02-09 
23:05:14.000000000 +0100
@@ -5,7 +5,7 @@
 https://raw.github.com/vrana/adminer/master/designs/ng9/adminer.css
 */
 
-@import url(http://fonts.googleapis.com/css?family=Roboto:400,600);
+@import url(https://fonts.googleapis.com/css?family=Roboto:400,600);
 
 
 * {


Reply via email to