diff --git a/.gitattributes b/.gitattributes
index 0e38cd036bb3de34cef237dabe6862aeee53b495..9007145b63f462747fa5ba949068efc4a3e86aab 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -698,6 +698,7 @@ ecrire/maj/v016.php -text
 ecrire/maj/v017.php -text
 ecrire/maj/v018.php -text
 ecrire/maj/v019.php -text
+ecrire/maj/v019_pre193.php -text
 ecrire/prive.php -text
 ecrire/public/index.php -text
 ecrire/rien.gif -text
diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php
index 6e0e3f28f70d04df0823dc664707847b85ccd383..f8a4faa2c96440a411e0f11c02d4fa9f7c11e027 100644
--- a/ecrire/base/upgrade.php
+++ b/ecrire/base/upgrade.php
@@ -66,12 +66,10 @@ function maj_base($version_cible = 0) {
 	}
 }
 
-// A partir de la version 1.945, le while ci-dessus aboutit ici.
+// A partir des > 1.926 (i.e SPIP 1.9.2), le while ci-dessus aboutit ici.
 // Se relancer soi-meme pour eviter l'interruption pendant une operation SQL
-// (qu'on espere pas trop longue chacune).
-// Ne pas perdre son temps a creer le fichier des meta,
-// le debut de exec/upgrade le refabrique pour etre certains de repartir
-// au point de relance.
+// (qu'on espere pas trop longue chacune)
+// evidemment en ecrivant dans la meta a quel numero on en est.
 
 define('_UPGRADE_TIME_OUT', 20);
 
diff --git a/ecrire/maj/v019.php b/ecrire/maj/v019.php
index 2736b75d4ea00b88276119d8080e9ea714261217..c3837e303cd71675389204aa0fd52593110d71bd 100644
--- a/ecrire/maj/v019.php
+++ b/ecrire/maj/v019.php
@@ -14,324 +14,55 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 function maj_v019_dist($version_installee, $version_cible)
 {
-	// Syndication : ajout de l'option resume=oui/non et de la langue
-	if (upgrade_vers(1.901, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_syndic ADD `resume` VARCHAR(3) DEFAULT 'oui'");
-		spip_query("ALTER TABLE spip_syndic_articles ADD `lang` VARCHAR(10) DEFAULT '' NOT NULL");
-		maj_version(1.901);
-	}
-
-	// Syndication : ajout de source, url_source, tags
-	if (upgrade_vers(1.902, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_syndic_articles ADD `url_source` TINYTEXT DEFAULT '' NOT NULL");
-		spip_query("ALTER TABLE spip_syndic_articles ADD `source` TINYTEXT DEFAULT '' NOT NULL");
-		spip_query("ALTER TABLE spip_syndic_articles ADD `tags` TEXT DEFAULT '' NOT NULL");
-		maj_version(1.902);
-	}
-
-	// URLs propres des sites (sait-on jamais)
-	// + oubli des KEY url_propre sur les auteurs si installation neuve
-	if (upgrade_vers(1.903, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_syndic ADD `url_propre` VARCHAR(255) NOT NULL");
-		spip_query("ALTER TABLE spip_syndic ADD INDEX `url_propre` (`url_propre`)");
-		spip_query("ALTER TABLE spip_auteurs ADD INDEX `url_propre` (`url_propre`)");
-		maj_version(1.903);
-	}
-
-	// suppression des anciennes tables temporaires des visites
-	// (maintenant stockees sous forme de fichiers)
-	if (upgrade_vers(1.904, $version_installee, $version_cible)) {
-		spip_query("DROP TABLE IF EXISTS spip_visites_temp");
-		spip_query("DROP TABLE IF EXISTS spip_referers_temp");
-		maj_version(1.904);
-	}
-
-	// fusion des 10 tables index en une seule
-	// pour fonctions futures evoluees du moteur de recherche
-	if (upgrade_vers(1.905, $version_installee, $version_cible)) {
-		// agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
-		// des choses plus sympa
-		spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
-		// table des correspondances table->id_table
-		$liste_tables = array();
-		$liste_tables[1]='spip_articles';
-		$liste_tables[2]='spip_auteurs';
-		$liste_tables[3]='spip_breves';
-		$liste_tables[4]='spip_documents';
-		$liste_tables[5]='spip_forum';
-		$liste_tables[6]='spip_mots';
-		$liste_tables[7]='spip_rubriques';
-		$liste_tables[8]='spip_signatures';
-		$liste_tables[9]='spip_syndic';
-
-		ecrire_meta('index_table', serialize($liste_tables));
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_article` as id_objet,'1' as id_table FROM spip_index_articles");
-		spip_query("DROP TABLE IF EXISTS spip_index_articles");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_auteur` as id_objet,'2' as id_table FROM spip_index_auteurs");
-		spip_query("DROP TABLE IF EXISTS spip_index_auteurs");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_breve` as id_objet,'3' as id_table FROM spip_index_breves");
-		spip_query("DROP TABLE IF EXISTS spip_index_breves");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_document` as id_objet,'4' as id_table FROM spip_index_documents");
-		spip_query("DROP TABLE IF EXISTS spip_index_documents");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_forum` as id_objet,'5' as id_table FROM spip_index_forum");
-		spip_query("DROP TABLE IF EXISTS spip_index_forum");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_mot` as id_objet,'6' as id_table FROM spip_index_mots");
-		spip_query("DROP TABLE IF EXISTS spip_index_mots");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_rubrique` as id_objet,'7' as id_table FROM spip_index_rubriques");
-		spip_query("DROP TABLE IF EXISTS spip_index_rubriques");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_signature` as id_objet,'8' as id_table FROM spip_index_signatures");
-		spip_query("DROP TABLE IF EXISTS spip_index_signatures");
-
-		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_syndic` as id_objet,'9' as `id_table FROM spip_index_syndic");
-		spip_query("DROP TABLE IF EXISTS spip_index_syndic");
-
-		maj_version(1.905);
-	}
-
-
-	// cette table est desormais geree par le plugin "podcast_client", on la
-	// supprime si le plugin n'est pas active ; risque inherent a l'utilisation
-	// de versions alpha :-)
-	if (upgrade_vers(1.906, $version_installee, $version_cible)) {
-		if (!@in_array('podcast_client', $GLOBALS['plugins'])) {
-			spip_query("DROP TABLE spip_documents_syndic");
-		}
-		maj_version(1.906);
-	}
-	if (upgrade_vers(1.907, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_forum ADD INDEX `idx` (`idx`)");
-		maj_version(1.907);
-	}
-	// Oups ! on stockait les tags de syndication sous la forme rel="category"
-	// au lieu de rel="directory" - http://microformats.org/wiki/rel-directory
-	if (upgrade_vers(1.908, $version_installee, $version_cible)) {
-		spip_query("UPDATE spip_syndic_articles SET `tags` = REPLACE(`tags`, 'rel=\"category\">', 'rel=\"directory\">') WHERE `tags` like '%category%'");
-		maj_version(1.908);
-	}
-	if (upgrade_vers(1.909, $version_installee, $version_cible)) {
-		spip_query("ALTER IGNORE TABLE spip_mots_articles ADD PRIMARY KEY (`id_article`, `id_mot`)");
-		spip_query("ALTER IGNORE TABLE spip_mots_breves ADD PRIMARY KEY (`id_breve`, `id_mot`)");
-		spip_query("ALTER IGNORE TABLE spip_mots_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_mot`)");
-		spip_query("ALTER IGNORE TABLE spip_mots_syndic ADD PRIMARY KEY (`id_syndic`, `id_mot`)");
-		spip_query("ALTER IGNORE TABLE spip_mots_documents ADD PRIMARY KEY (`id_document`, `id_mot`)");
-		spip_query("ALTER IGNORE TABLE spip_mots_forum ADD PRIMARY KEY (`id_forum`, `id_mot`)");
-		maj_version(1.909);
-	}
-
-	if (upgrade_vers(1.910, $version_installee, $version_cible)) {
-		spip_query("ALTER IGNORE TABLE spip_auteurs_articles ADD PRIMARY KEY (`id_auteur`, `id_article`)");
-		spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques ADD PRIMARY KEY (`id_auteur`, `id_rubrique`)");
-		spip_query("ALTER IGNORE TABLE spip_auteurs_messages ADD PRIMARY KEY (`id_auteur`, `id_message`)");
-		maj_version(1.910);
-	}
-
-	if (upgrade_vers(1.911, $version_installee, $version_cible)) {
-
-		spip_query("ALTER IGNORE TABLE spip_auteurs_articles DROP INDEX `id_auteur`");
-		spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques DROP INDEX `id_auteur`");
-		spip_query("ALTER IGNORE TABLE spip_auteurs_messages DROP INDEX `id_auteur`");
-		spip_query("ALTER IGNORE TABLE spip_mots_articles DROP INDEX `id_article`");
-		spip_query("ALTER IGNORE TABLE spip_mots_breves DROP INDEX `id_breve`");
-		spip_query("ALTER IGNORE TABLE spip_mots_rubriques DROP INDEX `id_rubrique`");
-		spip_query("ALTER IGNORE TABLE spip_mots_syndic DROP INDEX `id_syndic`");
-		spip_query("ALTER IGNORE TABLE spip_mots_forum DROP INDEX `id_forum`");
-		spip_query("ALTER IGNORE TABLE spip_mots_documents DROP INDEX `id_document`");
-# 18 juillet 2007: table depreciee
-#		spip_query("ALTER IGNORE TABLE spip_caches DROP	INDEX fichier");
-		maj_version(1.911);
-	}
-
-	// Le logo du site n'est plus le logo par defaut des rubriques
-	// mais pour assurer la compatibilite ascendante, on le duplique
-	if (upgrade_vers(1.912, $version_installee, $version_cible)) {
-		@copy(_DIR_LOGOS.'rubon0.gif', _DIR_LOGOS.'siteon0.gif');
-		@copy(_DIR_LOGOS.'ruboff0.gif', _DIR_LOGOS.'siteoff0.gif');
-		@copy(_DIR_LOGOS.'rubon0.jpg', _DIR_LOGOS.'siteon0.jpg');
-		@copy(_DIR_LOGOS.'ruboff0.jpg', _DIR_LOGOS.'siteoff0.jpg');
-		@copy(_DIR_LOGOS.'rubon0.png', _DIR_LOGOS.'siteon0.png');
-		@copy(_DIR_LOGOS.'ruboff0.png', _DIR_LOGOS.'siteoff0.png');
-		maj_version(1.912);
-	}
-
-	// suppression de auteur_modif qui n'est plus utilise nulle part
-	if (upgrade_vers(1.913, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_articles DROP `auteur_modif`");
-		maj_version(1.913);
-	}
-
-	// Ajout de SVG
-	if (upgrade_vers(1.914, $version_installee, $version_cible)) {
-		spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('svg', 'Scalable Vector Graphics', 'embed')");
-		spip_query("UPDATE spip_types_documents SET `mime_type`='image/svg+xml' WHERE `extension`='svg'");
-		maj_version(1.914);
-	}
-
-	// Ajout de plein de type mime
-	if (upgrade_vers(1.915, $version_installee, $version_cible)) {
-		maj_version(1.915);
-	}
-	// refaire l'upgrade 1.905 qui a pu foirer en partie a cause de la requete ALTER sur spip_meta
-	if (upgrade_vers(1.916, $version_installee, $version_cible)) {
-		// agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
-		// des choses plus sympa
-		spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
-#8/08/07  plus d'indexation dans le core
-		//include_spip('inc/indexation'); 
-		//update_index_tables();
-		maj_version(1.916);
-	}
-	if (upgrade_vers(1.917, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_documents DROP `inclus`");
-		maj_version(1.917);
-	}
-
-	// Permettre d'enregistrer un numero IP dans les revisions d'articles
-	// a la place de l'id_auteur
-	if (upgrade_vers(1.918, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_versions CHANGE `id_auteur` `id_auteur` VARCHAR(23)");
-		maj_version(1.918);
-	}
-
-	if (upgrade_vers(1.919, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_ajax_fonc DROP `id_auteur`");
-		maj_version('1.919');
-	}
-
-	if (upgrade_vers(1.920, $version_installee, $version_cible)) {
-		spip_query("ALTER IGNORE TABLE spip_documents_articles ADD PRIMARY KEY (`id_article`, `id_document`)");
-		spip_query("ALTER IGNORE TABLE spip_documents_breves ADD PRIMARY KEY (`id_breve`, `id_document`)");
-		spip_query("ALTER IGNORE TABLE spip_documents_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_document`)");
-		spip_query("ALTER IGNORE TABLE spip_documents_articles DROP INDEX `id_article`");
-		spip_query("ALTER IGNORE TABLE spip_documents_breves DROP INDEX `id_breve`");
-		spip_query("ALTER IGNORE TABLE spip_documents_rubriques DROP INDEX `id_rubrique`");
-		maj_version('1.920');
-	}
-	if (upgrade_vers(1.922, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_meta ADD `impt` ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER `valeur`");
-		$meta_serveur = array('version_installee','adresse_site','alea_ephemere_ancien','alea_ephemere','alea_ephemere_date','langue_site','langues_proposees','date_calcul_rubriques','derniere_modif','optimiser_table','drapeau_edition','creer_preview','taille_preview','creer_htpasswd','creer_htaccess','gd_formats_read','gd_formats',
-		'netpbm_formats','formats_graphiques','image_process','plugin_header','plugin');
-		foreach($meta_serveur as $nom)
-			spip_query("UPDATE spip_meta SET `impt`='non' WHERE `nom`="._q($nom));
-		maj_version('1.922');
-	}
-	if (upgrade_vers(1.923, $version_installee, $version_cible)) {
-		if (isset($GLOBALS['meta']['IMPORT_tables_noimport'])){
-			$IMPORT_tables_noimport = unserialize($GLOBALS['meta']['IMPORT_tables_noimport']);
-			foreach ($IMPORT_tables_noimport as $key=>$table)
-				if ($table=='spip_meta') unset($IMPORT_tables_noimport[$key]);
-			ecrire_meta('IMPORT_tables_noimport',serialize($IMPORT_tables_noimport),'non');
-		}
-		maj_version('1.923');
+	if (1.926 >= $version_installee) {
+		include_spip('maj/v019_pre193');
+		v019_pre193($version_installee, $version_cible);
 	}
+	maj_while($version_installee, $version_cible);
+}
 
-	if (upgrade_vers(1.924, $version_installee, $version_cible)) {
-		spip_query('DROP TABLE spip_ajax_fonc');
-		maj_version('1.924');
-	}
+// Cas particulier introduit en http://trac.rezo.net/trac/spip/changeset/10335
+function maj_v019_38()
+{
+	sql_alter("TABLE spip_urls CHANGE `maj` date DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL");
+}
 
-	if (upgrade_vers(1.925, $version_installee, $version_cible)) {
-		include_spip('inc/flock');
-		/* deplacement des sessions */
-		$f_session = preg_files('data', 'session_');
-		$repertoire = _DIR_SESSIONS;
-		if(!@file_exists($repertoire)) {
-			$repertoire = preg_replace(','._DIR_TMP.',', '', $repertoire);
-			$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
-		}
-		foreach($f_session as $f) {
-			$d = basename($f);
-			@copy($f, $repertoire.$d);
-		}
-		/* deplacement des visites */
-		$f_visites = preg_files('data/visites');
-		$repertoire = sous_repertoire(_DIR_TMP, 'visites');
-		foreach($f_visites as $f) {
-			$d = basename($f);
-			@copy($f, $repertoire.$d);
-		}
-		/* deplacement des upload */
-		$auteurs = array();
-		$req = spip_query("SELECT `login` FROM spip_auteurs WHERE `statut` = '0minirezo'");
-		while($row = sql_fetch($req))
-			$auteurs[] = $row['login']; 
-		$f_upload = preg_files('upload', -1, 10000, $auteurs);
-		$repertoire = _DIR_TRANSFERT;
-		if(!@file_exists($repertoire)) {
-			$repertoire = preg_replace(','._DIR_TMP.',', '', $repertoire);
-			$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
-		}
-		foreach($auteurs as $login) {
-			if(is_dir('upload/'.$login))
-				$sous_repertoire = sous_repertoire(_DIR_TRANSFERT, $login);
-		}
-		foreach($f_upload as $f) {
-			@copy($f, _DIR_TMP.$f);
-		}
-		/* deplacement des dumps */
-		$f_session = preg_files('data', 'dump');
-		$repertoire = _DIR_DUMP;
-		if(!@file_exists($repertoire)) {
-			$repertoire = preg_replace(','._DIR_TMP.',', '', $repertoire);
-			$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
-		}
-		foreach($f_session as $f) {
-			$d = basename($f);
-			@copy($f, $repertoire.$d);
-		}
-		maj_version('1.925');
-	}
-	// Ajout de MP4
-	if (upgrade_vers(1.926, $version_installee, $version_cible)) {
-		spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('mp4', 'MPEG4', 'embed')");
-		spip_query("UPDATE spip_types_documents SET `mime_type`='application/mp4' WHERE `extension`='mp4'");
-		maj_version('1.926');
-	}
+/*--------------------------------------------------------------------- */
+/*			 Nouvelle gestion des MAJ			*/
+/* ca coincide avec l'état de la 1.9.2, mais c'est un peu retroactif	*/
+/*--------------------------------------------------------------------- */
 
 	// FLV est embeddable, l'upgrade precedent l'avait oublie
-	if (upgrade_vers(1.931, $version_installee, $version_cible)) {
-		spip_query("UPDATE spip_types_documents SET `inclus`='embed' WHERE `extension`='flv'");
-		maj_version('1.931');
-	}
+function maj_1_931 () {
+	spip_query("UPDATE spip_types_documents SET `inclus`='embed' WHERE `extension`='flv'");
+}
 
 	// Ajout de spip_forum.date_thread, et on essaie de le remplir
 	// a coup de table temporaire (est-ce autorise partout... sinon
 	// tant pis, ca ne marchera que pour les forums recemment modifies)
-	if (upgrade_vers(1.932, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_forum ADD `date_thread` datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
-		spip_query("ALTER TABLE spip_forum ADD INDEX `date_thread` (`date_thread`)");
+function maj_1_932 () {
+	sql_alter("TABLE spip_forum ADD `date_thread` datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
+	sql_alter("TABLE spip_forum ADD INDEX `date_thread` (`date_thread`)");
+
+	spip_query("DROP TABLE IF EXISTS spip_tmp");
+	spip_query("CREATE TEMPORARY TABLE spip_tmp SELECT `id_thread`,MAX(`date_heure`) AS dt FROM spip_forum GROUP BY `id_thread`");
+	sql_alter("TABLE spip_tmp ADD INDEX `p` (`id_thread`)");
+	spip_query("UPDATE spip_forum AS F JOIN spip_tmp AS T ON F.id_thread=T.id_thread SET F.date_thread=T.dt");
+	spip_query("DROP TABLE spip_tmp");
+}
 
-		spip_query("DROP TABLE IF EXISTS spip_tmp");
-		spip_query("CREATE TEMPORARY TABLE spip_tmp SELECT `id_thread`,MAX(`date_heure`) AS dt FROM spip_forum GROUP BY `id_thread`");
-		spip_query("ALTER TABLE spip_tmp ADD INDEX `p` (`id_thread`)");
-		spip_query("UPDATE spip_forum AS F JOIN spip_tmp AS T ON F.id_thread=T.id_thread SET F.date_thread=T.dt");
-		spip_query("DROP TABLE spip_tmp");
 
-		maj_version('1.932');
-	}
-	if (upgrade_vers(1.933, $version_installee, $version_cible)) {
-		// on ne fait que reecrire le numero de version installee en metant explicitement impt a 'non'
-		maj_version('1.933');
-	}
-
-	// Retrait de _DIR_IMG dans le champ fichier de la table des doc
-	if (upgrade_vers(1.934, $version_installee, $version_cible)) {
+// Retrait de _DIR_IMG dans le champ fichier de la table des doc
+function maj_1_934 () {
 	  $dir_img = substr(_DIR_IMG,strlen(_DIR_RACINE));
 	  $n = strlen($dir_img) + 1;
 	  spip_query("UPDATE spip_documents SET `fichier`=substring(fichier,$n) WHERE `fichier` LIKE " . _q($dir_img . '%'));
-	  maj_version('1.934');
-	}
-	if (upgrade_vers(1.935, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_documents_articles ADD `vu` ENUM('non', 'oui') DEFAULT 'non' NOT NULL");
-		spip_query("ALTER TABLE spip_documents_rubriques ADD `vu` ENUM('non', 'oui') DEFAULT 'non' NOT NULL");
-		spip_query("ALTER TABLE spip_documents_breves ADD `vu` ENUM('non', 'oui') DEFAULT 'non' NOT NULL");
+}
+
+function maj_1_935 () {
+	sql_alter("TABLE spip_documents_articles ADD `vu` ENUM('non', 'oui') DEFAULT 'non' NOT NULL");
+	sql_alter("TABLE spip_documents_rubriques ADD `vu` ENUM('non', 'oui') DEFAULT 'non' NOT NULL");
+	sql_alter("TABLE spip_documents_breves ADD `vu` ENUM('non', 'oui') DEFAULT 'non' NOT NULL");
 		include_spip('inc/texte');
 		foreach(array('article'=>'id_article','rubrique'=>'id_rubrique','breve'=>'id_breve') as $type => $id_table_objet){
 			$table_objet = "$type"."s";
@@ -347,58 +78,56 @@ function maj_v019_dist($version_installee, $version_cible)
 				}
 			}
 		}
-	  maj_version('1.935');
-	}
+}
 
-	if (upgrade_vers(1.937, $version_installee, $version_cible)) {
+function maj_1_937 () {
 		// convertir les champs blob des tables spip en champs texte
-		convertir_un_champ_blob_en_text("spip_articles","texte","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_articles","extra","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_auteurs","extra","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_breves","texte","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_breves","extra","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_messages","texte","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_mots","texte","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_mots","extra","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_groupes_mots","texte","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_rubriques","texte","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_rubriques","extra","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_syndic","nom_site","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_syndic","descriptif","TEXT");
-		convertir_un_champ_blob_en_text("spip_syndic","extra","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_syndic_articles","descriptif","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_petitions","texte","LONGTEXT");
-		convertir_un_champ_blob_en_text("spip_ortho_cache","suggest","TEXT");
-		maj_version('1.938');
-	}
+	convertir_un_champ_blob_en_text("spip_articles","texte","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_articles","extra","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_auteurs","extra","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_breves","texte","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_breves","extra","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_messages","texte","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_mots","texte","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_mots","extra","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_groupes_mots","texte","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_rubriques","texte","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_rubriques","extra","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_syndic","nom_site","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_syndic","descriptif","TEXT");
+	convertir_un_champ_blob_en_text("spip_syndic","extra","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_syndic_articles","descriptif","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_petitions","texte","LONGTEXT");
+	convertir_un_champ_blob_en_text("spip_ortho_cache","suggest","TEXT");
+}
+
 
-	if (upgrade_vers(1.938, $version_installee, $version_cible)) {
-		// Des champs NULL a l'installation
-		// Ajouter un champ extension aux spip_documents, et le
-		// remplir avec les valeurs ad hoc
-		spip_query("ALTER TABLE spip_documents ADD `extension` VARCHAR(10) NOT NULL DEFAULT ''");
-		spip_query("ALTER TABLE spip_documents ADD INDEX `extension` (`extension`)");
+function maj_1_938 () {
+	// Des champs NULL a l'installation
+	// Ajouter un champ extension aux spip_documents, et le
+	// remplir avec les valeurs ad hoc
+	sql_alter("TABLE spip_documents ADD `extension` VARCHAR(10) NOT NULL DEFAULT ''");
+	sql_alter("TABLE spip_documents ADD INDEX `extension` (`extension`)");
 		$s = spip_query("SELECT `id_type`,`extension` FROM spip_types_documents");
 		while ($t = sql_fetch($s)) {
 			spip_query("UPDATE spip_documents
 				SET `extension`="._q($t['extension'])
 				." WHERE `id_type`="._q($t['id_type']));
 		}
-		spip_query("ALTER TABLE spip_documents DROP INDEX `id_type`, DROP `id_type`");
+	sql_alter("TABLE spip_documents DROP INDEX `id_type`, DROP `id_type`");
 		## supprimer l'autoincrement avant de supprimer la PRIMARY KEY
-		spip_query("ALTER TABLE spip_types_documents CHANGE `id_type` `id_type` BIGINT( 21 ) NOT NULL "); 
-		spip_query("ALTER TABLE spip_types_documents DROP PRIMARY KEY");
+	sql_alter("TABLE spip_types_documents CHANGE `id_type` `id_type` BIGINT( 21 ) NOT NULL "); 
+	sql_alter("TABLE spip_types_documents DROP PRIMARY KEY");
 
-		spip_query("ALTER TABLE spip_types_documents DROP `id_type`");
-		spip_query("ALTER TABLE spip_types_documents DROP INDEX `extension`");
+	sql_alter("TABLE spip_types_documents DROP `id_type`");
+	sql_alter("TABLE spip_types_documents DROP INDEX `extension`");
 
 		## recreer la PRIMARY KEY sur spip_types_documents.extension
-		spip_query("ALTER TABLE spip_types_documents ADD PRIMARY KEY (`extension`)");
-		maj_version('1.938');
-	}
+	sql_alter("TABLE spip_types_documents ADD PRIMARY KEY (`extension`)");
+}
 
-	if (upgrade_vers(1.939, $version_installee, $version_cible)) {
-		serie_alter('1939',
+function maj_1_939 () {
+	serie_alter('1939',
 		array(
 		"TABLE spip_visites CHANGE `visites` `visites` INT UNSIGNED DEFAULT '0' NOT NULL",
 		"TABLE spip_visites_articles CHANGE `visites` `visites` INT UNSIGNED DEFAULT '0' NOT NULL",
@@ -407,62 +136,50 @@ function maj_v019_dist($version_installee, $version_cible)
 		"TABLE spip_referers CHANGE `visites_veille` `visites_veille` INT UNSIGNED DEFAULT '0' NOT NULL",
 		"TABLE spip_referers_articles CHANGE `visites` `visites` INT UNSIGNED DEFAULT '0' NOT NULL"
 		));
-	}
+}
 
-	if (upgrade_vers(1.940, $version_installee, $version_cible)) {
-		spip_query("DROP TABLE spip_caches");
-		maj_version('1.940');
-	}
+function  maj_1_940 ($version_installee, $version_cible) {
+	spip_query("DROP TABLE spip_caches");
+}
 
-	if (upgrade_vers(1.941, $version_installee, $version_cible)) {
-		spip_query("UPDATE spip_meta SET `valeur` = '' WHERE `nom`='preview' AND `valeur`='non' ");
-		spip_query("UPDATE spip_meta SET `valeur` = ',0minirezo,1comite,' WHERE `nom`='preview' AND `valeur`='1comite' ");
-		spip_query("UPDATE spip_meta SET `valeur` = ',0minirezo,' WHERE `nom`='preview' AND `valeur`='oui' ");
-		maj_version('1.941');
-	}
 
-	if (upgrade_vers(1.942, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_auteurs CHANGE `statut` `statut` varchar(255)  DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_breves CHANGE `statut` `statut` varchar(6)  DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_messages CHANGE `statut` `statut` varchar(6)  DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_rubriques CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_rubriques CHANGE `statut_tmp` `statut_tmp` varchar(10) DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_syndic CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_syndic_articles CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_forum CHANGE `statut` `statut` varchar(8) DEFAULT '0' NOT NULL");
-		spip_query("ALTER TABLE spip_signatures CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
-		maj_version('1.942');
-	}
+function maj_1_941 () {
+	spip_query("UPDATE spip_meta SET `valeur` = '' WHERE `nom`='preview' AND `valeur`='non' ");
+	spip_query("UPDATE spip_meta SET `valeur` = ',0minirezo,1comite,' WHERE `nom`='preview' AND `valeur`='1comite' ");
+	spip_query("UPDATE spip_meta SET `valeur` = ',0minirezo,' WHERE `nom`='preview' AND `valeur`='oui' ");
+}
+
+function maj_1_942 () {
+	sql_alter("TABLE spip_auteurs CHANGE `statut` `statut` varchar(255)  DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_breves CHANGE `statut` `statut` varchar(6)  DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_messages CHANGE `statut` `statut` varchar(6)  DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_rubriques CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_rubriques CHANGE `statut_tmp` `statut_tmp` varchar(10) DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_syndic CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_syndic_articles CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_forum CHANGE `statut` `statut` varchar(8) DEFAULT '0' NOT NULL");
+	sql_alter("TABLE spip_signatures CHANGE `statut` `statut` varchar(10) DEFAULT '0' NOT NULL");
+}
+
 
 	// suppression de l'indexation dans la version standard
-	if (upgrade_vers(1.943, $version_installee, $version_cible)) {
-		foreach(array(
+function maj_1_943 () {
+	foreach(array(
 		'articles', 'auteurs', 'breves', 'mots', 'rubriques', 'documents', 'syndic', 'forum', 'signatures'
 		) as $type) {
-			spip_query("ALTER TABLE spip_$type DROP KEY `idx`");
-			spip_query("ALTER TABLE spip_$type DROP `idx`");
+		sql_alter("TABLE spip_$type DROP KEY `idx`");
+		sql_alter("TABLE spip_$type DROP `idx`");
 		}
-		spip_query("DROP TABLE spip_index");
-		spip_query("DROP TABLE spip_index_dico");
-		maj_version('1.943');
-	}
-	if (upgrade_vers(1.944, $version_installee, $version_cible)) {
-		spip_query("ALTER TABLE spip_documents CHANGE `taille` `taille` integer");
-		spip_query("ALTER TABLE spip_documents CHANGE `largeur` `largeur` integer");
-		spip_query("ALTER TABLE spip_documents CHANGE `hauteur` `hauteur` integer");
-		maj_version('1.944');
-	}
-	maj_while($version_installee, $version_cible);
+	spip_query("DROP TABLE spip_index");
+	spip_query("DROP TABLE spip_index_dico");
+ }
+
+function maj_1_944 () {
+	sql_alter("TABLE spip_documents CHANGE `taille` `taille` integer");
+	sql_alter("TABLE spip_documents CHANGE `largeur` `largeur` integer");
+	sql_alter("TABLE spip_documents CHANGE `hauteur` `hauteur` integer");
 }
 
-// Cas particulier introduit en http://trac.rezo.net/trac/spip/changeset/10335
-function maj_v019_38()
-{
-	sql_alter("TABLE spip_urls CHANGE `maj` date DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL");
-}
-
-/* ------------ Debut de la nouvelle gestion des MAJ ------------- */
-
 function maj_1_945()
 {
   serie_alter('1945',
diff --git a/ecrire/maj/v019_pre193.php b/ecrire/maj/v019_pre193.php
new file mode 100644
index 0000000000000000000000000000000000000000..1b2242ee4f6cf6fcaa379f86c87cef80141f289d
--- /dev/null
+++ b/ecrire/maj/v019_pre193.php
@@ -0,0 +1,298 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function v019_pre193($version_installee, $version_cible)
+{
+	// Syndication : ajout de l'option resume=oui/non et de la langue
+	if (upgrade_vers(1.901, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_syndic ADD `resume` VARCHAR(3) DEFAULT 'oui'");
+		spip_query("ALTER TABLE spip_syndic_articles ADD `lang` VARCHAR(10) DEFAULT '' NOT NULL");
+		maj_version(1.901);
+	}
+
+	// Syndication : ajout de source, url_source, tags
+	if (upgrade_vers(1.902, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_syndic_articles ADD `url_source` TINYTEXT DEFAULT '' NOT NULL");
+		spip_query("ALTER TABLE spip_syndic_articles ADD `source` TINYTEXT DEFAULT '' NOT NULL");
+		spip_query("ALTER TABLE spip_syndic_articles ADD `tags` TEXT DEFAULT '' NOT NULL");
+		maj_version(1.902);
+	}
+
+	// URLs propres des sites (sait-on jamais)
+	// + oubli des KEY url_propre sur les auteurs si installation neuve
+	if (upgrade_vers(1.903, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_syndic ADD `url_propre` VARCHAR(255) NOT NULL");
+		spip_query("ALTER TABLE spip_syndic ADD INDEX `url_propre` (`url_propre`)");
+		spip_query("ALTER TABLE spip_auteurs ADD INDEX `url_propre` (`url_propre`)");
+		maj_version(1.903);
+	}
+
+	// suppression des anciennes tables temporaires des visites
+	// (maintenant stockees sous forme de fichiers)
+	if (upgrade_vers(1.904, $version_installee, $version_cible)) {
+		spip_query("DROP TABLE IF EXISTS spip_visites_temp");
+		spip_query("DROP TABLE IF EXISTS spip_referers_temp");
+		maj_version(1.904);
+	}
+
+	// fusion des 10 tables index en une seule
+	// pour fonctions futures evoluees du moteur de recherche
+	if (upgrade_vers(1.905, $version_installee, $version_cible)) {
+		// agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
+		// des choses plus sympa
+		spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
+		// table des correspondances table->id_table
+		$liste_tables = array();
+		$liste_tables[1]='spip_articles';
+		$liste_tables[2]='spip_auteurs';
+		$liste_tables[3]='spip_breves';
+		$liste_tables[4]='spip_documents';
+		$liste_tables[5]='spip_forum';
+		$liste_tables[6]='spip_mots';
+		$liste_tables[7]='spip_rubriques';
+		$liste_tables[8]='spip_signatures';
+		$liste_tables[9]='spip_syndic';
+
+		ecrire_meta('index_table', serialize($liste_tables));
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_article` as id_objet,'1' as id_table FROM spip_index_articles");
+		spip_query("DROP TABLE IF EXISTS spip_index_articles");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_auteur` as id_objet,'2' as id_table FROM spip_index_auteurs");
+		spip_query("DROP TABLE IF EXISTS spip_index_auteurs");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_breve` as id_objet,'3' as id_table FROM spip_index_breves");
+		spip_query("DROP TABLE IF EXISTS spip_index_breves");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_document` as id_objet,'4' as id_table FROM spip_index_documents");
+		spip_query("DROP TABLE IF EXISTS spip_index_documents");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_forum` as id_objet,'5' as id_table FROM spip_index_forum");
+		spip_query("DROP TABLE IF EXISTS spip_index_forum");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_mot` as id_objet,'6' as id_table FROM spip_index_mots");
+		spip_query("DROP TABLE IF EXISTS spip_index_mots");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_rubrique` as id_objet,'7' as id_table FROM spip_index_rubriques");
+		spip_query("DROP TABLE IF EXISTS spip_index_rubriques");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_signature` as id_objet,'8' as id_table FROM spip_index_signatures");
+		spip_query("DROP TABLE IF EXISTS spip_index_signatures");
+
+		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_syndic` as id_objet,'9' as `id_table FROM spip_index_syndic");
+		spip_query("DROP TABLE IF EXISTS spip_index_syndic");
+
+		maj_version(1.905);
+	}
+
+
+	// cette table est desormais geree par le plugin "podcast_client", on la
+	// supprime si le plugin n'est pas active ; risque inherent a l'utilisation
+	// de versions alpha :-)
+	if (upgrade_vers(1.906, $version_installee, $version_cible)) {
+		if (!@in_array('podcast_client', $GLOBALS['plugins'])) {
+			spip_query("DROP TABLE spip_documents_syndic");
+		}
+		maj_version(1.906);
+	}
+	if (upgrade_vers(1.907, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_forum ADD INDEX `idx` (`idx`)");
+		maj_version(1.907);
+	}
+	// Oups ! on stockait les tags de syndication sous la forme rel="category"
+	// au lieu de rel="directory" - http://microformats.org/wiki/rel-directory
+	if (upgrade_vers(1.908, $version_installee, $version_cible)) {
+		spip_query("UPDATE spip_syndic_articles SET `tags` = REPLACE(`tags`, 'rel=\"category\">', 'rel=\"directory\">') WHERE `tags` like '%category%'");
+		maj_version(1.908);
+	}
+	if (upgrade_vers(1.909, $version_installee, $version_cible)) {
+		spip_query("ALTER IGNORE TABLE spip_mots_articles ADD PRIMARY KEY (`id_article`, `id_mot`)");
+		spip_query("ALTER IGNORE TABLE spip_mots_breves ADD PRIMARY KEY (`id_breve`, `id_mot`)");
+		spip_query("ALTER IGNORE TABLE spip_mots_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_mot`)");
+		spip_query("ALTER IGNORE TABLE spip_mots_syndic ADD PRIMARY KEY (`id_syndic`, `id_mot`)");
+		spip_query("ALTER IGNORE TABLE spip_mots_documents ADD PRIMARY KEY (`id_document`, `id_mot`)");
+		spip_query("ALTER IGNORE TABLE spip_mots_forum ADD PRIMARY KEY (`id_forum`, `id_mot`)");
+		maj_version(1.909);
+	}
+
+	if (upgrade_vers(1.910, $version_installee, $version_cible)) {
+		spip_query("ALTER IGNORE TABLE spip_auteurs_articles ADD PRIMARY KEY (`id_auteur`, `id_article`)");
+		spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques ADD PRIMARY KEY (`id_auteur`, `id_rubrique`)");
+		spip_query("ALTER IGNORE TABLE spip_auteurs_messages ADD PRIMARY KEY (`id_auteur`, `id_message`)");
+		maj_version(1.910);
+	}
+
+	if (upgrade_vers(1.911, $version_installee, $version_cible)) {
+
+		spip_query("ALTER IGNORE TABLE spip_auteurs_articles DROP INDEX `id_auteur`");
+		spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques DROP INDEX `id_auteur`");
+		spip_query("ALTER IGNORE TABLE spip_auteurs_messages DROP INDEX `id_auteur`");
+		spip_query("ALTER IGNORE TABLE spip_mots_articles DROP INDEX `id_article`");
+		spip_query("ALTER IGNORE TABLE spip_mots_breves DROP INDEX `id_breve`");
+		spip_query("ALTER IGNORE TABLE spip_mots_rubriques DROP INDEX `id_rubrique`");
+		spip_query("ALTER IGNORE TABLE spip_mots_syndic DROP INDEX `id_syndic`");
+		spip_query("ALTER IGNORE TABLE spip_mots_forum DROP INDEX `id_forum`");
+		spip_query("ALTER IGNORE TABLE spip_mots_documents DROP INDEX `id_document`");
+# 18 juillet 2007: table depreciee
+#		spip_query("ALTER IGNORE TABLE spip_caches DROP	INDEX fichier");
+		maj_version(1.911);
+	}
+
+	// Le logo du site n'est plus le logo par defaut des rubriques
+	// mais pour assurer la compatibilite ascendante, on le duplique
+	if (upgrade_vers(1.912, $version_installee, $version_cible)) {
+		@copy(_DIR_LOGOS.'rubon0.gif', _DIR_LOGOS.'siteon0.gif');
+		@copy(_DIR_LOGOS.'ruboff0.gif', _DIR_LOGOS.'siteoff0.gif');
+		@copy(_DIR_LOGOS.'rubon0.jpg', _DIR_LOGOS.'siteon0.jpg');
+		@copy(_DIR_LOGOS.'ruboff0.jpg', _DIR_LOGOS.'siteoff0.jpg');
+		@copy(_DIR_LOGOS.'rubon0.png', _DIR_LOGOS.'siteon0.png');
+		@copy(_DIR_LOGOS.'ruboff0.png', _DIR_LOGOS.'siteoff0.png');
+		maj_version(1.912);
+	}
+
+	// suppression de auteur_modif qui n'est plus utilise nulle part
+	if (upgrade_vers(1.913, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_articles DROP `auteur_modif`");
+		maj_version(1.913);
+	}
+
+	// Ajout de SVG
+	if (upgrade_vers(1.914, $version_installee, $version_cible)) {
+		spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('svg', 'Scalable Vector Graphics', 'embed')");
+		spip_query("UPDATE spip_types_documents SET `mime_type`='image/svg+xml' WHERE `extension`='svg'");
+		maj_version(1.914);
+	}
+
+	// Ajout de plein de type mime
+	if (upgrade_vers(1.915, $version_installee, $version_cible)) {
+		maj_version(1.915);
+	}
+	// refaire l'upgrade 1.905 qui a pu foirer en partie a cause de la requete ALTER sur spip_meta
+	if (upgrade_vers(1.916, $version_installee, $version_cible)) {
+		// agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
+		// des choses plus sympa
+		spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
+#8/08/07  plus d'indexation dans le core
+		//include_spip('inc/indexation'); 
+		//update_index_tables();
+		maj_version(1.916);
+	}
+	if (upgrade_vers(1.917, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_documents DROP `inclus`");
+		maj_version(1.917);
+	}
+
+	// Permettre d'enregistrer un numero IP dans les revisions d'articles
+	// a la place de l'id_auteur
+	if (upgrade_vers(1.918, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_versions CHANGE `id_auteur` `id_auteur` VARCHAR(23)");
+		maj_version(1.918);
+	}
+
+	if (upgrade_vers(1.919, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_ajax_fonc DROP `id_auteur`");
+		maj_version('1.919');
+	}
+
+	if (upgrade_vers(1.920, $version_installee, $version_cible)) {
+		spip_query("ALTER IGNORE TABLE spip_documents_articles ADD PRIMARY KEY (`id_article`, `id_document`)");
+		spip_query("ALTER IGNORE TABLE spip_documents_breves ADD PRIMARY KEY (`id_breve`, `id_document`)");
+		spip_query("ALTER IGNORE TABLE spip_documents_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_document`)");
+		spip_query("ALTER IGNORE TABLE spip_documents_articles DROP INDEX `id_article`");
+		spip_query("ALTER IGNORE TABLE spip_documents_breves DROP INDEX `id_breve`");
+		spip_query("ALTER IGNORE TABLE spip_documents_rubriques DROP INDEX `id_rubrique`");
+		maj_version('1.920');
+	}
+	if (upgrade_vers(1.922, $version_installee, $version_cible)) {
+		spip_query("ALTER TABLE spip_meta ADD `impt` ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER `valeur`");
+		$meta_serveur = array('version_installee','adresse_site','alea_ephemere_ancien','alea_ephemere','alea_ephemere_date','langue_site','langues_proposees','date_calcul_rubriques','derniere_modif','optimiser_table','drapeau_edition','creer_preview','taille_preview','creer_htpasswd','creer_htaccess','gd_formats_read','gd_formats',
+		'netpbm_formats','formats_graphiques','image_process','plugin_header','plugin');
+		foreach($meta_serveur as $nom)
+			spip_query("UPDATE spip_meta SET `impt`='non' WHERE `nom`="._q($nom));
+		maj_version('1.922');
+	}
+	if (upgrade_vers(1.923, $version_installee, $version_cible)) {
+		if (isset($GLOBALS['meta']['IMPORT_tables_noimport'])){
+			$IMPORT_tables_noimport = unserialize($GLOBALS['meta']['IMPORT_tables_noimport']);
+			foreach ($IMPORT_tables_noimport as $key=>$table)
+				if ($table=='spip_meta') unset($IMPORT_tables_noimport[$key]);
+			ecrire_meta('IMPORT_tables_noimport',serialize($IMPORT_tables_noimport),'non');
+		}
+		maj_version('1.923');
+	}
+
+	if (upgrade_vers(1.924, $version_installee, $version_cible)) {
+		spip_query('DROP TABLE spip_ajax_fonc');
+		maj_version('1.924');
+	}
+
+	if (upgrade_vers(1.925, $version_installee, $version_cible)) {
+		include_spip('inc/flock');
+		/* deplacement des sessions */
+		$f_session = preg_files('data', 'session_');
+		$repertoire = _DIR_SESSIONS;
+		if(!@file_exists($repertoire)) {
+			$repertoire = preg_replace(','._DIR_TMP.',', '', $repertoire);
+			$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
+		}
+		foreach($f_session as $f) {
+			$d = basename($f);
+			@copy($f, $repertoire.$d);
+		}
+		/* deplacement des visites */
+		$f_visites = preg_files('data/visites');
+		$repertoire = sous_repertoire(_DIR_TMP, 'visites');
+		foreach($f_visites as $f) {
+			$d = basename($f);
+			@copy($f, $repertoire.$d);
+		}
+		/* deplacement des upload */
+		$auteurs = array();
+		$req = spip_query("SELECT `login` FROM spip_auteurs WHERE `statut` = '0minirezo'");
+		while($row = sql_fetch($req))
+			$auteurs[] = $row['login']; 
+		$f_upload = preg_files('upload', -1, 10000, $auteurs);
+		$repertoire = _DIR_TRANSFERT;
+		if(!@file_exists($repertoire)) {
+			$repertoire = preg_replace(','._DIR_TMP.',', '', $repertoire);
+			$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
+		}
+		foreach($auteurs as $login) {
+			if(is_dir('upload/'.$login))
+				$sous_repertoire = sous_repertoire(_DIR_TRANSFERT, $login);
+		}
+		foreach($f_upload as $f) {
+			@copy($f, _DIR_TMP.$f);
+		}
+		/* deplacement des dumps */
+		$f_session = preg_files('data', 'dump');
+		$repertoire = _DIR_DUMP;
+		if(!@file_exists($repertoire)) {
+			$repertoire = preg_replace(','._DIR_TMP.',', '', $repertoire);
+			$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
+		}
+		foreach($f_session as $f) {
+			$d = basename($f);
+			@copy($f, $repertoire.$d);
+		}
+		maj_version('1.925');
+	}
+	// Ajout de MP4
+	if (upgrade_vers(1.926, $version_installee, $version_cible)) {
+		spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('mp4', 'MPEG4', 'embed')");
+		spip_query("UPDATE spip_types_documents SET `mime_type`='application/mp4' WHERE `extension`='mp4'");
+		maj_version('1.926');
+	}
+}
+?>
\ No newline at end of file