*version6.txt* Pour Vim version 6.2. Dernière modification : 01 jun 2003
MANUEL de RÉFÉRENCE VIM - par Bram Moolenaar
Bienvenue dans Vim version 6.0 ! De nombreuses fonctionnalités ont été
ajoutées. Ce fichier fait le point sur toutes ces nouveautés, mais aussi sur
les modifications apportées aux fonctionnalités déjà existantes et les bogues
corrigés depuis Vim 5.x.
Voir |vi_diff.txt| pour un résumé des différences entre Vi et Vim 6.0.
Voir |version4.txt| pour les différences entre Vim 3.0 et Vim 4.0.
Voir |version5.txt| pour les différences entre Vim 4.0 et Vim 5.0.
CHANGEMENTS INCOMPATIBLES |incompatible-6|
Position du curseur en mode Visuel |curpos-visual|
Commande de substitution compatible Vi |substitute-CR|
Valeurs globales d'option introduites |new-global-values|
'fileencoding' modifié |fileencoding-changed|
Digrammes modifiés |digraphs-changed|
Détection du type de fichier modifié |filetypedetect-changed|
Tampons non listés introduits |new-unlisted-buffers|
CTRL-U en mode Ligne-de-commande modifié |CTRL-U-changed|
Départ de `ctags` |ctags-gone|
Documentation réorganisée |documentation-6|
Sélection amodale et presse-papiers |modeless-and-clipboard|
Incompatibilités mineures |incomp-small-6|
NOUVELLES FONCTIONNALITÉS XXX marqueur ?
Repliage |new-folding|
Partages verticaux de fenêtres |new-vertsplit|
Mode diff |new-diff-mode|
EVim : cliquer-taper |new-evim|
Manuel de l'utilisateur |new-user-manual|
Indentation flexible |new-indent-flex|
Motifs de recherche étendus |new-searchpat|
Support de l'UTF-8 |new-utf-8|
Support multilingue |new-multi-lang|
Support des greffons |new-plugins|
Greffons de types de fichiers |new-filetype-plugins|
Explorateur de fichiers |new-file-browser|
Édition de fichiers via réseau |new-network-files|
Fenêtre d'édition de la ligne de commande |new-cmdwin|
Mode débogage |new-debug-mode|
Curseur en position virtuelle |new-virtedit|
Interface débogueur |new-debug-itf|
Communication entre plusieurs Vim |new-vim-server|
Options de type de tampon |new-buftype|
Impression |new-printing|
Portages |ports-6|
Mode mise-au-point étendu |quickfix-6|
Modificateurs d'opérateurs |new-operator-mod|
Chemin de recherche |new-search-path|
Enregistrement des fichiers amélioré |new-file-writing|
Liste des arguments |new-argument-list|
Restauration de Vues |new-View|
Jeux de couleurs |new-color-schemes|
Autres éléments nouveaux |new-items-6|
AMÉLIORATIONS |improvements-6|
CHANGEMENTS À LA COMPILATION |compile-changes-6|
CORRECTIONS DE BOGUES |bug-fixes-6|
VERSION 6.1 |version-6.1|
Changements |changed-6.1|
Ajouts |added-6.1|
Corrections |fixed-6.1|
VERSION 6.2 |version-6.2|
Changements |changed-6.2|
Ajouts |added-6.2|
Corrections |fixed-6.2|
==============================================================================
Changements incompatibles *incompatible-6*
Ces changements sont incompatibles avec les versions précédentes. Consultez
cette liste si vous rencontrez un problème en passant de Vim 5.x à 6.0.
POSITION DU CURSEUR EN MODE VISUEL *curpos-visual*
Si vous êtes en mode Visuel et que vous passez d'une fenêtre à une autre
affichant le même tampon, la position du curseur dans cette autre fenêtre est
ajustée pour conserver la même zone Visuel. Vous pouvez ainsi définir le début
de la zone Visuel dans une fenêtre et la fin dans une autre.
Dans Vim 5.x, l'ancienne position du curseur dans l'autre fenêtre était
utilisée, ce qui pouvait amener n'importe où et n'était pas très utile.
COMMANDE DE SUBSTITUTION COMPATIBLE VI *substitute-CR*
La chaîne de substitution (la partie « cible » de la commande ":substitute") a
été rendue compatible Vi. Auparavant, CTRL-V avait une signification spéciale
et pouvait être utilisé afin d'éviter qu'un <CR> n'insère une coupure de
ligne. Cela rendait impossible l'insertion d'un CTRL-V avant une coupure de
ligne. Dorénavant, une contre-oblique est utilisée pour éviter qu'un <CR>
n'insère une coupure de ligne. Comme le nombre de contre-obliques est divisé
par deux, il est toujours possible d'insérer une coupure de ligne à la fin de
la ligne. Ce fonctionnement est identique à celui de Vi, mais il est
incompatible avec les versions de Vim antérieures à la 6.0.
Lorsqu'une commande ":s" n'effectue aucune substitution, elle ne positionne
désormais plus les marques '[ et ']. Cela n'a pas de rapport avec Vi, qui ne
possède pas ces marques.
VALEURS GLOBALES D'OPTION INTRODUITES *new-global-values*
Il existe à présent des valeurs globales pour les options locales à un tampon
ou une fenêtre. Auparavant, les options locales étaient copiées d'une fenêtre
dans une autre. Cela pouvait entraîner l'utilisation de valeurs d'options
provenant de la ligne de mode d'un autre fichier ! Dorénavant, les valeurs
globales sont utilisées à l'ouverture d'un tampon qui n'a pas été utilisé
jusqu'à présent. De plus, lorsqu'un autre tampon est édité dans une fenêtre,
les options locales de fenêtres sont réinitialisées à leurs valeurs globales.
La commande ":set" fixe à la fois les valeurs globale et locale, cela reste
compatible. Mais une ligne de mode ne fixe plus que la valeur locale, il n'y a
pas de compatibilité ascendante.
":let &opt = val" fixe désormais les valeurs locale et globale, comme ":set".
De nouvelles commandes ont été ajoutées pour fixer les valeurs locale ou
globale :
:let &opt = val comme ":set"
:let &g:opt = val comme ":setglobal"
:let &l:opt = val comme ":setlocal"
'fileencoding' MODIFIÉ *fileencoding-changed*
'fileencoding' était employé dans Vim 5.x pour fixer l'encodage utilisé
partout dans Vim. C'était plutôt étrange, car c'était une option locale à un
tampon qui s'appliquait à tous les tampons. Elle ne pouvait pas différer d'un
tampon à l'autre, parce qu'elle modifiait la façon dont le texte était
interprété dans tous les tampons.
Elle est à présent utilisée pour l'encodage du fichier relatif au tampon.
Si vous fixez 'fileencoding' malgré tout, il est probable qu'il soit recouvert
par l'encodage détecté à partir de 'fileencodings', c'est donc « généralement
sans risque ».
L'événement d'autocommande EncodingChanged sert de nouveau nom pour
FileEncoding.
DIGRAMMES MODIFIÉS *digraphs-changed*
Les digrammes par défaut correspondent à présent à la RFC1345. C'est un
changement notable par rapport à Vim 5.x. |digraphs|
DÉTECTION DU TYPE DE FICHIER MODIFIÉ *filetypedetect-changed*
La détection du type de fichier utilisait précédemment le groupe
d'autocommandes "filetype". C'était une source de confusion avec le nom
d'événement FileType (la casse étant ignorée). Ce groupe est à présent nommé
"filetypedetect". Le groupe "filetype" est toujours reconnu, mais s'il est
utilisé, les autocommandes ne seront pas supprimées par ":filetype off".
Le support de 'runtimepath' rend désormais les mécanismes "myfiletypefile"
et "mysyntaxfile" obsolètes. Il sont toujours supportés pour compatibilité
ascendante.
La liaison entre l'événement FileType et la configuration de l'option 'syntax'
était précédemment assurée via le groupe d'autocommandes "syntax". C'était une
source de confusion avec le nom d'événement Syntax. Ce groupe est présent
nommé "syntaxset".
Les fichiers de syntaxe distribués ne contiennent désormais plus "syntax
clear". Cela permet de les inclure sans problème les uns dans les autres. La
syntaxe est à présent effacée lorsque l'option 'syntax' est fixée (par une
autocommande ajoutée depuis "synload.vim"). Cela permet l'effacement de la
syntaxe courante quand la valeur de 'syntax' ne correspond à aucun fichier de
syntaxe. Auparavant, la syntaxe courante était conservée.
TAMPONS NON LISTÉS INTRODUITS *new-unlisted-buffers*
Il existe maintenant une différence entre les tampons qui n'apparaissent pas
dans la liste des tampons et ceux qui sont vraiment absents de cette liste.
Les commandes comme ":ls", ":bnext", ":blast" et le menu Tampons ignoreront
les tampons absents de la liste des tampons. |unlisted-buffer|
L'option 'buflisted' permet de faire apparaître/disparaître un tampon de la
liste des tampons.
Plusieurs commandes qui ajoutaient précédemment un tampon dans la liste des
tampons créent à présent un tampon non listé. Cela signifie que ":bnext" et
":ball" ne trouveront pas ces fichiers jusqu'à ce qu'il soient réellement
édités. Par exemple, les tampons utilisés pour le fichier alternatif avec
":write fich" et ":read fich".
D'autres commandes qui auparavant supprimaient complètement un tampon se
contentent maintenant de le retirer de la liste des tampons. Certaines
commandes qui se basaient auparavant sur l'absence d'un tampon risquent
d'échouer. C'était par exemple le cas dans l'un des tests automatiques, où une
commande ":bdelete" dans une autocommande entraînait l'échec d'une commande
ultérieure. |:bwipeout| peut être utilisé pour l'ancienne signification de
":bdelete".
L'événement d'autocommande BufDelete est à présent déclenché lorsqu'un tampon
est retiré de la liste des tampons. L'événement BufCreate n'est déclenché que
lorsqu'un tampon (nouvellement créé ou existant) est ajouté à la liste des
tampons. BufAdd sert de nouveau nom pour BufCreate.
Le nouvel événement BufNew sert lors de la création d'un tampon quelconque
et BufWipeout pour la suppression effective d'un tampon.
Pour le complètement en mode Insertion, seuls les tampons de la liste des
tampons sont utilisés. Ajoutez le drapeau 'U' à l'option 'complete' pour que
le complètement utilise aussi les tampons non listés.
Les tampons non listés ne sont pas enregistrés dans un fichier viminfo.
CTRL-U EN MODE LIGNE-DE-COMMANDE MODIFIÉ CTRL-U-changed">*CTRL-U-changed*
L'utilisation CTRL-U sur la ligne de commande effaçait précédemment la ligne
entière. La plupart des shells ne suppriment en fait que les caractères
précédant le curseur. C'est maintenant ce que fait Vim. (Steve Wall)
Vous pouvez obtenir l'ancien comportement en utilisant "CTRL-E CTRL-U" :DÉPART DE `ctags` *ctags-gone*
`ctags` ne fait désormais plus partie de la distribution de Vim. C'est
devenu un projet autonome, diffusé séparément.
Vous trouverez `ctags` sur : "http://ctags.sf.net/".
DOCUMENTATION RÉORGANISÉE *documentation-6*
La documentation a été réorganisée ; un élément ne sera peut-être pas présent
là où vous l'auriez trouvé dans Vim 5.x.
- Le Manuel de l'utilisateur a été ajouté, certains éléments du Manuel de
référence ayant été transférés en son sein.
- La mini-référence constitue désormais un fichier séparé (afin de pouvoir
être imprimée).
Les exemples dans la documentation étaient précédemment marqués par un '>'
dans la première colonne de chaque ligne. Cela rendait le copier/coller
difficile. À présent, il y a un unique '>' avant l'exemple, et la fin est
marquée par un '<' ou un non-blanc dans la première colonne. C'est également
plus lisible sans surbrillance.
'helpfile' n'est plus utilisé pour trouver le fichier de marqueurs de l'aide.
Cela permet à chaque utilisateur d'ajouter ses propres fichiers d'aide (p.
ex., pour les greffons).
SÉLECTION AMODALE ET PRESSE-PAPIERS *modeless-and-clipboard*
La sélection amodale est utilisée pour sélectionner du texte quand le mode
Visuel ne peut pas être utilisé, par exemple lors de l'édition de la ligne de
commande ou à une invite Plus.
Dans Vim 5.x, la sélection amodale était toujours utilisée. Sur MS-Windows,
cela entraînait l'écrasement du presse-papiers, sans possibilité de l'éviter.
La sélection amodale obéit à présent aux drapeaux 'a' et 'A' de 'guioptions',
et à "autoselect" et "autoselectml" dans 'clipboard'. Par défaut, il n'y a pas
de copie automatique sur MS-Windows. Utilisez la commande |c_CTRL-Y| pour
copier manuellement la sélection.
Pour revenir à l'ancien comportement, faites ceci :INCOMPATIBILITÉS MINEURES *incomp-small-6*
'backupdir', 'cdpath', 'directory', 'equalprg', 'errorfile', 'formatprg',
'grepprg', 'helpfile', 'makeef', 'makeprg', 'keywordprg', 'cscopeprg',
'viminfo' et 'runtimepath' ne peuvent désormais plus être fixés dans une ligne
de mode, pour accroître la sécurité.
'_' supprimé dans la valeur par défaut de 'breakat' : il est couramment
utilisé dans les mots-clés.
'mousehide' est activé par défaut, cela convient à la plupart des gens.
Le binaire pour Amiga est à présent toujours compilé en version « étendue ».
L'archive binaire "big" n'existe désormais plus.
Les éléments "[RO]", "[+]", "[help]", "[Preview]" et "[filetype]" de la ligne
d'état n'ont désormais plus de blanc initial.
Systèmes non-Unix : lors de l'expansion des jokers pour les arguments de Vim,
'suffixes' n'est plus utilisé. Cela fonctionne désormais comme si le shell
avait étendu les arguments.
Les options 'lisp', 'smartindent' et 'cindent' ne sont pas désactivées lorsque
'paste' est activé. L'auto-indentation est désactivé quand 'paste' est activé,
l'indentation manuelle avec "=" fonctionne toujours.
Quand une mise en forme avec "=" utilise 'cindent' ou 'indentexpr' et qu'il
n'y a pas de modification dans l'indentation, cela n'est pas considéré comme
un changement ('modified' n'est pas activé et l'annulation est impossible).
L'option 'modified' est activée dans un tampon quand la valeur de
'fileencoding' ou de 'fileformat' est modifiée. Cela permet d'éviter
d'abandonner ce tampon en perdant les modifications afférentes.
L'entrée de menu "Enregistrer sous" édite désormais le fichier qui vient
d'être enregistré. C'est ce qu'attendent la plupart des gens.
Un tampon pour un répertoire n'est désormais plus ajouté au menu Tampons.
<Return> a été renommé <Enter>, c'est le nom qui figure sur la plupart des
claviers. L'invite |hit-return| devient donc |hit-enter| [N.D.T. : cela ne
change rien pour la traduction française, qui utilisait indépendamment
« invite Appuyez-sur-entrée »].
<Enter> peut être mappé exactement comme <CR> ou <Return>.
L'option 'viminfo' vaut désormais '50,"50,h par défaut lorsque 'compatible'
n'est pas activé. La plupart des gens souhaitaient utiliser cela, mais il leur
fallait fixer eux-même l'option, ce qui n'est pas trivial.
Après l'utilisation de ":colder", les nouvelles listes d'erreurs sont
écrasées. Cela permet d'utiliser ":grep" comme pour naviguer dans une
arborescence. Utilisez ":cnewer 99" pour obtenir l'ancien comportement.
Les motifs de 'errorformat' ignoraient parfois la casse (MS-Windows) et
parfois pas (Unix). Désormais, la casse est toujours ignorée. Ajoutez "\C" au
motif pour respecter la casse.
La version Dos 16 bits est à présent compilée sans la fonctionnalité +listcmds
(commandes de manipulation de la liste des tampons). Ces commandes ne sont pas
utilisées souvent et il est nécessaire de réduire la taille de l'exécutable.
'sessionoptions' inclut à présent "curdir" par défaut. Cela signifie que la
restauration d'une session entraînera la restauration du répertoire courant,
au lieu d'aller au répertoire où se situe le fichier de session.
Auparavant, le chargement d'une session supprimait tous les tampons et toutes
les marques. La liste des tampons est maintenant conservée, cela ne devrait
pas faire de différence si les tampons déjà existant restent présents.
Quand la liste des arguments était vide, ":argdel *" provoquait un message
d'erreur.
Le motif de recherche issu d'un saut vers un marqueur n'est plus mémorisé dans
l'historique.
Le groupe de surbrillance "SpecialKey" est utilisé pour les caractères non
imprimables au lieu de "NonText". Le principe est d'utiliser "SpecialKey" pour
le texte non imprimable ou n'importe quel texte à afficher différemment des
caractères dans le fichier, et "NonText" pour les caractères qui n'existent
pas vraiment dans le fichier.
Motif utilise à présent les couleurs par défaut du système pour le menu et les
ascenseurs. Ils étaient précédemment en gris. Il est toujours possible de
modifier ces couleurs avec les commandes ":highlight" et les ressources.
La mise en forme de texte avec "gq" coupe un paragraphe sur une ligne blanche
non-vide. Auparavant, la ligne était supprimée, ce qui n'était pas très utile.
La commande ":normal" ne bloque plus quand son argument est incomplet.
Auparavant, Vim attendait que des caractères supplémentaires soient tapés,
sans rafraîchir l'affichage. Maintenant, il se comporte comme si <Echap> était
tapé.
Les icônes de la barre d'outils ne sont désormais plus recherchées dans
"$VIM/bitmaps" mais dans les répertoires "bitmaps" de 'runtimepath'.
Les menus du mode Lignecmd sont à présent utilisés pour l'invite
Appuyez-sur-entrée à la place des menus du mode Normal. Cela fonctionne
généralement mieux et permet d'utiliser le menu Copier de sorte que CTRL-Y
copie la sélection amodale.
L'entrée de menu "Sélectionner police..." a été déplacée du menu Fenêtre au
menu Edition, avec tous les autres réglages du même type.
La valeur par défaut de 'isfname' inclut davantage de caractères pour que "gf"
fonctionne mieux.
La licence OPL ("Open Publication License") est dorénavant utilisée pour toute
la documentation. C'était la moindre des choses compte tenu des parties issues
du livre sur Vim, également publié sous OPL. L'inconvénient est qu'on ne peut
pas obliger une personne qui vend des copies des manuels à donner pour
l'Ouganda.
Après "ayy ne pas laisser ""yy ou :let @" = val écraser le registre "a.
Utilisez le registre sans nom à la place.
MS-DOS : un motif "*.*" correspondait précédemment aussi à un nom de fichier
sans point. C'était incohérent avec les autres versions.
En mode Insertion, "CTRL-O CTRL-\ CTRL-N {cmd}" reste en mode Normal.
Auparavant il faisait revenir en mode Insertion, ce qui était contradictoire
avec la signification de "CTRL-\ CTRL-N", qui est censé ramener en mode Normal
(particulièrement dans ":amenu").
L'utilisation de commandes ":" après un opérateur est maintenant permise. Cela
peut servir à créer une nouvelle commande de mouvement. De fait, ":"
n'interrompt plus un opérateur dont la saisie est en cours.
Pour Amiga, l'argument "-d {periph}" était autorisé. À présent, si compilé
avec la fonctionnalité +diff, cela n'est plus permis. Utilisez "-dev {periph}"
à la place. |-dev|
Les mappages par défaut pour <S-Insert> en mode Insertion insèrent désormais
le texte littéralement, pour éviter les effets de bord causés par des
caractères spéciaux (comme la contre-oblique).
L'utilisation de ":confirm" s'appliquait au reste de la ligne de commande.
Elle s'applique à présent à la première commande qui la suit. Ainsi,
":confirm if x | edit | endif" ne fonctionne plus, utilisez plutôt
":if x | confirm edit | endif". C'était l'intention originale, qui fut déviée
à cause d'une bogue.
==============================================================================
Nouvelles fonctionnalités
REPLIAGE *new-folding*
Vim est à présent capable d'afficher un tampon avec du texte replié. Cela
permet d'obtenir rapidement un aperçu de la structure du fichier. Il est
également possible de couper/copier/coller du texte replié, par exemple pour
déplacer une fonction à une autre position.
Il existe tout un ensemble de nouvelles commandes et options relatives aux
replis. Voir |folding|.
PARTAGES VERTICAUX DE FENÊTRES *new-vertsplit*
Les fenêtres peuvent aussi être partagées verticalement. Cela permet d'avoir
des fenêtres côte à côte. C'est notamment très pratique pour comparer deux
fichiers similaires (voir à ce sujet |new-diff-mode|). L'option 'scrollbind'
permet de synchroniser le défilement.
Ces commandes permettent d'opérer un partage vertical :
:vsplit ou "CTRL-W v" ou "CTRL-W CTRL-V" |:vsplit|
:vnew |:vnew|
:vertical {cmd} |:vertical|
La dernière est un modificateur, qui agit sur n'importe quelle commande de
partage de fenêtre. Par exemplepartagera la fenêtre verticalement et sautera au marqueur "zorglub" dans la
nouvelle fenêtre.
Il est possible de se déplacer horizontalement d'une fenêtre à l'autre avec
les commandes |CTRL-W_h| et |CTRL-W_l|. Les commandes |CTRL-W_k| et |CTRL-W_j|
ont été modifiées pour permettre de sauter à la fenêtre au-dessus/en dessous
de la position du curseur.
Les partages horizontaux et verticaux peuvent être mélangés à votre guise.
Le redimensionnement des fenêtres peut s'effectuer simplement avec la souris,
il suffit de placer le pointeur sur une ligne d'état ou de séparation
verticale et de la tirer. Dans l'IHM graphique, le pointeur de la souris prend
une forme spéciale pour indiquer quand vous pouvez tirer une ligne d'état ou
de séparation verticale.
Pour redimensionner des fenêtres partagées verticalement, utilisez les
commandes |CTRL-W_<| et |CTRL-W_>|. Pour donner à une fenêtre une largeur
maximale, utilisez la commande "CTRL-W |" |CTRL-W_bar|.
Pour forcer une nouvelle fenêtre à utiliser toute la largeur/hauteur de la
fenêtre Vim, deux modificateurs sont disponibles :
:topleft {cmd} La nouvelle fenêtre apparaît en haut avec
toute la largeur ou à gauche avec toute la
hauteur.
:botright {cmd} La nouvelle fenêtre apparaît en bas avec toute
la largeur ou à droite avec toute la hauteur.
Ils peuvent être combinés avec ":vertical" pour obliger à utiliser des
partages verticaux :Ceci ouvrira une fenêtre le plus à droite possible, occupant toute la hauteur
de la fenêtre Vim, avec le curseur sur la première définition de "DEBUG".
La fenêtre d'aide est ouverte en haut, comme si ":topleft" était utilisé,
si la fenêtre courante fait moins de 80 caractères de large.
Plusieurs options permettent de définir les préférences pour les fenêtres
partagées verticalement. Elles fonctionnent de façon similaires à leurs
équivalents horizontaux :
HORIZONTAL VERTICAL
'splitbelow' 'splitright'
'winheight' 'winwidth'
'winminheight' 'winminwidth'
Il est possible de fixer 'winminwidth' à zéro, afin que les fenêtres
momentanément inutilisées occupent le moins de place possible tout en restant
ouvertes.
La nouvelle option 'eadirection' indique quand 'equalalways' s'applique :
:set eadirection=both dans toutes les directions
:set eadirection=ver égalise les hauteurs des fenêtres
:set eadirection=hor égalise les largeurs des fenêtres
Vous pouvez ainsi préserver les tailles des fenêtres à votre guise lors d'un
partage.
Comme les fenêtres peuvent devenir très étroites avec les partages verticaux,
les lignes de texte dépasseront souvent. L'option 'sidescrolloff' a été
ajoutée pour garder du contexte à gauche et à droite du curseur. L'option
'listchars' a été étendue avec l'élément "precedes", pour afficher par exemple
un '<' quand il y a du texte qui dépasse de l'écran. (Utz-Uwe Haus)
L'argument de ligne de commande "-O" a été ajouté : similaire à "-o" mais
partage les fenêtres verticalement. (Scott Urban)
Commandes ajoutées pour déplacer la fenêtre courante tout en haut
("CTRL-W K"), à droite ("CTRL-W J"), à gauche ("CTRL-W H") ou en bas
("CTRL-W L"). Après son déplacement, la fenêtre utilise la totalité de la
hauteur/largeur de l'écran.
Lorsqu'il n'y a pas assez de place dans la ligne d'état pour à la fois le nom
de fichier et la règle, utilise jusqu'à la moitié de la largeur impartie pour
la règle. Utile pour des fenêtres étroites.
MODE DIFF *new-diff-mode*
En mode diff, Vim affiche les différences entre deux, trois ou quatre
fichiers. Le repliage est utilisé pour masquer les parties des fichiers qui
sont identiques. La surbrillance permet de mettre en valeur les lignes
supprimées ou changées. Voir |diff-mode|.
Le plus simple pour lancer le mode diff est d'invoquer Vim avec `vimdiff fich1
fich2`. Une page de manuel a été créée pour `vimdiff`.
Si Vim est déjà démarré, la commande |:diffsplit| lance le mode diff pour le
fichier courant et un autre fichier. La commande |:diffpatch| lance le mode
diff en utilisant le fichier courant et un fichier de rustine. La commande
|:diffthis| lance le mode diff pour la fenêtre courante.
Les différences peuvent être corrigées avec les commandes |:diffget| et
|:diffput|.
- L'option 'diff' active le mode diff dans une fenêtre.
- La commande |:diffupdate| met les différences à jour.
- L'option 'diffopt' change la façon dont les différences sont affichées.
- L'option 'diffexpr' permet de définir comment les différences doivent être
obtenues.
- L'option 'patchexpr' permet de définir comment une rustine doit être
appliquée à un fichier.
- La méthode de repliage "diff" est ajoutée. Lors de l'ouverture d'une fenêtre
pour le mode diff, 'foldlevel' est fixé à zéro et 'foldenable' est activé,
pour fermer les replis.
- Les groupes de surbrillance DiffAdd, DiffChange, DiffDelete et DiffText sont
ajoutés, pour définir la coloration utilisée pour les différences. Les
valeurs par défaut sont assez laides...
- Unix : `vimdiff` est créé comme un lien symbolique par `make install`.
- Le script "vimdiff.vim", désormais obsolète, est retiré de la distribution.
- Les commandes "[c" et "]c" sont ajoutées pour se déplacer au changement
suivant/précédent en mode diff.
EVIM : CLIQUER-TAPER *new-evim*
eVim signifie "Easy Vim" [« Vim facile »]. Il s'agit d'un programme séparé,
mais qui peut aussi être lancé avec `vim -y`.
Il lance Vim avec 'insertmode' activé pour permettre une édition de type
« cliquer-taper ». Le script $VIMRUNTIME/evim.vim est utilisé pour ajouter des
mappages et fixer des options afin d'obtenir un comportement le plus proche
possible de Notepad. Cela ne s'adresse qu'aux personnes qui ne supportent pas
de travailler avec deux modes.
eView se comporte de façon similaire, mais en mode lecture seule.
Dans l'IHM graphique, CTRL-C n'interrompt à présent plus qu'une commande qui
s'exécute, pas une saisie en attente. Cela permet d'utiliser CTRL-C pour
copier du texte dans le presse-papiers.
MANUEL DE L'UTILISATEUR *new-user-manual*
Un Manuel de l'utilisateur a été ajouté. Il est organisé autour des tâches
d'édition. Il peut se lire comme un livre, du début à la fin. Il constitue une
bonne base pour les débutants qui veulent apprendre Vim. Il aide aussi tous
ceux qui souhaitent se familiariser avec les fonctionnalités les plus utiles.
Il est bien plus facile à lire que le Manuel de référence, mais il omet
volontairement de nombreux détails. Voir |user-manual|.
Le Manuel de l'utilisateur reprend certaines parties du livre de Steve
Oualline sur Vim |frombook|. Il est publié sous licence OPL
|manual-copyright|.
Lorsque la coloration syntaxique n'est pas active, les caractères marquant les
exemples ('>' et '<') et les lignes d'en-tête ('~') dans les fichiers d'aide
sont remplacés par un espace.
Quand la fenêtre d'aide est fermée, la disposition des fenêtres est restaurée
telle qu'elle était avant son ouverture, si cette disposition n'a pas été
modifiée entre temps.
Quand la fenêtre d'aide est ouverte, elle est placée en haut de la fenêtre
Vim si la fenêtre courante fait moins de 80 caractères et n'occupe pas toute
la largeur.
INDENTATION FLEXIBLE *new-indent-flex*
L'indentation automatique est désormais utilisable pour n'importe quel
langage. Elle fonctionne grâce à un script Vim, ce qui la rend très souple.
La commande ":filetype indent on" active l'utilisation des scripts
d'indentation fournis. Voir à ce sujet le Manuel de l'utilisateur : |30.3|.
L'option 'indentexpr' est évaluée pour obtenir l'indentation d'une ligne.
L'option 'indentkeys' indique quand déclencher la réindentation de la ligne
courante. Normalement, ces options sont fixées depuis un script d'indentation.
Tout comme les fichiers de syntaxe, les scripts d'indentation sont appelés
à être créés et maintenus par de nombreuses personnes.
MOTIFS DE RECHERCHE ÉTENDUS *new-searchpat*
Il est désormais possible de correspondre à plusieurs lignes avec un motif.
(en partie par Loic Grenie)
Nouveaux éléments multi-lignes pour les motifs de recherche :
-------------------------------------------------------------
\n correspond à une fin-de-ligne, également dans []
\_[] correspond aux caractères de la plage ou à une fin-de-ligne
\_x correspond à la classe de caractères ou à une fin-de-ligne
\_. correspond à n'importe quel caractère ou à une fin-de-ligne
\_^ correspond à un début-de-ligne, n'importe où dans l'exprat
\_$ correspond à une fin-de-ligne, n'importe où dans l'exprat
Autres nouveaux éléments pour les motifs de recherche :
-------------------------------------------------------
\c ignore la casse pour le motif entier
\C respecte la casse pour le motif entier
\m 'magic' activé pour le motif suivant
\M 'magic' désactivé pour le motif suivant
\v le motif suivant est « très 'magic' »
\V le motif suivant est « très 'nomagic' »
\@! ne correspond pas à l'atome qui précède
Exemple : "zorg\(lub\)\@!" correspond à "zorg " mais pas à
"zorglub".
\@= correspond à l'atome qui précède, mais avec une largeur nulle
Exemple : "zorg\(lub\)\@=" correspond à "zorg" dans
"zorglub".
\@<! ne correspond pas à l'atome qui précède avant la position
courante
\@<= correspond à l'atome qui précède avant la position courante
\@> correspond à l'atome qui précède comme sous-expression
\& correspond uniquement si les branches précédentes et suivantes
correspondent
\%[] correspond optionnellement à une liste d'atomes
Exemple : "end\%[if]" correspond à "end", "endi" et
"endif".
\%(\) comme \(\), mais sans créer de post-référence ; on peut donc
en utiliser autant qu'on veut, alors que les paires de \(\)
sont limitées à neuf
\%^ correspond à un début-de-fichier (Chase Tingley)
\%$ correspond à une fin-de-fichier (Chase Tingley)
\%# correspond à la position du curseur (Chase Tingley)
\? exactement comme "\=", mais inutilisable dans une commande "?"
\%23l correspond dans la ligne 23
\%<23l correspond avant la ligne 23
\%>23l correspond après la ligne 23
\%23c, \%<23c, \%>23c correspond dans/avant/après la colonne 23
\%23v, \%<23v, \%>23v correspond dans/avant/après la colonne virtuelle 23
Pour les éléments de syntaxe :
------------------------------
\z(...\) définit la correspondance d'une référence externe (dans un
motif "start" de région) (Scott Bigham)
\z1 - \z9 correspond à une référence externe (dans un motif "skip" ou
"end" de région) (Scott Bigham)
\zs utilise la position comme début du motif
\ze utilise la position comme fin de motif
La limite qui n'autorisait à correspondre que jusqu'à 32 767 fois avec *, \+,
etc., est à présent supprimée.
Les correspondances avec des caractères multi-octets sont supportées. (en
partie par Muraoka Taro)
"\<" et "\>" ont été modifiés pour fonctionner avec l'UTF-8. (Muraoka Taro)
SUPPORT DE L'UTF-8 *new-utf-8*
Vim peut désormais éditer des fichiers encodés en UTF-8. Il est possible
d'utiliser des caractères allant jusqu'à 31 bits, mais seuls les caractères de
16 bits sont affichés. Vous pouvez saisir jusqu'à deux caractères de
composition, ils surchargent le caractère précédent. Les caractères de
largeur double sont également supportés. Voir |UTF-8|.
Les encodages UCS-2, UCS-4 et UTF-16 sont eux aussi supportés, ils sont
convertis en UTF-8 en interne. Il est possible d'éditer des fichiers Unicode
dans un environnement latin1. Les autres encodages sont convertis avec iconv()
ou un convertisseur externe spécifié par 'charconvert'.
Le support multi-octets engendre beaucoup de nouveaux éléments :
- Option 'encoding' ajoutée : spécifie l'encodage de caractères utilisé en
interne par Vim. Il peut s'agir de n'importe quel encodage 8-bits, 2-octets
ou Unicode.
Elle est initialisée à partir de l'environnement lorsqu'une valeur supportée
est trouvée.
- Ajout de 'fileencoding' et 'fileencodings' : spécifient l'encodage de
caractères dans un fichier, similaires à 'fileformat' et 'fileformats'.
Si 'encoding' vaut "utf-8" et 'fileencodings' "utf-8,latin1", cela fera
passer automatiquement en latin1 lorsqu'un fichier ne contient pas d'UTF-8
valide.
- Option 'bomb' ajoutée et support de la détection d'une marque d'encodage
(BOM) en début de fichier. Cela peut être utilisé en conjonction avec
"ucs-bom" dans 'fileencodings' pour détecter automatiquement un fichier
Unicode s'il débute par une marque d'encodage. C'est particulièrement utile
sur MS-Windows (NT et 2000), qui utilise des fichiers ucs-2le avec une
marque d'encodage (p. ex., lors d'une exportation du registre).
- Option 'termencoding' ajoutée : spécifie l'encodage utilisé par le
terminal. Utile pour basculer Vim en mode UTF-8 alors que vous utilisez une
région linguistique non-Unicode :- Lorsque 'viminfo' contient le drapeau 'c', le fichier viminfo est converti
de la valeur de 'encoding' utilisée lors de l'enregistrement du fichier à la
valeur courante.
- Commande ":scriptencoding" ajoutée : convertit les lignes dans un script
sourcé de l'encodage spécifié à la valeur courante de 'encoding'. Utile pour
les fichiers de menus.
- Option 'guifontwide' ajoutée pour spécifier une police pour les caractères
de largeur double.
- Support du coréen pour la détection des classes de caractères. Correction de
cls() dans "search.c". (Chong-Dae Park)
- Win32 : saisie des caractères multi-octets sans IME. (Alexander Smishlajev)
- Win32 avec MinGW : compilation avec la bibliothèque iconv. (Ron Aaron)
- Win32 avec MSVC : chargement dynamique de la bibliothèque iconv.dll.
(Muraoka Taro)
- Possibilité de compiler une version avec le support de iconv et des
caractères multi-octets avec Borland 5.5. (Yasuhiro Matsumoto)
- Option 'delcombine' ajoutée : efface les caractères de composition
séparément. (Ron Aaron)
- La fonctionnalité "xfontset" n'est plus requise pour "xim". Ce sont
désormais deux fonctionnalités indépendantes.
- XIM : active XIM lors de la saisie d'une langue (en mode Insertion, pour les
commandes de recherche et les commandes "f" ou "r"). Désactive XIM quand une
commande est saisie en mode Normal.
- Quand XIM est actif, affiche "XIM" dans le message de 'showmode'. (Nam
SungHyun)
- Support de "CursorIM" pour XIM. (Nam SungHyun)
- Drapeau 'm' ajouté à 'formatoptions' : lorsque des lignes sont coupées,
autorise la césure sur chaque caractère multi-octets, pas seulement sur les
espaces.
- ":syntax keyword" fonctionne à présent avec les caractères multi-octets.
- Support pour l'inversion de casse des caractères Unicode et leur
comparaison. (basé sur une rustine de Raphael Finkel)
La commande "~" utilisée sur des caractères multi-octets qui possèdent une
troisième casse (« casse de titre ») peut désormais faire basculer entre les
trois casses. (Raphael Finkel)
Les caractères multi-octets sont désormais supportés pour définir des
digrammes.
Les digrammes de la RFC1345 ont été ajoutés pour l'Unicode.
La plupart des commandes du mode Normal qui acceptent un caractère en
argument, comme "r", "t" et "f", acceptent maintenant les digrammes. Le
drapeau 'D' de 'cpoptions' permet de désactiver cela pour rester compatible
Vi.
Ajout des mappages de langue et de l'option 'keymap' pour permettre la saisie
des caractères multi-octets :
- Ajout de la famille de commandes ":lmap" : définit des mappages utilisés
lors de la saisie de caractères dans la langue du texte. Vaut également pour
"r", "t", etc. En mode Insertion et Ligne-de-commande, CTRL-^ permet
d'activer/désactiver l'utilisation de ces mappages.
CTRL-^ active/désactive également l'utilisation d'une méthode de saisie
lorsque aucun mappage de langue n'est présent. Cela permet de changer de
méthode au cours d'une saisie.
- L'argument "<char-123>" passé à ":map" permet de spécifier la valeur octale,
décimale ou hexadécimale d'un caractère.
- Option 'keymap' ajoutée : charge un fichier de codage clavier. ":lnoremap"
est utilisé pour définir les mappages pour le codage clavier. La nouvelle
commande ":loadkeymap" est utilisée dans le fichier de codage clavier.
- Drapeau 'k' ajouté à 'statusline' : valeur de "b:keymap_name" ou 'keymap' si
cette option est utilisée. Utilise "<langue>" si aucun codage clavier n'est
chargé et que des mappages de langue sont définis. Affiche également ce
texte dans la ligne d'état par défaut.
- Options 'iminsert' et 'imsearch' ajoutées : permettent d'activer
l'utilisation des mappages de langue ou de la méthode de saisie. (Muraoka
Taro)
Option 'imcmdline' ajoutée : si activée, la méthode de saisie est toujours
activée au commencement de l'édition de la ligne de commande. Utile si une
méthode de saisie utilise des touches mortes pour l'accentuation des
caractères.
Option 'imactivatekey' ajoutée pour mieux contrôler XIM. (Muraoka Taro)
- Lors de la saisie d'un mappage qui n'est pas encore fini, le dernier
caractère est affiché sous le curseur en mode Insertion et
Ligne-de-commande. Cela rend bien pour les caractères morts.
- L'option 'langmap' reconnaît désormais les caractères multi-octets. Mais les
mappages ne fonctionnent que pour les caractères 8-bits. C'est utile quand
vous utilisez l'UTF-8.
- Un curseur différent est utilisé selon que les mappages ":lmap" sont actifs
ou non. Il est possible de spécifier deux groupes de surbrillance pour
chaque item de 'guicursor'. Par défaut, "lCursor" et "Cursor" sont
identiques, l'utilisateur doit définir les couleurs qu'il souhaite utiliser.
Utilisation de couleurs différentes pour le curseur pour la saisie de
l'hangul (notamment). (Sung-Hyun Nam)
- 'showmode' affiche "(langue)" quand les mappages de langue sont actifs.
- UTF-8 : "r" fonctionne à présent avec un mappage de langue qui inclut un
caractère de composition. Cela marche aussi pour "f", qui peut désormais
trouver un caractère qui inclut un caractère de composition.
Autres ajouts liés aux caractères multi-octets :
- Support des caractères sur deux octets de largeur simple pour l'euc-jp
(caractères qui débutent par 0x8E). Ajout de ScreenLines2[] pour enregistrer
le deuxième octet.
SUPPORT MULTILINGUE *new-multi-lang*
Les messages utilisés par Vim peuvent être traduits. Plusieurs traductions
sont disponibles. gettext est utilisé pour ce faire. Il permet l'ajout d'une
traduction sans avoir à recompiler Vim. |multi-lang| (en partie par Marcin
Dalecki)
Les fichiers de traduction sont placés dans le répertoire "src/po". Le fichier
"src/po/README.txt" contient quelques instructions pour effectuer une
traduction.
Des traductions sont également disponibles pour les menus. Elles utilisent la
nouvelle commande |:menutranslate|. Les traductions sont placées dans le
répertoire de support "lang". Cela permet à un utilisateur d'ajouter une
traduction.
La commande |:language| est ajoutée pour fixer la langue (région
linguistique) pour les messages, la date et l'encodage de caractères. Cela
permet de modifier les langues utilisées par Vim sans toucher aux valeurs
externes.
Le tutoriel de Vim peut utiliser différentes langues. (Eduardo Fernandez)
Des traductions espagnole (Eduardo Fernandez), italienne (Antonio Colombo),
japonaise (Yasuhiro Matsumoto) et française (Adrien Beau) sont disponibles.
"vimtutor.bat" ajouté : ce script permet de lancer Vim en ouvrant une copie
du tutoriel sur MS-Windows. (Dan Sharp)
- Variable "v:lang" ajoutée pour permettre d'accéder à la valeur des
paramètres linguistiques courants. (Marcin Dalecki)
Idem pour "v:lc_time" et "v:ctype".
- La traduction des dialogues utilisés par les menus est désormais possible.
Des variables globales "menutrans_" sont utilisées pour cela. ":menutrans
clear" les supprime.
- Problème "broken locale" XXX résolu. (Marcin Dalecki)
- Ne pas utiliser de noms de couleurs dans les icônes, mais plutôt des valeurs
RVB. Les noms pourraient être traduits.
- Win32 : support de Global IME ajouté. (Muraoka)
- Win32 : support du chargement dynamique d'IME ajouté.
- ":messages" affiche dans sa sortie qui est le responsable actuel des
messages ou de leur traduction. C'est utile pour savoir à qui s'adresser
pour signaler une erreur.
- Argument --disable-nls ajouté pour `configure` : désactive l'utilisation de
gettext(). (Sung-Hyun Nam)
- Support NLS ajouté pour Win32 avec le compilateur MinGW. (Eduardo Fernandez)
- Si disponible, appeler bind_textdomain_codeset() pour que gettext() traduise
les messages dans la valeur de 'encoding'. Cela nécessite GNU gettext
0.10.36 ou supérieur.
- Support gettext pour Win32 ajouté. Cela signifie que les messages seront
traduits lorsque la région linguistique est définie et que "libintl.dll" est
trouvé. (Muraoka Taro)
Fonctionne aussi avec le compilateur MinGW. (Eduardo Fernandez)
Détecter la langue et fixer $LANG en interne pour obtenir les messages
traduits dans la langue désirée (si elle est supportée). Utiliser également
$LANG pour sélectionner une langue. La variable "v:lang" possède une toute
autre valeur.
- gvimext.dll modifié pour utiliser les messages traduits, si possible.
(Yasuhiro Matsumoto)
SUPPORT DES GREFFONS *new-plugins*
Pour rendre le chargement de scripts au démarrage de Vim vraiment simple, le
répertoire de support "plugin" peut être utilisé. Tous les fichiers "*.vim"
qu'il contient seront chargés automatiquement. Pour Unix, le répertoire
"~/.vim/plugin" est utilisé par défaut. L'option 'runtimepath' peut être
modifiée pour rechercher des greffons dans d'autres répertoires.
|load-plugins| |add-plugin|
La commande |:runtime| a été ajoutée pour charger un ou plusieurs fichiers
dans 'runtimepath'.
Greffons standards :
netrw.vim édition de fichiers via réseau |new-network-files|
gzip.vim édition de fichiers compressés
explorer.vim navigation dans les répertoires |new-file-browser|
Support pour les fichiers d'aide locaux ajouté. |add-local-help|
Lors de la recherche des marqueurs d'aide, tous les fichiers "doc/tags"
dans 'runtimepath' sont utilisés.
Commande ":helptags" ajoutée : génère un fichier de marqueurs pour un
répertoire d'aide.
La première ligne de chaque fichier d'aide est automagiquement ajoutée à la
section « AJOUTS LOCAUX » du fichier "help.txt".
Argument <unique> ajouté pour la commande ":map" : n'ajoute un mappage que
s'il n'avait pas été défini auparavant.
Quand la valeur d'une option est affichée alors que 'verbose' est fixé, vous
obtiendrez un message indiquant où l'option a été fixée en dernier. C'est très
utile pour déterminer quel script a fixé la valeur.
La nouvelle commande |:scriptnames| donne la liste de tous les scripts qui ont
été sourcés.
IHM graphique : pour Athena, Motif et GTK+, les icônes de la barre d'outils
sont recherchées dans les répertoires "bitmaps" de 'runtimepath'. Cela vous
permet d'ajouter vos propres icônes.
GREFFONS DE TYPES DE FICHIERS *new-filetype-plugins*
Un nouveau groupe de fichiers a été ajouté pour définir des paramètres
spécifiques à un type de fichier. Il peut s'agir d'options et de mappages qui
ne sont utilisés que pour une valeur particulière de 'filetype'.
Ces fichiers sont placés dans "$VIMRUNTIME/ftplugin". L'option 'runtimepath'
rend possible l'utilisation de plusieurs greffons en même temps : votre
greffon personnel, celui utilisé pour le système, celui inclus dans la
distribution de Vim, etc.
Pour que cela fonctionne correctement, plusieurs fonctionnalités ont été
ajoutées :
- Ajout des variables "s:", locales à un script. Cela évite que le nom entre
en conflit avec des variables globales. Elles peuvent être utilisées dans le
script et dans les fonctions, autocommandes et commandes utilisateur
définies dans le script. Elles sont conservées entre deux invocations du
même script. |s:var|
- Ajout de la valeur globale pour les options locales. Cette valeur est
utilisée à l'ouverture d'un nouveau tampon ou à l'édition d'un nouveau
fichier. La valeur d'une option fixée dans une ligne de mode ou pour un type
de fichier spécifique n'est ainsi pas utilisée pour un autre tampon.
":set" fixe à la fois les valeurs locale et globale.
":setlocal" ne fixe que la valeur locale.
":setglobal" fixe ou affiche la valeur globale d'une option locale.
":setlocal name<" fixe une option locale à sa valeur globale.
- Ajout d'une valeur locale de tampon pour certaines options globales :
'equalprg', 'makeprg', 'errorformat', 'grepprg', 'path', 'dictionary',
'thesaurus', 'tags', 'include' et 'define'. Cela permet de fixer une valeur
locale pour ces options globales, sans les rendre incompatibles.
- Ajout des mappages et abréviations locales à un tampon : ":map <buffer>".
- Dans un mappage, "<Leader>" permet d'obtenir obtenir la valeur de la
variable "mapleader". Cela simplifie les mappages qui utilisent "mapleader".
"<Leader>" vaut "\" par défaut. "<LocalLeader>" est similaire mais avec
"maplocalleader". Il est destiné à être utilisé pour des mappages locaux à
un tampon.
- Ajout de <SID> (ID script) pour définir des fonctions et mappages locales à
un script.
- Ajout de l'argument <script> aux commandes ":noremap" et ":noremenu" : ne
remappe que les mappages locaux de script. Évite que les mappages provenant
d'autres scripts n'interfèrent, mais autorise l'utilisation des mappages
définis dans le script.
- Les commandes utilisateur peuvent être locales à un tampon : ":command
-buffer".
La nouvelle commande ":setfiletype" est utilisée dans les autocommandes de
détection du type de fichier, pour éviter que 'filetype' ne soit fixé
plusieurs fois.
EXPLORATEUR DE FICHIERS *new-file-browser*
Lorsqu'un répertoire est édité, le greffon "explorer.vim" listera les
fichiers contenus dans ce répertoire. Pressez <Entree> sur nom de fichier pour
l'éditer. Pressez <Entree> sur un répertoire pour vous y déplacer.
D'autres actions sont possibles, comme l'ouverture d'un fichier dans la
fenêtre d'aperçu, le renommage ou l'effacement de fichiers.
Voir |file-explorer|.
ÉDITION DE FICHIERS VIA RÉSEAU *new-network-files*
Les fichiers débutant par "scp://", "rcp://", "ftp://" et "http://" sont
reconnus comme des fichiers distants. Vim essaie d'accéder à ces fichiers par
le protocole indiqué. Pour "http://", seule la lecture est possible, pour les
autres, l'écriture est également supportée. Le greffon standard "netrw.vim"
est utilisé pour cela. |netrw|
Commande "gf" modifiée pour fonctionner sur un URL. Elle ne présuppose
désormais plus que le fichier est local à l'ordinateur (cela ne fonctionnait
souvent pas de toute façon, car le chemin complet était nécessaire). "test2"
a été ajusté dans cette optique.
L'utilisation d'un URL dans 'path' est autorisée. Cela permet à ":find
index.html" de fonctionner.
GTK+ : le dépôt d'un URL "http://" et "ftp://" dans Vim est autorisé. Le
greffon "netrw.vim" s'occupe du téléchargement du fichier. (MiKael Berthe)
FENÊTRE D'ÉDITION DE LA LIGNE DE COMMANDE *new-cmdwin*
La fenêtre command-line permet d'éditer une ligne de commande avec les
commandes des modes Normal et Insertion. Lorsqu'elle est ouverte, elle
contient l'historique. Cela permet de copier des parties des lignes de
commandes précédentes. |cmdwin|
La fenêtre command-line peut être ouverte à partir de la ligne de commande
grâce à la séquence clavier définie par l'option 'cedit' (comme Nvi). Elle
peut aussi être ouverte directement depuis le mode Normal avec "q:", "q/" et
"q?".
L'option 'cmdwinheight' est utilisée pour spécifier la hauteur initiale de la
fenêtre.
En mode Insertion, "CTRL-X CTRL-V" permet de compléter une ligne de commande
Ex, de la même façon que sur la ligne de commande. C'est aussi très utile pour
écrire des scripts Vim !
De plus, il existe un « mode Ex amélioré ». On y entre quand Vim est invoqué
par `exim` ou `vim -E`, ainsi qu'avec la commande "gQ". Il fonctionne comme si
l'utilisation de ":" était répétée, avec la pleine édition et le complètement
de la ligne de commande. (Ulf Carlsson)
MODE DÉBOGAGE *new-debug-mode*
En mode débogage, les scripts sourcés et les fonctions utilisateur peuvent
être exécutés ligne par ligne. Il est ainsi possible d'exécuter un bloc de
commandes en une seule fois ou pas à pas. |debug-mode|
Des points d'arrêts peuvent être placés pour interrompre l'exécution à une
ligne particulière dans un script ou une fonction utilisateur. |:breakadd|
Le mode débogage peut être activé avec ":debug {cmd}" pour voir ce qui se
passe lors de l'exécution de {cmd}. L'argument |-D| permet de lancer le mode
débogage au démarrage.
CURSEUR EN POSITION VIRTUELLE *new-virtedit*
Option 'virtualedit' ajoutée : permet le positionnement du curseur à des
endroits où il n'existe en fait aucun caractère en mode Insertion, Visuel ou
pour tous les modes. (Matthias Kramm)
C'est particulièrement utile en mode Visuel-bloc. Cela permet de
positionner le coin d'une zone n'importe où dans l'écran. (nombreuses
améliorations de Chase Tingley)
INTERFACE DÉBOGUEUR *new-debug-itf*
Ces fonctionnalités ont été initialement conçues pour fonctionner avec Sun
Visual Workshop. (Gordon Prieur)
Voir |debugger.txt|, |sign.txt| et |workshop.txt|.
Commande ":sign" ajoutée pour définir et placer des symboles. Ceux-ci peuvent
être représentés par deux caractères ASCII ou une icône. La ligne
correspondante peut être mise en surbrillance. Utile pour afficher des points
d'arrêts et la position courante du Compteur de Programme lors d'un débogage.
Commande |:wsverb| ajoutée pour exécuter des commandes du débogueur.
Support de l'évaluation par bulle : options 'balloondelay' et 'ballooneval'.
Argument "icon=" ajouté pour la commande ":menu". Permet de définir une icône
spécifique pour un élément de la barre d'outils.
COMMUNICATION ENTRE PLUSIEURS VIM *new-vim-server*
Deux applications Vim peuvent désormais communiquer. Il est possible d'envoyer
des commandes de l'une à l'autre. Cela fonctionne pour X Window et MS-Windows.
|clientserver|
Utilisez "--remote" pour éditer des fichiers dans un Vim en cours d'exécution.
Utilisez "--remote-wait" pour faire la même chose et attendre que l'édition se
termine.
Utilisez "--remote-send" pour envoyer des commandes d'un Vim vers un autre.
Utilisez "--remote-expr" pour évaluer une expression dans un Vim distant.
Utilisez "--serverlist" pour lister les serveurs Vim actuellement disponibles
(uniquement sous X).
Il existe également des fonctions pour communiquer entre le serveur et le
client. |remote_send()| |remote_expr()|
(La version X Window est l'oeuvre de Flemming Madsen, la version MS-Windows
celle de Paul Moore.)
Le nom du serveur de commandes est ajouté au titre de la fenêtre, afin que
vous puissiez voir le nom du serveur attaché à un Vim.
Le répertoire "OleVim" et les fichiers "SendToVim.exe" et "EditWithVim.exe"
sont supprimés de la distribution de Vim. Il est maintenant possible
d'utiliser `gvim --remote` et `gvim --remote-send`, ce qui est portable.
GTK+ : support pour lancer une application Vim dans une autre fenêtre ajouté.
L'argument --socketid est utilisé. (Neil Bird)
OPTIONS DE TYPE DE TAMPON *new-buftype*
Options 'buftype' et 'bufhidden' ajoutées. Elles peuvent être fixées pour
définir différents types de tampons. Par exemple :
- 'buftype' = "quickfix" : tampon contenant la liste d'erreurs ;
- 'buftype' = "nofile" et 'bufhidden' = "delete" : tampon de brouillon qui
sera détruit dès qu'il n'y aura plus de fenêtre pour l'afficher.
'bufhidden' permet de passer outre l'option 'hidden' pour un tampon.
En combinaison avec 'buflisted' et 'swapfile', cela permet de créer
différentes familles de tampons spéciaux. Voir |special-buffers|.
IMPRESSION *new-printing*
Commande ":hardcopy" ajoutée pour permettre d'imprimer sur papier. Pour
MS-Windows, n'importe quelle imprimante installée peut être utilisée. Pour les
autres systèmes, un fichier PostScript est généré, qui peut être imprimé avec
l'option 'printexpr'. (partie MS-Windows par Vince Negri et Vipin Aravind,
partie PostScript par Vince Negri et Mike Williams)
":hardcopy" supporte les caractères multi-octets. (Muraoka Taro, Yasuhiro
Matsumoto)
Options ajoutées pour configurer l'impression : (Vince Negri)
- 'printoptions' définit divers paramètres ;
- 'printheader' définit le format de l'en-tête. Ajout du champ 'N' à
'statusline' pour le numéro de page ;
- 'printfont' spécifie le nom et les attributs de la police ;
- 'printdevice' spécifie l'imprimante par défaut pour ":hardcopy!".
PORTAGES *ports-6*
Portage sur l'Unix OS/390 : (Ralf Schandl)
- nombreux changements pour supporter l'encodage EBCDIC ;
- changement de la définition "Ctrl('x')" en "Ctrl_x".
Support jsbmouse ajouté. (Darren Garth)
Support pour la souris dec dans Unix. (Steve Wall)
Portage sur la version 16-bits de MS-Windows (Windows 3.1x). (Vince Negri)
Portage sur QNX. Support de l'IHM graphique Photon, de la souris, etc. (Julian
Kinraid)
Autorise la compilation croisée de la version Win32 avec Make_ming.mak. (Ron
Aaron)
Support Python ajouté pour compiler avec MinGW. (Ron Aaron)
DOS 32-bits : support du presse-papiers Windows ajouté. (David Kotchan)
Win32 : chargement dynamique de Perl et de Python. Cela permet de compiler
Vim avec ces interfaces et de ne rechercher les DLL correspondants qu'à
l'exécution. (Muraoka Taro)
Compilation de l'IHM graphique Win32 avec Cygwin. Cela compile également
`vimrun`, `dosinst` et `uninstall`. (Gerfried)
Mac : support de la compilation de Vim avec le compilateur libre MPW fourni
par Apple. Mises à jour pour CodeWarrior. (Axel Kielhorn)
Ajout de transtypages et de #ifdef pour commencer le portage de Vim sur Win64.
(George Reilly)
MODE MISE-AU-POINT ÉTENDU *quickfix-6*
Ajout de la « fenêtre d'erreurs ». Elle contient toutes les erreurs de la
liste d'erreurs courante. Une pression sur <Entree> dans une ligne fera sauter
Vim vers cette ligne (dans une autre fenêtre). Cela facilite la navigation
dans la liste d'erreurs. |quickfix-window|
- |:copen| ouvre la fenêtre mise-au-point ;
- |:cclose| ferme la fenêtre mise-au-point ;
- |:cwindow| ouvre une fenêtre mise-au-point uniquement si des erreurs sont
reconnues. (Dan Sharp)
- Le mode mise-au-point reconnaît à présent les messages de type
« information », en plus des types « avertissement » et « erreur ». "%I"
peut être utilisé pour le début d'un message d'information multi-lignes.
(Tony Leneis)
- L'argument "%p" peut être utilisé dans 'errorformat' pour obtenir le numéro
de la colonne désignée par un '^' dans une ligne. (Stefan Roemer)
- Lorsque "%f" est utilisé dans 'errorformat' sur un système DOS/Windows, un
"C:" sera inclus dans le nom de fichier, même si "%f:" est utilisé.
MODIFICATEURS D'OPÉRATEURS *new-operator-mod*
L'insertion de "v", "V" ou CTRL-V entre un opérateur et un mouvement oblige
désormais l'opérateur à fonctionner par caractères, lignes ou blocs. |o_v|
CHEMIN DE RECHERCHE *new-search-path*
Vim peut effectuer une recherche dans une arborescence de répertoire non
seulement descendante mais aussi ascendante. Cela fonctionne pour les options
'path', 'cdpath' et 'tags'. (Ralf Schandl)
"**" est également utilisé pour l'option 'tags'. (Ralf Schandl)
Option 'includeexpr' ajoutée, permet de modifier le nom des fichiers trouvés
par l'option 'include'.
'includeexpr' est aussi utilisé pour "gf" et "<cfile>" quand le fichier ne
peut pas être trouvé sans modification. Utile pour exécuter "gf" sur le nom
suivant une instruction "include" ou "import".
Option 'cdpath' ajoutée : donne les emplacements où rechercher un argument à
":cd". (Raf)
Option 'suffixesadd' ajoutée : liste de suffixes à ajouter à un nom de fichier
lors d'une recherche avec "gf", "[I", etc.
ENREGISTREMENT DES FICHIERS AMÉLIORÉ *new-file-writing*
Option 'backupcopy' ajoutée : définit si un fichier doit être copié ou renommé
pour la création d'un fichier de sauvegarde. Utile sur Unix pour accélérer
l'enregistrement d'un fichier ordinaire. Utile sur les autres systèmes pour
préserver les attributs des fichiers et lors de l'édition d'un fichier sur un
système de fichiers Unix.
Option 'autowriteall' ajoutée : fonctionne comme 'autowrite' mais pour plus de
commandes.
Option 'backupskip' ajoutée : liste de motifs de fichiers pour lesquels Vim ne
fait pas de sauvegarde. La valeur par défaut inclut "/tmp/*" sous Unix, pour
fonctionner avec `crontab -e`.
Support des ACL (listes de contrôles d'accès) ajouté sur FreeBSD et Win32. Les
ACL sont copiées du fichier original vers le nouveau fichier (ou vers la
sauvegarde si elle faite par copie).
Les ACL sont également supportées sur AIX, Solaris et les systèmes
conformes à POSIX. (Tomas Ogren)
Idem pour SGI.
LISTE DES ARGUMENTS *new-argument-list*
Le support de la liste des arguments a été étendu. Celle-ci peut être modifiée
pour y inclure les fichiers que vous souhaitez.
La liste des arguments peut désormais être locale à une fenêtre. Elle est
créée avec la commande |:arglocal|. La commande |:argglobal| peut être
utilisée pour revenir à la liste des arguments globale.
La commande |:argdo| exécute une commande sur tous les fichiers de la liste
des arguments.
Les noms de fichiers peuvent être ajoutés à la liste des arguments avec
|:argadd|, ou supprimés avec |:argdelete|.
"##" peut être utilisé comme "#", il est remplacé par tous les noms de la
liste des arguments concaténés. Utile pour faire ":grep zorglub ##".
La commande |:argedit| ajoute un fichier à la liste des arguments et l'édite.
Identique à ":argadd" puis ":edit".
RESTAURATION DE VUES *new-View*
La commande ":mkview" écrit un script Vim contenant les mappages et paramètres
utilisés pour une fenêtre. Quand le fichier créé est sourcé, la vue de la
fenêtre est restaurée. C'est similaire à ":mksession" pour une fenêtre.
La Vue contient également la liste des arguments locale et les replis
ouverts, fermés et créés manuellement.
Commande ":loadview" et option 'viewdir' ajoutées : permet la sauvegarde et la
restauration de vues d'un fichier avec des commandes simples. ":mkview 1"
sauvegarde la vue 1 pour le fichier courant, ":loadview 1" la charge à
nouveau. Permet en outre de basculer facilement entre deux vues d'un fichier.
Et de sauvegarder et restaurer les replis manuels et l'état des replis.
Option 'viewoptions' ajoutée pour définir comment ":mkview" doit fonctionner.
":mksession" fonctionne bien à présent avec les partages verticaux. Il a été
largement amélioré et restaure la vue de chaque fenêtre. Il fonctionne bien
également pour les fenêtres d'aperçu et mise-au-point.
L'option 'sessionoptions' est elle aussi utilisée pour ":mkview".
Items "curdir" et "sesdir" ajoutés à 'sessionoptions'. Permet de choisir la
valeur à laquelle le répertoire courant sera restauré.
Le fichier de session inclut maintenant aussi la (ou les) liste(s) des
arguments.
JEUX DE COULEURS *new-color-schemes*
Support pour charger un jeu de couleurs. Commande ":colorscheme" ajoutée.
Les jeux de couleurs disponibles sont automatiquement ajoutés au menu.
Les couleurs devraient à présent être correctement réinitialisées quand
'background' ou 't_Co' est modifié.
":highlight clear" ramène toutes les surbrillances à leurs valeurs par
défaut.
":syntax reset" ramène les surbrillances de la syntaxe actuelle à leurs
valeurs par défaut.
Lors d'un ":set bg&", Vim essaiera de deviner la valeur correcte. Cela
permet à un jeu de couleurs de rétablir les surbrillances par défaut.
Quand la coloration syntaxique est activée et qu'un jeu de couleurs a été
défini, le jeu de couleurs est rechargé pour définir les couleurs.
AUTRES ÉLÉMENTS NOUVEAUX *new-items-6*
Commandes du mode Normal
------------------------
gi Saute à la marque '^' et passe en mode Insertion. Fonctionne
aussi quand la marque est juste après la ligne. |gi|
g'm et g`m Saute à une marque sans modifier la liste des sauts. Vous
pouvez ainsi utiliser g`" pour sauter à la dernière position
connue dans un fichier sans effets de bords. Également utile
dans les mappages.
[', [`, ]' et ]`
Amène le curseur à la marque minuscule précédente/suivante.
g_ Va au dernier caractère non-blanc d'une ligne. (Steve Wall)
Options
-------
'autoread' Si Vim détecte qu'un fichier a été modifié par une autre
application, le tampon correspondant sera automatiquement relu
si aucune modification n'a été effectuée dans Vim.
Dispose d'une valeur globale et d'une valeur locale. Utilisez
":setlocal autoread<" pour revenir à l'utilisation de la
valeur globale de 'autoread'.
'debug' Si fixé à "msg", affiche des messages d'erreurs qui auraient
été omis sans cela. Utile pour déboguer 'indentexpr' et
'foldexpr'.
'lispwords' Liste de mots utilisée pour l'indentation Lisp. Elle était
auparavant incluse directement dans le code source. De
nombreux noms Lisp ont été ajoutés à la valeur par défaut.
'fold...' Nombreuses nouvelles options pour le repliage.
'modifiable' Si désactivé, il est impossible d'effectuer des changements
sur un tampon. Les items "%m" et "%M" de 'statusline'
affichent un '-'.
'previewwindow' Activé dans la fenêtre d'aperçu. Utilisé dans un fichier de
session pour signaler une fenêtre comme la fenêtre d'aperçu.
'printfont'
'printexpr'
'printheader'
'printdevice'
'printoptions' Pour ":hardcopy".
'buflisted' Fait apparaître/disparaître un tampon de la liste des tampons.
Support de la forme "vim{version}:" pour les lignes de mode, à exécuter
uniquement lorsque la version de Vim est supérieure ou égale à {version}. Les
formes "vim>{version}", "vim<{version}" et "vim={version}" sont également
supportées.
Commandes Ex
------------
:saveas[!] {fich}
Fonctionne comme ":w {fich}" et ":e #", mais sans recharger le
fichier et en évitant d'autres effets de bord. |:saveas|
:silent[!] {cmd}
Exécute une commande silencieusement. Annule le délai qui
serait produit par l'affichage d'un message. N'effectue pas
'showmatch'.
RISC OS : suppression de "!~cmd", qui annulait toute sortie de
caractères et l'attente d'une pression sur <Entree> après
l'exécution. Vous pouvez maintenant utiliser ":silent !cmd".
:menu <silent> Ajoute un menu qui ne retournera pas les commandes Ex en écho.
:map <silent> Ajoute un mappage qui ne retournera pas les commandes Ex en
écho.
:checktime Teste s'il y a des tampons modifiés.
:verbose {cmd} Fixe 'verbose' pour une commande particulière.
:echomsg {expr}
:echoerr {expr} Comme ":echo", mais mémorise le message dans l'historique.
(Mark Waggoner)
:grepadd Fonctionne exactement comme ":grep", mais ajoute dans la liste
d'erreurs courante plutôt que de définir une nouvelle liste.
|:grepadd|
:finish Termine le sourcement d'un fichier. Permet d'ignorer le reste
d'un script Vim. |:finish|
:leftabove
:aboveleft Partage la fenêtre courante en haut/à gauche.
:rightbelow
:belowright Partage la fenêtre courante en bas/à droite.
:first, :bfirst, :ptfirst, etc.
Alias pour ":rewind". Ils sont plus logiques par rapport à
":last".
:enew Édite un nouveau tampon, sans nom. Cette commande est
nécessaire, car ":edit" réédite le même fichier. (Wall)
:quitall Comme ":qall".
:match Définit un motif de surbrillance localement à une fenêtre.
Permet de mettre en surbrillance un élément de syntaxe dans la
fenêtre courante sans interférer avec la coloration
syntaxique.
:menu enable
:menu disable Commandes pour activer/désactiver des entrées de menu sans les
supprimer. (Monish Shah)
:windo Exécute une commande dans toutes les fenêtres.
:bufdo Exécute une commande dans tous les tampons.
:wincmd Commande de fenêtrage (CTRL-W). Utile lorsqu'une commande du
mode Normal ne peut pas être utilisée (p. ex., pour une
autocommande CursorHold). Voir |CursorHold-example| pour un
exemple concret.
:lcd et :lchdir
Fixe le répertoire local pour une fenêtre. (Benjie Chen)
:hide {cmd} Exécute {cmd} avec 'hidden' activé.
:emenu Exécute une entrée de menu.
:popup Fait apparaître un menu contextuel.
:redraw Rafraîchit l'écran même si un script ou une fonction sont en
cours d'exécution.
:hardcopy Imprime sur papier.
:compiler Charge un script Vim qui effectue un paramétrage destiné à un
compilateur particulier.
:z# Liste des lignes numérotées. (Bohdan Vlasyuk)
Nouvelles marques
-----------------
'( et ') Début ou fin de la phrase courante. Utile dans les commandes
Ex.
'{ et '} Début ou fin du paragraphe courant. Utile dans les commandes
Ex.
'. Position de la dernière modification dans le tampon.
'^ Position où le mode Insertion a été quitté.
Les marques '^' et '.' sont enregistrées dans le fichier viminfo. Cela permet
de sauter à la position de la dernière insertion ou modification.
Nouvelles fonctions
-------------------
argidx() Renvoie l'index courant dans la liste des arguments.
buflisted() Teste si le tampon existe et est listé ('buflisted' activé).
cindent() Renvoie l'indentation utilisée par 'cindent'.
eventhandler() Renvoie 1 si appelé dans une routine de traitement d'événement
où les commandes interactives ne peuvent pas être utilisées.
executable() Teste si un programme ou un script shell peut être exécuté.
filewritable() Teste si un fichier peut être enregistré. (Ron Aaron)
foldclosed() Détermine si une ligne est dans un repli fermé. (Johannes
Zellner)
foldcloseend() Trouve la fin d'un repli fermé.
foldlevel() Détermine le niveau de repli d'une ligne. (Johannes Zellner)
foreground() Amène la fenêtre IHM graphique au premier plan.
getchar() Attend un caractère de l'utilisateur. Utile pour définir un
mappage qui accepte un argument.
getcharmod() Indique le dernier modificateur clavier utilisé.
getbufvar() Renvoie la valeur d'une option ou d'une variable locale à un
tampon. (Ron Aaron)
getfsize() Renvoie la taille d'un fichier.
getwinvar() Renvoie la valeur d'une option ou d'une variable locale à une
fenêtre. (Ron Aaron)
globpath() Trouve les fichiers qui correspondent à un motif d'englobement
dans une liste de répertoires.
hasmapto() Teste si un mappage à une chaîne existe déjà.
iconv() Convertit une chaîne d'un encodage à un autre.
indent() Renvoie l'indentation d'une ligne. (Ron Aaron)
inputdialog() Comme input(), mais utilise une boîte de dialogue si possible.
Ne fonctionne actuellement que pour Win32, Motif, Athena et
GTK+.
inputdialog() est utilisé pour les éléments de menu
"Edit->Settings->Text Width" et "Help->Find..", ainsi que pour
l'élément FindHelp de la barre d'outils. XXX
(support Win32 par Thore B. Karlsen)
(support Win16 par Vince Negri)
inputsecret() Comme input(), mais sans afficher les caractères saisis.
(Charles Campbell)
libcall() Pour Unix. (Neil Bird, Johannes Zellner, Stephen Wall)
libcallnr() Pour Win32 et Unix.
lispindent() Renvoie l'indentation utilisée par 'lisp'.
mode() Renvoie une chaîne qui indique le mode courant.
nextnonblank() Saute les lignes blanches vers l'avant.
prevnonblank() Saute les lignes blanches vers l'arrière. Utile dans les
scripts d'indentation.
resolve() MS-Windows : renvoie le fich. vers lequel un raccourci pointe.
Unix : renvoie le fich. vers lequel un lien symbolique pointe.
search() Recherche un motif.
searchpair() Recherche une correspondance de couple. Utile dans les scripts
d'indentation pour trouver le "if" correspondant à un "endif".
setbufvar() Fixe une option ou une variable locale à un tampon. (Ron
Aaron)
setwinvar() Fixe une option ou une variable locale à une fenêtre. (Ron
Aaron)
stridx() Recherche la première occurrence d'un chaîne dans une autre.
strridx() Recherche la dernière occurrence d'un chaîne dans une autre.
tolower() Passe une chaîne entière en minuscules.
toupper() Passe une chaîne entière en majuscules.
type() Teste le type d'une expression.
wincol() Renvoie la colonne de fenêtre du curseur.
winwidth() Renvoie la largeur d'une fenêtre. (Johannes Zellner)
winline() Renvoie la ligne de fenêtre du curseur.
Ajout de l'expansion des accolades dans les noms de variables ou de fonctions.
Cela peut être utilisé dans des noms de variables qui incluent la valeur d'une
option. Ou pour obtenir une forme primitive de tableau. (Vince Negri)
Nouveaux événements d'autocommandes
-----------------------------------
BufWinEnter Déclenché quand un tampon est affiché dans une fenêtre, après
la lecture des lignes de mode. Peut être utilisé pour charger
une vue.
BufWinLeave Déclenché quand un tampon n'est plus affiché dans une fenêtre,
ainsi qu'à la sortie de Vim. Peut être utilisé pour
sauvegarder des vues.
FileChangedRO Déclenché avant d'effectuer la première modification sur un
fichier en lecture seule. Peut être utilisé pour automatiser
un "checkout" sur un système de gestion de versions. (Scott
Graham)
TermResponse Déclenché quand le terminal répond à une requête de version.
La variable interne "v:termresponse" contient le résultat de
la requête. Peut être utilisé pour s'adapter à la version du
terminal. (Ronald Schild)
FileReadCmd Déclenché avant la lecture d'un fichier.
BufReadCmd Déclenché avant la lecture d'un fichier dans un tampon.
FileWriteCmd Déclenché avant l'enregistrement d'un fichier.
BufWriteCmd Déclenché avant l'écriture d'un tampon dans un fichier.
FileAppendCmd Déclenché avant l'ajout dans un fichier.
FuncUndefined Déclenché quand une fonction utilisateur n'est pas définie.
(Ron Aaron)
Les autocommandes pour les événements *Cmd redéfinissent la façon dont un
fichier est lu/enregistré. Ceci est utilisé dans le greffon "netrw.vim" pour
permettre l'édition de fichiers sur un système distant. (Charles Campbell)
Nouveaux fichiers de syntaxe
----------------------------
bdf Définition de police BDF (Nikolai Weibull)
catalog SGML catalog (Johannes Zellner) XXX
debchangelog ChangeLog Debian (Wichert Akkerman)
debcontrol Debian Control (Wichert Akkerman) XXX
dot Dot (Markus Mottl)
dsl Syntaxe DSSSL (Johannes Zellner)
eterm Configuration Eterm (Nikolai Weibull)
indent Configuration Indent (Nikolai Weibull)
lftp LFTP (Nikolai Weibull)
lynx Configuration Lynx (Doug Kearns)
mush Code source Mush (Bek Oberin)
natural Natural (Marko Leipert)
pilrc Compilateur de ressources Pal (Brian Schau) XXX Palm ?
plm PL/M (Philippe Coulonges)
povini Configuration POV-Ray (David Necas)
ratpoison Configuration/commande Ratpoison (Doug Kearns)
readline Configuration readline (Nikolai Weibull)
screen Configuration Screen (Nikolai Weibull)
specman Specman (Or Freund)
sqlforms SQL*Forms (Austin Ziegler) XXX
terminfo terminfo (Nikolai Weibull)
tidy Configuration Tidy (Doug Kearns)
wget Configuration Wget (Doug Kearns)
Nombreux fichiers de syntaxe mis à jour pour fonctionner à la fois avec Vim
5.7 et 6.0.
Divers
------
Création d'une interface Ruby. (Shugo Maeda)
Support du chargement dynamique de l'interface Ruby sur MS-Windows.
(Muraoka Taro)
Également pour MinGW. (Benoit Cerrina)
Win32 : ajout de la possibilité de charger TCL dynamiquement. (Muraoka Taro)
Également pour Borland 5.5. (Dan Sharp)
Win32 : lors de l'édition d'un raccourci (fichier ".lnk"), éditer le fichier
vers lequel celui-ci pointe. Mais si 'binary' est activé, éditer plutôt le
fichier de raccourci lui-même. (Yasuhiro Matsumoto)
La commande ":command" accepte à présent un argument "-bar". Il permet à une
commande utilisateur de pouvoir être suivie par "| command".
La fenêtre d'aperçu est désormais aussi utilisée par ces commandes :
- |:pedit| édite le fichier spécifié dans la fenêtre d'aperçu ;
- |:psearch| recherche un mot dans les fichiers inclus, comme |:ijump|, et
affiche le texte trouvé dans la fenêtre d'aperçu.
Commande "CTRL-W P" ajoutée : permet d'aller à la fenêtre d'aperçu.
MS-DOS et MS-Windows lisent également le fichier vimrc système "$VIM/vimrc".
Essentiellement pour les systèmes NT multi-utilisateurs.
Un double clic de la souris sur un caractère qui possède un appariement avec
"%" sélectionne le texte depuis ce caractère jusqu'à son appariement.
Identique à "v%".
Argument "-S session.vim" : source un fichier de script au démarrage. C'est un
moyen commode pour lancer Vim avec un fichier de session.
Argument "--cmd {commande}" ajouté pour exécuter une commande avant qu'un
fichier vimrc ne soit chargé. (Vince Negri)
Argument "-M" ajouté : désactive 'modifiable' et 'write', ce qui interdit
toute modification et tout enregistrement des fichiers.
Script "runtime/delmenu.vim" ajouté. Sourcez-le pour supprimer tous les menus
préparer le chargement de nouveaux menus. Utile quand 'langmenu' est changé.
Script Perl créé pour filter les messages d'erreurs Perl dans un format
utilisable par le mode mise-au-point. (Joerg Ziefle)
Script "runtime/macros/less.vim" ajouté : simule `less`, mais avec la
coloration syntaxique.
Programme d'installation MS-Windows amélioré : (Jon Merz)
- Le programme Win32 peut désormais créer des raccourcis sur le bureau et
installer Vim dans le menu Démarrer.
- Il est possible de supprimer d'anciennes entrées "Éditer avec Vim".
- L'exécutable Vim n'est jamais déplacé ni $PATH modifié. Un petit fichier
batch est créé dans un répertoire de $PATH. Cela réduit les choix à faire.
- Les versions déjà installées de Vim sont détectées et il est d'abord proposé
de les désinstaller.
Programme de désinstallation MS-Windows amélioré. Il supprime maintenant aussi
les entrées dans le menu Démarrer, les icônes sur le bureau et les fichiers
batch créés. (Jon Merz)
Il est également possible de ne supprimer qu'une partie de ces éléments. Et
de désenregistrer gvim pour OLE.
Génération d'un installateur automatique pour Vim sur MS-Windows. NSIS est
utilisé. (Jon Merz et al.)
Commande ":filetype detect" ajoutée : essaie de redétecter le type d'un
fichier. Utile lors de la création d'un script shell, après avoir saisi
"#!/bin/csh".
Commande ":augroup! name" ajoutée : supprime un groupe d'autocommandes.
Nécessaire pour le client-serveur "--remote-wait".
Ajout du numéro de version de Vim dans le fichier viminfo, utile pour le
débogage.
==============================================================================
Améliorations *improvements-6*
Ajout du drapeau 'n' dans 'cpoptions' : si omis, le texte des lignes enroulées
ne débordera pas parmi les numéros de lignes de l'option 'number'. Cela
facilite beaucoup la lecture des lignes enroulées.
En cas d'erreur de format dans un fichier de marqueurs, la position en octets
est rapportée, ce qui permet de localiser l'erreur.
"gf" fonctionne en mode Visuel : le texte sélectionné est interprété comme un
nom de fichier. (Chase Tingley)
Les mappages ambigus sont autorisés. Ainsi, "aa" et "aaa" peuvent tous deux
être mappés, la correspondance la plus longue sera utilisée. Particulièrement
utile pour ":lmap" et 'keymap'.
Chiffrement : la clé doit être saisie deux fois lors du premier chiffrement.
Sans cette confirmation, une erreur de frappe provoquerait la perte
irrémédiable du texte chiffré. (Chase Tingley)
Le titre de la fenêtre indique à présent « VIM » en dernière position. Le nom
du fichier arrive en premier (utile dans une barre des tâches). Un "+" est
ajouté lorsque le fichier est modifié. "=" est ajouté pour un fichier en
lecture seule. "-" est ajouté pour un fichier non-'modifiable'.
En mode Visuel, la taille de la zone sélectionnée est affichée sur
l'emplacement utilisé par 'showcmd'.
Ajout de la variable "b:changedtick" : elle est incrémentée à chaque
changement, annulations comprises. Utile pour accomplir une action sur un
tampon en fonction de son état de modification.
Dans la chaîne de remplacement d'une commande ":s", "\=" permet de remplacer
par le résultat d'une expression. Dans cette expression, la fonction
submatch() peut être utilisée pour accéder aux sous-correspondances.
Si ":qall" est exécuté et qu'il existe un changement dans un tampon en cours
d'édition dans une autre fenêtre, saute à cette fenêtre, au lieu d'éditer ce
tampon dans la fenêtre courante.
Arguments "++enc=" et "++ff=" ajoutés aux commandes de lecture/enregistrement
de fichier, pour obliger à utiliser un encodage et un format de fichier
particulier (options 'encoding' et 'fileformat').
Variable "v:cmdarg" également ajoutée, à utiliser pour les autocommandes
telles que FileReadCmd, qui lisent/enregistrent le fichier par elles-mêmes.
Lors d'une lecture sur l'entrée standard, le texte est lu une première fois
en mode binaire, puis relu avec sélection automatique de 'fileformat' et
'fileencoding'. Cela permet d'éviter le problème posé par l'impossibilité de
revenir en arrière dans le fichier (p. ex., quand une ligne près de la fin du
fichier se termine par LF au lieu de CR-LF).
Lors d'une lecture de texte sur l'entrée standard, si le tampon est vide,
il n'est pas marqué comme modifié. Cela permet de quitter sans encombre.
Identifiant ajouté pour de nombreux messages d'erreurs. Cela facilite la
recherche de l'aide sur un message.
Mode Insertion :
- "CTRL-G j" et "CTRL-G k" permettent d'insérer dans la même colonne d'une
autre ligne. Utile pour éditer un tableau.
- Complètement par thésaurus ajouté : "CTRL-X CTRL-T". (Vince Negri)
- Option 'thesaurus' ajoutée, à utiliser à la place de 'dictionary' pour le
complètement par thésaurus. Drapeau 's' ajouté dans 'complete'.
- "CTRL-X CTRL-L" en mode Insertion utilise maintenant l'option 'complete'. Il
examine également les autres tampons pour trouver les lignes
correspondantes.
- CTRL-R fonctionne à présent aussi en mode Insertion lors d'un complètement
avec CTRL-X ou CTRL-N. (Neil Bird)
- Lors d'un complètement en mode Insertion, quand le complètement est terminé,
vérifie s'il y a une correspondance avec les mots de 'cinkeys' ou
'indentkeys'.
Performance :
- La mise à jour de l'affichage a été rendue plus efficace. Les lignes
insérées/supprimées pourront être utilisées pour tous les changements,
annulations/restaurations comprises.
- L'affichage n'est pas rafraîchi lors d'une saisie en mode Insertion. Cela
accélère beaucoup CTRL-R.
- Vitesse de sortie de l'écran améliorée pour la version Dos 32-bits. (Vince
Negri)
- Lors du glissement de la souris, les codes souris sont ignorés s'ils sont
suivis par d'autres codes similaires. Cela accélère considérablement les
glissements de la souris.
- Utilisation de la mémoire également améliorée : lors d'un appel à u_save
avec une ligne unique, cette dernière n'est pas mémorisée si elle l'a déjà
été récemment pour la même annulation.
- Lors de l'utilisation d'un script ajoutant un caractère à la fois, la
quantité de mémoire allouée augmente régulièrement. Même quand 'undolevels'
vaut -1. Cela provient de ce que la ligne mémorisée pour "U" n'est jamais
libérée. À présent, les blocs pour l'annulation sont libérés quand ils sont
vides.
- IHM graphique et Dos32 : utilisation d'une région de défilement verticale,
pour accélérer le défilement dans un fenêtre partagée verticalement. Cela
rend inutile le rafraîchissement de la fenêtre entière.
- Lorsque le défilement n'est pas possible avec les codes du terminal (p. ex.,
pour une fenêtre partagée verticalement), l'écran est rafraîchi en utilisant
ScreenLines[]. Cela devrait être plus rapide que d'examiner les lignes avec
win_line(), particulièrement si la coloration syntaxique est active.
- Le menu Syntaxe est désormais pré-généré par un script séparé. Cela rend le
chargement du menu 70 % plus rapide. Cela peut diviser par deux le temps de
démarrage de gvim.
- Lorsque ":help {marqueur}" est exécuté, "help.txt" n'est plus ouvert en
premier, le saut vers le marqueur d'aide est effectué directement. C'est
plus rapide et évite un message supplémentaire.
- Win32 : lorsqu'un nom de fichier ne se termine pas par ".lnk", n'essaie pas
de trouver si c'est un raccourci, cela prend trop de temps.
- Pas de mise à jour de la forme du pointeur de la souris lorsqu'une saisie
est en cours.
- META[] est changée d'une chaîne en un tableau, cela évite d'utiliser
strchr() dessus.
- La ligne de commande n'est pas effacée lors de l'ajout de caractères, cela
évite d'appeler screen_fill alors qu'il n'y a rien à faire.
Robustesse :
- Unix : lors de l'évaluation d'une expression rationnelle, vérifier si
l'espace libre pour la pile est suffisant. Ceci permet d'éviter un plantage
sérieux. Ne fonctionne que si le système autorise l'exécution de la fonction
signal() avec une pile distincte.
- ":source {nomrep}" est interdit. Sur Unix, il est possible de lire un
répertoire, une telle chose n'a pas de sens en tant que commande Vim.
Sécurité :
- Lors de la lecture ou de l'écriture d'un fichier temporaire, vérifie s'il ne
s'agit pas d'un lien symbolique. Cela offre une certaine protection contre
les attaques par lien symbolique.
- Lors de la création d'une copie de fichier de sauvegarde ou d'un fichier
d'échange, vérifie s'il n'en existe pas déjà un pour éviter une attaque par
lien symbolique. (Colin Phipps)
- Les options qui sont des expressions sont évaluées dans le bac à sable
|sandbox|. Si l'option avait été fixée dans une ligne de mode, elle ne peut
pas causer de tort.
- Il est possible de générer des noms de fichiers temporaires de façon
sécurisée, en créant un répertoire privé pour les fichiers temporaires.
Utilisé pour Unix, MS-DOS et OS/2.
- 'makeef' peut être vide, ce qui signifie qu'un nom de fichier généré en
interne est utilisé. L'ancienne valeur par défaut était "/tmp/file", c'était
un risque potentiel.
L'écriture du fichier d'erreurs ('makeef') dans le répertoire courant échoue
dans un répertoire en lecture seule et pose problème lors de l'utilisation
de ":grep" sur tous les fichiers. La valeur par défaut est rendue vide pour
tous les systèmes, afin qu'un fichier temporaire soit utilisé.
- La commande de saut issue d'un fichier de marqueurs est exécutée dans le bac
à sable, pour une meilleure sécurité.
- Les interfaces Ruby, Tcl et Python ne peuvent pas être utilisées depuis le
bac à sable. Elles peuvent effectuer des actions dangereuses. L'interface
Perl reste utilisable, mais elle est limitée à l'environnement Safe. (Donnie
Smith)
Coloration syntaxique :
- Optimisation de la vitesse en mettant en mémoire la pile d'état pour tout le
fichier, pas seulement pour la partie qui est affichée. Nécessaire pour les
replis.
- Ajout de ":syntax sync fromstart" : commence toujours l'analyse syntaxique
au début du fichier.
- Argument "display" ajouté pour les éléments de syntaxe : n'utilise l'élément
que lorsque le résultat est affiché. Peut rendre l'analyse syntaxique plus
rapide pour le texte qui ne doit pas être affiché.
- Lorsque CTRL-L est utilisé, les états mis en mémoire sont supprimés pour
obliger à analyser le texte à nouveau.
- L'algorithme elfhash est utilisé pour le tableau des mots-clés. Cela devrait
donner une meilleure distribution et accélérer la recherche des mots-clés.
(Campbell)
- Le contexte initial ("lc") se voit autorisé avec les motifs "skip" et "end".
(Scott Bigham)
- Argument "extend" ajouté pour les éléments de syntaxe : annule l'effet de
l'argument "keepend" d'un élément dans lequel il est contenu. Cela permet à
certains éléments contenus d'étendre une région, tandis que d'autres ne le
peuvent pas.
- ":syntax clear" détruit à présent la variable "b:current_syntax". C'est
logique, puisque aucune syntaxe n'est définie après cette commande.
- Ajout de ":syntax enable" : active la coloration syntaxique sans changer les
couleurs. Cela permet de spécifier les couleurs dans le fichier vimrc sans
recourir à "mysyntaxfile".
- Ajout de ":syntax reset" : réinitialise les couleurs.
- Arguments "contains=TOP" et "contains=CONTAINED" ajoutés pour les éléments
de syntaxe : permettent de définir un élément transparent qui ne se contient
pas lui-même.
- Argument "containedin" ajouté pour les éléments de syntaxe : permet
d'ajouter un élément contenu à un élément existant (p. ex., pour mettre en
surbrillance un nom dans un commentaire).
Sélection amodale :
- Si vous êtes dans la fenêtre command-line, la sélection amodale sera
utilisée dans les autres fenêtres. Cela permet de copier du texte visible
dans la fenêtre command-line.
- Support de la sélection amodale sur la ligne de commande dans un terminal.
Auparavant, ce n'était possible que pour l'IHM graphique.
- Un double clic droit en sélection amodale fera sélectionner un mot entier.
Un clic droit simple n'utilise pas la sélection par mots lancée par un
double clic gauche. Cela fonctionne à présent comme en mode Visuel.
- La sélection amodale n'est désormais plus copiée automatiquement dans le
presse-papiers. Elle obéit aux drapeaux 'a' et 'A' de 'guioptions', ou
"autoselect" et "autoselectml" de 'clipboard'.
- Commande CTRL-Y ajoutée en mode Lignecmd : copie la sélection amodale dans
le presse-papiers. Fonctionne également avec l'invite Appuyez-sur-entrée et
l'invite Plus.
Les mappages de "runtime/mswin.vim" pour CTRL-Y et CTRL-Z en mode Lignecmd
sont supprimés pour permettre cette nouvelle utilisation de CTRL-Y.
regmatch() utilise désormais moins d'espace dans la pile, ce qui lui permet de
prendre en charge des motifs complexes sur des textes plus longs.
'isfname' inclut à présent '%' et '#'. La commande `vim rep\#fich`
fonctionnera pour MS-DOS.
Notation ajoutée pour les touches du pavé numérique <kEnter> et de <k0> à
<k9>. Lorsqu'elles ne sont pas mappées, elles se comportent comme leur
équivalent ASCII. (Ivan Wellesz et Vince Negri)
Plusieurs autres combinaisons xterm sont reconnues : <C-Right>, <C-Left>,
<C-End>, <C-Home>.
L'événement BufUnload est à présent aussi déclenché avant la sortie de Vim. Un
script peut avoir avoir besoin d'effectuer du nettoyage.
Les expressions entre contre-apostrophes sont étendues : `={expr}`. Cela peut
être utilisé aux endroits où l'expansion est effectuée. (Vince Negri)
IHM graphique :
- Drapeaux 'L' et 'R' ajoutés dans 'guioptions' : n'ajoute d'ascenceur gauche
ou droit que lorsqu'il y a une fenêtre partagée verticalement.
- X11 : quand une couleur ne peut pas être allouée, utilise la correspondance
la plus proche dans la palette de couleurs. Cela évite que le noir ne soit
utilisé pour trop d'éléments. (Monish Shah)
Cela s'applique également aux menus et aux ascenceurs, pour éviter qu'ils ne
deviennent noirs.
- Win32 et X11 : option 'mouseshape' ajoutée : modifie la forme du pointeur de
la souris en fonction du mode courant. (Vince Negri)
- Option 'linespace' ajoutée : insère une ligne de pixels entre chaque ligne.
(Nam)
- La sélection amodale (sans déplacement du curseur) est accessible en
maintenant Ctrl et Maj enfoncés. (Ivan Wellesz)
- Motif : barre d'outils ajoutée. (Gordon Prieur) Bulles d'aide également.
- Athena : barre d'outils et bulles d'aide ajoutées. (David Harrison -- basé
sur le travail de Gordon Prieur)
- Option 'toolbar' modifiée pour fonctionner pour Athena et Motif. Il est
maintenant possible de permuter affichage d'étiqettes et d'icônes à la
volée. (David Harrison)
- Support des lignes de séparation de menu pour Athena. (David Harrison)
- Athena : ajuste l'icône en forme de flèche utilisée dans un menu déroulant à
la taille de la police. (David Harrison)
- Win32 : drapeau 'c' ajouté à 'guifont' pour permettre de spécifier le jeu de
caractères. (Artem Khodush)
- Si aucun argument --enable-xim n'est donné, il est automatiquement utilisé
lorsqu'une IHM graphique X est demandée. Nécessaire pour le support des
touches mortes (et la saisie multi-octets).
- Après un dialogue de sélection de fichier, Vim vérifie que les fichiers
édités n'ont pas été modifiés ou supprimés. Le dialogue Win32 autorise la
suppression et le renommage de fichiers.
- Motif et Athena : support pour `editres` ajouté. (Martin Dalecki)
- Motif et Athena : ajout de "menuFont" pour permettre de spécifier une police
ou un jeu de polices pour les menus. Peut aussi être fixé avec le groupe de
surbrillance Menu. Utile lorsque la région linguistique est différente de
'encoding'. (David Harrison)
Si FONTSET_ALWAYS est défini, Vim utilisera toujours un jeu de polices pour
les menus. Cela devrait éviter des problèmes lors du changement d'une police
en un jeu de polices. (David Harrison)
- La surbrillance et la police d'une bulle d'aide peuvent être spécifiés avec
le groupe de surbrillance Tooltip. (David Harrison)
- Les menus du mode Lignecmd peuvent être utilisés à une invite
Appuyez-sur-entrée. Ils fonctionnent généralement bien, car ils débutent par
un CTRL-C. Le menu "Copier" marche pour copier la sélection amodale. Il
permet de copier ":set all" ou ":intro" sans auto-sélection.
- Quand l'IHM graphique est lancée et qu'il n'y a pas de terminal connecté aux
entrées/sorties standards, les messages d'erreurs sont affichés dans un
dialogue. Auparavant, ils n'étaient pas affichés du tout.
- Il est désormais possible de fixer 'browsedir' au nom d'un répertoire, à
utiliser pour le sélecteur de fichier. (Dan Sharp)
- "b:browsefilter" et "g:browsefilter" peuvent être fixés aux filtres utilisés
pour le sélecteur de fichier. Supporté dans les IHM graphiques Win32 et
Motif. (Dan Sharp)
X11 :
- Support pour la sélection du presse-papiers en tant que registre "+. Quand
Vim est quitté ou suspendu, la sélection est copiée dans le tampon de
coupage 0. Cela devrait permettre le copier-coller avec plus d'applications
d'une manière standard à X11. (Neil Bird)
- Le presse-papiers X est utilisé dans n'importe quel terminal, pas simplement
dans un xterm.
Item "exclude:" ajouté à 'clipboard' : définit un motif à comparer au nom du
terminal ; en cas de correspondance, aucune connexion ne devrait être
effectuée au serveur X. La valeur par défaut fonctionne actuellement pour
les consoles FreeBSD et Linux.
- Quelques messages ajoutés pour quand 'verbose' est non-nul pour rapporter ce
qui se passe lorsque Vim essaie de se connecter au serveur X. Cela peut
éventuellement servir à déterminer pourquoi le démarrage est lent.
IHM graphique GTK+ : (en partie par Marcin Dalecki)
- Dans certaines polices, les caractères peuvent dépasser la taille hampe +
jambage. P. ex., avec "-misc-fixed-*-*-*-*-18-*-*-*-*-*-iso10646-1". Pour
corriger cela, Vim ajoute un à la hauteur de cellule des caractères.
- Valeur "no" ajoutée dans 'winaltkeys' : Alt + touche n'est pas utilisé comme
raccourci de menu, lorsque 'wak' est modifié après la création des menus.
- Il devient possible de fixer 'wak' après le lancement de l'IHM graphique.
- Les GC utilisés pour le texte sont recyclés pour réduire les interactions.
- La taille des icônes est ajustée selon le gestionnaire de fenêtres.
- Nettoyage dans la gestion des polices.
- XQueryColor est remplacé par des appels GDK.
- Support Gnome. Détection de Gnome via `configure` et utilisation des
différentes briques d'interface. Le reste est similaire à GTK+. (Andy Kahn)
Ce support est désactivé par défaut, car il provoque quelques problèmes.
- Le code spécial pour fourcher d'abord puis démarrer l'IHM graphique est
supprimé. _exit() est désormais utilisé au lieu de exit(), cela fonctionne
bien sans recours spéciaux.
- Les boîtes de dialogue s'ouvraient parfois assez loin de gvim. Elles sont à
présent positionnées dans la fenêtre gvim. (Brent Verner)
- Lorsqu'un fichier est déposé dans Vim, les obliques supplémentaires au début
du chemin sont supprimées. Le nom du fichier est également raccourci si
possible.
Motif : (Martin Dalecki)
- La disposition des boîtes de dialogue est améliorée.
- Boîtes de dialogue "Rechercher" et "Remplacer" ajoutés.
- Pour les menus, "iso-8859" est changé en "iso_8859", c'est apparamment
nécessaire pour Linux.
- Icônes ajoutées pour les boîtes de dialogue, comme pour GTK+.
- Le format XPM est utilisé pour les icônes si possible. Le fichier d'en-tête
"XpmP.h" de Solaris est utilisé s'il est disponible.
- L'ombrage des éléments de la barre d'outils est modifié pour offrir une
confirmation visuelle qu'ils sont bien pressés sur un environnement
non-LessTiff.
- Des briques d'interface sont utilisées pour certains éléments plutôt que des
fenêtres pour une plus grande vitesse.
Complètement de la ligne de commande :
- Le nom des variables d'environnement est complété. (Mike Steed)
- Plusieurs méthodes de complètement ajoutées pour ":command" : "mapping",
"function", "expression" et "environment".
- Si une fonction n'accepte pas d'arguments, le complètement ajoutera "()" au
lieu de "(".
Pour MS-DOS, MS-Windows et OS/2 : les variables d'environnement %VAR% sont
étendues comme $VAR. (Walter Briscoe)
Redirection des messages vers le presse-papiers ":redir @*" et le registre
sans nom ":redir @"". (Wall)
":let @/ = ''" efface le motif de recherche au lieu de le fixer à une chaîne
vide.
Évaluation d'expressions :
- "? :" peut être utilisé comme en C.
- col("$") renvoie la longueur de la ligne du curseur plus un. (Stephen P.
Wall)
- Argument optionnel supplémentaire pour match(), matchend() et matchstr() :
décalage pour spécifier où commencer la recherche.
- Le troisième argument de strpart() devient optionnel. (Paul Moore, Zdenek
Sekera)
- exists() permet aussi de tester des commandes Ex et des autocommandes
définies.
- Argument supplémentaire ajouté à input() : texte par défaut.
- "v:errmsg" est également fixé lorsque ":silent! {cmd}" est utilisé.
- Variable "v:prevcount" ajoutée : "v:count" pour la commande précédente.
- Variable "v:progname" ajoutée : nom par lequel Vim a été invoqué. (Vince
Negri)
- Dans le message verbeux sur le retour d'une fonction, affiche aussi la
valeur de retour.
Cscope :
- Fonction cscope_connection() ajoutée. (Andy Kahn)
- ":cscope kill -1" tue toutes les connexions cscope. (Andy Kahn)
- Option 'cscopepathcomp' ajoutée. (Scott Hauck)
- Commande ":scscope" ajoutée, partage la fenêtre et exécute la commande
cscope. (Jason Duell)
VMS :
- Les arguments de la ligne de commande sont tous en majuscules. Interprète un
argument "-X" comme "-x" et "-/X" comme "-X".
- 'makeprg' et 'grepprg' sont fixés à des valeurs pertinentes. (Zoltan
Arpadffy)
- Le presse-papiers X est utilisé ainsi que le serveur de commandes X. (Zoltan
Arpadffy)
Macintosh : (Dany St-Amant)
- Un fichier de marqueurs peut utiliser CR, CR-LF ou LF comme fin-de-ligne.
- Carbonisation (du code non-Carbon a été conservé). (une partie du travail a
été « volée » à Ammon Skidmore)
- Gestion de l'index des éléments de menus améliorée (devrait être plus
rapide).
- Les commandes issues du support gèrent maintenant '/' dans les noms de
fichiers (version Mac OS 9).
- Support pour ":winpos" ajouté.
- Les fichiers de marqueurs au format DOS sont également supportés. (Axel
Kielhorn) XXX Bram
- Support de '~' dans les noms de fichiers pour désigner le répertoire
personnel.
Options :
- Lorsque "set +=" ou "^=" est utilisé, Vim vérifie s'il y a des éléments en
double. Ils sont supprimés le cas échéant. (Vince Negri)
- Lorsqu'une option est fixée à une liste de drapeaux, Vim supprime aussi les
drapeaux en double.
- Si possible, getrlimit() est utilisé pour fixer 'maxmemtot' et 'maxmem'.
(Pina)
- Item "alpha" ajouté à 'nrformats' : incrémente ou décrémente un caractère
alphabétique avec CTRL-A et CTRL-X.
- ":set opt&vi" fixe une option à sa valeur Vi par défaut, ":set opt&vim" à sa
valeur Vim par défaut. C'est utile pour fixer 'cpo' à sa valeur Vim par
défaut sans connaître les drapeaux qu'il inclut.
- 'scrolloff' s'applique à présent aussi à une ligne longue enroulée qui ne
rentre pas dans la fenêtre.
- Un plus grand nombre de paramètres d'option est ajouté aux menus par défaut.
- La fenêtre option-window est mise à jour avec les nouvelles options. Elle
est maintenant un peu plus facile à lire.
Changements internes :
- Séparation des descripteurs de lignes en deux parties : texte d'une part et
attributs d'autre part. Cela permettra d'utiliser des attributs nécessitant
plusieurs octets à l'avenir.
- Une fonction qsort() est fournie aux systèmes qui n'en disposent pas.
- L'énorme "switch" utilisé pour les commandes du mode Normal est remplacé par
un tableau. Cela allège considérablement le code et évite des problèmes avec
les optimisations de certains compilateurs.
- Une valeur négative est assignée aux touches spéciales, pour éviter qu'elles
ne soient mélangées avec les caractères Unicode.
- Les variables globales "expand_context" et "expand_pattern" n'étaient pas
censées être globales. Elles sont maintenant passées à ExpandOne() et à
toutes les fonctions appelées par celle-ci.
- Le drapeau global "reg_ic" n'est plus utilisé. Il causait des problèmes et
n'etait pas défini à certains endroits.
- Le tampon interne "stuff" n'est plus utilisé pour les commandes "*", "K",
CTRL-], etc. Cela évite des problèmes avec les autocommandes.
- Code déplacé de "ex_docmd.c" vers "ex_cmds2.c". Le fichier devenait trop
gros. Du code est également déplacé de "screen.c" vers "move.c".
- Le tableau des CRC pour le chiffrement n'est plus inclus mais généré. Cela
réduit notablement la taille des sources. (Matthias Kramm)
- "multibyte.c" est renommé en "mbyte.c" pour rester compatible avec les
systèmes de fichiers 8.3.
- Le code GTK+ pour ":findhelp" est supprimé, il utilise désormais l'entrée de
menu ToolBar.FindHelp. XXX
- mch_windexit() est renommé en mch_exit(), mch_init() en mch_early_init() et
mch_shellinit() en mch_init().
Surbrillance :
- Dans un listage de la commande ":highlight", affiche "xxx" avec la couleur
de surbrillance.
- Support pour un xterm avec 88 ou 256 couleurs ajouté. Les bons numéros de
couleurs seront utilisés pour le nom spécifié dans une commande
":highlight". (Steve Wall)
- Argument "default" ajouté pour ":highlight". Si inclus, la commande est
ignorée si la surbrillance pour le groupe était déjà définie.
Tous les fichiers de syntaxe utilisent à présent ":hi default ..." pour
permettre à l'utilisateur de définir des couleurs dans son fichier vimrc.
De même, l'instruction "if did_xxx_syntax_inits" n'est maintenant plus
nécessaire. Cela simplifie grandement l'utilisation de couleurs autres que
par défaut pour un langage particulier.
- Script "colortest.vim" ajusté : inclusion des couleurs sur fond normal et
réduction de taille grâce à l'emploi d'une boucle while. (Rafael
Garcia-Suarez)
- Nom de couleur "DarkYellow" ajouté (simplement pour l'homogénéité de la
liste des couleurs standards ; ce n'est pas une belle couleur à utiliser).
Le code retourné pour |t_RV| indique quand un xterm est en mode 8-bits. Le cas
échéant, chaque code clavier est automatiquement converti en sa version
8-bits.
Dans un xterm de niveau de rustine 141 ou supérieur, "OPT_TCAP_QUERY" est
utilisé pour obtenir les codes clavier actuellement utilisés et le nombre de
couleurs pour 't_Co'. Uniquement si |t_RV| est aussi utilisé.
":browse set" fonctionne désormais aussi en mode console. ":browse edit"
émettra un message d'erreur.
":bdelete" et ":bunload" ne rapportent le nombre de tampons
supprimés/déchargés que s'il est supérieur à la valeur de 'report'. Le message
était importun lors de la suppression d'un tampon dans un script.
Liste des sauts :
- Le nombre d'entrées conservées dans la liste des sauts passe de 50 à 100.
- La liste des sauts est à présent enregistrée dans le fichier viminfo. CTRL-O
peut être utilisé pour sauter à des positions d'une ancienne session
d'édition.
- Lorsqu'un partage de fenêtre est effectué, la liste des sauts est copiée
dans la nouvelle fenêtre.
Les marques '[ et '] sont également positionnées pour les commandes "~" et
"r". Ces marques sont maintenant toujours positionnées quand un changement est
effectué avec une commande du mode Normal.
Interface Python : il devient possible de fixer la largeur d'une fenêtre
partagée verticalement. (John Cook)
"=mot" et "=~mot" ajoutés dans 'cinkeys' (également utilisés pour
'indentkeys').
Drapeau 'j' ajouté dans 'cinoptions' : indente un bloc {} dans un bloc () pour
Java. (Johannes Zellner)
Drapeau 'l' ajouté dans 'cinoptions'. (Anduin Withers)
Drapeaux 'C', 'U', 'w' and 'm' ajoutés dans 'cinoptions'. (Servatius
Brandt)
Lorsque ":wall" ou ":wqall" est exécuté et qu'un tampon modifié n'a pas de
nom, le numéro de ce tampon est mentionné dans le message d'erreur.
":function Nom" liste la fonction Nom en numérotant les lignes. Cela facilite
le repérage de l'endroit où une erreur est survenue.
En mode Visuel non-bloc, "r" remplace tous les caractères sélectionnés par le
caractère tapé, comme en mode Visuel-bloc.
Lors de l'édition du dernier fichier de la liste des arguments (par n'importe
quelle manipulation), permet de quitter Vim. Auparavant, cela n'était possible
que si les commandes ":next" ou ":last" était utilisées pour atteindre ce
fichier.
Drapeau '1' ajouté dans 'formatoptions'. (Vit Stradal)
Drapeau 'n' ajouté dans 'formatoptions' : mise en forme des listes
numérotées.
Fichier d'échange :
- Lorsqu'un fichier d'échange existe déjà et que l'utilisateur choisit de le
supprimer à l'invite ATTENTION, le même nom de fichier d'échange ".swp" est
réutilisé pour éviter la création d'un fichier ".swo" qui ne sera pas
toujours trouvé.
- Un avertissement supplémentaire est donné avec le message ATTENTION si
l'horodatage du fichier est plus récent que celui du fichier d'échange.
- Le message d'information émis pour un fichier existant est raccourci un peu,
afin de tenir dans un écran de 24 lignes.
- Il est possible de créer un lien symbolique portant le nom d'un fichier
d'échange et pointant vers un fichier inexistant. Auparavant, Vim se
rabattait silencieusement sur un autre fichier (lorsque open() utilisé avec
O_EXCL refusait les liens). Désormais, il vérifie s'il a affaire à un lien
symbolique. De plus, une vérification supplémentaire est effectuée pour
tester la présence d'un fichier d'échange juste avant de le créer (cela
permet de contrer les attaques par liens symboliques).
La commande "g CTRL-G" fonctionne aussi en mode Visuel et compte le nombre de
mots. (Chase Tingley)
Un message d'erreur est émis lorsque l'option 'shell' est utilisée et qu'elle
est vide.
Il est désormais possible d'inclure "%s" dans 'shellpipe'.
Item "uhex" ajouté pour 'display' : affiche les caractères non-imprimables
sous la forme <xx>.
Affiche les caractères non-imprimables avec le groupe de surbrillance
NonText, également dans la ligne de commande.
Lorsque l'affichage de la valeur d'une option cachée est demandée, Vim indique
qu'elle n'est pas supportée.
Win32 :
- Lorsqu'un raccourci est déposé dans gvim (fichier ".lnk"), le fichier cible
est édité, pas le lien lui-même. (Yasuhiro Matsumoto)
- Versions C des programmes OpenWithVim et SendToVim ajoutées. (Walter
Briscoe)
- Si 'shell' vaut "cmd" ou "cmd.exe", 'shellredir' est fixé pour rediriger
aussi la sortie d'erreur. Les noms de shells Unix sont également reconnus.
- Si $HOMEDRIVE et $HOMEPATH sont définis, ils sont utilisés pour définir
$HOME. (Craig Barkhouse)
Version console Win32 :
- Les noms de l'utilisateur et du système sont inclus dans la sortie de
":version", s'ils sont disponibles. Un fichier "pathdef.c" est généré pour
cela. (Jon Miner)
- L'icône de la fenêtre utilise l'icône de Vim (uniquement pour Windows 2000).
Lors de l'exécution d'une commande shell, le titre de la fenêtre est modifié
pour le mentionner. À la sortie de Vim, la position du curseur est également
restaurée. (Craig Barkhouse)
- La version console Win32 peut être compilée avec le support OLE. Elle ne
peut fonctionner que comme client, pas comme serveur OLE.
Option 'errorformat' :
- L'item "%p" de 'errorformat' (colonne de l'erreur indiquée par une ligne de
caractères) accepte également une ligne de points.
- Item "%v" ajouté pour 'errorformat' : numéro de colonne virtuelle. (Dan
Sharp)
- Ajout d'une valeur par défaut pour 'errorformat' sous VMS. (Jim Bush)
La commande "p" peut désormais être utilisée en mode Visuel. Elle remplace le
texte sélectionné par le contenu d'un registre.
Les éléments entre chevrons <> dans le message d'accueil sont mis en
surbrillance pour bien souligner qu'ils sont spéciaux.
Quand le drapeau 'c' est utilisé pour ":substitute", il est possible de taper
"l" ["last"] pour remplacer l'occurrence courante puis quitter.
Lors de l'affichage d'un message verbeux sur le sourcement d'un autre fichier,
donne le numéro de ligne.
Lors du redimensionnement de la fenêtre Vim, ne pas utiliser 'equalalways'.
Évite que le rétrécissement de la fenêtre Vim ne provoque l'agrandissement de
fenêtres partagées. C'est d'ailleurs le comportement décrit dans la doc.
Lorsque CTRL-D était utilisé en mode Insertion juste après une
auto-indentation, la saisie de <CR> conservait l'espace blanc restant. À
présent cela fonctionne comme <BS> : l'auto-indentation est supprimée afin
d'éviter qu'une ligne blanche non-vide ne soit produite.
Ajout de l'appel GetHwnd() à l'interface OLE. (Vince Negri)
La commande ":normal" fonctionne désormais dans une routine de traitement
d'événement. Utile lorsqu'un fichier est déposé dans Vim et pour les
autocommandes CursorHold.
Dans la version MS-Windows, ne pas changer le répertoire courant quand une
oblique est employée à la place d'une contre-oblique. L'explorateur de
fichiers devrait toujours utiliser une contre-oblique, tandis que
l'utilisateur peut choisir d'utiliser une oblique quand il tape une ligne de
commande.
Horodatages :
- Lorsqu'un tampon a été modifié en dehors de Vim et regagne le focus, un
dialogue est donné pour permettre à l'utilisateur de recharger le fichier.
Cela marche à présent pour toutes les IHM graphiques, pas seulement pour
MS-Windows. Et aussi pour la console, si Vim a été compilé avec le support
des dialogues.
- Le contenu du fichier est examiné pour déterminer s'il a vraiment changé, en
ignorant les situations où seul l'horodatage a été modifié (p. ex., pour un
fichier issu d'un serveur CVS).
- Lors du contrôle de l'horodatage, Vim vérifie d'abord si la taille du
fichier a changé, pour éviter une comparaison de fichier le cas échéant.
Cela va plus vite pour les gros fichiers (journaux notamment) où des
informations sont régulièrement ajoutées.
- N'émet pas d'avertissement pour un fichier modifié ou supprimé lorsque
'buftype' est fixé.
- N'émet plus d'avertissement pour un répertoire modifié. Cela fonctionne
mieux avec l'explorateur de fichier.
- Le contrôle de l'horodatage n'est pratiqué que sur les fichiers non-cachés.
Les fichiers cachés seront contrôlés s'ils deviennent non-cachés.
- Quand Vim vérifie si un fichier a été modifié en dehors de Vim, il vérifie
aussi si les permissions du fichiers ont été modifiées. Si le contenu du
fichier n'a pas changé mais que les permissions l'ont été, un avertissement
est émis.
- La fréquence des contrôles est limitée, sans quoi le dialogue
d'avertissement réapparaît en permanence pour un fichier qui grossit petit à
petit.
Si <M-A> était mappé alors que 'encoding' valait "latin1" et était fixé à
"utf-8", le premier octet d'un caractère multi-octets était aussi mappé. Cela
pouvait être une source de problèmes difficiles à débusquer. Le mappage d'une
partie d'un caractère multi-octets est désormais interdit.
Les scripts en-ligne sont acceptés avec ":python" et ":tcl". (Johannes
Zellner)
Idem pour ":ruby" et ":perl". (Benoit Cerrina)
":syn include" utilise à présent 'runtimepath' quand le nom du fichier n'est
pas un chemin absolu.
Si 'switchbuf' contient "split" et que la fenêtre courante est vide, elle
n'est pas partagée.
Unix : le signal SIGPWR est capturé pour ":preserve"r les fichiers avant
l'extinction de l'ordinateur.
Interface SNiFF+ : (Anton Leherbauer)
- Correction du code pour les fenêtres, en particulier ce qui concerne le
traitement des événements.
- Adaptations pour SNiFF+ 4.x ($SNIFF_DIR4).
- Support pour l'ajout de requêtes SNiFF+ lors de l'exécution.
Support de la notation <A-x> comme alias pour <M-x>. C'est naturel dans la
mesure où le nom Alt est devenu très fréquent.
":find" accepte un [quant]ificateur, pour indiquer qu'il faut utiliser la
[quant]-ième correspondance dans 'path'.
La sortie de ":ls" et ":buffers" affiche maintenant des drapeaux
modifié/lecture seule/modifiable. Lorsqu'un tampon est actif, un 'a' est
affiché plutôt que rien. Lorsqu'un tampon n'est pas chargé, rien n'est affiché
(plutôt que '-').
Installation Unix :
- Lors de l'installation des outils, les chemins absolus sont fixés dans les
scripts d'outils "efm_perl.pl" et "mve.awk". Cela évite à l'utilisateur
d'éditer ces fichiers à la main.
- Les icônes pour KDE sont installées quand les répertoires existent mais ne
les contiennent pas déjà.
Ajout de has("win95"), pour permettre la distinction entre MS-Windows 95/98/ME
et NT/2000/XP dans un script Vim.
Après l'exécution d'une commande ":cd", le nouveau répertoire courant est
affiché. (Dan Sharp)
Lorsque ":winpos" est utilisé avant que l'IHM graphique n'ait été ouverte, les
valeurs sont mémorisées jusqu'à ce qu'elle le soit.
Dans la sortie de ":version", "/dyn" est ajouté pour les fonctionnalités
chargées dynamiquement. Cela indique que ces fonctionnalités ne seront pas
toujours opérationnelles.
Sur Windows NT, il est possible qu'un répertoire soit en lecture seule mais
qu'un fichier puisse être supprimé. Lorsqu'une sauvegarde est effectuée par
renommage du fichier, si 'backupdir' n'utilise pas le répertoire courant, le
fichier original sera supprimé, sans qu'il soit possible de créer un nouveau
fichier. Un message d'erreur est émis dans ce cas pour avertir l'utilisateur.
"CTRL-R CTRL-O" sur la ligne de commande fonctionne désormais comme "CTRL-R
CTRL-R", ce qui est cohérent avec le mode Insertion.
==============================================================================
Changements à la compilation *compile-changes-6*
Tous les fichiers générés ont été déplacés en dehors du répertoire "src".
Cela permet d'identifier rapidement les fichiers qui n'ont pas été écrits à la
main. Les fichiers générés par `configure` sont maintenant dans le répertoire
"src/auto". Sur Unix, les fichiers objets compilés vont dans le répertoire
"objects".
La taille de l'archive source dépassait la limite des 1,4 Mo d'une disquette.
Elle est à présent scindée en deux archives de support et deux archives
source. Une archive compressée en bzip2 est également fournie : elle contient
tous les fichiers source et de support.
Cible "reconfig" ajoutée pour `make`. Elle est utile quand la modification de
certains arguments requiert un vidage du cache, par exemple lors du passage de
GTK+ à Motif. Ajustement de la signification de GUI_INC_LOC et GUI_LIB_LOC
pour les rendre cohérents entre les différentes IHM graphiques.
Fichier "src/README.txt" ajouté pour offrir un aperçu des parties principales
du code source.
Le fichier Makefile d'Unix supporte maintenant pleinement $(DESTDIR) pour
effectuer une installation à un emplacement particulier. Cela remplace la
définition manuelle des variables *ENDLOC.
Le responsable d'une version binaire peut à présent donner son adresse
électronique avec l'argument --with-compiledby de `configure`.
Les fonctionnalités incluses sont désormais regroupées en plusieurs niveaux :
« mini », « légère », « normale », « étendue » et « maxi ». Cela remplace
"min-features" et "max-features". La version « mini » ne supporte pas le
multi-fenêtrage, ce qui allège sensiblement Vim.
Pour la version « mini » ou lorsque FEAT_WINDOWS n'est pas défini : firstwin
et lastwin sont équivalents à curwin et n'utilisent pas w_next ni w_prev.
Fonctionnalité +listcmds ajoutée. Elle peut être exclue pour compiler Vim sans
les commandes qui manipulent la liste des tampons et la liste des arguments
(la liste des tampons elle-même reste présente, étant indispensable).
Fonctionnalité +vreplace ajoutée. Elle est désactivée dans la version
« légère », afin d'éviter un débordement de mémoire de la version Dos 16-bits.
Support GTK+ supprimé pour les versions antérieures à 1.1.16.
Les tests de `configure` concernant l'utilisation des pseudo-terminaux ont été
améliorés. Code emprunté à une version récente de `screen`.
Options ajoutées à `configure` pour installer Vim, Ex et View sous un autre
nom (p. ex., "vim6", "ex6" et "view6").
Argument "--with-global-runtime" ajouté à `configure`. Permet de spécifier le
répertoire global utilisé dans la valeur de 'runtimepath' par défaut.
Argument ajouté à 'configure` pour permettre l'activation de l'interface
SNiFF+.
`configure` inspecte désormais systématiquement les bibliothèques dans
"/usr/local/lib" et les en-têtes dans "/usr/local/include". C'est parfois
utile pour iconv() et gettext().
L'historique de la ligne de commande peut maintenant être (dés)activé via la
fonctionnalité +cmdline_hist, ce qui permet de l'exclure de la version
« mini ».
MS-Windows : fonctions communes à Win16 et Win32 déplacées dans "os_mswin.c".
Évite d'avoir à modifier deux fichiers pour un seul problème. (Vince Negri)
Code commun à "gui_w16.c" et "gui_w32.c" déplacé dans "gui_w48.c". (Vince
Negri)
La liste des sauts constitue maintenant une fonctionnalité propre. Elle est
désactivée pour la version « légère » (Dos 16-bits).
Tous les types dont le nom se terminait par "_t" ont été renommés avec "_T" en
final. Cela évite des problèmes potentiels avec les types du système.
Vérification ajoutée dans `configure` pour tester les fichiers d'en-têtes X11
qui définissent implicitement le type de retour à int. (Steve Wall)
`make doslang` dans le répertoire de plus haut niveau crée une archive avec le
menu et les fichiers ".mo" pour MS-Windows. Les fichiers générés sous Unix
sont utilisés, mais ils devraient fonctionner tout aussi bien sous Windows.
Une grande partie de "os_vms.c" a été fusionnée avec "os_unix.c". Le code
était dupliqué auparavant, ce qui compliquait sa maintenance. (Zoltan
Arpadffy)
Le Makefile de Borland C version 5 a été mis à jour : (Dan Sharp)
- compilation avec Perl corrigée ;
- compilations avec Python et Tcl ajoutées ;
- compilations avec les bibliothèques dynamiques Perl et Python ajoutées ;
- compilation de "uninstal.exe" ajoutée ;
- utilisation de "yes" et "no" pour les options, comme avec "Make_mvc.mak".
Win32 : "Make_gvc.mak" et "Make_ovc.mak" ont été fusionnés en un seul
fichier "Make_ivc.mak". Il est bien plus petit, beaucoup de texte inutile
ayant été supprimé. (Walter Briscoe)
Ajout de "Make_dvc.mak" pour permettre le débogage des exécutables générés
avec "Make_mvc.mak" dans MS-DevStudio. (Walter Briscoe)
MS-Windows : le gros exécutable `gvim.exe`, qui inclut le support OLE, inclut
désormais aussi le chargement dynamique de Tcl, Perl et Python. ActivePerl
5.6.1, ActivePython 2.1.1 et ActiveTCL 8.3.3 sont utilisés pour cela.
Ajout de AC_EXEEXT dans "configure.in", pour tester si l'exécutable a besoin
de ".exe" pour Cygwin ou MinGW. SUFFIX est renommé EXEEXT dans le Makefile.
Win32 : le chargement de "comdlg32.dll" est différé pour accélérer le
démarrage. Uniquement lorsque VC 6 est utilisé. (Vipin Aravind)
Win32 : l'utilisation d'IME est autorisée en cas de compilation avec Borland.
(Yasuhiro Matsumoto)
Win32 : Makefile ajouté pour compiler "gvimext.dll" avec Borland 5. (Yasuhiro
Matsumoto)
==============================================================================
Corrections de bogues *bug-fixes-6*
Ignore la casse lors de la recherche des noms de commandes pour "gvim", "ex",
etc. Nécessaire pour les systèmes où la casse des noms de commandes est
ignorée.
Le motif de recherche "[a-c-e]" englobe également 'd', mais pas '-'.
Un double clic dans une autre fenêtre n'était pas reconnu comme un double
clic, car la variable "topline" n'est pas la même. Ajout de
set_mouse_topline().
+La vérification BROKEN_LOCALE XXX ne fonctionnait pas. (Marcin Dalecki)
Lorsque 't_Co' était fixé, les couleurs par défaut restaient les mêmes, et
donc étaient faussées. Elles sont maintenant réinitialisées après une
modification de 't_Co'. (Steve Wall)
Lorsque ":wqall" était invoqué pour quitter, les messages d'enregistrement des
fichiers pouvaient s'écraser et être irrémédiablement perdus.
Lorsque Vim était lancé avec un nom de fichier extrêmement long (aux alentours
de 1024 caractères), il plantait. Plusieurs tests ont été ajoutés afin
d'éviter les débordements de tampon.
CTRL-E pouvait rester bloqué dans un fichier avec des lignes très longues.
":au syntax<Tab>" étendait des noms d'événements alors qu'il aurait dû étendre
des noms de groupes de syntaxe.
Quand l'expansion d'un nom de fichier provoquait une erreur (p. ex., pour
<amatch>), celle-ci était émise même depuis l'intérieur d'un ":if 0".
'cindent' mettait en forme les commentaires C différemment de ce que l'option
'comments' spécifiait. (Steve Wall)
La valeur par défaut de 'grepprg' n'incluait pas le nom du fichier quand un
seul fichier était « greppé ». "/dev/null" est maintenant ajouté sur Unix.
Des problèmes survenaient lorsque la fenêtre option-window était ouverte deux
fois. Le curseur saute à présent à la fenêtre option-window existante.
":sview" et ":view" n'activaient pas 'readonly' pour un tampon existant. C'est
aujourd'hui le cas, sauf si le tampon est aussi édité dans une autre fenêtre.
IHM graphique GTK+ : lorsque 'guioptions' ne contenait pas 'g', l'invite Plus
provoquait la disparition des barres de menus et d'outils, ainsi que le
redimensionnement de la fenêtre (ce qui effaçait le texte). Maintenant, les
menus supérieurs sont systématiquement grisés pour éviter que la barre de
menus ne change de taille ou disparaisse.
Lorsque le tampon courant était réemployé pour un nouveau tampon, les
variables locales de tampon n'étaient pas supprimées.
IHM graphique : quand la souris était tirée au-dessus du sommet d'une fenêtre
et que 'scrolloff' valait 0, il n'y avait pas de défilement vers le bas.
Maintenant, tout événement de la souris est transmis avec mouse_row fixé à -1.
Win32 : la version console ne fonctionnait pas sur telnet à cause de
l'alternance entre deux écrans de console. À présent, un seul écran de console
est utilisé et son contenu est sauvegardé/restauré si nécessaire. (Craig
Barkhouse)
Lors de la lecture d'un fichier, le nombre magique du chiffrement était inclus
dans la taille du fichier. (Antonio Colombo)
La fenêtre mise-au-point contenait des espaces blancs initiaux et des
caractères NUL pour les messages multi-lignes. (David Harrison)
Lors de l'utilisation de `cscope`, les marqueurs redondants étaient supprimés.
Cela posait de nombreux problèmes, car ils était tous listés. Les marqueurs
redondants ne sont maintenant plus supprimés. (David Bustos).
Cscope : le test pour déterminer les correspondances situées dans le tampon
courant échouait parfois, entraînant un saut vers une autre correspondance que
celle choisie. (David Bustos)
Win32 : débordement de tampon lors de l'ajout d'un nom de jeu de caractères
dans une police.
'titlestring' et 'iconstring' évaluaient une expression dans le contexte
courant, qui pouvait être une fonction utilisateur, ce qui entraînait des
conflits de portée pour les variables (locale/globale).
IHM graphique Win32 : le mappage de <M-F> ne marchait pas. Les touches Maj et
Ctrl sont maintenant gérées dans _OnSysChar().
IHM graphique Win32 : avec [Pas de fichier] XXX, ":vs<CR>:q<CR>" laissait une
trainée de pixels jusqu'au centre de la fenêtre. Cela pouvait également se
produire pour la règle. screen_puts() n'effaçait pas le bon caractère dans
ScreenLines[] avec l'astuce pour le gras.
Win32 : ":%!sort|uniq" ne marchait pas, car le nom du fichier d'entrée
touchait le '|'. Un espace est maintenant inséré avant le '|'.
OS/2 : l'expansion des jokers englobait des fichiers inexistants. Cela
provoquait l'échec de ":runtime", et partant de la coloration syntaxique.
Le collage d'un registre contenant CTRL-R sur la ligne de commande pouvait
entraîner une boucle sans fin impossible à interrompre. Il est maintenant
possible de la stopper avec CTRL-C.
Quand 'verbose' était fixé, un message de lecture/enregistrement de fichier
pouvait écraser le message précédent.
Quand 'verbose' était fixé, the header from ":select" was put after the
last message. Now start a new line. XXX Bram
L'invite Appuyez-sur-entrée était sensible à la réponse de la chaîne 't_RV',
provoquant la disparition messages lors du démarrage.
Lorsque 't_Co' était fixé à 1, les couleurs restaient utilisées. Elles ne le
sont plus désormais que si 't_Co' est supérieur à 1.
Le listage de fonctions avec ":function" n'est pas arrêté lorsque 'q' ou ':' a
été tapé à l'invite Plus.
mkstemp() est utilisé à la place de mktemp() lorsqu'il est disponible, cela
évite un avertissement lors de l'édition de liens sur FreeBSD.
Lors du complètement en mode Insertion, il est possible que b_sfname soit
NULL. Dans ce cas, ne pas le transmettre à printf() pour le message "Examen".
":set runtimepath-=$VIMRUNTIME" ne fonctionnait pas, car l'expansion des
jokers était effectuée après avoir essayé de supprimer la chaîne. À présent,
pour ":set opt+=val" et ":set opt-=val", l'expansion des jokers est faite
avant l'ajout ou la suppression de "val".
L'utilisation de CTRL-V avec la commande "r" sur une sélection Visuel par
blocs insérait un CTRL-V au lieu d'attendre un autre caractère.
Unix : l'ordre des bibliothèque a été modifié : -lXdmcp est placé après -lX11,
et -lSM -lICE après -lXdmcp. Devrait résoudre des problèmes de liens sur HP-UX
10.20.
Ne pas supprimer le dernier "-lm" de la commande d'édition des liens. Cette
dernière pourrait aboutir, mais Vim plantera plus tard lors du démarrage de
l'IHM graphique.
Lorsque le shell renvoie une erreur pour une tentative d'expansion de jokers,
le motif est tout de même inclus quand le drapeau "EW_NOTFOUND" a été
positionné.
En cas d'échec d'une expansion de jokers par le shell, un message d'erreur
explicite est émis au lieu d'un laconique "1 returned".
L'effacement d'un bloc visuel dont le bord se situe au beau milieu d'une
tabulation laissait le curseur un peu trop à gauche. Cela provoquait un
dysfonctionnement avec "s" (problème de position).
Le symbole livre sterling dans "normal.c" posait problème à certains
compilateurs. 0xA3 est maintenant utilisé en remplacement.
Aucun avertissement n'était émis lors de la modification d'un fichier en
lecture seule lorsque 'insertmode' était activé.
Win32 : lorsque 'shellxquote' était fixé à une double-apostrophe (pour csh
p. ex.), ":!start notepad fichier" ne fonctionnait pas. Les
doubles-apostrophes ajoutées par 'shellxquote' quand ":!start" est utilisé
sont maintenant supprimées. (Pavol Juhas)
L'argument "<f-args>" de ":command" ne considérait pas les tabulations comme
des espaces blancs.
De même, ne pas considérer les espaces finaux comme des arguments vides.
":e test\\je" éditait "test\je", mais ":next test\\je" éditait "testje". Les
contre-obliques étaient supprimées une fois de trop pour ":next".
VMS : "gf" ne fonctionnait pas correctement. vms_fixfilename() est utilisé
pour traduire le nom du fichier. (Zoltan Arpadffy)
Après un ":hi Normal ctermbg=black ctermfg=white" suivi d'une suspension de
Vim, tous les caractères ne sont pas redessinés avec le fond approprié.
Lorsque `make test` était lancé sans les fonctionnalités +eval ou +windows, de
nombreux tests échouaient. "test1" génère à présent un script pour copier la
sortie correcte, afin qu'un test non fonctionnel soit ignoré.
FreeBSD : l'interface Perl ajoutait "-lc" à la commande d'édition de liens et
Python ajoutait "-pthread". Ces deux bibliothèques ne fonctionnent pas
ensemble, car la libc_r devrait être utilisée. "-lc" est supprimé avec Perl,
n'étant théoriquement pas nécessaire.
De même, ajout de "-pthread" dans $LIBS, de sorte que les vérifications
pour les fonctions soient faites avec libc_r. Sigaltstack() semble être
manquante dans libc_r.
Les sous-menus du menu Syntaxe devenaient trop longs. Ils ont été réorganisés
et un niveau supplémentaire a été ajouté pour certains langages.
Le "r"emplacement en mode Visuel par blocs ne fonctionnait pas correctement
lorsqu'il incluait partiellement une tabulation. (Matthias Kramm)
Après copie d'un bloc Visuel au milieu duquel certaines des lignes se
terminent, le collage du texte n'insérait pas un bloc. Des espaces sont
maintenant utilisés pour combler les caractères manquants. Ajout de "y_width"
dans la structure yankreg. (Matthias Kramm)
Si une chaîne de substitution dispose d'un caractère multi-octets après une
contre-oblique, seul le premier octet composant ce caractère était ignoré.
(Muraoka Taro)
Win32 : les touches du pavé numérique étaient absentes des entrées termcap
internes.
Lorsqu'un fichier était en lecture seule, ":wa!" ne forçait pas son
enregistrement. (Vince Negri)
Amiga : un nom de fichier débutant par un deux-points était considéré comme
absolu, ce qui n'est plus le cas.
Amiga : ":pwd" ajoutait une barre oblique pour la racine d'un lecteur.
'ttymouse' n'est pas fixé à "dec" par défaut si compilé avec le support souris
Dec. Cela évite un conflit avec la souris gpm (console Linux).
Les prototypes de l'interface Perl ne fonctionnait pas avec Perl threadé XXX.
Ajout d'une commande `sed` pour supprimer les prototypes dans
"proto/if_perl.pro", ils ont été ajoutés manuellement dans "if_perl.xs".
Lorsque ":w!" réinitialisait l'option 'readonly', le titre et les lignes
d'état n'étaient pas mis à jour.
":args" affichait le fichier courant quand la liste des arguments était vide.
À présent il n'affiche plus rien, comme Vi.
"99:<C-U>echo v:count" affichait "99" en mode Normal, mais "0" en mode Visuel.
"v:count" n'est désormais plus modifié lors de l'exécution d'une commande
intermédiaire.
Amiga : un "requester" s'ouvrait pour "home:" car il existe dans 'runtimepath'
par défaut. Ne plus ouvrir de "requester" lors de la recherche d'un fichier
dans 'path', du sourcement d'un fichier ".vimrc", ou de l'utilisation de
":runtime".
Win16 et Win32 : un nom de fichier de la forme "\chemin\fichier" était
considéré comme absolu. Cela impliquait qu'un même fichier pouvait être
représenté par deux tampons différents.
Win32 : le renommage d'un fichier en une chaîne vide faisait planter Vim. Cela
survenait dans l'explorateur de fichiers ("explorer.vim") lorsque Échap était
saisi à l'invite de renommage.
Win32 : strftime() plantait lorsqu'il était appelé avec une valeur de "-1"
pour la date.
Win32 avec compilateur Borland : mch_FullName() ne fonctionnait pas, rendant
le fichier de marqueurs introuvable.
Cscope sautait parfois vers un marqueur erroné. (David Bustos)
OS/2 : le fichier de marqueurs était introuvable. mch_expand_wildcards()
ajoutait une barre oblique supplémentaire à un nom de répertoire.
Lorsque ">>" était utilisée, la marque `] n'était pas dans la dernière
colonne.
Quand Vim était compilé sans support des menus, "filetype.vim" essayait malgré
tout de sourcer le script "menu.vim". (Rafael Garcia-Suarez)
":ptag" ajoutait un élément à la pile de marqueurs.
IME Win32 : "gr" n'utilisait pas le mode IME.
Dans le message `vim --help`, le terme « Options » était utilisé pour les
arguments de commande. Cela pouvait prêter à confusion, aussi ils ont été
renommés « Arguments ».
Lorsqu'il y avait deux fenêtres et qu'une autocommande BufUnload fermant la
fenêtre n° 1 fermait aussi la fenêtre n° 2, Vim plantait.
Lorsqu'il y avait une fenêtre d'aperçu accompagnée d'une seule autre fenêtre,
":q" ne faisait pas quitter.
En mode Insertion, lors de l'abandon d'un digramme avec Échap, le '?' n'était
pas supprimé.
Sur Unix, glob(".*") renvoyait "." et "..", mais pas sur Windows. Sur Windows,
glob("*") renvoyait en outre les fichiers débutant par un point. Ces
comportements ont été alignés sur ceux d'Unix pour tous les systèmes.
Win32 : suppression de code ancien pour ouvrir une console. `vimrun` est
désormais utilisé et fonctionne bien.
La place occupée par le message d'accueil est calculée de façon précise, afin
de le faire tenir dans une console de 25 lignes. (Craig Barkhouse)
":ptnext" ne fonctionnait pas. Le dernier marqueur utilisé dans la fenêtre
d'aperçu est à présent mémorisé séparément de la pile de marqueurs.
Aucun test n'était effectué pour savoir si "-display" était le dernier
argument. (Wichert Akkerman)
IHM graphique GTK+ : lors du démarrage de gvim sous certaines conditions, une
erreur X se produisait. Ne pas remplacer la routine de traitement d'erreur
lors de la création du presse-papiers xterm. (Wichert Akkerman)
L'ajout d'un espace après un marqueur d'aide rendait ce marqueur introuvable.
P. ex., ":he autoindent ".
Vim essayait d'étendre une URL en un nom de chemin complet. Sur Windows, cela
faisait préfixer le répertoire courant à l'URL. Ajout de vim_isAbsName() et
vim_FullName() afin d'éviter que des fonctions spécifiques à un système
n'aient un comportement différent.
":n *.c", ":cd ..", ":n" n'utilisaient pas le répertoire original du fichier.
Vi ne l'utilise que pour le fichier courant (ce qui s'apparente à un bogue).
Le tampon utilisé pour une entrée dans la liste des arguments est à présent
mémorisé, et son nom est utilisé (ajusté pour ":cd"), sauf s'il est supprimé.
Lorsqu'une touche spéciale était insérée par son nom ("<F8>", quatre
caractères), après un déplacement dans le texte en Insertion, l'annulation ne
fonctionnait pas correctement.
IHM graphique Motif : lorsque le bouton droit de la souris était utilisé, gvim
était bloqué pendant quelques secondes pour certaines personnes (Motif 1.2 ?).
Cela ne se produisait pas en l'absence de menu contextuel. Résolu en ne créant
un menu contextuel que lorsque 'mousemodel' vaut "popup" ou "popup_setpos".
(David Harrison)
Motif : lorsqu'un grand nombre d'éléments de menu était ajouté, le menu Aide
disparaissait mais la barre de menus n'était pas enroulée. La hauteur de la
barre de menu est maintenant définie à la main.
Lorsque <RetArr> était utilisé en mode Insertion pour supprimer une coupure de
ligne ou que "J" était utilisé pour fusionner deux lignes, le curseur pouvait
se retrouver placé au milieu d'un caractère multi-octets. (Muraoka Taro)
Suppression des définitions pour SVR4 dans `configure`. Cela posait problème
pour certains fichiers d'en-têtes X et ne semblait utilisé nulle part.
Quand 'wildignore' était utilisé, 'ignorecase' n'était pas pris en compte pour
une correspondance de marqueur.
Quand 'wildignore' contenait "*~", il était impossible d'éditer un fichier
dont le nom finissait par '~'. À présent, un nom de fichier finissant par '~'
n'est plus interprété comme un motif d'englobement.
Le code souris pour OS/2 est désactivé. Il n'était pratiquement pas utilisé.
":mksession" utilisait toujours le nom du chemin complet pour un tampon, même
lorsque le nom court pouvait suffire.
":mkvimrc" et ":mksession" enregistraient 'wildchar' et 'pastetoggle' d'une
manière qui rendait leur restauration aléatoire. Le nom des touches est à
présent utilisé si possible, ce qui améliore la portabilité.
Après le recouvrement d'un fichier puis son abandon, une commande ":edit" ne
redonnait pas de nouvelle invite ATTENTION, qui permettrait de supprimer le
fichier de manière simple. Le drapeau BF_RECOVERED est pour cela réinitialisé
lors du déchargement du tampon.
histdel() pouvait respecter ou ignorer la casse, selon ce qui avait été fait
avant. Il la respecte toujours à présent.
Quand une taille de fenêtre était spécifiée lors du partage d'une fenêtre,
elle respectait les valeurs de 'winheight' et 'winwidth' en cas de
dépassement.
Lors de l'utilisation de "append" ou "insert" dans une définition de fonction,
une ligne débutant par "function" ou "endfunction" était source de confusion.
Les commandes sont à présent reconnues et les lignes sautées jusqu'à un '.'.
À la fin de n'importe quel fichier sourcé ou fonction, need_wait_return
pouvait être réinitialisé, entraînant la disparition des messages lors d'un
rafraîchissement.
À l'intérieur d'une boucle while, le numéro de ligne pour les messages
d'erreurs restait fixe. Il est à présent mémorisé dans la boucle while.
":cd c:/" ne fonctionnait pas sur MS-DOS. mch_isdir() supprimait une oblique
finale.
MS-Windows : getftime() ne fonctionnait pas lorsqu'un répertoire possédait une
oblique ou contre-oblique finale. Il était pour cela impossible d'afficher
l'horodatage des fichiers dans l'explorateur.
Lors de l'expansion des jokers, un répertoire "a/" était rangé après "a-b".
Les séparateurs de chemin sont désormais reconnus lors du tri des fichiers.
Systèmes non-Unix : lorsque "c:/rep/../fich" et "c:/fich" étaient édités, ils
étaient créés comme deux tampons séparés, bien qu'il s'agisse du même fichier.
Maintenant, les noms de fichiers sont complètement étendus, même quand un
chemin absolu contient "..".
"g&" ne répétait pas correctement la dernière substitution.
Lorsque 'clipboard' était fixé à "unnamed", une commande "Y" ne pouvait pas
écrire dans "0. À présent, une copie du registre "0 est effectuée dans le
registre du presse-papiers.
Quand le motif de recherche correspondait de plusieurs façons, il ne pouvait
pas toujours être interrompu avec CTRL-C. Et CTRL-C devait être tapé pour
chaque ligne lorsque 'hlsearch' était activé.
Si 'incsearch' est activé et que la recherche d'une correspondance est
interrompue, ne pas abandonner la ligne de commande.
Lorsqu'un nom de répertoire était étendu en chemin complet, p. ex. avec
fnamemodify(), une oblique était parfois ajoutée. Ce n'est plus cas
maintenant, ce qui est plus cohérent.
Quand un nom de fichier contient un '!', son utilisation dans une commande
shell pose problème : ":!cat %". Le '!' est désormais protégé pour éviter
cela (il est doublement protégé si 'shell' contient "sh").
Le complètement d'un nom de fichier à hauteur d'un '~' ne fonctionnait pas :
":e toto/~<Tab>".
L'utilisation d'un argument de ":command" contenant '<' et '>' (mais pas pour
signifier un argument spécial) n'était pas traité correctement.
Programme d'installation MS-DOS : sur Win2000, la recherche de "vim.exe" ou
"gvim.exe" dans $PATH ne fonctionnait pas, ils étaient toujours trouvés dans
le répertoire courant. Fichier "vim.exe" renommé dans le répertoire courant
pour éviter ce problème. (Walter Briscoe)
Programme d'installation MS-DOS/Windows : %VIM% est utilisé au lieu d'un
chemin absolu, afin qu'un seul changement soit nécessaire dans le fichier
batch en cas de déplacement de Vim.
Mac : mch_FullName() modifiait l'argument "fname" et n'initialisait pas
toujours le tampon.
MS-DOS : mch_FullName() ne rectifiait pas les barres obliques simples/inverses
dans un nom de fichier absolu.
":echo expand("%:p:h")" avec un nom de fichier vide supprimait un nom de
répertoire sous MS-DOS. Pour Unix, quand le nom de fichier était un
répertoire, le nom du répertoire était supprimé. Pour homogénéiser les choses,
"%:p" ajoute maintenant un séparateur de chemin pour tous les systèmes, mais
aucun sépateur n'est ajouté dans les autres situations.
Unix : lorsqu'un CTRL-C était recherché (qui peut survenir n'importe quand),
si un événement X se produisait (par exemple, presse-papiers modifié) et que
des caractères saisis étaient en attente de traitement, Vim restait bloqué
jusqu'à ce qu'un caractère soit tapé.
MS-DOS, MS-Windows et Amiga : l'expansion de "$ENV/toto" lorsque $ENV se
terminait par un deux-points entraînait la suppression de la barre oblique.
":he \^=" donnait une erreur relative à l'utilisation de "\_". ":he ^=" ne
trouvait pas le marqueur ":set^=". Même ":he :set^=" ne le trouvait pas.
Un fichier de marqueurs nommé "D:/tags" était utilisé comme fichier "tags"
sur "D:". Cela ne fonctionne pas quand le chemin actuel de l'unité "D:" n'est
pas la racine.
Suppression des appels à XtInitializeWidgetClass(), ils ne devraient plus être
nécessaires.
Lors de l'utilisation de dtterm ou de divers autres terminaux couleur, quand
le groupe Normal était fixé à une couleur de fond différente, le fond n'était
pas toujours affiché avec ladite couleur. Ajout d'une vérification pour
l'entrée termcap "ut" : si elle n'existe pas, l'effacement de l'affichage ne
donnera pas la couleur souhaitée pour le fond. Il sera nécessaire de dessiner
chacun des caractères à la place. Vim fonctionne aussi désormais quand
l'entrée termcap "cl" (effacer l'écran) n'existe pas.
Lors de la répétition d'une commande de recherche "/" avec un décalage en
lignes, le "n" utilisait le décalage mais ne rendait pas le mouvement par
lignes. "d/motif/+2" et "dn" ont maintenant été rendus identiques.
Win32 : l'utilisation de ":tearoff" pour menu inexistant provoquait un
plantage.
OpenPTY() ne fonctionnait pas sur Sequent. Ajout d'un test à `configure` pour
getpseudotty().
Indentation C : il apparaît surprenant d'indenter une ligne débutant par ")"
avec le "(" correspondant, mais de ne pas le faire pour une ligne débutant par
"x)".
En outre, les éléments contenus dans un bloc () sont désormais alignés
(l'indentation la plus faible est utilisée pour cela).
MS-DOS/Windows : ":n *.vim" correspondait également à des fichiers finissant
par '~'.
mch_expandpath() est déplacé de "os_win16.c" et "os_msdos.c" vers
"misc1.c", puisqu'il est identique dans les deux fichiers.
Macintosh : (Dany St-Amant)
- En mode compatible Vi, les fichiers utilisant CR comme séparateur de ligne
n'étaient pas lus ;
- Bogue corrigé dans le traitement de Activate/Deactivate Event ;
- Bogue corrigé dans gui_mch_dialog (utilisait un mauvais pointeur).
XIM GDK multi-octets : lors de la composition d'un mot multi-octets, si
l'utilisateur pressait un bouton de la souris, le mot était supprimé. À
présent, il est conservé et la composition prend fin. (Sung-Hyun Nam)
MS-DOS, MS-Windows et OS/2 : lorsque l'entrée standard était lue, la
conversion CR-LF automatique effectuée par la bibliothèque C empêchait la
détection d'un format de fichier "dos" (option 'fileformat').
Lorsque 'smartcase' était activé, les motifs incluant "\S" réinitialisaient
'ignorecase'.
Quand on cliquait avec la souris dans une colonne d'abscisse supérieure à 222,
le curseur revenait directement à la marge de gauche. Impossible d'encoder une
abscisse de souris plus élevée au sein d'un octet. À présent, la valeur est
limitée à 222, ne pas revenir à la colonne 1.
IHM graphique : dans certaines versions, CSI posait problème, soit quand il
était saisi directement, soit en tant que partie d'une séquence multi-octets.
Lorsque des caractères multi-octets étaient utilisés dans une commande
":normal", un octet final de type CSI ou K_SPECIAL posait problème.
Les menus accessibles via 'wildmenu' ne supportaient pas les caractères
multi-octets.
":sleep 10" ne pouvait pas être interrompu sur Windows, contrairement à "gs".
Ces comportements ont été homogénéisés.
Unix : quand l'attente d'un caractère était interrompue par un événement X
(par exemple, pour obtenir le contenu de la sélection), le délai d'attente
n'était pas respecté. Un message pouvait être rapidement recouvert.
Maintenant, le temps restant est calculé.
Windows : le complètement de "\\toto\c$\S" insérait une contre-oblique avant
le '$', ce qui faussait le nom. Il n'y a désormais plus de contre-oblique
insérée.
Lors d'un enregistrement automatique avant un ":make", IObuff était écrasé et
le texte affiché par la suite n'était plus le bon.
Mac : les répertoires "c:/tmp" et "c:/temp" étaient utilisés dans les valeurs
par défaut de 'backupdir' et 'directory', alors qu'ils n'existent pas.
La vérification pour savoir si un nouveau fichier ne se trouve pas sur un
système de fichiers MS-DOS créait temporairement le fichier, ce qui pouvait
être lent. Ne pas faire cette vérification si une autre a déjà eu lieu pour le
fichier d'échange et qu'il est sur un système de fichier MS-DOS.
Ne pas émettre l'avertissement "Modification d'un fichier en lecture seule"
lors d'une lecture depuis l'entrée standard.
Quand Vim possèdait la sélection X11 et qu'il était suspendu, une application
tentant d'utiliser la sélection était bloquée. Quand Vim reprenait, il ne
pouvait plus obtenir la sélection. La sélection est maintenant abandonnée lors
d'une suspension.
"option.h" et "globals.h" étaient inclus dans certains fichiers, alors qu'ils
le sont déjà dans 'vim.h". Déplacement de la définition de EXTERN dans "vim.h"
pour éviter de le faire deux fois.
Lors de la répétition d'un opérateur utilisant un motif de recherche et que ce
motif contenait un caractère ayant une signification particulière sur la ligne
de commande (par exemple CTRL-U), cela ne fonctionnait pas.
Correction de divers problèmes concernant K_SPECIAL (0x80) et CSI (0x9b) en
tant qu'octet dans un caractère (multi-octets). Par exemple, la commande "r",
qui ne pouvait pas être répétée.
Le programme d'installation pour MS-DOS/Windows ne fonctionnait pas toujours
dans un répertoire avec un nom de fichier long, car $VIM et l'exécutable
n'avaient pas nécessairement le même chemin.
Multi-octets :
- L'utilisation d'un atome « tout sauf » [^x] dans une exprat ne fonctionnait
pas en UTF-8. (Muraoka Taro)
- Lors d'un retour arrière sur des caractères insérés en mode Remplacement,
les caractères multi-octets n'étaient pas correctement pris en compte.
(Muraoka Taro)
- Les commandes de recherche "#" et "*" ne fonctionnaient pas pour les
caractères multi-octets. (Muraoka Taro)
- Le complètement des mots en mode Insertion ne fonctionnait pas avec les
caractères multi-octets. (Muraoka Taro)
- IHM graphique Athena/Motif : quand 'linespace' est non nul, le curseur est
trop large (nombre d'octets plutôt que largeur de cellule).
- Quand 'encoding' était changé en "euc-jp" et qu'un caractère était inséré,
Vim plantait.
- le positionnement du curseur était parfois erroné avec les caractères
"euc-jp". De même, avec deux caractères ayant 0x8e comme premier octet, seul
le premier était affiché.
- Lors de l'utilisation de DYNAMIC_ICONV sur Win32, la conversion pouvait
échouer à cause d'un numéro d'erreur erroné. (Muraoka Taro)
- Faire Alt-x dans l'IHM graphique alors que 'encoding' valait "utf-8" ne
produisait pas le bon caractère.
- Lors de l'utilisation de la sélection Visuel par bloc et qu'une seule moitié
d'un caractère à largeur double est sélectionnée, la surbrillance continue
jusqu'à la fin de la ligne.
- L'effacement en mode Visuel par bloc ne fonctionnait pas correctement lors
de la suppression de la moitié droite d'un caractère à largeur double.
- Le mode Remplacement de la ligne de commande ne remplaçait que le premier
octet des caractères multi-octets.
- Le curseur en mode Remplacement (ainsi que Ligne-de-Cmd) était trop petit
sur les caractères à largeur double.
- Quand un caractère multi-octets contenait un octets 0x80, cela ne
fonctionnait pas (un octet CSI était utilisé à la place). (Muraoka Taro)
- La sélection par mots avec la souris ne fonctionnait pas.
- La copie d'une sélection amodale contenant des caractères multi-octets ne
fonctionnait pas.
- Quand 'selection' valait "exclusive", la sélection d'un mot se terminant par
un caractère multi-octets prenait une surbrillance erronée pour le caractère
suivant.
Win32 avec "Make_mvc.mak" : la compilation avec debogage activé est
impossible. (Craig Barkhouse)
IHM graphique Win32 : quand "vimrun.exe" est utilisé pour exécuter une
commande externe, ne pas afficher une boîte de message donnant la valeur de
retour, elle est déjà affichée par vimrun. De même, ne pas afficher la valeur
de retour du shell quand ":silent!" est spécifié.
Win32 : sélectionner beaucoup de texte puis utiliser le dialogue
"Rechercher/Remplacer" provoquait un plantage.
IHM graphique X11 : lors de la saisie de caractères avec le 8e bit positionné
par le modificateur Meta/Alt, ce dernier était supprimé sans modifier le
caractère.
La troncature d'un message pour le faire tenir dans la ligne de commande en
utilisant "..." au milieu ne calculait pas toujours correctement la place
disponible.
Impossible de mapper <C-@>. Maintenant, il fonctionne comme <Nul>.
VMS :
- Correction de quelques points avec VAXC. "os_vms_fix.com" contenait des
caractères CTRL-M étranges. (Zoltan Arpadffy et John W. Hamill)
- Ajout de valeurs par défaut spécifiques à VMS pour les options 'isfname' et
'isprint'. (Zoltan Arpadffy)
- Suppression de "os_vms_osdef.h", il n'est plus utilisé.
Le greffon "gzip.vim" utilise la commande ":normal", cela ne fonctionne pas
quand on dépose un fichier compressé sur Vim.
Dans quelques rares situations, la recherche binaire d'un marqueur échouait, à
cause d'une variable non initialisée à qui il arrivait de prendre pour valeur
la moitié de la taille du fichier de marqueurs. (Narendran)
Quand les autocommandes BufEnter et BufLeave étaient utilisées pour
(dés)activer un menu, ce dernier n'était pas mis à jour immédiatement.
Lors d'un remplacement avec le drapeau "c"onfirm, le curseur était placé après
la règle plutôt qu'après la question. Avec une chaîne de remplacement longue,
l'écran pouvait défiler et provoquer une invite Plus. Maintenant, le message
est tronqué pour le faire tenir dans la ligne.
Motif : la vérification de `autoconf` pour la bibliothèque Xp ne fonctionnait
pas.
Quand 'verbose' était fixé de façon à donner les lignes pour les fichiers
sourcés, la définition d'une fonction réinitialisait le compteur utilisé pour
l'invite Plus.
Dans le dialogue "Rechercher/Remplacer" de Win32, un caractère '/' posait
problème. Le protéger avec une contre-oblique.
Lancer un shell avec ":sh" différait du lancement d'un shell avec CTRL-Z quand
la suspension ne fonctionne pas. Le lancement est maintenant identique pour
les deux.
Sauter à une marque de fichier alors que le tampon courant est modifié
signalait une erreur "mark non set".
":execute histget("cmd")" déclenchait une boucle sans fin et plantait Vim.
Maintenant, toutes les commandes entrainant une récursion trop profonde sont
interceptées.
Suppression du message d'erreur "Failed to open input method", trop de
personnes le subissaient alors qu'elles ne souhaitaient pas utiliser de
méthode de saisie X.
IHM graphique : quand la fonctionnalité +windows n'était pas compilée, la
barre de défilement commençait sous la ligne numéro un.
Suppression de l'astuce pour la redéfinition des classes de caractères dans
"regexp.c".
IHM graphique Win32 : lorsqu'un dialogue "Rechercher" rendait le focus à la
fenêtre principale, et que le pointeur de la souris se retrouvait masqué par
la saisie, il ne réapparaîssait pas quand il était déplacé vers la fenêtre du
dialogue. (Vince Negri)
Lors d'un enregistrement suivi d'un CTRL-C, aucun caractère n'était
enregistré. En mode Insertion ou à mi-chemin d'une commande, le rejeu de la
séquence ne fonctionnait pas. À présent, le CTRL-C est enregistré.
Quand l'IHM graphique était lancée, les codes de la souris pour DEC et netterm
étaient encore testés.
IHM graphique : lors d'un défilement avec 'writedelay' non nul, le caractère
sous le curseur était affiché au mauvais endroit (une ligne au-dessus/en
dessous avec CTRL-Y/CTRL-E).
Une commande ":normal" réinitialisait 'scrollbind'. Cela posait des problèmes
lors de l'utilisation d'une commande ":normal" dans les autocommandes
d'ouverture d'un fichier.
IHM graphique MS-Windows : une taille en point contenant un point, par exemple
"7.5", n'était pas reconnue. (Muraoka Taro)
Quand 'scrollbind' n'était pas activé, la position courante était tout de même
mémorisée, ce qui est inutile.
GTK+ : plantage quand 'shell' n'existe pas et que ":!ls" est invoqué.
Utilisation de _exit() au lieu de exit() quand le fils n'a pas pu exécuter le
shell.
Multi-octets :
- IHM graphique avec codage multi-octets : un double clic de la souris sur la
moitié gauche d'un caractère à largeur double plaçait le curseur sur le
caractère précédent.
- Utilisation de codages multi-octets avec 'selection' valant "exclusive" :
"vey" et "^Vey" incluait le caractère après le mot.
- Avec un codage multi-octets et un octet initial à la fin de la ligne, la
ligne précédente était affichée. Et "ga" affichaient des informations
erronées.
- "gf" n'incluait pas correctement les caractères multi-octets avant le
curseur. (Muraoka Taro)
IHM graphique : lors d'un défilement, le curseur n'était parfois pas effacé.
Modification des règles de redessinement du curseur après chaque appel à
gui_write() pour ne le mettre à jour qu'à la fin de update_screen() ou lors
d'un placement explicite. Mise à jour aussi des barres de défilement à la fin
de update_screen(), c'est le seul endroit où le texte de la fenêtre a pu subir
un défilement.
Mettre "/*<Tab>texte long" en forme produisait "* <Tab>" dans la ligne
suivante. Maintenant, l'espace avant la tabulation est supprimé.
Mettre "/*<Tab> texte long" en forme produisait "* <Tab> texte long" dans la
ligne suivante. Maintenant, l'espace après la tabulation est conservé.
À certains endroits, des caractères alphabétiques non ASCII étaient acceptés,
ce qui pouvait poser des problèmes. Par exemple, ":X" (X étant un tel
caractère).
Quand un motif correspondait avec la fin de la ligne, le dernier caractère de
cette ligne était en surbrillance avec 'hlsearch'. Ce qui semblait faux pour
"/\%3c". Mise en surbrillance du caractère juste après la ligne.
Motif : si un dialogue était fermé en cliquant sur le bouton "X" de sa
fenêtre, Vim ne répondait plus.
Lors de l'utilisation de CTRL-X ou CTRL-A sur un nombre avec commençant par de
nombreux zéros, Vim plantait. (Matsumoto)
Avec 'insertmode' activé, le mappage de CTRL-V dans "mswin.vim" ne
fonctionnait pas en mode Sélection. Le mode Insertion n'était pas relancé
après un remplacement de texte. Maintenant, il est possible de mélanger le
mode Insertion et les commandes d'insertion ou de modification. À présent,
CTRL-O cwfoo<Echap> fonctionne également.
Cliquer droit avec la souris dans une autre fenêtre passait en mode Visuel,
mais utilisait la position de départ de la fenêtre courante. Cela causait des
erreurs ml_get quand le nombre de lignes était invalide. Maintenant, la même
fenêtre est conservée.
Quand 'selection' valait "exclusive", "gv" sélectionnait parfois un caractère
de moins.
Quand 'comments' contenait plusieurs triplets début/milieu/fin, les drapeaux
optionnels pouvaient se mélanger. De plus, la partie finale n'était pas
alignée avec la partie centrale.
Un double clic droit en mode Visuel ne mettait pas l'affichage du mode à jour.
Quand le groupe Normal disposait d'un nom de police, ce dernier n'était jamais
utilisé au moment du démarrage. À présent, il est utilisé quand 'guifont' et
'guifontset' sont vides.
Fixer une police pour un groupe de surbrillance avant le lancement de l'IHM
graphique ne fonctionnait pas.
"make test" n'utilisait pas le nom de l'exécutable Vim généré.
Problèmes avec 'cindent' :
- Un "else" au sein d'une boucle do/while était aligné avec la ligne située en
dessous de la boucle. (Meikel Brandmeyer)
- une ligne avant une fonction était indentée même quand elle se terminait par
un point-virgule. (Meikel Brandmeyer)
- 'cindent' donnait une indentation trop importante à une ligne après un "};"
terminant l'initialisation d'un tableau.
- Support des lignes de déclaration se terminant par "," et "\". (Meikel
Brandmeyer)
- Une instruction "case" dans une boucle do/while était utilisée pour indenter
une ligne après ladite boucle. (Meikel Brandmeyer)
- Lors du saut d'une chaîne dans une ligne avec une double-apostrophe, cela
pouvait se poursuivre dans la ligne précédente. (Meikel Brandmeyer)
Quand 'list' était activé, 'hlsearch' ne mettait pas en surbrillance une
correspondance située en fin de ligne. Maintenant, le '$' est en surbrillance.
L'élément de menu Coller dans la barre de menu, le menu contextuel et la barre
d'outils étaient tous différents. Ils sont maintenant tous équivalents, à
l'image de ce qui est fait dans "mswin.vim".
st_dev peut être plus petit qu'un "unsigned". Le compilateur peut émettre un
avertissement concernant un débordement. Ajout d'une vérification pour dev_t
dans `configure`.
Athena : fermer un dialogue confirm() tuait Vim.
Divers coquilles dans la documentation. (Matt Dunford)
Interface Python : la définition de _DEBUG pouvait poser des problèmes, elle
est maintenant indéfinie (#undef) explicitement. Le message d'erreur
concernant l'impossibilité de charger la bibliothèque partagée n'était pas
traduit. (Muraoka Taro)
Mac : (Dany St-Amant et Axel Kielhorn)
- Nombreuses corrections.
- Vim consommait 80 % du temps processeur.
- Le projet "os_mac.pbxproj" ne fonctionnait pas, il est déplacé dans un
sous-répertoire.
- Les priorités des menus dans la barre de menus fonctionnent maintenant.
- Correction d'un problème lors du glissement de la barre de défilement.
- Nettoyage des divers #ifdef.
Unix : quand un signal mortel est intercepté et qu'un deuxième survient,
utiliser _exit() pour quitter brutalement.
L'ordre des menus ne fonctionnait pas correctement avec Athena. (David
Harrison)
Une commande ":make" ou ":grep" avec un argument long pouvait provoquer un
plantage.
Faire ":new fichier" puis choisir "Quitter" lors du message ATTENTION ouvrait
tout de même une nouvelle fenêtre.
GTK+ : lors du lancement de l'IHM graphique alors qu'il y a une erreur dans le
fichier ".vimrc", ne pas présenter l'invite Appuyez-sur-Entrée, puisque le
message est donné dans le terminal.
Quand une erreur se produisait dans un fichier ".vimrc", le terminal dans
lequel gvim était lancé pouvait être effacé. Fixer msg_row dans "main.c" avant
toute écriture de message.
IHM graphique GTK+ et X11 : tenter de lire des caractères fournis par
l'utilisateur (par exemple avec input()) avant que la fenêtre Vim soit ouverte
provoquait un blocage de Vim quand il était démarré depuis le bureau.
OS/390 utilise des pointeurs sur 31 bits. Cela perturbe certains calculs avec
MAX_COL. Réduction de MAX_COL d'un bit pour OS/390. (Ralf Schandl)
Lors de la définition d'une fonction alors qu'elle existait déjà, Vim
n'informait pas de son existence avant d'avoir fini de la saisir. À présent,
c'est immédiat pendant la saisie.
Le message mémorisé pour un affichage différé (keep_msg) pointait parfois vers
un tampon générique, qui pouvait être modifié au moment où le message était
affiché. Maintenant, une copie du message est réalisée.
Lors de l'utilisation de caractères multi-octets dans un menu et que l'octet
final était une contre-oblique, le menu n'était pas créé correctement.
(Muraoka Taro)
L'utilisation d'un caractère multi-octets dont l'octet final était une
contre-oblique dans une chaîne de substitution ne fonctionnait pas. (Muraoka
Taro)
Quand 't_Co' était fixé dans un fichier vimrc, puis fixé automatiquement selon
la réponse du xterm, le fixer à nouveau manuellement provoquait un plantage.
Quand la récupération de la valeur d'une option chaîne n'est pas supportée, le
nombre zéro est retourné. Cela perturbe les tests tels que "&enc == "asdf". À
présent, une chaîne vide est retournée pour les options chaînes.
Plantage au démarrage de l'IHM GTK+, quand 'notitle' était utilisé dans le
vimrc, puis 'title' fixé dans le gvimrc et que l'IHM graphique était lancée
avec ":gui". Fermeture accidentelle de la connexion avec le serveur X.
Il était nécessaire de taper <Entree> après la sélection d'une entrée pour
":ts".
Le message issu de ":cn" était parfois effacé. Maintenant, il est affiché
après le rafraîchissement s'il ne provoque pas de défilement (il est tronqué
si nécessaire).
"hangulin.c" ne compilait pas avec l'IHM graphique désactivée. Ce fichier est
maintenant ignoré s'il ne peut pas fonctionner.
Lors du réglage d'une option termcap telle que 't_CO', la valeur pouvait être
affichée comme étant une touche normale avec un modificateur, par exemple
"<M-=>". XXX t_Co ?
Lors de l'expansion de la liste des arguments, les entrées étant des
répertoires n'étaient pas incluses. Cela empêchait "vim c:/" d'ouvrir
l'explorateur de fichiers.
":syn match sd "^" nextgroup=asdf" sautait la première colonne et
correspondait avec groupe suiveur dans la deuxième colonne.
IHM graphique : avec 'lazyredraw' activé, 'showmatch' ne fonctionnait pas. Il
fallait vider la sortie.
Ne pas définir le termcode <NetMouse> dans un xterm, cela réduit les problèmes
quand quelqu'un tape <Echap> } en mode Insertion. XXX termcode ?
slash_adjust() fonctionne maintenant correctement pour les caractères
multi-octets. (Yasuhiro Matsumoto)
L'utilisation d'un nom de fichier encodé en Big5 pour des autocommandes ne
fonctionnait pas (contre-oblique dans l'octet final). (Yasuhiro Matsumoto)
MS-DOS et MS-Windows : l'expansion de "*.vim" correspondait aussi avec
"fichier.vimabc". L'expansion est maintenant similaire à celle d'Unix pour
éviter des problèmes avec les fonctions "dir" de Windows. Fusion des fonctions
Dos et Win32.
Win32 : Gvimext ne pouvait pas éditer plus de quelques fichiers à la fois, la
longueur de l'argument était limité.
`ls -1 * | xargs vim` fonctionnait, mais la saisie était en mode cooked. Elle
passe maintenant en mode raw quand c'est nécessaire. Utilisation de dup() pour
copier le descripteur de fichier vers stdin pour que les commandes du shell
fonctionnent. Un programme externe n'est plus requis pour cela.
Avec ":filetype off", l'utilisation de ftplugin et indent était désactivée en
même temps. Cela n'est pas adapté, fixer 'filetype' manuellement peut en avoir
besoin.
IHM graphique : l'écriture d'un caractère double-octets pouvait être scindé en
deux appels à gui_write(), ce qui ne fonctionnait pas. À présent, le tampon de
sortie est vidé avant qu'il ne soit plein.
Avec 'laststatus' activé et 'cmdheight' supérieur ou égal à 2, le message
d'accueil pouvait recouvrir la ligne d'état.
La commande ":intro" ne fonctionnait pas quand il n'y avait pas assez de
place.
La configuration avec Ruby échouait avec les versions récentes de Ruby.
(Akinori Musha)
Athena : quand le répertoire dans le lequel Vim a été démarré était effacé,
l'utilisation de l'explorateur de fichiers faisait quitter Vim. Suppression de
l'appel à XtAppError().
Avec autoconf 2.50, UNIX n'était pas défini. Déplacement du commentaire
"#undef UNIX" sur une ligne séparée.
Win32 : _OnWindowPosChanging() désactivé pour que la maximisation fonctionne
mieux.
Win32 : la compilation avec VC 4.0 ne fonctionnait pas. (Walter Briscoe)
Athena :
- le problème de suppression des menus est finalement résolu. (David Harrison)
- Athena : lors de la fermeture du dialogue confirm(), cela se passait comme
si OK était pressé plutôt que Annuler.
L'explorateur de fichiers ne fonctionnait pas en mode compatible, à cause des
continuations de lignes.
Aucun message d'erreur n'était émis pour ":digraph a".
Lors de l'utilisation du mode Ex dans l'IHM graphique et qu'une touche
spéciale était tapée, <RetArr> ne l'effaçait pas convenablement. Maintenant,
'?' est affiché pour une touche spéciale.
Quand un opérateur était en cours, cliquer dans une autre fenêtre l'appliquait
à cette fenêtre, même si les numéros de lignes étaient au-delà de la fin du
tampon.
Quand un appel de fonction n'avait pas de ")" fermante, Vim pouvait planter.
Interface Perl : plantage possible lors de la sortie avec perl 5.6.1. (Anduin
Withers)
%P n'était pas pris en compte correctement dans 'errorformat'. (Tomas
Zellerin)
L'utilisation d'une grappe de syntaxe s'incluant elle-même plantait Vim.
IHM graphique : avec 'ls' valant 2, en faisant glisser la ligne d'état tout en
haut, puis réduire la fenêtre Vim, il devenait impossible de faire glisser la
ligne d'état à nouveau.
`vim -c startinsert! fichier` plaçait le curseur sur le dernier caractère
d'une ligne, plutôt qu'après. Une commande ":set" dans le tampon courant
fixait w_set_curswant. Maintenant, ce n'est plus le cas si w_curswant vaut
MAXCOL.
Win32 : quand la fenêtre gvim était maximisée puis qu'une autre police était
sélectionnée, la fenêtre ne remplissait plus l'écran.
La ligne contenant 'pastetoggle' dans ":options" n'affichait pas la bonne
valeur quand il s'agit d'une touche spéciale. Taper <CR> ne fonctionnait pas
non plus.
Une mise en forme de texte, aboutissant à un % dans la première ligne,
répétait le % dans les lignes suivantes comme si c'était le début d'un
commentaire.
GTK+ : lors de l'ajout d'un élément dans la barre d'outils alors que gvim est
déjà lancé, il était impossible d'utiliser les bulles d'aide. À présent, cela
fonctionne en ajoutant d'abord la bulle d'aide.
La sortie de "g CTRL-G" mentionnait "Char" (caractères) alors qu'il est
question d'octets.
La recherche de la fin d'une région uniligne ne fonctionnait pas correctement
quand il existait un décalage dans la surbrillance.
Coloration syntaxique : lors de la synchronisation sur les commentaires C,
//*/ était considéré comme un début de commentaire.
Win32 : sans barres de défilement, la molette de la souris ne fonctionnait
pas. Les barres sont aussi prises en charge même quand elles ne sont pas
visibles.
Motif : quand il n'y avait pas de barres de défilement droite, la barre de
défilement inférieure laissait tout de même la place nécessaire. (Martin
Dalecki)
Lors d'une modification de 'guicursor' et que la nouvelle valeur n'est pas
valide, certains effets avait encore lieu. À présent, une vérification est
d'abord faite pour d'éventuelles erreurs, puis la nouvelle valeur n'est
effective que si elle est valide.
Lors de l'utilisation de "A" en mode Visuel par bloc pour ajouter à des lignes
qui ne vont pas jusqu'à la fin du bloc, le bourrage était incorrect.
Lors du collage d'un bloc de texte, un caractère occupant plus d'une colonne
d'écran pouvait être effacé et remplacé par des espaces. Désormais, cela ne
peut se produire que pour des tabulations.
Correction de la conversion de la documentation en HTML avec Perl. (Dan Sharp)
Retourner un message d'erreur quand un nom de menu débute par un point.
Un blocage est évité lors de l'exécution d'un shell depuis l'IHM graphique sur
HP-UX avec un ioctl(fd, I_PUSH, "ptem"), même quand "sys/ptem.h" n'existe pas.
Lors de la création d'un répertoire temporaire, s'assurer que umask vaut 077,
sinon le répertoire n'était pas accessible quand il était fixé à 0177.
Unix : lors du redimensionnement de la fenêtre alors que le rafraîchissement
est un peu lent, il était possible de recevoir un événement de
redimensionnement pendant le rafraîchissement, aboutissant au salissage de la
fenêtre. Toutes les entrées (par exemple un clic de souris) provoquait un
rafraîchissement.
L'item "%B" dans la ligne d'état devenait nul en mode Insertion (c'est normal)
pour une autre fenêtre que la fenêtre courante (anormal).
Les entrées de menu pour convertir avec `xxd` et inversement ne fonctionnaient
pas en mode Insertion.
Quand ":vglobal" ne trouvait pas une seule ligne ne correspondant pas au
motif, le message d'erreur n'était pas XXX would be the wrong way around.
Quand un message d'erreur multi-lignes était ignoré avec "%-A", les lignes de
continuation étaient tout de même examinées. (Servatius Brandt)
"grx" sur un caractère à largeur double insérait "x", au lieu de remplacer le
caractère par "x ". "gR" sur <xx> ('display' contenant "uhex") ne remplaçait
rien du tout. Lors d'un "gRxx" sur un caractère de contrôle, le premier "x"
était inséré, rompant l'alignement.
Ajout de "0)" à 'cinkeys', de façon à ce que, lors de la saisie d'une ")",
elle soit placée à l'endroit où un "==" l'aurait mis.
Win32 : quand la fenêtre était maximisée, l'ajout/suppression d'une barre de
défilement ne redimensionnait pas la zone de texte.
Lors de l'utilisation de <C-ClicGauche>, le quantificateur était ignoré.
Lors de la saisie d'un CTRL-V suivi de <ClicDroit> dans la ligne de commande,
<LeftMouse> était inséré.
Utiliser "vis" ou "vas" quand 'selection' valait "exclusive" n'incluait pas le
dernier caractère.
Lors d'un ajout à une option telle que 'grepprg', l'espace initial était
perdu. Ne pas étendre les variables d'environnement quand aucune virgule ne
sépare les éléments.
IHM graphique : lors de l'utilisation d'une police grasse italique, l'astuce
pour le gras et le soulignement était encore utilisée.
Motif : le bouton par défaut ne fonctionnait pas dans les dialogues, le
premier était toujours utilisé. Le focus doit être donné au bouton par défaut.
Lors d'un CTRL-T pour sauter dans le même fichier, la marque '' n'était pas
positionnée.
L'annulation n'était pas compatible avec Vi lors de l'utilisation du drapeau
'c' dans ":s". La commande ":s" est maintenant entièrement annulée, plutôt que
seulement le dernier remplacement confirmé.
Le menu Tampons, quand il était détaché, disparaissait lors d'un
rafraîchissement. Ajout d'une entrée factice pour éviter cela.
Suppression de l'appel à msg_start() dans main(), il n'est pas nécessaire.
vim_strpbrk() ne supportait pas les caractères multi-octets. (Muraoka Taro)
La version Amiga ne compilait pas, le code était trop gros pour des sauts
relatifs. Déplacement de parties de codes de "ex_docmd.c" vers "ex_cmds2.c".
Lorsque l'évaluation du registre "= aboutissait à sa modification, Vim
plantait.
Lorsqu'un ":view fichier" échouait, le tampon courant était laissé en lecture
seule.
Motif : pour certains, les séparateurs de la barre d'outils disparaissaient
lors du redimensionnement de la fenêtre Vim. (Martin Dalecki)
IHM graphique Win32 : quand 'lines' était fixé à un très grand nombre,
l'espace disponible n'était pas calculée correctement. La hauteur du menu
était comptée deux fois.
La conversion de la documentation en HTML ne prenait pas correctement en
compte la ligne contenant le marqueur "+quickfix". (Antonio Colombo)
Win32 : fname_case() ne prenait pas correctement en compte les caractères
multi-octets. (Yasuhiro Matsumoto)
La version Cygwin avait des problèmes avec fchdir(). Ne pas utiliser cette
fonction avec Cygwin.
La vérification générique pour la syntaxe "conf" dans le fichier "scripts.vim"
était réalisée avant certaines vérifications dans "filetype.vim", aboutissant
à une duplication des traitements pour la syntaxe "conf".
Dos32 : la saisie était à la traîne. Il fallait attendre un cycle du BIOS pour
vérifier si un caractère était disponible.
GTK+ : quand 'columns' était fixé pendant le démarrage de gvim, la largeur
obtenue était celle du terminal dans lequel il était démarré.
Lors de l'utilisation de <Echap> en mode Insertion, une indentation
automatique s'enroulant sur la ligne suivante provoquait le déplacement
temporaire du curseur à la fin de la ligne. Quand le caractère devant le
curseur était un caractère multi-octets à largeur double, le curseur se
retrouvait sur la partie droite, ce qui pose des problèmes avec certains
terminaux.
L'expansion des fichiers ne prenait pas correctement en compte les caractères
multi-octets. (Yasuhiro Matsumoto)
IHM graphique Win32 : les erreurs générées avant que la décision de lancer
l'IHM graphique soit prise n'étaient pas rapportées.
globpath() ne réservait pas assez de place pour la concaténation du résultat.
(Anduin Withers)
Lors de l'expansion d'une option déjà très longue, ne pas faire d'expansion,
elle serait tronquée à MAXPATHL. (Anduin Withers)
Quand 'selection' valait "exclusive", l'utilisation de "Fx" en mode Visuel ne
déplaçait que juste après le caractère.
Lors de l'utilisation de l'IME dans une console pour entrer un nom de fichier,
l'écran peut défiler. Dans ce cas, rafraîchir l'écran. (Yasuhiro Matsumoto)
Motif : dans le dialogue Rechercher/Remplacer, le bouton "Remplacer" ne
fonctionnait pas la première fois, et effectuait tous les remplacement la
deuxième fois. Suppression de l'utilisation de ":s///c".
GTK+ : problèmes similaires avec le dialogue Rechercher/Remplacer, le code
a été déplacé dans une fonction commune.
X11 : utilisation de GC partagés pour le texte. (Martin Dalecki)
"]i" trouvait une correspondance sous le curseur, au lieu de commencer à celle
immédiatement suivante. Pareil pour "]I", "] CTRL-I", "]d", "]D" et
"] CTRL-D".
Win16 : quand la fenêtre est maximisée et que la police est modifiée, ne pas
changer la taille de la fenêtre. (Vince Negri)
Avec 'lbr' activé, l'effacement d'un bloc de texte pouvait laisser le curseur
au mauvais endroit.
Win32 : lors de l'ouverture d'un fichier avec l'entrée "Éditer avec Vim" du
menu contextuel, les jokers pouvaient poser des problèmes. Ajout de l'argument
"--literal" pour éviter l'expansion des noms de fichiers.
"gv" ne restaurait pas les "$" utilisés en mode Visuel par bloc.
IHM graphique Win32 : pendant l'attente de la fin d'une commande shell, la
fenêtre n'était pas rafraîchie du tout. (Yasuhiro Matsumoto)
Coloration syntaxique : une correspondance se poursuivant sur la ligne
suivante à cause d'une région contenue ne prenait pas fin en même temps que la
région.
La commande ":s" n'acceptait pas les drapeaux comme 'e' ou 'i' immédiatement à
sa suite.
Lors de l'utilisation de ":s" pour couper une ligne en deux, les marques
étaient déplacées vers la ligne suivante. Vi les conserve sur la première
ligne.
Lors de l'utilisation de ":n" ou ":rew", le contexte précédent était situé au
début du fichier, alors que Vi le plaçait au niveau du curseur. C'est
maintenant compatible avec Vi.
Correction d'une incompatibilité avec Vi : le texte n'était pas envoyé dans le
registre 1 lors de l'utilisation d'une commande "c" ou "d" suivie d'un
caractère de mouvement, ou lors de l'effacement au sein d'une ligne avec l'une
de ces commandes : % ( ) `<caractere> / ? N n { }
IHM graphique Win32 : la bulle d'aide d'un élément détaché persistait alors
que l'élément n'était plus sélectionné.
IHM graphique : quand ":" est tapé à l'invite Plus, Vim retournait en mode
Normal et ne rafraîchissait pas l'écran.
Lors du lancement de Vim avec l'argument "-c g/at/p", les lignes affichées se
superposaient les unes les autres.
BeOs : impossible de compiler. `configure` n'ajoutait pas les fichiers
os_beos.*, car la vérification pour QNX les supprimait. Diverses modifications
dans "os_beos.cc". (Joshua Haberman)
Suppression de la vérification du matériel de la plate-forme, la BeBox
n'est plus produite depuis un bon moment.
IHM graphique Win32 : ne pas utiliser de boîte de messages quand le shell
retourne un code d'erreur, mais afficher le message dans la fenêtre de Vim.
"Make_mvc.mak" incluait toujours "/debug" à l'édition de liens. L'argument
"GUI=no" ne fonctionnait pas. Utiliser "DEBUG=yes" au lieu de "DEBUG=1" pour
que cela soit cohérent. (Dan Sharp)
Quand une ligne d'un fichier de marqueurs se terminait par ;" (sans tabulation
après), la commande n'était pas reconnue comme une commande de recherche.
X11 : la ressource inputMethod ne fonctionnait jamais. Ne pas utiliser la
méthode de saisie "none" sur SGI, il semble qu'elle ignore le premier
caractère de la Méthode de Saisie.
Corrections de tests incorrects dans "os_mac.h". (Axel Kielhorn)
Console Win32 : quand la console dans laquelle Vim fonctionne était fermée,
Vim pouvait rester bloqué en tentant de restaurer l'icône de la fenêtre.
(Yasuhiro Matsumoto)
Lors d'un":3call func()" ou d'un ":3,3call func(), le numéro de ligne était
ignoré.
Quand 'showbreak' et 'linebreak' étaient tout deux activés, la surbrillance
Visuel continuait parfois au-delà de la fin de la ligne.
IHM graphique GTK+ : les éléments détachables étaient ajoutés lors du
démarrage même quand 'guioptions' ne contenait pas 't'.
MS-Windows : quand le répertoire courant contenait "~", la recherche de
fichiers avec "gf" ou ":find" ne fonctionnait pas. Même problème avec "$" dans
un nom de répertoire. Ajout des fonctions mch_has_exp_wildcard().
Quand le fenêtre de Vim était réduite pendant le démarrage, un message
d'erreur "out-of-memory" était émis.
Lors de l'édition d'un motif de recherche très long, 'incsearch' provoquait
l'échec du rafraîchissement de la ligne de commande.
IHM graphique Motif : sur certains systèmes, le menu Aide ne se trouvait pas
complètement à droite, tel qu'il est supposé l'être. Sur d'autres systèmes
(plus particulièrement Irix), la ligne de commande n'est pas entièrement
affichée. La solution retenue est de ne redimensionner la barre de menu
qu'avec LessTiff.
L'utilisation de "%" dans une ligne contenant deux fois "\\" ne prenait pas
correctement en compte les apostrophes. Maintenant, une distinction est faite
entre \" et \\".
Sur les systèmes non Unix, un fichier factice est créé lors de la
détermination d'un nom de fichier d'échange, pour détecter les systèmes de
fichiers 8.3. Quand un fichier d'échange existait déja, un avertissement
indiquait que le fichier avait été créé en dehors de Vim. De même, lors de la
fermeture de la fenêtre de Vim, le fichier persistait.
Motif : la hauteur du menu était toujours calculée, l'utilisation d'un
argument "-menuheight" fixait la place pour la ligne de commande. À présent,
il est précisé explicitement que cet argument n'est pas supporté.
Pour certains systèmes (EBCDIC), POUND valait '#'. Ajout d'un #if pour éviter
la duplication d'un case dans un switch.
L'IHM graphique pouvait avoir des problèmes lors du fork(). Toujours appeler
_exit() au lieu de exit() dans le père, le fils appellera exit().
IHM graphique Win32 : les caractères accentués étaient souvent erronés dans
les dialogues et les menus détachables. À présent, CP_ACP est utilisé à la
place de CP_OEMCP. (Vince Negri)
Lorsque l'affichage de texte avec la coloration syntaxique provoque une erreur
(par exemple une pile trop petite), la coloration syntaxique est désactivée
pour éviter des messages supplémentaires.
Quand une commande du vimrc ou gvimrc provoquait une invite ATTENTION, et que
Vim était lancé depuis le bureau (aucun endroit pour afficher les messages),
il bloquait. À présent, une fenêtre de l'IHM graphique est ouverte très tôt
pour pouvoir afficher les messages et des dialogues.
"r<CR>" sur un caractère multi-octets n'effaçait que le premier octet du
caractère. "3r<CR>" effaçait trois octets au lieu de trois caractères.
Quand la lecture d'un fichier est interrompue, Vi considère que le tampon est
modifié. Ajout du drapeau 'i' dans 'cpoptions' pour cela (avoir l'état modifié
n'est pas souhaité pour pouvoir faire ":q").
Lors de l'utilisation d'un élément dans 'guicursor' débutant par ":", Vim
bloquait ou plantait.
Quand une marque de fichier était positionnée dans un fichier d'aide, puis
rappelée avec un saut plus tard, les options du tampon n'était pas restaurées.
Extension des lignes de mode dans tous les fichiers d'aide pour que cela se
passe mieux.
Quand une ligne de mode contenait "::", la valeur des options locales étaient
affichée. "::" est maintenant ignoré.
Certains noms de fichiers d'aide n'était pas compatibles 8.3, ce qui posait
des problèmes lors de l'utilisation de `unzip` pour MS-DOS. "multibyte.txt"
renommé en "mbyte.txt", "rightleft.txt" en "rileft.txt", "tagsearch.txt" en
"tagsrch.txt" et "os_riscos.txt" en "os_risc.txt".
Quand le mode Visuel était par bloc, l'utilisation de "iw" ou "aw" le passait
en mode Visuel par caractères. Cela ne semble pas justifié, ne le faire que
pour le mode Visuel par lignes. Mais dans ce cas, le faire à chaque fois, et
pas seulement quand le début et la fin du mode Visuel sont identiques.
Lors de l'utilisation de "viw" sur un mot composé d'une seule lettre et que
'selection' valait "exclusive", le mot n'était pas inclus.
La mise en forme de texte en mode Insertion en utilisant CTRL-O pouvait
corrompre les informations de l'annulation.
Lors de l'écriture d'un fichier (ainsi que pour les fichiers de sauvegarde),
aucune vérification n'était effectuée pour savoir si une interruption avait
lieu (CTRL-C). Vim pouvait bloquer lors de l'écriture d'un gros fichier au
travers d'un réseau lent ; déplacer la souris n'informait pas de cet état
(avec 'mousehide' activé) et l'écran n'était pas rafraîchie dans l'IHM
graphique. L'interruption de la synchronisation avec le fichier d'échange est
maintenant possible, car elle peut prendre un bon moment.
Lors d'un ":mksession" alors qu'une fenêtre d'aide était présente, elle était
ensuite restaurée avec le bon fichier, mais sans qu'elle soit signalée comme
contenant un tampon d'aide. ":help" ouvrait alors une autre fenêtre.
Maintenant, la valeur "help" de 'buftype' est utilisée pour signaler un tampon
d'aide.
Le fichier de session contenait des noms de chemins absolus dans les valeurs
des options, cela ne fonctionnait pas quand le repértoire personnel dépendait
de la situation. Le répertoire personnel est remplacé par "~/" quand c'est
possible.
Avec 'showbreak', une tabulation juste après une marque de césure n'était pas
comptée correctement, le curseur était mal positionné.
Avec 'showbreak' valant "--->" ou "------->" et 'sts' valant 4, l'insertion
d'une tabulation ne fonctionnait pas bien. Cela pouvait provoquer un plantage.
Les retours arrières ne fonctionnaient pas non plus, ils pouvaient bloquer sur
une césure.
Win32 : plantage au détachement d'un menu contenu plus de 300 entrées.
IHM graphique : un menu ou une barre d'outils n'apparaissaient que lorsqu'une
bulle d'aide leur était définie.
Quand 'scrolloff' était non nul et que 'cpoptions' contenait "$",
l'utilisation de "s" alors que la dernière ligne du fichier se trouvait sur la
première ligne de la fenêtre n'affichait pas le texte.
Lors de l'exécution de `autoconf`, effacer le cache de la configuration pour
forcer une exécution complète quand `configure` est exécuté à nouveau.
Lors de la modification des couleurs de Normal pour cterm, la valeur de
'background' était aussi changée pour l'IHM graphique.
Un avertissement concernant "vimrun.exe" manquant était toujours émis au
démarrage, mais certaines personnes souhaitant simplement éditer un fichier
n'avaient pas de raison d'être dérangées par ce message. Ne l'afficher que
dans les cas où `vimrun` devrait être utilisé.
Dans un texte multi-octets, les octets finaux qui correspondent pouvaient
perturber le fonctionnement de "%". (Muraoka Taro)
L'entrée termcap pour RISC OS était erronée, elle utilisait utilisait le
chiffre 8 dans des codes en octal. XXX VO : 7 ?
Athena : les titres des fenêtre de dialogue et du sélecteur de fichiers
n'étaient pas positionnés. (David Harrison)
Le groupe de surbrillance "htmlLink" spécifiait explicitement une couleur, ce
qui pose des problèmes lors de l'utilisation de jeux de couleurs. Ajout du
groupe de surbrillance "Underlined" pour cela.
Après l'utilisation de ":insert" ou ":change", la marque '[ se trouvait une
ligne trop bas.
Lors de la recherche du nom de fichier après une correspondance avec
'include', un caractère était omis. Pareil pour 'define'.
Win32 et DJGPP : lors de l'édition d'un fichier avec son nom court dans un
répertoire, puis de l'édition de ce même fichier mais avec son nom long, deux
tampons différents étaient obtenus pour le même fichier.
"gf" sur un nom de fichier débutant par "../" ne fonctionnait que lors que le
fichier en cours d'édition se trouvait dans le répertoire courant. La
recherche d'un fichier inclus ne fonctionnait pas correctement pour les
fichiers débutant par "../" ou ".". Maintenant, la recherche est faite
relativement au fichier et au répertoire courant.
Quand 'printheader', 'titlestring', 'iconstring', 'rulerformat' ou
'statusline' contenait "%{", mais pas de "}" appariée, la mémoire était
corrompue et un plantage pouvait survenir.
":0append" suivi de l'insertion de deux lignes ne rafraîchissait pas les
deux lignes vides qui se retrouvaient défilée vers le bas.
Lors de l'utilisation du complètement en mode Insertion dans une fenêtre
étroite, le message provoquait un défilement vers le haut. Maintenant, le
message est raccourci s'il ne rentre pas, et la règle n'est plus écrite par
dessus.
XIM ne fonctionnait toujours pas correctement sur certains systèmes, en
particulier SGI/Irix. Ajout de l'option 'imdisable' option, activée par défaut
pour ce système.
Rustine 6.0aw.008
Problème : Quand le premier caractère d'un fichier est supérieur à 127, le
menu Tampons obtenait une priorité négative et posait des
problèmes.
Solution : Réduire le coefficient de multiplication du premier caractère lors
du calcul de la valuer de hachage d'une entrée de menu.
Fichiers : runtime/menu.vim
Rustine 6.0aw.010
Problème : Win32 : ":browse edit rep/rep" ne fonctionnait pas. (Vikas)
Solution : Changer les obliques en contre-obliques dans le répertoire
transmis au sélecteur de fichiers.
Fichiers : src/gui_w48.c
Sélecteur de fichiers Athena : sur certains systèmes, il n'est pas possible
d'utiliser wcstombs() pour obtenir la longueur d'une chaîne multi-octets.
Utiliser la longueur maximale dans ce cas. (Yasuhiro Matsumoto)
Rustine 6.0ax.001
Problème : Avec 'patchmode' activé, ajouter à la fin d'un fichier aboutit
à un fichier d'origine vide. (Ed Ralston)
Solution : Faire aussi une copie de sauvegarde lors d'un ajout et que
'patchmode' est activé.
Fichiers : src/fileio.c
Rustine 6.0ax.002
Problème : Avec 'patchmode' activé, ajouter à la fin d'un fichier compressé
aboutissait à un fichier d'origine non compressé. (Ed Ralston)
Solution : Créer le fichier d'origine avant de le décompresser.
Fichiers : runtime/plugin/gzip.vim
Rustine 6.0ax.005
Problème : Le sélecteur de fichiers Athena conserve le titre de sa première
invocation.
Solution : Fixer le titre à chaque fois que le sélecteur est ouvert. (David
Harrison)
Fichiers : src/gui_at_fs.c
Rustine 6.0ax.007
Problème : Lors de l'utilisation de GPM (pilote de souris dans la console
Linux), un double clic est interprété comme un clic de molette.
Solution : Tester si GPM est utilisé pour décider si un événement de la
souris concerne la molette.
Fichiers : src/term.c
Rustine 6.0ax.010
Problème : Le menu Edit.Save et le bouton Save de la barre d'outils ne
fonctionnent pas quand le tampon n'a pas de nom.
Solution : Utiliser le sélecteur de fichiers pour demander un nom. Correction
de l'élément Rechercher de la barre d'outils en mode Visuel.
Fichiers : runtime/menu.vim
Rustine 6.0ax.012
Problème : Quand 'cpoptions' contient "$", scinder une ligne à 'textwidth' ne
rafraîchit pas correctement. (Stefan Schulze)
Solution : Supprimer le dollar avant de scinder la ligne.
Fichiers : src/edit.c
Rustine 6.0ax.014
Problème : Win32 : sur MS-Windows 98 ":make -f file" ne fonctionne pas quand
'shell' vaut "command.com" et 'makeprg' vaut "nmake".
L'environnement n'est pas transmis à "nmake".
Solution : utiliser aussi "vimrun.exe" lors de la redirection de la sortie
d'une commande.
Fichiers : src/os_win32.c
Rustine 6.0ax.016
Problème : Le numéro de version est mal reporté dans l'écran d'accueil.
Solution : Vérifier les numéros de version avec deux lettres supplémentaires.
Fichiers : src/version.c
Rustine 6.0ax.019
Problème : Lors du défilement vers le haut d'une fenêtre contenant des
replis, passer dans une autre fenêtre partagée verticalement puis
revenir peut ne pas mettre la barre de défilement à jour.
Solution : Limiter w_botline au nombre de lignes dans le tampon plus une.
Fichiers : src/move.c
==============================================================================
Version 6.1 *version-6.1*
Cette section traite des améliorations apportées entre les versions 6.0 et
6.1.
Il s'agit d'une version corrigeant des bogues, avec peu de nouvelles
fonctionnalités.
CHANGEMENTS *changed-6.1*
'iminsert' et 'imsearch' ne sont plus modifiées par effet de bord lors de la
définition de mappages de langue avec ":lmap".
AJOUTS *added-6.1*
Fichiers de syntaxe :
ampl AMPL (David Krief)
ant Ant (Johannes Zellner)
baan Baan (Her van de Vliert)
cs C# (Johannes Zellner)
lifelines Lifelines (Patrick Texier)
lscript LotusScript (Taryn East)
moo MOO (Timo Frenay)
nsis NSIS (Alex Jakushev)
ppd Postscript Printer Description (Bjoern Jacke)
rpl RPL/2 (Joel Bertrand)
scilab Scilab (Benoit Hamelin)
splint Splint (Ralf Wildenhues)
sqlj SQLJ (Andreas Fischbach)
wvdial WvDial (Prahlad Vaidyanathan)
xf86conf Configuration XFree86 (Nikolai Weibull)
xmodmap Xmodmap (Nikolai Weibull)
xslt Xslt (Johannes Zellner)
monk Monk (Mike Litherland)
xsd Xsd (Johannes Zellner)
cdl CDL (Raul Segura Acevedo)
sendpr Send-pr (Hendrik Scholz)
Ajout des fichiers d'indentation pour :
- Scheme (Dorai Sitaram)
- Prolog (Kontra Gergely)
- Povray (David Necas)
- IDL (Aleksandar Jelenak)
Ajout d'un fichier d'indentation et d'un greffon de type de fichier pour C#.
Ajout de la traduction ukrainienne des menus. (Bohdan Vlasyuk)
Ajout de la version ASCII des menus Tchèques. (Jiri Brezina)
Ajout de la traduction en chinois simplifié du tutoriel. (Mendel L Chan)
Ajout du codage clavier russe pour les claviers yawerty.
Ajout d'une explication sur l'utilisation du fichier vimrc dans le tutoriel.
Modification de "tutor.vim" pour obtenir le bon codage avec le tutoriel
taiwanais.
Ajout du tutoriel en russe. (Andrey Kiselev)
Ajout du tutoriel en polonais. (Mikolaj Machowski)
Ajout du jeu de couleurs darkblue. (Bohdan Vlasyuk)
Lors de l'empaquetage de l'archive MS-DOS pour les langues, les fichier ".mo"
requis sont automatiquement générés.
Amélioration du script NSIS pour supporter NSIS 1.80. Ajout d'icônes pour les
états activé/désactivé. (Mirek Pruchnik)
Version cp1250 de la traduction slovaque des messages.
Greffon de compilateur pour Irix. (David Harrison)
CORRECTIONS *fixed-6.1*
La licence a été mise à jour pour en clarifier le propos et la rendre
compatible avec la GNU GPL. Les distributeurs avaient des problèmes quand Vim
était lié avec des bibliothèques LPG.
Lors de l'installation du script "less.sh", il n'était pas rendu exécutable.
(Chuck Berg)
Win32 : la touche "9" du pavé numérique ne fonctionnait pas. (Julian Kinraid)
Le script d'installation NSIS ne fonctionnait pas avec NSIS 1.80 ou ultérieur.
Ajout d'icônes spécifiques à Vim. (Pruchnik)
Le script de conversion en HTML contenait un "if" mal placé. (Michael Geddes)
Utiliser ":ascii" est autorisé dans le bac à sable, cette commande est
inoffensive.
Suppression de creat() dans "osdef2.h.in", il n'était pas utilisé et pouvait
poser des problèmes quand il était redéfini en creat64().
Les fichiers texte du répertoire VisVim étaient au format "dos". Cela posait
des problèmes pour l'application des rustines. Ils sont maintenant au format
"unix" et ne sont convertis que dans les archives pour PC.
Ajout des fichiers Ruby dans l'archive des sources MS-DOS, "Make_mvc.mak"
pouvait en avoir besoin. (Mirek Pruchnik)
"cp -f" ne fonctionne pas sur tous les systèmes. Changements de "cp -f" en
"cp" et "rm -f" dans le Makefile.
Impossible de compiler sur un Compaq Tandem Himalaya OSS. (Michael A.
Benzinger)
Le dialogue de sélection de fichiers de GTK+ n'incluait pas les boutons
"Create Dir", "Delete File" et "Rename File".
Lors d'un ":browse source", le titre du dialogue était "Run Macro". "Source
Vim script" vaudrait mieux. (Yegappan Lakshmanan)
Win32 : ne pas utiliser la police d'impression comme police par défaut pour
les dialogues.
"make doslang" ne fonctionnait pas quand `configure` n'avait pas (encore) été
exécuté. $MAKEMO vaut maintenant "yes". (Mirek Pruchnik)
L'élément TagJump de la barre d'outils utilisait "g]", qui affiche une invite
de sélection même quand un seul marqueur correspond. Utiliser "g<C-]>" à la
place.
Le Makefile Ming pour les traductions des messages ne comportait pas la bonne
liste de fichiers.
La version MS-Windows 3.1 se plaignait de LIBINTL.DLL manquante. Cette version
est maintenant compilée sans la traduction des messages.
Le Makefile Borland 5 contenait une vérification pour Ruby qui n'est plus
nécessaire. Les URL de la bibliothèque TCL sont obslolètes. (Dan Sharp)
Le fichier "eviso.ps" était absent de l'archive de support MS-DOS, alors qu'il
est nécessaire pour imprimer en Postscript dans la version Dos32.
Dans les fichiers de menu, ":scriptencoding" était mal utilisé après la
rustine 6.1a.032. Maintenant, ":scriptencoding" est utilisé dans le fichier
dans lequel la traduction est fournie. La même modification a été opérée dans
tous les fichiers de menu codés en latin1.
Nombreuses corrections pour Macintosh, principalement pour fonctionner avec
Carbon. (Dany StAmant, Axel Kielhorn, Benji Fisher)
Amélioration du script shell "vimtutor" pour qu'il utilise $TMPDIR quand il
existe et qu'il efface le fichier copié en cas de terminaison anormale. (Max
Ischenko)
Quand "iconv.dll" est introuvable, essayer d'utiliser "libiconv.dll".
Il était impossible de filtrer avec une commande shell quand le chiffrement
était utilisé.
DJGPP : ":cd c:" échouait toujours, impossible de récupérer les permissions
pour "c:".
Win32 : ":cd c:/" échouait quand le répertoire courant précédent sur c:
devenait invalide.
DJGPP : Maj-Suppr et Suppr produisaient tout deux \316\123. Le mappage par
défaut pour Suppr est faux. Il est désactivé.
Des dépendances entre des fichiers d'en-tête dans le Makefile MinGW étaient
fausses.
Win32 : ne pas traiter les ACL avec MSVC 4.2, il ne les supporte pas. (Walter
Briscoe)
Win32 avec Borland : "bcc.cfg" mémorisait la valeur de $(BOR), mais la
fourniture d'un argument différent à `make` ne la regénérait pas.
Win32 avec MSVC : "Make_ivc.mak" générait un nouveau fichier "if_ole.h" dans
un répertoire différent, le fichier "if_ole.h" du répertoire contenant les
sources pouvait être utilisé à la place. Le fichier distribué est maintenant
supprimé.
Quand une fenêtre était partagée verticalement et que ":ball" était utilisé,
la disposition des fenêtres était bouleversée et un plantage pouvait survenir.
(Muraoka Taro)
Avec 'insertmode' activé, lors de l'utilisation du menu Fichier/Nouveau suivi
d'un double-clic, "i" était inséré. (Merlin Hansen)
Quand le mode Sélection était actif et que le menu Tampons était utilisé pour
passer à un autre tampon, la sélection précédente revenait. Visual_reselect
est maintenant réinitialisé lors d'une commande concernant les tampons.
Quand le mode Sélection était actif et que le menu Tampons était utilisé pour
passer à un autre tampon, Vim ne retournait pas en mode Insertion. À présent,
s'assurer que "restart_edit" est positionné.
Un double clic sur le premier caractère d'un mot alors que 'selection' valait
"exclusive" ne sélectionnait pas ce mot.
Rustine 6.0.001
Problème : Le chargement du fichier de syntaxe "sh.vim" provoque des messages
d'erreur. (Corinna Vinschen)
Solution : Ajout d'un "if". (Charles Campbell)
Fichiers : runtime/syntax/sh.vim
Rustine 6.0.002
Problème : L'utilisation d'un élément '@' dans 'viminfo' ne fonctionne pas.
(Marko Leipert)
Solution : Ajout de '@' dans la liste des éléments autorisés.
Fichiers : src/option.c
Rustine 6.0.003
Problème : La vérification de `configure` pour les ACL ne fonctionne pas sur
AIX.
Solution : Correction du programme de manière à ce qu'il compile. (Tomas
Ogren)
Fichiers : src/configure.in, src/auto/configure
Rustine 6.0.004
Problème : Le dialogue Rechercher/Remplacer ne réutilisait pas correctement
l'argument précédent.
Solution : Après la suppression d'un "\V", terminer la chaîne. (Zwane
Mwaikambo)
Fichiers : src/gui.c
Rustine 6.0.005
Problème : En mode Insertion, "CTRL-O :ls" demande un délai avant de
rafraîchir.
Solution : Ne pas attendre juste après un appel à wait_return(). Ajout du
drapeau did_wait_return.
Fichiers : src/globals.h, src/messsage.c, src/normal.c, src/screen.c
Rustine 6.0.006
Problème : Avec un partage vertical, 'number' activé et 'scrolloff' non nul,
réduire la fenêtre à une très petite largeur provoque un plantage.
(Niklas Lindstrom)
Solution : Vérifier une éventuelle largeur nulle.
Fichiers : src/move.c
Rustine 6.0.007
Problème : Quand 'filetype' est fixé alors qu'il n'y a aucune autocommande
FileType, un nouveau ":setfiletype" fixe encore 'filetype'. (Kobus
Retief)
Solution : Toujours positionner did_filetype quand 'filetype' a été fixé.
Fichiers : src/option.c
Rustine 6.0.008
Problème : 'imdisable' est absente de la fenêtre des options (option-window).
(Michael Naumann)
Solution : Ajouter l'entrée correspondante.
Fichiers : runtime/optwin.vim
Rustine 6.0.009
Problème : Nextstep ne dispose pas de S_ISBLK. (John Beppu)
Solution : Définir S_ISBLK à S_IFBLK.
Fichiers : src/os_unix.h
Rustine 6.0.010
Problème : Utiliser "gf" sur un nom de fichier débutant par "./" ou "../"
dans un tampon sans nom provoque un plantage. (Roy Lewis)
Solution : Vérifier un nom de fichier NULL.
Fichiers : src/misc2.c
Rustine 6.0.011
Problème : Python : après le remplacement ou l'effacement de lignes, une
erreur ml_get survient. (Leo Lipelis)
Solution : Ajuster la position du curseur pour les lignes ajoutées ou
supprimées.
Fichiers : src/if_python.c
Rustine 6.0.012
Problème : La traduction polonaise contient des erreurs de format printf, qui
peuvent aboutir à un plantage lors de leur utilisation.
Solution : Correction des messages traduits. (Michal Politowski)
Fichiers : src/po/pl.po
Rustine 6.0.013
Problème : L'utilisation de ":silent! cmd" donne encore certains messages
d'erreur, comme une plage invalide. (Salman Halim)
Solution : Réinitialiser emsg_silent après un appel à emsg() dans
do_one_cmd().
Fichiers : src/ex_docmd.c
Rustine 6.0.014
Problème : Avec 'modifiable' désactivé et 'virtualedit' valant "all", "rx"
sur une tabulation modifie encore le tampon. (Muraoka Taro)
Solution : Vérifier si la mémorisation de la ligne pour l'annulation a
échoué.
Fichiers : src/normal.c
Rustine 6.0.015
Problème : Quand 'cpoptions' contient "S" et que "filetype plugin on" a
été utilisé, il est possible d'obtenir une erreur à propos de
l'effacement de la variable b:did_ftplugin. (Ralph Henderson)
Solution : N'effacer la variable que si elle existe.
Fichiers : runtime/ftplugin.vim
Rustine 6.0.016
Problème : bufnr(), bufname() et bufwinnr() ne trouvent pas les tampons non
listés quand l'argument est une chaîne. (Hari Krishna Dara)
Pareil pour setbufvar() et getbufvar().
Solution : Rechercher aussi les tampons non listés.
Fichiers : src/eval.c
Rustine 6.0.017
Problème : Quand 'ttybuiltin' est activé et qu'une entrée termcap intégrée
définit 't_Co' alors que l'entrée externe ne le fait pas, elle est
réinitialisée à vide. (David Harrison)
Solution : Fixer 't_Co' uniquement quand elle ne l'est pas encore.
Fichiers : src/term.c
Rustine 6.0.018
Problème : L'initialisation de 'encoding' peut provoquer un plantage quand
setlocale() n'est pas utilisé. (Dany St-Amant)
Solution : Tester un pointeur NULL.
Fichiers : src/mbyte.c
Rustine 6.0.019
Problème : La conversion d'une chaîne avec des caractères multi-octets en une
chaîne imprimable (par exemple avec strtrans()) peut provoquer un
plantage. (Tomas Zellerin)
Solution : Calculer correctement la longueur de la chaîne retourné par
transstr().
Fichiers : src/charset.c
Rustine 6.0.020
Problème : Lors de la récupération en interne de la valeur d'une variable
globale, une valeur locale à la fonction est parfois obtenue à la
place. Cela se produit lors de l'utilisation de <Leader> et
<LocalLeader> et de la réinitialisation de la surbrillance dans
une fonction.
Solution : Préfixer le nom de la variable avec "g:". (Aric Blumer)
Fichiers : src/syntax.c, src/term.c
Rustine 6.0.021
Problème : L'option 'cscopepathcomp' ne fonctionne pas.
Solution : Changer USE_CSCOPE en FEAT_CSCOPE. (Mark Feng)
Fichiers : src/option.c
Rustine 6.0.022
Problème : Lors de l'utilisation de l'option 'langmap', le deuxième caractère
de la commande débutant par "g" n'est pas ajusté.
Solution : Appliquer 'langmap' au deuxième caractère. (Alex Kapranoff)
Fichiers : src/normal.c
Rustine 6.0.023
Problème : Le chargement de la syntaxe lhaskell ne fonctionne pas. (Thore B.
Karlsen)
Solution : Utiliser ":runtime" au lieu de ":source" pour charger
"haskell.vim".
Fichiers : runtime/syntax/lhaskell.vim
Rustine 6.0.024
Problème : Faire "CTRL-V u 9900" en mode Insertion peut provoquer un
plantage. (Noah Levitt)
Solution : Ne pas insérer d'octet NUL dans le texte, mais utiliser un
saut-de-ligne.
Fichiers : src/misc1.c
Rustine 6.0.025
Problème : Le motif "\vx(.|$)" ne correspond pas avec "x" à la fin d'une
ligne. (Preben Peppe Guldberg)
Solution : Toujours considérer "$" comme une fin-de-ligne après "\v". Pareil
pour "^".
Fichiers : src/regexp.c
Rustine 6.0.026
Problème : GTK+ : lors de l'utilisation des touches fléchées pour naviguer
dans les menus, les séparateurs sont sélectionnés.
Solution : Neutraliser les séparateurs. (Pavel Kankovsky)
Fichiers : src/gui_gtk.c, src/gui_gtk_x11.c
Rustine 6.0.027
Problème : VMS : l'impression ne fonctionne pas, le fichier est effacé trop
tôt.
Le menu spécifique à VMS pour l'impression n'est plus nécessaire.
gethostname() n'existe pas avec VAXC.
Le Makefile ne proposait pas de sélection des fonctionnalités
minuscule-énorme.
Solution : Ajuster la valeur par défaut de l'option 'printexpr'. Corriger les
autres problèmes et mettre la documentation à jour. (Zoltan
Arpadffy)
Fichiers : runtime/doc/os_vms.txt, runtime/menu.vim, src/INSTALLvms.txt,
src/Make_vms.mms, src/option.c, src/os_unix.c, src/os_vms_conf.h
Rustine 6.0.028
Problème : Impossible de compiler sans +virtualedit et avec +visualextra.
(Geza Lakner)
Solution : Ajouter un #ifdef pour +virtualedit.
Fichiers : src/ops.c
Rustine 6.0.029
Problème : Lors d'un changement dans la ligne 1, suivi d'un changement dans
la ligne 2 et d'un effacement de la ligne 1, l'information pour
l'annulation pouvait être fausse. Uniquement si les changements
sont annulés un par un. (Gerhard Hochholzer)
Solution : Quand une ligne n'est pas enregistrée pour l'annulation parce
qu'elle l'a déjà été auparavant, mémoriser l'entrée pour laquelle
la dernière ligne doit être calculée. Ajout du pointeur
ue_getbot_entry pour cela. Quand le nombre de lignes change,
ajuster la position des entrées de l'annulation plus récentes.
Fichiers : src/structs.h, src/undo.c
Rustine 6.0.030
Problème : L'utilisation de ":source! fichier" ne fonctionne pas dans une
boucle ou après ":argdo". (Pavol Juhas)
Solution : Exécuter les commandes du fichier immédiatement, ne pas déléguer à
la boucle principale.
Fichiers : src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c, src/globals.h,
src/proto/ex_docmd.pro, src/proto/getchar.pro
Rustine 6.0.031
Problème : Nextstep ne dispose pas de setenv() et putenv(). (John Beppu)
Solution : Déplacer putenv() de "pty.c" vers "misc2.c".
Fichiers : src/misc2.c, src/pty.c
Rustine 6.0.032
Problème : Quand la modification d'un réglage affecte tous les replis, le
changement dans l'affichage n'est pas immédiat.
Solution : Positionner le drapeau de rafraîchissement dans foldUpdateAll().
Fichiers : src/fold.c
Rustine 6.0.033
Problème : Avec 'wildmenu' sur MS-Windows, les noms de fichiers contenant un
espace ne sont affichés qu'à partir de cet espace. (Xie Yuheng)
Solution : Ne pas considérer une contre-oblique devant un espace comme un
séparateurs de chemin.
Fichiers : src/screen.c
Rustine 6.0.034
Problème : Appeler searchpair() avec trois arguments pouvait provoquer un
plantage ou d'étranges messages d'erreur. (Kalle Bjorklid)
Solution : Ne pas utiliser le cinquième argument si le quatrième n'est pas
spécifié.
Fichiers : src/eval.c
Rustine 6.0.035
Problème : L'élément de menu Edit/Global_Settings/Toggle_Toolbar ne
fonctionne pas quand 'ignorecase' est activé. (Allen Castaban)
Solution : Toujours respecter la casse lors du test de la présence d'un
drapeau dans 'guioptions'.
Fichiers : runtime/menu.vim
Rustine 6.0.036
Problème : OS/2, MS-DOS et MS-Windows : l'utilisation d'un chemin débutant
par une oblique dans 'tags' ne fonctionne pas comme prévu.
(Mathias Koehrer)
Solution : N'utiliser que l'unité, et non pas le chemin complet jusqu'au
répertoire courant.
Fonctionne à présent aussi pour "c:rep/fichier".
Fichiers : src/misc2.c
Rustine 6.0.037
Problème : Quand l'utilisateur a fixé "did_install_syntax_menu" pour éviter
le menu Syntaxe par défaut, ce dernier apparaît tout de même.
(Virgilio)
Solution : Ne pas ajouter les trois éléments par défaut quand
"did_install_syntax_menu" est fixé.
Fichiers : runtime/menu.vim
Rustine 6.0.038
Problème : Quand 'selection' vaut "exclusive", l'effacement d'un bloc de
texte à la fin de la ligne peut laisser le curseur au-delà de la
fin de la ligne.
Solution : Corriger la position du curseur.
Fichiers : src/ops.c
Rustine 6.0.039
Problème : "gP" laisse le curseur à une mauvaise position quand 'virtualedit'
est utilisé. L'utilisation de "c" est mode Visuel par bloc laisse
le curseur à une position étrange.
Solution : Avec "gP", réinitialiser le champ "coladd" pour la marque ']. Pour
"c", laisser le curseur sur le dernier caractère inséré.
Fichiers : src/ops.c
Rustine 6.0.040
Problème : Quand 'fileencoding' est invalide et que l'écriture échoue à cause
de cela, le fichier original disparaît. (Eric Carlier)
Solution : Restaurer le fichier original d'après la sauvegarde.
Fichiers : src/fileio.c
Rustine 6.0.041
Problème : Utiliser ":language messages en" quand LC_MESSAGES est indéfini
aboutit à fixer LC_CTYPE. (Eric Carlier)
Solution : Fixer $LC_MESSAGES à la place.
Fichiers : src/ex_cmds2.c
Rustine 6.0.042
Problème : ":mksession" ne prend pas en compte les noms de fichier avec des
espaces.
Solution : Protéger les caractères spéciaux dans les noms de fichiers avec
une contre-oblique.
Fichiers : src/ex_docmd.c
Rustine 6.0.043
Problème : La rustine 6.0.041 est fausse.
Solution : Utiliser mch_getenv() au lieu de vim_getenv().
Fichiers : src/ex_cmds2.c
Rustine 6.0.044
Problème : L'utilisation d'une liste "containedin" avec un élément de syntaxe
ne fonctionne pas pour un élément ne disposant pas d'un argument
"contains". De même, "containedin" n'ignore pas les éléments
transparents. (Timo Frenay)
Solution : Quand un argument "containedin" est spécifié, toujours vérifier
les éléments contenus. Ne pas vérifier les éléments transparents,
mais les éléments dans lesquels ils sont contenus.
Fichiers : src/structs.h, src/syntax.c
Rustine 6.0.045
Problème : Après la création d'un repli à l'aide d'une sélection Visuel, une
autre fenêtre sur le même tampon montrait toujours du texte en
surbrillance. (Sami Salonen)
Solution : Redessiner le texte en surbrillance.
Fichiers : src/normal.c
Rustine 6.0.046
Problème : Quand getrlimit() retourne une nombre de 8 octets, le test de
taille de pile peut échouer. (Anthony Meijer)
Solution : Ignorer le test de taille de pile si la limite ne tient pas dans
un long.
Fichiers : src/auto/configure, src/config.h.in, src/configure.in,
src/os_unix.c
Rustine 6.0.047
Problème : L'utilisation d'une exprat avec "\(\)" dans un élément "\%[]"
provoque un plantage. (Samuel Lacas)
Solution : Ne pas autoriser les atomes imbriqués dans "\%[]".
Fichiers : src/regexp.c
Rustine 6.0.048
Problème : Win32 : dans la console, la souris ne fonctionne pas toujours
correctement. Parfois, après la récupération du focus, un
mouvement de la souris est interprété comme un clic.
Solution : Utiliser une fonction différente pour obtenir le nombre de boutons
de la souris. Cela évite de reconnaître la pression sur un bouton
à partir de bits indéfinis. (Vince Negri)
Fichiers : src/os_win32.c
Rustine 6.0.049
Problème : Lors de l'utilisation de evim, l'écran d'accueil est trompeur.
(Adrian Nagle)
Solution : Mentionner si 'insertmode' est activé et les menus à utiliser.
Fichiers : runtime/menu.vim, src/version.c
Rustine 6.0.050
Problème : UTF-8 : "viw" n'inclut pas les caractères non ASCII situés avant
le curseur. (Bertilo Wennergren)
Solution : Utiliser dec_cursor() au lieu de décrémenter le numéro de colonne.
Fichiers : src/search.c
Rustine 6.0.051
Problème : UTF-8 : l'utilisation de CTRL-R dans la ligne de commande n'insère
pas de caractères de composition. (Ron Aaron)
Solution : Inclure aussi les caractères de composition et corriger le
rafraîchissement.
Fichiers : src/ex_getln.c, src/ops.c
Rustine 6.0.052
Problème : La vérification de rlim_t dans la rustine 6.0.046 ne fonctionne
pas sur certains systèmes. (Zdenek Sekera)
Solution : Chercher rlim_t également dans "sys/resource.h".
Fichiers : src/auto/configure, src/configure.in
Rustine 6.0.053 (extra)
Problème : Divers problèmes avec QNX.
Solution : Correction mineure de `configure`. Activer le support du
presse-papiers du terminal dans "main.c". Correction du support de
la souris "pterm". "os_qnxc" ne compilait pas sans photon. (Julian
Kinraid)
Fichiers : src/auto/configure, src/configure.in, src/gui_photon.c,
src/main.c, src/misc2.c, src/option.h, src/os_qnx.c, src/os_qnx.h,
src/syntax.c
Rustine 6.0.054
Problème : Lors de l'utilisation de "mswin.vim", CTRL-V colle un bloc de
texte comme s'il s'agit d'un texte normal. L'utilisation de CTRL-V
en mode Visuel par bloc laisse des caractères "x" derrière.
Solution : Faire fonctionner CTRL-V comme il le devrait. Pareil pour les
entrées Coller du menu.
Fichiers : runtime/menu.vim, runtime/mswin.vim
Rustine 6.0.055
Problème : GTK+ : la sélection n'est pas copiée la première fois.
Solution : Disposer de la sélection au moment approprié.
Fichiers : src/gui_gtk_x11.c
Rustine 6.0.056
Problème : Faire "CTRL-O cw" en mode Insertion aboutit à une imbrication de
modes Insertion. <Echap> ne sort alors plus du mode Insertion.
Solution : Utiliser les modes Insertion imbriqués uniquement quand
'insertmode' est activé ou qu'un mappage est utilisé.
Fichiers : src/normal.c
Rustine 6.0.057
Problème : Utiliser ":wincmd g}" dans une fonction ne fonctionne pas. (Gary
Holloway)
Solution : Exécuter la commande directement, au lieu de la mettre dans le
tampon typeahead.
Fichiers : src/normal.c, src/proto/normal.pro, src/window.c
Rustine 6.0.058
Problème : Quand une autocommande Cursorhold déplace le curseur, la règle
n'est pas mise à jour. (Bohdan Vlasyuk)
Solution : Mettre la règle à jour après l'exécution des autocommandes.
Fichiers : src/gui.c
Rustine 6.0.059
Problème : La surbrillance de 'hlsearch' n'est pas visible dans les lignes
colorées selon la surbrillance Diff. (Gary Holloway)
Solution : Permettre à la surbrillance de 'hlsearch' de recouvrir celle du
mode diff.
Fichiers : src/screen.c
Rustine 6.0.060
Problème : Motif : quand une bulle d'aide est affichée, Vim plante. (Gary
Holloway)
Solution : Tester une valeur de retour NULL pour
gui_motif_fontset2fontlist().
Fichiers : src/gui_beval.c
Rustine 6.0.061
Problème : Les boutons de la barre d'outils pour charger ou enregistrer une
session n'utilisent pas v:this_session correctement.
Solution : Tester si v:this_session est vide plutôt que son existence.
Fichiers : runtime/menu.vim
Rustine 6.0.062
Problème : Plantage à l'utilisation de ":shell" quand 'verbose' est supérieur
à 3. (Yegappan Lakshmanan)
Solution : Éviter de transmettre un pointeur NULL à printf(). Ajouter un
saut-de-ligne et activer le curseur.
Fichiers : src/misc2.c
Rustine 6.0.063
Problème : Quand 'cpoptions' contient "$", utiliser "cw" pour saisir une ')'
sur le "$" ne met pas la coloration syntaxique de la suite de la
ligne à jour.
Solution : Ne plus afficher "$" quand une ')' est tapée à la même position.
Fichiers : src/search.c
Rustine 6.0.064 (extra)
Problème : Le script d'installation NSIS ne fonctionne pas avec les versions
récentes de NSIS.
La fonctionnalité diff ne fonctionne pas quand il n'existe pas de
"diff.exe" valable sur le système.
Solution : Remplacer l'instruction GetParentDir par une fonction utilisateur.
Correction de quelques problèmes cosmétiques. Utiliser des
constantes pour le numéro de version, de façon à ce qu'il ne soit
défini qu'à un seul endroit.
N'accepter que des répertoires d'installation se terminant par
vim. (Eduardo Fernandez)
Ajout de "diff.exe", utilisé par le _vimrc par défaut.
Fichiers : nsis/gvim.nsi, nsis/README.txt, src/dosinst.c
Rustine 6.0.065
Problème : Quand ":normal" est utilisé dans 'indentexpr', il peut utiliser
des caractères de restauration avant son argument. (Neil Bird)
Solution : Mémoriser et restaurer ce qui concerne les tampons dans
ex_normal().
Fichiers : src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h
Rustine 6.0.066
Problème : Parfois, l'annulation d'une commande est scindée en deux actions
d'annulation. (Halim Salman)
Solution : Ne pas positionner le drapeau undo-synced lors de la réutilisation
d'une ligne déjà mémorisée pour l'annulation.
Fichiers : src/undo.c
Rustine 6.0.067
Problème : "if_xcmdsrv.c" ne compile pas sur les systèmes sur lesquels fd_set
n'est pas défini dans un fichier d'en-tête du système (par exemple
AIX). (Mark Waggoner)
Solution : Inclure "sys/select.h" dans "if_xcmdsrv.c" pour les systèmes qui
en disposent.
Fichiers : src/if_xcmdsrv.c
Rustine 6.0.068
Problème : Lors de la mise en forme avec "gq" d'une zone Visuellement
sélectionnée et que le nombre de lignes augmente, la dernière
ligne peut ne pas être rafraîchie correctement. (Yegappan
Lakshmanan)
Solution : Corriger la zone pour qu'elle soit redessinée quand des lignes
sont ajoutées/supprimées.
Fichiers : src/ops.c
Rustine 6.0.069
Problème : Utiliser "K" sur un mot contenant un "!" provoque une erreur "No
previous command", car "!" est étendu. (Craig Jeffries)
Solution : Mettre une contre-oblique devant le "!".
Fichiers : src/normal.c
Rustine 6.0.070
Problème : Win32 : le message d'erreur à propos de l'échec d'une liaison
dynamique avec Perl, Ruby ou Python n'est pas clair quant à la
cause du problème.
Solution : Donner le nom de la bibliothèque ou de la fonction qui n'a pas pu
être chargée. Pareil pour les bibliothèques iconv et gettext quand
'verbose' est activé.
Fichiers : src/eval.c, src/if_perl.xs, src/if_python.c, src/if_ruby.c,
src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/if_perl.pro,
src/proto/if_python.pro, src/proto/if_ruby.pro,
src/proto/if_tcl.pro, src/proto/mbyte.pro
Rustine 6.0.071
Problème : Le termcap intégré "iris-ansi" n'est pas terrible.
Solution : corriger les entrées fausses. (David Harrison)
Fichiers : src/term.c
Rustine 6.0.072
Problème : Quand 'lazyredraw' est activé, un mappage qui arrête le mode
Visuel, déplace le curseur puis repasse en mode Visuel provoque un
problème de rafraîchissement. (Brian Silverman)
Solution : Redessiner aussi bien l'ancienne que la nouvelle zone Visuel si
nécessaire.
Fichiers : src/normal.c, src/screen.c
Rustine 6.0.073 (extra)
Problème : DJGPP : lors de l'utilisation de CTRL-Z pour lancer un shell,
l'invite se retrouve au milieu du texte. (Volker Kiefel)
Solution : Positionner le curseur avant de démarrer le shell.
Fichiers : src/os_msdos.c
Rustine 6.0.074
Problème : Lors de l'utilisation de "&" dans une chaîne de substitution, un
caractère multi-octets avec un octet final valant 0x5c n'est pas
correctement pris en charge .
Solution : Reconnaître les caractères multi-octets dans la partie "&" des
chaînes de substitution. (Muraoka Taro)
Fichiers : src/regexp.c
Rustine 6.0.075
Problème : Lors de la fermeture d'une fenêtre partagée horizontalement, alors
que 'eadirection' vaut "hor", une autre fenêtre partagée
horizontalement est encore redimensionnée. (Aron Griffis)
Solution : Ne redimensionner que la fenêtre située dans le même cadre que la
fenêtre partagée ou fermée.
Fichiers : src/main.c, src/proto/window.pro, src/window.c
Rustine 6.0.076
Problème : Avertissement à propos de type de pointeur erroné lors de la
compilation.
Solution : Utiliser char plutôt que char_u pour les pointeurs.
Fichiers : src/version.c
Rustine 6.0.077
Problème : La rustine 6.0.075 est incomplète.
Solution : Correction d'un autre appel à win_equal().
Fichiers : src/option.c
Rustine 6.0.078
Problème : Utiliser "daw" à la fin d'une ligne sur un mot d'un seul
caractère n'inclut pas l'espace blanc devant. À la fin du fichier,
cela ne fonctionne pas du tout. (Gavin Sinclair)
Solution : Inclure l'espace blanc devant le mot.
Fichiers : src/search.c
Rustine 6.0.079
Problème : Quand 'cpoptions' contient "W" et 'backupcopy' vaut "no" ou
"auto", il reste possible d'écraser un fichier en lecture seule,
car il est renommé. (Gary Holloway)
Solution : Ajouter un test sur la lecture seule d'un fichier avant de
renommer le fichier pour en faire une sauvegarde.
Fichiers : src/fileio.c
Rustine 6.0.080
Problème : Quand un fichier de session est utilisé pour un fichier affiché
dans deux fenêtres, l'appel à fileinfo() dans do_ecmd() provoque
le défilement de l'écran et une invite Plus. (Robert Webb)
Solution : Ne pas faire défiler avec le message quand 'shortmess' contient
'O'.
Fichiers : src/ex_cmds.c
Rustine 6.0.081
Problème : Après avoir utilisé ":saveas", le nouveau nom du tampon est ajouté
au menu Tampons avec un mauvais numéro. (Chauk-Mean Proum)
Solution : Déclencher les événements BufFilePre et BufFilePost pour le tampon
renommé et BufAdd pour l'ancien nom (qui est un nouveau tampon).
Fichiers : src/ex_cmds.c
Rustine 6.0.082
Problème : Pendant le basculement d'écran dans un xterm, quand il se produit
un message (d'erreur) dû au script vimrc, l'invite du shell est
après le message.
Solution : Envoyer un saut-de-ligne quand des caractères on été émis dans
l'autre écran.
Pareil quand l'IHM graphique est lancée.
Fichiers : src/main.c
Rustine 6.0.083
Problème : GTK+ : quand le support des menus n'est pas compilé, les boutons
dans les dialogues ne contiennent pas de texte. (Erik Edelmann)
Solution : Ajouter aussi le texte quand GTK_USE_ACCEL n'est pas définie.
Définir aussi GTK_USE_ACCEL quand les menus ne sont pas utilisés.
Fichiers : src/gui_gtk.c
Rustine 6.0.084
Problème : UTF-8 : une commande "r" avec un argument qui est le codage
clavier d'un caractère avec un caractère de composition ne peut
pas être répétée avec ".". (Raphael Finkel)
Solution : Ajouter le caractère de composition dans le tampon de
restauration.
Fichiers : src/normal.c
Rustine 6.0.085
Problème : Avec 'mousefocus' activé, l'utilisation de "s" pour aller en mode
Insertion suivie du déplacement du pointeur de la souris dans une
autre fenêtre arrête le mode Insertion, alors que cela ne se
produit pas pour "a" ou "i". (Robert Webb)
Solution : Réinitialiser finish_op avant d'appeler edit().
Fichiers : src/normal.c
Rustine 6.0.086
Problème : À l'utilisation "gu", le message dit "~ed".
Solution : Faire que le message dise "changed".
Fichiers : src/ops.c
Rustine 6.0.087 (lang)
Problème : La traduction des messages est incorrecte, ce qui peut provoquer
des plantages. (Peter Figura)
La traduction turque a besoin de davantage de travail et le
responsable n'a pas le temps de s'en occuper.
Solution : Corriger l'ordre des arguments printf. Supprimer les constructions
%2$d. Ajouter "-v" à msgfmt pour obtenir un avertissement en cas
de traduction incorrecte.
Mise à jour de quelques traductions supplémentaires.
Fichiers : src/po/Makefile, src/po/af.po, src/po/cs.po, src/po/cs.cp1250.po,
src/po/de.po, src/po/es.po, src/po/fr.po, src/po/it.po,
src/po/ja.po, src/po/ja.sjis.po, src/po/ko.po, src/po/pl.po,
src/po/sk.po, src/po/uk.po, src/po/zh_CN.UTF-8.po,
src/po/zh_CN.cp936.po, src/po/zh_CN.po, src/po/zh_TW.po
Rustine 6.0.088
Problème : "." ne fonctionne pas correctement après avoir utilisé "rx" en
mode Visuel. (Charles Campbell)
Solution : Mémoriser également le caractère de remplacement dans le tampon de
restauration.
Fichiers : src/normal.c
Rustine 6.0.089
Problème : Dans un fichier C, utiliser "==" pour aligner une ligne débutant
par "* " après une ligne avec "* -" indente trop peu d'un espace.
(Piet Delport)
Solution : Aligner avec les lignes précédentes si la chaîne indiquant un
début de caractère correspond.
Fichiers : src/misc1.c
Rustine 6.0.090
Problème : Quand une ligne enroulée ne tient pas dans une fenêtre et que
'scrolloff' est supérieur à la moitié de la hauteur de la fenêtre,
déplacer le curseur à droite ou à gauche provoque de sévères
clignotements de l'écran. (Lubomir Host)
Solution : Quand il n'y a pas assez de place pour afficher 'scrolloff' lignes
d'écran et que la fin de la ligne est proche, afficher la fin de
la ligne.
Fichiers : src/move.c
Rustine 6.0.091
Problème : Utiliser CTRL-O en mode Insertion, alors que 'virtualedit' vaut
"all" et que le curseur est après la fin-de-ligne, déplace le
curseur à gauche. (Yegappan Lakshmanan)
Solution : Laisser le curseur à la même position.
Fichiers : src/edit.c
Rustine 6.0.092
Problème : Le greffon "explorer.vim" respecte la casse des 'suffixes' sur
MS-Windows. (Mike Williams)
Solution : Respecter ou ignorer la casse selon le système d'exploitation.
Fichiers : runtime/plugin/explorer.vim
Rustine 6.0.093
Problème : Quand il n'est pas possible de charger dynamiquement la
bibliothèque Tcl, un message d'erreur est émis lors de la
fermeture d'un tampon ou d'une fenêtre. (Muraoka Taro)
Solution : Ne libérer les structures que si l'interpréteur Tcl est déjà
utilisé.
Fichiers : src/if_tcl.c
Rustine 6.0.094
Problème : Athena : lors d'un clic sur une barre de défilement horizontale,
Vim plante. (Paul Ackersviller)
Solution : Utiliser la taille du curseur au lieu du pointeur de fenêtre de la
barre de défilement (qui est NULL). (David Harrison)
Éviter aussi que le défilement aille dans le mauvais sens dans une
fenêtre étroite.
Fichiers : src/gui_athena.c
Rustine 6.0.095
Problème : Perl : effacer des lignes peut laisser le curseur au-delà de la
fin du fichier.
Solution : Vérifier la position du curseur après l'effacement d'une ligne.
(Serguei)
Fichiers : src/if_perl.xs
Rustine 6.0.096
Problème : Quand ":saveas nomfich" échoue parce que le fichier existe déjà,
le nom du fichier est tout de même changé et un prochain ":w"
écrasera le fichier. (Eric Carlier)
Solution : Ne pas changer le nom du fichier si le fichier existe déjà.
Fichiers : src/ex_cmds.c
Rustine 6.0.097
Problème : Réindenter avec CTRL-F en mode Insertion peut provoquer un
plantage avec codage multi-octets.
Solution : Éviter d'utiliser un caractère avant le début d'une ligne. (Sergey
Vlasov)
Fichiers : src/edit.c
Rustine 6.0.098
Problème : GTK+ : lors de l'utilisation de Gnome pour les boîtes de dialogue
"Search" et "Search and Replace", ces dernières ne sont pas
traduites.
Solution : Définir ENABLE_NLS avant d'inclure "gnome.h". (Eduardo Fernandez)
Fichiers : src/gui_gtk.c, src/gui_gtk_x11.c
Rustine 6.0.099
Problème : CygWin : en fonctionnement compatible Vi, les fins-de-lignes
MS-DOS pose des problèmes.
Solution : Faire de "unix,dos" la valeur par défaut pour 'fileformats' en
mode compatible Vi. (Michael Schaap)
Fichiers : src/option.h
Rustine 6.0.100
Problème : ":badd +0 test%fichier" provoque un plantage.
Solution : Se rappeler que le "+0" se termine par un octet NUL quand l'espace
pour remplacer "%" est alloué.
Fichiers : src/ex_docmd.c
Rustine 6.0.101
Problème : ":mksession" ne restaure pas l'édition d'un fichier dont le nom
contient un '#' ou un '%'. (Wolfgang Blankenburg)
Solution : Mettre une contre-oblique devant '#' et '%'.
Fichiers : src/ex_docmd.c
Rustine 6.0.102
Problème : Lors de la modification d'un repli, le curseur peut apparaître à
la moitié d'un repli fermé. (Nam SungHyun)
Solution : Fixer correctement w_cline_folded. (Yasuhiro Matsumoto)
Fichiers : src/move.c
Rustine 6.0.103
Problème : Lors de l'utilisation de 'scrollbind', une grande valeur
de 'scrolloff' provoque l'arrêt de la synchronisation du
défilement à proximité de la fin du fichier. (Coen Engelbarts)
Solution : Ne pas utiliser 'scrolloff' quand la ligne supérieure est
contrainte par la synchronisation du défilement. (Dany StAmant)
Fichiers : src/normal.c
Rustine 6.0.104
Problème : Multi-octets : quand 'cpoptions' contient "$", la saisie d'un
caractère à largeur double écrasant la partie gauche d'un autre
caractère à largeur double pose des problèmes de rafraîchissement
et interrompt le clignotements du curseur.
Solution : Effacer la partie droite de l'autre caractère. (Yasuhiro
Matsumoto)
Fichiers : src/edit.c, src/screen.c
Rustine 6.0.105
Problème : Multi-octets : dans une fenêtre d'une seule colonne de largeur,
avec la coloration syntaxique activé, un plantage peut se
produire.
Solution : Ignorer la demande d'attributs quand le caractère n'a pas la place
d'être affiché dans la fenêtre. (Yasuhiro Matsumoto)
Fichiers : src/screen.c
Rustine 6.0.106 (extra)
Problème : Win32 : quand la police de l'imprimante est mauvaise, aucun
message d'erreur n'est émis.
Solution : Émettre un message d'erreur approprié. (Yasuhiro Matsumoto)
Fichiers : src/os_mswin.c
Rustine 6.0.107 (extra)
Problème : VisVim : lors de l'édition d'un autre fichier, un fichier modifié
peut être écrit à l'improviste et sans avertissement.
Solution : Partager la fenêtre si un fichier a été modifié.
Fichiers : VisVim/Commands.cpp
Rustine 6.0.108
Problème : Avec des replis, Vim peut tenter d'afficher la ligne 0, ce qui
aboutit à une erreur de pointeur NULL.
Solution : Arrêter de décrémenter w_topline quand la première ligne de la
fenêtre est dans un repli fermé.
Fichiers : src/window.c
Rustine 6.0.109
Problème : XIM : quand la méthode de saisie est activée, la répétition d'une
insertion avec "." la désactive. (Marcel Svitalsky)
Solution : Ne pas mémoriser l'état de la méthode de saisie quand la commande
provient du tampon générique.
Fichiers : src/ui.c
Rustine 6.0.110
Problème : Faire une annulation après l'exécution de "OxjAxkdd" depuis un
registre dans un tampon vide produit un message d'erreur. (Gerhard
Hochholzer)
Solution : Ne pas ajuster le numéro de la dernière ligne d'un bloc
d'annulation en cas de nullité. Ajouter un test pour ce problème.
Fichiers : src/undo.c, src/testdir/test20.in, src/testdir/test20.ok
Rustine 6.0.111
Problème : La fonction virtcol() ne tient pas compte de 'virtualedit'.
Solution : Ajouter le décalage de colonnes si nécessaire. (Yegappan
Lakshmanan)
Fichiers : src/eval.c
Rustine 6.0.112
Problème : Le greffon "explorer.vim" ne trie pas les répertoires contenant un
espace ou un caractère spécial et situé après un répertoire avec
un nom plus court.
Solution : Ignorer l'oblique finale lors de la comparaison des noms. (Mike
Williams)
Fichiers : runtime/plugin/explorer.vim
Rustine 6.0.113
Problème : ":edit ~/nomfich" ne fonctionne pas quand $HOME contient un
espace. De même, l'expansion des jokers par le shell peut échouer.
(John Daniel)
Solution : Protéger les espaces avec des contre-obliques si nécessaire.
Fichiers : src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/os_unix.c
Rustine 6.0.114
Problème : L'utilisation de ":p" avec fnamemodify() n'étend pas "~/" ou
"~user/" en chemin complet. Avec Win32, le répertoire courant
était ajouté. (Michael Geddes)
Solution : Étendre le répertoire de l'utilisateur.
Fichiers : src/eval.c
Rustine 6.0.115 (extra)
Problème : Win32 : lors de l'utilisation d'un dialogue avec un champ de
texte, il est impossible de faire défiler le texte.
Solution : Ajouter ES_AUTOHSCROLL au style du champ de texte. (Pedro Gomes)
Fichiers : src/gui_w32.c
Rustine 6.0.116 (extra)
Problème : MS-Windows NT/2000/XP : filewritable() ne fonctionne pas
correctement pour les systèmes de fichiers utilisant les ACL.
Solution : Utiliser les fonctions ACL pour vérifier si le fichier est
inscriptible. (Mike Williams)
Fichiers : src/eval.c, src/macros.h, src/os_win32.c, src/proto/os_win32.pro
Rustine 6.0.117 (extra)
Problème : Win32 : quand le menu est désactivé, "set lines=999" n'utilise pas
toute la place disponible à l'écran.
Solution : Ne pas soustraire la taille fixe des écritures mais la hauteur
réelle du menu de l'espace disponible à l'écran. De même, éviter
la récursivité de gui_mswin_get_menu_height().
Fichiers : src/gui_w32.c, src/gui_w48.c
Rustine 6.0.118
Problème : Quand $TMPDIR est un chemin relatif, le répertoire temporaire est
incomplet (il manque l'oblique finale) et n'est pas effacé quand
Vim quitte. (Peter Holm)
Solution : Ajouter l'oblique après l'expansion du répertoire en chemin
absolu.
Fichiers : src/fileio.c
Rustine 6.0.119 (basée sur la rustine 6.0.116)
Problème : VMS : filewritable() ne fonctionne pas correctement.
Solution : Utiliser la même méthode qu'avec Unix. (Zoltan Arpadffy)
Fichiers : src/eval.c
Rustine 6.0.120
Problème : La conversion en HTML n'est pas compatible avec XHTML.
Solution : Mettre les valeurs entre doubles-apostrophes. (Jess Thrysoee)
Fichiers : runtime/syntax/2html.vim
Rustine 6.0.121 (extra) (basée sur la rustine 6.0.116)
Problème : Win32 : après la rustine 6.0.116, Vim ne compile plus avec
mingw32.
Solution : Ajouter un #ifdef HAVE_ACL.
Fichiers : src/os_win32.c
Rustine 6.0.122 (extra)
Problème : Win16 : même problèmes de redimensionnement que ceux corrigés sur
Win32 par la rustine 6.0.117. Ainsi que le problème des champs de
texte de la rustine 6.0.115.
Solution : Ne fixer old_menu_height que quand il est utilisé. Ajout du
drapeau ES_AUTOHSCROLL. (Vince Negri)
Fichiers : src/gui_w16.c
Rustine 6.0.123 (basée sur la rustine 6.0.119)
Problème : Win16 : problèmes de compilation.
Solution : Déplacer les "&&" sur des lignes distinctes. (Vince Negri)
Fichiers : src/eval.c
Rustine 6.0.124
Problème : Lors de l'utilisation d'une commande ":substitute" débutant par
"\=" (évaluée comme une expression), "~" est toujours remplacé par
la chaîne de substitution précédente.
Solution : Ignorer le remplacement quand la chaîne de substitution débute par
"\=". Ajustement de la documentation à propos du doublement des
contre-obliques.
Fichiers : src/ex_cmds.c, runtime/doc/change.txt
Rustine 6.0.125 (extra)
Problème : Win32 : lors de l'utilisation de la fonctionnalité multi_byte_ime,
un appui sur la touche Maj est considéré comme une saisie de
caractère, de fait les mappages Maj+touches ne fonctionnent pas.
(Charles Campbell)
Solution : Ignorer l'appui sur les touches Maj, Ctrl et Alt.
Fichiers : src/os_win32.c
Rustine 6.0.126
Problème : La bibliothèque Python est toujours liée statiquement.
Solution : Lier dynamiquement la bibliothèque Python. (Matthias Klose)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.0.127
Problème : Lors de l'utilisation d'un terminal basculant l'écran et que la
couleur Normal du fond est différente de celle du terminal,
l'utilisation d'une commande externe peut provoquer un changement
de couleur dans le mauvais écran. (Mark Waggoner)
Solution : Ne pas appeler screen_stop_highlight() dans stoptermcap().
Fichiers : src/term.c
Rustine 6.0.128
Problème : Lors du déplacement d'une fenêtre partagée verticalement
complètement à gauche ou à droite, les barres de défilement ne
sont pas ajustées. (Scott E Lee) Quand 'mousefocus' est activé, le
pointeur de la souris n'est pas ajusté.
Solution : Ajuster les barres de défilement et le pointeur de la souris.
Fichiers : src/window.c
Rustine 6.0.129
Problème : Lors de l'utilisation d'un nom de fichier très long, ":ls" (répété
plusieurs fois) provoque un plantage. Ajout d'un test avec "vim
`perl -e 'print "A"x1000'`". (Tejeda)
Solution : Terminer la chaîne avant de récupérer sa longueur dans
buflist_list().
Fichiers : src/buffer.c
Rustine 6.0.130
Problème : Lors de l'utilisation de ":cprev" alors que la fenêtre des erreurs
est ouverte, et que la nouvelle première ligne est enroulée, la
fenêtre n'est pas rafraîchie correctement. (Yegappan Lakshmanan)
Solution : Ne pas défiler deux fois lors du rafraîchissement de la première
ligne.
Fichiers : src/screen.c
Rustine 6.0.131
Problème : Lors de l'utilisation de bufname() et qu'il existe deux
correspondances dans les tampons listés et une dans les tampons
non listés, le tampon non listé est retenu. (Aric Blumer)
Solution : Quand il existe une correspondance dans les tampons listés, ne pas
vérifier la liste des tampons non listés.
Fichiers : src/buffer.c
Rustine 6.0.132
Problème : Quand 'iminsert' est fixé dans le vimrc et qu'un xterm avec deux
écrans est utilisé, la règle est dessinée dans le mauvais écran.
(Igor Goldenberg)
Solution : Ne dessiner la règle que lorsque le bon écran est utilisé.
Fichiers : src/option.c
Rustine 6.0.133
Problème : Lors de l'ouverture d'un autre tampon alors que 'keymap' est fixé
et 'iminsert' est nul, 'iminsert' est fixé à 1 de manière
inattendue. (Igor Goldenberg)
Solution : Ne pas fixer 'iminsert' comme effet de bord de la définition
d'un mappage ":lmap". Ne le faire que quand 'keymap' est fixé.
Fichiers : src/getchar.c, src/option.c
Rustine 6.0.134
Problème : Lors du complètement de ":set tags=", un chemin contenant des
espaces provoque l'arrêt du complètement. (Sektor van Skijlen)
Solution : Protéger les espaces avec des contre-obliques, comme avec ":set
path=". Tenir compte des contre-obliques lors de la recherche du
début du chemin à compléter (par exemple pour 'backupdir' et
'cscopeprg').
Fichiers : src/ex_docmd.c, src/ex_getln.c, src/option.c, src/structs.h
Rustine 6.0.135
Problème : Les menus censés ne rien faire utilise "<Nul>", qui produit
toujours un signal sonore d'erreur.
Quand CTRL-O est mappé en mode Insertion, les commandes ":amenu"
ne fonctionnent pas en mode Insertion.
La langue des menus retourne à l'anglais quand $LANG se termine
par "@euro".
Solution : Utiliser "<Nop>" pour les éléments de menu ne faisant rien, comme
pour les mappages.
Utiliser ":anoremenu" au lieu de ":amenu".
Ignorer "@euro" dans le nom des régions linguistiques.
Fichiers : runtime/makemenu.vim, runtime/menu.vim, src/menu.c
Rustine 6.0.136
Problème : Lors du complètement en mode Insertion, un mappage peut être
appliqué de manière inattendue.
Solution : Ne pas tenir compte des mappages pour les caractères saisis.
Fichiers : src/edit.c
Rustine 6.0.137
Problème : IHM graphique : lors de l'utilisation des dialogues Rechercher ou
Rechercher/Remplacer depuis le mode Insertion, le mode de saisie
est interrompu.
Solution : Ne pas utiliser l'état de la méthode de saisie quand la fenêtre
principale ne dispose pas du focus.
Fichiers : src/ui.c
Rustine 6.0.138
Problème : IHM graphique : lors de l'utilisation des dialogues Rechercher ou
Rechercher/Remplacer depuis le mode Insertion, le texte est inséré
quand CTRL-O est mappé. (Andre Pang)
À l'ouverture suivante, une recherche sur un mot entier n'est pas
reconnue.
Lors d'un "Remplacer tout", la recherche sur un mot entier n'est
jamais effectuée.
Solution : Ne pas mettre de commandes de recherche ou de remplacement dans le
tampon de saisie, mais les exécuter directement.
Reconnaître "\<" et "\>" après la suppression de "\V".
Ajouter "\<" et "\>" pour "Remplacer tout" également.
Fichiers : src/gui.c
Rustine 6.0.139
Problème : Quand le complètement 'wildmenu' est interrompu, la ligne d'état
de la fenêtre inférieure gauche partagée verticalement n'est pas
rafraîchie. (Yegappan Lakshmanan)
Solution : Redessiner toutes les ligne d'état.
Fichiers : src/ex_getln.c, src/proto/screen.pro, src/screen.c
Rustine 6.0.140
Problème : Fuite de la mémoire allouée pour les mappages locaux et
abréviations quand un tampon est détruit.
Solution : Effacer des mappages locaux quand un tampon est détruit.
Fichiers : src/buffer.c, src/getchar.c, src/proto/getchar.pro, src/vim.h
Rustine 6.0.141
Problème : Lors de l'utilisation de ":enew" dans un tampon vide, certaines
choses locales au tampon ne sont pas effacées. b:keymap_name n'est
pas fixé.
Solution : Effacer les commandes utilisateur et les mappages locaux du tampon
quand le tampon courant est réutilisé. Rechercher le codage
clavier.
Fichiers : src/buffer.c
Rustine 6.0.142
Problème : Quand Python est lié statiquement, le chargement des extensions
dynamiques peut échouer.
Solution : Ajouter un drapeau de liaison supplémentaire quand c'est
nécessaire. (Andrew Rodionoff)
Fichiers : src/configure.in, src/auto/configure
Rustine 6.0.143
Problème : Quand un fichier de syntaxe contient une césure dans un motif, la
syntaxe n'est pas toujours mise à jour lors d'une modification.
Solution : Ajouter l'argument "linebreaks" à ":syn sync".
Fichiers : runtime/doc/syntax.txt, src/screen.c, src/structs.h, src/syntax.c
Rustine 6.0.144
Problème : Après la rustine 6.0.088, la restauration de "veU" ne fonctionne
pas.
Solution : Ne pas ajouter "U" dans le tampon d'annulation, elle est
considérée comme une commande d'annulation.
Fichiers : src/normal.c
Rustine 6.0.145
Problème : Quand Vim est incapable de lire une seule entrée, il peut rester
bloqué. Quand stdin et stderr sont redirigées, Vim refuse de lire
des commandes depuis un fichier. (Servatius Brandt)
Solution : Quand des tentatives répétées de lire un caractère échouent,
sortir de Vim. Quand ni stdin ni stderr ne sont des terminaux,
tenter tout de même d'y lire, mais sans que l'attente soit
bloquante.
Fichiers : src/ui.c
Rustine 6.0.146
Problème : Quand 'statusline' contient "%{'-'}", le résultat est nul. (Milan
Vancura)
Solution : Ne pas tenir compte des nombres négatifs, ils ne sont pas affichés
de toute façon.
Fichiers : src/buffer.c
Rustine 6.0.147
Problème : Il n'est pas évident d'indiquer qu'une version de Vim a été
modifiée. Or la nouvelle licence le requiert.
Solution : Ajouter l'argument --modified-by à `configure` et la définition de
MODIFIED_BY. Ce dernier est utilisé dans l'écran d'accueil et dans
la sortie de la commande ":version".
Fichiers : src/auto/configure, src/configure.in, src/config.h.in,
src/feature.h, src/version.c
Rustine 6.0.148
Problème : Après un "p" dans une ligne vide, `[ amène sur le deuxième
caractère. (Kontra Gergely)
Solution : Ne pas incrémenter le numéro de colonne dans une ligne vide.
Fichiers : src/ops.c
Rustine 6.0.149
Problème : Le motif "\(.\{-}\)*" provoque un blocage. Lorsque de
l'utilisation d'un motif de recherche provoque la détection d'un
débordement de pile, Vim peut bloquer quand même.
Solution : Rapporter correctement "operand could be empty" lors de
l'utilisation de "\{-}". Tester "out_of_stack" dans les boucles
pour éviter un blocage.
Fichiers : src/regexp.c
Rustine 6.0.150
Problème : Lors de l'utilisation d'un encodage multi-octets, la rustine
6.0.148 fait que "p" se comporte comme "P". (Sung-Hyun Nam)
Solution : Calculer la longueur en octets d'un caractère multi-octets.
Fichiers : src/ops.c
Rustine 6.0.151
Problème : Le rafraîchissement de la ligne d'état et de la règle peut être
faux quand elles contiennent des caractères multi-octets.
Solution : Prendre correctement en compte la largeur et la taille en octets
des caractères. (Yasuhiro Matsumoto)
Fichiers : src/screen.c
Rustine 6.0.152
Problème : strtrans() peut bloquer sur des séquence d'octets UTF-8 invalides.
Solution : Passer par dessus les octets invalides. (Yasuhiro Matsumoto)
Fichiers : src/charset.c
Rustine 6.0.153
Problème : Lors de l'utilisation de caractères multi-octets (invalides) et de
la coloration syntaxique, Vim peut bloquer. (Yasuhiro Matsumoto)
Solution : Incrémenter le pointeur d'un caractère plutôt que d'un octet.
Fichiers : src/regexp.c
Rustine 6.0.154
Problème : MS-DOS et MS-Windows : les entrées de menu pour `xxd` ne
fonctionnent pas quand `xxd` n'existe pas dans le chemin.
Lors d'une conversion inverse depuis de l'hexadécimal, le type de
fichier "xxd" peut persister si la détection du nouveau type
échoue.
Solution : Quand `xxd` n'est pas dans le chemin, utiliser celui des
répertoires de support, où le programme d'installation est censé
le copier.
Effacer l'option 'filetype' avant de détecter la nouvelle valeur.
Fichiers : runtime/menu.vim
Rustine 6.0.155
Problème : Mac : problèmes de compilation avec "ui.c" après la rustine
6.0.145. (Axel Kielhorn)
Solution : Ne pas appeler mch_inchar() quand NO_CONSOLE est défini.
Fichiers : src/ui.c
Rustine 6.0.156
Problème : Quand Vim est démarré avec l'argument "-b" et deux fichiers,
":next" n'active pas 'binary' pour le second fichier, comme Vim
5.7. (Norman Diamond)
Solution : Fixer la valeur globale de 'binary'.
Fichiers : src/option.c
Rustine 6.0.157
Problème : Lors de définition d'une commande utilisateur avec
"-complete=dir", les fichiers sont également complétés. De même,
"-complete=mapping" ne semble pas fonctionner. (Michael Naumann)
Solution : Utiliser les drapeaux d'expansion définis par la commande
utilisateur.
Gérer de manière spécifique l'expansion des mappages.
Fichiers : src/ex_docmd.c
Rustine 6.0.158
Problème : Quand on obtient un avertissement dû à un fichier modifié à
l'extérieur de Vim et que le fichier est rechargé, l'option
'readonly' est réinitialisée, même si les permissions n'ont pas
changé. (Marcel Svitalsky)
Solution : Laisser 'readonly' activé quand le fichier est rechargé et que les
permissions sont inchangées.
Fichiers : src/fileio.c
Rustine 6.0.159
Problème : L'expansion des jokers avec ":emenu" affiche aussi les
séparateurs.
Solution : Sauter les séparateurs de menu avec ":emenu", ":popup" et
":tearoff". De même, ne pas gérer ":tmenu" comme s'il avait subi
un ":tearoff". Et ne pas tenir compte des alternatives comprenant
les "&".
Fichiers : src/menu.c
Rustine 6.0.160
Problème : Lors d'une compilation avec GCC 3.0.2 en utilisant l'argument
"-O2", l'optimisation pose des problèmes aboutissant à des
plantages dans Vim.
Solution : Ajouter un test dans `configure` pour omettre "-O2" avec cette
version de GCC.
Fichiers : src/configure.in, src/auto/configure
Rustine 6.0.161 (extra)
Problème : Win32 : impossible d'utiliser des images pour les symboles.
Solution : Rendre possible l'utilisation d'images. (Muraoka Taro)
Fichiers : src/ex_cmds.c, src/feature.h, src/gui_w32.c, src/gui_x11.c,
src/proto/gui_w32.pro, src/proto/gui_x11.pro
Rustine 6.0.162
Problème : Client-serveur : un message d'erreur à propos d'une expression
fausse apparaît dans le serveur plutôt que dans le client.
Solution : Transmettre le message d'erreur du serveur vers le client. Ajuster
aussi le code d'exemple. (Flemming Madsen)
Fichiers : src/globals.h, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro,
runtime/doc/eval.txt, runtime/tools/xcmdsrv_client.c
Rustine 6.0.163
Problème : Lors de l'utilisation d'un dialogue avec l'IHM graphique, un nom
de fichier est parfois utilisé comme s'il était un répertoire.
Solution : Séparer correctement les fichiers des chemins.
Pour GTK+, Motif et Athena, concaténer le répertoire et le nom du
fichier pour la sélection par défaut.
Fichiers : src/diff.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/message.c
Rustine 6.0.164
Problème : Après la rustine 6.0.135, les entrées de menu pour le collage ne
fonctionnent plus en modes Insertion et Visuel. (Muraoka Taro)
Solution : Ajouter <script> pour autoriser les mappages locaux aux scripts.
Fichiers : runtime/menu.vim
Rustine 6.0.165
Problème : L'utilisation de --remote avec des exécutions locales donnent
inévitablement des messages d'erreur.
Solution : Ajouter --remote-silent et --remote-wait-silent pour exécuter
localement en silence.
Avec Win32, aucun message d'erreur n'était émis quand le serveur
n'existait pas.
Fichiers : src/eval.c, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro
Rustine 6.0.166
Problème : IHM graphique : il n'existe aucun moyen d'empêcher les dialogues
de surgir.
Solution : Ajouter le drapeau 'c' à 'guioptions' : utiliser les dialogues
textuels. (Yegappan Lakshmanan)
Fichiers : runtime/doc/options.txt, src/option.h, src/message.c
Rustine 6.0.167
Problème : Quand 'fileencodings' vaut "latin2", certains caractères sont mal
affichés dans les fichiers de l'aide.
Solution : Forcer 'fileencoding' à "latin1" pour les fichiers de l'aide.
Fichiers : src/fileio.c
Rustine 6.0.168
Problème : ":%s/\n/#/" ne remplace rien dans une ligne vide. (Bruce DeVisser)
Solution : Ne pas sauter de correspondances après la fusion de deux lignes.
Fichiers : src/ex_cmds.c
Rustine 6.0.169
Problème : Quand Vim est invoqué avec "evim" et que l'IHM graphique ne peut
pas démarrer, il reste bloqué dans un terminal sans menus en mode
Insertion.
Solution : Sortir quand l'IHM graphique ne peut pas être démarrée et que Vim
a été invoqué avec "evim" ou "gvim -y".
Fichiers : src/main.c
Rustine 6.0.170
Problème : Lors de l'impression de caractères à largeur double, la taille des
tabulations qui les suivent est fausse. (Muraoka Taro)
Solution : Calculer correctement la colonne après un caractère à largeur
double.
Fichiers : src/ex_cmds2.c
Rustine 6.0.171
Problème : Quand 'keymodel' contient "startsel", en mode Insertion après la
fin d'une ligne, Maj-FlecheGauche ne déplace pas le curseur.
(Steve Hall)
Solution : CTRL-O ne déplace pas le curseur vers la gauche, il est nécessaire
le faire explicitement.
Fichiers : src/edit.c
Rustine 6.0.172
Problème : CTRL-Q ne remplace pas CTRL-V après CTRL-X en mode Insertion,
alors qu'il le fait dans la plupart des autres situations.
Solution : Faire que CTRL-X CTRL-Q fonctionne comme CTRL-X CTRL-V en mode
Insertion.
Fichiers : src/edit.c
Rustine 6.0.173
Problème : Lors de l'utilisation de "P" pour insérer un saut-de-ligne, le
curseur reste au-delà de la fin de la ligne.
Solution : Vérifier que le curseur n'est pas au-delà de la fin de la ligne.
Fichiers : src/ops.c
Rustine 6.0.174
Problème : Après avoir utilisé "gd" ou "gD", la direction de recherche pour
"n" peut encore être vers l'arrière. (Servatius Brandt)
Solution : Réinitialiser la direction de recherche vers l'avant.
Fichiers : src/normal.c, src/search.c, src/proto/search.pro
Rustine 6.0.175
Problème : ":help /\z(\)" ne fonctionne pas. (Thomas Koehler)
Solution : Doubler les contre-obliques.
Fichiers : src/ex_cmds.c
Rustine 6.0.176
Problème : Lors de la réception d'un signal mortel, les autocommandes sont
tout de même déclenchées, comme si rien ne s'était produit.
Solution : Ajouter la variable "v:dying" pour permettre aux autocommandes de
fonctionner différemment quand un signal mortel a été intercepté.
Fichiers : src/eval.c, src/os_unix.c, src/vim.h
Rustine 6.0.177
Problème : Quand 'commentstring' est vide et que 'foldmethod' vaut "marker",
"zf" ne fonctionne pas. (Thomas S. Urban)
Solution : Ajouter le marqueur même quand 'commentstring' est vide.
Fichiers : src/fold.c, src/normal.c
Rustine 6.0.178
Problème : Mémoire non initialisée lue dans un champ xp_backslash.
Solution : Initialiser convenablement le champ xp_backslash.
Fichiers : src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/tag.c
Rustine 6.0.179
Problème : Win32 : lors de l'affichage de caractères UTF-8, de la mémoire non
initialisée peut être lue.
Solution : Ajouter utfc_ptr2len_check_len() pour éviter de lire au-delà de la
fin de la ligne.
Fichiers : src/mbyte.c, src/proto/mbyte.pro, src/gui_w32.c
Rustine 6.0.180
Problème : L'expansion des variables d'environnement dans une chaîne se
terminant par une oblique peut aller au-delà de la fin de la
chaîne.
Solution : Détecter l'oblique finale.
Fichiers : src/misc1.c
Rustine 6.0.181
Problème : Fuite de mémoire lors d'un ":cd dir".
Solution : Libérer la mémoire allouée. Aussi éviter de lire de la mémoire non
initialisée.
Fichiers : src/misc2.c
Rustine 6.0.182
Problème : Lors de l'utilisation d'une exprat sur des caractères
multi-octets, Vim peut tenter de lire un caractère avant le début
de la ligne.
Solution : Ne pas pointer avant le début de la ligne.
Fichiers : src/regexp.c
Rustine 6.0.183
Problème : Fuite de mémoire quand ":func!" redéfinit une fonction.
Solution : Libérer le nom de la fonction quand il n'est pas utilisé.
Fichiers : src/eval.c
Rustine 6.0.184
Problème : Fuite de mémoire lors de l'expansion des valeurs des options.
Solution : Ne pas toujours copier l'option étendue dans la mémoire allouée.
Fichiers : src/option.c
Rustine 6.0.185
Problème : Plantage de Vim lors du collage d'une sélection dans une autre
application, sur des machines 64 bits.
Solution : Corriger le format d'un Atom à 32 bits. (Peter Derr)
Fichiers : src/ui.c
Rustine 6.0.186
Problème : X11 : trois avertissements à la compilation du code
client-serveur.
Solution : Ajouter un transtypage vers unsigned char.
Fichiers : src/if_xcmdsrv.c
Rustine 6.0.187
Problème : "I" en mode Visuel puis "u" rapporte trop de modifications.
(Andrew Stryker)
"I" en mode Visuel par lignes ajuste l'indention sans raison
apparente.
Solution : Ne mémoriser que les lignes modifiées pour l'annulation.
Ne pas modifier l'indentation après l'insertion en mode Visuel par
lignes.
Fichiers : src/ops.c
Rustine 6.0.188
Problème : Win32 : après la rustine 6.0.161, les symboles définis dans le
fichier vimrc ne fonctionnent plus.
Solution : Initialiser les icônes des symboles après l'initialisation de
l'IHM graphique. (Vince Negri)
Fichiers : src/gui.c, src/gui_x11.c
Rustine 6.0.189
Problème : La taille de la zone Visuel n'est pas toujours affichée lors du
défilement ('ruler' désactivé et 'showcmd' activé). Idem à
l'utilisation d'une commande de recherche. (Sylvain Hitier)
Solution : Rafficher la taille de la sélection après l'affichage du mode.
Fichiers : src/screen.c
Rustine 6.0.190
Problème : IHM graphique : quand 'mouse' est vide, un clic avec le bouton du
milieu déplace encore le curseur.
Solution : Coller à l'emplacement du curseur plutôt qu'à celui du pointeur de
la souris.
Fichiers : src/normal.c
Rustine 6.0.191
Problème : Quand aucun serveur n'est disponible, serverlist() retourne une
erreur au lieu d'une chaîne vide. (Hari Krishna)
Solution : Ne pas émettre de message d'erreur.
Fichiers : src/eval.c
Rustine 6.0.192
Problème : Avec 'virtualedit' activé, "ylj" va dans la mauvaise colonne.
(Andrew Nikitin)
Solution : Réinitialiser le drapeau indiquant que w_virtcol est valide quand
le curseur est déplacé au début de la zone traitée.
Fichiers : src/normal.c
Rustine 6.0.193
Problème : Avec 'virtualedit' activé, col(".") après la fin de la ligne
devrait retourner une valeur augmentée d'une unité.
Solution : Ajouter un à la colonne.
Fichiers : src/eval.c
Rustine 6.0.194
Problème : "--remote-silent" tente d'envoyer une réponse au client, comme
avec "--remote-wait".
Solution : Vérifier convenablement l'argument.
Fichiers : src/main.c
Rustine 6.0.195
Problème : Quand 'virtualedit' est activé et qu'une recherche débute dans
l'espace virtuel, ":call search('x')" ne va pas à la bonne
position. (Eric Long)
Solution : Réinitialiser coladd quand une correspondance est trouvée.
Fichiers : src/search.c
Rustine 6.0.196
Problème : Avec 'virtualedit' activé et 'selection' valant "exclusive", lors
de la sélection Visuel d'une partie d'une tabulation au début de
la ligne, "x" la fusionne avec la ligne précédente. De même, quand
la sélection couvre plusieurs lignes, la tabulation entière est
effacée.
Solution : Tenir compte de coladd lors de l'ajustement selon 'selection'
valant "exclusive". De même, convertir les tabulations en espaces
quand plusieurs lignes sont effacées.
Fichiers : src/normal.c, src/ops.c
Rustine 6.0.197
Problème : Avec 'virtualedit' activé et 'selection' valant "exclusive", "v$x"
n'efface pas le dernier caractère de la ligne. (Eric Long)
Solution : Ne pas réinitialiser le drapeau inclusive. (Helmut Stiegler)
Fichiers : src/normal.c
Rustine 6.0.198
Problème : Avec 'virtualedit' activé et 'showbreak' non vide, le déplacement
du curseur sur un saut-de-ligne ne fonctionne pas correctement.
(Eric Long)
Solution : Utilser getviscol() et getviscol2() dans getvvcol() pour obtenir
la position virtuelle du curseur. Ajuster coladvance() et
oneleft() pour passer par dessus les caractères de 'showbreak'.
Fichiers : src/edit.c, src/misc2.c
Rustine 6.0.199
Problème : Multi-octets : iconv() peut être appelé après l'appel à
iconv_end(). (Yasuhiro Matsumoto)
Solution : Arrêter de convertir l'entrée et la sortie après l'appel à
iconv_end().
Fichiers : src/mbyte.c
Rustine 6.0.200
Problème : Un script commençant par "#!perl" n'est pas identifié comme un
type de fichier Perl.
Solution : Ignorer un chemin manquant dans l'en-tête du script. De même,
accélération des scripts de reconaissance en simplifiant les
motifs utilisés.
Fichiers : runtime/scripts.vim
Rustine 6.0.201
Problème : Quand les défilements sont synchronisés et qu'un long saut a lieu,
changer de fenêtre saute à une autre position dans le fichier. En
cas de défilement faible en revanche pas de problème. (Johannes
Zellner)
Solution : Réinitialiser le drapeau indiquant que w_botline est valide quand
w_topline est fixé.
Fichiers : src/diff.c
Rustine 6.0.202
Problème : L'argument "icon=" de la commande de menu, permettant de définir
une icône pour la barre d'outils, ne fonctionne pas avec GTK+.
(Christian J. Robinson)
Avec Motif et Athena, un chemin complet est nécessaire.
Solution : Rechercher le fichier icône dans le chamin spécifié. Étendre les
variables d'environnement dans le nom de fichier.
Fichiers : src/gui_gtk.c, src/gui_x11.c
Rustine 6.0.203
Problème : Il est possible de modifier 'fileformat' quand 'modifiable' est
désactivé. (Servatius Brandt)
Solution : Corriger la vérification du type de commande ":set".
Fichiers : src/option.c
Rustine 6.0.204
Problème : ":unlet" ne fonctionne pas pour des variables avec des accolades.
(Thomas Scott Urban)
Solution : Prendre correctement en compte les noms de variables avec des
accolades. (Vince Negri)
Fichiers : src/eval.c
Rustine 6.0.205 (extra)
Problème : "gvim -f" forke encore quand le fichier batch est utilisé pour
lancer Vim.
Solution : Ajouter un argument à "start" pour utiliser une session au premier
plan. (Michael Geddes)
Fichiers : src/dosinst.c
Rustine 6.0.206
Problème : Unix : si l'expansion d'un joker dans un nom de fichier aboutit à
la présence d'un caractère joker et qu'il existe d'autres endroits
dans le chemin avec des jokers, le nom de fichier subit une
nouvelle expansion.
MS-Windows : ":edit \[abc]" ne permet pas d'éditer le fichier
"[abc]".
Solution : Ne pas étendre les jokers dans les parties déjà étendues.
Ne pas supprimer les contre-obliques utilisées pour protéger la
signification spéciale des jokers.
Il est possible d'éditer "[abc]" si '[' est retiré de 'isfname'.
Fichiers : src/misc1.c, src/os_unix.c
Rustine 6.0.207 (extra)
Problème : Win32 : les raccourcis et les entrées du menu Démarrer font
démarrer Vim dans le répertoire du Bureau, ce qui n'est pas très
utile.
Solution : Demander aux raccourcis de démarrer Vim dans $HOME ou
$HOMEDIR$HOMEPATH.
Fichiers : src/dosinst.c
Rustine 6.0.208
Problème : IHM graphique : lors de l'utilisation d'un codage clavier et que
le curseur ne clignote pas, CTRL-^ en mode Insertion ne change pas
directement la couleur du curseur. (Alex Solow)
Solution : Forcer le redessinement du curseur après CTRL-^.
Fichiers : src/edit.c
Rustine 6.0.209
Problème : IHM graphique GTK+ : après avoir sélectionné 'guifont' dans le
sélecteur de polices, le rafraîchissement des caractères
multi-octets rencontre des problèmes.
Solution : Séparer le sélecteur de polices de l'affectation du nom de la
nouvelle police pour éviter que "*" ne soit utilisé pour trouver
les polices larges et grasses.
Lors du rafraîchissement de caractères supplémentaires avec
l'astuce pour le gras, tenir compte des caractères UTF-8.
Fichiers : src/gui.c, src/gui_gtk_x11.c, src/option.c, src/proto/gui.pro,
src/proto/gui_gtk_x11.pro
Rustine 6.0.210
Problème : Après la rustine 6.0.167, il n'est plus possible d'éditer un
fichier d'aide dans un autre codage que latin1.
Solution : Permettre à l'argument "++enc=" de prendre le pas sur le codage.
Fichiers : src/fileio.c
Rustine 6.0.211
Problème : Quand la lecture d'un fichier échoue, le tampon est vide, mais il
peut être encore possible de l'écrire ensuite avec ":w". Le
fichier original est alors perdu. (Steve Amerige)
Solution : Activer l'option 'readonly' pour le tampon.
Fichiers : src/fileio.c
Rustine 6.0.212
Problème : IHM GTK+ : confirm("plop", "") provoque un plantage.
Solution : Ne pas faire d'un bouton non existant le bouton par défaut.
Ajouter un bouton "OK" si aucun bouton n'a été spécifié.
Fichiers : src/eval.c, src/gui_gtk.c
Rustine 6.0.213
Problème : Quand un nom de fichier contient des caractères non imprimables,
les commandes comme CTRL-G ne fonctionne pas bien.
Solution : Convertir les caractères non imprimables en caractères
imprimables. (Yasuhiro Matsumoto)
Fichiers : src/buffer.c, src/charset.c
Rustine 6.0.214
Problème : Quand il existe un tampon sans nom, une entrée vide apparaît dans
la liste des sauts enregistrée dans le fichier viminfo.
Solution : Ne pas écrire d'entrée sans nom de fichier dans la liste des
sauts.
Fichiers : src/mark.c
Rustine 6.0.215
Problème : Après l'utilisation de "/" en mode Visuel, l'entrée Coller du menu
et de la barre d'outils ne fonctionnent pas. Le collage avec le
bouton du milieu de la souris et la sélection amodale ne
fonctionnent pas.
Solution : Utiliser les menus du mode Ligne-de-commande et gérer la souris
comme dans la ligne de commande.
Fichiers : src/gui.c, src/menu.c, src/ui.c
Rustine 6.0.216
Problème : Après le rechargement d'un fichier affiché dans une fenêtre autre
que la fenêtre courante et qui a été modifié en dehors de Vim, la
partie du fichier aux alentours du curseur placé par les
autocommandes peut être affichée, mais un retour dans la fenêtre
rend au curseur sa position originelle.
Solution : Restaurer la ligne supérieure de la fenêtre.
Fichiers : src/fileio.c
Rustine 6.0.217
Problème : Lors de l'obtention d'une aide depuis un fichier d'aide qui a déjà
été utilisé auparavant, un tampon vide non listé persiste dans la
liste des tampons. (Eric Long)
Solution : Détruire le tampon utilisé comme départ du saut vers le marqueur.
Fichiers : src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro
Rustine 6.0.218
Problème : Avec le greffon "explorer.vim" : "vim -o nomfich nomrep" ne charge
pas la fenêtre d'explorateur jusqu'à ce que le curseur entre dans
la fenêtre.
Solution : Appeler s:EditDir() pour chaque fenêtre après le démarrage.
Fichiers : runtime/plugin/explorer.vim
Rustine 6.0.219
Problème : ":setlocal" et ":setglobal", sans arguments, affichent les options
de terminal. (Zdenek Sekera)
Solution : Ignorer les options de terminal pour ces deux commandes.
Fichiers : src/option.c
Rustine 6.0.220
Problème : Après la rustine 6.0.218, un signal sonore est produit au
démarrage. (Muraoka Taro)
Solution : Ne pas tenter d'aller dans une fenêtre tant qu'il n'en existe pas.
Fichiers : runtime/plugin/explorer.vim
Rustine 6.0.221
Problème : Lors de l'utilisation de ":bdel" et que tous les autres tampons
sont déchargés, Vim saute au tampon ayant le numéro le plus faible
plutôt qu'au tampon le plus récent. (Dave Cecil)
Solution : Préférer un tampon déchargé de la liste des sauts.
Fichiers : src/buffer.c
Rustine 6.0.222
Problème : Lorsque 'virtualedit' est activé et que l'autoindentation est
utilisé, appuyer sur Echap après avoir commencé une nouvelle
ligne laisse au-delà de l'autoindentation. (Helmut Stiegler)
Solution : Après avoir effacé le dernier caractère de la ligne, ajuster la
position du curseur dans del_bytes().
Fichiers : src/misc1.c, src/ops.c
Rustine 6.0.223
Problème : Quand une fenêtre contenant un explorateur est partagée, taper CR
sur un nom de fichier provoque l'émission d'un message d'erreur.
Solution : Fixer les variables de la fenêtre après le partage.
Fichiers : runtime/plugin/explorer.vim
Rustine 6.0.224
Problème : Quand 'sidescroll' et 'sidescrolloff' sont fixés dans une fenêtre
étroite, le texte peut sauter de droite à gauche et inversement et
le curseur est affiché à la mauvaise position. (Aric Blumer)
Solution : Quand il n'y a pas assez de place, calculer la colonne de gauche
de la fenêtre pour placer le curseur au milieu.
Fichiers : src/move.c
Rustine 6.0.225
Problème : En mode Visuel, "gk" reste bloqué sur un repli fermé. (Srinath
Avadhanula)
Solution : Se comporter différemment sur un repli fermé.
Fichiers : src/normal.c
Rustine 6.0.226
Problème : Lors d'un ":recover fichier", l'invite ATTENTION est affichée.
Après avoir récupéré cinq fois le même fichier, Vim retourne une
erreur de lecture ou plante. (Alex Davis)
Solution : Positionner le drapeau recoverymode avant de fixer le nom de
fichier.
Corriger la quantité de mémoire utilisée pour la taille du bloc
zéro.
Fichiers : src/ex_docmd.c
Rustine 6.0.227 (extra)
Problème : Le portage RISC OS connaît plusieurs problèmes.
Solution : Mettre à jour le Makefile et corriger certains de ces problèmes.
(Andy Wingate)
Fichiers : src/Make_ro.mak, src/os_riscos.c, src/os_riscos.h,
src/proto/os_riscos.pro, src/search.c
Rustine 6.0.228
Problème : Après un collage de texte en mode Visuel, la marque '] n'est pas
positionnée à la fin du texte collé.
L'annulation ne fonctionne pas correctement lors du collage d'un
mot dans une sélection Visuel s'étalant sur plusieurs lignes.
Solution : Ajuster la marque '] lors de l'effacement de texte sélectionné
Visuellement.
Baliser correctement le code dépendant de FEAT_VISUAL avec des
#ifdef.
Corriger également le problème de "d" pour plusieurs lignes, qui
place '[ juste avant le texte effacé.
Corriger l'annulation en mémorisant toutes les lignes effacées en
une seule fois.
Fichiers : src/ex_docmd.c, src/globals.h, src/normal.c, src/ops.c,
src/structs.h, src/vim.h
Rustine 6.0.229
Problème : Multi-octets : avec 'formatoptions' contenant 'm', le mise en
forme n'insère pas de coupure entre un caractère multi-octets et
un caractère ASCII, et inversement. (Muraoka Taro)
Lors de la fusion de lignes, un espace est inséré entre des
caractères multi-octets, alors que ce n'est pas toujours souhaité.
Solution : Vérifier la présence d'un caractère multi-octets avant et après le
point de coupure.
Ne pas insérer d'espace avant ou après un caractère multi-octets
lors de la fusion de lignes quand 'formatoptions' contient 'M'. Ne
pas insérer d'espace entre deux caractères multi-octets quand
'formatoptions' contient 'B'.
Fichiers : src/edit.c, src/ops.c, src/option.h
Rustine 6.0.230
Problème : Le ":" utilisé comme mouvement après un opérateur est exclusif,
alors qu'il devrait parfois être inclusif.
Solution : Permettre au "v" entre un opérateur et son mouvement de basculer
entre inclusif et exclusif. (Servatius Brandt)
Fichiers : runtime/doc/motion.txt, src/normal.c
Rustine 6.0.231
Problème : "gd" et "gD" ne fonctionnent pas quand les variables correspondent
dans un commentaire juste au-dessus de l'occurrence souhaitée.
(Servatius Brandt)
Solution : Poursuivre la recherche dans la première colonne sous le
commentaire.
Fichiers : src/normal.c
Rustine 6.0.232
Problème : "vim --version" affiche dans stderr alors que "vim --help" affiche
dans stdout.
Solution : Modifier "vim --version" pour utiliser stdout.
Fichiers : runtime/doc/starting.txt, src/globals.h, src/main.c, src/message.c
Rustine 6.0.233
Problème : "\1\{,8}" dans une exprat n'est pas autorisé, alors que cela
devrait fonctionner car une limite supérieure est spéficiée. (Jim
Battle)
Solution : Permettre l'utilisation de "\{min,max}" après un atome pouvant
être vide si une limite supérieure existe.
Fichiers : src/regexp.c
Rustine 6.0.234
Problème : Il n'est pas facile de positionner le curseur sans modifier les
marques.
Solution : Ajouter la fonction cursor(). (Yegappan Lakshmanan)
Fichiers : runtime/doc/eval.txt, src/eval.c
Rustine 6.0.235
Problème : Lors de l'écriture d'un fichier et du renommage du fichier
original pour faire une sauvegarde, les permissions peuvent être
modifiées lors de l'affectation du propriétaire.
Solution : Ne fixer le propriétaire que si c'est nécessaire et fixer les
permissions à nouveau après.
Quand 'backupcopy' vaut "auto", vérifier que le propriétaire et
les permissions du nouveau fichier peuvent être fixés
correctement.
Fichiers : src/fileio.c
Rustine 6.0.236
Problème : ":edit" sans argument devrait déplacer le curseur dans la première
ligne en mode compatible Vi.
Solution : Ajouter le drapeau 'g' à 'cpoptions'.
Fichiers : runtime/doc/options.txt, src/ex_docmd.c, src/option.h
Rustine 6.0.237
Problème : Dans un fichier C, quand le greffon de type de fichier est
utilisé, la réindentation d'un commentaire avec deux espaces après
le "*" central n'est pas correctement alignée.
Solution : Ne pas utiliser la partie centrale du format de commentaire pour
aligner avec le début du commentaire quand la partie du début ne
correspond pas avec le début du commentaire en cours.
Fichiers : src/misc1.c
Rustine 6.0.238
Problème : L'utilisation d'une commande ":subsitute" avec un appel à
substitute() dans l'expression de substitution provoque des
erreurs. (Srinath Avadhanula)
Solution : Mémoriser puis restaurer les pointeurs quand une substitution est
opérée récursivement.
Fichiers : src/regexp.c
Rustine 6.0.239
Problème : Lors de l'utilisation de "A" pour ajouter à la fin d'un bloc
Visuel allant au-delà de la fin de la ligne, des espaces sont
insérés dans la mauvaisse lignes et d'autres effets inattendus se
produisent. (Michael Naumann)
Solution : Ne pas avancer le curseur à la ligne suivante.
Fichiers : src/ops.c
Rustine 6.0.240
Problème : Win32 : la compilation avec Python 2.2 ne fonctionne pas.
Solution : Ajouter le support de Python 2.2 avec une liaison dynamique. (Paul
Moore)
Fichiers : src/if_python.c
Rustine 6.0.241
Problème : Win32 : lors de l'expansion de l'ancienne valeur d'une option
contenant un chemin qui commence par une contre-oblique, une
contre-oblique supplémentaire est insérée.
Solution : N'insérer une contre-oblique que si c'est nécessaire.
Prendre correctement en compte les caractères multi-octets lors de
la suppression des contre-obliques.
Fichiers : src/option.c
Rustine 6.0.242
Problème : IHM graphique : sur les systèmes avec un serveur X Exceed,
l'erreur "Bad Window" survient parfois. (Tommi Maekitalo)
Solution : Lors du fork, utiliser un tube dans le père pour attendre que le
fils ait appelé setsid().
Fichiers : src/gui.c
Rustine 6.0.243
Problème : Unix : "vim --version" transmet un NL avant la dernière ligne
plutôt qu'après. (Charles Campbell)
Solution : Envoyer le NL dans le même flux de sortie que le texte.
Fichiers : src/message.c, src/os_unix.c, src/proto/message.pro
Rustine 6.0.244
Problème : Multi-octets : problèmes avec les caractères UTF-8 (invalides)
dans les menus et les noms de fichiers (par exemple, texte des
icônes, ligne d'état).
Solution : Prendre correctement en compte les caractères non imprimables.
Intercepter les caractères UTF-8 invalides et les remplacer par
<xx>. La troncature de la ligne d'état sur un caractères
multi-octets n'était pas effectuée correctement. (Yasuhiro
Matsumoto)
Ajout de correct_cmdspos() et transchar_byte().
Fichiers : src/buffer.c, src/charset.c, src/ex_getln.c, src/gui.c,
src/message.c, src/screen.c, src/vim.h
Rustine 6.0.245
Problème : Après l'utilisation d'un jeu de couleurs, fixer l'option
'background' peut ne pas fonctionner. (Peter Horst)
Solution : Désactiver le jeu de couleurs s'il rebascule 'background' dans une
mauvaise valeur.
Fichiers : src/option.c
Rustine 6.0.246
Problème : ":echomsg" n'utilise pas la surbrillance définie par ":echohl".
(Gary Holloway)
Solution : Utiliser les attributs spécifiés pour le message. (Yegappan
Lakshmanan)
Fichiers : src/eval.c
Rustine 6.0.247
Problème : IHM GTK+ : impossible d'utiliser gvim dans un composant kpart. XXX
Solution : Ajouter l'argument "--echo-wid" pour permettre à Vim de retourner
l'ID de la fenêtre sur la sortie standard. (Philippe Fremy)
Fichiers : runtime/doc/starting.txt, src/globals.h, src/gui_gtk_x11.c,
src/main.c
Rustine 6.0.248
Problème : Lors de l'utilisation de fichiers d'aides compressés et que
'encoding' est différent de "latin1", Vim convertit les fichiers
d'aide avant de les décompresser. (David Reviejo)
Solution : Ne pas convertir un fichier d'aide quand 'binary' est activé.
Fichiers : src/fileio.c
Rustine 6.0.249
Problème : "vim -t edit -c 'sta ex_help'" ne place le curseur sur edit().
Solution : Ne pas placer le curseur sur la première ligne avec les arguments
"-c" quand un argument "-t" est également spécifié.
Fichiers : src/main.c
Rustine 6.0.250 (extra)
Problème : Macintosh : divers problèmes de compilation.
Solution : Diverses corrections, essentiellement des #ifdef. (Dany St. Amant)
Fichiers : src/gui_mac.c, src/main.c, src/misc2.c, src/os_mac.h,
src/os_mac.pbproj/project.pbxproj, src/os_unix.c
Rustine 6.0.251 (extra)
Problème : Macintosh : les raccourcis des menus ne sont pas très clairs.
Solution : Afficher les raccourcis avec le symbole trèfle du Mac. (raindog)
Fichiers : src/gui_mac.c
Rustine 6.0.252
Problème : Quand une fonction utilisateur a été définie avec "abort", une
erreur qui se produit hors d'un if/endif ou d'un while/endwhile
ne provoque pas l'abandon de la fonction. (Servatius Brandt)
Solution : Ne pas réinitialiser did_emsg quand la fonction est sur le point
d'être abandonnée.
Fichiers : src/ex_docmd.c
Rustine 6.0.253
Problème : Avec 'insertmode' activé, après "<C-O>:edit fichier", le <C-O>
suivant ne fonctionne pas. (Benji Fisher) Pareil pour <C-L>.
Solution : Réinitialiser need_start_insertmode une fois dans edit().
Fichiers : src/edit.c
Rustine 6.0.254 (extra)
Problème : Borland C++ 5.5 : la vérification du débordement de pile ne
fonctionne pas correctement. C'est important lors de l'utilisation
d'une exprat complexe.
Solution : Supprimer -N- de "Make_bc5.mak". (Yasuhiro Matsumoto)
Fichiers : src/Make_bc5.mak
Rustine 6.0.255 (extra) (basée sur les rustines 6.0.116 et 6.0.121)
Problème : Win32 : le support des ACL ne fonctionne pas bien sur les disques
Samba.
Solution : Ajouter une vérification pour le support des ACL. (Mike Williams)
Fichiers : src/os_win32.c
Rustine 6.0.256 (extra)
Problème : Win32 : ":highlight Comment guifg=asdf" ne donne pas de message
d'erreur. (Randall W. Morris) Pareil pour les autres systèmes.
Solution : Ajouter gui_get_color() pour donner un message d'erreur pour tous
les systèmes.
Fichiers : src/gui.c, src/gui_amiga.c, src/gui_athena.c, src/gui_motif.c,
src/gui_riscos.c, src/gui_x11.c, src/gui_gtk_x11.c,
src/proto/gui.pro, src/syntax.c
Rustine 6.0.257
Problème : Win32 : quand 'mousefocus' est activé et qu'une autocommande
BufRead est activée après que le dialogue indiquant que les
permissions ont été modifiées en dehors de Vim, 'mousefocus' cesse
de fonctionner. (Robert Webb)
Solution : Réinitialiser need_mouse_correct après la vérification de
l'horodatage.
Fichiers : src/fileio.c
Rustine 6.0.258
Problème : Quand 'scrolloff' vaut 999 et que des replis existent, des sauts
vers le haut ou le bas peuvent survenir quand le curseur est
déplacé à proximité de la fin du fichier. (Lubomir Host)
Solution : Quand le curseur est placé à la moitié de la fenêtre, commencer le
comptage des lignes à la fin d'un repli.
Fichiers : src/move.c
Rustine 6.0.259
Problème : MS-DOS : après l'édition de la ligne de commande, la forme du
curseur peut rester comme celle du mode Insertion. (Volker Kiefel)
Solution : Réinitialiser la forme du curseur après l'édition de la ligne de
commande.
Fichiers : src/ex_getln.c
Rustine 6.0.260
Problème : IHM graphique : plantage possible lors du démarrage, quand un
message d'erreur à propos d'une couleur manquante est émis.
(Servatius Brandt)
Solution : Ne pas appeler gui_write() quand Vim est encore en cours
démarrage. Ne pas donner de message d'erreur pour un nom de
couleur vide. Ne pas utiliser 't_vb' tant que l'IHM graphique n'a
pas terminé son démarrage.
Fichiers : src/fileio.c, src/gui.c, src/misc1.c, src/ui.c
Rustine 6.0.261
Problème : nr2char() et char2nr() ne fonctionnent pas avec les caractères
multi-octets.
Solution : Utiliser 'encoding' pour ces fonctions. (Yasuhiro Matsumoto)
Fichiers : runtime/doc/eval.txt, src/eval.c
Rustine 6.0.262 (extra)
Problème : Win32 : l'IME ne fonctionne pas correctement. OnImeComposition()
n'est pas du tout utilisé.
Solution : Ajuster diverses choses pour l'IME.
Fichiers : src/globals.h, src/gui_w32.c, src/mbyte.c, src/proto/ui.pro,
src/structs.h, src/ui.c
Rustine 6.0.263
Problème : GTK+ : quand un dialogue est fermé par le gestionnaire de
fenêtres, Vim bloque. (Christian J. Robinson)
Solution : Utiliser GTK_WIDGET_DRAWABLE() au lieu de GTK_WIDGET_VISIBLE().
Fichiers : src/gui_gtk.c, src/gui_gtk_x11.c
Rustine 6.0.264
Problème : La quantité de mémoire virtuelle est utilisée pour initialiser
'maxmemtot', alors qu'elle peut être beaucoup plus importante que
la quantité de mémoire physique, ce qui peut entrainer un swapping
important.
Solution : Récupérer la quantité de mémoire physique avec sysctl(), sysconf()
ou sysinfo() quand c'est possible.
Fichiers : src/auto/configure, src/configure.in, src/config.h.in,
src/os_unix.c, src/os_unix.h
Rustine 6.0.265
Problème : Win32 : l'utilisation de contre-obliques alors que 'fkmap' est
activé provoque un plantage. (Jamshid Oasjmoha)
Solution : Ne pas tenter de mapper les touches spéciales.
Fichiers : src/farsi.c
Rustine 6.0.266
Problème : La fonction rename() efface le fichier si l'ancien et le nouveau
nom sont identiques. (Volker Kiefel)
Solution : Ne rien faire si les noms sont identiques.
Fichiers : src/fileio.c
Rustine 6.0.267
Problème : UTF-8 : bien que 'isprint' affirme qu'un caractère est imprimable,
utf_char2cells() considère toujours qu'il ne l'est pas.
Solution : Utiliser vim_isprintc() pour les caractères inférieur à 0x100.
(Yasuhiro Matsumoto)
Fichiers : src/mbyte.c
Rustine 6.0.268 (extra) (basée sur la rustine 6.0.255)
Problème : Win32 : la vérification pour les ACL plante quand des obliques
normales sont utilisées pour les noms de fichiers.
Solution : Améliorer la vérification du chemin dans le nom du fichier.
Fichiers : src/os_win32.c
Rustine 6.0.269
Problème : Des caractères non imprimables dans un nom de fichier peuvent
poser des problèmes quand ils sont utilisés dans l'option
'statusline' ou quand 'buftype' vaut "nofile".
Solution : Appeler trans_characters() pour la ligne d'état obtenue. (Yasuhiro
Matsumoto)
Fichiers : src/buffer.c, src/screen.c, src/charset.c
Rustine 6.0.270 (basée sur la rustine 6.0.267)
Problème : Une tabulation provoquait l'affichage de texte UTF-8 au mauvais
endroit. (Ron Aaron)
Solution : Corriger à nouveau utf_char2cells().
Fichiers : src/mbyte.c
Rustine 6.1a.001 (extra)
Problème : Dos32 : copier du texte dans le presse-papiers peut provoquer un
plantage. (Jonathan D Johnston)
Solution : Ne pas copier un octet en trop dans SetClipboardData().
Fichiers : src/os_msdos.c
Rustine 6.1a.002
Problème : GTK + : sur certaines configurations, lors de la fermeture d'un
dialogue depuis le gestionnaire de fenêtres, Vim bloque.
Solution : Intercepter le signal "destroy". (Aric Blumer)
Fichiers : src/gui_gtk.c
Rustine 6.1a.003
Problème : Multi-octets : avec des caractères UTF-8 à largeur double et
'virtualedit' activé, la copie en mode Visuel n'inclut pas le
dernier octet. (Eric Long)
Solution : Ne pas ajouter d'espace pour un caractère à largeur double.
Fichiers : src/ops.c
Rustine 6.1a.004 (extra)
Problème : MinGW : type indéfini. (Ron Aaron)
Solution : Rendre GetCompositionString_inUCS2() statique.
Fichiers : src/gui_w32.c, src/gui_w48.c, src/proto/gui_w32.pro
Rustine 6.1a.005 (extra)
Problème : Win32 : ":hardcopy" ne fonctionne plus après ":hardcopy!".
(Jonathan Johnston)
Solution : Ne pas conserver le contexte du pilote après avoir utilisé
":hardcopy!". (Vince Negri)
Fichiers : src/os_mswin.c
Rustine 6.1a.006
Problème : multi-octets : après avoir fixé 'encoding', le titre de la
fenêtres peut être faux.
Solution : Forcer le réaffection du titre. (Yasuhiro Matsumoto)
Fichiers : src/option.c
Rustine 6.1a.007
Problème : La détection de type de fichier ne fonctionne pas pour "*.inc".
Solution : Utiliser une commande ":let". (David Schweikert)
Fichiers : runtime/filetype.vim
Rustine 6.1a.008 (extra)
Problème : Win32 : la détection des ACL ne fonctionne pas avec les partages
réseaux.
Solution : Inclure la (contre-)oblique finale dans le chemin absolu. (Mike
Williams)
Fichiers : src/os_win32.c
Rustine 6.1a.009
Problème : Lors de l'utilisation de "\@<=" ou de "\@<!" dans un motif, un
"\1" peut faire référence à l'élément () qui suit, mais cela
génère un message d'erreur.
Solution : Permettre un post-référence anticipée quand un "\@<=" ou un "\@<!"
suit.
Fichiers : runtime/doc/pattern.txt, src/regexp.c
Rustine 6.1a.010
Problème : Quand ":help" est utilisé et qu'une nouvelle fenêtre est ouverte,
le nom alternatif du fichier n'est pas fixé.
Solution : Fixer le nom alternatif du fichier au fichier précédemment édité.
Fichiers : src/ex_cmds.c
Rustine 6.1a.011
Problème : GTK+ : après un ":set co=77", puis un changement de largeur à la
souris, ":set co=77" ne redimensionne pas la fenêtre. (Darren
Hiebert)
Solution : Fixer XXX the form size après la prise en compte de l'événement de
redimensionnement.
Fichiers : src/gui_gtk_x11.c
Rustine 6.1a.012
Problème : GTK+ : le sélecteur de fichiers retourne toujours un chemin
absolu. (Lohner)
Solution : Raccourcir le nom du fichier quand c'est possible.
Fichiers : src/gui_gtk.c
Rustine 6.1a.013
Problème : Quand 'cinkeys' ou 'indentkeys' contient "=~mot", la casse du
dernier caractère du mot n'est pas ignorée. (Raul Segura Acevedo)
Solution : Ignorer la casse quand le dernier caractère est tapé.
Fichiers : src/edit.c
Rustine 6.1a.014
Problème : Après la rustine 6.1a.006, impossible de compiler sans la
fonctionnalité +title.
Solution : Ajouter un #ifdef.
Fichiers : src/option.c
Rustine 6.1a.015
Problème : MS-Windows : lors de l'expansion d'un nom de fichier contenant un
ou '[' ou une '{', un contre-oblique supplémentaire est insérée.
(Raul Segura Acevedo)
Solution : Éviter d'ajouter la contre-oblique.
Fichiers : src/ex_getln.c
Rustine 6.1a.016
Problème : Le complètement après ":language" ne comprend pas "time". (Raul
Segura Acevedo)
Solution : Ajouter cette possibilité au complètement.
Fichiers : src/ex_cmds2.c
Rustine 6.1a.017
Problème : Un clic de la souris dans la ligne supérieure d'une fenêtre dans
laquelle la première ligne ne rentre pas déplace le curseur dans
la mauvaise colonne.
Solution : Ajouter skipcol aussi pour la ligne supérieure d'une fenêtre.
Fichiers : src/ui.c
Rustine 6.1a.018
Problème : Quand 'scrolloff' vaut un et que la hauteur de la fenêtre est de
un, "gj" peut placer le curseur au-dessus de la fenêtre. (Raul
Segura Acevedo)
Solution : Ne pas laisser skipcol devenir supérieur à la colonne du curseur.
Fichiers : src/move.c
Rustine 6.1a.019
Problème : Lors de l'utilisation d'un caractère de composition au-dessus d'un
caractère ASCII, la commande "l" efface le caractère de
composition. Uniquement quand 'ruler' et 'showcmd' sont
désactivées. (Raphael Finkel)
Solution : Ne pas déplacer le curseur en affichant les caractères quand des
caractères de composition sont présents.
Fichiers : src/screen.c
Rustine 6.1a.020
Problème : GTK+ : après la rustine 6.1a.011, le redimensionnement à la souris
ne fonctionne pas toujours bien pour les tailles réduites. (Adrien
Beau)
Solution : Utiliser une autre solution pour le problème avec ":set co=77".
Fichiers : src/gui_gtk_x11.c
Rustine 6.1a.021
Problème : Plusieurs entrées du menu Syntaxe sont fausses ou déroutantes.
Solution : Reformuler et corriger les entrées du menu. (Adrien Beau)
Fichiers : runtime/makemenu.vim, runtime/menu.vim
Rustine 6.1a.022
Problème : Un fichier de marqueurs peut être utilisé deux fois sur les
systèmes insensibles à la casse. (Rick Swanton)
Solution : Ne pas utiliser deux fois le même nom de fichier dans la valeur
par défaut de l'option 'tags'. Ignorer la casse lors de la
comparaison des fichiers déjà parcourus.
Fichiers : src/misc2.c, src/option.c
Rustine 6.1a.023
Problème : Lors du lancement de l'IHM graphique, des caractères "C" sont
affichés dans le terminal.
Solution : Ne pas tenter l'envoi de commande pour effacer l'écran pendant le
démarrage de l'IHM graphique.
Fichiers : src/screen.c
Rustine 6.1a.024
Problème : Dans d'autres éditeurs, CTRL-F permet souvent d'obtenir un
dialogue pour lancer une recherche.
Solution : Utiliser CTRL-F dans evim pour appeler le dialogue Rechercher.
Fichiers : runtime/evim.vim
Rustine 6.1a.025
Problème : Il n'est pas possible de traduire les choix proposés dans le
dialogue pour choisir le format de fichier.
Solution : Ajouter g:menutrans_fileformat_choices. (Adrien Beau)
Fichiers : runtime/menu.vim
Rustine 6.1a.026
Problème : L'indentation des fichiers Java est fausse avec les clauses
"throws", "extends" et "implements".
Solution : Mettre le script d'indentation Java à jour.
Fichiers : runtime/indent/java.vim
Rustine 6.1a.027
Problème : Quelques entrées du menu Syntaxe sont manquantes ou incorrectes.
Solution : Ajouter et corriger les entrées du menu. (Adrien Beau)
Raccourcir certains menus pour éviter qu'ils ne deviennent trop
longs.
Fichiers : runtime/makemenu.vim, runtime/menu.vim
Rustine 6.1a.028
Problème : XIM : problème avec le retour visuel et certaines méthodes de
saisie.
Solution : Utiliser iconv pour calculer les cellules. Ne supprimer la queue
pour key_press_event que quand le texte a été modifié. (Yasuhiro
Matsumoto)
Fichiers : src/globals.h, src/mbyte.c, src/screen.c
Rustine 6.1a.029
Problème : Après la rustine 6.1a.028, impossible de compiler la version GTK+
avec XIM, mais sans le multi-octets.
Solution : Ajouter un #ifdef. (Aschwin Marsman)
Fichiers : src/mbyte.c
Rustine 6.1a.030
Problème : toupper() et tolower() peuvent fournir des résultats erronés avec
les caractères double-octets.
Solution : Sauter les caractères double-octets. (Eric Long)
Fichiers : src/eval.c
Rustine 6.1a.031
Problème : Accéder à la variable 'balloondelay' peut provoquer un plantage.
Solution : Faire de la variable 'balloondelay' un long. (Olaf Seibert)
Fichiers : src/option.h
Rustine 6.1a.032 (extra)
Problème : Certains fichiers de menu utilisent un mauvais nom de codage dans
"scriptencoding".
Solution : Déplacer les traductions dans un fichier séparé, qui est sourcé
après avoir fixé "scriptencoding".
Ajout de la traductions tchèque en ASCII des menus, et correction
des autres codages.
Fichiers : runtime/lang/menu_cs_cz.iso_8859-1.vim,
runtime/lang/menu_cs_cz.iso_8859-2.vim,
runtime/lang/menu_czech_czech_republic.1250.vim,
runtime/lang/menu_czech_czech_republic.1252.vim,
runtime/lang/menu_czech_czech_republic.ascii.vim,
runtime/lang/menu_de_de.iso_8859-1.vim,
runtime/lang/menu_de_de.latin1.vim,
runtime/lang/menu_fr_fr.iso_8859-1.vim,
runtime/lang/menu_fr_fr.latin1.vim,
runtime/lang/menu_french_france.1252.vim,
runtime/lang/menu_german_germany.1252.vim,
runtime/lang/menu_ja_jp.euc-jp.vim,
runtime/lang/menu_ja_jp.utf-8.vim,
runtime/lang/menu_japanese_japan.932.vim
Rustine 6.1a.033
Problème : XIM : le contexte de saisie n'est pas réinitialisé.
Solution : Appeler xim_reset() avec im_set_active(FALSE). (Takuhiro Nishioka)
Fichiers : src/mbyte.c
Rustine 6.1a.034 (extra)
Problème : Win32 : les vérifications pour les ACL sur les fichiers en lecture
seule ne fonctionnent toujours pas correctement.
Solution : Supprimer les vérifications des ACL, et revenir au fonctionnement
de Vim 6.0.
Fichiers : src/os_win32.c
Rustine 6.1a.035
Problème : multi-octets : lors de l'utilisation de ":sh" dans l'IHM
graphique, les caractères multi-octets tapés et affichés ne sont
pas correctement pris en compte.
Solution : Prendre en charge les caractères multi-octets trasmis et reçus du
shell. (Yasuhiro Matsumoto) Prendre également en charge les
caractères de composition UTF-8.
Fichiers : src/os_unix.c
Rustine 6.1a.036
Problème : GTK+ : l'événement save-yourself n'est pas pris en charge.
Solution : Intercepter l'événement save-yourself et conserver les fichiers
d'échange. (Neil Bird)
Fichiers : src/gui_gtk_x11.c
Rustine 6.1a.037
Problème : Les mappages de touches façon MS-Windows n'incluent pas CTRL-S
pour l'enregistrement. (Vlad Sandrini)
Solution : Mapper CTRL-S à ":update".
Fichiers : runtime/mswin.vim
Rustine 6.1a.038
Problème : Solaris : inclure à la fois "sys/sysctl.h" et "sys/sysinfo.h" ne
fonctionne pas. (Antonio Colombo)
Solution : Ne pas inclure "sys/sysinfo.h" quand sysinfo() n'est pas appelé.
Fichiers : src/os_unix.c
Rustine 6.1a.039
Problème : Tous les fichiers Visual Basic ne sont pas reconnus.
Solution : Ajouter une vérification pour les fichiers *.ctl. (Raul Segura
Acevedo)
Fichiers : runtime/filetype.vim
Rustine 6.1a.040
Problème : Un fichier *.pl est reconnu comme un fichier Perl, alors qu'il
peut aussi s'agir d'un fichier Prolog.
Solution : Tester la première ligne non vide. (Kontra Gergely)
Fichiers : runtime/filetype.vim
Rustine 6.1a.041
Problème : Quand le bouton gauche de la souris est enfoncé dans la ligne de
commande puis que la souris est déplacée vers le haut, presque
tout le texte est sélectionné.
Solution : Ne pas tenter d'étendre une sélection amodale quand elle n'existe
pas.
Fichiers : src/ui.c
Rustine 6.1a.042
Problème : Lors de la fusion de deux fichiers, ":diffput" et ":diffget" sont
utilisés intensivement, alors qu'ils sont longs à taper.
Solution : Ajouter "dp" pour ":diffput" et "do" pour ":diffget".
Fichiers : runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/diff.pro
Rustine 6.1b.001 (extra)
Problème : La recherche de jokers dans un chemin ne prend pas correctement en
compte les caractères multi-octets dont l'octet final est un
joker.
Solution : Les prendre en compte correctement. (Muraoka Taro)
Fichiers : src/os_amiga.c, src/os_mac.c, src/os_msdos.c, src/os_mswin.c,
src/os_unix.c
Rustine 6.1b.002
Problème : Une exprat se terminant par "\{" n'est pas signalée comme une
erreur. Cela peut provoquer un débordement de pile quand
'incsearch' est activé. (Gerhard Hochholzer)
Solution : Considérer une "}" comme une erreur.
Fichiers : src/regexp.c
Rustine 6.1b.003 (extra)
Problème : L'IHM graphique RISC OS ne compile pas.
Solution : Inclure les modifications depuis Vim 5.7. (Andy Wingate)
Fichiers : src/Make_ro.mak, src/gui_riscos.c, src/os_riscos.c,
src/os_riscos.h, src/proto/gui_riscos.pro
Rustine 6.1b.004
Problème : col("'>") retourne un nombre négatif pour une sélection par ligne.
(Neil Bird)
Solution : Ne pas ajouter un à MAXCOL.
Fichiers : src/eval.c
Rustine 6.1b.005
Problème : L'utilisation d'un motif de recherche provoquant une erreur de
débordement de pile alors que 'hlsearch' est activé donne toujours
l'invite Plus.
un motif de recherche prenant un bon moment ralentit la saisie
quand 'incsearch' est activé.
Solution : Arrêter la surbrillance 'hlsearch' quand une exprat provoque une
erreur.
Arrêter de chercher pour 'incsearch' quand un caractère est tapé.
Fichiers : src/globals.h, src/message.c, src/screen.c, src/search.c,
src/vim.h
Rustine 6.1b.006
Problème : Lors de la saisie d'un caractère de composition dans la ligne de
commande avec CTRL-V, le texte n'est pas rafraîchi correctement.
Solution : Rafraîchir le texte sous et avant le curseur.
Fichiers : src/ex_getln.c
Rustine 6.1b.007
Problème : Quand le curseur se trouve dans un espace blanc entre deux
phrases, "dis" efface le premier caractère de la phrase suivante,
"das" l'espace après la phrase.
Solution : Reculer le curseur d'un caractère dans ces situations.
Fichiers : src/search.c
Rustine 6.1b.008
Problème : Les fichiers *.xsl ne sont pas reconnus comme des fichiers xslt,
mais comme des fichiers xml.
Les fichiers monk ne sont pas reconnus.
Solution : Effacer la ligne dupliquée pour *.xsl. (Johannes Zellner)
Reconnaître les fichiers monk.
Fichiers : runtime/filetype.vim
Rustine 6.1b.009
Problème : Il n'est pas toujours possible de compiler avec le jeu de
fonctionnalités minimal puis d'ajouter la fonctionnalité +eval,
"sandbox" n'est pas défini. (Axel Kielhorn)
Solution : Toujours définir "sandbox" quand la fonctionnalité +eval est
activée.
Fichiers : src/globals.h
Rustine 6.1b.010 (extra)
Problème : Lors de la compilation de "gvimext.cpp" avec MSVC 4.2, obtention
de nombreux avertissements.
Solution : Remplacer "true" par "TRUE". (Walter Briscoe)
Fichiers : GvimExt/gvimext.cpp
Rustine 6.1b.011
Problème : Lors de l'utilisation d'une très longue chaîne avec confirm(), il
est impossible de quitter l'affichage à l'invite Plus. (Hari
Krishna Dara)
Solution : Sauter à la fin du message pour afficher les choix.
Fichiers : src/message.c
Rustine 6.1b.012
Problème : Multi-octets : quand 'showbreak' est activé et qu'un caractère à
largeur double ne rentre pas dans le bord droit de la fenêtre, le
curseur y reste bloqué. Blocage à l'utilisation de flèche gauche
quand 'virtualedit' est activé. (Eric Long)
Solution : Corriger la manière dont le caractère ">" supplémentaire est
compté quand 'showbreak' est activé. Ne pas corriger le curseur
lors d'une édition virtuelle sur un caractère à largeur double.
Fichiers : src/charset.c, src/edit.c
Rustine 6.1b.013
Problème : Une commande utilisateur correspondant partiellement avec une
commande utilisateur locale au tampon et complètement avec une
commande utilisateur globale retourne une erreur de commande
ambiguë inutile.
Solution : Rechercher la correspondance globale complète même après une
correspondance locale partielle.
Fichiers : src/ex_docmd.c
Rustine 6.1b.014
Problème : EBCDIC : désactiver les événements de la souris provoque le
salissement de l'affichage. Pareil avec la placement du curseur
dans l'IHM graphique.
Solution : Insérer un Echap dans le code du terminal. (Ralf Schandl)
utiliser "\b" au lieu de "\010" pour KS_LE.
Fichiers : src/os_unix.c, src/term.c
Rustine 6.1b.015
Problème : Vimtutor présente une coquille. Avertissement émis pour "tempfile"
s'il n'existe pas.
Solution : Déplacer une apostrophe à la fin d'une ligne. (Max Ischenko)
Utiliser d'abord "mktemp", davantage de systèmes en disposent.
Fichiers : src/vimtutor
Rustine 6.1b.016
Problème : GTK+ : le chargement d'un jeu de polices qui ne fonctionne qu'en
partie peut provoquer un blocage ou un plantage de Vim.
Solution : Éviter que char_width soit nul. (Yasuhiro Matsumoto)
Fichiers : src/gui_gtk_x11.c
Rustine 6.1b.017
Problème : IHM graphique : lors de l'utilisation de ":shell" et qu'un signal
sonore est émis, il n'est pas audible.
Solution : Appeler vim_beep() pour produire le signal sonore du shell.
(Yasuhiro Matsumoto)
Fichiers : src/message.c
Rustine 6.1b.018 (depends on 6.1b.006)
Problème : Lors de la saisie de la clef de chiffrement, les touches spéciales
peuvent révèler les caractères tapés.
Solution : S'assurer que des étoiles sont employées dans tous les cas, et
rien d'autre.
Fichiers : src/digraph.c, src/getchar.c, src/ex_getln.c
Rustine 6.1b.019 (depends on 6.1b.005)
Problème : Un motif de recherche qui prend un certain temps ralentit la
saisie quand 'incsearch' est activé.
Solution : Transmettre SEARCH_PEEK à dosearch().
Fichiers : src/ex_getln.c
Rustine 6.1b.020
Problème : Lors de l'utilisation du greffon "matchit.vim", "%" trouve une
correspondance sur le "end" d'une commande ":syntax region" dans
les scripts Vim.
Solution : Ignorer les commandes ":syntax region" en fixant b:match_skip.
Fichiers : runtime/ftplugin/vim.vim
Rustine 6.1b.021
Problème : Parfois, avec 'mousefocus' activé, CTRL-W CTRL-] ne déplace pas le
pointeur de la souris vers la nouvelle fenêtre. (Robert Webb)
Solution : Ne pas réinitialiser need_mouse_correct lors de la vérification de
l'horodatage d'un fichier.
Fichiers : src/fileio.c
Rustine 6.1b.022
Problème : Avec de nombreux replis, "j" ne respecte pas parfaitement
'scrolloff'. (Srinath Avadhanula)
Solution : Aller à la fin d'un repli avant de compter les lignes de contexte.
Fichiers : src/move.c
Rustine 6.1b.023
Problème : Sur MS-Windows, system() peut provoquer la vérification de
l'horodatage, car Vim perd puis récupère le focus, alors que cela
ne se produit pas sur Unix.
Solution : Ne pas vérifier l'horodatage quand system() est en cours.
Fichiers : src/ex_cmds2.c, src/fileio.c, src/globals.h, src/misc1.c
Rustine 6.1b.024 (extra)
Problème : Gettext 0.11 se plaint que "sjis" n'est pas un nom standard.
Solution : Utiliser "cp932" à la place.
Fichiers : src/po/sjiscorr.c
Rustine 6.1b.025 (extra)
Problème : Win32 : lors de la fermeture de gvim alors qu'il est minimisé et
que l'un de ses fichiers a été modifié, le dialogue correspondant
apparaît dans un coin de l'écran.
Solution : Mettre le dialogue au milieu de l'écran.
Fichiers : src/gui_w48.c
Rustine 6.1b.026
Problème : Quand 'diffopt' contient 'iwhite' mais pas 'icase', les
différences de casse ne sont pas correctement mises en
surbrillance. (Gerhard Hochholzer)
Solution : Ne pas ignorer la casse quand les différences d'espaces sont
ignorées.
Fichiers : src/diff.c
Rustine 6.1b.027
Problème : "vim --remote +" peut provoquer un plantage.
Solution : Vérifier s'il manque un nom de fichier dans l'argument. (Martin
Kahlert)
Fichiers : src/main.c
Rustine 6.1b.028 (extra)
Problème : Win16 : impossible de compiler après la rustine 6.1b.025.
Solution : Ajouter du code spécifique pour Win16. (Vince Negri)
Fichiers : src/gui_w48.c
Rustine 6.1b.029
Problème : Win32 : quand un répertoire sur une partition NTFS est en
lecture/exécution (mais pas effacement/modification/écriture) et
que le fichier permet les modifications, tenter d'écrire le
fichier l'efface. Passer le fichier en lecture/écriture/exécution
(mais pas effacement) résoud le problème. (Mark Canup)
Solution : Utiliser le code Unix pour vérifier s'il est possible d'écrire
dans le répertoire. Dans la négative, faire une copie de
sauvegarde et écraser le fichier.
Fichiers : src/fileio.c
Rustine 6.1b.030 (extra)
Problème : Mac : petites erreurs dans le script de compilation et dans les
prototypes.
Solution : Corriger le script de compilation et ajouter les prototypes. (Axel
Kielhorn)
Fichiers : src/os_mac.build, src/gui_mac.c
Rustine 6.1b.031 (extra)
Problème : IHM graphique Win32 : ":set guifont=*" ne fixe pas 'guifont' au
nom de la police choisie. (Vlad Sandrini)
Solution : Remettre le code dans gui_mch_init_font() pour forger le nom
d'après XXX the logfont.
Fichiers : src/gui_w48.c
Rustine 6.1b.032
Problème : Athena : choisir un jeu de couleurs avant que l'IHM graphique ait
démarré provoque un plantage. (Todd Blumer)
Solution : Ne pas tenter d'utiliser le nom des couleurs avant qu'elles aient
été définies.
Fichiers : src/gui_athena.c
Rustine 6.1b.033
Problème : L'utilisation d'un quantificateur après une commande ":s" peut
provoquer des erreurs ml_get. (Dietmar Lang)
Solution : Vérifier que la plage obtenue ne va pas au-delà de la fin du
tampon.
Fichiers : src/ex_cmds.c
Rustine 6.1b.034
Problème : Après le sourcement de "mswin.vim", lors d'un <C-S-Right> après
l'autoindentation, suivi d'un <Suppr>, un avertissement est émis
pour l'allocation d'une quantité ridicule XXX !?! de mémoire.
(Dave Delgreco)
Solution : Ajuster le début de la zone Visuel lors de l'effacement de
l'autoindentation.
Fichiers : src/edit.c
Rustine 6.1b.035
Problème : Lors de l'utilisation de evim, le dépôt d'un fichier sur Vim suivi
du double clic sur un mot change ce dernier en "i". (Merlin
Hansen)
Solution : Réinitialiser need_start_insertmode après l'édition du fichier.
Fichiers : src/ex_docmd.c
==============================================================================
Version 6.2 *version-6.2*
Cette section traite des améliorations apportées entre les versions 6.1 et
6.2.
Il s'agit d'une version corrigeant des bogues, avec peu de nouvelles
fonctionnalités.
Principales nouvelles fonctionnalités :
- Support de GTK+ 2. (Daniel Elstner)
- Support de l'édition des textes en Arabe. (Nadim Shaikli & Isam Bayazidi)
- Commande ":try" et gestion des exceptions. (Servatius Brandt)
- Support du toolkit neXtaw pour l'IHMg (ressemble à Athena). (Alexey Froloff)
- Support de Cscope pour Win32. (Khorev Sergey)
- Support de l'impression PostScript dans divers codages 8 bits. (Mike
Williams)
CHANGEMENTS *changed-6.2*
Suppression du fichier d'indentation Scheme, l'indentation interne pour Lisp
fonctionne convenablement à présent.
Déplacement des répertoires "GvimExt", "OleVim" et "VisVim" dans le répertoire
"src". C'est plus cohérent avec la manière dont "xxd" est pris en compte.
Le fichier "VisVim.dll" est installé dans le répertoire de plus haut niveau,
auprès de "gvimext.dll", plutôt que dans un sous-répertoire "VisVim". Cela
corrige le problème de NSIS qui tentait de le désinstaller depuis le mauvais
répertoire.
Suppression du fichier d'indentation art, il ne faisait rien du tout.
submatch() retournait des coupures de lignes sous la forme de CR au lieu de
LF.
Modification des Makefile Win32 pour les rendre plus cohérents et pour
compiler "gvimext.dll". (Dan Sharp)
'cindent' : aligner un commentaire "//" avec un commentaire "//" dans la ligne
précédente. (Helmut Stiegler)
Avant, seuls les parents des éléments graphiques des terminaux similaires à
xterm étaient remontés pour trouver le titre et l'étiquette de l'icône. À
présent, c'est effectué pour tous les émulateurs de terminaux.
Il est maintenant possible de reconnaître les contre-obliques avec "%". La
drapeau 'M' de l'option 'cpoptions' permet de le désactiver. (Haakon Riiser)
Suppression du Makefile "Make_tcc.mak" pour Turbo C. Il ne fonctionnait pas
et il est sans doute impossible de le faire fonctionner (le compilateur manque
de mémoire).
Même si la documentation faisait référence à des mots-clés, "[ CTRL-D"
utilisait 'isident' pour trouver des correspondances. Elle est modifiée pour
utiliser 'iskeyword'. Cela s'applique également à d'autres commandes qui
recherchent des mots définis dans des fichiers inclus, telles que ":dsearch",
"[D" et "[d".
'keywordprg' est maintenant globale-locale. (Christian Robinson)
L'interface NetBeans est activée par défaut. L'argument de `configure` a été
inversé : "--enable-netbeans" est devenu "--disable-netbeans".
AJOUTS *added-6.2*
Nouvelles options :
'arabic'
'arabicshape'
'ambiwidth'
'autochdir'
'casemap'
'copyindent'
'cscopequickfix'
'preserveindent'
'printencoding'
'rightleftcmd'
'termbidi'
'toolbariconsize'
'winfixheight'
Nouveaux codages claviers :
Serbian (Aleksandar Veselinovic)
Chinese Pinyin (Fredrik Roubert)
Esperanto (Antoine J. Mechelynck)
Nouveaux fichiers de syntaxe :
Valgrind (Roger Luethi)
Template Smarty (Manfred Stienstra)
MySQL (Kenneth Pronovici)
Description de paquetages RockLinux (Piotr Esden-Tempski)
MMIX (Dirk Huesken)
gkrellmrc (David Necas)
Tilde (Tobias Rundtrom)
Logtalk (Paulo Moura)
PLP (Juerg Waalboer)
fvwm2m4 (David Necas)
IPfilter (Hendrik Scholz)
fstab (Radu Dineiu)
Quake (Nikolai Weibull)
Occam (Mario Schweigler)
lpc (Shizhu Pan)
Configuration Exim (David Necas)
EDIF (Artem Zankovich)
.cvsrc (Nikolai Weibull)
.fetchmailrc (Nikolai Weibull)
GNU gpg (Nikolai Weibull)
Grub (Nikolai Weibull)
Modconf (Nikolai Weibull)
RCS (Dmitry Vasiliev)
Art (Dorai Sitaram)
Renderman Interface Bytestream (Andrew J Bromage)
Mailcap (Doug Kearns)
Fichier de mise à jour Subversion (Dmitry Vasiliev)
Microsoft IDL (Vadim Zeitlin)
WildPackets EtherPeek Decoder (Christopher Shinn)
Spyce (Rimon Barr)
Resolv.conf (Radu Dineiu)
A65 (Clemens Kirchgatterer)
sshconfig et sshdconfig (David Necas)
Cheetah et HTMLCheetah (Max Ischenko)
Packet Filter (Camiel Dobbelaar)
Nouveaux fichiers d'indentation :
Eiffel (David Clarke)
Tilde (Tobias Rundtrom)
Occam (Mario Schweigler)
Art (Dorai Sitaram)
PHP (Miles Lott)
Dylan (Brent Fulgham)
Nouvelles traductions du tutoriel :
Slovaque (Lubos Celko)
Grecque (Christos Kontas)
Allemand (Joachim Hofmann)
Norvégien (Øyvind Holm)
Nouveaux greffons de type de fichier :
Occam (Mario Schweigler)
Art (Dorai Sitaram)
ant.vim, aspvbs.vim, config.vim, csc.vim, csh.vim, dtd.vim, html.vim,
jsp.vim, pascal.vim, php.vim, sgml.vim, sh.vim, svg.vim, tcsh.vim,
xhtml.vim, xml.vim, xsd.vim. (Dan Sharp)
Nouveaux greffons de compilateur :
Checkstyle (Doug Kearns)
g77 (Ralf Wildenhues)
fortran (Johann-Guenter Simon)
Xmllint (Doug Kearns)
Ruby (Tim Hammerquist)
Modelsim vcom (Paul Baleme)
Nouvelles traductions des menus :
Brésilien (José de Paula)
Britannique (Mike Williams)
Coréen en UTF-8. (Nam SungHyun)
Norvégien (Øyvind Holm)
Serbe (Aleksandar Jelenak)
Nouvelle traduction des messages en norvégien. (Øyvind Holm)
Nouveau jeu de couleurs :
desert (Hans Fugal)
Fonctionnalités spécifiques à l'arabe, options 'arabicshape', 'termbidi',
'arabic' et 'righleftcmd'. (Nadim Shaikli & Isam Bayazidi)
Support de la boîte à outils pour IHM graphique neXtaw, très semblable à
Athena. (Alexey Froloff)
Win32 : support de Cscope. (Khorev Sergey)
VMS : diverses améliorations de la documentation et des Makefile. (Zoltan
Arpadffy)
Ajout de la touche "x" au greffon "explorer.vim" : exécuter l'action par
défaut. (Yasuhiro Matsumoto)
Compilation de "gvimext.dll" avec MinGW. (Rene de Zwart)
Ajout du greffon "tohtml.vim". Il définit la commande utilisateur ":TOhtml",
une manière simple pour convertir un texte en HTML.
Ajout des commandes ":try" / ":catch" / ":finally" / ":endtry". Ajout de
numéros "E999" à tous les messages d'erreur, de façon à ce qu'elles puissent
être interceptée par leur numéro. (Servatius Brandt)
Déplacement d'une partie de "ex_docmd.c" vers le nouveau fichier "ex_eval.c".
Ajout du support pour GTK+ 2.2.x. (Daniel Elstner)
Ajout du registre "~" : glisser/déposer du texte.
Ajout de l'option 'toolbariconsize'.
Ajout de -Dalloca lors de l'exécution de `lint` pour contourner un problème le
prototype de alloca().
Lors de la sélection d'un élément dans la fenêtre des erreurs pour y sauter,
faire le nécessaire pour trouver un fenêtre ordinaire afin d'y afficher le
fichier (et non une fenêtre de prévisualisation).
Support de l'impression PostScript avec différents codages 8 bits. (Mike
Williams)
inputdialog() accepte un troisième argument qui est utilisé quand le dialogue
est annulé. Cela permet de détecter une différence entre une annulation et une
saisie vide.
Ajout de la recette Aap. Elle permet de mettre Vim à jour d'après la toute
dernière version, de la compiler et de l'installer.
Drapeau "/" de 'cinoptions' : indentation supplémentaire pour les lignes de
commentaire. (Helmut Stiegler)
Variable Vim "v:register" et les fonctions setreg(), getreg() et getregtype().
(Michael Geddes)
Drapeau "v" de 'cpoptions' : laisser le texte à l'écran en mode Insertion
pendant les contre-obliques. (Phillip Vandry)
"Dosinst.exe" trouve aussi "gvimext.dll" dans le répertoire "GvimExt". Utile
quand l'installation est exécutée dans le répertoire "src" lors de tests.
Support des fichiers de marqueurs triés sans tenir compte de la casse.
(Flemming Madsen)
Lors du complètement d'un joker dans un élément en tête d'un chemin, comme
dans "../*/Makefile", seulement la dernière partie ("Makefile") est listée.
Support du complètement personnalisé de la ligne de commande. (Flemming
Madsen)
"rxvt" est aussi reconnu comme un terminal similaire à xterm. (Tomas Styblo)
Gestion correcte des sessions X11. Correction du problème avec l'événement
WM_SAVE_YOURSELF, non utilisé par les environnements populaires. (Neil Bird)
Non utilisé sur Gnome 2, qui dispose de son propre gestionnaire.
Support des arguments BOR, DEBUG et SPAWNO pour les Makefiles Borland 3.
(Walter Briscoe)
Support des sauts de pages pour l'impression. Ajout du champ "formfeed" dans
'printoptions'. (Mike Williams)
Mac OS X : support multilingue : iconv et gettext. (Muraoka Taro, Axel
Kielhorn)
Drapeau "\Z" dans les motifs : ignorer les différences dans les caractères de
composition. (Ron Aaron)
Ajout des options 'preserveindent' et 'copyindent'. Elles utilisent les
caractères d'espaces blancs au lieu des tabulations autant que possible.
(Chris Leishman)
Mise à jour de tables Unicode avec Unicode 4.0. (Raphael Finkel)
Support de la molette de la souris dans rxvt. (AIDA Shinra)
Win32 : ajout du modificateur ":8" pour obtenir le nom court d'un fichier.
"Test50" vérifie l'expansion de ":8" sur les systèmes Win32. (Michael Geddes)
Option 'cscopequickfix' : ouvre la fenêtre mise-au-point pour les commandes
Cscope. Nettoyage du code pour les messages. (Khorev Sergey)
IHM graphique : support de plus de 222 colonnes pour le placement de la
souris.
Commande ":stopinsert" : ne pas retourner en mode Insertion.
Commande "interrupt" en mode débogage. Utile pour simuler CTRL-C. (Servatius
Brandt)
CORRECTIONS *fixed-6.2*
Suppression de quelques #define inutilisés dans "config.h.in", "os_os2_cfg.h"
et "os_vms_conf.h".
Les icônes de Vim en format PNG n'avaient pas un fond transparent. (Greg
Roelofs)
Correction d'un grand nombre d'erreurs de frappe dans les docs. (Adri Verhoef)
Les #define pour la génération de prototype posaient des problèmes. Ils ont
été changés en typedef.
Une nouvelle version de "libintl.h" utilise __asm__, ce qui perturbe cproto.
Définition d'une macro __asm__ factice.
Quand 'virtualedit' est activé, il est impossible de se placer à la moitié
d'un caractère non imprimable. Cela perturbe la sélection avec CTRL-V. (Taro
Muraoka)
Le mouvement à la moitié d'un caractère non imprimable est maintenant
possible. Ne pas laisser getvvcol() modifier l'argument pos->coladd.
Quand une tabulation est enroulée sur la ligne suivante, que 'listchars' est
activé et que 'foldcolumn' est non nul, un seul caractère de la colonne de
repli est en surbrillance. (Muraoka Taro)
Quand ":catch" est utilisé sans argument, Vim plante. (Yasuhiro Matsumoto)
Utiliser le motif ".*" quand aucun argument n'est spécifié.
Win32 : quand "gvim.exe" est démarré depuis un raccourci dont les propriétés
de fenêtre demande la maximisation, Vim ne démarre pas dans une fenêtre
maximisée. (Yasuhiro Matsumoto) Ouvrir la fenêtre avec la taille par défaut et
ne pas rappeler ShowWindow() quand elle est déjà visible. (Helmut Stiegler)
"gui_gtk.c" utilisait MAX, alors que ce dernier est indéfini pour éviter un
conflit avec des fichiers d'en-tête du système.
Win32 : lors de la fermeture d'une fenêtre depuis un mappage, certains pixels
persistent sur la ligne d'état. (Yasuhiro Matsumoto)
Un numéro de colonne qui va au-delà de la fin de la ligne dans un format
d'erreur peut provoquer un plantage.
":throw 'test'" plante Vim. (Yasuhiro Matsumoto)
Les barres de défilement de l'explorateur de fichier ne sont pas modifiées
après un ":hi Scrollbar guifg=color". Et l'explorateur de fichier n'est pas
modifié par la commande ":colorscheme". (David Harrison)
Motif : quand la fonctionnalités FEAT_FOOTER est définie, la zone de texte
deborde de quelques pixels sur la droite. Supprimer le cas particulier dans
gui_get_base_width(). (David Harrison)
L'utilisation de CTRL-R CTRL-P en mode Insertion positionne la marque '] au
mauvais endroit. (Helmut Stiegler)
Quand 'formatoptions' contient "awct", un non-commentaire n'était pas mis en
forme automatiquement.
L'utilisation d'un argument "--cmd" plus de dix fois provoquait un plantage.
Le support des souris de style DEC ne fonctionnait pas quand le champ page
n'était pas vide. (Uribarri)
"vim -l un deux" n'activait l'option 'lisp' que pour le premier fichier. Vi
l'active pour tous les fichiers.
":set tw<" ne fonctionnait pas. Il vérifiait '^' au lieu de '<'.
"%" n'était pas étendu au nom de fichier courant dans ":hardcopy > %.ps".
":redraw" mets également à jour la zone Visuel.
Quand un commande non disponible (par exemple ":perl") avait des arguments
invalides, l'erreur la moins importante était rapportée, donnant à
l'utilisateur l'impression que la commande pouvait fonctionner.
Sur les systèmes non-Unix, les autocommandes pour l'écriture ne tentaient pas
de correspondances avec les noms de fichiers courts, entrainant l'échec de
motifs tels que "a/b".
VMS : e_screenmode n'était pas défini, ainsi que d'autres corrections pour
VMS. (Zoltan Arpadffy)
redraw_msg() dépendait de FEAT_ARABIC au lieu de FEAT_RIGHTLEFT. (Walter
Briscoe)
Diverses modifications pour les Makefiles PC. (Walter Briscoe)
Utilisation de _truename() au lieu de notre propre code pour développer un
fichier en un chemin complet. (Walter Briscoe)
Erreur dans la détection de type de fichier pour "/etc/modutils". (Lubomir
Host)
Interface Cscope : un tampon était trop petit.
Win16 : suppression de la contre-oblique finale dans un chemin lors de la
demande des drapeaux de permissions. (Vince Negri)
Lors d'une recherche insensible à la casse de marqueurs, Vim pouvait bloquer.
Lors de la recherche d'un répertoire avec un XXX stopdir, Vim pouvait planter.
La mémoire allouée était insuffisante. (Vince Negri)
Une commande utilisateur pouvait provoquer un plantage. Ne pas utiliser
l'index de commande quand il est négatif. (Vince Negri)
putenv() ne fonctionnait pas avec MinGW et Cygwin. (Dan Sharp)
De nombreuses fonctions étaient communes entre "os_msdos.c" et "os_win16.c".
Utiliser "os_msdos.c" pour compiler la version Win16 et supprimer les
fonctions de "os_win16.c". (Vince Negri)
Pour les terminaux se comportant comme xterm mais qui avait un nom qui n'était
pas reconnu, le titre de la fenêtre n'était pas toujours fixé.
":hardcopy" tentait toujours une impression en couleurs, même quand la
coloration syntaxique était désactivée.
Plantage à l'utilisation de ":catch" sans argument. (Servatius Brandt)
Win32 : ":n #" doublait les contre-obliques.
Correction de la mise en forme de l'Arabe dans la ligne de commande. (Nadim
Shaikli)
Éviter de découper une chaîne affichée dans la ligne de commande au niveau des
caractères, cela perturbe la mise en forme des caractères arabes.
Mise à jour des Makefiles Cygwin et MinGW pour utiliser plus de dépendances.
(Dan Sharp)
"2html.vim" ne fonctionnait pas avec 'nomagic' activé.
Quand une liste locale d'arguments est utilisée, un ":only" peut entrainer un
plantage ultérieur de Vim. (Muraoka Taro)
Lors de l'utilisation de "%P" dans 'statusline' et que 'fillchar' vaut "-"
pour la ligne d'état, un pourcentage de 3 % pouvait être affiché "-3%". De
même, éviter qu'un espace dans le nom du fichier soit converti en caractère de
remplissage.
MS-Windows : la prise en compte des contre-obliques et des doubles-apostrophes
pour les arguments de la ligne de commande n'était pas similaire à ce que font
les autres applications. (Walter Briscoe)
Parfois, "Test32" ne fonctionnait pas, car "test11.out" était écrit
"TEST11.OUT".
Élimination d'avertissements pour des conversions de pointeurs avec Borland C
5.5 dans "dosinst.c" et "uninstal.c".
Améliorations supplémentaires dans le fichier "Make_bc3.mak". (Walter Briscoe)
Quand ":syn sync linebreaks=1" était utilisé, l'édition de la première ligne
provoquait le rafraîchissement de tout l'écran.
La construction des messages traduits ne fonctionnait pas, "if_perl.xs"
n'était pas trouvé. (Vlad Sandrini)
Motif et Athena : placer Vim au premier plan de le désinconifiait pas.
Utiliser XMapRaised() au lieu de XRaiseWindow(). (Srikanth Sankaran)
Lors de l'utilisation de ":ptag" dans une fenêtre dans laquelle 'scrollbind'
est activé, 'scrollbind' était aussi activé dans la fenêtre de
prévisualisation. Sont maintenant également réinitialisés 'foldcolumn' et
'diff'.
Différentes commandes pour partager une fenêtre transmettaient 'scrollbind',
ce qui est rarement souhaité, en particulier pour "q:" et "copen".
Réinitialiser en général 'scrollbind' lors du partage d'une fenêtre.
Quand 'shellslash' est activé dans le fichier vimrc, la première entrée de
":scriptnames" avait toujours les contre-obliques. Les entrées de la liste du
mode mise-au-point avaient également les mauvaises (contre-)obliques.
Win32 : les textes des dialogues d'impression n'étaient pas traduits.
(Yasuhiro Matsumoto)
Lors de l'utilisation d'un caractère multi-octets contenant un octet K_SPECIAL
ou un code de touche spécial avec "--remote-send", la séquence d'octets reçue
était bouleversée. Elle est maintenant placée dans le tampon typeahead plutôt
que dans le tampon de saisie.
Win32 : la position du curseur était incorrecte après le changement de la
forme du curseur. (Yasuhiro Matsumoto).
Win32 : quand 'encoding' n'est pas identique à la page de code actuelle, il
est impossible de donner un titre avec des caractères non ASCII.
"vim -d scp://machine/fichier1 scp://machine/fichier2" ne fonctionnait pas,
une seule fenêtre était ouverte. Correction du greffon "netrw.vim" pour ne
plus détruire le tampon s'il est affiché dans d'autres fenêtres.
"/$" provoquait la disparition de "e" dans la dernière colonne de l'écran, un
blanc en surbrillance prenait sa place.
":s/ *\ze\n//e" supprimait la coupure de ligne et introduisait du texte au
hasard. Il utilisait le nombre de ligne en incluant ce qui correspondait après
le "\ze". XXX ???
L'utilisation du drapeau "c" avec ":s" modifiait le comportement lors du
remplacement d'une coupure de ligne avec "\@<=". Sans "c", la correspondance
suivante n'était pas trouvée.
":%s/\vA@<=\nB@=//gce" restait bloqué sur "A\nB" après un appui sur "n".
VMS : Ajout de HAVE_STRFTIME dans le fichier de configuration. (Zoltan
Arpadffy)
Lorsque l'invite pour un effacement demande si l'opération doit se poursuivre
quand un collage n'est pas possible, restaurer msg_silent après coup.
":sign" ne se plaignait pas quand il manquait un argument.
Lors de l'ajout ou la suppression d'un symbole, la surbrillance de 'hlsearch'
pouvait disparaître. Utilisation de fonctions génériques pour mettre les
symboles à jour.
Sur MS-Windows NT, 2K et XP, ne pas utiliser "command.com", mais plutôt
"cmd.exe" pour les tests. Cela permet aux tests de fonctionner sur davantage
de systèmes.
Ne pas créer "/tmp" dans les tests MS-DOS, pour éviter une erreur.
Mac Classic : problèmes lors de la lecture des fichiers contenant des CR et
des CR/LF. Le bon fonctionnement avec Metrowerks 2.2 dépend de la version de
la bibliothèque de fgets(). (Axel Kielhorn)
Lors de la saisie d'un mot de passe, un "*" était affiché pour chaque octet
plutôt que pour chaque caractère. Ajout de la prise en charge des caractère
multi-octets dans l'affichage des "*". (Yasuhiro Matsumoto)
Avec Perl 5.6, accéder à $curbuf ne fonctionne pas. Ajout d'un #ifdef pour
différencier les codes pour Perl 5.6 et 5.8. (Dan Sharp)
MinGW et Cygwin : ne pas faire de `strip` sur les exécutables compilés avec
les informations de débogage. (Dan Sharp)
L'affectation d'une variable avec des accolades contenant "==" ne fonctionne
pas. Ignorer les accolades avant de chercher un "=". (Vince Negri)
Lors de l'annulation de la sélection de marqueurs correspondants alternatifs,
l'index de la pile des marqueurs pouvait être avancé trop loin, ce qui
aboutissait à un message d'erreur avec CTRL-T.
Rustine 6.1.001
Problème : Lors de la mise en forme de texte UTF-8, il peut se trouver
enroulé au niveau d'un espace suivi d'un caractère de composition.
(Raphael Finkel)
Solution : Vérifier s'il se trouve un caractère de composition sur un espace.
Corriger également l'erreur d'affichage lors de la suppression
d'un caractère de composition sur un espace.
Fichiers : src/edit.c, src/misc1.c, src/screen.c
Rustine 6.1.002 (extra)
Problème : Win32 : après une commande ":popup", le pointeur de la souris
reste masqué.
Solution : Démasquer le pointeur de la souris avant d'afficher le menu.
Fichiers : src/gui_w48.c
Rustine 6.1.003
Problème : Quand 'laststatus' est nul et qu'il existe un partage vertical, le
séparateur vertical est dessiné dans la ligne de commande.
(Srikant Sankaran)
Solution : Ne pas dessiner le séparateur vertical quand il n'y a pas de ligne
d'état.
Fichiers : src/screen.c
Rustine 6.1.004
Problème : Unicode 3.2 change la largeur et la composition de quelques
caractères. (Markus Kuhn)
Solution : Ajuster les fonctions unicode pour la largeur des caractères et
les caractères de composition.
Fichiers : src/mbyte.c
Rustine 6.1.005
Problème : Quand il se trouve plus de 50 éléments dans 'statusline', Vim peut
planter. (Steve Hall)
Solution : Incrémenter itemcnt dans check_stl_option(). (Flemming Madsen)
Fichiers : src/option.c
Rustine 6.1.006
Problème : Lors de l'utilisation de "P" en mode Visuel pour coller du texte
sélectionné ligne par ligne, ce n'est pas le bon texte qui est
effacé. (Jakub Turski)
Solution : Coller le texte avant la zone Visuel et corriger le texte à
effacer suite à l'insertion des lignes.
Corriger également le fonctionnement incorrect de "p" ligne par
ligne en mode Visuel.
Fichiers : src/normal.c, src/ops.c
Rustine 6.1.007
Problème : Utiliser ":filetype plugin off" alors qu'aucun greffon de type de
fichier n'est activé provoque des messages d'erreur. (Yiu Wing)
Solution : Utiliser ":silent!" pour éviter les messages d'erreur.
Fichiers : runtime/ftplugof.vim
Rustine 6.1.008
Problème : La commande "%" n'ignore pas les \" dans une chaîne, qui sont
perçus comme des terminaisons. (Ken Clark)
Solution : Ignorer une double-apostrophe précédée d'un nombre impair de
contre-oblique.
Fichiers : src/search.c
Rustine 6.1.009
Problème : Vim plante lors de l'utilisation d'un très grand nombre pour la
valeur de maxwid dans une ligne d'état. (Robert M. Nowotniak)
Solution : Tester un débordement donnant à maxwid une valeur négative.
Fichiers : src/buffer.c
Rustine 6.1.010
Problème : Rechercher un "?" vers l'arrière avec "?\?" ne fonctionne pas.
(Alan Isaac) Même problème avec ":s?\??" et ":g?\??".
Solution : Changer "\?" en "?" dans un motif utilisant "?" comme séparateur.
Fichiers : src/ex_cmds.c, src/ex_docmd.c, src/proto/regexp.pro, src/regexp.c,
src/search.c, src/syntax.c, src/tag.c
Rustine 6.1.011
Problème : XIM : ne fonctionne pas correctement quand 'number' est activé. De
même, problème de focus lors la sélection de candidats.
Solution : Corriger les problèmes XIM. (Yasuhiro Matsumoto)
Fichiers : src/mbyte.c, src/screen.c
Rustine 6.1.012
Problème : Un appel à system() peut échouer si fread() effectue une
conversion CR-LF vers LF.
Solution : Ouvrir le fichier en mode binaire. (Pavol Huhas)
Fichiers : src/misc1.c
Rustine 6.1.013
Problème : Win32 : la valeur par défaut de 'printexpr' ne fonctionne pas
quand 'printdevice' contient un ou des caractères spéciaux.
Solution : Ajouter des doubles-apostrophes autour du nom du périphérique.
(Mike Williams)
Fichiers : runtime/doc/option.txt, src/option.c
Rustine 6.1.014
Problème : Un opérateur tel que "r" utilisé en mode Visuel par bloc n'utilise
pas 'virtualedit' quand ce dernier vaut "block".
Solution : Vérifier si 'virtualedit' est activé en mode Visuel par bloc quand
l'opérateur est démarré.
Fichiers : src/ex_docmd.c, src/globals.h, src/misc2.c, src/normal.c,
src/ops.c, src/undo.c
Rustine 6.1.015
Problème : Après la rustine 6.1.014, impossible de compiler avec le jeu de
fonctionnalités minuscule. (Christian J. Robinson)
Solution : Ajouter la définition de virtual_op faisant défaut.
Fichiers : src/vim.h
Rustine 6.1.016 (extra)
Problème : Win32 : la production du texte hébreu ou arabe peut rencontrer des
problèmes avec l'inversion du sens d'écriture.
Solution : Remplacer la fonction RevOut() par ETO_IGNORELANGUAGE. (Ron Aaron)
Fichiers : src/gui_w32.c
Rustine 6.1.017
Problème : Cygwin : après la rustine 6.1.012, il est toujours impossible de
faire des entrées/sorties avec un fichier binaire. (Pavol Juhas)
Solution : Définir BINARY_FILE_IO pour Cygwin.
Fichiers : src/os_unix.h
Rustine 6.1.018
Problème : Message d'erreur lors de l'utilisation de la surbrillance de
cterm. (Leonardo Di Lella)
Solution : Supprimer une contre-oblique devant les "?".
Fichiers : runtime/syntax/cterm.vim
Rustine 6.1.019 (extra)
Problème : Win32 : le nom de fichier est corrompu quand l'édition ne concerne
qu'un nom d'unité. (Walter Briscoe)
Solution : Ajouter un octet NUL après le nom de l'unité. (Vince Negri)
Fichiers : src/os_win32.c
Rustine 6.1.020
Problème : col("'>") retourne un nombre très grand après l'utilisation du
mode Visuel par ligne.
Solution : Retourner la longueur de la ligne à la place.
Fichiers : src/eval.c
Rustine 6.1.021 (basée sur la rustine 6.1.009)
Problème : Vim plante lors de l'utilisation d'une très grande valeur pour
minwid dans la ligne d'état. (Robert M. Nowotniak)
Solution : Tester un débordement donnant à minwid une valeur négative.
Fichiers : src/buffer.c
Rustine 6.1.022
Problème : Faire glisser la ligne d'état au dessus de la fenêtre de ligne de
commande fonctionne comme si c'était la ligne d'état inférieure
qui était glissée/déplacée. (Jim Battle)
Solution : Rendre possible le glissement de la ligne d'état au dessus de la
fenêtre de ligne de commande, afin qu'elle puisse être
redimensionnée.
Fichiers : src/ui.c
Rustine 6.1.023 (extra)
Problème : VMS : l'exécution des tests ne fonctionne pas correctement.
Solution : Ajuster le Makefile. (Zoltan Arpadffy)
Fichiers : src/testdir/Make_vms.mms
Rustine 6.1.024
Problème : Quand un fichier d'en-tête utilise une nouvelle syntaxe pour
déclarer des fonctions, Vim ne parvient à déterminer correctement
quels sont les prototypes manquants.
Solution : Accepter les accolades autour des noms de fontions. (M. Warner
Losh)
Fichiers : src/osdef.sh
Rustine 6.1.025
Problème : Cinq messages de "vim --help" ne commencent pas par une majuscule.
(Vlad Sandrini)
Solution : Rendre les messages cohérents.
Fichiers : src/main.c
Rustine 6.1.026
Problème : Les fichiers "*.patch" ne sont pas reconnus comme des fichiers de
différences. Dans un script, un argument "VAR=val" après "env"
n'est pas ignoré. Les scripts PHP ne sont pas reconnus.
Solution : Ajouter "*.patch" pour les types de fichiers diff. Ignorer
"VAR=val". Reconnaître les scripts PHP. (Roman Neuhauser)
Fichiers : runtime/filetype.vim, runtime/scripts.vim
Rustine 6.1.027
Problème : Quand 'foldcolumn' est non nul, un caractère spécial enroulé sur
la ligne suivante perturbe la surbrillance de la colonne des
replis. (Yasuhiro Matsumoto)
Solution : N'utiliser la surbrillance Special que lors du rafraîchissement
des caractères textuels.
Fichiers : src/screen.c
Rustine 6.1.028
Problème : Client-serveur : quand un "--remote-expr" échoue, Vim quitte tout
de même avec le code de retour zéro.
Solution : Quitter Vim avec un code de retour non nul pour signaler que le
"--remote-expr" a échoué. (Thomas Scott Urban)
Fichiers : src/main.c
Rustine 6.1.029
Problème : Quand 'encoding' est un codage 8 bits différent de "latin1",
l'édition d'un fichier UTF-8 ou Unicode utilise la mauvaise
conversion. (Jan Fedak)
Solution : Ne pas utiliser la conversion Unicode vers "latin1" pour les
codages 8 bits autres que "latin1".
Fichiers : src/fileio.c
Rustine 6.1.030
Problème : Quand CTRL-N est mappé en mode Insertion, il l'est également après
CTRL-X CTRL-N, alors qu'il ne l'est plus après CTRL-X CTRL-F.
(Kontra Gergely)
Solution : Ne pas mapper CTRL-N après CTRL-X CTRL-N. Pareil pour CTRL-P.
Fichiers : src/getchar.c
Rustine 6.1.031
Problème : Cygwin : `xxd` pouvait lire un fichier en mode texte plutôt qu'en
binaire.
Solution : Utiliser "rb" ou "rt" si nécessaire. (Pavol Juhas)
Fichiers : src/xxd/xxd.c
Rustine 6.1.032
Problème : Impossible de spécifier un fichier de mise-au-point sans sauter à
la première erreur.
Solution : Ajouter la commande ":cgetfile". (Yegappan Lakshmanan)
Fichiers : runtime/doc/index.txt, runtime/doc/quickfix.txt, src/ex_cmds.h,
src/quickfix.c
Rustine 6.1.033
Problème : IHM graphique : quand la sélection est perdue et que la
surbrillance Visuel est changée en soulignement, le curseur est
laissé à une position différente. (Christian Michon)
Solution : Mettre à jour la position du curseur après le rafraîchissement de
la sélection.
Fichiers : src/ui.c
Rustine 6.1.034
Problème : Les fichiers de différences CVS ne sont pas reconnus comme des
fichiers de type diff.
Solution : Sauter les lignes débutant par "? " avant de tester la présence
d'une ligne "Index:".
Fichiers : runtime/scripts.vim
Rustine 6.1.035 (extra, basée sur 6.1.016)
Problème : Win32 : la production de texte en hébreu ou en arabe peut
rencontrer des problèmes avec l'inversion du sens de l'écriture
sur MS-Windows 95/98/ME.
Solution : Restaurer la fonction RevOut() et l'utiliser dans certaines
conditions particulières uniquement. (Ron Aaron)
Fichiers : src/gui_w32.c
Rustine 6.1.036
Problème : Cette commande peut provoquer un plantage : ":v/./,//-j". (Ralf
Arens)
Solution : Calculer correctement la longueur de l'exprat quand elle est vide.
Fichiers : src/search.c
Rustine 6.1.037
Problème : Avec 'lazyredraw' activé, appuyer sur "q" à l'invite
Appuyez-sur-entrée provoque un rafraîchissement incomplet et le
curseur n'est pas positionné. (Lubomir Host)
Solution : Passer outre 'lazyredraw' quand do_redraw est activé.
Fichiers : src/main.c, src/screen.c
Rustine 6.1.038
Problème : Multi-octets : quand une commande ":s" contient un caractère
multi-octets dont l'octet final est '~', le texte est sali.
Solution : Passer correctement après le caractère multi-octets dans
regtilde() (Muraoka Taro)
Fichiers : src/regexp.c
Rustine 6.1.039
Problème : Quand des replis sont définis et que le fichier est modifié en
dehors de Vim, le rechargement du fichier ne met pas les replis à
jour. (Anders Schack-Nielsen)
Solution : Recalculer les replis après le rechargement du fichier.
Fichiers : src/fileio.c
Rustine 6.1.040
Problème : Quand un changement de répertoire pour l'expansion d'un fichier
échoue, aucun message d'erreur n'est émis.
Solution : Donner un message d'erreur dans cette situation. Ne pas changer de
répertoire s'il n'est pas possible de retourner dans le répertoire
d'origine.
Fichiers : src/diff.c, src/ex_docmd.c, src/globals.h, src/misc1.c,
src/os_unix.c
Rustine 6.1.041
Problème : ":mkvimrc" ne prend en compte les mappages dont le ctd débute par
un espace. (Davyd Ondrejko)
Solution : Insérer un CTRL-V avant l'espace initial. De même, afficher les
espaces initiaux et finaux avec la notation <>.
Fichiers : src/getchar.c, src/message.c
Rustine 6.1.042
Problème : "vim -r" ne montre pas toutes les correspondances quand
'wildignore' supprime les fichiers d'échange. (Steve Talley)
Solution : Conserver toutes les correspondances des noms de fichiers
d'échange.
Fichiers : src/memline.c
Rustine 6.1.043
Problème : Après la rustine 6.1.040, quelques avertissements sont émis.
Solution : Ajouter un transtypage vers "char *" pour mch_chdir(). (Axel
Kielhorn)
Fichiers : src/diff.c, src/ex_docmd.c.c, src/misc1.c, src/os_unix.c
Rustine 6.1.044 (extra)
Problème : IHM graphique : lors de l'utilisation du dialogue
Rechercher/Remplacer avec un texte contenant une oblique, une
commande de substitution invalide est générée.
Sur Win32, la recherche ne fonctionne pas quand 'insertmode' est
activé.
Solution : Protéger les obliques avec des contre-obliques.
Mettre en commun le code Win32, Motif et GTK+ pour le dialogue
Rechercher/Remplacer.
Ajouter l'option "Respecter la casse" pour Motif et GTK+.
Fichiers : src/feature.h, src/proto/gui.pro, src/gui.c, src/gui.h,
src/gui_motif.c, src/gui_gtk.c, src/gui_w48.c
Rustine 6.1.045
Problème : En mode Visuel, avec de nombreux replis et 'scrolloff' fixé à 999,
déplacer le curseur à proximité de la fin du fichier provoque des
sauts de haut en bas et inversement dans le texte. (Lubomir Host)
Solution : Prendre en compte la cas où le curseur est sur la dernière ligne
d'un repli fermé.
Fichiers : src/move.c
Rustine 6.1.046
Problème : IHM graphique X11 : ":set lsp=2 gcr=n-v-i:hor1-blinkon0" dessine
un rectangle noir. ":set lsp=2 gcr=n-v-i:hor10-blinkon0" fait
disparaître le curseur. (Nam SungHyun)
Solution : Calculer correctement la hauteur du curseur horizontal.
Fichiers : src/gui_gtk_x11.c, src/gui_x11.c
Rustine 6.1.047
Problème : Quand des commandes sont ignorées suite à une erreur, les
expressions des commandes ":if", ":elseif" et ":while" sont tout
de même évaluées.
Solution : Sauter les expressions après une erreur. (Servatius Brandt)
Fichiers : src/ex_docmd.c
Rustine 6.1.048
Problème : Les modifications pour Unicode 3.2 ne prenaient pas en compte
certains caractères hangul jamo.
Solution : Reconnaître davantage de caractères comme caractères de
composition. (Jungshik Shin)
Fichiers : src/mbyte.c
Rustine 6.1.049 (extra)
Problème : Sur un affichage 32 bits, une couleur valide peut provoquer un
message d'erreur, car la valeur du pixel est négative. (Chris
Paulson-Ellis)
Solution : Tester -11111 plutôt que la négativité de la couleur.
Ne pas ajouter un à la valeur du pixel, car -1 peut être utilisé
pour la couleur blanche.
Fichiers : src/globals.h, src/gui.c, src/gui.h, src/gui_amiga.c,
src/gui_athena.c, src/gui_beos.cc, src/gui_gtk_x11.c,
src/gui_mac.c, src/gui_motif.c, src/gui_photon.c,
src/gui_riscos.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c,
src/gui_x11.c, src/mbyte.c, src/syntax.c
Rustine 6.1.050 (basée sur 6.1.049)
Problème : Après la version 6.1.049, la version non graphique ne compile
plus.
Solution : Ajouter un #ifdef FEAT_GUI. (Robert Stanton)
Fichiers : src/syntax.c
Rustine 6.1.051 (basée sur 6.1.044)
Problème : Impossible de compiler l'IHM graphique et le petit jeu de
fonctionnalités.
Solution : Ajuster le #if pour ga_append().
Fichiers : src/misc2.c
Rustine 6.1.052
Problème : Unix : la fonction executable() ne fonctionne pas quand la
commande "which" n'est pas disponible.
Solution : Parcourir $PATH manuellement. Faire que cela fonctionne aussi sur
VMS.
Fichiers : src/os_unix.c
Rustine 6.1.053
Problème : Quand 'sessionoptions' contient "globals" ou "localoptions" et
qu'une option contient une coupure de ligne, le script
correspondant est faux.
Solution : Utiliser "\n" et "\r" pour une coupure de ligne. (Srinath
Avadhanula)
Fichiers : src/eval.c
Rustine 6.1.054
Problème : IHM graphique : un clic de souris n'est pas reconnu à l'invite
Plus, même quand 'mouse' contient 'r'.
Solution : Reconnaître un clic de souris à l'invite Plus.
Aussi accepter un clic de souris sur la dernière ligne dans l'IHM
graphique.
Ajouter l'entrée "ml" dans 'mouseshape'.
Fichiers : src/gui.c, src/message.c, src/misc1.c, src/misc2.c, src/option.c,
src/structs.h
Rustine 6.1.055
Problème : Lors de l'édition d'un fichier compressé, Vim inspectera le
contenu pour déterminer le type du fichier.
Solution : Ne pas sourcer "scripts.vim" avec les fichiers .Z, .gz, .bz2, .zip
et .tgz.
Fichiers : runtime/filetype.vim, runtime/plugin/gzip.vim
Rustine 6.1.056
Problème : Le chargement du menu Syntaxe peut être assez long.
Solution : Ajouter la variable "skip_syntax_sel_menu". Quand elle est
définie, les fichiers de syntaxe disponibles ne sont listés pas
dans le menu Syntaxe.
Fichiers : runtime/doc/gui.txt, runtime/menu.vim
Rustine 6.1.057
Problème : Un <Echap> dans un mappage ne fonctionne pas tel qu'il est
documenté quand 'insertmode' est activé, il amène du mode Visuel
ou Normal au mode Insertion. (Benji Fisher)
Solution : Faire que cela fonctionne comme documenté.
Fichiers : src/normal.c
Rustine 6.1.058
Problème : Quand il existe un repli fermé juste au-dessus de la première
ligne dans la fenêtre, l'utilisation de CTRL-X CTRL-Y en mode
Insertion n'affiche qu'une seule ligne du repli. (Alexey
Marinichev)
Solution : Corriger le numéro de la ligne la ligne supérieure en y mettant
celui de la ligne du début du repli.
Fichiers : src/move.c
Rustine 6.1.059
Problème : ":redir > ~/fichier" ne fonctionne pas. (Stephen Rasku)
Solution : Étendre les variables d'environnement dans l'argument de
":redir >".
Fichiers : src/ex_docmd.c
Rustine 6.1.060
Problème : Avec 'virtualedit' activé et 'selection' valant "exclusive",
effacer un caractère juste avant une tabulation change cette
tabulation en espaces. L'annulation ne restaure pas la tabulation.
(Helmut Stiegler)
Solution : Ne pas remplacer la tabulation par des espaces quand ce n'est pas
nécessaire. Mémoriser correctement la ligne avant qu'elle soit
modifiée.
Fichiers : src/ops.c
Rustine 6.1.061
Problème : Avec 'virtualedit' activé et 'selection' valant "exclusive", une
sélection Visuel se terminant juste après une tabulation n'inclut
pas cette tabulation dans la surbrillance. (Helmut Stiegler)
Solution : Utiliser une méthode différente pour exclure le caractère sous le
curseur.
Fichiers : src/screen.c
Rustine 6.1.062
Problème : Le greffon de type de fichier "man" ne fonctionne pas correctement
sur Solaris 5.
Solution : Utiliser un principe de détection différent pour déterminer si
"man -s" doit être utilisé. (Hugh Sasse)
Fichiers : runtime/ftplugin/man.vim
Rustine 6.1.063
Problème : L'indentation Java ne fonctionne pas correctement.
Solution : Ignorer les commentaires lors du test pour savoir si l'indentation
augmente après une "}".
Fichiers : runtime/indent/java.vim
Rustine 6.1.064
Problème : Les URL reconnues par le greffon "netrw.vim" pour ftp et rcp ne
sont pas conformes au standard
méthode://[utilisateur@]hôte[:port]/chemin.
Solution : Utiliser ftp://[utilisateur@]hôte[[:#]port]/chemin, qui supporte
aussi bien l'ancien et le nouveau style. Ajout d'un support très
partiel de dav/cadaver. (Charles Campbell)
Fichiers : runtime/plugin/netrw.vim
Rustine 6.1.065
Problème : VMS : les menus Jeu de couleur, Réglages clavier et Type de
compilateur ne sont pas construits.
Solution : Ignorer la casse lors de la recherche de fichiers ".vim". (Coen
Engelbarts)
Fichiers : runtime/menu.vim
Rustine 6.1.066 (extra)
Problème : L'appel à system() dans un greffon lisant l'entrée standard
bloque.
Solution : Ne pas passer le terminal en mode RAW quand il ne l'était pas
avant l'appel à system().
Fichiers : src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_unix.c,
src/os_win16.c, src/os_win32.c
Rustine 6.1.067
Problème : ":set viminfo+=f0" ne fonctionne pas. (Benji Fisher)
Solution : Tester le drapeau "f" au lieu de "'" dans 'viminfo'.
Fichiers : src/mark.c
Rustine 6.1.068
Problème : Quand un fichier est rechargé après qu'il ait été modifié en
dehors de Vim, le mode diff n'est pas mis à jour. (Michael
Naumann)
Solution : Invalider les informations du mode diff de façon à ce que ce
dernier soit rafraîchi quand c'est nécessaire.
Fichiers : src/fileio.c
Rustine 6.1.069
Problème : Avec 'showmatch' activé et "$" dans 'cpoptions', utiliser
"C}<Esc>" peut omettre de supprimer le "$". (Preben Guldberg)
Solution : Restaurer dollar_vcol après l'affichage de la position
correspondante du curseur.
Fichiers : src/search.c
Rustine 6.1.070 (basée sur 6.1.060)
Problème : Avertissements du compilateur sur des incohérences
signé/non-signé. (Mike Williams)
Solution : Ajouter un transtypage en int.
Fichiers : src/ops.c
Rustine 6.1.071
Problème : Quand 'selection' vaut "exclusive", "g CTRL-G" en mode Visuel
compte un caractère de trop. (David Necas)
Solution : Retrancher un à la position finale.
Fichiers : src/ops.c
Rustine 6.1.072
Problème : Quand un nom de fichier dans un fichier de marqueurs débute par
http:// ou quoi que ce soit d'autre pour lequel il existe une
autocommande BufReadCmd, le fichier n'est pas ouvert.
Solution : Vérifier s'il existe une autocommande BufReadCmd correspondante et
tenter d'ouvrir le fichier.
Fichiers : src/fileio.c, src/proto/fileio.pro, src/tag.c
Rustine 6.1.073 (extra)
Problème : BC5 : Il n'est pas évident de spécifier une version légère,
simple, normal, grosse ou massive.
Solution : Permettre la sélection de la version avec la variable FEATURES.
(Ajit Thakkar)
Fichiers : src/Make_bc5.mak
Rustine 6.1.074
Problème : Quand 'cdpath' contient "../..", changer de répertoire pour un
répertoire dans lequel Vim se trouve déjà ne fonctionne pas.
ff_check_visited() ajoute le répertoire deux fois en tant que
racine pour la recherche et pour les correspondances actuelles.
(Stephen Rasku)
Solution : Utiliser une liste séparée pour les répertoires déjà parcourus.
Fichiers : src/misc2.c
Rustine 6.1.075 (basée sur 6.1.072)
Problème : Impossible de compiler "fileio.c" sur MS-Windows.
Solution : Ajouter une déclaration pour le pointeur "p". (Madoka Machitani)
Fichiers : src/fileio.c
Rustine 6.1.076 (extra)
Problème : Macintosh : le greffon "explorer.vim" ne fonctionne pas sur Mac
Classic. L'IME ne fonctionne pas. Les boîtes de dialogues ne
fonctionnent pas sur Mac OS X
Solution : Corriger le greffon "explorer.vim" et les modificateurs du
clavier. (Axel Kielhorn)
Corriger le support de l'IME. (Muraoka Taro)
Désactiver les boîtes de dialogue. (Benji Fisher)
Fichiers : src/edit.c, src/feature.h, src/gui_mac.c, src/os_mac.c
Rustine 6.1.077
Problème : Sur les systèmes Debian, l'édition de liens échoue avec les ACL.
(Lubomir Host)
Solution : Quand bibliothèque "acl" est utilisée, vérifier si la bibliothèque
"attr" est présente et l'utiliser.
Fichiers : src/auto/configure, src/configure.in, src/link.sh
Rustine 6.1.078
Problème : Quand 'foldmethod' vaut "marker" et que la balise de fin apparaît
avant la balise de début dans le fichier, aucun repli n'est
trouvé. (Nazri Ramliy)
Solution : Ne pas autoriser de profondeur de repli négative.
Fichiers : src/fold.c
Rustine 6.1.079
Problème : Lors de l'utilisation de "s" en mode Visuel par bloc avec
'virtualedit' activé, quand le bloc sélectionné va au-delà de la
fin de certaines lignes, le mauvais texte est inséré et certaines
lignes sont ignorées. (Servatius Brandt)
Solution : Insérer le bon texte et étendre les lignes trop courtes.
Fichiers : src/ops.c
Rustine 6.1.080
Problème : Lors de l'utilisation de GCC avec "/usr/local" déjà présent dans
le chemin de recherche, l'ajouter encore pose des problèmes.
Solution : Ajuster "configure.in" pour éviter d'ajouter "/usr/local/include"
et "/usr/local/lib" alors qu'ils sont déjà pris en compte lors de
l'utilisation de GCC. (Johannes Zellner)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.081
Problème : ":help CTRL-\_CTRL-N" ne fonctionne pas. (Christian J. Robinson)
Solution : Doubler la contre-oblique pour éviter la signification spéciale de
"\_".
Fichiers : src/ex_cmds.c
Rustine 6.1.082
Problème : Sur MS-Windows, le script "vimrc_example.vim" est sourcé, puis
"mswin.vim". Cela permet l'utilisation du mode Sélection, mais
comme "p" est mappé, il ne remplace pas la sélection.
Solution : Supprimer le mappage de "p" dans "vimrc_example.vim", il est
obsolète. (Vlad Sandrini)
Fichiers : runtime/vimrc_example.vim
Rustine 6.1.083
Problème : Quand $LANG vaut "sk" ou "sk_sk", le menu slovaque n'est pas
trouvé. (Martin Lacko)
Solution : Déterminer le bon fichier de menu en se basant sur le système.
Fichiers : runtime/lang/menu_sk_sk.vim
Rustine 6.1.084 (basée sur 6.1.080)
Problème : "include" et "lib" sont mélangés lors la vérification des
répertoires déjà parcourus par GCC.
Solution : Intervertir les noms des variables. (SunHo Kim)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.085
Problème : Lors de l'utilisation de CTRL-O CTRL-\ CTRL-N en mode Insertion,
le mode "(insert)" affiché n'est pas effacé. (Benji Fisher)
Solution : Effacer le ligne de commande.
Fichiers : src/normal.c
Rustine 6.1.086 (basée sur 6.1.049)
Problème : La couleur guifg pour CursorIM ne prend pas effet.
Solution : Utiliser la couleur du premier plan quand elle est définie.
(Muraoka Taro)
Fichiers : src/gui.c
Rustine 6.1.087
Problème : Un thésaurus avec des caractères japonais rencontre des problèmes
avec les caractères de différentes classes de mots.
Solution : Ne séparer les mots qu'avec des caractères simple-octet non mot.
(Muraoka Taro)
Fichiers : src/edit.c
Rustine 6.1.088 (extra)
Problème : Win32 : aucune information de débogage n'est générée. Le fichier
de marqueurs ne tient pas compte des fichiers .cpp.
Solution : Ajouter "/map" aux drapeaux du compilateur. Ajouter "*.cpp" à la
commande `ctags`. (Muraoka Taro)
Fichiers : src/Make_mvc.mak
Rustine 6.1.089
Problème : Sur les systèmes BSDI, il n'existe pas de champ ss_sp dans
stack_t. (Robert Jan)
Solution : Utiliser ss_base à la place.
Fichiers : src/auto/configure, src/configure.in, src/config.h.in,
src/os_unix.c
Rustine 6.1.090
Problème : CTRL-F reste bloqué quand 'scrolloff' est non nul et qu'il se
trouve un mélange de longues lignes enroulées et de lignes non
enroulées.
Solution : Vérifier que CTRL-F défile au moins d'une ligne.
Fichiers : src/move.c
Rustine 6.1.091
Problème : GTK : impossible de changer preeditstate sans fixer
'imactivatekey'.
Solution : Ajouter du code pour changer preeditstate pour OnTheSpot.
(Yasuhiro Matsumoto)
Fichiers : src/mbyte.c
Rustine 6.1.092
Problème : ":mapclear <tampon>" ne fonctionne pas. (Srikanth Adayapalam)
Solution : Permettre un argument pour la commande ":mapclear".
Fichiers : src/ex_cmds.h
Rustine 6.1.093 (extra)
Problème : IHM graphique Mac et MS-Windows : lors d'un défilement alors que
":s" est cours d'exécution, le résultat peut être corrompu, car le
curseur est déplacé.
Solution : Désactiver le défilement direct quand aucun caractère n'est
attendu.
Fichiers : src/gui_mac.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c
Rustine 6.1.094
Problème : CygWin : le passage d'un nom de fichier avec des contre-obliques
n'est pas pris en charge correctement.
Solution : Convertir les arguments du type nom de fichier en Posix. (Chris
Metcalf)
Fichiers : src/main.c
Rustine 6.1.095
Problème : Lors de l'utilisation de symboles, des éléments de la pile peuvent
être libérés.
Passer outre la couleur des symboles ne fonctionne pas. (Srikanth
Sankaran)
Solution : Ne pas libérer d'éléments sur la pile. Utiliser NULL à la place de
"none" pour la valeur de la couleur.
Fichiers : src/gui_x11.c
Rustine 6.1.096
Problème : Lors de l'effacement de la moitié droite d'un caractère
double-octets, plusieurs caractères suivants peuvent être effacés.
(Yasuhiro Matsumoto)
Solution : S'assurer qu'un seul caractère est effacé.
Fichiers : src/screen.c
Rustine 6.1.097 (basée sur 6.1.090)
Problème : Avec 'scrolloff' fixé à une très grande valeur, CTRL-F à la fin du
fichier défile d'une ligne. (Lubomir Host)
Solution : Ne pas défiler quand CTRL-F détecte la fin-de-fichier.
Fichiers : src/move.c
Rustine 6.1.098
Problème : MS-Windows : quand le programme `xxd` est dans "c:\Program Files",
le menu "Convertir en hexa" ne fonctionne pas. (Brian Mathis)
Solution : Mettre le chemin de `xxd` entre doubles-apostrophes.
Fichiers : runtime/menu.vim
Rustine 6.1.099
Problème : Corruption de la mémoire lors de la fermeture d'un repli de plus
de 99999 lignes.
Solution : Allouer davantage d'espace pour le texte replié. (Walter Briscoe)
Fichiers : src/eval.c
Rustine 6.1.100 (extra, basée sur 6.1.088)
Problème : Win32 : VC5 et antérieurs ne supportent pas l'option "/mapinfo".
Solution : Ajouter "/mapinfo" seulement quand "MAP=lines" est spécifié.
(Muraoka Taro)
Fichiers : src/Make_mvc.mak
Rustine 6.1.101
Problème : Après l'utilisation de ":options", le taquet de tabulation d'une
nouvelle fenêtre est à 15. L'entrée 'autowriteall' de la fenêtre
":options" est fausse. (Antoine J Mechelynck) Impossible d'insérer
un espace dans la valeur d'une option.
Solution : Utiliser ":setlocal" au lieu de ":set". Changer "aw" en "awa".
Ne pas mapper l'espace en mode Insertion.
Fichiers : runtime/optwin.vim
Rustine 6.1.102
Problème : Les caractères multi-octets non imprimables dans la ligne d'état
ne sont pas tronqués correctement. (Yasuhiro Matsumoto)
Solution : Compter la largeur des caractères plutôt que leur nombre d'octets.
Fichiers : src/buffer.c
Rustine 6.1.103
Problème : Une fonction revenant d'une boucle while, avec 'verbose' à 12 ou
plus, ne donne pas de valeur de retour. Une fonction avec
l'attribut 'abort' peut retourner -1 alors que le message de
débogage indique autre chose.
Solution : Déplacer le message de débogage à propos du retour d'une fonction
dans call_func(). (Servatius Brandt)
Fichiers : src/eval.c
Rustine 6.1.104
Problème : GCC 3.1 semble avoir un problème d'optimisation faisant planter
"test3".
Solution : Avec GCC 3.1, ajouter "-fno-strength-reduce" pour éviter le bogue
de l'optimisation.
Récupérer de l'information depuis "gcc --version".
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.105
Problème : Win32 : la valeur par défaut de 'shellpipe' ne redirige pas
stderr. (Dion Nicolaas)
Solution : Rediriger stderr, selon le shell (comme avec 'shellredir').
Fichiers : src/option.c
Rustine 6.1.106
Problème : Le programme de labyrinthe ("maze") plante.
Solution : Remplacer "11" par "27", et ça marche. (Greg Roelofs)
Fichiers : runtime/macros/maze/mazeansi.c
Rustine 6.1.107
Problème : Quand 'list' est activé, la ligne courante dans la fenêtre
d'erreur peut être mal affichée. (Muraoka Taro)
Solution : Ne pas continuer la ligne après que le "$" ait été affiché et que
la colonne la plus à droite est atteinte.
Fichiers : src/screen.c
Rustine 6.1.108
Problème : Lors de l'interruption d'un commande de filtre comme "!!sleep 20",
le fichier passe en lecture seule. (Mark Brader)
Solution : Positionner le drapeau de lecture seule uniquement quand
l'ouverture d'un tampon est interrompue.
Quand une commande du shell est interrompue, lire la sortie
produite avant l'interruption.
Fichiers : src/ex_cmds.c, src/fileio.c
Rustine 6.1.109
Problème : Quand 'eadirection' vaut "hor", l'utilisation de CTRL-W =
n'égalise pas la hauteur des fenêtres. (Roman Neuhauser)
Solution : Ignorer 'eadirection' avec CTRL-W =.
Fichiers : src/window.c
Rustine 6.1.110
Problème : Lors de l'utilisation de ":badd fichier" alors que "fichier" est
déjà présent mais non listé, il reste non listé. (David Frey)
Solution : Fixer 'buflisted'.
Fichiers : src/buffer.c
Rustine 6.1.111
Problème : Il n'est pas possible de détecter l'utilisation des sources Unix
sur les plates-formes Win32 et Mac.
Solution : Ajouter has("macunix") et has("win32unix").
Fichiers : runtime/doc/eval.txt, src/eval.c
Rustine 6.1.112
Problème : Lors de l'utilisation de ":argdo", ":bufdo" ou ":windo", CTRL-O ne
se rend pas à la position du curseur avant l'exécution de la
commande, mais à chaque position où l'argument a été exécuté.
Solution : Ne mémoriser que la position du curseur précédant l'exécution de
":argdo", ":bufdo" et ":windo".
Fichiers : src/ex_cmds2.c, src/mark.c
Rustine 6.1.113
Problème : ":bufdo bwipe" ne détruit que la moitié des tampons. (Roman
Neuhauser)
Solution : Décider du tampon suivant avant d'exécuter la commande.
Fichiers : src/ex_cmds2.c
Rustine 6.1.114
Problème : ":python import vim" et ":python vim.current.buffer[0:0] = []"
retourne une erreur lalloc(0). (Chris Southern)
Solution : Ne pas allouer un tableau quand sa taille est nulle.
Fichiers : src/if_python.c
Rustine 6.1.115
Problème : "das" sur un espace blanc à la fin d'un paragraphe n'efface pas le
"." terminant la phrase.
Solution : Ne pas exclure le dernier caractère quand ce n'est pas un espace
blanc.
Fichiers : src/search.c
Rustine 6.1.116
Problème : Quand 'endofline' est modifié alors que 'binary' est activé, un
fichier devrait être considéré comme modifié. (Olaf Buddenhagen)
Solution : Mémoriser la valeur de 'eol' au début de l'édition et considérer
que le fichier est modifié quand la valeur courante est différente
alors que 'binary' est activé. Corriger le titre de la fenêtre qui
n'est pas mis à jour quand 'ff' ou 'bin' sont modifiés.
Fichiers : src/option.c, src/structs.h
Rustine 6.1.117
Problème : Petit problème lors de l'édition d'un fichier au travers de FTP
avec CygWin.
Solution : Supprimer un point dans la commande ":normal". Utiliser "cygdrive"
aux endroits appropriés. (Charles Campbell)
Fichiers : runtime/plugin/netrw.vim
Rustine 6.1.118
Problème : Quand un fichier en mode diff est rechargé suite à une
modification extérieure, les autres fenêtres en mode diff ne sont
pas toujours mises à jour. (Michael Naumann)
Solution : Après le rechargement d'un fichier en mode diff, signaler toutes
les fenêtres en mode diff comme candidates au rafraîchissement.
Fichiers : src/diff.c
Rustine 6.1.119 (extra)
Problème : Avec l'interface Sniff+ et Sniff 4.0.X sur HP-UX, un plantage peut
survenir lors de la connexion vers Sniff.
Solution : Initialiser sniff_rq_sep de façon à ce que sa valeur puisse être
modifiée. (Martin Egloff)
Fichiers : src/if_sniff.c
Rustine 6.1.120 (basée sur 6.1.097)
Problème : Quand 'scrolloff' est non nul et qu'il existe des replis, CTRL-F à
la fin du fichier défile d'une partie d'un repli fermé. (Lubomir
Host)
Solution : Ajuster la première ligne au début d'un repli.
Fichiers : src/move.c
Rustine 6.1.121 (basée sur 6.1.098)
Problème : Lors du passage du mode Insertion au mode Sélection, et que
l'entrée Coller du menu est utilisée, le curseur est laissé avant
le dernier caractère collé. (Mario Schweigler)
Solution : Déplacer le curseur en mode Insertion d'un caractère vers la
droite.
Fichiers : runtime/menu.vim
Rustine 6.1.122
Problème : ":file nom" crée un nouveau tampon pour garder l'ancien nom du
tampon, qui devient alors un nom alternatif. Ce tampon est listé à
tort.
Solution : Créer un tampon non listé pour le nom alternatif.
Fichiers : src/ex_cmds.c
Rustine 6.1.123
Problème : Une commande ":match" avec plusieurs arguments ne rapporte pas
d'erreur.
Solution : Vérifier les caractères supplémentaires. (Servatius Brandt)
Fichiers : src/ex_docmd.c
Rustine 6.1.124
Problème : Lors d'une tentative pour quitter alors qu'il existe un tampon
caché avec 'eol' désactivé et 'bin' activé, il est impossible de
quitter. (John McGowan)
Solution : Fixer b_start_eol lors de l'effacement du tampon.
Fichiers : src/buffer.c
Rustine 6.1.125
Problème : Le greffon "explorer.vim" demande pour enregistrer un tampon
modifié même quand ce dernier est également ouvert dans une autre
fenêtre.
Solution : Compter le nombre de fenêtres utilisant le tampon.
Fichiers : runtime/plugin/explorer.vim
Rustine 6.1.126
Problème : Ajouter les choix dans le menu Syntaxe représente la plus grande
partie du temps de démarrage de l'IHM graphique, alors qu'il n'est
pas souvent utilisé.
Solution : N'ajouter les choix que si l'utilisateur souhaite les utiliser.
Fichiers : Makefile, runtime/makemenu.vim, runtime/menu.vim,
runtime/synmenu.vim, src/Makefile
Rustine 6.1.127
Problème : Lors de l'utilisation de "--remote file" alors que 'insertmode'
est activé sur le serveur, les commandes sont insérées au lieu
d'être exécutées. (Niklas Volbers)
Solution : Retourner en mode Normal après la commande ":drop".
Fichiers : src/main.c
Rustine 6.1.128
Problème : L'expression "input('très très longue invite')" place le curseur
dans la mauvaise ligne (la colonne est correcte).
Solution : Ajouter les lignes enroulées à l'indentation. (Yasuhiro Matsumoto)
Fichiers : src/ex_getln.c
Rustine 6.1.129
Problème : Sur Solaris, l'édition de "fichier/" puis de "fichier" aboutit à
l'utilisation du même tampon. (Jim Battle)
Solution : Avant d'utiliser stat(), vérifier qu'aucune oblique finale
invalide n'est présente.
Fichiers : src/auto/configure, src/config.h.in, src/configure.in,
src/macros.h src/misc2.c, src/proto/misc2.pro
Rustine 6.1.130
Problème : La documentation de certains éléments de 'errorformat' n'est pas
claire.
Solution : Ajouter davantage d'exemples et expliquer longuement pour
clarifier le rôle des éléments. (Stefan Roemer)
Fichiers : runtime/doc/quickfix.txt
Rustine 6.1.131
Problème : IHM graphique X11 : lors de l'expansion d'un octet CSI en K_CSI
dans le flux d'entrée, l'octet CSI lui-même n'est pas copié.
Solution : Copier l'octet CSI.
Fichiers : src/gui_x11.c
Rustine 6.1.132
Problème : Exécuter un registre en mode Ex peut faire que certaines commandes
sont sautées. (John McGowan)
Solution : En mode Ex, effectuer une vérification supplémentaire pour tester
si le contenu du registre est épuisé, pour éviter que l'entrée
aille dans le tampon typeahead.
Fichiers : src/ex_docmd.c
Rustine 6.1.133
Problème : Lors du dessin d'un caractère à largeur double dans la ligne
d'état, la moitié du caractère peut être effacée. (Yasuhiro
Matsumoto)
Solution : Forcer le rafraîchissement du caractère suivant en fixant ses
attributs au lieu de mettre un octet NUL dans ScreenLines[].
Mettre un octet NUL dans ScreenLines[] quand la moitié d'un
caractère à largeur double est écrasée.
Fichiers : src/screen.c
Rustine 6.1.134
Problème : Une erreur à propos d'un argument final de ":match" ne devrait pas
être émise après un ":if 0". (Servatius Brandt)
Solution : Faire le test uniquement quand les commandes sont exécutées.
Fichiers : src/ex_docmd.c
Rustine 6.1.135
Problème : Le passage au shell d'une commande qui contient un saut-de-ligne
présente toujours une contre-oblique avant le saut-de-ligne.
Solution : Supprimer la contre-oblique avant le saut-de-ligne. (Servatius
Brandt)
Fichiers : src/ex_docmd.c
Rustine 6.1.136
Problème : Quand $TERM vaut "linux", la valeur par défaut de 'background' est
"dark", même si l'IHM graphique utilise un fond clair. (Hugh
Allen)
Solution : Ne pas signaler l'option comme fixée quand la valeur par défaut
est utilisée dans la console Linux. De même, réinitialiser
'background' à "light" quand l'IHM graphique a un fond clair.
Fichiers : src/option.c
Rustine 6.1.137
Problème : La conversion en HTML utilise une manière maladroite pour prendre
en compte les tabulations, qui peut modifier la surbrillance.
Solution : Remplacer les tabulations par des espaces après la conversion
d'une ligne en HTML. (Preben Guldberg)
Fichiers : runtime/syntax/2html.vim
Rustine 6.1.138 (basée sur 6.1.126)
Problème : L'ajout d'éléments supplémentaires dans le menu Syntaxe n'est pas
possible quand le menu "Afficher tout le menu" est utilisé.
Solution : Utiliser ":runtime!" au lieu de ":source", afin que tous les
fichiers "synmenu.vim" dans le chemin de support soient chargés.
(Servatius Brandt)
Corriger le problème des menus traduits impossibles à supprimer.
Fichiers : runtime/menu.vim
Rustine 6.1.139
Problème : CygWin : PATH_MAX n'est pas défini.
Solution : Inclure "limits.h". (Dan Sharp)
Fichiers : src/main.c
Rustine 6.1.140
Problème : CygWin : ":args `ls *.c`" ne fonctionne pas si la commande shell
produits de CR LF comme séparateurs de lignes.
Solution : Supprimer nous-mêmes les caractères CR. (Pavol Juhas)
Fichiers : src/os_unix.c
Rustine 6.1.141
Problème : ":wincmd gx" peut poser des problèmes quand il est mélangé avec
d'autres commandes.
":wincmd c" ne ferme pas la fenêtre immédiatement. (Benji Fisher)
Solution : Passer le caractère supplémentaire directement au lieu d'utiliser
le tampon générique, et appeler ex_close() directement.
Fichiers : src/ex_docmd.c, src/normal.c, src/proto/normal.pro,
src/proto/window.pro, src/window.c
Rustine 6.1.142
Problème : Définir des paragraphes sans ligne blanche de séparation n'est pas
possible. Il n'est pas possible de mettre en forme automatiquement
les paragraphes.
Solution : Permettre la définion de paragraphes dont les lignes se terminent
par un espace blanc.
Ajout des drapeaux 'w' et 'a' dans 'formatoptions'.
Fichiers : runtime/doc/change.txt, src/edit.c, src/misc1.c, src/normal.c,
src/option.h, src/ops.c, src/proto/edit.pro, src/proto/ops.pro,
src/vim.h
Rustine 6.1.143 (basée sur 6.1.142)
Problème : La mise en forme automatique à proximité de la fin du fichier
place le curseur au mauvais endroit. En mode Insertion, certaines
lignes font un caractère de moins que prévu. Lors du coupage d'une
ligne, l'annulation peut ne pas se dérouler correctement.
Solution : Ne pas toujours déplacer le curseur à la fin de la ligne dans la
dernière ligne en mode Insertion.
Après le coupage d'une ligne, mémoriser la ligne du curseur pour
l'annulation.
Fichiers : src/edit.c, src/ops.c, src/normal.c
Rustine 6.1.144
Problème : L'obtention de la taille d'une ligne en caractères d'écran peut
retourner une valeur fausse. Un pointeur peut boucler après zéro.
Solution : Dans win_linetabsize(), vérifier la longueur MAXCOL de l'argument.
(Jim Dunleavy)
Fichiers : src/charset.c
Rustine 6.1.145
Problème : GTK+ : le glisser/déposer avec plus de 3 fichiers peut provoquer
un plantage. (Mickael Marchand)
Solution : Réécrire le code qui analyse la liste des fichiers reçue pour le
rendre plus robuste.
Fichiers : src/charset.c, src/gui_gtk_x11.c
Rustine 6.1.146
Problème : MS-Windows : quand $HOME est construit avec $HOMEDRIVE et
$HOMEPATH, elle n'est pas utilisée pour enregistrer le fichier
_viminfo. (Normal Diamond)
Solution : Fixer $HOME à la valeur obtenue avec $HOMEDRIVE et $HOMEPATH.
Fichiers : src/misc1.c
Rustine 6.1.147 (extra)
Problème : MS-Windows : quand un dialogue n'a pas de bouton par défaut,
appuyer sur Entrée y met fin et tous les boutons sont
sélectionnés.
Solution : Ne pas mettre fin à un dialogue s'il n'a pas de bouton par défaut.
Ne pas sélectionner tous les boutons quand il n'y a pas de bouton
par défaut. (Vince Negri)
Fichiers : src/gui_w32.c
Rustine 6.1.148 (extra)
Problème : MS-Windows : les ACL ne sont pas correctement supportées.
Solution : Ajouter un remplacement pour access() qui fonctionne. (Mike
Williams)
Fichiers : runtime/doc/editing.txt, src/os_win32.c
Rustine 6.1.149 (extra)
Problème : MS-Windows : impossible d'utiliser le mode diff depuis
l'explorateur de fichiers.
Solution : Ajouter une entrée "diff with Vim" dans le menu contextuel. (Dan
Sharp)
Fichiers : GvimExt/gvimext.cpp, GvimExt/gvimext.h
Rustine 6.1.150
Problème : OS/2, MS-Windows et MS-DOS : quand 'shellslash' est activé,
getcwd() utilise encore des contre-obliques. (Yegappan Lakshmanan)
Solution : Ajuster les obliques dans getcwd().
Fichiers : src/eval.c
Rustine 6.1.151 (extra)
Problème : Win32 : le substream NTFS n'est pas copié.
Solution : Copier le substream quand une copie de sauvegarde est réalisée.
(Muraoka Taro)
Fichiers : src/fileio.c, src/os_win32.c, src/proto/os_win32.pro
Rustine 6.1.152
Problème : Quand $LANG vaut "iso8859-1", les menus traduits ne sont pas
utilisés.
Solution : Changer "iso8859" en "iso_8859".
Fichiers : runtime/menu.vim
Rustine 6.1.153
Problème : Rechercher dans les fichiers inclus peut boucler récursivement si
le chemin commence par "../". (Sven Berkvens-Matthijsse)
Solution : Comparer les noms de fichiers complets, utiliser les
inodes/périphériques quand c'est possible.
Fichiers : src/search.c
Rustine 6.1.154 (extra)
Problème : DJGPP : "vim -h" laisse le curseur au mauvais endroit.
Solution : Ne pas placer le curseur en utilisant des variables non
initialisées. (Jim Dunleavy)
Fichiers : src/os_msdos.c
Rustine 6.1.155
Problème : Win32 : le curseur peut parfois disparaître en mode Insertion.
Solution : Remplacer "hor10" par "hor15" dans 'guicursor'. (Walter Briscoe)
Fichiers : src/option.c
Rustine 6.1.156
Problème : La conversion entre DBCS et UCS-2 n'est pas mise en oeuvre très
proprement.
Solution : Nettoyage de quelques points qui le nécessitaient.
Fichiers : src/mbyte.c, src/structs.h
Rustine 6.1.157
Problème : 'hlsearch' ne met en surbrillance que la deuxième virgule dans
",,,,," avec "/,\@<=[^,]*". (Preben Guldberg)
Solution : Tester également le début une correspondance vide juste après la
correspondance précédente.
Fichiers : src/screen.c
Rustine 6.1.158
Problème : "zs" et "ze" ne fonctionnent pas correctement avec
":set nowrap siso=1". (Preben Guldberg)
Solution : Prendre 'siso' en compte lors du calcul de la position du
défilement horizontal avec "zs" et "ze".
Fichiers : src/normal.c
Rustine 6.1.159
Problème : Lors du développement d'une abréviation qui contient un caractère
multi-octets, trop de caractères sont effacés. (Andrey Urazov)
Solution : Effacer l'abréviation en comptant les caractères plutôt que les
octets.
Fichiers : src/getchar.c
Rustine 6.1.160
Problème : ":$read file.gz" ne fonctionne pas. (Preben Guldberg)
Solution : Ne pas utiliser la marque '[ après qu'elle soit devenue invalide.
Fichiers : runtime/plugin/gzip.vim
Rustine 6.1.161 (basée sur 6.1.158)
Problème : Avertissement au sujet d'une comparaison signé/non signé. Il est
possible de donner une valeur négative à 'siso'. (Mike Williams)
Solution : Ajouter un transtypage. Ajouter un test de négativité pour la
valeur de 'siso'.
Fichiers : src/normal.c, src/option.c
Rustine 6.1.162
Problème : Interface Python : les threads n'étaient pas initialisés
correctement.
Solution : Appeler PyEval_InitThreads() au lancement.
Fichiers : src/if_python.c
Rustine 6.1.163
Problème : Win32 : impossible de compiler avec Python après la rustine
6.1.162.
Solution : Charger dynamiquement PyEval_InitThreads(). (Dan Sharp)
Fichiers : src/if_python.c
Rustine 6.1.164
Problème : Si 'modifiable' est désactivé, la conversion avec `xxd` échoue
mais 'filetype' est tout de même fixé à "xxd".
Solution : Ne pas changer 'filetype' si la conversion a échoué.
Fichiers : runtime/menu.vim
Rustine 6.1.165
Problème : Faire des modifications dans plusieurs lignes, puis une
modifications dans l'une de ces lignes, la découpant en plusieurs
lignes, corrompt les informations d'annulation. Un plantage peut
survenir. (Dave Fishburn)
Solution : Quand une ligne est ignorée par l'annulation parce qu'elle a déjà
été mémorisée, en faire la dernière ligne mémorisée, de façon a ce
que les autres lignes mémorisées ne soient pas concernées quand
une commande change le nombre de lignes.
Fichiers : src/undo.c
Rustine 6.1.166
Problème : Avec 'autoindent' activé et "mswin.vim" sourcé, le collage avec
CTRL-V juste après l'autoindentation supprime l'indentation.
(Shlomi Fish)
Solution : Insérer d'abord un "x" et l'effacer à nouveau, de façon à ce que
l'autoindentation soit conservée.
Fichiers : runtime/mswin.vim
Rustine 6.1.167
Problème : Quand un argument négatif est fourni à ":retab", des choses
étranges se produisent. (Hans Ginzel)
Solution : Tester les valeurs négatives.
Fichiers : src/ex_cmds.c
Rustine 6.1.168
Problème : Appuyer sur CTRL-C à l'invite Appuyez-sur-Entrée n'interrompt pas
l'invite.
Solution : Faire que CTRL-C interrompe l'invite.
Fichiers : src/message.c
Rustine 6.1.169
Problème : bufexists() peut trouver un tampon en utilisant le nom d'un lien
symbolique, alors que bufnr() en est incapable. (Yegappan
Lakshmanan)
Solution : Quand bufnr() ne parvient pas à trouver un tampon, essayer la
méthode utilisée dans bufexists().
Fichiers : src/eval.c
Rustine 6.1.170
Problème : L'utilisation de ":mksession" emploie le nom par défaut pour le
fichier de session, mais pas "vim -S". (Hans Ginzel)
Solution : utiliser le nom de fichier de session par défaut si "-S" est le
dernier argument de la ligne de commande ou qu'une autre option le
suit.
Fichiers : runtime/doc/starting.txt, src/main.c
Rustine 6.1.171
Problème : Quand une ligne est ouverte juste au-dessus d'un repli fermé avec
"O" et que le début d'un commentaire est automatiquement inséré,
le curseur est affiché dans la première colonne. (Sung-Hyun Nam)
Solution : Mettre à jour le drapeau indiquant que le curseur est sur un repli
fermé.
Fichiers : src/misc1.c
Rustine 6.1.172
Problème : Le complètement de la ligne de commande pour ":tag /motif"
n'affiche pas le même résultat que ce que la commande trouve
finalement. (Gilles Roy)
Solution : Ne pas modifier le motif pour en faire une exprat.
Fichiers : src/ex_getln.c, src/tag.c
Rustine 6.1.173
Problème : Lors de l'utilisation du contrôle à distance pour éditer une
position dans un fichier, que ce fichier est le tampon courant et
qu'il est modifié, la fenêtre est partagée et la commande ":drop"
échoue.
Solution : Ne pas partager la fenêtre, continuer l'édition dans le même
tampon.
Utiliser la commande ":drop" dans VisVim pour éviter les problèmes
dans ce cas.
Fichiers : src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
VisVim/Commands.cpp
Rustine 6.1.174
Problème : Dans un script, il n'est pas évident de savoir si une option, en
plus d'exister, fonctionne vraiment.
Solution : Ajouter "exists('+option')".
Fichiers : runtime/doc/eval.txt, src/eval.c
Rustine 6.1.175
Problème : Lors de la lecture de commandes depuis un tube et que CTRL-C est
pressé, Vim bloque. (Piet Delport)
Solution : Ne pas continuer la lecture de caractères pour effacer le tampon
typeahead quand une interruption est détectée, arrêter dès qu'un
CTRL-C est lu.
Fichiers : src/getchar.c, src/ui.c
Rustine 6.1.176
Problème : Quand la limite de la pile est très grande, un erreur de
débordement erronée peut être détectée.
Solution : Ajouter un test de débordement pour le calcul de la limite de la
pile. (Jim Dunleavy)
Fichiers : src/os_unix.c
Rustine 6.1.177 (basée sur 6.1.141)
Problème : ":wincmd" n'autorise pas de commandes à sa suite. (Gary Johnson)
Solution : Vérifier la présence de " | cmd" à la fin. Émettre une erreur pour
les caractères finaux.
Fichiers : src/ex_docmd.c
Rustine 6.1.178
Problème : Avec 'expandtab' activé, "r<C-V><Tab>" étend aussi le tabulation.
(Bruce deVisser)
Solution : Remplacer par une tabulation littérale.
Fichiers : src/normal.c
Rustine 6.1.179 (basée sur 6.1.091)
Problème : Avec X11R5, XIMPreserveState n'est pas défini. (Albert Chin)
Solution : Inclure les définitions manquantes.
Fichiers : src/mbyte.c
Rustine 6.1.180
Problème : L'utilisation du code l'IHM graphique pour forker n'est pas
cohérente.
Solution : Définir MAY_FORK et l'utiliser pour des #ifdef ultérieurs. (Ben
Fowlwer)
Fichiers : src/gui.c
Rustine 6.1.181
Problème : Si le terminal n'enroule pas le dernier caractère d'une ligne dans
la ligne suivante, la dernière colonne est effacée. (Peter Karp)
Solution : Ne pas produire un espace pour marquer l'enroulement, mais plutôt
le même caractère final.
Fichiers : src/screen.c
Rustine 6.1.182 (basée sur 6.1.142)
Problème : Il est impossible de mettre automatiquement en forme seulement les
commentaires. (Moshe Kaminsky)
Solution : Quand les drapeaux 'a' et 'c' sont dans 'formatoptions', ne mettre
en forme automatiquement que les commentaires.
Fichiers : runtime/doc/change.txt, src/edit.c
Rustine 6.1.183
Problème : quand 'fencs' est vide et que 'enc' vaut "utf-8", la lecture d'un
fichier avec des octets invalides donne une erreur "CONVERSION
ERROR", même si aucune conversion n'est effectuée. 'readonly' est
activé, même si l'écriture du fichier aboutit à un fichier non
modifié.
Solution : Pour cette erreur particulière, utiliser "ILLEGAL BYTE" et ne pas
fixer 'readonly'.
Fichiers : src/fileio.c
Rustine 6.1.184 (extra)
Problème : Les boutons supplémentaires de certaines souris ne fonctionnent
pas.
Solution : Supporter deux boutons supplémentaires sur MS-Windows. (Michael
Geddes)
Fichiers : runtime/doc/term.txt, src/edit.c, src/ex_getln.c, src/gui.c,
src/gui_w32.c, src/gui_w48.c, src/keymap.h, src/message.c,
src/misc1.c, src/misc2.c, src/normal.c. src/vim.h
Rustine 6.1.185 (basée sur 6.1.182)
Problème : Impossible de compiler sans la fonctionnalité +comments.
Solution : Ajouter #ifdef FEAT_COMMENTS. (Christian J. Robinson)
Fichiers : src/edit.c
Rustine 6.1.186 (basée sur 6.1.177)
Problème : ":wincmd" n'autorise pas de commentaires à sa suite. (Aric Blumer)
Solution : Tester une double-apostrophe après la commande.
Fichiers : src/ex_docmd.c
Rustine 6.1.187
Problème : L'utilisation de ":doarg" avec 'hidden' activé alors que le
fichier courant est le seul argument et qu'il est modifié donne un
message d'erreur. (Preben Guldberg)
Solution : Ne pas tenter de rééditer le même fichier.
Fichiers : src/ex_cmds2.c
Rustine 6.1.188 (basée sur 6.1.173)
Problème : Variable inutilisée dans la version légère.
Solution : Déplacer la déclaration de "p" dans #ifdef FEAT_LISTCMDS.
Fichiers : src/ex_cmds2.c
Rustine 6.1.189
Problème : inputdialog() ne fonctionne pas quand 'guioptions' contient 'c'.
(Aric Blumer)
Solution : Revenir à input() dans cette situation.
Fichiers : src/eval.c
Rustine 6.1.190 (extra)
Problème : VMS : impossible de compiler avec l'IHM graphique GTK+. Divers
autres problèmes.
Solution : Corriger la compilation avec GTK+. Amélioration du support de
Perl, Python et Tcl.
Amélioration de la documentation pour VMS. (Zoltan Arpadffy)
Ajout de Vimtutor pour VMS (T. R. Wyant)
Fichiers : runtime/doc/os_vms.txt, src/INSTALLvms.txt, src/gui_gtk_f.h,
src/if_tcl.c, src/main.c, src/gui_gtk_vms.h, src/Make_vms.mms,
src/os_vms.opt, src/proto/if_tcl.pro, vimtutor.com,
src/testdir/Make_vms.mms
Rustine 6.1.191
Problème : Lors de l'utilisation de "vim -s script" et que la sortie est
redirigée, le délai de l'avertissement "Output is not to a
terminal" ralentit trop Vim.
Solution : Ne pas attendre quand des commandes sont lues depuis un script.
Fichiers : src/main.c
Rustine 6.1.192
Problème : ":diffsplit" n'ajoute pas "hor" à 'scrollopt'. (Gary Johnson)
Solution : Ajouter "hor" à 'scrollopt' à chaque fois que ":diffsplit" est
utilisé.
Fichiers : src/diff.c, src/main.c
Rustine 6.1.193
Problème : Plantage dans in_id_list() pour un élément avec une liste
"containedin". (Dave Fishburn)
Solution : Tester un id de syntaxe négatif, utilisé pour des mots-clés.
Fichiers : src/syntax.c
Rustine 6.1.194
Problème : Quand 't_ti' est activé mais qu'il ne provoque pas de basculement
de pages dans le terminal, "ZZ" peut provoquer l'apparition de
l'invite du shell au-dessus du message indiquant l'écriture du
fichier.
Solution : Faire défiler le texte vers le haut dans la page Vim avant de
basculer dans la page du terminal. (Michael Schroeder)
Fichiers : src/os_unix.c
Rustine 6.1.195
Problème : Les fenêtres de mise-au-point et de prévisualisation conservent
toujours leur hauteur, alors que les autres fenêtres ne peuvent
pas être dimensionnées.
Solution : Ajouter l'option 'winfixheight', pour que n'importe quelle
fenêtres puisse avoir une hauteur fixe. Corriger le problème avec
'wildmenu', qui peut redimensionner une fenêtre d'une ligne en une
fenêtre de deux lignes quand 'ls' est nul.
Fichiers : runtime/doc/options.txt, runtime/optwin.vim, src/ex_cmds.c,
src/ex_getln.c, src/globals.h, src/option.c, src/quickfix.c,
src/screen.c, src/structs.h, src/window.c
Rustine 6.1.196 (basée sur 6.1.084)
Problème : Sur Mac OS X 10.2, la génération de "osdef.h" échoue.
Solution : Ajouter "-no-cpp-precomp" pour éviter l'utilisation de fichiers
d'en-tête précompilés, qui désactivent l'affichage du chemin de
recherche. (Ben Fowler)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.197
Problème : ":help <C-V><C-\><C-V><C-N>" (aboutissant à <1c><0e>) donne un
message d'erreur. (Servatius Brandt)
Solution : Doubler la contre-oblique dans "CTRL-\".
Fichiers : src/ex_cmds.c
Rustine 6.1.198 (extra) (basée sur 6.1.076)
Problème : Mac OS X : les dialogues ne fonctionnent pas.
Solution : Corriger le problème de plantage pour certains dialogues. Corriger
un problème lors de l'enregistrement d'un nouveau fichier dans
l'IHM graphique. (Peter Cucka)
Fichiers : src/feature.h, src/gui_mac.c
Rustine 6.1.199
Problème : 'guifontwide' ne fonctionne pas sur Win32.
Solution : Afficher chaque caractère large séparément. (Michael Geddes)
Fichiers : src/gui.c
Rustine 6.1.200
Problème : ":syn sync fromstart" n'est pas ignoré après ":if 0". Cela peut
ralentir considérablement la coloration syntaxique.
Solution : Vérifier correctement "eap->skip". (Rob West)
Fichiers : src/syntax.c
Rustine 6.1.201 (basée sur 6.1.192)
Problème : Avertissement pour une combinaison illégale de pointeurs. (Zoltan
Arpadffy)
Solution : Ajouter un transtypage.
Fichiers : src/diff.c
Rustine 6.1.202 (extra) (basée sur 6.1.148)
Problème : Win32 : filewritable() ne fonctionne pas correctement sur les
répertoires.
Solution : Corriger filewritable(). (Mike Williams)
Fichiers : src/os_win32.c
Rustine 6.1.203
Problème : ":%s/~//" provoque un plantage après ":%s/x//". (Gary Holloway)
Solution : Éviter de lire au-delà de la fin d'une ligne quand "~" est vide.
Fichiers : src/regexp.c
Rustine 6.1.204 (basée sur 6.1.129)
Problème : Avertissement pour un pointeur illégal sur Solaris.
Solution : Ajouter un transtypage. (Derek Wyatt)
Fichiers : src/misc2.c
Rustine 6.1.205
Problème : Le greffon "gzip" modifie le fichier alternatif lors de l'édition
d'un fichier compressé. (Oliver Fuchs)
Solution : Retirer temporairement les drapeaux 'a' et 'A' de 'cpo'.
Fichiers : runtime/plugin/gzip.vim
Rustine 6.1.206
Problème : Le script généré par ":mksession" ne fonctionne pas correctement
quand certaines commandes sont mappées.
Solution : utiliser ":normal!" au lieu de ":normal". Et utiliser ":wincmd"
quand c'est possible. (Muraoka Taro)
Fichiers : src/ex_docmd.c, src/fold.c
Rustine 6.1.207
Problème : L'indentation d'un fichier Java reste bloquée sous une ligne avec
un commentaire après une commande.
Solution : Interrompre la boucle. (Andre Pang)
De même, aligner } avec la { appariée.
Fichiers : runtime/indent/java.vim
Rustine 6.1.208
Problème : Impossible d'utiliser le numéro des tampons depuis l'interface
Python.
Solution : Ajouter buffer.number. (Michal Vitecek)
Fichiers : src/if_python.c
Rustine 6.1.209
Problème : L'impression ne fonctionne pas sur l'interface Mac OS Classic.
Solution : utiliser un ":" comme séparateur pour les chemins lors de
l'ouverture d'une ressource. (Axel Kielhorn)
Fichiers : src/ex_cmds2.c
Rustine 6.1.210
Problème : Quand une erreur se produit dans une conversion iconv() à la
lecture d'un fichier, une erreur peut aussi se produire à
l'utilisation suivante de iconv().
Solution : Réinitialiser l'état du descripteur de iconv(). (Yasuhiro
Matsumoto)
Fichiers : src/fileio.c
Rustine 6.1.211
Problème : Le message "utilisez ! pour passer outre" est déroutant.
Solution : Changer le message en "ajouter ! pour passer outre".
Fichiers : src/buffer.c, src/eval.c, src/ex_docmd.c, src/fileio.c,
src/globals.h
Rustine 6.1.212
Problème : Quand Vim est démarré avec "-R", ":new" crée un tampon
'noreadonly', alors que ":enew" active 'readonly'. (Preben
Guldberg)
Solution : Ne pas activer 'readonly' dans un tampon vide avec ":enew".
Fichiers : src/ex_docmd.c
Rustine 6.1.213
Problème : Utiliser CTRL-W H peut provoquer l'apparition d'un grand vide sous
la dernière fenêtre. (Aric Blumer)
Solution : Ne pas fixer la hauteur de la dernière fenêtre quand il existe un
partage vertical. (Yasuhiro Matsumoto)
Fichiers : src/window.c
Rustine 6.1.214
Problème : Quand Vim et ses fichiers de support sont installés après leur
récupération sur CVS, les répertoires CVS sont également
installés.
Solution : Éviter d'installer les répertoires CVS et leur contenu.
Fichiers : src/Makefile
Rustine 6.1.215
Problème : Win32 : ":pwd" utilise des contre-obliques, même quand
'shellslash' est activé. (Xiangjiang Ma)
Solution : Ajuster les obliques juste avant d'afficher le message.
Fichiers : src/ex_docmd.c
Rustine 6.1.216
Problème : Lors du chargement dynamique de la bibliothèque iconv, les codes
d'erreurs peuvent être vagues.
Solution : utiliser des codes d'erreurs spécifiques pour iconv et les
redéfinir pour le chargement dynamique. (Yasuhiro Matsumoto)
Fichiers : src/fileio.c, src/mbyte.c, src/vim.h
Rustine 6.1.217
Problème : Quand un même script est sourcé en utilisant différents noms (lien
symbolique ou nom 8.3 sous MS-Windows), il est listé deux fois
dans ":scriptnames". (Tony Mechelynck)
Solution : Convertir le nom du script en un chemin complet avant de
l'utiliser. Sur unix, comparer les numéros d'inodes/périphériques.
Fichiers : src/ex_cmds2.c
Rustine 6.1.218
Problème : Aucun message d'erreur lors de l'utilisation de l'argument "5+"
avec une fonction. (Servatius Brandt)
Solution : Donner un message d'erreur si une fonction ou une variable est
attendue mais non trouvée.
Fichiers : src/eval.c
Rustine 6.1.219
Problème : Lors de l'utilisation de ":amenu :b 1<CR>" avec une sélection
Visuel et que 'insertmode' est activé, Vim ne retourne pas en mode
Insertion. (Mickael Marchand)
Solution : Ajouter la commande CTRL-\ CTRL-G pour passer en mode Insertion
quand 'insertmode' est activé et en mode Normal sinon. L'ajouter
aux menus définis avec ":amenu".
Fichiers : src/edit.c, src/ex_getln.c, src/normal.c
Rustine 6.1.220
Problème : Quand une autocommande BufReadPost changeant le nombre de lignes
est utilisée, par exemple, "$-1join", recharger un fichier modifié
en dehors de Vim ne fonctionne pas correctement. (Alan G Isaac)
Solution : Vider le tampon avant de lire la nouvelle version du fichier.
Mémoriser les lignes dans un tampon intermédiaire, de façon à ce
qu'elles puissent être restaurées si la lecture du fichier échoue.
Fichiers : src/buffer.c, src/ex_cmds.c, src/fileio.c, src/globals.h,
src/proto/buffer.pro
Rustine 6.1.221
Problème : Modifier la casse peut ne pas fonctionner, selon la région
linguistique.
Solution : Ajouter l'option 'casemap' pour permettre à l'utilisateur de
choisir la manière dont le changement de casse doit être opéré.
De même, corriger l'abaissement de la casse quand un caractère
UTF-8 ne conserve pas la même taille en octets.
Fichiers : runtime/doc/options.txt, src/ascii.h, src/auto/configure,
src/buffer.c, src/charset.c, src/config.h.in, src/configure.in,
src/diff.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/gui_amiga.c
src/gui_mac.c, src/gui_photon.c, src/gui_w48.c, src/gui_beos.cc,
src/macros.h, src/main.c, src/mbyte.c, src/menu.c, src/message.c,
src/misc1.c, src/misc2.c, src/option.c, src/os_msdos.c,
src/os_mswin.c, src/proto/charset.pro, src/regexp.c, src/option.h,
src/syntax.c
Rustine 6.1.222 (basée sur 6.1.219)
Problème : La rustine 6.1.219 est incomplète.
Solution : Ajouter les modifications pour ":amenu".
Fichiers : src/menu.c
Rustine 6.1.223 (extra)
Problème : Win32 : quand l'IME est activée, 'iminsert' est aussi fixé, mais
peut ne jamais être réinitialisé quand l'IME est désactivée.
(Muraoka Taro)
Tous les systèmes : 'iminsert' est fixé à 2 à la sortie du mode
Insertion, même quand un mappage de langue est utilisé. (Peter
Valach)
Solution : Ne pas fixer "b_p_iminsert" dans _OnImeNotify(). (Muraoka Taro)
Ne pas mémoriser l'état de la méthode de saisie dans 'iminsert'
quand 'iminsert' vaut un. Pareil pour l'édition de la ligne de
commande et les arguments des commandes du mode Normal.
Fichiers : src/edit.c, src/ex_getln.c, src/gui_w32.c, src/normal.c
Rustine 6.1.224
Problème : "expand('$VAR')" retourne une chaîne vide quand le développement
de $VAR n'est pas un fichier existant. (Aric Blumer)
Solution : Inclure les fichiers non existants, comme l'affirme la
documentation.
Fichiers : src/eval.c
Rustine 6.1.225
Problème : L'utilisation de <C-O><C-^> en mode Insertion impose un délai
quand "vim -u NONE" est utilisé au démarrage, avec ":set nocp
hidden". (Emmanuel) do_ecmd() utilise fileinfo(), le
rafraîchissement a lieu après un certain délai pour donner à
l'utilisateur le temps de lire le message.
Solution : Mettre le message de fileio() dans "keep_msg", afin que le
rafraîchissement soit effectué avant le délai (qui reste
nécessaire pour éviter que le message de mode écrase le message de
fileinfo()).
Fichiers : src/buffer.c
Rustine 6.1.226
Problème : L'utilisation de ":debug" avec une commande ":normal" peut
provoquer un blocage. (Colin Keith)
Solution : Mémoriser le tampon typeahead quand une commande de débogage est
reconnue.
Fichiers : src/ex_cmds2.c, src/getchar.c, src/proto/getchar.pro
Rustine 6.1.227
Problème : Il est possible de nommer une variable "asdf:asdf" et
":let j:asdf = 5" ne donne pas de message d'erreur. (Mikolaj
Machowski)
Solution : Tester la présence d'un ":" dans le nom des variables.
Fichiers : src/eval.c
Rustine 6.1.228 (extra)
Problème : Win32 : la fonction spéciale de sortie pour l'hangul est utilisée
trop fréquemment, ce qui empêche la prise en charge de cas
spéciaux pour d'autres situations.
bInComposition est toujours FALSE, ce qui fait que
ImeGetTempComposition() retourne toujours NULL.
Solution : Supprimer HanExtTextOut(). Supprimer le code inutile autour de
bInComposition et ImeGetTempComposition().
Fichiers : src/gui_w16.c, src/gui_w32.c, src/gui_w48.c
Rustine 6.1.229
Problème : Win32 : la conversion depuis/vers les pages de codes les plus
utilisées nécessite la bibliothèque iconv, qui n'est pas toujours
disponible.
Solution : utiliser les fonctions standards de Windows pour convertir quand
c'est possible. (principalement par Glenn Maynard)
Corriger des déclarations manquantes dans la rustine 6.1.220.
Fichiers : src/fileio.c
Rustine 6.1.230 (extra)
Problème : Win16 : impossible de compiler.
Solution : Exclure la prise en charge de XBUTTON. (Vince Negri)
Fichiers : src/gui_w48.c
Rustine 6.1.231
Problème : Le double clic de la souris pour sélectionner un mot ne fonctionne
pas avec les caractères multi-octets.
Solution : Utiliser vim_iswordc() au lieu de vim_isIDc(). Cela signifie que
'iskeyword' est utilisé à la place de 'isident'. Corriger aussi le
disfonctionnement quand ASCII et multi-octets sont mélangés, les
classes ponctuation et caractères de mot utilisées pour la souris
étaient mélangées.
Fichiers : src/normal.c
Rustine 6.1.232 (basée sur 6.1.226)
Problème : Utilisation de ex_normal_busy alors qu'il n'est pas forcément
disponible. (Axel Kielhorn)
Solution : N'utiliser ex_normal_busy que si FEAT_EX_EXTRA est défini.
Fichiers : src/ex_cmds2.c
Rustine 6.1.233
Problème : ":help expr-||" ne fonctionne pas.
Solution : Ne pas utiliser '|' comme séparateur de commandes.
Fichiers : src/ex_cmds.c
Rustine 6.1.234 (basée sur 6.1.217)
Problème : Avertissement dû à l'utilisation d'une valeur négative pour
st_dev.
Solution : Ne pas affecter de valeur négative à st_dev.
Fichiers : src/ex_cmds2.c
Rustine 6.1.235 (basée sur 6.1.223)
Problème : 'iminsert' passe de 1 à 2 à la sortie du mode Insertion. (Peter
Valach)
Solution : Vérifier "State" avant de réinitialiser à NORMAL.
Fichiers : src/edit.c
Rustine 6.1.236
Problème : Fuites de mémoire avec l'ajout de lignes avec ":diffget" ou
":diffput" et quand un tampon modifié est rechargé.
Solution : Libérer la ligne après l'appel à ml_append().
Fichiers : src/diff.c, src/fileio.c
Rustine 6.1.237
Problème : Coller en mode Visuel par bloc ne fonctionne pas correctement
quand "$" est utilisé ou quand la première ligne est courte.
(Christian Michon)
Solution : Effacer d'abord le texte sélectionné puis coller le nouveau texte.
Mémoriser et restaurer les registres quand c'est nécessaire.
Fichiers : src/globals.h, src/normal.c, src/ops.c, src/proto/ops.pro,
src/vim.h
Rustine 6.1.238 (extra)
Problème : Win32 : l'argument "icon=" de la commande ":menu" ne recherche pas
le fichier image.
Solution : Développer les variables d'environnement et rechercher le fichier
image. (Vince Negri)
Utiliser le même principe que pour X11 et GTK+, pour la cohérence.
Fichiers : src/gui.c src/gui_gtk.c, src/gui_w32.c, src/gui_x11.c,
src/proto/gui.pro
Rustine 6.1.239
Problème : Message d'erreur émis pour un ":endif" ou un ":endwhile" manquant
lors d'une interruption.
Solution : Ne pas donner ces messages quand l'exécution est interrompue.
Fichiers : src/ex_docmd.c, src/os_unix.c
Rustine 6.1.240 (extra)
Problème : Win32 avec BCC 5 : CPU peut être défini par l'environnement, ce
qui aboutit à un argument faux pour le compilateur. (Walter
Briscoe)
Solution : Utiliser CPUNR au lieu de CPU.
Fichiers : src/Make_bc5.mak
Rustine 6.1.241
Problème : Quelque chose se passe mal quand le curseur est dessiné ou effacé.
Solution : Mieux mémoriser quand le curseur est invalide.
Fichiers : src/gui.c
Rustine 6.1.242
Problème : Lors du collage d'un grand nombre de lignes dans la ligne de
commande, il n'est pas possible d'interrompre. (Jean Jordaan)
Solution : Tester s'il y a une interruption après chaque ligne collée.
Fichiers : src/ops.c
Rustine 6.1.243 (extra)
Problème : Win32 : quand le version OLE est lancée alors qu'elle n'a pas été
enregistrée, un message surgit pour suggérer cet enregistrement,
même quand cela n'est pas possible (base de registre en lecture
seule).
Solution : Vérifier si l'enregistrement est possible avant de demander s'il
doit être effectué. (Walter Briscoe)
Éviter de redémarrer Vim après l'enregistrement.
Fichiers : src/if_ole.cpp
Rustine 6.1.244
Problème : La rustine 6.1.237 ne contenait pas les différences pour "vim.h".
(Igor Goldenberg)
Solution : Les inclure.
Fichiers : src/vim.h
Rustine 6.1.245
Problème : La comparaison sans respecter la casse ne fonctionne pas
correctement pour Unicode avec une région linguistique dans
laquelle le changement de la casse d'un caractère ASCII aboutit à
un caractère multi-octets. (Glenn Maynard)
Solution : Prendre en charge différemment la comparaison sans respect de la
casse pour Unicode.
Fichiers : src/mbyte.c
Rustine 6.1.246
Problème : ":blast" aboutit au premier tampon si le dernier n'est pas listé.
(Andrew Stryker)
Solution : Depuis le dernier tampon, rechercher vers l'arrière le prochain
tampon listé, plutôt que vers l'avant.
Fichiers : src/ex_docmd.c
Rustine 6.1.247
Problème : Le support des ACL ne fonctionne toujours pas correctement.
Solution : Ajouter de l'argument "--disable-acl" à `configure`. (Thierry
Vignaud)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.248
Problème : Taper 'q' à l'invite Plus de ":let" ne quitte pas le listage.
(Hari Krishna Dara)
Solution : Quitter le listage quand got_int est positionné.
Fichiers : src/eval.c
Rustine 6.1.249
Problème : Impossible de développer un chemin sur la ligne de commande quand
elle contient un "|" comme octet final dans un caractère
multi-octets.
Solution : Vérifier les caractères multi-octets. (Yasuhiro Matsumoto)
Fichiers : src/ex_docmd.c
Rustine 6.1.250
Problème : Quand la valeur de 'lines' est modifiée dans l'expression contenue
dans 'diffexpr', Vim peut planter. (Dave Fishburn)
Solution : Ne pas permettre la modification de la taille de l'affichage lors
du rafraîchissement.
Fichiers : src/globals.h, src/option.c, src/screen.c
Rustine 6.1.251
Problème : Impossible d'utiliser un complètement similaire à ":cd" avec
":lcd" et ":lchdir".
Solution : Développer les noms de répertoires pour ces commandes. (Servatius
Brandt)
Fichiers : src/ex_docmd.c
Rustine 6.1.252
Problème : "vi}" n'inclut pas la coupure de ligne quand la "}" est au début
de la ligne suivante. (Kamil Burzynski)
Solution : Inclure la coupure de ligne.
Fichiers : src/search.c
Rustine 6.1.253 (extra)
Problème : Win32 avec CygWin : la modifications du chemin des arguments n'est
pas correcte. (Xiangjiang Ma)
Solution : Ne pas utiliser cygwin_conv_to_posix_path() pour la version Win32.
Mettre le Makefile CygWin à jour pour supporter davantage de
fonctionnalités. (Dan Sharp)
Fichiers : src/Make_cyg.mak, src/if_ole.cpp, src/main.c
Rustine 6.1.254
Problème : exists("foo{bar}") ne fonctionne pas. ':unlet v{"a"}r' non plus.
":let v{a}r1 v{a}r2" pas davantage. Ni ":func F{(1)}". Et
":delfunc F{" ne donne pas de message d'erreur. ':delfunc F{"F"}'
ne fonctionne pas.
Solution : Prendre en compte les accolades magiques dans l'argument
de exists(). (Vince Negri)
Vérifier les commentaires finaux dans ":unlet". Ajouter le support
des accolades magiques dans les arguments supplémentaires de
":let". Ne rechercher une parenthèse qu'après le nom de la
fonction. (Servatius Brandt)
Développer les accolades magiques pour "exists('*expr')". Donner
un message d'erreur pour les arguments invalides de ":delfunc".
Permettre les doubles-apostrophes dans les arguments de
":delfunc".
Fichiers : src/eval.c, src/ex_cmds.h, src/ex_docmd.c
Rustine 6.1.255 (basée sur 6.1.254)
Problème : Plantage quand "menu.vim" est chargé une deuxième fois. (Christian
Robinson)
":unlet garbage foo" tente de s'occuper de "foo" après un message
d'erreur. (Servatius Brandt)
Les très longs arguments de fonctions entraînent de très longs
messages quand 'verbose' vaut au moins 14.
Solution : Éviter de lire de la mémoire non initialisée.
Interrompre la boucle après un argument invalide dans ":unlet".
Tronquer les arguments de fonctions trop longs à 80 caractères.
Fichiers : src/eval.c
Rustine 6.1.256 (basée sur 6.1.255)
Problème : Définir une fonction après ":if 0" peut encore provoquer un
message d'erreur avertissant d'une fonction déjà existante.
Fuite de mémoire quand il se trouve des caractères après
":delfunc".
Solution : Vérifier le drapeau "skip". Libérer la mémoire. (Servatius Brandt)
Fichiers : src/eval.c
Rustine 6.1.257
Problème : ":cwindow" fixe toujours la fenêtre précédente à l'avant-dernière.
(Benji Fisher)
Solution : Fixer correctement la fenêtre précédente.
Fichiers : src/globals.c, src/quickfix.c, src/window.c
Rustine 6.1.258
Problème : Le menu Tampons ne fonctionne pas correctement avec les noms de
tampons contenant un caractère multi-octets.
Solution : Utiliser un motif pour obtenir les parties droite et gauche du
nom. (Yasuhiro Matsumoto)
Fichiers : runtime/menu.vim
Rustine 6.1.259 (extra)
Problème : Mac : quand 'patchmode' est utilisé, les noms de fichiers sont
tronqués.
Solution : Augmenter BASENAMELEN pour Mac OS X. (Ed Ralston)
Fichiers : src/os_mac.h
Rustine 6.1.260 (basée sur 6.1.104)
Problème : GCC 3.2 semble encore avoir un problème d'optimisation. (Zvi
Har'El)
Solution : Utiliser la même vérification `configure` que pour GCC 3.1.
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.261
Problème : Lors de l'effacement d'une ligne qui ne se trouve pas dans le
tampon courant en utilisant Delete() de l'interface Perl, le
curseur peut être déplacé dans le fenêtre courante. (Chris Houser)
Solution : Ne pas modifier la position du curseur quand des modifications ont
lieu dans un autre tampon.
Fichiers : src/if_perl.xs
Rustine 6.1.262
Problème : Lors d'un saut par delà des replis avec "z[", "zj" et "zk", la
position précédente n'est pas mémorisée. (Hari Krishna Dara)
Solution : Placer la marque du contexte précédent avant de sauter.
Fichiers : src/fold.c
Rustine 6.1.263
Problème : Quand un caractère multi-octets déclenchant une abréviation est
tapé, il n'est pas inséré correctement.
Solution : Prendre en compte l'ajout du caractère multi-octets tapé.
(Yasuhiro Matsumoto)
Fichiers : src/getchar.c
Rustine 6.1.264 (basée sur 6.1.254)
Problème : exists() ne fonctionne pas avec les fonctions intégrées. (Steve
Wall)
Solution : Ne pas vérifier si le nom de la fonction commence par une
majuscule.
Fichiers : src/eval.c
Rustine 6.1.265
Problème : libcall() peut être utilisée dans 'foldexpr' pour appeler
n'importe quelle fonction du système. Pareil pour rename(),
delete() and remote_send(). Ce sont de graves problèmes de
sécurité. (Georgi Guninski)
Solution : Ne pas permettre l'utilisation de libcall(), rename(), delete(),
remote_send() et autres fonctions similaires dans le bac à sable.
Fichiers : src/eval.c
Rustine 6.1.266 (basée sur 6.1.265)
Problème : Win32 : erreur de compilation dans "eval.c". (Bill McCarthy)
Solution : Déplacer la déclaration d'une variable.
Fichiers : src/eval.c
Rustine 6.1.267
Problème : L'utilisation de "p" pour coller dans une zone Visuel sélectionnée
peut provoquer un plantage.
Solution : Allouer suffisamment de mémoire pour mémoriser le contenu des
registres. (Muraoka Taro)
Fichiers : src/ops.c
Rustine 6.1.268
Problème : Quand une abréviation est déclenchée par un caractère
multi-octets, ce dernier n'est pas correctement inséré après le
développement de l'abréviation. (Taro Muraoka)
Solution : Ajouter ABBR_OFF à tous les caractères au-delà de 0xff.
Fichiers : src/edit.c, src/ex_getln.c, src/getchar.c
Rustine 6.1.269
Problème : Après l'utilisation de input(), le texte écrit avec ":redir" voit
sont indentation augmentée. (David Fishburn)
Solution : Restaurer msg_col après l'utilisation de input().
Fichiers : src/ex_getln.c
Rustine 6.1.270 (basée sur 6.1.260)
Problème : GCC 3.2.1 a encore des problèmes avec l'optimisation.
Solution : Utiliser la même vérification `configure` que pour GCC 3.1.
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.271
Problème : Il y a des erreurs lors de la compilation dans la fonctionnalité
+syntax.
Solution : Ne pas utiliser le code de la coloration syntaxique. (Roger
Cornelius)
Rendre "test45" indépendant de la coloration syntaxique.
Corriger une erreur dans la correspondance des motifs : "\%("
n'était pas supporté.
Fichiers : src/ex_cmds2.c, src/regexp.c, src/testdir/test45.in
Rustine 6.1.272
Problème : Un plantage peut survenir après l'utilisation de ":set define<".
(Christian Robinson)
Solution : Faire une copie de la valeur de l'option dans la mémoire allouée.
Fichiers : src/option.c
Rustine 6.1.273
Problème : Quand le curseur ne clignote pas, le rafraîchissement de la zone
affichée peut cacher le curseur.
Solution : Toujours dessiner le curseur, même quand il ne bouge pas. (Muraoka
Taro)
Fichiers : src/gui.c
Rustine 6.1.274 (basée sur 6.1.210)
Problème : Réinitialiser l'état de iconv() après chaque erreur est inadapté
pour une séquence incomplète.
Solution : Ne pas réinitialiser l'état de iconv().
Fichiers : src/fileio.c
Rustine 6.1.275
Problème : Quand "v" est utilisé dans un script de démarrage, un message que
le terminal ne peut pas mettre en surbrillance est obtenu.
(Charles Campbell)
Solution : Ne donner le message qu'après l'initialisation du terminal.
Fichiers : src/normal.c
Rustine 6.1.276
Problème : "gvim --remote fichier" ne demande pas de clé de chiffrement.
Solution : Les caractères suivant transmis au serveurs sont employés.
Ajout de inputsave() et inputrestore() pour permettre de demander
directement à l'utilisateur et ne pas utiliser le tampon
typeahead.
Correction d'une possible fuite de mémoire dans ":normal".
Fichiers : src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c,
src/main.c, src/proto/getchar.pro, src/proto/ui.pro,
src/runtime/doc/eval.txt, src/structs.h, src/ui.c, src/vim.h
Rustine 6.1.277 (basée sur 6.1.276)
Problème : Erreur de compilation avec le jeu de fonctionnalités « léger ».
Solution : Définir trash_input_buf() là où c'est nécessaire. (Kelvin Lee)
Fichiers : src/ui.c
Rustine 6.1.278
Problème : Lors de l'utilisation de symboles, les numéros de lignes des
replis fermés ne sont pas alignés avec les autres numéros de
lignes. (Kamil Burzynski)
Solution : Insérer deux espaces pour la colonne des symboles.
Fichiers : src/screen.c
Rustine 6.1.279
Problème : Les prototypes de smsg() et smsg_attr() ne correspondent pas avec
la définition des fonctions. Cela pose des problèmes avec certains
compilateurs. (Nix)
Solution : utiliser va_list sur les systèmes disposant de "stdarg.h".
Utiliser "int" au lieu de "void" comme type de retour.
Fichiers : src/auto/configure, src/config.h.in, src/configure.in,
src/proto.h, src/message.c
Rustine 6.1.280
Problème : Il est possible d'utiliser un argument "firstline" ou "lastline"
dans une fonction mais utiliser "a:firstline" or "a:lastline"
dans la fonction ne fonctionnera pas. (Benji Fisher)
Solution : Donner un message d'erreur pour ces arguments.
Éviter que le corps de la fonction qui suit ne déclenche une série
d'erreur, passer outre après une erreur dans la première ligne.
Fichiers : src/eval.c
Rustine 6.1.281
Problème : En mode Insertion, CTRL-X CTRL-G laisse le curseur après la règle.
Solution : Fixer la position du curseur avant d'attendre l'argument de
CTRL-G. (Yasuhiro Matsumoto)
Fichiers : src/edit.c
Rustine 6.1.282
Problème : Elvis utilise "se" dans la ligne de mode, Vim ne le reconnaît pas.
Solution : Accepter également "se " là où "set " est accepté dans une ligne
de mode. (Yasuhiro Matsumoto)
Fichiers : src/buffer.c
Rustine 6.1.283
Problème : Avec ":sign", le nom de l'icône ne peut pas contenir d'espace.
Solution : Gérer les contre-obliques dans le nom du fichier. (Yasuhiro
Matsumoto)
Fichiers : src/ex_cmds.c
Rustine 6.1.284
Problème : Sur Solaris, avertissment pour "struct utimbuf".
Solution : Déplacer l'inclusion de "utime.h" hors de la fonction. (Derek
Wyatt)
Fichiers : src/fileio.c
Rustine 6.1.285
Problème : Impossible de détruire un tampon avec l'option 'bufhidden' fixée.
Solution : Ajouter la valeur "wipe" à 'bufhidden'. (Yegappan Lakshmanan)
Fichiers : runtime/doc/options.txt, src/buffer.c, src/option.c,
src/quickfix.c
Rustine 6.1.286
Problème : 'showbreak' ne peut pas contenir de caractères multi-octets.
Solution : autoriser l'utilisation de tous les caractères imprimables dans
'showbreak'.
Fichiers : src/charset.c, src/move.c, src/option.c
Rustine 6.1.287 (basée sur 6.1.285)
Problème : Les effets de "delete" et "wipe" dans 'bufhide' sont mélangés.
Solution : Détruire quand la destruction est demandée.
Fichiers : src/buffer.c
Rustine 6.1.288
Problème : ":silent function F" bloque. (Hari Krishna Dara)
Solution : Ne pas utiliser msg_col, il n'est pas incrémenté avec ":silent".
Amélioration de l'aspect de la fonction. Ne pas traduire
"function".
Fichiers : src/eval.c
Rustine 6.1.289 (basée sur 6.1.278)
Problème : Avertissement du compilateur sur des pointeurs.(Axel Kielhorn)
Solution : Ajouter un transtypage pour " ".
Fichiers : src/screen.c
Rustine 6.1.290 (extra)
Problème : La troncature des textes longs pour les boîtes de dialogue peut
couper un caractère multi-octets.
Solution : Couper au début d'un caractère multi-octets. (Yasuhiro Matsumoto)
Fichiers : src/os_mswin.c
Rustine 6.1.291 (extra)
Problème : Win32 : CTRL-@ ne fonctionne pas. Il n'y a pas même de message
pour cela.
Solution : Reconnaître le code clavier de CTRL-@. (Yasuhiro Matsumoto)
Fichiers : src/gui_w48.c
Rustine 6.1.292 (extra, basée sur 6.1.253)
Problème : Win32 : impossible de compiler avec le nouveau compilateur MinGW.
Le Makefile Borland 5 ne génère pas "pathdef.c".
Solution : Supprimer l'argument "-wwide-multiply". (Rene de Zwart)
Diverses corrections pour d'autres problèmes dans les Makefiles
Win32. (Dan Sharp)
Fichiers : src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak,
src/Make_mvc.mak
Rustine 6.1.293
Problème : byte2line() retourne un résultat faux pour certaines valeurs.
Solution : Remplacer ">=" par ">" dans ml_find_line_or_offset(). (Bradford C
Smith)
Ajouter un au numéro de la ligne quand à la fin d'un bloc.
Fichiers : src/memline.c
Rustine 6.1.294
Problème : Impossible d'insérer un caractère multi-octets dans une chaîne
avec sa valeur hexadécimale. (Benji Fisher)
Solution : Ajouter "\u...." : un caractère spécifié avec jusqu'à quatre
nombres hexadécimaux et inséré en fonction de la valeur de
'encoding'.
Fichiers : src/eval.c
Rustine 6.1.295 (extra)
Problème : Le traitement du fichier "cs.po" produit une erreur. (Rahul
Agrawal)
Solution : Corriger les caractères de format de printf dans la traduction.
Fichiers : src/po/cs.po
Rustine 6.1.296
Problème : Win32 : lors de l'annulation du sélecteur de polices, la valeur de
'guifont' reste "*".
Solution : Restaurer l'ancienne valeur de 'guifont' (Yasuhiro Matsumoto)
Fichiers : src/option.c
Rustine 6.1.297
Problème : "make test" échoue dans "test6" avec un environnement UTF-8.
(Benji Fisher)
Solution : Mémoriser le codage actuel du fichier avant d'exécuter les
autocommande BufReadPost, pour que le fichier ne soit pas signalé
comme modifié.
Fichiers : src/fileio.c
Rustine 6.1.298
Problème : Lors de l'utilisation de symboles et que la première ligne d'un
repli fermé dispose d'un symbole, il peut être rafraîchi comme si
le repli était ouvert. (Kamil Burzynski)
Solution : Ne pas redessiner le symbole dans un repli fermé.
Fichiers : src/screen.c
Rustine 6.1.299
Problème : ":edit +set\ ro fichier" ne fonctionne pas.
Solution : Réduire de moitié le nombre de contre-obliques dans l'argument
"+cmd".
Fichiers : src/ex_docmd.c
Rustine 6.1.300 (extra)
Problème : La prise en charge de ETO_IGNORELANGUAGE est déroutante.
Solution : Nettoyer la prise en compte de ETO_IGNORELANGUAGE. (Glenn Maynard)
Fichiers : src/gui_w32.c
Rustine 6.1.301 (extra)
Problème : La traduction française du dialogue d'enregistrement des fichiers
n'affiche pas le nom du fichier.
Solution : Insérer une étoile dans la chaîne printf. (Francois Terrot)
Fichiers : src/po/fr.po
Rustine 6.1.302
Problème : Le comptage des lignes de la zone Visuel est incorrecte pour les
replis fermés. (Mikolaj Machowski)
Solution : Corriger le début et la fin du repli fermé.
Fichiers : src/normal.c
Rustine 6.1.303 (extra)
Problème : Le texte Haut/Bas/Tout ne tient pas toujours dans la règle quand
il est traduit en japonais. Problème avec les caractères plus
larges quand ils sont dans une police grasse.
Solution : Utiliser ETO_PDY pour spécifier la largeur de chaque caractère.
(Yasuhiro Matsumoto)
Fichiers : src/gui_w32.c
Rustine 6.1.304 (extra, basée sur 6.1.292)
Problème : Win32 : Postscript est toujours activé dans le Makefile MinGW.
"pathdef.c" n'est pas généré correctement par "Make_bc5.mak".
(Yasuhiro Matsumoto)
Solution : Remplacer un #ifdef par un #ifeq. (Madoka Machitani)
Utiliser la redirection du `make` de Borland pour générer
"pathdef.c". (Maurice Barnum)
Fichiers : src/Make_bc5.mak, src/Make_ming.mak
Rustine 6.1.305
Problème : Quand 'verbose' vaut au moins 14, l'appel d'une fonction peut
provoquer la lecture de données non initialisées. (Walter Briscoe)
Solution : Tester les fins-de-chaîne dans trunc_string().
Fichiers : src/message.c
Rustine 6.1.306
Problème : Le compilateur AIX VisualAge cc ne définit pas __STDC__.
Solution : utiliser __EXTENDED__ comme __STDC__. (Jess Thrysoee)
Fichiers : src/os_unix.h
Rustine 6.1.307
Problème : Quand un caractère double-octets a un octet final invalide,
l'affichage est sali. (Yasuhiro Matsumoto)
Solution : Afficher "XX" à la place du caractère fautif.
Fichiers : src/screen.c
Rustine 6.1.308
Problème : Impossible de réinitialiser le mode Visuel obtenu avec
visualmode().
Solution : utiliser un argument optionnel avec visualmode(). (Charles
Campbell)
Fichiers : runtime/doc/eval.txt, src/eval.c, src/normal.c,
src/structs.h
Rustine 6.1.309
Problème : Le tutoriel ne sélectionne pas l'allemand quand la région
linguistique vaut "German_Germany.1252". (Joachim Hofmann)
Solution : Tester la présence de "German" dans le nom de la région
linguistique. Tester aussi ".ge". Inclure les tutoriels allemand
et grec.
Fichiers : runtime/tutor/tutor.de, runtime/tutor/tutor.vim,
runtime/tutor/tutor.gr, runtime/tutor/tutor.gr.cp737
Rustine 6.1.310 (basée sur 6.1.307)
Problème : Tous les caractères double-octets sont représentés par "XX".
Solution : utiliser ">= 32" à la place de "< 32". (Yasuhiro Matsumoto)
Fichiers : src/screen.c
Rustine 6.1.311 (extra)
Problème : VMS : le chemin dans le titre de la fenêtre n'inclut pas les
séparateurs.
Le versionnage des fichiers ne fonctionne pas toujours avec Unix.
Plantages dûs à des débordements de mémoire dans l'IHM graphique.
Les fichiers ne sont pas toujours pris en charge avec le bon
chemin et la bonne casse.
Solution : Corriger les problèmes. Supprimer les conversions inutiles des
noms de fichiers. (Zoltan Arpadffy)
Fichiers : src/buffer.c, src/ex_cmds2.c, src/fileio.c, src/memline.c,
src/misc1.c, src/misc2.c, src/os_unix.c, src/os_vms.c, src/tag.c
Rustine 6.1.312
Problème : Avec ":silent", le débogage est également silencieux.
Solution : désactiver le silence à l'invite de débogage.
Fichiers : src/ex_cmds2.c
Rustine 6.1.313
Problème : Lors d'un ":drop nomfich" alors que "nomfich" est ouvert dans une
autre fenêtre, il est également ouvert dans la fenêtre courante.
Solution : Aller dans la fenêtre contenant "nomfich" à la place.
Ne pas redéfinir la liste des arguments quand un seul fichier est
déposé (":drop").
Fichiers : runtime/doc/windows.txt, src/ex_cmds2.c, src/ex_cmds.c,
src/ex_docmd.c, src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro
Rustine 6.1.314 (basée sur 6.1.126)
Problème : Contre-oblique manquante dans le menu de syntaxe "Generic Config
file".
Solution : Insérer la contre-oblique. (Zak Beck)
Fichiers : runtime/makemenu.vim, runtime/synmenu.vim
Rustine 6.1.315 (extra)
Problème : Un nom d'hôte très long peut aboutir à une chaîne incorrectement
terminée. L'échec de la récupération du nom de l'hôte peut donner
n'importe quoi. (Walter Briscoe)
Solution : Ajouter un NUL à la fin du tampon du nom de l'hôte.
Fichiers : src/os_mac.c, src/os_msdos.c, src/os_unix.c, src/os_win16.c,
src/os_win32.c
Rustine 6.1.316
Problème : Lors d'une sortie avec ":wq" et qu'il existe des tampons cachés,
un avertissement pour un tampon modifié est émis après le dialogue
"file changed". (Ajit Thakkar)
Solution : Mettre à jour le tampon d'horodatage à la sortie.
Fichiers : src/fileio.c
Rustine 6.1.317
Problème : La fermeture d'une fenêtre peut provoquer un positionnement
erroné des fenêtre restantes quand il se trouve un mélange de
partages horizontaux et verticaux. (Stefan Ingi Valdimarsson)
Solution : Mettre à jour la taille des cadres avant de changer la position
des fenêtre.
Fichiers : src/window.c
Rustine 6.1.318
Problème : "auto/pathdef.c" peut contenir des délimiteurs erronés quand un
drapeau du compilateur en contient.
Solution : Mettre une contre-oblique devant les délimiteurs dans les drapeaux
du compilateur. (Shinra Aida)
Fichiers : src/Makefile
Rustine 6.1.319 (basée sur 6.1.276)
Problème : L'utilisation de "--remote +cmd fichier" n'exécute pas "cmd".
Solution : Appeler inputrestore() dans la même ligne de commande que
inputsave(), sinon elle n'est jamais exécutée.
Fichiers : src/main.c
Rustine 6.1.320 (basée sur 6.1.313)
Problème : Lors d'un ":drop un\ fichier" est utilisé, le fichier "un\
fichier" est ouvert et la contre-oblique n'est pas supprimée.
(Taro Muraoka)
Solution : Prendre correctement en charge les contre-obliques. Toujours fixer
la liste des arguments pour qu'elle reste simple.
Fichiers : runtime/doc/windows.txt, src/ex_cmds.c
Rustine 6.1.321
Problème : Quand 'mouse' contient 'n' mais pas 'v', il n'est pas possible de
passer en mode Visuel avec la souris.
Solution : ne pas utiliser MOUSE_MAY_VIS quand 'v' n'est pas dans 'mouse'.
(Flemming Madsen)
Fichiers : src/normal.c
Rustine 6.1.322 (extra, basée sur 6.1.315)
Problème : Win32 : le nom d'hôte est toujours préfixé par "PC ".
Solution : Ne pas insére "PC " avant le nom d'hôte.
Fichiers : src/os_win32.c
Rustine 6.1.323
Problème : ":registers" n'interrompt pas le listage lors d'un "q" à l'invite
Plus. (Hari Krishna Dara)
Solution : Tester got_int et une éventuelle interruption.
Fichiers : src/ops.c, src/proto/ops.pro
Rustine 6.1.324
Problème : Plantage quand un séparateur vertical est déplacé à la souris
alors que <LeftMouse> est remappé pour sauter dans une autre
fenêtre.
Solution : Passer le pointeur de la fenêtre à la fonction réalisant le
déplacement au lieu de toujours utiliser la fenêtre courante.
(Daniel Elstner)
Corriger le problème du déplacement qui change la fenêtre ayant le
focus.
Fichiers : src/normal.c, src/proto/window.pro, src/ui.c, src/vim.h,
src/window.c
Rustine 6.1.325
Problème : Maj-Tab n'est pas reconnu automatiquement dans un xterm.
Solution : Ajouter <Esc>[Z comme code termcap. (Andrew Pimlott)
Fichiers : src/term.c
Rustine 6.1.326
Problème : L'utilisation d'un motif de recherche peut entraîner la lecture
de données non initialisées. (Yasuhiro Matsumoto)
Solution : Initialiser les pointeurs à NULL.
Fichiers : src/regexp.c
Rustine 6.1.327
Problème : Lors de l'ouverture du fichier d'aide "mbyte.txt", les caractères
utf-8 ne sont pas lisibles, car le codage du fichier est forcé à
latin1.
Solution : Vérifier d'abord le codage utf-8 dans les fichiers d'aide. (Daniel
Elstner)
Fichiers : runtime/doc/mbyte.txt, src/fileio.c
Rustine 6.1.328
Problème : Le prototype enc_canon_search() est manquant.
Solution : Ajouter le prototype. (Walter Briscoe)
Fichiers : src/mbyte.c
Rustine 6.1.329
Problème : Lors de l'édition du fichier "a b c", le remplacement de "%" dans
":Cmd %" ou ":next %" ne fonctionne pas correctement. (Hari
Krishna Dara)
Solution : Toujours protéger les espaces lors de l'expansion de "%". Ne pas
scinder l'argument <f-args> dans une commande utilisateur quand un
seul argument est utilisé.
Fichiers : src/ex_docmd.c
Rustine 6.1.330
Problème : GTK+, Motif et Athena : les touches du pavé numérique produisent
le même code que les touches traditionnelles, ce qui empêche de
les mapper séparément.
Solution : Utiliser des codes termcap différents pour le pavé numérique.
(Neil Bird)
Fichiers : src/gui_gtk_x11.c, src/gui_x11.c
Rustine 6.1.331
Problème : Lors de la traduction des fichiers de l'aide, "LOCAL ADDITIONS" ne
balise plus l'emplacement à partir duquel la liste des fichiers
d'aide des greffons est donnée.
Solution : Ajouter un marqueur "local-additions" et l'utiliser pour trouver
le bon endroit.
Fichiers : runtime/doc/help.txt, src/ex_cmds.c
Rustine 6.1.332 (extra)
Problème : Win32 : le chargement dynamique de Perl ne fonctionne pas avec
Perl 5.8.
De même, Perl 5.8 ne fonctionne pas avec CygWin et MinGW.
Solution : Ajuster les appels aux fonctions. (Taro Muraoka)
Ajuster les Makefiles CygWin et MinGW. (Dan Sharp)
Fichiers : src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
src/if_perl.xs
Rustine 6.1.333 (extra)
Problème : Win32 : Unicode n'est pas pris en charge par le presse-papiers.
Impossible de passer un octet NUL, il est converti en coupure de
ligne. (Bruce DeVisser)
Solution : Supporter Unicode avec le presse-papiers. (Ron Aaron et Glenn
Maynard)
Pareil pour le copiage/collage des octets NUL.
Fichiers : src/os_mswin.c, src/os_win16.c src/os_win32.c
Rustine 6.1.334 (extra, basée sur 6.1.303)
Problème : Problèmes avec le dessin des caractères hébreux.
Solution : N'utiliser ETO_PDY qu'avec MS-Windows NT et assimilés. (Yasuhiro
Matsumoto)
Fichiers : src/gui_w32.c
Rustine 6.1.335 (extra)
Problème : Un échec pour récupérer la position du curseur et la taille de la
fenêtre est ignoré.
Solution : Supprimer un ";" après un "if". (Walter Briscoe)
Fichiers : src/gui_w32.c
Rustine 6.1.336 (extra)
Problème : Avertissement à l'utilisation des prototypes de la fonction
smsg().
Solution : Définir HAVE_STDARG_H. (Walter Briscoe)
Fichiers : src/os_win32.h
Rustine 6.1.337
Problème : Lors de l'utilisation de "finish" en mode débogage dans la
fonction B() dans un ":call A(B())", Vim n'interrompt pas après la
fin de B().
Solution : Augmenter debug_level pendant l'évaluation d'une fonction.
Fichiers : src/ex_docmd.c
Rustine 6.1.338
Problème : Lors de l'utilisation d'un menu qui recharge le fichier courant
depuis le mode Insertion, aucun avertissement indiquant que le
fichier est modifié n'est donné jusqu'à la sortie du mode
Insertion. (Srikanth Sankaran)
Solution : Ajouter une vérification de need_check_timestamps dans la boucle
du mode Insertion.
Fichiers : src/edit.c
Rustine 6.1.339
Problème : Le complètement n'autorise pas "g:" dans ":let g:did_<Tab>".
(Benji Fisher)
Solution : Retourner "g:var" pour les variables globales qui sont complétées.
(Flemming Madsen)
Fichiers : src/eval.c
Rustine 6.1.340 (extra, basée sur 6.1.332)
Problème : Win32 : impossible de compiler l'interface Perl avec `nmake`.
Solution : Ne pas comparer le numéro de version en tant que chaîne mais en
tant que nombre. (Juergen Kraemer)
Fichiers : src/Make_mvc.mak
Rustine 6.1.341
Problème : En mode Insertion avec 'rightleft' activé, le curseur est dessiné
à la moitié d'un caractère à largeur double. Avec CTRL-R et CTRL-K
en mode Insertion, le '"' ou le '?' n'est pas affiché.
Solution : Dessiner le curseur sur la cellule suivante. Afficher le '"' ou le
'?' sur la moitié droite du caractère à largeur double. (Yasuhiro
Matsumoto) Corriger le problème de l'annulation d'un digramme qui
ne rafraîchit pas correctement un caractère double-octets.
Fichiers : src/edit.c, src/gui.c, src/mbyte.c
Rustine 6.1.342 (basée sur 6.1.341)
Problème : Avec 'rightleft' activé, taper "c" sur un caractère à largeur
double provoque l'affichage du curseur une cellule sur la gauche.
Solution : Dessiner le curseur dans la cellule suivante. (Yasuhiro Matsumoto)
Fichiers : src/gui.c
Rustine 6.1.343 (basée sur 6.1.342)
Problème : Impossible de compiler avec la fonctionnalité +multi_byte mais
sans +rightleft.
Impossible de compiler sans l'IHM graphique.
Solution : Ajuster les #ifdef. (en partie par Nam SungHyun)
Fichiers : src/gui.c, src/mbyte.c, src/ui.c
Rustine 6.1.344
Problème : Lors d'un ":silent filetype", la sortie est toujours ajoutée dans
l'historique des messages. (Hari Krishna Dara)
Solution : Ne pas ajouter de messages dans l'historique quand ":silent" est
utilisé.
Fichiers : src/message.c
Rustine 6.1.345 (extra)
Problème : Win32 : 'imdisable' ne fonctionne pas.
Solution : Faire que 'imdisable' fonctionne. (Yasuhiro Matsumoto)
Fichiers : src/gui_w32.c
Rustine 6.1.346
Problème : La molette de la souris ne fait défiler que la fenêtre courante.
Solution : Faire que la molette de la souris fasse défiler la fenêtre dans
laquelle se trouve le pointeur. (Daniel Elstner)
Fichiers : src/edit.c, src/gui.c, src/normal.c, src/term.c
Rustine 6.1.347
Problème : Lors de l'utilisation de Cscope pour lister les marqueurs
correspondants, le nombre listé est parfois différent de celui
qu'utilise Cscope. (Vihren Milev)
Solution : N'utiliser qu'un seul tableau pour les marqueurs Cscope, ne pas
donner une plus grande priorité aux marqueurs du fichier courant.
Fichiers : src/tag.c
Rustine 6.1.348
Problème : Wildmode avec wildmenu : ":set wildmode=list,full", ":colorscheme
<tab>" donne "zellner" au lieu de la première entrée. (Anand
Hariharan)
Solution : Ne pas appeler ExpandOne() dans globpath(). (Flemming Madsen)
Fichiers : src/ex_getln.c
Rustine 6.1.349
Problème : "vim --serverlist" alors qu'aucun serveur n'est lancé donne un
message d'erreur sans "\n".
"vim --serverlist" ne quitte pas quand le serveur n'est pas
joignable, Vim est démarré de manière inattendue. (Ricardo Signes)
Solution : Ne pas retourner une erreur quand aucun serveur Vim n'est lancé.
Traiter les échecs de l'ouverture de l'affichage comme des erreurs
dans les fonctions remote*(). (Flemming Madsen)
Fichiers : src/if_xcmdsrv.c, src/main.c
Rustine 6.1.350
Problème : Lors de l'arrivée pour la première fois dans un tampon avec
":bnext", l'utilisation d'une autocommande pour restaurer la
dernière position du curseur ne fonctionne pas. (Paolo Giarusso)
Solution : Ne pas utiliser la dernière position connue du curseur de
l'instance courante de Vim si une autocommande a modifié cette
position.
Fichiers : src/buffer.c
Rustine 6.1.351 (basée sur 6.1.349)
Problème : Plantage quand Vim est lancé pour le première fois dans un serveur
X. (John McGowan)
Solution : Ne pas appeler xFree() avec une chaîne fixe.
Fichiers : src/if_xcmdsrv.c
Rustine 6.1.352 (extra, basée sur 6.1.345)
Problème : Win32 : plantage quand 'imdisable' est activé dans le fichier
_vimrc.
Solution : Ne pas appeler les fonctions de l'IME tant que "imm32.dll" n'est
pas chargée.
Ajouter des transtypages pour éviter des avertissements du
compilateur avec les arguments de ImmAssociateContext().
Fichiers : src/gui_w32.c
Rustine 6.1.353 (extra, basée sur 6.1.334)
Problème : Problèmes avec le dessin des caractères arabes.
Solution : Ne pas utiliser ETO_PDY, utiliser du bourrage.
Fichiers : src/gui_w32.c
Rustine 6.1.354 (extra, basée sur 6.1.333)
Problème : MS-Windows 98 : Notepad ne parvient pas à coller du texte copié
dans Vim quand 'encoding' vaut "utf-8".
Solution : Rendre CF_TEXT disponible dans le presse-papiers.
Fichiers : src/os_mswin.c
Rustine 6.1.355
Problème : '\n' dans une exprat ne correspond avec rien du tout dans une
chaîne.
Solution : Faire correspondre '\n' avec le caractère saut-de-ligne.
Fichiers : src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/misc1.c,
src/option.c, src/os_mac.c, src/os_unix.c, src/quickfix.c,
src/regexp.c, src/search.c, src/syntax.c, src/tag.c, src/vim.h
Rustine 6.1.356 (extra, basée sur, euh, hum, de nombreuses autres)
Problème : Avertissements du compilateur lors de l'utilisation de
convert_setup() et quelques autres petites choses.
Solution : Ajouter des transtypages.
Fichiers : src/mbyte.c, src/os_mswin.c, src/proto/os_win32.pro, src/os_win32.c
Rustine 6.1.357
Problème : CR dans la fenêtre mise-au-point saute à l'erreur sous le curseur,
mais cela ne fonctionne pas en mode Insertion. (Srikanth Sankaran)
Solution : Prendre CR en charge en mode Insertion dans la fenêtre
mise-au-point.
Fichiers : src/edit.c
Rustine 6.1.358
Problème : Le tutoriel ne choisit pas correctement une autre version de la
région linguistique.
Solution : Insérer une commande ":let". (Yasuhiro Matsumoto)
Fichiers : runtime/tutor/tutor.vim
Rustine 6.1.359 (extra)
Problème : Mac Carbon : Vim n'obtient pas le focus quand il est lancé depuis
la ligne de commande. Plantage à l'utilisation de la barre de
défilement horizontale.
Solution : Faire de Vim le frontProcess. Corriger le défilement. (Peter
Cucka)
Fichiers : src/gui_mac.c
Rustine 6.1.360 (basée sur 6.1.341)
Problème : En mode insertion, CTRL-K Echap salit un caractère multi-octets.
(Anders Helmersson)
Solution : Mémoriser tous les octets d'un caractère lors de l'affichage d'un
caractère temporaire.
Fichiers : src/edit.c, src/proto/screen.pro, src/screen.c
Rustine 6.1.361
Problème : Impossible de sauter vers une marque de fichier avec ":'M".
Solution : Autoriser un saut vers un autre fichier avec une marque dans une
adresse Ex quand elle est seule sur la ligne de commande.
Fichiers : src/ex_docmd.c
Rustine 6.1.362
Problème : tgetent() peut retourner zéro en cas de succès. tgetflag() peut
retourner -1 en cas d'erreur.
Solution : Vérifier si tgetflag() retourne une valeur positive. Ajouter une
vérification autoconf pour tester la valeur retournée par
tgetent().
Fichiers : src/auto/configure, src/config.h.in, src/configure.in, src/term.c
Rustine 6.1.363
Problème : byte2line() peut retourne un nombre supérieur au nombre de lignes.
Solution : Retourner -1 si le décalage est un octet au-delà de la fin.
Fichiers : src/memline.c
Rustine 6.1.364
Problème : Le fait que l'événement d'autocommande FileChangedShell n'est
jamais imbriqué rend difficile le rechargement d'un fichier d'une
manière conventionnelle.
Solution : Autoriser l'imbrication des événements FileChangedShell mais pas
la possibilité qu'il se déclenche lui-même.
Éviter les autocommandes dans la fenêtre ligne-de-commande dans de
rares cas.
Fichiers : src/ex_getln.c, src/fileio.c, src/window.c
Rustine 6.1.365 (basée sur 6.1.217)
Problème : Placer un point d'arrêt dans un fichier sourcé ayant un nom de
fichier avec un chemin relatif ne fonctionne pas. (Servatius
Brandt)
Solution : Développer le nom du fichier en un chemin complet.
Fichiers : src/ex_cmds2.c
Rustine 6.1.366
Problème : Impossible d'utiliser Vim avec Netbeans.
Solution : Ajouter l'interface Netbeans. Elle comprend le support des
symboles graphiques et des arguments "-fg" et "-bg" pour GTK+.
Ajouter l'option 'autochdir'. (Gordon Prieur, George Hernandez,
Dave Weatherford)
Permettre d'afficher à la fois un symbole avec un texte et un avec
la surbrillance de la ligne dans la même ligne.
Ajouter le support pour Agide, avec l'interface version 2.1.
Corriger le problème de la commande "*" qui, alors que 'iskeyword'
contient '?', ne fonctionne pas correctement sur les mots
contenant "?" (Bill McCarthy) : ne pas protéger "?" avec "\?" lors
d'une recherche vers l'avant.
Fichiers : runtime/doc/Makefile, runtime/doc/netbeans.txt,
runtime/doc/options.txt, runtime/doc/various.txt,
src/Makefile, src/auto/configure, src/buffer.c, src/config.h.in,
src/config.mk.in, src/configure.in, src/edit.c, src/ex_cmds.c,
src/ex_docmd.c, src/feature.h, src/fileio.c, src/globals.h,
src/gui.c, src/gui_beval.c, src/gui_gtk_x11.c, src/gui_x11.c,
src/main.c, src/memline.c, src/misc1.c, src/misc2.c, src/move.c,
src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/normal.c,
src/ops.c, src/option.c, src/option.h, src/proto/buffer.pro,
src/proto/gui_beval.pro, src/proto/gui_gtk_x11.pro,
src/proto/gui_x11.pro, src/proto/misc2.pro,
src/proto/netbeans.pro, src/proto/normal.pro, src/proto/ui.pro,
src/proto.h, src/screen.c, src/structs.h, src/ui.c, src/undo.c,
src/vim.h, src/window.c, src/workshop.c
Rustine 6.1.367 (basée sur 6.1.365)
Problème : Placer un point d'arrêt dans un fonction ne fonctionne pas. Avec
un fichier sourcé, cela ne fonctionne pas quand des liens
symboliques sont impliqués. (Servatius Brandt)
Solution : Développer le nom du fichier comme le fait do_source(). Ne pas
préfixer le nom de la fonction avec le chemin.
Fichiers : src/ex_cmds2.c
Rustine 6.1.368
Problème : Le complètement de ":map" n'inclut pas <silent> et <script>.
":mkexrc" n'enregistre pas l'attribut <silent> des mappages.
Solution : Ajouter "<silent>" à la commande de mappage quand c'est approprié.
(David Elstner)
Ajouter <silent> et <script> au complètement de la ligne de
commande.
Fichiers : src/getchar.c
Rustine 6.1.369 (extra)
Problème : VMS : Vim bloque quand il tente d'éditer un fichier en lecture
seule dans le terminal. Problèmes avec les noms de fichiers VMS et
le mode mise-au-point.
Solution : Réécrire la lecture de bas-niveau. Supprimer le numéro de version
du fichier à plusieurs endroits. Corriger le plantage après la
rustine 6.1.362. Corriger le code de retour de system(). (Zoltan
Arpadffy, Tomas Stehlik)
Fichiers : src/misc1.c, src/os_unix.c, src/os_vms.c, src/proto/os_vms.pro,
src/os_vms_conf.h, src/quickfix.c, src/ui.c
Rustine 6.1.370
Problème : L'imbrication des #ifdef n'est pas très claire.
Solution : Insérer des espaces pour indiquer les niveaux d'imbrication.
Fichiers : src/os_unix.c
Rustine 6.1.371
Problème : "%V" dans 'statusline' n'affiche pas "0-1" dans une ligne vide.
Solution : Ajouter un à la colonne lors de la comparaison avec la colonne
virtuelle. (Andrew Pimlott)
Fichiers : src/buffer.c
Rustine 6.1.372
Problème : Avertissements du compilateur avec des int de 16 bits. (Walter
Briscoe)
Solution : Changer les int en long.
Fichiers : src/structs.h, src/syntax.c
Rustine 6.1.373
Problème : L'en-tête par défaut pour l'impression n'est pas traduite.
Solution : Ajouter _() autour des deux endroits où "Page" est utilisé. (Mike
Williams) Traduire la valeur par défaut des options 'titleold' et
'printheader'.
Fichiers : src/ex_cmds2.c, src/option.c
Rustine 6.1.374 (extra)
Problème : MS-Windows : impossible de compiler GvimExt avec MinGW et CygWin.
Solution : Ajouter des Makefiles et des fichiers de ressources. (Rene de
Zwart)
Supporter CygWin. (Alejandro Lopez_Valencia)
Fichiers : GvimExt/Make_cyg.mak, GvimExt/Make_ming.mak, GvimExt/Makefile,
GvimExt/gvimext_ming.def, GvimExt/gvimext_ming.rc
Rustine 6.1.375
Problème : MS-Windows : ':!dir "%"' ne fonctionne pas avec un nom de fichier
contenant des espaces. (Xiangjiang Ma)
Solution : Ne pas insérer de contre-obliques devant les espaces pour les
commandes shell.
Fichiers : src/ex_docmd.c
Rustine 6.1.376
Problème : "vim --version" et "vim --help" retourne un code de retour non
nul, ce qui est inhabituel. (Petesea)
Solution : utiliser un code de retour nul.
Fichiers : src/main.c
Rustine 6.1.377
Problème : Impossible d'ajouter des mots à l'option 'lispwords'.
Solution : Ajouter les drapeaux P_COMMA et P_NODUP. (Haakon Riiser)
Fichiers : src/option.c
Rustine 6.1.378
Problème : Quand deux commandes utilisateur locales à un tampon sont
ambiguës, une correspondance entière avec une commande utilisateur
globale n'est pas trouvée. (Hari Krishna Dara)
Solution : Détecter cette situation et accepter la commande globale.
Fichiers : src/ex_docmd.c
Rustine 6.1.379
Problème : Linux avec un noyau 2.2 ne peut pas utiliser la pile alternative
en même temps que les threads, car cela déclenche des boucles
infinies.
Solution : Ne pas utiliser la pile alternative dans cette situation.
Fichiers : src/os_unix.c
Rustine 6.1.380
Problème : Quand 'winminheight' est nul et que la fenêtre mise-au-point a une
hauteur nulle, y entrer ne la rend pas plus haute. (Christian J.
Robinson)
Solution : S'assurer que la fenêtre fait au moins une ligne de haut.
Fichiers : src/window.c
Rustine 6.1.381
Problème : Quand BufWriteCmd est utilisé et qu'il laisse le tampon modifié,
la fenêtre peut tout de même être fermée. (Hari Krishna Dara)
Solution : Retourner FAIL depuis buf_write() quand le tampon est encore
modifié après le déclenchement de l'autocommande BufWriteCmd.
Fichiers : src/fileio.c
Rustine 6.1.382 (extra)
Problème : IHM Win32 : le code vérifiant/fixant la taille et la position de
la fenêtre (par exemple quand la police est modifiée) ne
fonctionne pas correctement quand deux écrans sont utilisés.
(George Reilly)
Solution : Prendre en compte le cas du double écran. (Helmut Stiegler)
Fichiers : src/gui_w32.c
Rustine 6.1.383
Problème : Le remplissage de la ligne d'état ne fonctionne pas correctement
avec les caractères multi-octets. (Nam SungHyun)
Aucun test de débordement de tampon n'est effectué.
Solution : Distinguer correctement les caractères et les octets. Vérifier
correctement le débordement de tampon.
Fichiers : src/buffer.c, src/ex_cmds2.c, src/proto/buffer.pro, src/screen.c
Rustine 6.1.384
Problème : Il n'est pas possible de savoir si une rustine particulière a été
appliquée. (Lubomir Host)
Solution : Permettre l'utilisation de has() pour vérifier si une rustine est
incluse.
Fichiers : runtime/doc/eval.txt, src/eval.c, src/proto/version.pro,
src/version.c
Rustine 6.1.385 (basée sur 6.1.383)
Problème : Impossible de compiler sans la fonctionnalité multi-octets.
Solution : Déplacer un #ifdef. (Christian J. Robinson)
Fichiers : src/buffer.c
Rustine 6.1.386
Problème : Marqueur en double lors d'un ":helptags".
Solution : Faire la deuxième moitié de la migration d'une section dans un
autre fichier d'aide.
Fichiers : runtime/tagsrch.txt
Rustine 6.1.387 (basée sur 6.1.373)
Problème : Avertissement du compilateur à propos d'une conversion de type de
pointeur.
Solution : Ajouter (char_u *).
Fichiers : src/option.c
Rustine 6.1.388 (basée sur 6.1.384)
Problème : Avertissement du compilateur à propos d'une conversion de type de
pointeur.
Solution : Ajouter (char *). inclure has_patch() seulement quand il est
utilisé.
Fichiers : src/eval.c, src/version.c
Rustine 6.1.389 (basée sur 6.1.366)
Problème : L'évaluation par bulle ne fonctionne pas avec GTK+.
has("balloon_eval") ne fonctionne pas.
Solution : Ajouter l'évaluation par bulle pour GTK+. Améliorer l'affichage
des symboles. (Daniel Elstner)
Faire que ":gui" démarre la connexion NetBeans et éviter
d'utiliser les fonctions NetBeans quand la connexion n'est pas
ouverte.
Fichiers : src/Makefile, src/feature.h, src/gui.c, src/gui.h,
src/gui_beval.c, src/gui_beval.h, src/gui_gtk.c,
src/gui_gtk_x11.c, src/eval.c, src/memline.c, src/menu.c,
src/netbeans.c, src/proto/gui_beval.pro, src/proto/gui_gtk.pro,
src/structs.h, src/syntax.c, src/ui.c, src/workshop.c
Rustine 6.1.390 (basée sur 6.1.389)
Problème : Il n'est pas possible de dire à Vim d'enregistrer puis de quitter
au travers de l'interface NetBeans. Il tente encore d'envoyer le
texte de la bulle d'évaluation après que la connexion est fermée.
Impossible d'utiliser des caractères Unicode pour les symboles
textuels.
Solution : Ajouter les fonctions "saveAndExit" et "getModified". Vérifier si
la connexion est opérationnelle avant d'envoyer un événement
balloonText. Divers autres nettoyages.
Permettre n'importe quel caractère pour les symboles textuels.
(Daniel Elstner)
Fichiers : runtime/doc/netbeans.txt, runtime/doc/sign.txt, src/ex_cmds.c,
src/netbeans.c, src/screen.c
Rustine 6.1.391
Problème : Erreur ml_get() à l'utilisation de virtualedit. (Charles Campbell)
Solution : Récupérer la ligne d'une fenêtre particulière, et non de la
fenêtre courante.
Fichiers : src/charset.c
Rustine 6.1.392 (basée sur 6.1.383)
Problème : La surbrillance dans la ligne d'état ('statusline') n'est pas au
bon endroit quand un élément est tronqué. (Zak Beck)
Solution : Corriger le début des éléments de ligne d'état pour les éléments
tronqués.
Fichiers : src/buffer.c
Rustine 6.1.393
Problème : Quand il est compilé avec Python et les threads, Vim peut boucler
sans fin au détachement du terminal.
Solution : Ajouter "-pthread" à $CFLAGS lors de l'utilisation de Python et de
GCC. (Daniel Elstner)
Fichiers : src/auto/configure,, src/configure.in
Rustine 6.1.394 (basée sur 6.1.390)
Problème : L'interface NetBeans ne reconnaît pas les noms des glyphes
multi-octets.
Solution : Vérifier le nombre de cellules plutôt que le nombre d'octets pour
décider si le nom d'un glyphe est un nom de fichier ou non.
(Daniel Elstner)
Fichiers : src/netbeans.c
Rustine 6.1.395 (extra, basée sur 6.1.369)
Problème : VMS : OLD_VMS n'est jamais défini. Prototypes de fonctions
manquants.
Solution : Définir OLD_VMS dans "Make_vms.mms". Ajouter vms_sys_status() dans
"os_vms.pro". (Zoltan Arpadffy)
Fichiers : src/Make_vms.mms, src/proto/os_vms.pro
Rustine 6.1.396 (basée sur 6.1.330)
Problème : Avertissements du compilateur à l'utilisation de enum.
Solution : Ajouter un transtypage vers char_u.
Fichiers : src/gui_gtk_x11.c, src/gui_x11.c
Rustine 6.1.397 (extra)
Problème : Le programme d'installation peut utiliser un mauvais chemin pour
la commande `diff` si le répertoire d'installation contient un
espace.
Solution : Utiliser des doubles-apostrophes autour du chemin quand c'est
nécessaire. (Alejandro Lopez-Valencia) Utiliser aussi des
doubles-apostrophes autour des arguments qui sont des noms de
fichiers.
Fichiers : src/dosinst.c
Rustine 6.1.398
Problème : Mémoriser le tampon typeahead pour le mode débogage pose des
problème à l'un des scripts de test. (Servatius Brandt)
Solution : Ajouter la commande ":debuggreedy" pour éviter de mémoriser le
tampon typeahead.
Fichiers : runtime/doc/repeat.txt, src/ex_cmds.h, src/ex_cmds2.c,
src/ex_docmd.c, src/proto/ex_cmds2.pro
Rustine 6.1.399
Problème : Avertissement pour une variable non utilisée.
Solution : Supprimer la variable two_or_more.
Fichiers : src/ex_cmds.c
Rustine 6.1.400 (basée sur 6.1.381)
Problème : Quand BufWriteCmd détruit un tampon, ce dernier est encore
accessible.
Solution : Ne pas tenter d'accéder au tampon après qu'il a été détruit.
Fichiers : src/fileio.c
Rustine 6.1.401 (extra)
Problème : La compilation de la version Win16 avec Borland 5.01 ne fonctionne
pas. "make test" ne fonctionne pas avec "Make_dos.mak". (Walter
Briscoe)
Solution : Diverses corrections dans le Makefile Win16. (Walter Briscoe)
Ne pas utiliser `deltree`. Utiliser `mkdir \tmp` au lieu de
`mkdir /tmp`.
Fichiers : src/Make_w16.mak, src/testdir/Make_dos.mak
Rustine 6.1.402
Problème : Lors de l'évaluation du nom d'une fonction entre accolades, les
erreurs ne sont pas gérées de manière cohérente.
Solution : Accepter le résultat d'une expression entre accolades quand un
erreur s'est produite. Sauter l'évaluation de l'expression entre
les accolades quand le code est sauté. (Servatius Brandt)
Fichiers : src/eval.c
Rustine 6.1.403 (extra)
Problème : MS-Windows 16 bits : avertissements du compilateur.
Solution : Ajouter des transtypages. (Walter Briscoe)
Fichiers : src/ex_cmds2.c, src/gui_w48.c, src/os_mswin.c, src/os_win16.c,
src/syntax.c
Rustine 6.1.404 (extra)
Problème : Divers petits problèmes.
Solution : Correction des commentaires. Divers petits ajouts, ajustements de
l'indentation, suppression d'éléments inutilisés et corrections.
Fichiers : Makefile, README.txt, runtime/menu.vim, runtime/vimrc_example.vim,
src/INSTALL, src/INSTALLole.txt, src/Make_bc5.mak,
src/Make_cyg.mak, src/Make_ming.mak, src/Makefile,
src/config.h.in, src/edit.c, src/eval.c, src/ex_cmds2.c,
src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/getchar.c,
src/gui.c, src/gui_gtk.c, src/gui_photon.c, src/if_cscope.c,
src/if_python.c, src/keymap.h, src/mark.c, src/mbyte.c,
src/message.c, src/misc1.c, src/misc2.c, src/normal.c,
src/option.c, src/os_os2_cfg.h, src/os_win32.c,
src/proto/getchar.pro, src/proto/message.pro,
src/proto/regexp.pro, src/screen.c, src/structs.h, src/syntax.c,
src/term.c, src/testdir/test15.in, src/testdir/test15.ok,
src/vim.rc, src/xxd/Make_cyg.mak, src/xxd/Makefile
Rustine 6.1.405
Problème : Quelques fichiers manquent dans le Makefile principal.
Solution : Ajouter les fichiers manquants.
Fichiers : Makefile
Rustine 6.1.406 (basée sur 6.1.392)
Problème : Quand un élément ne tient pas dans une ligne d'état, du texte
aléatoire apparaît. (Christian J. Robinson)
Solution : Quand la place est suffisante pour le texte mais pas pour le "<",
tronquer la ligne d'état comme s'il n'y avait pas assez de place.
Fichiers : src/buffer.c
Rustine 6.1.407
Problème : ":set scrollbind | help" lie le défilement de la fenêtre d'aide.
(Andrew Pimlott)
Solution : Réinitialiser 'scrollbind' lors de l'ouverture d'une fenêtre
d'aide.
Fichiers : src/ex_cmds.c
Rustine 6.1.408
Problème : Avec 'rightleft' activé, le caractère non imprimable 0x0c est
affiché ">c0<".
Solution : Inverser le texte du caractère héxadécimal.
Fichiers : src/screen.c
Rustine 6.1.409
Problème : La génération des marqueurs de l'aide ne fonctionne pas avec
certaines régions linguistiques.
Solution : Fixer LANG=C LC_ALL=C dans l'environnement pour `sort`. (Daniel
Elstner)
Fichiers : runtime/doc/Makefile
Rustine 6.1.410 (basée sur 6.1.390)
Problème : Erreur à l'édition des liens lors de la compilation avec
l'interface NetBeans, mais sans les symboles. (Malte Neumann)
Solution : Ne pas redéfinir buf_signcount() quand les symboles ne sont pas
disponibles.
Fichiers : src/buffer.c
Rustine 6.1.411
Problème : Avec 'virtualedit' activé, la surbrillance d'un bloc Visuel
au-delà de la fin d'une ligne peut être fausse.
Solution : Corriger la colonne virtuelle quand la fin de la ligne se trouve
avant la partie affichée de cette ligne. (Muraoka Taro) XXX ?
Fichiers : src/screen.c
Rustine 6.1.412
Problème : Lors du basculement des écrans du terminal alors que ":gui" est
utilisé pour démarrer l'IHM graphique, l'invite du shell peut
apparaître après une invite Appuyez-sur-entrée.
Solution : Un saut-de-ligne était envoyé au terminal lors du lancement de
l'IHM graphique, entraînant l'invite Appuyez-sur-entrée...
Fichiers : src/gui.c
Rustine 6.1.413
Problème : Quand 'clipboard' contient "unnamed", "p" ne fonctionne pas
correctement en mode Visuel.
Solution : Mémoriser le registre avant de l'écraser et mettre le texte dans
le presse-papiers après coup. (Muraoka Taro)
Fichiers : src/normal.c, src/ops.c
Rustine 6.1.414 (extra, basée sur on 6.1.369)
Problème : VMS : Vim est en attente active d'une saisie.
Solution : Attendre un tout petit peu avant de récupérer un autre caractère.
(Zoltan Arpadffy)
Fichiers : src/os_vms.c
Rustine 6.1.415
Problème : Quand il existe un partage vertical et une fenêtre mise-au-point,
la réduction de la taille de la fenêtre Vim peut aboutir à une
disposition des fenêtres erronée et à un plantage.
Solution : Quand la taille de la fenêtre est réduite et qu'il n'y a pas assez
de place pour 'winfixheight', fixer la hauteur de la fenêtre à la
plus grande hauteur, de façon à ce qu'il y ait une nouvelle
tentative quand 'winfixheight' n'est pas respecté. (Yasuhiro
Matsumoto)
Fichiers : src/window.c
Rustine 6.1.416 (depends on 6.1.366)
Problème : Avec l'interface NetBeans, il n'est pas possible de modifier une
ligne comportant un symbole.
Solution : Respecter GUARDEDOFFSET pour les ID de symboles lors de la
vérification des zones verrouillées.
Fichiers : src/netbeans.c
Rustine 6.1.417
Problème : Les caractères multi-octets non imprimables ne sont pas
correctement pris en charge.
Les caractères multi-octets après 0xffff sont affichés comme étant
d'autres caractères.
Solution : Prendre en compte les caractères multi-octets non imprimables.
Afficher les caractères après 0xffff avec une marque.
Reconnaître les mots UTF-16 et les marques d'encodage comme non
imprimables. (Daniel Elstner)
Fichiers : src/charset.c, src/mbyte.c, src/screen.c
Rustine 6.1.418
Problème : Le résultat de strftime() est conforme à la région linguistique
courante, il est nécessaire de le convertir selon 'encoding'.
Solution : Obtenir la region linguistique courante et convertir l'argument de
strftime() en conséquence, puis faire la conversion inverse avec
le résultat. (Daniel Elstner)
Fichiers : src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/mbyte.c,
src/proto/mbyte.pro, src/option.c, src/os_mswin.c
Rustine 6.1.419
Problème : Vim ne compile pas sur AIX 5.1.
Solution : Ne pas définir _NO_PROTO sur ce système. (Uribarri)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.420 (extra)
Problème : convert_input() appelle STRLEN() pour rien.
La conversion de UCS-2 vers une page de codes compte les mots
plutôt que les octets.
Solution : Supprimer l'appel STRLEN(). (Daniel Elstner)
Toujours utiliser le compte des octets pour string_convert().
Fichiers : src/gui_w32.c, src/mbyte.c
Rustine 6.1.421 (extra, basée sur 6.1.354)
Problème : MS-Windows 9x : lors du collage de texte depuis le presse-papiers,
l'encodage peut être faux.
Solution : Convertir le texte en CF_TEXT vers la page de codes active. (Glenn
Maynard)
Fichiers : src/os_mswin.c
Rustine 6.1.422
Problème : Une erreur dans le .vimrc ne provoque pas d'invite
Appuyez-sur-entrée lors du basculement des écrans. (Neil Bird)
Solution : Fixer aussi msg_didany quand un message est adressé directement au
terminal.
Fichiers : src/message.c
Rustine 6.1.423
Problème : Impossible de trouver du texte arbitraire dans l'aide.
Solution : Ajout de la commande ":helpgrep".
Fichiers : runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c,
src/proto/quickfix.pro, src/quickfix.c
Rustine 6.1.424 (extra)
Problème : Win32 : gvim compilé avec VC++ 7.0 pour Windows 95 n'affiche pas
les éléments de menu.
Solution : Définir $WINVER pour éviter qu'un élément supplémentaire ne soit
ajouté à MENUITEMINFO. (Muraoka Taro)
Fichiers : src/Make_mvc.mak
Rustine 6.1.425
Problème : ":helptags $VIMRUNTIME/doc" n'ajoute pas le marqueur "help-tags".
Solution : Ajouter le marqueur "help-tags" spécifiquement pour ce répertoire.
Fichiers : src/ex_cmds.c
Rustine 6.1.426
Problème : "--remote-wait +cmd fich" attend indéfiniment. (Valery Kondakoff)
Solution : Ne pas attendre que l'argument "+cmd" soit édité.
Fichiers : src/main.c
Rustine 6.1.427
Problème : Plusieurs messages d'erreur à propos des exprat ne sont pas
traduits.
Solution : Utiliser _() de façon appropriée. (Muraoka Taro)
Fichiers : src/regexp.c
Rustine 6.1.428
Problème : FreeBSD : wait() peut bloquer quand la compilation inclut le
sypport de Python et qu'un script de démarrage fait un appel à
system().
Solution : Utiliser waitpid() à la place de wait() et scruter toute les
10 ms, comme avec l'IHM graphique.
Fichiers : src/os_unix.c
Rustine 6.1.429 (basée sur 6.1.390)
Problème : Plantage lors de l'utilisation du greffon "showmarks.vim".
(Charles Campbell)
Solution : Vérifier si sign_get_text() retourne un pointeur NULL.
Fichiers : src/screen.c
Rustine 6.1.430
Problème : En Lisp, les parenthèses protégées par des contre-obliques
devraient être ignorées avec "%". (Dorai)
Solution : Sauter les parenthèses protégées.
Fichiers : src/search.c
Rustine 6.1.431
Problème : Les commandes de débogage finissent par rediriger du texte.
Solution : Désactiver la redirection pendant la prise en charge des commandes
de débogage.
Fichiers : src/ex_cmds2.c
Rustine 6.1.432 (basée sur 6.1.375)
Problème : MS-Windows : ":make %:p" insère des contre-obliques
supplémentaires. (David Rennalls)
Solution : Ne pas ajouter de contre-obliques, faire comme pour ":!cmd".
Fichiers : src/ex_docmd.c
Rustine 6.1.433
Problème : ":popup" ne fonctionne que pour Win32.
Solution : Ajouter le support de ":popup" pour GTK+. (Daniel Elstner)
Fichiers : runtime/doc/gui.txt, src/ex_docmd.c, src/gui_gtk.c, src/menu.c,
src/proto/gui_gtk.pro
Rustine 6.1.434 (extra)
Problème : Win32 : quand il existe plus de 32767 lignes, la barre de
défilement subit des erreurs d'arrondi.
Solution : Faire qu'un clic sur la flèche défile d'une ligne. Déplacer le
code vers "gui_w48.c", il n'y a pratiquement aucune différence
entre les versions 16 et 32 bits. (Walter Briscoe)
Fichiers : src/gui_w16.c, src/gui_w32.c, src/gui_w48.c
Rustine 6.1.435
Problème : ":winsize x" redimensionne la fenêtre Vim à la taille minimale.
(Andrew Pimlott)
Solution : Donner un message d'erreur pour de mauvais arguments avec les
commandes ":winsize" et ":winpos".
Fichiers : src/ex_docmd.c
Rustine 6.1.436
Problème : Quand un long fichier UTF-8 contient un octet invalide, il est
difficile de le trouver. (Ron Aaron)
Solution : Ajouter le numéro de la ligne dans le message d'erreur.
Fichiers : src/fileio.c
Rustine 6.1.437 (extra, basée sur 6.1.421)
Problème : Des fonctions multi-octets sont utilisées alors qu'elles ne sont
pas disponibles.
Solution : Mettre les conversions du presse-papiers entre #ifdef. (Vince
Negri)
Corriger une erreur de type de pointeur. (Walter Briscoe)
Fichiers : src/os_mswin.c
Rustine 6.1.438
Problème : Quand Perl supporte les threads, Vim ne parvient pas à utiliser
l'interface Perl.
Solution : Ajouter une vérification dans `configure` et désactiver Perl quand
il ne fonctionne pas. (Aron Griffis)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.1.439
Problème : Netbeans : la fonction "create" ne crée pas vraiment de tampon,
les fonctions suivantes peuvent échouer.
Solution : Créer un tampon sans nom quand "create" est invoqué. (Gordon
Prieur)
Fichiers : runtime/doc/netbeans.txt, src/netbeans.c
Rustine 6.1.440
Problème : La commande "@*" ne récupère pas le contenu courant du
presse-papiers. (Hari Krishna Dara)
Solution : Récupérer le texte du presse-papiers avant d'exécuter la commande.
Fichiers : src/ops.c
Rustine 6.1.441
Problème : "zj" et "zk" ne sont pas utilisables comme commandes de mouvement
après un opérateur. (Ralf Hetzel)
Solution : Autoriser ces commandes en tant que mouvement.
Fichiers : src/normal.c
Rustine 6.1.442
Problème : Unicode 3.2 spécifie davantage de caractères d'espacement et de
ponctuation.
Solution : Ajouter les nouveaux caractères aux tables Unicode. (Raphael
Finkel)
Fichiers : src/mbyte.c
Rustine 6.1.443 (extra)
Problème : Win32 : la compilation de "gvimext.dll" avec Borland 5.5 nécessite
une DLL supplémentaire.
Solution : Compiler une version statique par défaut. (Dan Sharp)
Fichiers : GvimExt/Make_bc5.mak
Rustine 6.1.444 (extra)
Problème : Win32 : l'activation de la compilation avec gettext n'est pas
homogène.
Solution : Utiliser "GETTEXT" dans les Makefiles Borland et MSVC. (Dan Sharp)
Fichiers : src/Make_bc5.mak, src/Make_mvc.mak
Rustine 6.1.445 (extra)
Problème : DJGPP : avertissement avec l'argument de putenv().
Solution : Définir HAVE_PUTENV pour utiliser putenv() de DJGPP. (Walter
Briscoe)
Fichiers : src/os_msdos.h
Rustine 6.1.446 (extra)
Problème : Win32 : le Makefile MinGW utilise un style d'argument différent
des autres Makefiles.
L'IME dynamique n'est pas disponible avec CygWin.
Solution : Utiliser des arguments de type "no" et "yes". Supprimer
l'utilisation du fichier inclus "dyn-ming.h". (Dan Sharp)
Ne pas inclure le fichier "ime.h" et ajuster le Makefile.
(Alejandro Lopez-Valencia)
Fichiers : src/Make_cyg.mak, src/Make_ming.mak, src/gui_w32.c,
src/if_perl.xs, src/if_python.c, src/if_ruby.c, src/os_win32.c
Rustine 6.1.447
Problème : "make install" utilise directement `make` pour générer les
marqueurs de l'aide.
Solution : Utiliser $(MAKE) au lieu de "make". (Tim Mooney)
Fichiers : src/Makefile
Rustine 6.1.448
Problème : 'titlestring' donne par défaut une longueur maximale de 50
caractères à chacun de ses éléments.
Solution : Supprimer le maximum par défaut (pareil pour 'statusline').
Fichiers : src/buffer.c
Rustine 6.1.449
Problème : Quand 'formatoptions' contient '1' et 'a', la mise en forme
automatique déplace toujours les nouveaux caractères dans la ligne
suivante. (Servatius Brandt)
Solution : Ne pas déplacer un caractère seul dans la ligne suivante quand il
vient d'être tapé.
Fichiers : src/edit.c
Rustine 6.1.450
Problème : L'entrée termcap "kB" (back-tab XXX) n'est pas reconnue.
Solution : Utiliser back-tab en tant que code Maj-Tab.
Fichiers : src/keymap.h, src/misc2.c, src/term.c
Rustine 6.1.451
Problème : IHM graphique : quand le texte du dialogue Rechercher contient une
oblique, une contre-oblique est insérée lors de l'ouverture
suivante du dialogue. (Mezz)
Solution : Supprimer les contre-obliques et les points d'interrogation
protégés. (Daniel Elstner)
Fichiers : src/gui.c
Rustine 6.1.452 (extra, basée sur 6.1.446)
Problème : Win32 : le support de l'IME ne fonctionne pas avec MSVC.
Solution : Utiliser _MSC_VER au lieu de __MSVC. (Alejandro Lopez-Valencia)
Fichiers : src/gui_w32.c
Rustine 6.1.453 (basée sur 6.1.429)
Problème : Quand Vim est compilé avec le support des symboles, mais sans le
support des symboles graphiques, l'ajout d'un symbole peut
provoquer un plantage.
Solution : Vérifier si un symbole textuel existe avant de l'utiliser. (Kamil
Burzynski)
Fichiers : src/screen.c
Rustine 6.1.454 (extra)
Problème : Win32 : coller du texte russe dans Vim avec 'enc' valant "cp1251"
aboutit à des octets UTF-8. (Perelyubskiy)
La conversion de DBCS vers UCS2 ne fonctionne pas quand 'encoding'
n'est pas la page de codes active.
Solution : Ajouter enc_codepage et l'utiliser pour la conversion vers
'encoding'. (Glenn Maynard)
Utiliser MultiByteToWideChar() et WideCharToMultiByte() au lieu de
iconv(). Cela devrait permettre la plupart des conversions
nécessaires sans "iconv.dll".
Fichiers : src/globals.h, src/gui_w32.c, src/mbyte.c, src/os_mswin.c,
src/proto/mbyte.pro, src/proto/os_mswin.pro, src/structs.h
Rustine 6.1.455
Problème : Certains caractères unicode peuvent avoir une ou deux cellules de
largeur.
Solution : Ajouter l'option 'ambiwidth' précisant à Vim la manière d'afficher
ces caractères. (Jungshik Shin)
Réinitialiser l'ID de script quand une option est fixée à sa
valeur par défaut, afin que ":verbose set" ne donne pas une fausse
information.
Fichiers : runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h
Rustine 6.1.456 (extra, basée sur 6.1.454)
Problème : Win32 : l'IME ne fonctionne pas.
Solution : ImmGetCompositionStringW() retourne la taille en octets, pas en
mots. (Yasuhiro Matsumoto) Correction de problèmes de transtypage.
Fichiers : src/gui_w32.c, src/os_mswin.c
Rustine 6.1.457
Problème : Un registre vide dans le viminfo provoque l'échec de la
conversion.
Solution : Ne pas convertir une chaîne vide. (Yasuhiro Matsumoto)
Fichiers : src/ex_cmds.c, src/mbyte.c
Rustine 6.1.458
Problème : Avertissement du compilation sur un pointeur.
Solution : Ajouter un transtypage.
Fichiers : src/ex_cmds.c
Rustine 6.1.459 (extra)
Problème : Win32 : libcall() peut retourner un pointeur invalide et provoquer
un plantage de Vim.
Solution : Ajouter une vérification sévère du pointeur retourné. (Bruce
Mellows)
Fichiers : src/os_mswin.c
Rustine 6.1.460
Problème : GTK+ : après avoir fait défiler le texte d'une ligne avec une
touche, cliquer sur la flèche de la barre de défilement ne
fonctionne pas toujours. (Nam SungHyun)
Solution : Toujours mettre à jour le curseur de la barre de défilement quand
la valeur est modifiée, même s'il ne bouge pas, comme pour RISC
OS. (Daniel Elstner)
Fichiers : src/gui.c, src/gui.h
Rustine 6.1.461
Problème : Quand un codage clavier est actif, la saisie d'un caractère en
mode Sélection ne l'utilise pas. (Benji Fisher)
Solution : Appliquer les mappages du mode Insertion aux caractères tapés en
mode Sélection.
Fichiers : src/normal.c
Rustine 6.1.462
Problème : Quand des autocommandes détruisent un tampon, un plantage peut
survenir. (Hari Krishna Dara)
Solution : Ne pas décrémenter le compteur de fenêtre d'un tampon avant
d'appeler les autocommandes qui le concernent. Quand le tampon est
réutilisé, faire attention aux autocommandes modifiant le tampon
courant.
Fichiers : src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro
Rustine 6.1.463
Problème : Lors de l'écriture d'un fichier compressé, le nom de fichier que
`gzip` enregistre dans le fichier est le nom du fichier
temporaire. (David Rennalls)
Solution : Utiliser le nom réel du fichier quand c'est possible.
Fichiers : runtime/plugin/gzip.vim
Rustine 6.1.464
Problème : Plantage lors de l'utilisation de la coloration syntaxique du C++.
(Gerhard Hochholzer)
Solution : Tester les index négatifs.
Fichiers : src/syntax.c
Rustine 6.1.465 (basée sur 6.1.454)
Problème : Erreur de compilation avec CygWin.
Solution : Changer #ifdef WIN32 en #ifdef WIN3264. (Alejandro Lopez-Valencia)
Ne plus définir WIN32 après l'inclusion de "windows.h".
Fichiers : src/mbyte.c
Rustine 6.1.466
Problème : L'argument "-f" est un peu obscur.
Solution : Ajouter l'argument "--nofork". Améliorer un peu le texte de
l'aide.
Fichiers : runtime/doc/starting.txt, src/main.c
Rustine 6.1.467
Problème : Fixer le titre de la fenêtre ne fonctionne pas en chinois.
Solution : Utiliser une fonction X11 pour convertir le texte chinois en un
propriété de type texte. (Kentaro Nakazawa)
Fichiers : src/os_unix.c
Rustine 6.1.468
Problème : ":mksession" mémorise également les replis des tampons qui ne
seront pas restaurés.
Solution : Ne mémoriser les replis que pour les tampons dont 'buftype' est
vide et les fichier d'aide.
Fichiers : src/ex_docmd.c
Rustine 6.1.469
Problème : 'listchars' cannot contain multi-byte characters.
Solution : Handle multi-byte UTF-8 list characters. (Matthew Samsonoff)
Fichiers : src/message.c, src/option.c, src/screen.c
Rustine 6.1.470 (lang)
Problème : Les messages polonais ne s'affichent pas correctement avec
MS-Windows.
Solution : Convertir les messages en cp1250. (Mikolaj Machowski)
Ajouter les traductions anglaise des messages, car XXX it got in
the way of the patch.
Fichiers : Makefile, src/po/Makefile, src/po/en_gb.po, src/po/pl.po
Rustine 6.1.471
Problème : La sortie de ":jumps" se poursuit après un appui sur "q" à
l'invite Plus. (Hari Krishna Dara)
Solution : Vérifier si got_int a été positionné.
Fichiers : src/mark.c
Rustine 6.1.472
Problème : Quand une erreur d'authentification se produit lors de la
connexion au serveur X, Vim quitte.
Solution : Utiliser XSetIOErrorHandler() pour intercepter l'erreur et
longjmp() pour éviter la sortie. Le faire également dans la boucle
principale, de façon à ce que Vim tournant dans une console ne
quitte pas quand le serveur X est coupé.
Fichiers : src/globals.h, src/main.c, src/os_unix.c
Rustine 6.1.473
Problème : Faire référence à $curwin ou $curbuf avec Perl 5.6 provoque un
plantage.
Solution : Ajouter "pTHX_" à cur_val(). (Yasuhiro Matsumoto)
Fichiers : src/if_perl.xs
Rustine 6.1.474
Problème : Lors de l'ouverture d'une fenêtre ligne-de-cmd en mode Ex, il est
impossible de revenir en arrière. (Pavol Juhas)
Solution : Réinitialiser "exmode_active" et le restaurer quand la fenêtre
ligne-de-cmd est fermée.
Fichiers : src/ex_getln.c
Rustine 6.2f.001
Problème : La vérification de `configure` pour Ruby ne fonctionne pas
correctement avec Ruby 1.8.0.
Solution : Modifier la façon dont la vérification est faite. (Aron Griffis)
Fichiers : src/auto/configure, src/configure.in
Rustine 6.2f.002
Problème : La sortie de ":ls" n'indique pas si un tampon a subi des erreurs
de lecture.
Solution : Ajouter le drapeau 'x' dans la sortie de ":ls".
Fichiers : runtime/doc/windows.txt, src/buffer.c
Rustine 6.2f.003
Problème : "test49" ne teste pas correctement le comportement de ":catch"
sans argument.
Solution : Mettre "test49" à jour. (Servatius Brandt)
Fichiers : src/testdir/test49.ok, src/testdir/test49.vim
Rustine 6.2f.004
Problème : "vim --version" utilise encore des CR/LF.
Solution : Supprimer les CR.
Fichiers : src/message.c, src/os_unix.c
Rustine 6.2f.005
Problème : Deux messages d'erreur sans ":" après le numéro d'erreur.
Solution : Ajouter les deux-points. (Taro Muraoka)
Fichiers : src/if_cscope.c
Rustine 6.2f.006
Problème : Quand l'enregistrement d'un fichier prend un certain temps et que
Vim récupère le focus, un avertissement "file changed outside of
Vim" peut survenir, ainsi que des erreurs ml_get(). (Mike
Williams)
Solution : Ajouter le drapeau "b_saving" pour éviter de vérifier l'horodatage
alors qu'un tampon est en cours d'enregistrement. (Michael Schaap)
Fichiers : src/fileio.c, src/structs.h
Rustine 6.2f.007
Problème : Le compilateur Irix se plaint de symboles définis plusieurs fois.
vsnprintf() n'est pas disponible. (Charles Campbell)
Solution : Ajouter EXTERN pour les variables de "globals.h". Modifier la
vérification de `configure` pour vsnprintf() pour passer de la
compilation à l'édition de liens.
Fichiers : src/auto/configure, src/configure.in, src/globals.h
Rustine 6.2f.008
Problème : La recette Aap ne fonctionne pas avec Aap 0.149.
Solution : targetarg changé en TARGETARG. Mise à jour du fichier mysign.
Fichiers : src/main.aap, src/mysign
Rustine 6.2f.009 (extra)
Problème : Petit problème lors de la compilation avec Borland 5.01.
Solution : utiliser mkdir() au lieu de _mkdir(). (Walter Briscoe)
Fichiers : src/dosinst.h
Rustine 6.2f.010
Problème : Avertissements pour des prototypes manquants.
Solution : Ajouter les prototypes manquants. (Walter Briscoe)
Fichiers : src/if_cscope.c
Rustine 6.2f.011
Problème : Le script `configure` ne fonctionne pas avec autoconf 2.5x.
Solution : Ajouter des crochets autour des vérifications de en-têtes. (Aron
Griffis)
NOTE : "touch src/auto/configure" après l'application de la
rustine.
Fichiers : src/configure.in
Rustine 6.2f.012
Problème : ":echoerr" ne fonctionne pas correctement dans un try/endtry.
Solution : Ne pas réinitialiser did_emsg dans un try/endtry. (Servatius
Brandt)
Fichiers : src/eval.c
Rustine 6.2f.013 (extra)
Problème : Macintosh : avertissement du compilateur pour des trigrammes.
Solution : Insérer une contre-oblique avant tous les points d'interrogation.
(Peter Cucka)
Fichiers : src/os_mac.h
Rustine 6.2f.014 (extra)
Problème : Macintosh : ex_eval n'est pas inclus dans le fichier projet.
Solution : Ajouter ex_eval. (Dany St-Amant)
Fichiers : src/os_mac.pbproj/project.pbxproj
Rustine 6.2f.015 (extra)
Problème : Win32 : quand un fichier d'en-tête est modifié, tous les fichiers
concernés ne sont pas recompilés.
Solution : Améliorer les règles de dépendances. (Dan Sharp)
Fichiers : src/Make_cyg.mak, src/Make_ming.mak
Rustine 6.2f.016
Problème : "vim --version > ff" sur des systèmes non Unix aboutit à un
fichier sans saut-de-ligne final. (Bill McCArthy)
Solution : Ajouter un saut-de-ligne.
Fichiers : src/main.c
Rustine 6.2f.017
Problème : Unix : démarrer Vim en tâche de fond puis le passer au premier
plan peut poser des problèmes avec les réglages du terminal.
Solution : Tester si tcsetattr() retourne une erreur, retenter si c'est le
cas. (Paul Tapper)
Fichiers : src/os_unix.c
Rustine 6.2f.018
Problème : Mac OS X 10.2 : OK est défini à zéro dans "curses.h" alors que Vim
utilise un. La redéfinition provoque un message d'avertissement.
Solution : Supprimer la definition de OK avant de le définir à un. (Taro
Muraoka)
Fichiers : src/vim.h
Rustine 6.2f.019
Problème : Mac OS X 10.2 : COLOR_BLACK et COLOR_WHITE sont définis dans
"curses.h".
Solution : Les renommer en PRCOLOR_BLACK et PRCOLOR_WHITE.
Fichiers : src/ex_cmds2.c
Rustine 6.2f.020
Problème : Win32 : "test50" produit un signal sonore et échoue avec certaines
versions de `diff`.
Solution : Supprimer les lignes vides et convertir la sortie au format de
fichier dos.
Fichiers : src/testdir/test50.in
Rustine 6.2f.021
Problème : Exécuter `configure` avec "--enable-netbeans" désactive Netbeans.
(Gordon Prieur)
Solution : Corriger les tests dans "configure.in" où la valeur par défaut est
d'activer une fonctionnalité. Corriger le "yes" pas très clair
rapporté par "--enable-acl".
Fichiers : src/auto/configure, src/configure.in, src/mysign
Rustine 6.2f.022
Problème : Une valeur fausse pour 'foldmarker' n'est pas rejetée, ce qui peut
provoquer un blocage. (Derek Wyatt)
Solution : Tester les chaînes non vides avant et après une virgule.
Fichiers : src/option.c
Rustine 6.2f.023
Problème : Quand les fichiers d'aide ne sont pas dans $VIMRUNTIME mais que
'helpfile' est correct, Vim ne parvient pas à trouver les fichiers
de l'aide.
Solution : Rechercher également le fichier de marqueurs dans le répertoire de
'helpfile'.
Fichiers : src/tag.c
Rustine 6.2f.024
Problème : Avec 'delcombine' activé, quand un caractère a plus de deux
caractères de composition, "x" les efface tous.
Solution : N'effacer que le dernier caractère de composition.
Fichiers : src/misc1.c
Rustine 6.2f.025
Problème : Lors de la lecture d'un fichier sur l'entrée standard avec des
fins-de-ligne DOS mais sans fin-de-ligne finale, 'fileformat'
devient "unix". (Bill McCarthy)
Solution : Ne pas ajouter le saut-de-ligne manquant lors de la relecture du
texte depuis le tampon.
Fichiers : src/fileio.c
Rustine 6.2f.026
Problème : Quand un nouveau texte est tapé dans la ligne de commande,
d'anciens caractères de composition peuvent être affichés.
Solution : Ne pas lire des caractères de composition situés après la fin du
texte à afficher.
Fichiers : src/ex_getln.c, src/mbyte.c, src/message.c, src/proto/mbyte.pro,
src/screen.c
Rustine 6.2f.027
Problème : Avertissements du compilateur pour des pointeurs vers des chars
non signés. (Tony Leneis)
Solution : Ajouter des transtypages aux pointeurs.
Fichiers : src/quickfix.c
Rustine 6.2f.028
Problème : GTK+ : quand 'imactivatekey' est vide et que XIM est inactif, il
n'est pas possible de le réactiver. Le curseur n'est pas modifié
immédiatement quand l'activation de XIM est modifiée. XIM en
japonais peut bloquer lors de l'utilisation de 'imactivatekey'.
Impossible d'activer XIM après les commandes fFtT ou ":sh".
Solution : Positionner correctement le drapeau indiquant que l'IM est active.
Mettre le curseur à jour immédiatement. Ne pas envoyer un
événement indiquant que la touche est relachée. Gérer de manière
différente le mode Normal et l'exécution des commandes externes.
(Yasuhiro Matsumoto)
Fichiers : src/mbyte.c
Rustine 6.2f.029
Problème : Utilisation mélangée d'int et d'enum.
Solution : Ajuster le type de l'argument de cs_usage_msg(). Corriger un
typedef erroné.
Fichiers : src/if_cscope.c, src/if_cscope.h
Rustine 6.2f.030 (basée sur 6.2f.028)
Problème : Le curseur est déplacé vers le haut lors de l'utilisation de XIM.
Solution : Réinitialiser im_preedit_cursor. (Yasuhiro Matsumoto)
Fichiers : src/mbyte.c
Rustine 6.2f.031
Problème : Plantage lors de l'affichage des arguments d'une fonction en mode
débogage. (Ron Aaron)
Solution : Initialiser le champ du nom de l'argument à NULL.
Fichiers : src/eval.c
Rustine 6.2f.032
Problème : Quand un écriture échoue avec un ":silent!" alors qu'elle a lieu à
l'intérieur d'un bloc try/endtry, les autocommandes BufWritePost
ne sont pas déclenchées.
Solution : tester le drapeau emsg_silent dans should_abort(). (Servatius
Brandt)
Fichiers : src/ex_eval.c, src/testdir/test49.ok, src/testdir/test49.vim
Rustine 6.2f.033
Problème : Cscope : problème de réentrance avec la commande ":cscope". La
vérification pour les bases de données dupliquées ne fonctionne
pas bien sur Win95. Aucune vérification de bases dupliquées
effectuée après une chaîne vide.
Solution : Ne pas positionner postponed_split trop tôt. Mémoriser d'abord
la base de données vide. (Sergey Khorev)
Fichiers : src/if_cscope.c
Rustine 6.2f.034
Problème : L'interface NetBeans n'est pas utilisable sur les systèmes
dépourvus de vsnprintf(). (Tony Leneis)
Solution : Utiliser EMSG(), EMSGN() et EMSG2() à la place.
Fichiers : src/auto/configure, src/configure.in, src/netbeans.c
Rustine 6.2f.035
Problème : La vérification `configure` pour l'interface NetBeans ne
fonctionne pas quand les bibliothèques "socket" et "nsl" sont
requises.
Solution : Vérifier les bibliothèques "socket" et "nsl" avant la vérification
pour NetBeans.
Fichiers : src/auto/configure, src/configure.in
Rustine 6.2f.036
Problème : Se déplacer vers la gauche sur du texte contenant un octet UTF-8
invalide déplace d'un octet au lieu d'un caractère.
Solution : Ignorer un octet invalide après la position du curseur.
Fichiers : src/mbyte.c
Rustine 6.2f.037
Problème : Quand une commande NetBeans est reçue à l'invite Plus ou
Appuyez-sur-entrée, l'écran est rafraîchi mais Vim attend toujours
à l'invite.
Solution : Quitter l'invite comme si CTRL-C était tapé.
Fichiers : src/netbeans.c
Rustine 6.2f.038
Problème : La dépendance pour exécuter `autoconf` provoque une modification
de "configure.in" lançant `autoconf`, même si le script
`configure` a aussi été mis à jour.
Solution : Ne lancer `autoconf` qu'avec "make autoconf".
Fichiers : src/Makefile
Rustine 6.2f.039
Problème : CTRL-W K donne une très grande hauteur à la fenêtre du haut.
Solution : Avec 'equalalways' activé, égaliser la hauteur des fenêtres.
Fichiers : src/window.c
vim:tw=78:ts=8:ft=help:norl: