summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pixmaps/tb_print.xpm12
-rw-r--r--runtime/doc/help.txt8
-rw-r--r--runtime/lang/menu_pl_pl.utf-8.vim261
-rw-r--r--runtime/menu.vim2
-rw-r--r--runtime/plugin/tar.vim185
-rw-r--r--runtime/syntax/named.vim8
-rw-r--r--src/Makefile13
-rw-r--r--src/gui_amiga.c2
-rw-r--r--src/gui_beos.cc2
-rw-r--r--src/gui_kde_x11.cc2
-rw-r--r--src/gui_mac.c2
-rw-r--r--src/gui_motif.c606
-rw-r--r--src/gui_photon.c2
-rw-r--r--src/gui_riscos.c2
-rw-r--r--src/gui_w48.c2
-rw-r--r--src/gui_xmdlg.c1287
-rw-r--r--src/misc2.c4
-rw-r--r--src/proto.h1
-rw-r--r--src/proto/gui_xmdlg.pro3
-rw-r--r--src/workshop.c2
20 files changed, 2303 insertions, 103 deletions
diff --git a/pixmaps/tb_print.xpm b/pixmaps/tb_print.xpm
index a3a4756b1b..170aa9de5e 100644
--- a/pixmaps/tb_print.xpm
+++ b/pixmaps/tb_print.xpm
@@ -5,19 +5,19 @@ static char * tb_print_xpm[] = {
/* colors */
" s none m none c none",
". s iconColor1 m black c #000000",
-"X s iconColor2 m none c #FFFFFF",
-"o s iconGray2 m none c #bdbdbd",
+"X s iconColor2 m none c #FFFFFF",
+"o s iconGray2 m none c #bdbdbd",
"O s iconGray5 m black c #737373",
"+ s bottomShadowColor m black c #5D6069",
"@ c #FF1144",
/* pixels */
" ....... ",
" .XXXXX.. ",
-" .X...X.X. ",
+" .XXXXX.X. ",
" .XXXXX.... ",
-" .X...XXXX.O ",
-" .XXXXXXXX.O ",
-" .X.....XX.O ",
+" .XXXXXXXX. ",
+" .XXXXXXXX. ",
+" ..XXXXXXXX.. ",
" .XXXXXXXX.O ",
"................ ",
".XXXXXXXXXXXXXO. ",
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 0e77179cd9..63f1ef3beb 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt* For Vim version 7.0aa. Last change: 2004 Jul 05
+*help.txt* For Vim version 7.0aa. Last change: 2004 Dec 30
VIM - main help file
k
@@ -189,12 +189,6 @@ Standard plugins ~
|pi_expl.txt| File explorer
LOCAL ADDITIONS: *local-additions*
-|engspchk.txt| English Spelling Checker (v57) May 25, 2004
-|example.txt| Example for a locally added help file
-|matchit.txt| Extended "%" matching
-|test.txt| Testing the hélp cömmĺnd nôw
-|typecorr.txt| Plugin for correcting typing mistakes
-|helpp.txt| Dummy line to avoid an error message
------------------------------------------------------------------------------
*bars* Bars example
diff --git a/runtime/lang/menu_pl_pl.utf-8.vim b/runtime/lang/menu_pl_pl.utf-8.vim
new file mode 100644
index 0000000000..b7e1d228b8
--- /dev/null
+++ b/runtime/lang/menu_pl_pl.utf-8.vim
@@ -0,0 +1,261 @@
+" Menu Translations: Polish
+" Maintainer: Rafal M. Sulejman <rms@poczta.onet.pl>
+" Initial Translation: Marcin Dalecki <dalecki@cs.net.pl>
+" Last Change: 06 Sep 2001
+
+" Quit when menu translations have already been done.
+if exists("did_menu_trans")
+ finish
+endif
+let did_menu_trans = 1
+
+scriptencoding iso-8859-2
+
+" Help menu
+menutrans &Help Po&moc
+menutrans &Overview<Tab><F1> &Spis\ Treści<Tab><F1>
+menutrans &How-to\ links &Odnośniki\ JTZ
+menutrans &Credits Po&dziękowania
+menutrans &User\ Manual Podręcznik\ &użytkownika
+menutrans Co&pying &Kopiowanie
+menutrans &Version &Wersja
+menutrans &About o\ &Aplikacji
+
+" File menu
+menutrans &File &Plik
+menutrans &Open\.\.\.<Tab>:e &Otwórz\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp Otwórz\ z\ &podziałem\.\.\.<Tab>:sp
+menutrans &New<Tab>:enew &Nowy<Tab>:enew
+menutrans &Close<Tab>:close &Zamknij<Tab>:close
+menutrans &Save<Tab>:w Za&pisz<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav Zapisz\ &jako\.\.\.<Tab>:sav
+menutrans Split\ &Diff\ with\.\.\. Podziel\ na\ diff-a\ między\.\.\.
+menutrans Split\ Patched\ &By\.\.\. Podziel\ łatane\ przez\.\.\.
+menutrans &Print &Drukuj
+menutrans Sa&ve-Exit<Tab>:wqa Zapisz\ i\ w&yjdź<Tab>:wqa
+menutrans E&xit<Tab>:qa &Wyjście<Tab>:qa
+
+" Edit menu
+menutrans &Edit &Edycja
+menutrans &Undo<Tab>u &Cofnij<Tab>u
+menutrans &Redo<Tab>^R &Ponów<Tab>^R
+menutrans Rep&eat<Tab>\. P&owtórz<Tab>\.
+menutrans Cu&t<Tab>"+x W&ytnij<Tab>"+x
+menutrans &Copy<Tab>"+y &Kopiuj<Tab>"+y
+menutrans &Paste<Tab>"+gP &Wklej<Tab>"+gP
+menutrans Put\ &Before<Tab>[p Wstaw\ p&rzed<Tab>[p
+menutrans Put\ &After<Tab>]p Wstaw\ p&o<Tab>]p
+menutrans &Select\ all<Tab>ggVG Z&aznacz\ całość<Tab>ggVG
+menutrans &Find\.\.\. &Szukaj\.\.\.
+menutrans &Find<Tab>/ &Szukaj<Tab>/
+menutrans Find\ and\ Rep&lace\.\.\. &Zamień\.\.\.
+menutrans Find\ and\ Rep&lace<Tab>:%s &Zamień<Tab>:%s
+menutrans Find\ and\ Rep&lace &Zamień
+menutrans Find\ and\ Rep&lace<Tab>:s &Zamień<Tab>:s
+menutrans Options\.\.\. Opcje\.\.\.
+menutrans Settings\ &Window Ustawienia
+menutrans &Global\ Settings Ustawienia\ &globalne
+menutrans F&ile\ Settings Ustawienia\ dla\ pliku
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! &Numerowanie\ wierszy<Tab>:set\ nu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list! Tryb\ &listowania<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! Za&wijanie\ wierszy<Tab>:set\ wrap!
+menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Łamanie\ wie&rsza<Tab>:set\ lbr!
+menutrans Toggle\ &expand-tab<Tab>:set\ et! Rozwijani&e\ tabulatorów<Tab>:set\ et!
+menutrans Toggle\ &auto-indent<Tab>:set\ ai! &Automatyczne\ wcięcia<Tab>:set\ ai!
+menutrans Toggle\ &C-indenting<Tab>:set\ cin! Wcięcia\ &C<Tab>:set\ cin!
+menutrans &Shiftwidth &Szerokość\ wcięcia
+menutrans Te&xt\ Width\.\.\. Długość\ linii\.\.\.
+menutrans &File\ Format\.\.\. &Format\ pliku\.\.\.
+menutrans Soft\ &Tabstop Rozmiar\ &tabulacji
+menutrans C&olor\ Scheme Zestawy\ kolorów
+menutrans &Keymap Układy\ klawiatury
+menutrans None żaden
+menutrans accents akcenty
+menutrans hebrew hebrajski
+menutrans hebrewp hebrajski\ p
+menutrans russian-jcuken rosyjski-jcuken
+menutrans russian-jcukenwin rosyjski-jcukenwin
+menutrans russian-yawerty rosyjski-yawerty
+
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Podkreślanie\ &wzorców<Tab>:set\ hls!
+
+menutrans Toggle\ &Ignore-case<Tab>:set\ ic! &Ignorowanie\ wielkości<Tab>:set\ ic!
+menutrans Toggle\ &Showmatch<Tab>:set\ sm! &Pokazywanie\ pasujących<Tab>:set\ sm!
+
+menutrans &Context\ lines Wiersze\ &kontekstowe
+menutrans &Virtual\ Edit Obróbka\ &wirtualna
+
+menutrans Never Nigdy
+menutrans Block\ Selection Zaznaczanie\ zakresu
+menutrans Insert\ mode Tryb\ wprowadzania
+menutrans Block\ and\ Insert Zakres\ i\ wprowadzanie
+menutrans Always Zawsze
+
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Tryb\ wprowadzania<Tab>:set\ im!
+menutrans Search\ &Path\.\.\. Scieżka\ poszukiwania\.\.\.
+menutrans Ta&g\ Files\.\.\. Pliki\ tagów\.\.\.
+
+
+"
+" GUI options
+menutrans Toggle\ &Toolbar Pasek\ narzędzi
+menutrans Toggle\ &Bottom\ Scrollbar Dolny\ przewijacz
+menutrans Toggle\ &Left\ Scrollbar &Lewy\ przewijacz
+menutrans Toggle\ &Right\ Scrollbar P&rawy\ przewijacz
+
+" Programming menu
+menutrans &Tools &Narzędzia
+menutrans &Jump\ to\ this\ tag<Tab>g^] &Skocz\ do\ taga<Tab>g^]
+menutrans Jump\ &back<Tab>^T Skok\ w\ &tył<Tab>^T
+menutrans Build\ &Tags\ File &Twórz\ plik\ tagów
+" Folding
+menutrans &Folding &Zwijanie
+menutrans &Enable/Disable\ folds<Tab>zi &Zwiń/rozwiń<Tab>zi
+menutrans &View\ Cursor\ Line<Tab>zv &Linia\ kursora<Tab>zv
+menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx &Tylko\ linia\ kursora<Tab>zMzx
+menutrans C&lose\ more\ folds<Tab>zm Zwiń\ więcej<Tab>zm
+menutrans &Close\ all\ folds<Tab>zM Z&wiń\ wszystkie<Tab>zM
+menutrans &Open\ all\ folds<Tab>zR Rozwiń\ wszystkie<Tab>zR
+menutrans O&pen\ more\ folds<Tab>zr R&ozwiń\ więcej<Tab>zr
+
+menutrans Create\ &Fold<Tab>zf T&wórz\ zawinięcie<Tab>zf
+menutrans &Delete\ Fold<Tab>zd U&suń\ zawinięcie<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD &Usuń\ wszystkie\ zawinięcia<Tab>zD
+menutrans Fold\ column\ &width Szerokość\ kolumny\ za&winięć
+menutrans Fold\ Met&hod Me&toda\ zawijania
+menutrans M&anual &Ręcznie
+menutrans I&ndent W&cięcie
+menutrans E&xpression W&yrazenie
+menutrans S&yntax S&kładnia
+menutrans Ma&rker Zn&acznik
+
+" Diff
+menutrans &Update &Odśwież
+menutrans &Get\ Block &Pobierz\ blok
+menutrans &Put\ Block &Wstaw\ blok
+
+" Make and stuff...
+menutrans &Make<Tab>:make M&ake<Tab>:make
+menutrans &List\ Errors<Tab>:cl &Pokaż\ błędy<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl! W&ylicz\ powiadomienia<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn &Następny\ błąd<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp &Poprzedni\ błąd<Tab>:cp
+menutrans &Older\ List<Tab>:cold &Starsza\ lista<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew N&owsza\ lista<Tab>:cnew
+menutrans Error\ &Window Okno\ komu&nikatów
+menutrans &Update<Tab>:cwin Akt&ualizuj<Tab>:cwin
+menutrans &Close<Tab>:cclose &Zamknij<Tab>:cclose
+menutrans &Open<Tab>:copen &Otwórz<Tab>:copen
+
+menutrans &Set\ Compiler U&staw\ kompilator
+menutrans &Convert\ to\ HEX<Tab>:%!xxd Kody\ szesnastkowe<Tab>:%!xxd
+menutrans Conve&rt\ back<Tab>:%!xxd\ -r Zwykły\ tekst<Tab>:%!xxd\ -r
+
+" Names for buffer menu.
+menutrans &Buffers &Bufory
+menutrans &Refresh\ menu Odśwież
+menutrans Delete Skasuj
+menutrans &Alternate &Zmień
+menutrans &Next &Następny
+menutrans &Previous &Poprzedni
+menutrans [No\ File] [Brak\ Pliku]
+
+" Window menu
+menutrans &Window &Widoki
+menutrans &New<Tab>^Wn &Nowy<Tab>^Wn
+menutrans S&plit<Tab>^Ws Po&dziel<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^ P&odziel\ na\ #<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv Podziel\ pionowo<Tab>^Wv
+menutrans Split\ File\ E&xplorer Otwórz\ menedżer\ plików
+
+menutrans &Close<Tab>^Wc &Zamknij<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo Zamknij\ &inne<Tab>^Wo
+menutrans Ne&xt<Tab>^Ww &Następny<Tab>^Ww
+menutrans P&revious<Tab>^WW &Poprzedni<Tab>^WW
+menutrans &Equal\ Size<Tab>^W= &Wyrównaj\ wysokości<Tab>^W=
+menutrans &Max\ Height<Tab>^W_ Z&maksymalizuj\ wysokość<Tab>^W_
+menutrans M&in\ Height<Tab>^W1_ Zminim&alizuj\ wysokość<Tab>^W1_
+menutrans Max\ Width<Tab>^W\| Maksymalna\ szerokość<Tab>^W\|
+menutrans Min\ Width<Tab>^W1\| Minimalna\ szerokość<Tab>^W1\|
+menutrans Max\ &Width<Tab>^W\| Zmaksymalizuj\ szerokość<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\| Zminimalizuj\ szerokość<Tab>^W1\|
+menutrans Move\ &To &Idź\ do
+menutrans &Top<Tab>^WK &Góra<Tab>^WK
+menutrans &Bottom<Tab>^WJ &Dół<Tab>^WJ
+menutrans &Left\ side<Tab>^WH &Lewa\ strona<Tab>^WH
+menutrans &Right\ side<Tab>^WL &Prawa\ strona<Tab>^WL
+menutrans Rotate\ &Up<Tab>^WR Obróć\ w\ &górę<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr Obróć\ w\ &dół<Tab>^Wr
+menutrans Split\ &Vertically<Tab>^Wv &Podziel\ w\ poziomie<Tab>^Wv
+menutrans Select\ Fo&nt\.\.\. Wybierz\ &czcionkę\.\.\.
+
+" The popup menu
+menutrans &Undo &Cofnij
+menutrans Cu&t W&ytnij
+menutrans &Copy &Kopiuj
+menutrans &Paste &Wklej
+menutrans &Delete &Skasuj
+menutrans Select\ Blockwise Zaznacz\ &blok
+menutrans Select\ &Word Zaznacz\ &słowo
+menutrans Select\ &Line Zaznacz\ w&iersz
+menutrans Select\ &Block Zaznacz\ &blok
+menutrans Select\ &All Zaznacz\ c&ałość
+
+" The GUI toolbar
+if has("toolbar")
+ if exists("*Do_toolbar_tmenu")
+ delfun Do_toolbar_tmenu
+ endif
+ fun Do_toolbar_tmenu()
+ tmenu ToolBar.Open Otwórz plik
+ tmenu ToolBar.Save Zapisz bieżący plik
+ tmenu ToolBar.SaveAll Zapisz wszystkie pliki
+ tmenu ToolBar.Print Drukuj
+ tmenu ToolBar.Undo Cofnij
+ tmenu ToolBar.Redo Ponów
+ tmenu ToolBar.Cut Wytnij
+ tmenu ToolBar.Copy Skopiuj
+ tmenu ToolBar.Paste Wklej
+ tmenu ToolBar.Find Szukaj...
+ tmenu ToolBar.FindNext Szukaj następnego
+ tmenu ToolBar.FindPrev Szukaj poprzedniego
+ tmenu ToolBar.Replace Szukaj i zamieniaj...
+ if 0 " disabled; These are in the Windows menu
+ tmenu ToolBar.New Nowy widok
+ tmenu ToolBar.WinSplit Podziel widok
+ tmenu ToolBar.WinMax Zmaksymalizuj widok
+ tmenu ToolBar.WinMin Zminimalizuj widok
+ tmenu ToolBar.WinClose Zamknij widok
+ endif
+ tmenu ToolBar.LoadSesn Załaduj sesję
+ tmenu ToolBar.SaveSesn Zachowaj bieżącą sesję
+ tmenu ToolBar.RunScript Uruchom skrypt Vima
+ tmenu ToolBar.Make Wykonaj bieżący projekt
+ tmenu ToolBar.Shell Otwórz powłokę
+ tmenu ToolBar.RunCtags Twórz tagi w bieżącym katalogu
+ tmenu ToolBar.TagJump Skok do taga pod kursorem
+ tmenu ToolBar.Help Pomoc Vima
+ tmenu ToolBar.FindHelp Przeszukuj pomoc Vim-a
+ endfun
+endif
+
+" Syntax menu
+menutrans &Show\ filetypes\ in\ menu &Pokazuj\ rodzaj\ pliku\ w\ menue
+menutrans &Syntax &Składnia
+menutrans Set\ '&syntax'\ only Ustaw\ tylko\ '&syntax'
+menutrans Set\ '&filetype'\ too Ustaw\ również\ '&filetype'
+menutrans &Off &Wyłącz
+menutrans &Manual &Ręcznie
+menutrans A&utomatic A&utomatyczne
+menutrans on/off\ for\ &This\ file włącz/w&yłącz\ dla\ pliku
+menutrans Co&lor\ test Test\ &kolorów
+menutrans &Highlight\ test &Test\ podświetlania
+menutrans &Convert\ to\ HTML Przetwórz\ na\ &HTML
+
+" dialog texts
+let menutrans_no_file = "[Brak pliku]"
+let menutrans_help_dialog = "Wprowadź komendę lub słowo, aby otrzymać pomoc o:\n\nPrzedrostek i_ oznacza komendę trybu Wprowadzania (np. i_CTRL-X)\nPrzedrostek c_ oznacza komendę edycji wiersza komend (np. c_<Del>)\nPrzedrostek ' oznacza nazwę opcji (np. 'shiftwidth')"
+let g:menutrans_path_dialog = "Wprowadź ścieżkę poszukiwania plików.\nProszę rozdzielać nazwy katalogów przecinkiem."
+let g:menutrans_tags_dialog = "Podaj nazwy plików tagów.\nProszę rozdzielać nazwy przecinkiem."
+let g:menutrans_textwidth_dialog = "Wprowadź nową szerokość tekstu (0 wyłącza przewijanie): "
+let g:menutrans_fileformat_dialog = "Wybierz format w którym ten plik ma być zapisany"
diff --git a/runtime/menu.vim b/runtime/menu.vim
index 0f0317d286..df9c65b6e6 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -382,7 +382,7 @@ if has("keymap")
endif
unlet s:n
endif
-if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
+if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
an 20.470 &Edit.Select\ Fo&nt\.\.\. :set guifont=*<CR>
endif
diff --git a/runtime/plugin/tar.vim b/runtime/plugin/tar.vim
new file mode 100644
index 0000000000..26fade4d27
--- /dev/null
+++ b/runtime/plugin/tar.vim
@@ -0,0 +1,185 @@
+" vim:set ts=4 sw=4 ai nobackup:
+
+" tar.vim -- a vim plugin for browsing tarfiles
+" Copyright (c) 2002, Michael C. Toren <mct@toren.net>
+"
+" Updates are available from <http://michael.toren.net/code/>. If you
+" find this script useful, or have suggestions for improvements, please
+" let me know.
+"
+" Usage:
+" Once this script is installed, attempting to edit a tarfile will present
+" the user with a list of files contained in the tar archive. By moving the
+" cursor over a filename and pressing ENTER, the contents of a file can be
+" viewed in read-only mode, in a new window. Unfortunately, write support
+" for tarfile components is not currently possible.
+"
+" Requirements:
+" GNU tar, or a tar implementation that supports the "P" (don't strip
+" out leading /'s from filenames), and "O" (extract files to standard
+" output) options. Additionally, gzip is required for handling *.tar.Z,
+" *.tar.gz, and *.tgz compressed tarfiles, and bzip2 is required for
+" handling *.tar.bz2 compressed tarfiles. A unix-like operating system
+" is probably also required.
+"
+" Installation:
+" Place this file, tar.vim, in your $HOME/.vim/plugin directory, and
+" either restart vim, or execute ":source $HOME/.vim/plugin/tar.vim"
+"
+" Todo:
+" - Handle zipfiles?
+" - Implement write support, somehow.
+"
+" License:
+" This program is free software; you can redistribute it and/or modify it
+" under the terms of the GNU General Public License, version 2, as published
+" by the Free Software Foundation.
+"
+" This program is distributed in the hope that it will be useful, but
+" WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+" or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+" for more details.
+"
+" A copy of the GNU GPL is available as /usr/doc/copyright/GPL on Debian
+" systems, or on the World Wide Web at http://www.gnu.org/copyleft/gpl.html
+" You can also obtain it by writing to the Free Software Foundation, Inc.,
+" 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+"
+" Changelog:
+" Tue Dec 31 13:38:08 EST 2002 First release to beta testers
+" Sat Jan 4 14:06:19 EST 2003 Version 1.00 released
+
+let s:version = "1.00"
+
+if has("autocmd")
+augroup tar
+ au!
+ au BufReadCmd tarfile:* call s:TarRead(expand("<afile>"), 1)
+ au BufReadCmd tarfile:*/* call s:TarRead(expand("<afile>"), 1)
+ au FileReadCmd tarfile:* call s:TarRead(expand("<afile>"), 0)
+ au FileReadCmd tarfile:*/* call s:TarRead(expand("<afile>"), 0)
+
+ au BufWriteCmd tarfile:* call s:TarWrite(expand("<afile>"))
+ au BufWriteCmd tarfile:*/* call s:TarWrite(expand("<afile>"))
+ au FileWriteCmd tarfile:* call s:TarWrite(expand("<afile>"))
+ au FileWriteCmd tarfile:*/* call s:TarWrite(expand("<afile>"))
+
+ au BufReadCmd *.tar call s:TarBrowse(expand("<afile>"))
+ au BufReadCmd *.tar.gz call s:TarBrowse(expand("<afile>"))
+ au BufReadCmd *.tar.bz2 call s:TarBrowse(expand("<afile>"))
+ au BufReadCmd *.tar.Z call s:TarBrowse(expand("<afile>"))
+ au BufReadCmd *.tgz call s:TarBrowse(expand("<afile>"))
+augroup END
+endif
+
+function! s:TarWrite(argument)
+ echo "ERROR: Sorry, no write support for tarfiles yet"
+endfunction
+
+function! s:TarRead(argument, cleanup)
+ let l:argument = a:argument
+ let l:argument = substitute(l:argument, '^tarfile:', '', '')
+ let l:argument = substitute(l:argument, '^\~', $HOME, '')
+
+ let l:tarfile = l:argument
+ while 1
+ if (l:tarfile == "" || l:tarfile == "/")
+ echo "ERROR: Could not find a readable tarfile in path:" l:argument
+ return
+ endif
+
+ if filereadable(l:tarfile) " found it!
+ break
+ endif
+
+ let l:tarfile = fnamemodify(l:tarfile, ":h")
+ endwhile
+
+ let l:toextract = strpart(l:argument, strlen(l:tarfile) + 1)
+
+ if (l:toextract == "")
+ return
+ endif
+
+ let l:cat = s:TarCatCommand(l:tarfile)
+ execute "r !" . l:cat . " < '" . l:tarfile . "'"
+ \ " | tar OPxf - '" . l:toextract . "'"
+
+ if (a:cleanup)
+ 0d "blank line
+ execute "doautocmd BufReadPost " . expand("%")
+ setlocal readonly
+ silent preserve
+ endif
+endfunction
+
+function! s:TarBrowse(tarfile)
+ setlocal noswapfile
+ setlocal buftype=nofile
+ setlocal bufhidden=hide
+ setlocal filetype=
+ setlocal nobuflisted
+ setlocal buftype=nofile
+ setlocal wrap
+
+ let l:tarfile = a:tarfile
+ let b:tarfile = l:tarfile
+ let l:cat = s:TarCatCommand(l:tarfile)
+
+ if ! filereadable(l:tarfile)
+ let l:tarfile = substitute(l:tarfile, '^tarfile:', '', '')
+ endif
+
+ if ! filereadable(l:tarfile)
+ echo "ERROR: File not readable:" l:tarfile
+ return
+ endif
+
+ call s:Say("\" tar.vim version " . s:version)
+ call s:Say("\" Browsing tarfile " . l:tarfile)
+ call s:Say("\" Hit ENTER to view contents in new window")
+ call s:Say("")
+
+ silent execute "r!" . l:cat . "<'" . l:tarfile . "'| tar Ptf - "
+ 0d "blank line
+ /^$/1
+
+ setlocal readonly
+ setlocal nomodifiable
+ noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
+endfunction
+
+function! s:TarBrowseSelect()
+ let l:line = getline(".")
+
+ if (l:line =~ '^" ')
+ return
+ endif
+
+ if (l:line =~ '/$')
+ echo "Please specify a file, not a directory"
+ return
+ endif
+
+ let l:selection = "tarfile:" . b:tarfile . "/" . l:line
+ new
+ wincmd _
+ execute "e " . l:selection
+endfunction
+
+" kludge to deal with compressed archives
+function! s:TarCatCommand(tarfile)
+ if a:tarfile =~# '\.\(gz\|tgz\|Z\)$'
+ let l:cat = "gzip -d -c"
+ elseif a:tarfile =~# '\.bz2$'
+ let l:cat = "bzip2 -d -c"
+ else
+ let l:cat = "cat"
+ endif
+ return l:cat
+endfunction
+
+function! s:Say(string)
+ let @" = a:string
+ $ put
+endfunction
diff --git a/runtime/syntax/named.vim b/runtime/syntax/named.vim
index 0918352f6c..df25870212 100644
--- a/runtime/syntax/named.vim
+++ b/runtime/syntax/named.vim
@@ -2,8 +2,9 @@
" Language: BIND 8.x configuration file
" Maintainer: glory hump <rnd@web-drive.ru>
" Last change: Mon May 21 04:51:01 SAMST 2001
+" Updated: by Martin Dalecki 2004-12-31
" Filenames: named.conf
-" URL: http://rnd.web-drive.ru/vim/syntax/named.vim
+" URL: http://rnd.web-drive.ru/vim/syntax/named.vim [DEFUNCT]
" $Id$
"
" NOTE
@@ -33,10 +34,11 @@ set cpo-=C
" BIND configuration file
syn match namedComment "//.*"
+syn match namedComment "#.*"
syn region namedComment start="/\*" end="\*/"
syn region namedString start=/"/ end=/"/ contained
-" --- omitted trailing semicolon FIXME
-syn match namedError /[^;{]$/
+" --- omitted trailing semicolon
+syn match namedError /[^;{#]$/
" --- top-level keywords
diff --git a/src/Makefile b/src/Makefile
index 9b21a2e76a..5e43ee9df7 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1089,9 +1089,11 @@ GTK_MAN_TARGETS = yes
GTK_TESTTARGET = gui
### Motif GUI
-MOTIF_SRC = gui.c gui_motif.c gui_x11.c pty.c gui_beval.c
+MOTIF_SRC = gui.c gui_motif.c gui_x11.c pty.c gui_beval.c \
+ gui_xmdlg.c
MOTIF_OBJ = objects/gui.o objects/gui_motif.o objects/gui_x11.o \
- objects/pty.o objects/gui_beval.o
+ objects/pty.o objects/gui_beval.o \
+ objects/gui_xmdlg.o
MOTIF_DEFS = -DFEAT_GUI_MOTIF $(NARROW_PROTO)
MOTIF_IPATH = $(GUI_INC_LOC)
MOTIF_LIBS_DIR = $(GUI_LIB_LOC)
@@ -1203,8 +1205,8 @@ CARBONGUI_BUNDLE = $(VIMNAME).app
CARBONGUI_TESTARG = VIMPROG=../$(CARBONGUI_BUNDLE)/Contents/MacOS/$(VIMTARGET)
# All GUI files
-ALL_GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c pty.c gui_kde.cc gui_kde_wid.cc gui_kde_x11.cc gui_kde_wid_moc.cc
-ALL_GUI_PRO = gui.pro gui_gtk.pro gui_motif.pro gui_athena.pro gui_gtk_x11.pro gui_x11.pro gui_w16.pro gui_w32.pro gui_amiga.pro gui_photon.pro
+ALL_GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_xmdlg.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c pty.c gui_kde.cc gui_kde_wid.cc gui_kde_x11.cc gui_kde_wid_moc.cc
+ALL_GUI_PRO = gui.pro gui_gtk.pro gui_motif.pro gui_xmdlg.pro gui_athena.pro gui_gtk_x11.pro gui_x11.pro gui_w16.pro gui_w32.pro gui_amiga.pro gui_photon.pro
# }}}
@@ -2194,6 +2196,9 @@ objects/gui_gtk_x11.o: gui_gtk_x11.c
objects/gui_motif.o: gui_motif.c
$(CCC) -o $@ gui_motif.c
+objects/gui_xmdlg.o: gui_xmdlg.c
+ $(CCC) -o $@ gui_xmdlg.c
+
objects/gui_x11.o: gui_x11.c
$(CCC) -o $@ gui_x11.c
diff --git a/src/gui_amiga.c b/src/gui_amiga.c
index 9ce44ed367..0b76245fd4 100644
--- a/src/gui_amiga.c
+++ b/src/gui_amiga.c
@@ -1238,6 +1238,7 @@ gui_mch_get_font(char_u *name, int giveErrorIfMissing)
return NULL;
}
+#if defined(FEAT_EVAL) || defined(PROTO)
/*
* Return the name of font "font" in allocated memory.
* We always use the default font.
@@ -1247,6 +1248,7 @@ gui_mch_get_fontname(GuiFont font, char_u *name)
{
return vim_strsave((char_u *)"default");
}
+#endif
void
gui_mch_set_font(GuiFont font)
diff --git a/src/gui_beos.cc b/src/gui_beos.cc
index 32e4db0cb4..315136559e 100644
--- a/src/gui_beos.cc
+++ b/src/gui_beos.cc
@@ -2396,6 +2396,7 @@ error:
return (GuiFont)font;
}
+#if defined(FEAT_EVAL) || defined(PROTO)
/*
* Return the name of font "font" in allocated memory.
*/
@@ -2404,6 +2405,7 @@ gui_mch_get_fontname(GuiFont font, char_u *name)
{
return vim_strsave(((VimFont *)font)->name);
}
+#endif
/*
* Set the current text font.
diff --git a/src/gui_kde_x11.cc b/src/gui_kde_x11.cc
index 8956264d4a..c8873ecb78 100644
--- a/src/gui_kde_x11.cc
+++ b/src/gui_kde_x11.cc
@@ -700,6 +700,7 @@ gui_mch_get_font(char_u * name, int report_error)//{{{
return (GuiFont) myFont;
}//}}}
+#if defined(FEAT_EVAL) || defined(PROTO)
/*
* Return the name of font "font" in allocated memory.
* Don't know how to get the actual name, thus use the provided name.
@@ -711,6 +712,7 @@ gui_mch_get_fontname(GuiFont font, char_u *name)//{{{
return NULL;
return vim_strsave(name);
}//}}}
+#endif
/*
* Set the current text font.
diff --git a/src/gui_mac.c b/src/gui_mac.c
index f5e29abf28..3b73339df4 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -3569,6 +3569,7 @@ gui_mch_get_font(name, giveErrorIfMissing)
return font;
}
+#if defined(FEAT_EVAL) || defined(PROTO)
/*
* Return the name of font "font" in allocated memory.
* Don't know how to get the actual name, thus use the provided name.
@@ -3582,6 +3583,7 @@ gui_mch_get_fontname(font, name)
return NULL;
return vim_strsave(name);
}
+#endif
/*
* Set the current text font.
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 4fe26ec57b..d345af5cb6 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -93,9 +93,6 @@ static void attachDump(Widget, char *);
static void gui_motif_menu_colors __ARGS((Widget id));
static void gui_motif_scroll_colors __ARGS((Widget id));
-#ifdef FEAT_MENU
-static void gui_motif_menu_fontlist __ARGS((Widget id));
-#endif
#if (XmVersion >= 1002)
# define STRING_TAG XmFONTLIST_DEFAULT_TAG
@@ -125,17 +122,122 @@ scroll_cb(w, client_data, call_data)
gui_drag_scrollbar(sb, value, dragging);
}
-
/*
* End of call-back routines
*/
+#ifndef LESSTIF_VERSION
+/*
+ * Implement three dimensional shading of insensitive labels.
+ * By Martin Dalecki.
+ */
+
+#include <Xm/XmP.h>
+#include <Xm/LabelP.h>
+
+static XtExposeProc old_label_expose = NULL;
+
+static void label_expose __ARGS((Widget _w, XEvent *_event, Region _region));
+
+ static void
+label_expose(_w, _event, _region)
+ Widget _w;
+ XEvent *_event;
+ Region _region;
+{
+ GC insensitiveGC;
+ XmLabelWidget lw = (XmLabelWidget)_w;
+ unsigned char label_type = XmSTRING;
+
+ XtVaGetValues(_w, XmNlabelType, &label_type, (XtPointer)0);
+
+ if (XtIsSensitive(_w) || label_type != XmSTRING)
+ (*old_label_expose)(_w, _event, _region);
+ else
+ {
+ XGCValues values;
+ XtGCMask mask;
+ XtGCMask dynamic;
+ XFontStruct *fs;
+
+ _XmFontListGetDefaultFont(lw->label.font, &fs);
+
+ /* FIXME: we should be doing the whole drawing ourself here. */
+ insensitiveGC = lw->label.insensitive_GC;
+
+ mask = GCForeground | GCBackground | GCGraphicsExposures;
+ dynamic = GCClipMask | GCClipXOrigin | GCClipYOrigin;
+ values.graphics_exposures = False;
+
+ if (fs != 0)
+ {
+ mask |= GCFont;
+ values.font = fs->fid;
+ }
+
+ if (lw->primitive.top_shadow_pixmap != None
+ && lw->primitive.top_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
+ {
+ mask |= GCFillStyle | GCTile;
+ values.fill_style = FillTiled;
+ values.tile = lw->primitive.top_shadow_pixmap;
+ }
+
+ lw->label.TextRect.x += 1;
+ lw->label.TextRect.y += 1;
+ if (lw->label._acc_text != 0)
+ {
+ lw->label.acc_TextRect.x += 1;
+ lw->label.acc_TextRect.y += 1;
+ }
+
+ values.foreground = lw->primitive.top_shadow_color;
+ values.background = lw->core.background_pixel;
+
+ lw->label.insensitive_GC =
+ XtAllocateGC((Widget) lw, 0, mask, &values, dynamic, 0);
+ (*old_label_expose)(_w, _event, _region);
+ XtReleaseGC(_w, lw->label.insensitive_GC);
+
+ lw->label.TextRect.x -= 1;
+ lw->label.TextRect.y -= 1;
+ if (lw->label._acc_text != 0)
+ {
+ lw->label.acc_TextRect.x -= 1;
+ lw->label.acc_TextRect.y -= 1;
+ }
+
+ values.foreground = lw->primitive.bottom_shadow_color;
+ values.background = lw->core.background_pixel;
+
+ lw->label.insensitive_GC =
+ XtAllocateGC((Widget) lw, 0, mask, &values, dynamic, 0);
+ (*old_label_expose)(_w, _event, _region);
+ XtReleaseGC(_w, lw->label.insensitive_GC);
+
+ lw->label.insensitive_GC = insensitiveGC;
+ }
+}
+#endif
+
+
/*
* Create all the motif widgets necessary.
*/
void
gui_x11_create_widgets()
{
+#ifndef LESSTIF_VERSION
+ /*
+ * Install the 3D shade effect drawing routines.
+ */
+ if (old_label_expose == NULL)
+ {
+ old_label_expose = xmLabelWidgetClass->core_class.expose;
+ xmLabelWidgetClass->core_class.expose = label_expose;
+ }
+#endif
+
/*
* Start out by adding the configured border width into the border offset
*/
@@ -329,9 +431,7 @@ gui_x11_set_back_color()
* Manage dialog centered on pointer. This could be used by the Athena code as
* well.
*/
-static void manage_centered __ARGS((Widget dialog_child));
-
-static void
+ void
manage_centered(dialog_child)
Widget dialog_child;
{
@@ -855,16 +955,15 @@ gui_mch_add_menu_item(menu, idx)
xms = XmStringCreate((char *)menu->dname, STRING_TAG);
XtSetArg(args[n], XmNlabelString, xms); n++;
-#ifndef FEAT_SUN_WORKSHOP
-
/* Without shadows one can't sense whatever the button has been
* pressed or not! However we wan't to save a bit of space...
+ * Need the highlightThickness to see the focus.
*/
- XtSetArg(args[n], XmNhighlightThickness, 0); n++;
+ XtSetArg(args[n], XmNhighlightThickness, 1); n++;
XtSetArg(args[n], XmNhighlightOnEnter, True); n++;
XtSetArg(args[n], XmNmarginWidth, 0); n++;
XtSetArg(args[n], XmNmarginHeight, 0); n++;
-#endif
+
if (menu->image == 0)
{
XtSetArg(args[n], XmNlabelType, XmSTRING); n++;
@@ -1384,7 +1483,6 @@ gui_mch_create_scrollbar(sb, orient)
int n;
n = 0;
- XtSetArg(args[n], XmNshadowThickness, 1); n++;
XtSetArg(args[n], XmNminimum, 0); n++;
XtSetArg(args[n], XmNorientation,
(orient == SBAR_VERT) ? XmVERTICAL : XmHORIZONTAL); n++;
@@ -1484,6 +1582,219 @@ gui_x11_get_wid()
return(XtWindow(textArea));
}
+/*
+ * Look for a widget in the widget tree w, with a mnemonic matching keycode.
+ * When one is found, simulate a button press on that widget and give it the
+ * keyboard focus. If the mnemonic is on a label, look in the userData field
+ * of the label to see if it points to another widget, and give that the focus.
+ */
+ static void
+do_mnemonic(Widget w, unsigned int keycode)
+{
+ WidgetList children;
+ int numChildren, i;
+ Boolean isMenu;
+ KeySym mnemonic = '\0';
+ char mneString[2];
+ Widget userData;
+ unsigned char rowColType;
+
+ if (XtIsComposite(w))
+ {
+ if (XtClass(w) == xmRowColumnWidgetClass)
+ {
+ XtVaGetValues(w, XmNrowColumnType, &rowColType, 0);
+ isMenu = (rowColType != (unsigned char)XmWORK_AREA);
+ }
+ else
+ isMenu = False;
+ if (!isMenu)
+ {
+ XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
+ &numChildren, 0);
+ for (i = 0; i < numChildren; i++)
+ do_mnemonic(children[i], keycode);
+ }
+ }
+ else
+ {
+ XtVaGetValues(w, XmNmnemonic, &mnemonic, 0);
+ if (mnemonic != '\0')
+ {
+ mneString[0] = mnemonic;
+ mneString[1] = '\0';
+ if (XKeysymToKeycode(XtDisplay(XtParent(w)),
+