From a86193d88edda899dd9859c21554fd6e17cdcb3e Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Tue, 14 Apr 2015 12:28:31 +0200 Subject: [PATCH] Remove runtime/tools/ #2426 This directory contains old (at least 10+ years) scripts that mainly filter output of other old programs to make them conformant with an 'errorformat' from 10+ years ago. --- runtime/tools/README.txt | 37 -- runtime/tools/blink.c | 21 -- runtime/tools/ccfilter.1 | 93 ----- runtime/tools/ccfilter.c | 326 ----------------- runtime/tools/ccfilter_README.txt | 91 ----- runtime/tools/efm_filter.pl | 39 -- runtime/tools/efm_filter.txt | 31 -- runtime/tools/efm_perl.pl | 153 -------- runtime/tools/mve.awk | 23 -- runtime/tools/mve.txt | 20 - runtime/tools/pltags.pl | 300 --------------- runtime/tools/ref | 11 - runtime/tools/shtags.1 | 61 ---- runtime/tools/shtags.pl | 144 -------- runtime/tools/unicode.vim | 290 --------------- runtime/tools/vim132 | 13 - runtime/tools/vim_vs_net.cmd | 24 -- runtime/tools/vimm | 6 - runtime/tools/vimspell.sh | 55 --- runtime/tools/vimspell.txt | 22 -- runtime/tools/xcmdsrv_client.c | 584 ------------------------------ 21 files changed, 2344 deletions(-) delete mode 100644 runtime/tools/README.txt delete mode 100644 runtime/tools/blink.c delete mode 100644 runtime/tools/ccfilter.1 delete mode 100644 runtime/tools/ccfilter.c delete mode 100644 runtime/tools/ccfilter_README.txt delete mode 100755 runtime/tools/efm_filter.pl delete mode 100644 runtime/tools/efm_filter.txt delete mode 100755 runtime/tools/efm_perl.pl delete mode 100755 runtime/tools/mve.awk delete mode 100644 runtime/tools/mve.txt delete mode 100755 runtime/tools/pltags.pl delete mode 100755 runtime/tools/ref delete mode 100644 runtime/tools/shtags.1 delete mode 100755 runtime/tools/shtags.pl delete mode 100644 runtime/tools/unicode.vim delete mode 100755 runtime/tools/vim132 delete mode 100644 runtime/tools/vim_vs_net.cmd delete mode 100755 runtime/tools/vimm delete mode 100755 runtime/tools/vimspell.sh delete mode 100644 runtime/tools/vimspell.txt delete mode 100644 runtime/tools/xcmdsrv_client.c diff --git a/runtime/tools/README.txt b/runtime/tools/README.txt deleted file mode 100644 index 19976b325c..0000000000 --- a/runtime/tools/README.txt +++ /dev/null @@ -1,37 +0,0 @@ -Some tools that can be used with Vim: - -blink.c: C program to make the cursor blink in an xterm. - -ccfilter*: C program to filter the output of a few compilers to a common - QuickFix format. - -efm_filter.*: Perl script to filter compiler messages to QuickFix format. - -efm_perl.pl: Perl script to filter error messages from the Perl interpreter - for use with Vim quickfix mode. - -mve.* Awk script to filter error messages to QuickFix format. - -pltags.pl: Perl script to create a tags file from Perl scripts. - -ref: Shell script for the K command. - -shtags.*: Perl script to create a tags file from a shell script. - -vim132: Shell script to edit in 132 column mode on vt100 compatible - terminals. - -vimm: Shell script to start Vim on a DEC terminal with mouse - enabled. - -vimspell.*: Shell script for highlighting spelling mistakes. - -vim_vs_net.cmd: MS-Windows command file to use Vim with MS Visual Studio 7 and - later. - -xcmdsrv_client.c: Example for a client program that communicates with a Vim - server through the X-Windows interface. - -unicode.vim Vim script to generate tables for src/mbyte.c. - -[xxd can be found in the src directory] diff --git a/runtime/tools/blink.c b/runtime/tools/blink.c deleted file mode 100644 index 1ffd848edc..0000000000 --- a/runtime/tools/blink.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * An extremely simple program to make the cursor blink in an xterm. - * This is useful when the cursor is hard to spot in a highlighted file. - * Start in the background: "blink&" Stop by killing it. - * Bram Moolenaar 980109 (based on an idea from John Lange). - */ - -#include - -main() -{ - while (1) - { - printf("\e[?25h"); - fflush(stdout); - usleep(400000); /* on time */ - printf("\e[?25l"); - fflush(stdout); - usleep(250000); /* off time */ - } -} diff --git a/runtime/tools/ccfilter.1 b/runtime/tools/ccfilter.1 deleted file mode 100644 index e3de38da1f..0000000000 --- a/runtime/tools/ccfilter.1 +++ /dev/null @@ -1,93 +0,0 @@ -.TH ccfilter 1 "01-Apr-97" -.SH NAME -ccfilter \- a compiler's output filter for vim quickfix -.SH SYNOPSIS -ccfilter [ -.B -] -.SH DESCRIPTION -The ccfilter utility "filters" the output of several compilers -and makers (make/gmake) from several platforms (see NOTES below) -to a standardized format which easily fits in vim's quickfix -feature. For further details, see in vim ":help quickfix". -.PP -ccfilter reads -.B 'stdin' -and outputs to -.B 'stdout' -\. -.PP -The need for ccfilter is clear, as some compilers have irregular -and/or multiple line error messages (with the relevant information on -line 2), which makes it impossible for the errorformat to correctly -display them ! - -When working on different platforms, and with different compilers, -ccfilter eases the utilization of quickfix, due to it's standardized -output, allowing to have in .vimrc a plain -.br -.B \ \ \ \ :set\ errorformat=%f:%l:%c:%t:%m - -.SH USAGE -When using ccfilter, one would include the following lines in .vimrc: -.br -.B \ \ \ \ :set shellpipe=\\\\|&ccfilter\\\\> -.br -.B \ \ \ \ :set errorformat=%f:%l:%c:%t:%m - -.SH OPTIONS -.TP 16 --c -Decrement column by one. This may be needed, depending on -the compiler being used. -.TP --r -Decrement row by one. This may be needed, depending on -the compiler being used. -.TP --v -Verbose (Outputs also invalid lines). -This option makes ccfilter output also the lines that -couldn't be correctly parsed. This is used mostly for -ccfilter debugging. -.TP --o -Treat input as 's output. -Even when configuring ccfilter to assume a default -COMPILER, sometimes it's helpful to be able to specify -the COMPILER used to generate ccfilter's input. -For example, when cross-compiling on a network from a -single machine. -.TP --h -Shows a brief help, describing the configured default COMPILER -and the valid parameters for COMPILER. - -.SH NOTES -Currently, ccfilter accepts output from several compilers, as -described below: -.TP 10 -GCC -GCC compiler -.TP -AIX -AIX's C compiler -.TP -ATT -AT&T/NCR's High Performance C Compiler -.TP -IRIX -IRIX's MIPS/MIPSpro C compiler -.TP -SOLARIS -SOLARIS's SparcWorks C compiler -.TP -HPUX -HPUX's C compiler - -.SH AUTHOR -.B ccfilter -was developed by -.B Pablo Ariel Kohan -.BR -.B mailto:pablo@memco.co.il diff --git a/runtime/tools/ccfilter.c b/runtime/tools/ccfilter.c deleted file mode 100644 index 270333910f..0000000000 --- a/runtime/tools/ccfilter.c +++ /dev/null @@ -1,326 +0,0 @@ -/* ======================================================================= */ -/* Project : VIM */ -/* Module : ccfilter Version: 02.01.01 */ -/* File : ccfilter.c */ -/* Purpose : Filter gmake/cc output into a standardized form */ -/* ======================================================================= */ -/* Created On: 12-Sep-95 20:32 */ -/* Last modification: 03-Feb-98 */ -/* -e option added by Bernd Feige */ -/* ======================================================================= */ -/* Copyright : */ -/* This source file is copyright (c) to Pablo Ariel Kohan */ -/* ======================================================================= */ -#define __CCFILTER_C__ - -#include -#include -#include -#include - -#define LINELENGTH 2048 - -/* Collector(s) */ -char Line[LINELENGTH]; -char Line2[LINELENGTH]; -/* Components */ -char FileName[1024]; -char BasePath[1024]; -char CWD[1024]; -unsigned long Row; -unsigned long Col; -char Severity; -char Reason[LINELENGTH]; - -#define COMPILER_UNKNOWN 0 -#define COMPILER_GCC 1 -#define COMPILER_AIX 2 -#define COMPILER_ATT 3 -#define COMPILER_IRIX 4 -#define COMPILER_SOLARIS 5 -#define COMPILER_HPUX 6 - -char *COMPILER_Names[][2] = - { - /* Name Description */ - { "N/A", "" }, - { "GCC", "GCC compiler" }, - { "AIX", "AIX's C compiler" }, - { "ATT", "AT&T/NCR's High Performance C Compiler" }, - { "IRIX", "IRIX's MIPS/MIPSpro C compiler" }, - { "SOLARIS", "SOLARIS's SparcWorks C compiler" }, - { "HPUX", "HPUX's C compiler" } - }; -#define COMPILER_QTY (sizeof(COMPILER_Names)/sizeof(COMPILER_Names[0])) - -#if defined(_GCC) -# define COMPILER_DEFAULT COMPILER_GCC -#elif defined(_AIX) -# define COMPILER_DEFAULT COMPILER_AIX -#elif defined(_ATT) -# define COMPILER_DEFAULT COMPILER_ATT -#elif defined(_IRIX) -# define COMPILER_DEFAULT COMPILER_IRIX -#elif defined(_SOLARIS) -# define COMPILER_DEFAULT COMPILER_SOLARIS -#elif defined(_HPUX) -# define COMPILER_DEFAULT COMPILER_HPUX -#else -# define COMPILER_DEFAULT COMPILER_UNKNOWN -#endif - -const char USAGE[] = -"ccfilter v2.1 (c)1994-1997 by Pablo Ariel Kohan\n" -"Filter Out compiler's output, and converts it to fit VIM\n\n" -"Usage:\n" -" ccfilter []\n" -"Where: is one or more of:\n" -" -c Decrement column by one\n" -" -r Decrement row by one\n" -" -e Echo stdin to stderr\n" -" -v Verbose (Outputs also invalid lines)\n" -" -o Treat input as 's output\n" -" Note: COMPILER may be preceded by an _\n" -" -h This usage.\n"; - - -int ShowUsage( char *szError ) -{ int i; - - fprintf( stderr, USAGE ); - - fprintf( stderr, "Current default : %s\n", - COMPILER_Names[COMPILER_DEFAULT][0] ); - - fprintf( stderr, "Acceptable parameters for are:\n" ); - for (i=1; i < COMPILER_QTY; i++) - fprintf( stderr, " %-15.15s %s\n", - COMPILER_Names[i][0], - COMPILER_Names[i][1] ); - fprintf(stderr, szError); - return 0; -} - -char *echogets(char *s, int echo) { - char * const retval=fgets(s, LINELENGTH, stdin); - if (echo!=0 && retval!=NULL) { - fputs(retval, stderr); - } - return retval; -} - -int main( int argc, char *argv[] ) -{ int rv, i, j, ok; - int stay; - int prefetch; - char *p; - int dec_col = 0; /* Decrement column value by 1 */ - int dec_row = 0; /* Decrement row value by 1 */ - int echo = 0; /* Echo stdin to stderr */ - int verbose = 0; /* Include Bad Formatted Lines */ - int CWDlen; - int COMPILER = COMPILER_DEFAULT; - - getcwd( CWD, sizeof(CWD) ); - CWDlen = strlen(CWD); - - for (i=1; i= argc) - return ShowUsage("Error: Missing parameter for -o\n"); - i++; - COMPILER = -1; - for (j=1; j <> -The <> denotes ignored text. -Line formats are delimited by the ^ (caret) symbol. - -0) Special case: "gmake directory change" lines: - Lines with a format like: - ^gmake[]: Entering directory `'^ - are used to follow the directory changes during the make process, - providing in the part, a relative (if possible) directory - path to the erroneous file. - - -1) GCC: - Recognized lines are of the format: - - ^In file included from ::^ - Line following this one is used as - is always 'e' (error) - is always '0' - - - ^::^ - is always 'e' (error) - is always '0' - - -2) AIX: - Recognized lines are of the format: - - ^"", line .: <> () ", - - -3) HPUX: - Recognized lines are of the format: - - ^cc: "", line : : ^ - is always '0' - - -4) SOLARIS: - Recognized lines are of the format: - - ^"", line : warning: ^ - This assumes is "W" - is always '0' - - - ^"", line : ^ - This assumes is "E" - is always '0' - - -5) ATT / NCR: - Recognized lines are of the format: - - ^ "",L/C<>:^ - or - - ^ "",L/C:^ - Following lines beginning with a pipe (|) are continuation - lines, and are therefore appended to the - - - ^ "",L:^ - is '0' - Following lines beginning with a pipe (|) are continuation - lines, and are therefore appended to the - - -6) SGI-IRIX: - Recognized lines are of the format: - - ^cfe: : : : ^ - or - ^cfe: : , line : ^ - Following lines beginning with a dash (-) are "column-bar" - that end with a caret in the column of the error. These lines - are analyzed to generate the . diff --git a/runtime/tools/efm_filter.pl b/runtime/tools/efm_filter.pl deleted file mode 100755 index 1d1a4f303b..0000000000 --- a/runtime/tools/efm_filter.pl +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env perl -# -# This program works as a filter that reads from stdin, copies to -# stdout *and* creates an error file that can be read by vim. -# -# This program has only been tested on SGI, Irix5.3. -# -# Written by Ives Aerts in 1996. This little program is not guaranteed -# to do (or not do) anything at all and can be freely used for -# whatever purpose you can think of. - -$args = @ARGV; - -unless ($args == 1) { - die("Usage: vimccparse \n"); -} - -$filename = @ARGV[0]; -open (OUT, ">$filename") || die ("Can't open file: \"$filename\""); - -while () { - print; - if ( (/"(.*)", line (\d+): (e)rror\((\d+)\):/) - || (/"(.*)", line (\d+): (w)arning\((\d+)\):/) ) { - $file=$1; - $line=$2; - $errortype="\u$3"; - $errornr=$4; - chop($errormsg=); - $errormsg =~ s/^\s*//; - $sourceline=; - $column=index(, "^") - 1; - - print OUT "$file>$line:$column:$errortype:$errornr:$errormsg\n"; - } -} - -close(OUT); -exit(0); diff --git a/runtime/tools/efm_filter.txt b/runtime/tools/efm_filter.txt deleted file mode 100644 index d3f97f45ad..0000000000 --- a/runtime/tools/efm_filter.txt +++ /dev/null @@ -1,31 +0,0 @@ -[adopted from a message that Ives posted in the Vim mailing list] - -Some compilers produce an error message that cannot be handled with -'errorformat' in Vim. Following is an example of a Perl script that -translates one error message into something that Vim understands. - - -The compiler that generates this kind of error messages (4 lines): - -"/tmp_mnt/cm/src/apertos/MoU/MetaCore/MetaCore/common/src/MetaCoreImp_M.cc", -line 50: error(3114): - identifier "PRIMITIVE_M" is undefined - return(ExecuteCore(PRIMITIVE_M, - -You can find a small perl program at the end. -The way I use it is: - -:set errorformat=%f>%l:%c:%t:%n:%m -:set makeprg=clearmake\ -C\ gnu -:set shellpipe=2>&1\|\ vimccparse - -If somebody thinks this is useful: feel free to do whatever you can think -of with this code. - --Ives -____________________________________________________________ -Ives Aerts (SW Developer) Sony Telecom Europe -ives@sonytel.be St.Stevens Woluwestr. 55 -`Death could create most things, B-1130 Brussels, Belgium - except for plumbing.' PHONE : +32 2 724 19 67 - (Soul Music - T.Pratchett) FAX : +32 2 726 26 86 diff --git a/runtime/tools/efm_perl.pl b/runtime/tools/efm_perl.pl deleted file mode 100755 index 1aab2d4ea0..0000000000 --- a/runtime/tools/efm_perl.pl +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/perl -w - -# vimparse.pl - Reformats the error messages of the Perl interpreter for use -# with the quickfix mode of Vim -# -# Copyright (c) 2001 by Joerg Ziefle -# You may use and distribute this software under the same terms as Perl itself. -# -# Usage: put one of the two configurations below in your ~/.vimrc (without the -# description and '# ') and enjoy (be sure to adjust the paths to vimparse.pl -# before): -# -# Program is run interactively with 'perl -w': -# -# set makeprg=$HOME/bin/vimparse.pl\ %\ $* -# set errorformat=%f:%l:%m -# -# Program is only compiled with 'perl -wc': -# -# set makeprg=$HOME/bin/vimparse.pl\ -c\ %\ $* -# set errorformat=%f:%l:%m -# -# Usage: -# vimparse.pl [-c] [-f ] [programargs] -# -# -c compile only, don't run (perl -wc) -# -f write errors to -# -# Example usages: -# * From the command line: -# vimparse.pl program.pl -# -# vimparse.pl -c -f errorfile program.pl -# Then run vim -q errorfile to edit the errors with Vim. -# -# * From Vim: -# Edit in Vim (and save, if you don't have autowrite on), then -# type ':mak' or ':mak args' (args being the program arguments) -# to error check. -# -# Version history: -# 0.2 (04/12/2001): -# * First public version (sent to Bram) -# * -c command line option for compiling only -# * grammatical fix: 'There was 1 error.' -# * bug fix for multiple arguments -# * more error checks -# * documentation (top of file, &usage) -# * minor code clean ups -# 0.1 (02/02/2001): -# * Initial version -# * Basic functionality -# -# Todo: -# * test on more systems -# * use portable way to determine the location of perl ('use Config') -# * include option that shows perldiag messages for each error -# * allow to pass in program by STDIN -# * more intuitive behaviour if no error is found (show message) -# -# Tested under SunOS 5.7 with Perl 5.6.0. Let me know if it's not working for -# you. - -use strict; -use Getopt::Std; - -use vars qw/$opt_c $opt_f $opt_h/; # needed for Getopt in combination with use strict 'vars' - -use constant VERSION => 0.2; - -getopts('cf:h'); - -&usage if $opt_h; # not necessarily needed, but good for further extension - -if (defined $opt_f) { - - open FILE, "> $opt_f" or do { - warn "Couldn't open $opt_f: $!. Using STDOUT instead.\n"; - undef $opt_f; - }; - -}; - -my $handle = (defined $opt_f ? \*FILE : \*STDOUT); - -(my $file = shift) or &usage; # display usage if no filename is supplied -my $args = (@ARGV ? ' ' . join ' ', @ARGV : ''); - -my @lines = `perl @{[defined $opt_c ? '-c ' : '' ]} -w "$file$args" 2>&1`; - -my $errors = 0; -foreach my $line (@lines) { - - chomp($line); - my ($file, $lineno, $message, $rest); - - if ($line =~ /^(.*)\sat\s(.*)\sline\s(\d+)(\.|,\snear\s\".*\")$/) { - - ($message, $file, $lineno, $rest) = ($1, $2, $3, $4); - $errors++; - $message .= $rest if ($rest =~ s/^,//); - print $handle "$file:$lineno:$message\n"; - - } else { next }; - -} - -if (defined $opt_f) { - - my $msg; - if ($errors == 1) { - - $msg = "There was 1 error.\n"; - - } else { - - $msg = "There were $errors errors.\n"; - - }; - - print STDOUT $msg; - close FILE; - unlink $opt_f unless $errors; - -}; - -sub usage { - - (local $0 = $0) =~ s/^.*\/([^\/]+)$/$1/; # remove path from name of program - print<] [programargs] - - -c compile only, don't run (executes 'perl -wc') - -f write errors to - -Examples: - * At the command line: - $0 program.pl - Displays output on STDOUT. - - $0 -c -f errorfile program.pl - Then run 'vim -q errorfile' to edit the errors with Vim. - - * In Vim: - Edit in Vim (and save, if you don't have autowrite on), then - type ':mak' or ':mak args' (args being the program arguments) - to error check. -EOT - - exit 0; - -}; diff --git a/runtime/tools/mve.awk b/runtime/tools/mve.awk deleted file mode 100755 index 396f80677c..0000000000 --- a/runtime/tools/mve.awk +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/nawk -f -# -# Change "nawk" to "awk" or "gawk" if you get errors. -# -# Make Vim Errors -# Processes errors from cc for use by Vim's quick fix tools -# specifically it translates the ---------^ notation to a -# column number -# -BEGIN { FS="[:,]" } - -/^cfe/ { file=$3 - msg=$5 - split($4,s," ") - line=s[2] -} - -# You may have to substitute a tab character for the \t here: -/^[\t-]*\^/ { - p=match($0, ".*\\^" ) - col=RLENGTH-2 - printf("%s, line %d, col %d : %s\n", file,line,col,msg) -} diff --git a/runtime/tools/mve.txt b/runtime/tools/mve.txt deleted file mode 100644 index 8aa5cf66bf..0000000000 --- a/runtime/tools/mve.txt +++ /dev/null @@ -1,20 +0,0 @@ -[ The mve awk script was posted on the vimdev mailing list ] - -From: jimmer@barney.mdhc.mdc.com (J. McGlasson) -Date: Mon, 31 Mar 1997 13:16:49 -0700 (Mar) - -My compiler (SGI MIPSpro C compiler - IRIX 6.4) works like this. -I have written a script mve (make vim errors), through which I pipe my make -output, which translates output of the following form: - -cfe: Error: syntax.c, line 4: Syntax Error - int i[12; - ------------^ - -into: - - cl.c, line 4, col 12 : Syntax Error - -(in vim notation: %f, line %l, col %c : %m) - -You might be able to tailor this for your compiler's output. diff --git a/runtime/tools/pltags.pl b/runtime/tools/pltags.pl deleted file mode 100755 index 7a74682b87..0000000000 --- a/runtime/tools/pltags.pl +++ /dev/null @@ -1,300 +0,0 @@ -#!/usr/bin/env perl - -# pltags - create a tags file for Perl code, for use by vi(m) -# -# Distributed with Vim , latest version always available -# at -# -# Version 2.3, 28 February 2002 -# -# Written by Michael Schaap . Suggestions for improvement -# are very welcome! -# -# This script will not work with Perl 4 or below! -# -# Revision history: -# 1.0 1997? Original version, quickly hacked together -# 2.0 1999? Completely rewritten, better structured and documented, -# support for variables, packages, Exuberant Ctags extensions -# 2.1 Jun 2000 Fixed critical bug (typo in comment) ;-) -# Support multiple level packages (e.g. Archive::Zip::Member) -# 2.2 Jul 2001 'Glob' wildcards - especially useful under Windows -# (thanks to Serge Sivkov and Jason King) -# Bug fix: reset package name for each file -# 2.21 Jul 2001 Oops... bug in variable detection (/local../ -> /^local.../) -# 2.3 Feb 2002 Support variables declared with "our" -# (thanks to Lutz Mende) - -# Complain about undeclared variables -use strict; - -# Used modules -use Getopt::Long; - -# Options with their defaults -my $do_subs = 1; # --subs, --nosubs include subs in tags file? -my $do_vars = 1; # --vars, --novars include variables in tags file? -my $do_pkgs = 1; # --pkgs, --nopkgs include packages in tags file? -my $do_exts = 1; # --extensions, --noextensions - # include Exuberant Ctags extensions - -# Global variables -my $VERSION = "2.21"; # pltags version -my $status = 0; # GetOptions return value -my $file = ""; # File being processed -my @tags = (); # List of produced tags -my $is_pkg = 0; # Are we tagging a package? -my $has_subs = 0; # Has this file any subs yet? -my $package_name = ""; # Name of current package -my $var_continues = 0; # Variable declaration continues on last line -my $line = ""; # Current line in file -my $stmt = ""; # Current Perl statement -my @vars = (); # List of variables in declaration -my $var = ""; # Variable in declaration -my $tagline = ""; # Tag file line - -# Create a tag file line and push it on the list of found tags -sub MakeTag($$$$$) -{ - my ($tag, # Tag name - $type, # Type of tag - $is_static, # Is this a static tag? - $file, # File in which tag appears - $line) = @_; # Line in which tag appears - - my $tagline = ""; # Created tag line - - # Only process tag if not empty - if ($tag) - { - # Get rid of \n, and escape / and \ in line - chomp $line; - $line =~ s/\\/\\\\/g; - $line =~ s/\//\\\//g; - - # Create a tag line - $tagline = "$tag\t$file\t/^$line\$/"; - - # If we're told to do so, add extensions - if ($do_exts) - { - $tagline .= ";\"\t$type" - . ($is_static ? "\tfile:" : "") - . ($package_name ? "\tclass:$package_name" : ""); - } - - # Push it on the stack - push (@tags, $tagline); - } -} - -# Parse package name from statement -sub PackageName($) -{ - my ($stmt) = @_; # Statement - - # Look for the argument to "package". Return it if found, else return "" - if ($stmt =~ /^package\s+([\w:]+)/) - { - my $pkgname = $1; - - # Remove any parent package name(s) - $pkgname =~ s/.*://; - return $pkgname; - } - else - { - return ""; - } -} - -# Parse sub name from statement -sub SubName($) -{ - my ($stmt) = @_; # Statement - - # Look for the argument to "sub". Return it if found, else return "" - if ($stmt =~ /^sub\s+([\w:]+)/) - { - my $subname = $1; - - # Remove any parent package name(s) - $subname =~ s/.*://; - return $subname; - } - else - { - return ""; - } -} - -# Parse all variable names from statement -sub VarNames($) -{ - my ($stmt) = @_; - - # Remove my or local from statement, if present - $stmt =~ s/^(my|our|local)\s+//; - - # Remove any assignment piece - $stmt =~ s/\s*=.*//; - - # Now find all variable names, i.e. "words" preceded by $, @ or % - @vars = ($stmt =~ /[\$\@\%]([\w:]+)\b/g); - - # Remove any parent package name(s) - map(s/.*://, @vars); - - return (@vars); -} - -############### Start ############### - -print "\npltags $VERSION by Michael Schaap \n\n"; - -# Get options -$status = GetOptions("subs!" => \$do_subs, - "vars!" => \$do_vars, - "pkgs!" => \$do_pkgs, - "extensions!" => \$do_exts); - -# Usage if error in options or no arguments given -unless ($status && @ARGV) -{ - print "\n" unless ($status); - print " Usage: $0 [options] filename ...\n\n"; - print " Where options can be:\n"; - print " --subs (--nosubs) (don't) include sub declarations in tag file\n"; - print " --vars (--novars) (don't) include variable declarations in tag file\n"; - print " --pkgs (--nopkgs) (don't) include package declarations in tag file\n"; - print " --extensions (--noextensions)\n"; - print " (don't) include Exuberant Ctags / Vim style\n"; - print " extensions in tag file\n\n"; - print " Default options: "; - print ($do_subs ? "--subs " : "--nosubs "); - print ($do_vars ? "--vars " : "--novars "); - print ($do_pkgs ? "--pkgs " : "--nopkgs "); - print ($do_exts ? "--extensions\n\n" : "--noextensions\n\n"); - print " Example: $0 *.pl *.pm ../shared/*.pm\n\n"; - exit; -} - -# Loop through files on command line - 'glob' any wildcards, since Windows -# doesn't do this for us -foreach $file (map { glob } @ARGV) -{ - # Skip if this is not a file we can open. Also skip tags files and backup - # files - next unless ((-f $file) && (-r $file) && ($file !~ /tags$/) - && ($file !~ /~$/)); - - print "Tagging file $file...\n"; - - $is_pkg = 0; - $package_name = ""; - $has_subs = 0; - $var_continues = 0; - - open (IN, $file) or die "Can't open file '$file': $!"; - - # Loop through file - foreach $line () - { - # Statement is line with comments and whitespace trimmed - ($stmt = $line) =~ s/#.*//; - $stmt =~ s/^\s*//; - $stmt =~ s/\s*$//; - - # Nothing left? Never mind. - next unless ($stmt); - - # This is a variable declaration if one was started on the previous - # line, or if this line starts with my or local - if ($var_continues or ($stmt =~/^my\b/) - or ($stmt =~/^our\b/) or ($stmt =~/^local\b/)) - { - # The declaration continues if the line does not end with ; - $var_continues = ($stmt !~ /;$/); - - # Loop through all variable names in the declaration - foreach $var (VarNames($stmt)) - { - # Make a tag for this variable unless we're told not to. We - # assume that a variable is always static, unless it appears - # in a package before any sub. (Not necessarily true, but - # it's ok for most purposes and Vim works fine even if it is - # incorrect) - if ($do_vars) - { - MakeTag($var, "v", (!$is_pkg or $has_subs), $file, $line); - } - } - } - - # This is a package declaration if the line starts with package - elsif ($stmt =~/^package\b/) - { - # Get name of the package - $package_name = PackageName($stmt); - - if ($package_name) - { - # Remember that we're doing a package - $is_pkg = 1; - - # Make a tag for this package unless we're told not to. A - # package is never static. - if ($do_pkgs) - { - MakeTag($package_name, "p", 0, $file, $line); - } - } - } - - # This is a sub declaration if the line starts with sub - elsif ($stmt =~/^sub\b/) - { - # Remember that this file has subs - $has_subs = 1; - - # Make a tag for this sub unless we're told not to. We assume - # that a sub is static, unless it appears in a package. (Not - # necessarily true, but it's ok for most purposes and Vim works - # fine even if it is incorrect) - if ($do_subs) - { - MakeTag(SubName($stmt), "s", (!$is_pkg), $file, $line); - } - } - } - close (IN); -} - -# Do we have any tags? If so, write them to the tags file -if (@tags) -{ - # Add some tag file extensions if we're told to - if ($do_exts) - { - push (@tags, "!_TAG_FILE_FORMAT\t2\t/extended format/"); - push (@tags, "!_TAG_FILE_SORTED\t1\t/0=unsorted, 1=sorted/"); - push (@tags, "!_TAG_PROGRAM_AUTHOR\tMichael Schaap\t/mscha\@mscha.com/"); - push (@tags, "!_TAG_PROGRAM_NAME\tpltags\t//"); - push (@tags, "!_TAG_PROGRAM_VERSION\t$VERSION\t/supports multiple tags and extended format/"); - } - - print "\nWriting tags file.\n"; - - open (OUT, ">tags") or die "Can't open tags file: $!"; - - foreach $tagline (sort @tags) - { - print OUT "$tagline\n"; - } - - close (OUT); -} -else -{ - print "\nNo tags found.\n"; -} diff --git a/runtime/tools/ref b/runtime/tools/ref deleted file mode 100755 index 77bfc805e2..0000000000 --- a/runtime/tools/ref +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -# ref - Check spelling of the arguments -# -# Usage: ref word .. -# -# can be used for the K command of Vim -# -spell <\fP] [\fI-s \fP] -.SH DESCRIPTION -\fBshtags\fP creates a \fBvi(1)\fP tags file for shell scripts - which -essentially turns your code into a hypertext document. \fBshtags\fP -attempts to create tags for all function and variable definitions, -although this is a little difficult, because in most shell languages, -variables don't need to be explicitly defined, and as such there is -often no distinct "variable definition". If this is the case, -\fBshtags\fP simply creates a tag for the first instance of a variable -which is being set in a simple way, ie: \fIset x = 5\fP. -.SH OPTIONS -.IP "\fB-t \fP" -Name of tags file to create. (default is 'tags') -.IP "\fB-s \fP" -The name of the shell used by the script(s). By default, -\fBshtags\fP tries to work out which is the appropriate shell for each -file individually by looking at the first line of each file. This wont -work however, if the script starts as a bourne shell script and tries -to be clever about starting the shell it really wants. -.b -Currently supported shells are: -.RS -.IP \fBsh\fP -Bourne Shell -.IP \fBperl\fP -Perl (versions 4 and 5) -.IP \fBksh\fP -Korn Shell -.IP \fBtclsh\fP -The TCL shell -.IP \fBwish\fP -The TK Windowing shell (same as tclsh) -.RE - -.IP \fB-v\fP -Include variable definitions (variables mentioned at the start of a line) -.IP \fB-V\fP -Print version information. -.IP \fB-w\fP -Suppress "duplicate tag" warning messages. -.IP \fB-x\fP -Explicitly create a new tags file. Normally new tags are merged with -the old tags file. -.PP -\fBshtags\fP scans the specified files for subroutines and possibly -variable definitions, and creates a \fBvi\fP style tags file. -.SH FILES -.IP \fBtags\fP -A tags file contains a sorted list of tags, one tag per line. The -format is the same as that used by \fBvi\fP(1) -.SH AUTHOR -Stephen Riehm -.br -sr@pc-plus.de -.SH "SEE ALSO" -ctags(1), etags(1), perl(1), tclsh(1), wish(1), sh(1), ksh(1). diff --git a/runtime/tools/shtags.pl b/runtime/tools/shtags.pl deleted file mode 100755 index 48dcdc7476..0000000000 --- a/runtime/tools/shtags.pl +++ /dev/null @@ -1,144 +0,0 @@ -#!/usr/bin/env perl -# -# shtags: create a tags file for perl scripts -# -# Author: Stephen Riehm -# Last Changed: 96/11/27 19:46:06 -# -# "@(#) shtags 1.1 by S. Riehm" -# - -# obvious... :-) -sub usage - { - print <<_EOUSAGE_ ; -USAGE: $program [-kvwVx] [-t ] - -t Name of tags file to create. (default is 'tags') - -s Name of the shell language in the script - -v Include variable definitions. - (variables mentioned at the start of a line) - -V Print version information. - -w Suppress "duplicate tag" warnings. - -x Explicitly create a new tags file. Normally tags are merged. - List of files to scan for tags. -_EOUSAGE_ - exit 0 - } - -sub version -{ - # - # Version information - # - @id = split( ', ', 'scripts/bin/shtags, /usr/local/, LOCAL_SCRIPTS, 1.1, 96/11/27, 19:46:06' ); - $id[0] =~ s,.*/,,; - print <<_EOVERS; -$id[0]: $id[3] -Last Modified: @id[4,5] -Component: $id[1] -Release: $id[2] -_EOVERS - exit( 1 ); -} - -# -# initialisations -# -($program = $0) =~ s,.*/,,; -require 'getopts.pl'; - -# -# parse command line -# -&Getopts( "t:s:vVwx" ) || &usage(); -$tags_file = $opt_t || 'tags'; -$explicit = $opt_x; -$variable_tags = $opt_v; -$allow_warnings = ! $opt_w; -&version if $opt_V; -&usage() unless @ARGV != 0; - -# slurp up the existing tags. Some will be replaced, the ones that aren't -# will be re-written exactly as they were read -if( ! $explicit && open( TAGS, "< $tags_file" ) ) - { - while( ) - { - /^\S+/; - $tags{$&} = $_; - } - close( TAGS ); - } - -# -# for each line of every file listed on the command line, look for a -# 'sub' definition, or, if variables are wanted aswell, look for a -# variable definition at the start of a line -# -while( <> ) - { - &check_shell($_), ( $old_file = $ARGV ) if $ARGV ne $old_file; - next unless $shell; - if( $shell eq "sh" ) - { - next unless /^\s*(((\w+)))\s*\(\s*\)/ - || ( $variable_tags && /^(((\w+)=))/ ); - $match = $3; - } - if( $shell eq "ksh" ) - { - # ksh - next unless /^\s*function\s+(((\w+)))/ - || ( $variable_tags && /^(((\w+)=))/ ); - $match = $3; - } - if( $shell eq "perl" ) - { - # perl - next unless /^\s*sub\s+(\w+('|::))?(\w+)/ - || /^\s*(((\w+))):/ - || ( $variable_tags && /^(([(\s]*[\$\@\%]{1}(\w+).*=))/ ); - $match = $3; - } - if( $shell eq "tcl" ) - { - next unless /^\s*proc\s+(((\S+)))/ - || ( $variable_tags && /^\s*set\s+(((\w+)\s))/ ); - $match = $3; - } - chop; - warn "$match - duplicate ignored\n" - if ( $new{$match}++ - || !( $tags{$match} = sprintf( "%s\t%s\t?^%s\$?\n", $match, $ARGV, $_ ) ) ) - && $allow_warnings; - } - -# write the new tags to the tags file - note that the whole file is rewritten -open( TAGS, "> $tags_file" ); -foreach( sort( keys %tags ) ) - { - print TAGS "$tags{$_}"; - } -close( TAGS ); - -sub check_shell - { - local( $_ ) = @_; - # read the first line of a script, and work out which shell it is, - # unless a shell was specified on the command line - # - # This routine can't handle clever scripts which start sh and then - # use sh to start the shell they really wanted. - if( $opt_s ) - { - $shell = $opt_s; - } - else - { - $shell = "sh" if /^:$/ || /^#!.*\/bin\/sh/; - $shell = "ksh" if /^#!.*\/ksh/; - $shell = "perl" if /^#!.*\/perl/; - $shell = "tcl" if /^#!.*\/wish/; - printf "Using $shell for $ARGV\n"; - } - } diff --git a/runtime/tools/unicode.vim b/runtime/tools/unicode.vim deleted file mode 100644 index f3c58ed35a..0000000000 --- a/runtime/tools/unicode.vim +++ /dev/null @@ -1,290 +0,0 @@ -" Script to extract tables from Unicode .txt files, to be used in src/mbyte.c. -" The format of the UnicodeData.txt file is explained here: -" http://www.unicode.org/Public/5.1.0/ucd/UCD.html -" For the other files see the header. -" -" Usage: Vim -S -" -" Author: Bram Moolenaar -" Last Update: 2010 Jan 12 - -" Parse lines of UnicodeData.txt. Creates a list of lists in s:dataprops. -func! ParseDataToProps() - let s:dataprops = [] - let lnum = 1 - while lnum <= line('$') - let l = split(getline(lnum), '\s*;\s*', 1) - if len(l) != 15 - echoerr 'Found ' . len(l) . ' items in line ' . lnum . ', expected 15' - return - endif - call add(s:dataprops, l) - let lnum += 1 - endwhile -endfunc - -" Parse lines of CaseFolding.txt. Creates a list of lists in s:foldprops. -func! ParseFoldProps() - let s:foldprops = [] - let lnum = 1 - while lnum <= line('$') - let line = getline(lnum) - if line !~ '^#' && line !~ '^\s*$' - let l = split(line, '\s*;\s*', 1) - if len(l) != 4 - echoerr 'Found ' . len(l) . ' items in line ' . lnum . ', expected 4' - return - endif - call add(s:foldprops, l) - endif - let lnum += 1 - endwhile -endfunc - -" Parse lines of EastAsianWidth.txt. Creates a list of lists in s:widthprops. -func! ParseWidthProps() - let s:widthprops = [] - let lnum = 1 - while lnum <= line('$') - let line = getline(lnum) - if line !~ '^#' && line !~ '^\s*$' - let l = split(line, '\s*;\s*', 1) - if len(l) != 2 - echoerr 'Found ' . len(l) . ' items in line ' . lnum . ', expected 2' - return - endif - call add(s:widthprops, l) - endif - let lnum += 1 - endwhile -endfunc - -" Build the toLower or toUpper table in a new buffer. -" Uses s:dataprops. -func! BuildCaseTable(name, index) - let start = -1 - let end = -1 - let step = 0 - let add = -1 - let ranges = [] - for p in s:dataprops - if p[a:index] != '' - let n = ('0x' . p[0]) + 0 - let nl = ('0x' . p[a:index]) + 0 - if start >= 0 && add == nl - n && (step == 0 || n - end == step) - " continue with same range. - let step = n - end - let end = n - else - if start >= 0 - " produce previous range - call Range(ranges, start, end, step, add) - endif - let start = n - let end = n - let step = 0 - let add = nl - n - endif - endif - endfor - if start >= 0 - call Range(ranges, start, end, step, add) - endif - - " New buffer to put the result in. - new - exe "file to" . a:name - call setline(1, "static convertStruct to" . a:name . "[] =") - call setline(2, "{") - call append('$', ranges) - call setline('$', getline('$')[:-2]) " remove last comma - call setline(line('$') + 1, "};") - wincmd p -endfunc - -" Build the foldCase table in a new buffer. -" Uses s:foldprops. -func! BuildFoldTable() - let start = -1 - let end = -1 - let step = 0 - let add = -1 - let ranges = [] - for p in s:foldprops - if p[1] == 'C' || p[1] == 'S' - let n = ('0x' . p[0]) + 0 - let nl = ('0x' . p[2]) + 0 - if start >= 0 && add == nl - n && (step == 0 || n - end == step) - " continue with same range. - let step = n - end - let end = n - else - if start >= 0 - " produce previous range - call Range(ranges, start, end, step, add) - endif - let start = n - let end = n - let step = 0 - let add = nl - n - endif - endif - endfor - if start >= 0 - call Range(ranges, start, end, step, add) - endif - - " New buffer to put the result in. - new - file foldCase - call setline(1, "static convertStruct foldCase[] =") - call setline(2, "{") - call append('$', ranges) - call setline('$', getline('$')[:-2]) " remove last comma - call setline(line('$') + 1, "};") - wincmd p -endfunc - -func! Range(ranges, start, end, step, add) - let s = printf("\t{0x%x,0x%x,%d,%d},", a:start, a:end, a:step == 0 ? -1 : a:step, a:add) - call add(a:ranges, s) -endfunc - -" Build the combining table. -" Uses s:dataprops. -func! BuildCombiningTable() - let start = -1 - let end = -1 - let ranges = [] - for p in s:dataprops - if p[2] == 'Mn' || p[2] == 'Mc' || p[2] == 'Me' - let n = ('0x' . p[0]) + 0 - if start >= 0 && end + 1 == n - " continue with same range. - let end = n - else - if start >= 0 - " produce previous range - call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end)) - endif - let start = n - let end = n - endif - endif - endfor - if start >= 0 - call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end)) - endif - - " New buffer to put the result in. - new - file combining - call setline(1, " static struct interval combining[] =") - call setline(2, " {") - call append('$', ranges) - call setline('$', getline('$')[:-2]) " remove last comma - call setline(line('$') + 1, " };") - wincmd p -endfunc - -" Build the double width or ambiguous width table in a new buffer. -" Uses s:widthprops and s:dataprops. -func! BuildWidthTable(pattern, tableName) - let start = -1 - let end = -1 - let ranges = [] - let dataidx = 0 - for p in s:widthprops - if p[1][0] =~ a:pattern - if p[0] =~ '\.\.' - " It is a range. we don't check for composing char then. - let rng = split(p[0], '\.\.') - if len(rng) != 2 - echoerr "Cannot parse range: '" . p[0] . "' in width table" - endif - let n = ('0x' . rng[0]) + 0 - let n_last = ('0x' . rng[1]) + 0 - else - let n = ('0x' . p[0]) + 0 - let n_last = n - endif - " Find this char in the data table. - while 1 - let dn = ('0x' . s:dataprops[dataidx][0]) + 0 - if dn >= n - break - endif - let dataidx += 1 - endwhile - if dn != n && n_last == n - echoerr "Cannot find character " . n . " in data table" - endif - " Only use the char when it's not a composing char. - " But use all chars from a range. - let dp = s:dataprops[dataidx] - if n_last > n || (dp[2] != 'Mn' && dp[2] != 'Mc' && dp[2] != 'Me') - if start >= 0 && end + 1 == n - " continue with same range. - else - if start >= 0 - " produce previous range - call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end)) - endif - let start = n - endif - let end = n_last - endif - endif - endfor - if start >= 0 - call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end)) - endif - - " New buffer to put the result in. - new - exe "file " . a:tableName - call setline(1, " static struct interval " . a:tableName . "[] =") - call setline(2, " {") - call append('$', ranges) - call setline('$', getline('$')[:-2]) " remove last comma - call setline(line('$') + 1, " };") - wincmd p -endfunc - - - -" Edit the Unicode text file. Requires the netrw plugin. -edit http://unicode.org/Public/UNIDATA/UnicodeData.txt - -" Parse each line, create a list of lists. -call ParseDataToProps() - -" Build the toLower table. -call BuildCaseTable("Lower", 13) - -" Build the toUpper table. -call BuildCaseTable("Upper", 12) - -" Build the ranges of composing chars. -call BuildCombiningTable() - -" Edit the case folding text file. Requires the netrw plugin. -edit http://www.unicode.org/Public/UNIDATA/CaseFolding.txt - -" Parse each line, create a list of lists. -call ParseFoldProps() - -" Build the foldCase table. -call BuildFoldTable() - -" Edit the width text file. Requires the netrw plugin. -edit http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt - -" Parse each line, create a list of lists. -call ParseWidthProps() - -" Build the double width table. -call BuildWidthTable('[WF]', 'doublewidth') - -" Build the ambiguous width table. -call BuildWidthTable('A', 'ambiguous') diff --git a/runtime/tools/vim132 b/runtime/tools/vim132 deleted file mode 100755 index 29ea4ce1ff..0000000000 --- a/runtime/tools/vim132 +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/csh -# -# Shell script for use with UNIX -# Starts up Vim with the terminal in 132 column mode -# Only works on VT-100 terminals and lookalikes -# You need to have a termcap entry "vt100-w". Same as vt100 but 132 columns. -# -set oldterm=$term -echo "[?3h" -setenv TERM vt100-w -vim $* -set term=$oldterm -echo "[?3l" diff --git a/runtime/tools/vim_vs_net.cmd b/runtime/tools/vim_vs_net.cmd deleted file mode 100644 index bea6353f67..0000000000 --- a/runtime/tools/vim_vs_net.cmd +++ /dev/null @@ -1,24 +0,0 @@ -@rem -@rem To use this with Visual Studio .Net -@rem Tools->External Tools... -@rem Add -@rem Title - Vim -@rem Command - d:\files\util\vim_vs_net.cmd -@rem Arguments - +$(CurLine) $(ItemPath) -@rem Init Dir - Empty -@rem -@rem Courtesy of Brian Sturk -@rem -@rem --remote-silent +%1 is a command +954, move ahead 954 lines -@rem --remote-silent %2 full path to file -@rem In Vim -@rem :h --remote-silent for more details -@rem -@rem --servername VS_NET -@rem This will create a new instance of vim called VS_NET. So if you -open -@rem multiple files from VS, they will use the same instance of Vim. -@rem This allows you to have multiple copies of Vim running, but you can -@rem control which one has VS files in it. -@rem -start /b gvim.exe --servername VS_NET --remote-silent "%1" "%2" diff --git a/runtime/tools/vimm b/runtime/tools/vimm deleted file mode 100755 index 7b84cb255e..0000000000 --- a/runtime/tools/vimm +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# enable DEC locator input model on remote terminal -printf "\033[1;2'z\033[1;3'{\c" -vim "$@" -# disable DEC locator input model on remote terminal -printf "\033[2;4'{\033[0'z\c" diff --git a/runtime/tools/vimspell.sh b/runtime/tools/vimspell.sh deleted file mode 100755 index d336fe6c31..0000000000 --- a/runtime/tools/vimspell.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# -# Spell a file & generate the syntax statements necessary to -# highlight in vim. Based on a program from Krishna Gadepalli -# . -# -# I use the following mappings (in .vimrc): -# -# noremap :so `vimspell.sh %` -# noremap :syntax clear SpellErrors -# -# Neil Schemenauer -# March 1999 -# updated 2008 Jul 17 by Bram -# -# Safe method for the temp file by Javier Fernández-Sanguino_Peña - -INFILE=$1 -tmp="${TMPDIR-/tmp}" -OUTFILE=`mktemp -t vimspellXXXXXX || tempfile -p vimspell || echo none` -# If the standard commands failed then create the file -# since we cannot create a directory (we cannot remove it on exit) -# create a file in the safest way possible. -if test "$OUTFILE" = none; then - OUTFILE=$tmp/vimspell$$ - [ -e $OUTFILE ] && { echo "Cannot use temporary file $OUTFILE, it already exists!"; exit 1 ; } - (umask 077; touch $OUTFILE) -fi -# Note the copy of vimspell cannot be deleted on exit since it is -# used by vim, otherwise it should do this: -# trap "rm -f $OUTFILE" 0 1 2 3 9 11 13 15 - - -# -# local spellings -# -LOCAL_DICT=${LOCAL_DICT-$HOME/local/lib/local_dict} - -if [ -f $LOCAL_DICT ] -then - SPELL_ARGS="+$LOCAL_DICT" -fi - -spell $SPELL_ARGS $INFILE | sort -u | -awk ' - { - printf "syntax match SpellErrors \"\\<%s\\>\"\n", $0 ; - } - -END { - printf "highlight link SpellErrors ErrorMsg\n\n" ; - } -' > $OUTFILE -echo "!rm $OUTFILE" >> $OUTFILE -echo $OUTFILE diff --git a/runtime/tools/vimspell.txt b/runtime/tools/vimspell.txt deleted file mode 100644 index 2842af7bd8..0000000000 --- a/runtime/tools/vimspell.txt +++ /dev/null @@ -1,22 +0,0 @@ -vimspell.sh -=========== - -This is a simple script to spell check a file and generate the syntax -statements necessary to highlight the errors in vim. It is based on a -similar program by Krishna Gadepalli . - -To use this script, first place it in a directory in your path. Next, -you should add some convenient key mappings. I use the following (in -.vimrc): - - noremap :so `vimspell.sh %` - noremap :syntax clear SpellErrors - -This program requires the old Unix "spell" command. On my Debian -system, "spell" is a wrapper around "ispell". For better security, -you should uncomment the line in the script that uses "tempfile" to -create a temporary file. As all systems don't have "tempfile" the -insecure "pid method" is used. - - - Neil Schemenauer diff --git a/runtime/tools/xcmdsrv_client.c b/runtime/tools/xcmdsrv_client.c deleted file mode 100644 index a0e6211a1d..0000000000 --- a/runtime/tools/xcmdsrv_client.c +++ /dev/null @@ -1,584 +0,0 @@ -/* vi:set ts=8 sts=4 sw=4: - * - * VIM - Vi IMproved by Bram Moolenaar - * X-Windows communication by Flemming Madsen - * - * Do ":help uganda" in Vim to read copying and usage conditions. - * Do ":help credits" in Vim to see a list of people who contributed. - * See README.txt for an overview of the Vim source code. - * - * Client for sending commands to an '+xcmdsrv' enabled vim. - * This is mostly a de-Vimified version of if_xcmdsrv.c in vim. - * See that file for a protocol specification. - * - * You can make a test program with a Makefile like: - * xcmdsrv_client: xcmdsrv_client.c - * cc -o $@ -g -DMAIN -I/usr/X11R6/include -L/usr/X11R6/lib $< -lX11 - * - */ - -#include -#include -#ifdef HAVE_SELECT -#include -#include -#include -#else -#include -#endif -#include -#include - -#define __ARGS(x) x - -/* Client API */ -char * sendToVim __ARGS((Display *dpy, char *name, char *cmd, int asKeys, int *code)); - -#ifdef MAIN -/* A sample program */ -main(int argc, char **argv) -{ - char *res; - int code; - - if (argc == 4) - { - if ((res = sendToVim(XOpenDisplay(NULL), argv[2], argv[3], - argv[1][0] != 'e', &code)) != NULL) - { - if (code) - printf("Error code returned: %d\n", code); - puts(res); - } - exit(0); - } - else - fprintf(stderr, "Usage: %s {k|e} ", argv[0]); - - exit(1); -} -#endif - -/* - * Maximum size property that can be read at one time by - * this module: - */ - -#define MAX_PROP_WORDS 100000 - -/* - * Forward declarations for procedures defined later in this file: - */ - -static int x_error_check __ARGS((Display *dpy, XErrorEvent *error_event)); -static int AppendPropCarefully __ARGS((Display *display, - Window window, Atom property, char *value, int length)); -static Window LookupName __ARGS((Display *dpy, char *name, - int delete, char **loose)); -static int SendInit __ARGS((Display *dpy)); -static char *SendEventProc __ARGS((Display *dpy, XEvent *eventPtr, - int expect, int *code)); -static int IsSerialName __ARGS((char *name)); - -/* Private variables */ -static Atom registryProperty = None; -static Atom commProperty = None; -static Window commWindow = None; -static int got_x_error = FALSE; - - -/* - * sendToVim -- - * Send to an instance of Vim via the X display. - * - * Results: - * A string with the result or NULL. Caller must free if non-NULL - */ - - char * -sendToVim(dpy, name, cmd, asKeys, code) - Display *dpy; /* Where to send. */ - char *name; /* Where to send. */ - char *cmd; /* What to send. */ - int asKeys; /* Interpret as keystrokes or expr ? */ - int *code; /* Return code. 0 => OK */ -{ - Window w; - Atom *plist; - XErrorHandler old_handler; -#define STATIC_SPACE 500 - char *property, staticSpace[STATIC_SPACE]; - int length; - int res; - static int serial = 0; /* Running count of sent commands. - * Used to give each command a - * different serial number. */ - XEvent event; - XPropertyEvent *e = (XPropertyEvent *)&event; - time_t start; - char *result; - char *loosename = NULL; - - if (commProperty == None && dpy != NULL) - { - if (SendInit(dpy) < 0) - return NULL; - } - - /* - * Bind the server name to a communication window. - * - * Find any survivor with a serialno attached to the name if the - * original registrant of the wanted name is no longer present. - * - * Delete any lingering names from dead editors. - */ - - old_handler = XSetErrorHandler(x_error_check); - while (TRUE) - { - got_x_error = FALSE; - w = LookupName(dpy, name, 0, &loosename); - /* Check that the window is hot */ - if (w != None) - { - plist = XListProperties(dpy, w, &res); - XSync(dpy, False); - if (plist != NULL) - XFree(plist); - if (got_x_error) - { - LookupName(dpy, loosename ? loosename : name, - /*DELETE=*/TRUE, NULL); - continue; - } - } - break; - } - if (w == None) - { - fprintf(stderr, "no registered server named %s\n", name); - return NULL; - } - else if (loosename != NULL) - name = loosename; - - /* - * Send the command to target interpreter by appending it to the - * comm window in the communication window. - */ - - length = strlen(name) + strlen(cmd) + 10; - if (length <= STATIC_SPACE) - property = staticSpace; - else - property = (char *) malloc((unsigned) length); - - serial++; - sprintf(property, "%c%c%c-n %s%c-s %s", - 0, asKeys ? 'k' : 'c', 0, name, 0, cmd); - if (name == loosename) - free(loosename); - if (!asKeys) - { - /* Add a back reference to our comm window */ - sprintf(property + length, "%c-r %x %d", 0, (uint) commWindow, serial); - length += strlen(property + length + 1) + 1; - } - - res = AppendPropCarefully(dpy, w, commProperty, property, length + 1); - if (length > STATIC_SPACE) - free(property); - if (res < 0) - { - fprintf(stderr, "Failed to send command to the destination program\n"); - return NULL; - } - - if (asKeys) /* There is no answer for this - Keys are sent async */ - return NULL; - - - /* - * Enter a loop processing X events & pooling chars until we see the result - */ - -#define SEND_MSEC_POLL 50 - - time(&start); - while ((time((time_t *) 0) - start) < 60) - { - /* Look out for the answer */ -#ifndef HAVE_SELECT - struct pollfd fds; - - fds.fd = ConnectionNumber(dpy); - fds.events = POLLIN; - if (poll(&fds, 1, SEND_MSEC_POLL) < 0) - break; -#else - fd_set fds; - struct timeval tv; - - tv.tv_sec = 0; - tv.tv_usec = SEND_MSEC_POLL * 1000; - FD_ZERO(&fds); - FD_SET(ConnectionNumber(dpy), &fds); - if (select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &tv) < 0) - break; -#endif - while (XEventsQueued(dpy, QueuedAfterReading) > 0) - { - XNextEvent(dpy, &event); - if (event.type == PropertyNotify && e->window == commWindow) - if ((result = SendEventProc(dpy, &event, serial, code)) != NULL) - return result; - } - } - return NULL; -} - - -/* - * SendInit -- - * This procedure is called to initialize the - * communication channels for sending commands and - * receiving results. - */ - - static int -SendInit(dpy) - Display *dpy; -{ - XErrorHandler old_handler; - - /* - * Create the window used for communication, and set up an - * event handler for it. - */ - old_handler = XSetErrorHandler(x_error_check); - got_x_error = FALSE; - - commProperty = XInternAtom(dpy, "Comm", False); - /* Change this back to "InterpRegistry" to talk to tk processes */ - registryProperty = XInternAtom(dpy, "VimRegistry", False); - - if (commWindow == None) - { - commWindow = - XCreateSimpleWindow(dpy, XDefaultRootWindow(dpy), - getpid(), 0, 10, 10, 0, - WhitePixel(dpy, DefaultScreen(dpy)), - WhitePixel(dpy, DefaultScreen(dpy))); - XSelectInput(dpy, commWindow, PropertyChangeMask); - } - - XSync(dpy, False); - (void) XSetErrorHandler(old_handler); - - return got_x_error ? -1 : 0; -} - -/* - * LookupName -- - * Given an interpreter name, see if the name exists in - * the interpreter registry for a particular display. - * - * Results: - * If the given name is registered, return the ID of - * the window associated with the name. If the name - * isn't registered, then return 0. - */ - - static Window -LookupName(dpy, name, delete, loose) - Display *dpy; /* Display whose registry to check. */ - char *name; /* Name of an interpreter. */ - int delete; /* If non-zero, delete info about name. */ - char **loose; /* Do another search matching -999 if not found - Return result here if a match is found */ -{ - unsigned char *regProp, *entry; - unsigned char *p; - int result, actualFormat; - unsigned long numItems, bytesAfter; - Atom actualType; - Window returnValue; - - /* - * Read the registry property. - */ - - regProp = NULL; - result = XGetWindowProperty(dpy, RootWindow(dpy, 0), registryProperty, 0, - MAX_PROP_WORDS, False, XA_STRING, &actualType, - &actualFormat, &numItems, &bytesAfter, - ®Prop); - - if (actualType == None) - return 0; - - /* - * If the property is improperly formed, then delete it. - */ - - if ((result != Success) || (actualFormat != 8) || (actualType != XA_STRING)) - { - if (regProp != NULL) - XFree(regProp); - XDeleteProperty(dpy, RootWindow(dpy, 0), registryProperty); - return 0; - } - - /* - * Scan the property for the desired name. - */ - - returnValue = None; - entry = NULL; /* Not needed, but eliminates compiler warning. */ - for (p = regProp; (p - regProp) < numItems; ) - { - entry = p; - while ((*p != 0) && (!isspace(*p))) - p++; - if ((*p != 0) && (strcasecmp(name, p + 1) == 0)) - { - sscanf(entry, "%x", (uint*) &returnValue); - break; - } - while (*p != 0) - p++; - p++; - } - - if (loose != NULL && returnValue == None && !IsSerialName(name)) - { - for (p = regProp; (p - regProp) < numItems; ) - { - entry = p; - while ((*p != 0) && (!isspace(*p))) - p++; - if ((*p != 0) && IsSerialName(p + 1) - && (strncmp(name, p + 1, strlen(name)) == 0)) - { - sscanf(entry, "%x", (uint*) &returnValue); - *loose = strdup(p + 1); - break; - } - while (*p != 0) - p++; - p++; - } - } - - /* - * Delete the property, if that is desired (copy down the - * remainder of the registry property to overlay the deleted - * info, then rewrite the property). - */ - - if ((delete) && (returnValue != None)) - { - int count; - - while (*p != 0) - p++; - p++; - count = numItems - (p-regProp); - if (count > 0) - memcpy(entry, p, count); - XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING, - 8, PropModeReplace, regProp, - (int) (numItems - (p-entry))); - XSync(dpy, False); - } - - XFree(regProp); - return returnValue; -} - - static char * -SendEventProc(dpy, eventPtr, expected, code) - Display *dpy; - XEvent *eventPtr; /* Information about event. */ - int expected; /* The one were waiting for */ - int *code; /* Return code. 0 => OK */ -{ - unsigned char *propInfo; - unsigned char *p; - int result, actualFormat; - int retCode; - unsigned long numItems, bytesAfter; - Atom actualType; - - if ((eventPtr->xproperty.atom != commProperty) - || (eventPtr->xproperty.state != PropertyNewValue)) - { - return; - } - - /* - * Read the comm property and delete it. - */ - - propInfo = NULL; - result = XGetWindowProperty(dpy, commWindow, commProperty, 0, - MAX_PROP_WORDS, True, XA_STRING, &actualType, - &actualFormat, &numItems, &bytesAfter, - &propInfo); - - /* - * If the property doesn't exist or is improperly formed - * then ignore it. - */ - - if ((result != Success) || (actualType != XA_STRING) - || (actualFormat != 8)) - { - if (propInfo != NULL) - { - XFree(propInfo); - } - return; - } - - /* - * Several commands and results could arrive in the property at - * one time; each iteration through the outer loop handles a - * single command or result. - */ - - for (p = propInfo; (p - propInfo) < numItems; ) - { - /* - * Ignore leading NULs; each command or result starts with a - * NUL so that no matter how badly formed a preceding command - * is, we'll be able to tell that a new command/result is - * starting. - */ - - if (*p == 0) - { - p++; - continue; - } - - if ((*p == 'r') && (p[1] == 0)) - { - int serial, gotSerial; - char *res; - - /* - * This is a reply to some command that we sent out. Iterate - * over all of its options. Stop when we reach the end of the - * property or something that doesn't look like an option. - */ - - p += 2; - gotSerial = 0; - res = ""; - retCode = 0; - while (((p-propInfo) < numItems) && (*p == '-')) - { - switch (p[1]) - { - case 'r': - if (p[2] == ' ') - res = p + 3; - break; - case 's': - if (sscanf(p + 2, " %d", &serial) == 1) - gotSerial = 1; - break; - case 'c': - if (sscanf(p + 2, " %d", &retCode) != 1) - retCode = 0; - break; - } - while (*p != 0) - p++; - p++; - } - - if (!gotSerial) - continue; - - if (code != NULL) - *code = retCode; - return serial == expected ? strdup(res) : NULL; - } - else - { - /* - * Didn't recognize this thing. Just skip through the next - * null character and try again. - * Also, throw away commands that we cant process anyway. - */ - - while (*p != 0) - p++; - p++; - } - } - XFree(propInfo); -} - -/* - * AppendPropCarefully -- - * - * Append a given property to a given window, but set up - * an X error handler so that if the append fails this - * procedure can return an error code rather than having - * Xlib panic. - * - * Return: - * 0 on OK - -1 on error - *-------------------------------------------------------------- - */ - - static int -AppendPropCarefully(dpy, window, property, value, length) - Display *dpy; /* Display on which to operate. */ - Window window; /* Window whose property is to - * be modified. */ - Atom property; /* Name of property. */ - char *value; /* Characters to append to property. */ - int length; /* How much to append */ -{ - XErrorHandler old_handler; - - old_handler = XSetErrorHandler(x_error_check); - got_x_error = FALSE; - XChangeProperty(dpy, window, property, XA_STRING, 8, - PropModeAppend, value, length); - XSync(dpy, False); - (void) XSetErrorHandler(old_handler); - return got_x_error ? -1 : 0; -} - - -/* - * Another X Error handler, just used to check for errors. - */ -/* ARGSUSED */ - static int -x_error_check(dpy, error_event) - Display *dpy; - XErrorEvent *error_event; -{ - got_x_error = TRUE; - return 0; -} - -/* - * Check if "str" looks like it had a serial number appended. - * Actually just checks if the name ends in a digit. - */ - static int -IsSerialName(str) - char *str; -{ - int len = strlen(str); - - return (len > 1 && isdigit(str[len - 1])); -}