# HG changeset patch # User Katsumi Yamaoka # Date 1280052968 0 # Node ID 1b2674e70efe4ecb3ac902e34bb5c40f57e91905 # Parent 4714f535e45045c34e13d2a019b2609f1588e4d7# Parent 2fe88640ebd3c0308493f2bacc191b8efd280377 Merge from mainline. diff -r 4714f535e450 -r 1b2674e70efe .bzrignore --- a/.bzrignore Sat Jul 24 12:18:05 2010 +0000 +++ b/.bzrignore Sun Jul 25 10:16:08 2010 +0000 @@ -1,12 +1,13 @@ +./_dir-locals.el ./bin ./BIN +./config.log +./config.status ./data ./etc/icons ./lock +./README.W32 ./site-lisp -./_dir-locals.el -./config.log -./config.status oo oo-spd *.dSYM @@ -33,16 +34,16 @@ leim/changed.misc leim/changed.tit lib-src/stamp-* -lib-src/ctags.c -lib-src/echolisp.tmp -lib-src/getopt.h lib-src/b2m lib-src/ctags +lib-src/ctags.c lib-src/digest-doc lib-src/ebrowse +lib-src/echolisp.tmp lib-src/emacsclient lib-src/etags lib-src/fakemail +lib-src/getopt.h lib-src/hexl lib-src/make-docfile lib-src/movemail diff -r 4714f535e450 -r 1b2674e70efe .gitignore --- a/.gitignore Sat Jul 24 12:18:05 2010 +0000 +++ b/.gitignore Sun Jul 25 10:16:08 2010 +0000 @@ -1,6 +1,7 @@ autom4te.cache makefile *~ +/README.W32 /bin/ /site-lisp/ diff -r 4714f535e450 -r 1b2674e70efe ChangeLog --- a/ChangeLog Sat Jul 24 12:18:05 2010 +0000 +++ b/ChangeLog Sun Jul 25 10:16:08 2010 +0000 @@ -1,3 +1,11 @@ +2010-07-24 Ken Brown + + * configure.in (LINKER, LIB_GCC): Remove cygwin special cases (Bug#6715) + +2010-07-24 Juanma Barranquero + + * .bzrignore, .gitignore: Ignore README.W32 on the root directory. + 2010-07-24 Ken Brown (tiny change) * configure.in (START_FILES) [cygwin]: Set to pre-crt0.o (Bug#6715). diff -r 4714f535e450 -r 1b2674e70efe admin/ChangeLog --- a/admin/ChangeLog Sat Jul 24 12:18:05 2010 +0000 +++ b/admin/ChangeLog Sun Jul 25 10:16:08 2010 +0000 @@ -1,3 +1,10 @@ +2010-07-24 Christoph Scholtes + + * admin.el: Write version number to nt/makefile.w32-in. + * nt/makedist.bat: Remove; replaced with `zipdist.bat' + in the nt/ directory. + * nt/README.W32: Relocate to nt/ directory. + 2010-07-11 Andreas Schwab * CPP-DEFINES (HAVE_INDEX, HAVE_RINDEX): Remove. diff -r 4714f535e450 -r 1b2674e70efe admin/admin.el --- a/admin/admin.el Sat Jul 24 12:18:05 2010 +0000 +++ b/admin/admin.el Sun Jul 25 10:16:08 2010 +0000 @@ -95,6 +95,9 @@ (set-version-in-file root "lib-src/makefile.w32-in" version (rx (and "VERSION" (0+ space) "=" (0+ space) (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "nt/makefile.w32-in" version + (rx (and "VERSION" (0+ space) "=" (0+ space) + (submatch (1+ (in "0-9.")))))) ;; nt/emacs.rc also contains the version number, but in an awkward ;; format. It must contain four components, separated by commas, and ;; in two places those commas are followed by space, in two other diff -r 4714f535e450 -r 1b2674e70efe admin/nt/README.W32 --- a/admin/nt/README.W32 Sat Jul 24 12:18:05 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,264 +0,0 @@ -Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. -See the end of the file for license conditions. - - Emacs for Windows - - This README file describes how to set up and run a precompiled - version of GNU Emacs for Windows. This distribution can be found on - the ftp.gnu.org server and its mirrors: - - ftp://ftp.gnu.org/gnu/emacs/windows/ - - This server contains other distributions, including the full Emacs - source distribution and a barebin distribution which can be installed - over it, as well as older releases of Emacs for Windows. - - Answers to frequently asked questions, and further information about - this port of GNU Emacs and related software packages can be found via - http: - - http://www.gnu.org/software/emacs/windows/ - -* Preliminaries - - Along with this file should be six subdirectories (bin, etc, info, - lisp, leim, site-lisp). If you have downloaded the barebin - distribution, then it will contain only the bin directory and the - built in documentation in etc/DOC-X, the rest of the subdirectories - are in the src distribution, which the barebin distribution is - designed to be used with. - -* Setting up Emacs - - To install Emacs, simply unpack all the files into a directory of - your choice, but note that you might encounter minor problems if - there is a space anywhere in the directory name. To complete the - installation process, you can optionally run the program addpm.exe - in the bin subdirectory. This will put an icon for Emacs in the - Start Menu under "Start -> Programs -> Gnu Emacs". - - Some users have reported that the Start Menu item is not created for - them. If this happens, just create your own shortcut to runemacs.exe, - eg. by dragging it on to the desktop or the Start button. - - Note that running addpm is now an optional step; Emacs is able to - locate all of its files without needing any information to be set in - the environment or the registry, although such settings will still - be obeyed if present. This is convenient for running Emacs on a - machine which disallows registry changes, or on which software - should not be installed. For instance, you can now run Emacs - directly from a CD or USB flash drive without copying or installing - anything on the machine itself. - -* Starting Emacs - - To run Emacs, simply select Emacs from the Start Menu, or invoke - runemacs.exe directly from Explorer or from a command prompt. This - will start Emacs in its default GUI mode, ready to use. If you have - never used Emacs before, you should follow the tutorial at this - point (select Emacs Tutorial from the Help menu), since Emacs is - quite different from ordinary Windows applications in many respects. - - If you want to use Emacs in tty or character mode within a command - window, you can start it by typing "emacs -nw" at the command prompt. - (Obviously, you need to ensure that the Emacs bin subdirectory is in - your PATH first, or specify the path to emacs.exe.) The -nw - (non-windowed) mode of operation is most useful if you have a telnet - server on your machine, allowing you to run Emacs remotely. - -* EXE files included - - Emacs comes with the following executable files in the bin directory. - - + emacs.exe - The main Emacs executable. As this is designed to run - as both a text-mode application (emacs -nw) and as a GUI application, - it will pop up a command prompt window if run directly from Explorer. - - + runemacs.exe - A wrapper for running Emacs as a GUI application - without popping up a command prompt window. - - + emacsclient.exe - A command-line client program that can - communicate with a running Emacs process. See the `Emacs Server' - node of the Emacs manual. - - + emacsclientw.exe - A version of emacsclient that does not open - a command-line window. - - + addpm.exe - A basic installer that creates Start Menu icons for Emacs. - Running this is optional. - - + cmdproxy.exe - Used internally by Emacs to work around problems with - the native shells in various versions of Windows. - - + ctags.exe, etags.exe - Tools for generating tag files. See the - `Tags' node of the Emacs manual. - - + ebrowse.exe - A tool for generating C++ browse information. See the - `Ebrowse' manual. - - + ddeclient.exe - A tool for interacting with DDE servers. - - + hexl.exe - A tool for converting files to hex dumps. See the - `Editing Binary Files' node of the Emacs manual. - - + movemail.exe - A helper application for safely moving mail from - a mail spool or POP server to a local user mailbox. See the - `Movemail' node of the Emacs manual. - - + digest-doc.exe, sorted-doc.exe - Tools for rebuilding the - built-in documentation. - -* Image support - - Emacs has built in support for XBM and PPM/PGM/PBM images, and the - libXpm library is bundled, providing XPM support (required for color - toolbar icons and splash screen). Source for libXpm should be available - on the same place as you got this binary distribution from. The version - of libXpm bundled with this version of Emacs is 3.5.7, based on x.org's - libXpm library from X11R7.3. - - Emacs can also support some other image formats with appropriate - libraries. These libraries are all available as part of GTK, or from - gnuwin32.sourceforge.net. Emacs will find them if the directory they - are installed in is on the PATH. - - PNG: requires the PNG reference library 1.2 or later, which will - be named libpng13d.dll, libpng13.dll, libpng12d.dll, libpng12.dll - or libpng.dll. LibPNG requires zlib, which should come from the same - source as you got libpng. - - JPEG: requires the Independant JPEG Group's libjpeg 6b or later, - which will be called jpeg62.dll, libjpeg.dll, jpeg-62.dll or jpeg.dll. - - TIFF: requires libTIFF 3.0 or later, which will be called libtiff3.dll - or libtiff.dll. - - GIF: requires libungif or giflib 4.1 or later, which will be - called giflib4.dll, libungif4.dll or libungif.dll. - - In addition, Emacs can be compiled to support SVG. This precompiled - distribution has not been compiled that way, since the SVG library - or one or more of its extensive dependencies appear to be - unreliable under Windows. See nt/INSTALL in the src distribution if - you wish to compile Emacs with SVG support. - -* Uninstalling Emacs - - If you should need to uninstall Emacs, simply delete all the files - and subdirectories from the directory where it was unpacked (Emacs - does not install or update any files in system directories or - anywhere else). If you ran the addpm.exe program to create the - registry entries and the Start menu icon, then you can remove the - registry entries using regedit. All of the settings are written - under the Software\GNU\Emacs key in HKEY_LOCAL_MACHINE, or if you - didn't have administrator privileges when you installed, the same - key in HKEY_CURRENT_USER. Just delete the whole Software\GNU\Emacs - key. - - The Start menu entry can be removed by right-clicking on the Task bar - and selecting Properties, then using the Remove option on the Start - Menu Programs page. (If you installed under an account with - administrator privileges, then you need to click the Advanced button - and look for the Gnu Emacs menu item under All Users.) - -* Troubleshooting - - Unpacking the distributions - - If you encounter trouble trying to run Emacs, there are a number of - possible causes. Check the following for indications that the - distribution was not corrupted by the tools used to unpack it: - - * Be sure to disable CR/LF translation or the executables will - be unusable. Older versions of WinZipNT would enable this - translation by default. If you are using WinZipNT, disable it. - (I don't have WinZipNT myself, and I do not know the specific - commands necessary to disable it.) - - * Check that filenames were not truncated to 8.3. For example, - there should be a file lisp\abbrevlist.elc; if this has been - truncated to abbrevli.elc, your distribution has been corrupted - while unpacking and Emacs will not start. - - If you believe you have unpacked the distributions correctly and are - still encountering problems, see the section on Further Information - below. - - Virus scanners - - Some virus scanners interfere with Emacs' use of subprocesses. If you - are unable to use subprocesses and you use Dr. Solomon's WinGuard or - McAfee's Vshield, turn off "Scan all files" (WinGuard) or "boot sector - scanning" (McAfee exclusion properties). - -* Further information - - If you have access to the World Wide Web, I would recommend pointing - your favorite web browser to the following document (if you haven't - already): - - http://www.gnu.org/software/emacs/windows/ - - This document serves as an FAQ and a source for further information - about the Windows port and related software packages. - - In addition to the FAQ, there is a mailing list for discussing issues - related to the Windows port of Emacs. For information about the - list, see this Web page: - - http://lists.gnu.org/mailman/listinfo/help-emacs-windows - - To ask questions on the mailing list, send email to - help-emacs-windows@gnu.org. (You don't need to subscribe for that.) - To subscribe to the list or unsubscribe from it, fill the form you - find at http://lists.gnu.org/mailman/listinfo/help-emacs-windows as - explained there. - - Another valuable source of information and help which should not be - overlooked is the various Usenet news groups dedicated to Emacs. - These are particularly good for help with general issues which aren't - specific to the Windows port of Emacs. The main news groups to use - for seeking help are: - - gnu.emacs.help - comp.emacs - - There are also fairly regular postings and announcements of new or - updated Emacs packages on this group: - - gnu.emacs.sources - -* Reporting bugs - - If you encounter a bug in this port of Emacs, we would like to hear - about it. First check the FAQ on the web page above to see if the bug - is already known and if there are any workarounds. Then check whether - the bug has something to do with code in your .emacs file, e.g. by - invoking Emacs with the "-Q" option. - - If you decide that it is a bug in Emacs, use the built in bug - reporting facility to report it (from the menu; Help -> Send Bug Report). - If you have not yet configured Emacs for mail, then when you press - C-c C-c to send the report, it will ask you to paste the text of the - report into your mail client. If the bug is related to subprocesses, - also specify which shell you are using (e.g., include the values of - `shell-file-name' and `explicit-shell-file-name' in your message). - - Enjoy! - - -This file is part of GNU Emacs. - -GNU Emacs is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -GNU Emacs 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. - -You should have received a copy of the GNU General Public License -along with GNU Emacs. If not, see . diff -r 4714f535e450 -r 1b2674e70efe admin/nt/makedist.bat --- a/admin/nt/makedist.bat Sat Jul 24 12:18:05 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -@echo off - -rem Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -rem Free Software Foundation, Inc. - -rem Cannot use brackets in andrewi's email below because -rem older Windows shells will treat that as redirection. - -rem Author: Andrew Innes andrewi@gnu.org - -rem This file is part of GNU Emacs. - -rem GNU Emacs is free software: you can redistribute it and/or modify -rem it under the terms of the GNU General Public License as published by -rem the Free Software Foundation, either version 3 of the License, or -rem (at your option) any later version. - -rem GNU Emacs is distributed in the hope that it will be useful, -rem but WITHOUT ANY WARRANTY; without even the implied warranty of -rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -rem GNU General Public License for more details. - -rem You should have received a copy of the GNU General Public License -rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/. - - -if (%3) == () goto usage -if not (%4) == () goto %4 - -:bin - -echo Create full bin distribution -copy %3\README.W32 emacs-%1\README.W32 -rem Info-ZIP zip seems to be broken on Windows. -rem It always writes to zip.zip and treats the zipfile argument as one -rem of the files to go in it. -rem zip -9 -r %2-bin-i386 emacs-%1/BUGS emacs-%1/COPYING emacs-%1/README emacs-%1/README.W32 emacs-%1/INSTALL emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim -x emacs.mdp *.pdb *.opt *~ CVS -7z a -tZIP -mx=9 -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory %2-bin-i386.zip emacs-%1/BUGS emacs-%1/COPYING emacs-%1/README emacs-%1/README.W32 emacs-%1/INSTALL emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim emacs-%1/site-lisp -del emacs-%1\README.W32 -if not (%4) == () goto end - -:barebin -echo Create archive with just the basic binaries and generated files -echo (the user needs to unpack the full source distribution for -echo everything else) -copy %3\README.W32 emacs-%1\README.W32 -rem Info-ZIP zip seems to be broken on Windows. -rem It always writes to zip.zip and treats the zipfile argument as one -rem of the files to go in it. -rem zip -9 -r %2-barebin-i386.zip emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc/DOC-X emacs-%1/COPYING -7z a -tZIP -mx=9 %2-barebin-i386.zip emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc/DOC-X emacs-%1/COPYING -del emacs-%1\README.W32 -if not (%4) == () goto end - -goto end - -:usage -echo Generate source and binary distributions of emacs. -echo Usage: %0 emacs-version dist-basename distfiles [bin,barebin] -echo (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles) -:end - -goto skipArchTag - arch-tag: 6e2ddd92-c1c9-4992-b6b5-207aaab72f68 -:skipArchTag diff -r 4714f535e450 -r 1b2674e70efe configure --- a/configure Sat Jul 24 12:18:05 2010 +0000 +++ b/configure Sun Jul 25 10:16:08 2010 +0000 @@ -14149,9 +14149,7 @@ ORDINARY_LINK= case "$opsys" in ## gnu: GNU needs its own crt0. - aix4-2|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;; - - cygwin) LINKER="\$(CC)" ;; + aix4-2|cygwin|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;; ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the ## library search parth, i.e. it won't search /usr/lib for libc and @@ -14206,8 +14204,7 @@ if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then case "$opsys" in - ## cygwin: don't link against static libgcc. - cygwin|freebsd|netbsd|openbsd) LIB_GCC= ;; + freebsd|netbsd|openbsd) LIB_GCC= ;; gnu-*) ## armin76@gentoo.org reported that the lgcc_s flag is necessary to diff -r 4714f535e450 -r 1b2674e70efe configure.in --- a/configure.in Sat Jul 24 12:18:05 2010 +0000 +++ b/configure.in Sun Jul 25 10:16:08 2010 +0000 @@ -3326,9 +3326,7 @@ ORDINARY_LINK= case "$opsys" in ## gnu: GNU needs its own crt0. - aix4-2|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;; - - cygwin) LINKER="\$(CC)" ;; + aix4-2|cygwin|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;; ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the ## library search parth, i.e. it won't search /usr/lib for libc and @@ -3381,8 +3379,7 @@ if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then case "$opsys" in - ## cygwin: don't link against static libgcc. - cygwin|freebsd|netbsd|openbsd) LIB_GCC= ;; + freebsd|netbsd|openbsd) LIB_GCC= ;; gnu-*) ## armin76@gentoo.org reported that the lgcc_s flag is necessary to diff -r 4714f535e450 -r 1b2674e70efe etc/ChangeLog --- a/etc/ChangeLog Sat Jul 24 12:18:05 2010 +0000 +++ b/etc/ChangeLog Sun Jul 25 10:16:08 2010 +0000 @@ -1,3 +1,8 @@ +2010-07-24 Christoph Scholtes + + * NEWS: Document new --distfiles configure.bat option and + `dist' make target on Windows. + 2010-07-20 Juanma Barranquero * PROBLEMS: Add note about use of backslashes in Windows paths. diff -r 4714f535e450 -r 1b2674e70efe etc/NEWS --- a/etc/NEWS Sat Jul 24 12:18:05 2010 +0000 +++ b/etc/NEWS Sun Jul 25 10:16:08 2010 +0000 @@ -432,6 +432,12 @@ ** New configure.bat option --enable-checking builds emacs with extra runtime checks. +** New configure.bat option --distfiles to specify files to be + included in binary distribution + +** New make target `dist' to create binary disttribution for Windows + platform + ---------------------------------------------------------------------- This file is part of GNU Emacs. diff -r 4714f535e450 -r 1b2674e70efe lib-src/ChangeLog --- a/lib-src/ChangeLog Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/ChangeLog Sun Jul 25 10:16:08 2010 +0000 @@ -1,3 +1,26 @@ +2010-07-25 Juanma Barranquero + + * emacsclient.c (getcwd): Fix previous change: make getcwd + conditional on HAVE_GETCWD and declare with the correct POSIX + profile (for some reason MinGW headers define its 2nd arg as int, + not size_t; but getcwd is not used on Windows nonetheless). + +2010-07-25 Juanma Barranquero + + * emacsclient.c (getcwd, w32_getenv): + * ntlib.h (getlogin, getuid, getegid, getgid): Fix prototypes. + +2010-07-24 Dan Nicolaescu + + * update-game-score.c (usage): Add NO_RETURN specifier. + * movemail.c (fatal, pfatal_with_name, pfatal_and_delete): + * make-docfile.c (fatal): + * hexl.c (usage): + * fakemail.c (fatal): + * etags.c (fatal, suggest_asking_for_help, pfatal): + * emacsclient.c (fatal): + * b2m.c (fatal): Likewise. + 2010-07-23 Juanma Barranquero * make-docfile.c (write_c_args): Correctly handle prefixes of "defalt". diff -r 4714f535e450 -r 1b2674e70efe lib-src/b2m.c --- a/lib-src/b2m.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/b2m.c Sun Jul 25 10:16:08 2010 +0000 @@ -70,7 +70,7 @@ long *xrealloc (char *ptr, unsigned int size); char *concat (char *s1, char *s2, char *s3); long readline (struct linebuffer *linebuffer, register FILE *stream); -void fatal (char *message); +void fatal (char *message) NO_RETURN; /* * xnew -- allocate storage. SYNOPSIS: Type *xnew (int n, Type); diff -r 4714f535e450 -r 1b2674e70efe lib-src/emacsclient.c --- a/lib-src/emacsclient.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/emacsclient.c Sun Jul 25 10:16:08 2010 +0000 @@ -82,10 +82,12 @@ char *getenv (const char *), *getwd (char *); -char *(getcwd) (); +#ifdef HAVE_GETCWD +char *(getcwd) (char *, size_t); +#endif #ifdef WINDOWSNT -char *w32_getenv (); +char *w32_getenv (char *); #define egetenv(VAR) w32_getenv(VAR) #else #define egetenv(VAR) getenv(VAR) @@ -158,6 +160,8 @@ int emacs_pid = 0; void print_help_and_exit (void) NO_RETURN; +void fail (void) NO_RETURN; + struct option longopts[] = { @@ -400,7 +404,7 @@ /* On Windows 7 and later, we need to set the user model ID to associate emacsclient launched files with Emacs frames in the UI. */ - shell = LoadLibrary("shell32.dll"); + shell = LoadLibrary ("shell32.dll"); if (shell) { set_user_model @@ -430,7 +434,7 @@ nonconsole apps. Testing for the console title seems to work. */ window_app = (GetConsoleTitleA (szTitle, MAX_PATH) == 0); if (window_app) - InitCommonControls(); + InitCommonControls (); } return window_app; @@ -481,7 +485,7 @@ void message (int is_error, char *message, ...) { - char msg [2048]; + char msg[2048]; va_list args; va_start (args, message); @@ -1468,7 +1472,7 @@ pid_t w; w = waitpid (dpid, &status, WUNTRACED | WCONTINUED); - if ((w == -1) || !WIFEXITED (status) || WEXITSTATUS(status)) + if ((w == -1) || !WIFEXITED (status) || WEXITSTATUS (status)) { message (TRUE, "Error: Could not start the Emacs daemon\n"); exit (EXIT_FAILURE); diff -r 4714f535e450 -r 1b2674e70efe lib-src/etags.c --- a/lib-src/etags.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/etags.c Sun Jul 25 10:16:08 2010 +0000 @@ -406,9 +406,9 @@ static void free_regexps (void); static void regex_tag_multiline (void); static void error (const char *, const char *); -static void suggest_asking_for_help (void); -void fatal (char *, char *); -static void pfatal (char *); +static void suggest_asking_for_help (void) NO_RETURN; +void fatal (char *, char *) NO_RETURN; +static void pfatal (char *) NO_RETURN; static void add_node (node *, node **); static void init (void); diff -r 4714f535e450 -r 1b2674e70efe lib-src/fakemail.c --- a/lib-src/fakemail.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/fakemail.c Sun Jul 25 10:16:08 2010 +0000 @@ -147,6 +147,8 @@ static stream_list the_streams; static boolean no_problems = true; +static void fatal (char *s1) NO_RETURN; + extern FILE *popen (const char *, const char *); extern int fclose (FILE *), pclose (FILE *); diff -r 4714f535e450 -r 1b2674e70efe lib-src/hexl.c --- a/lib-src/hexl.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/hexl.c Sun Jul 25 10:16:08 2010 +0000 @@ -49,7 +49,7 @@ int group_by = DEFAULT_GROUPING; char *progname; -void usage(void); +void usage(void) NO_RETURN; int main (int argc, char **argv) diff -r 4714f535e450 -r 1b2674e70efe lib-src/make-docfile.c --- a/lib-src/make-docfile.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/make-docfile.c Sun Jul 25 10:16:08 2010 +0000 @@ -70,6 +70,7 @@ int scan_file (char *filename); int scan_lisp_file (char *filename, char *mode); int scan_c_file (char *filename, char *mode); +void fatal (char *s1, char *s2) NO_RETURN; #ifdef MSDOS /* s/msdos.h defines this as sys_chdir, but we're not linking with the diff -r 4714f535e450 -r 1b2674e70efe lib-src/movemail.c --- a/lib-src/movemail.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/movemail.c Sun Jul 25 10:16:08 2010 +0000 @@ -147,10 +147,10 @@ char *strerror (int); #endif -static void fatal (char *s1, char *s2, char *s3); +static void fatal (char *s1, char *s2, char *s3) NO_RETURN; static void error (char *s1, char *s2, char *s3); -static void pfatal_with_name (char *name); -static void pfatal_and_delete (char *name); +static void pfatal_with_name (char *name) NO_RETURN; +static void pfatal_and_delete (char *name) NO_RETURN; static char *concat (char *s1, char *s2, char *s3); static long *xmalloc (unsigned int size); #ifdef MAIL_USE_POP diff -r 4714f535e450 -r 1b2674e70efe lib-src/ntlib.h --- a/lib-src/ntlib.h Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/ntlib.h Sun Jul 25 10:16:08 2010 +0000 @@ -30,14 +30,14 @@ #ifdef sleep #undef sleep #endif -void sleep(unsigned long seconds); +void sleep (unsigned long seconds); char *getwd (char *dir); -int getppid(void); -char * getlogin (); +int getppid (void); +char * getlogin (void); char * cuserid (char * s); -unsigned getuid (); -unsigned getegid (); -unsigned getgid (); +unsigned getuid (void); +unsigned getegid (void); +unsigned getgid (void); int setuid (unsigned uid); int setegid (unsigned gid); char * getpass (const char * prompt); diff -r 4714f535e450 -r 1b2674e70efe lib-src/update-game-score.c --- a/lib-src/update-game-score.c Sat Jul 24 12:18:05 2010 +0000 +++ b/lib-src/update-game-score.c Sun Jul 25 10:16:08 2010 +0000 @@ -60,6 +60,8 @@ extern char *optarg; extern int optind, opterr; +int usage (int err) NO_RETURN; + #define MAX_ATTEMPTS 5 #define MAX_SCORES 200 #define MAX_DATA_LEN 1024 diff -r 4714f535e450 -r 1b2674e70efe nt/ChangeLog --- a/nt/ChangeLog Sat Jul 24 12:18:05 2010 +0000 +++ b/nt/ChangeLog Sun Jul 25 10:16:08 2010 +0000 @@ -1,3 +1,30 @@ +2010-07-25 Christoph Scholtes + + Build binary distros on Windows using emacs-VERSION as root dir name. + + * makefile.w32-in: Copy README.W32 to installation directory + during `make install'. Remove README.W32 with `distclean' (in + case Emacs was installed in place). Use temporary directory to + create distribution zip files in `dist' target. + * zipdist.bat: Simplify code using temporary directory. + +2010-07-25 Juanma Barranquero + + * runemacs.c (set_user_model_id): Fix prototype. + +2010-07-24 Christoph Scholtes + + New make target for Windows platform: make dist (bug#6602) + + * INSTALL: Document new dist target and add section about + creating binary distributions. + * README.W32: Relocate from admin/nt/ directory. + * configure.bat: New parameter `--distfiles'. + * makefile.w32-in: Add version number, new target `dist'. + Add new target `install-shortcuts'. + * zipdist.bat: New file; create zipped binary distribution, + replaces admin/nt/makedist.bat. + 2010-07-21 Juanma Barranquero * INSTALL: Add note about backslashes in Windows paths. diff -r 4714f535e450 -r 1b2674e70efe nt/INSTALL --- a/nt/INSTALL Sat Jul 24 12:18:05 2010 +0000 +++ b/nt/INSTALL Sun Jul 25 10:16:08 2010 +0000 @@ -406,6 +406,9 @@ Removes the installed files in the bin subdirectory in addition to the files removed by make cleanall. + make dist + Builds Emacs from the available sources and pre-compiled lisp files. + Packages Emacs binaries as full distribution and barebin distribution. The following targets are intended only for use with the Bazaar sources. @@ -428,6 +431,32 @@ bootstrap to rebuild. Occasionally it may be necessary to run this target after an update. +* Creating binary distributions + + Binary distributions (full and barebin distributions) can be + automatically built and packaged from source tarballs or a bzr + checkout. + + When building Emacs binary distributions, the --distfiles argument + to configure.bat specifies files to be included in the bin directory + of the binary distributions. This is intended for libraries that are + not built as part of Emacs, e.g. image libraries. + + For example, specifying + + --distfiles D:\distfiles\libXpm.dll + + results in libXpm.dll being copied from D:\distfiles to the + bin directory before packaging starts. + + Multiple files can be specified using multiple --distfiles arguments: + + --distfiles D:\distfiles\libXpm.dll --distfiles C:\jpeglib\jpeg.dll + + For packaging the binary distributions, the 'dist' make target uses + 7-Zip (http://www.7-zip.org), which must be installed and available + on the Windows Path. + * Trouble-shooting diff -r 4714f535e450 -r 1b2674e70efe nt/README.W32 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nt/README.W32 Sun Jul 25 10:16:08 2010 +0000 @@ -0,0 +1,264 @@ +Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. +See the end of the file for license conditions. + + Emacs for Windows + + This README file describes how to set up and run a precompiled + version of GNU Emacs for Windows. This distribution can be found on + the ftp.gnu.org server and its mirrors: + + ftp://ftp.gnu.org/gnu/emacs/windows/ + + This server contains other distributions, including the full Emacs + source distribution and a barebin distribution which can be installed + over it, as well as older releases of Emacs for Windows. + + Answers to frequently asked questions, and further information about + this port of GNU Emacs and related software packages can be found via + http: + + http://www.gnu.org/software/emacs/windows/ + +* Preliminaries + + Along with this file should be six subdirectories (bin, etc, info, + lisp, leim, site-lisp). If you have downloaded the barebin + distribution, then it will contain only the bin directory and the + built in documentation in etc/DOC-X, the rest of the subdirectories + are in the src distribution, which the barebin distribution is + designed to be used with. + +* Setting up Emacs + + To install Emacs, simply unpack all the files into a directory of + your choice, but note that you might encounter minor problems if + there is a space anywhere in the directory name. To complete the + installation process, you can optionally run the program addpm.exe + in the bin subdirectory. This will put an icon for Emacs in the + Start Menu under "Start -> Programs -> Gnu Emacs". + + Some users have reported that the Start Menu item is not created for + them. If this happens, just create your own shortcut to runemacs.exe, + eg. by dragging it on to the desktop or the Start button. + + Note that running addpm is now an optional step; Emacs is able to + locate all of its files without needing any information to be set in + the environment or the registry, although such settings will still + be obeyed if present. This is convenient for running Emacs on a + machine which disallows registry changes, or on which software + should not be installed. For instance, you can now run Emacs + directly from a CD or USB flash drive without copying or installing + anything on the machine itself. + +* Starting Emacs + + To run Emacs, simply select Emacs from the Start Menu, or invoke + runemacs.exe directly from Explorer or from a command prompt. This + will start Emacs in its default GUI mode, ready to use. If you have + never used Emacs before, you should follow the tutorial at this + point (select Emacs Tutorial from the Help menu), since Emacs is + quite different from ordinary Windows applications in many respects. + + If you want to use Emacs in tty or character mode within a command + window, you can start it by typing "emacs -nw" at the command prompt. + (Obviously, you need to ensure that the Emacs bin subdirectory is in + your PATH first, or specify the path to emacs.exe.) The -nw + (non-windowed) mode of operation is most useful if you have a telnet + server on your machine, allowing you to run Emacs remotely. + +* EXE files included + + Emacs comes with the following executable files in the bin directory. + + + emacs.exe - The main Emacs executable. As this is designed to run + as both a text-mode application (emacs -nw) and as a GUI application, + it will pop up a command prompt window if run directly from Explorer. + + + runemacs.exe - A wrapper for running Emacs as a GUI application + without popping up a command prompt window. + + + emacsclient.exe - A command-line client program that can + communicate with a running Emacs process. See the `Emacs Server' + node of the Emacs manual. + + + emacsclientw.exe - A version of emacsclient that does not open + a command-line window. + + + addpm.exe - A basic installer that creates Start Menu icons for Emacs. + Running this is optional. + + + cmdproxy.exe - Used internally by Emacs to work around problems with + the native shells in various versions of Windows. + + + ctags.exe, etags.exe - Tools for generating tag files. See the + `Tags' node of the Emacs manual. + + + ebrowse.exe - A tool for generating C++ browse information. See the + `Ebrowse' manual. + + + ddeclient.exe - A tool for interacting with DDE servers. + + + hexl.exe - A tool for converting files to hex dumps. See the + `Editing Binary Files' node of the Emacs manual. + + + movemail.exe - A helper application for safely moving mail from + a mail spool or POP server to a local user mailbox. See the + `Movemail' node of the Emacs manual. + + + digest-doc.exe, sorted-doc.exe - Tools for rebuilding the + built-in documentation. + +* Image support + + Emacs has built in support for XBM and PPM/PGM/PBM images, and the + libXpm library is bundled, providing XPM support (required for color + toolbar icons and splash screen). Source for libXpm should be available + on the same place as you got this binary distribution from. The version + of libXpm bundled with this version of Emacs is 3.5.7, based on x.org's + libXpm library from X11R7.3. + + Emacs can also support some other image formats with appropriate + libraries. These libraries are all available as part of GTK, or from + gnuwin32.sourceforge.net. Emacs will find them if the directory they + are installed in is on the PATH. + + PNG: requires the PNG reference library 1.2 or later, which will + be named libpng13d.dll, libpng13.dll, libpng12d.dll, libpng12.dll + or libpng.dll. LibPNG requires zlib, which should come from the same + source as you got libpng. + + JPEG: requires the Independant JPEG Group's libjpeg 6b or later, + which will be called jpeg62.dll, libjpeg.dll, jpeg-62.dll or jpeg.dll. + + TIFF: requires libTIFF 3.0 or later, which will be called libtiff3.dll + or libtiff.dll. + + GIF: requires libungif or giflib 4.1 or later, which will be + called giflib4.dll, libungif4.dll or libungif.dll. + + In addition, Emacs can be compiled to support SVG. This precompiled + distribution has not been compiled that way, since the SVG library + or one or more of its extensive dependencies appear to be + unreliable under Windows. See nt/INSTALL in the src distribution if + you wish to compile Emacs with SVG support. + +* Uninstalling Emacs + + If you should need to uninstall Emacs, simply delete all the files + and subdirectories from the directory where it was unpacked (Emacs + does not install or update any files in system directories or + anywhere else). If you ran the addpm.exe program to create the + registry entries and the Start menu icon, then you can remove the + registry entries using regedit. All of the settings are written + under the Software\GNU\Emacs key in HKEY_LOCAL_MACHINE, or if you + didn't have administrator privileges when you installed, the same + key in HKEY_CURRENT_USER. Just delete the whole Software\GNU\Emacs + key. + + The Start menu entry can be removed by right-clicking on the Task bar + and selecting Properties, then using the Remove option on the Start + Menu Programs page. (If you installed under an account with + administrator privileges, then you need to click the Advanced button + and look for the Gnu Emacs menu item under All Users.) + +* Troubleshooting + + Unpacking the distributions + + If you encounter trouble trying to run Emacs, there are a number of + possible causes. Check the following for indications that the + distribution was not corrupted by the tools used to unpack it: + + * Be sure to disable CR/LF translation or the executables will + be unusable. Older versions of WinZipNT would enable this + translation by default. If you are using WinZipNT, disable it. + (I don't have WinZipNT myself, and I do not know the specific + commands necessary to disable it.) + + * Check that filenames were not truncated to 8.3. For example, + there should be a file lisp\abbrevlist.elc; if this has been + truncated to abbrevli.elc, your distribution has been corrupted + while unpacking and Emacs will not start. + + If you believe you have unpacked the distributions correctly and are + still encountering problems, see the section on Further Information + below. + + Virus scanners + + Some virus scanners interfere with Emacs' use of subprocesses. If you + are unable to use subprocesses and you use Dr. Solomon's WinGuard or + McAfee's Vshield, turn off "Scan all files" (WinGuard) or "boot sector + scanning" (McAfee exclusion properties). + +* Further information + + If you have access to the World Wide Web, I would recommend pointing + your favorite web browser to the following document (if you haven't + already): + + http://www.gnu.org/software/emacs/windows/ + + This document serves as an FAQ and a source for further information + about the Windows port and related software packages. + + In addition to the FAQ, there is a mailing list for discussing issues + related to the Windows port of Emacs. For information about the + list, see this Web page: + + http://lists.gnu.org/mailman/listinfo/help-emacs-windows + + To ask questions on the mailing list, send email to + help-emacs-windows@gnu.org. (You don't need to subscribe for that.) + To subscribe to the list or unsubscribe from it, fill the form you + find at http://lists.gnu.org/mailman/listinfo/help-emacs-windows as + explained there. + + Another valuable source of information and help which should not be + overlooked is the various Usenet news groups dedicated to Emacs. + These are particularly good for help with general issues which aren't + specific to the Windows port of Emacs. The main news groups to use + for seeking help are: + + gnu.emacs.help + comp.emacs + + There are also fairly regular postings and announcements of new or + updated Emacs packages on this group: + + gnu.emacs.sources + +* Reporting bugs + + If you encounter a bug in this port of Emacs, we would like to hear + about it. First check the FAQ on the web page above to see if the bug + is already known and if there are any workarounds. Then check whether + the bug has something to do with code in your .emacs file, e.g. by + invoking Emacs with the "-Q" option. + + If you decide that it is a bug in Emacs, use the built in bug + reporting facility to report it (from the menu; Help -> Send Bug Report). + If you have not yet configured Emacs for mail, then when you press + C-c C-c to send the report, it will ask you to paste the text of the + report into your mail client. If the bug is related to subprocesses, + also specify which shell you are using (e.g., include the values of + `shell-file-name' and `explicit-shell-file-name' in your message). + + Enjoy! + + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs 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. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . diff -r 4714f535e450 -r 1b2674e70efe nt/configure.bat --- a/nt/configure.bat Sat Jul 24 12:18:05 2010 +0000 +++ b/nt/configure.bat Sun Jul 25 10:16:08 2010 +0000 @@ -90,6 +90,8 @@ set doldflags= set sep1= set sep2= +set sep3= +set distfiles= rem ---------------------------------------------------------------------- rem Handle arguments. @@ -112,6 +114,7 @@ if "%1" == "--without-tiff" goto withouttiff if "%1" == "--without-xpm" goto withoutxpm if "%1" == "--with-svg" goto withsvg +if "%1" == "--distfiles" goto distfiles if "%1" == "" goto checkutils :usage echo Usage: configure [options] @@ -132,6 +135,7 @@ echo. --without-tiff do not use TIFF library even if it is installed echo. --without-xpm do not use XPM library even if it is installed echo. --with-svg use the RSVG library (experimental) +echo. --distfiles path to files for make dist, e.g. libXpm.dll goto end rem ---------------------------------------------------------------------- :setprefix @@ -234,6 +238,16 @@ goto again rem ---------------------------------------------------------------------- + +:distfiles +set HAVE_DISTFILES=1 +shift +set distfiles=%distfiles%%sep3%%1 +set sep3= %nothing% +shift +goto again + +rem ---------------------------------------------------------------------- rem Check that necessary utilities (cp and rm) are present. :checkutils echo Checking for 'cp'... @@ -521,6 +535,35 @@ :svgDone rm -f junk.c junk.obj junk.err junk.out +rem Any distfiles provided for building distribution? If no, we're done. +if "(%HAVE_DISTFILES%)"=="()" goto :distFilesDone + +rem Any arguments to --distfiles specified? If no, we're done. +if not "%distfiles%"=="" goto :checkDistFiles +set distFilesOk=0 +echo No arguments specified for option --distfiles! +goto distfilesDone + +:checkDistFiles +echo Checking for distfiles... +rem Check if all specified distfiles exist +set fileNotFound= +for %%d in (%distfiles%) do if not exist %%d set fileNotFound=%%d +if not "%fileNotFound%"=="" goto distFilesNotFound + +set distFilesOK=1 +echo ...all distfiles found. +goto :distFilesDone + +:distFilesNotFound +set distFilesOk=0 +echo ...%fileNotFound% not found. +set distfiles= +goto :distfilesDone + +:distFilesDone +set fileNotFound= + rem ---------------------------------------------------------------------- :genmakefiles echo Generating makefiles @@ -541,6 +584,7 @@ if (%profile%) == (Y) echo PROFILE=1 >>config.settings if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix%>>config.settings +if not "(%distfiles%)" == "()" echo DIST_FILES=%distfiles%>>config.settings rem We go thru docflags because usercflags could be "-DFOO=bar" -something rem and the if command cannot cope with this for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y @@ -642,12 +686,19 @@ echo Install libtiff development files or use --without-tiff :checkgif -if not "(%HAVE_GIF%)" == "()" goto donelibchecks -if (%gifsupport%) == (N) goto donelibchecks +if not "(%HAVE_GIF%)" == "()" goto checkdistfiles +if (%gifsupport%) == (N) goto checkdistfiles set libsOK=0 echo GIF support is missing. echo Install giflib or libungif development files or use --without-gif +:checkdistfiles +if "(%HAVE_DISTFILES%)" == "()" goto donelibchecks +if (%distFilesOk%) == (1) goto donelibchecks +echo. +echo Files specified with option --distfiles could not be found. +echo Fix these issues before running make dist + :donelibchecks if (%libsOK%) == (1) goto success echo. @@ -680,6 +731,9 @@ set doldflags= set mingwflag= set mf= +set distfiles= +set HAVE_DISTFILES= +set distFilesOk= goto skipArchTag arch-tag: 300d20a4-1675-4e75-b615-7ce1a8c5376c diff -r 4714f535e450 -r 1b2674e70efe nt/makefile.w32-in --- a/nt/makefile.w32-in Sat Jul 24 12:18:05 2010 +0000 +++ b/nt/makefile.w32-in Sun Jul 25 10:16:08 2010 +0000 @@ -23,6 +23,10 @@ # FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out # (and remove or replace this comment). +VERSION = 24.0.50 + +TMP_DIST_DIR = emacs-$(VERSION) + TRES = $(BLD)/emacs.res CLIENTRES = $(BLD)/emacsclient.res @@ -197,12 +201,16 @@ # # Build and install emacs in INSTALL_DIR # -install: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE) +.PHONY: install-bin install-shortcuts + +install: install-bin install-shortcuts + +install-bin: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE) - $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin - $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin - $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin - $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin - - "$(INSTALL_DIR)/bin/addpm" -q + - $(CP) README.W32 $(INSTALL_DIR) - $(DEL) ../same-dir.tst - $(DEL) $(INSTALL_DIR)/same-dir.tst echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst" @@ -238,6 +246,26 @@ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp install $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim install +install-shortcuts: + "$(INSTALL_DIR)/bin/addpm" -q + +dist: install-bin + mkdir $(TMP_DIST_DIR) + $(CP) "$(INSTALL_DIR)/BUGS" $(TMP_DIST_DIR) + $(CP) "$(INSTALL_DIR)/COPYING" $(TMP_DIST_DIR) + $(CP) "$(INSTALL_DIR)/README" $(TMP_DIST_DIR) + $(CP) "$(INSTALL_DIR)/README.W32" $(TMP_DIST_DIR) + $(CP) "$(INSTALL_DIR)/INSTALL" $(TMP_DIST_DIR) + $(CP_DIR) "$(INSTALL_DIR)/bin" $(TMP_DIST_DIR) + $(CP_DIR) "$(INSTALL_DIR)/etc" $(TMP_DIST_DIR) + $(CP_DIR) "$(INSTALL_DIR)/info" $(TMP_DIST_DIR) + $(CP_DIR) "$(INSTALL_DIR)/lisp" $(TMP_DIST_DIR) + $(CP_DIR) "$(INSTALL_DIR)/leim" $(TMP_DIST_DIR) + $(CP_DIR) "$(INSTALL_DIR)/site-lisp" $(TMP_DIST_DIR) + $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin + $(COMSPEC)$(ComSpec) /c $(ARGQUOTE)zipdist.bat $(VERSION)$(ARGQUOTE) + $(DEL_TREE) $(TMP_DIST_DIR) + force-info: # Note that doc/emacs/makefile knows how to # put the info files in $(infodir), @@ -323,6 +351,7 @@ - $(DEL) stamp_BLD - $(DEL) ../etc/DOC ../etc/DOC-X - $(DEL) config.log Makefile + - $(DEL) ../README.W32 distclean: distclean-other-dirs-$(MAKETYPE) top-distclean diff -r 4714f535e450 -r 1b2674e70efe nt/runemacs.c --- a/nt/runemacs.c Sat Jul 24 12:18:05 2010 +0000 +++ b/nt/runemacs.c Sun Jul 25 10:16:08 2010 +0000 @@ -43,7 +43,7 @@ #include #include -static void set_user_model_id (); +static void set_user_model_id (void); int WINAPI WinMain (HINSTANCE hSelf, HINSTANCE hPrev, LPSTR cmdline, int nShow) diff -r 4714f535e450 -r 1b2674e70efe nt/zipdist.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nt/zipdist.bat Sun Jul 25 10:16:08 2010 +0000 @@ -0,0 +1,49 @@ +@echo off +rem Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +rem Free Software Foundation, Inc. + +rem Author: Christoph Scholtes cschol2112 at gmail.com + +rem This file is part of GNU Emacs. + +rem GNU Emacs is free software: you can redistribute it and/or modify +rem it under the terms of the GNU General Public License as published by +rem the Free Software Foundation, either version 3 of the License, or +rem (at your option) any later version. + +rem GNU Emacs is distributed in the hope that it will be useful, +rem but WITHOUT ANY WARRANTY; without even the implied warranty of +rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +rem GNU General Public License for more details. + +rem You should have received a copy of the GNU General Public License +rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/. + +SETLOCAL +rem arg 1: Emacs version number +set EMACS_VER=%1 + +set TMP_DIST_DIR=emacs-%EMACS_VER% + +rem Check, if 7zip is installed and available on path +:ZIP_CHECK +7z +if %ERRORLEVEL% NEQ 0 goto :ZIP_ERROR +goto ZIP_DIST + +:ZIP_ERROR +echo. +echo ERROR: Make sure 7zip is installed and available on the Windows Path! +goto EXIT + +rem Build distributions +:ZIP_DIST +rem Build and verify full distribution +7z a -bd -tZIP -mx=9 -x!.bzrignore -x!.gitignore -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory emacs-%EMACS_VER%-bin-i386.zip %TMP_DIST_DIR% +7z t emacs-%EMACS_VER%-bin-i386.zip +rem Build and verify binary only distribution +7z a -bd -tZIP -mx=9 -x!.bzrignore -x!.gitignore -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory emacs-%EMACS_VER%-barebin-i386.zip %TMP_DIST_DIR%/README.W32 %TMP_DIST_DIR%/bin %TMP_DIST_DIR%/etc/DOC-X %TMP_DIST_DIR%/COPYING +7z t emacs-%EMACS_VER%-barebin-i386.zip +goto EXIT + +:EXIT diff -r 4714f535e450 -r 1b2674e70efe src/ChangeLog --- a/src/ChangeLog Sat Jul 24 12:18:05 2010 +0000 +++ b/src/ChangeLog Sun Jul 25 10:16:08 2010 +0000 @@ -1,3 +1,45 @@ +2010-07-25 Juanma Barranquero + + * callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT. + * dired.c (opendir, readdir): Fix prototypes. + * editfns.c (w32_get_internal_run_time): Fix prototypes. + * keyboard.c (input_available_signal): Declare inside #ifdef SIGIO. + * ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes. + (telldir): Remove declaration. + * ralloc.c (real_morecore, __morecore): Fix prototypes. + * sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA. + * syssignal.h (strsignal): Fix prototype. + * term.c (tparam): Fix prototype. + (term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1) + (term_get_fkeys): Set inside "#ifndef DOS_NT". + * vm-limit.c (check_memory_limits): Fix prototypes of real_morecore + and __morecore. + * w32gui.h (XParseGeometry): Fix prototype. + * w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes. + * w32term.c (my_set_focus): Declare inside #if 0. + * w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init) + (w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit) + (drain_message_queue, get_next_msg, post_msg, parse_button) + (ClipboardSequence_Proc): Fix prototypes. + (wait_for_sync): Remove declaration. + +2010-07-24 Juanma Barranquero + + * w32fns.c (w32_to_x_color): Remove, unused. + +2010-07-24 Andreas Schwab + + * lisp.h: Remove leftover P_. + +2010-07-24 Dan Nicolaescu + + * ecrt0.c, unexalpha.c: Remove files, unused. + +2010-07-24 Andreas Schwab + + * cmds.c (internal_self_insert): Make static. + * lisp.h (internal_self_insert): Remove declaration. + 2010-07-23 Juanma Barranquero * alloc.c (free_float): diff -r 4714f535e450 -r 1b2674e70efe src/callproc.c --- a/src/callproc.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/callproc.c Sun Jul 25 10:16:08 2010 +0000 @@ -984,7 +984,9 @@ RETURN_UNGCPRO (unbind_to (count, Fcall_process (nargs, args))); } +#ifndef WINDOWSNT static int relocate_fd (int fd, int minfd); +#endif static char ** add_env (char **env, char **new_env, char *string) @@ -1113,7 +1115,7 @@ char **p, **q; register int new_length; Lisp_Object display = Qnil; - + new_length = 0; for (tem = Vprocess_environment; @@ -1149,7 +1151,7 @@ but with corrected value. */ if (egetenv ("PWD")) *new_env++ = pwd_var; - + if (STRINGP (display)) { int vlen = strlen ("DISPLAY=") + strlen (SDATA (display)) + 1; @@ -1179,7 +1181,7 @@ } } - + #ifdef WINDOWSNT prepare_standard_handles (in, out, err, handles); set_process_dir (SDATA (current_dir)); @@ -1265,6 +1267,7 @@ #endif /* not MSDOS */ } +#ifndef WINDOWSNT /* Move the file descriptor FD so that its number is not less than MINFD. If the file descriptor is moved at all, the original is freed. */ static int @@ -1298,6 +1301,7 @@ return new; } } +#endif /* not WINDOWSNT */ static int getenv_internal_1 (const char *var, int varlen, char **value, int *valuelen, diff -r 4714f535e450 -r 1b2674e70efe src/cmds.c --- a/src/cmds.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/cmds.c Sun Jul 25 10:16:08 2010 +0000 @@ -45,6 +45,8 @@ extern Lisp_Object Qface; extern Lisp_Object Vtranslation_table_for_input; + +static int internal_self_insert (int, int); DEFUN ("forward-point", Fforward_point, Sforward_point, 1, 1, 0, doc: /* Return buffer position N characters after (before if N negative) point. */) @@ -347,7 +349,7 @@ static Lisp_Object Qexpand_abbrev; -int +static int internal_self_insert (int c, int noautofill) { int hairy = 0; diff -r 4714f535e450 -r 1b2674e70efe src/dired.c --- a/src/dired.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/dired.c Sun Jul 25 10:16:08 2010 +0000 @@ -66,8 +66,8 @@ #ifndef MSDOS #define DIRENTRY struct direct -extern DIR *opendir (); -extern struct direct *readdir (); +extern DIR *opendir (char *); +extern struct direct *readdir (DIR *); #endif /* not MSDOS */ #endif /* not SYSV_SYSTEM_DIR */ diff -r 4714f535e450 -r 1b2674e70efe src/editfns.c --- a/src/editfns.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/editfns.c Sun Jul 25 10:16:08 2010 +0000 @@ -90,7 +90,7 @@ const struct tm *, int); #ifdef WINDOWSNT -extern Lisp_Object w32_get_internal_run_time (); +extern Lisp_Object w32_get_internal_run_time (void); #endif static int tm_diff (struct tm *, struct tm *); diff -r 4714f535e450 -r 1b2674e70efe src/keyboard.c --- a/src/keyboard.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/keyboard.c Sun Jul 25 10:16:08 2010 +0000 @@ -635,7 +635,9 @@ static void clear_event (struct input_event *); static Lisp_Object restore_kboard_configuration (Lisp_Object); static SIGTYPE interrupt_signal (int signalnum); +#ifdef SIGIO static SIGTYPE input_available_signal (int signo); +#endif static void handle_interrupt (void); static void timer_start_idle (void); static void timer_stop_idle (void); @@ -3895,7 +3897,7 @@ { register int c; Lisp_Object obj; - + if (kbd_on_hold_p () && kbd_buffer_nr_stored () < KBD_BUFFER_SIZE/4) { /* Start reading input again, we have processed enough so we can diff -r 4714f535e450 -r 1b2674e70efe src/lisp.h --- a/src/lisp.h Sat Jul 24 12:18:05 2010 +0000 +++ b/src/lisp.h Sun Jul 25 10:16:08 2010 +0000 @@ -2393,7 +2393,6 @@ EXFUN (Fend_of_line, 1); EXFUN (Fforward_char, 1); EXFUN (Fforward_line, 1); -extern int internal_self_insert (int, int); extern void syms_of_cmds (void); extern void keys_of_cmds (void); @@ -3400,16 +3399,16 @@ extern int emacs_read (int, char *, unsigned int); extern int emacs_write (int, const char *, unsigned int); #ifndef HAVE_MEMSET -extern void *memset P_ ((void *, int, size_t)); +extern void *memset (void *, int, size_t); #endif #ifndef HAVE_MEMCPY -extern void *memcpy P_ ((void *, void *, size_t)); +extern void *memcpy (void *, void *, size_t); #endif #ifndef HAVE_MEMMOVE -extern void *memmove P_ ((void *, void *, size_t)); +extern void *memmove (void *, void *, size_t); #endif #ifndef HAVE_MEMCMP -extern int memcmp P_ ((void *, void *, size_t)); +extern int memcmp (void *, void *, size_t); #endif /* Defined in filelock.c */ diff -r 4714f535e450 -r 1b2674e70efe src/ndir.h --- a/src/ndir.h Sat Jul 24 12:18:05 2010 +0000 +++ b/src/ndir.h Sun Jul 25 10:16:08 2010 +0000 @@ -32,11 +32,10 @@ char dd_buf[DIRBLKSIZ]; /* directory block */ } DIR; /* stream data from opendir() */ -extern DIR *opendir(); -extern struct direct *readdir(); -extern long telldir(); -extern void seekdir(); -extern void closedir(); +extern DIR *opendir (char *); +extern struct direct *readdir (DIR *); +extern void seekdir (DIR *, long); +extern void closedir (DIR *); #define rewinddir( dirp ) seekdir( dirp, 0L ) diff -r 4714f535e450 -r 1b2674e70efe src/ralloc.c --- a/src/ralloc.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/ralloc.c Sun Jul 25 10:16:08 2010 +0000 @@ -79,7 +79,7 @@ /* Declarations for working with the malloc, ralloc, and system breaks. */ /* Function to set the real break value. */ -POINTER (*real_morecore) (); +POINTER (*real_morecore) (long int); /* The break value, as seen by malloc. */ static POINTER virtual_break_value; @@ -111,7 +111,7 @@ from the system. */ #ifndef SYSTEM_MALLOC -extern POINTER (*__morecore) (); +extern POINTER (*__morecore) (long int); #endif diff -r 4714f535e450 -r 1b2674e70efe src/sound.c --- a/src/sound.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/sound.c Sun Jul 25 10:16:08 2010 +0000 @@ -115,7 +115,9 @@ SOUND_ATTR_SENTINEL }; +#ifdef HAVE_ALSA static void alsa_sound_perror (char *, int) NO_RETURN; +#endif static void sound_perror (char *) NO_RETURN; static void sound_warning (char *); static int parse_sound (Lisp_Object, Lisp_Object *); diff -r 4714f535e450 -r 1b2674e70efe src/syssignal.h --- a/src/syssignal.h Sat Jul 24 12:18:05 2010 +0000 +++ b/src/syssignal.h Sun Jul 25 10:16:08 2010 +0000 @@ -160,7 +160,7 @@ #ifndef HAVE_STRSIGNAL /* strsignal is in sysdep.c */ -char *strsignal (); +char *strsignal (int); #endif #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD diff -r 4714f535e450 -r 1b2674e70efe src/term.c --- a/src/term.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/term.c Sun Jul 25 10:16:08 2010 +0000 @@ -183,7 +183,7 @@ static int system_uses_terminfo; -char *tparam (); +char *tparam (char *, char *, int, int, ...); extern char *tgetstr (char *, char **); @@ -1363,6 +1363,7 @@ {"!3", "S-undo"} /*shifted undo key*/ }; +#ifndef DOS_NT static char **term_get_fkeys_address; static KBOARD *term_get_fkeys_kboard; static Lisp_Object term_get_fkeys_1 (void); @@ -1500,6 +1501,7 @@ return Qnil; } +#endif /* not DOS_NT */ /*********************************************************************** diff -r 4714f535e450 -r 1b2674e70efe src/vm-limit.c --- a/src/vm-limit.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/vm-limit.c Sun Jul 25 10:16:08 2010 +0000 @@ -173,9 +173,9 @@ check_memory_limits (void) { #ifdef REL_ALLOC - extern POINTER (*real_morecore) (); + extern POINTER (*real_morecore) (SIZE); #endif - extern POINTER (*__morecore) (); + extern POINTER (*__morecore) (SIZE); register POINTER cp; unsigned long five_percent; diff -r 4714f535e450 -r 1b2674e70efe src/w32fns.c --- a/src/w32fns.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/w32fns.c Sun Jul 25 10:16:08 2010 +0000 @@ -786,25 +786,6 @@ } static Lisp_Object -w32_to_x_color (Lisp_Object rgb) -{ - Lisp_Object color; - - CHECK_NUMBER (rgb); - - BLOCK_INPUT; - - color = Frassq (rgb, Vw32_color_map); - - UNBLOCK_INPUT; - - if (!NILP (color)) - return (Fcar (color)); - else - return Qnil; -} - -static Lisp_Object w32_color_map_lookup (char *colorname) { Lisp_Object tail, ret = Qnil; diff -r 4714f535e450 -r 1b2674e70efe src/w32gui.h --- a/src/w32gui.h Sat Jul 24 12:18:05 2010 +0000 +++ b/src/w32gui.h Sun Jul 25 10:16:08 2010 +0000 @@ -118,7 +118,7 @@ #define PBaseSize (1L << 8) /* program specified base for incrementing */ #define PWinGravity (1L << 9) /* program specified window gravity */ -extern int XParseGeometry (); +extern int XParseGeometry (char *, int *, int *, unsigned *, unsigned *); typedef struct { diff -r 4714f535e450 -r 1b2674e70efe src/w32heap.h --- a/src/w32heap.h Sat Jul 24 12:18:05 2010 +0000 +++ b/src/w32heap.h Sun Jul 25 10:16:08 2010 +0000 @@ -41,8 +41,8 @@ #define get_w32_major_version() w32_major_version #define get_w32_minor_version() w32_minor_version -extern unsigned char *get_data_start(); -extern unsigned char *get_data_end(); +extern unsigned char *get_data_start (void); +extern unsigned char *get_data_end (void); extern unsigned long reserved_heap_size; extern SYSTEM_INFO sysinfo_cache; extern OSVERSIONINFO osinfo_cache; @@ -62,7 +62,7 @@ extern void *sbrk (unsigned long size); /* Initialize heap structures for sbrk on startup. */ -extern void init_heap (); +extern void init_heap (void); /* Round the heap to this size. */ extern void round_heap (unsigned long size); diff -r 4714f535e450 -r 1b2674e70efe src/w32term.c --- a/src/w32term.c Sat Jul 24 12:18:05 2010 +0000 +++ b/src/w32term.c Sun Jul 25 10:16:08 2010 +0000 @@ -268,7 +268,9 @@ static void w32_clip_to_row (struct window *, struct glyph_row *, int, HDC); static BOOL my_show_window (struct frame *, HWND, int); static void my_set_window_pos (HWND, HWND, int, int, int, int, UINT); +#if 0 static void my_set_focus (struct frame *, HWND); +#endif static void my_set_foreground_window (HWND); static void my_destroy_window (struct frame *, HWND); diff -r 4714f535e450 -r 1b2674e70efe src/w32term.h --- a/src/w32term.h Sat Jul 24 12:18:05 2010 +0000 +++ b/src/w32term.h Sun Jul 25 10:16:08 2010 +0000 @@ -48,8 +48,6 @@ extern MSG CurMsg; extern BOOL bUseDflt; -extern struct frame *x_window_to_frame (); - /* Structure recording bitmaps and reference count. If REFCOUNT is 0 then this record is free to be reused. */ @@ -226,13 +224,16 @@ /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */ extern Lisp_Object Vx_pixel_size_width_font_regexp; -struct w32_display_info *x_display_info_for_name (); +extern struct frame *x_window_to_frame (struct w32_display_info *, HWND); + +struct w32_display_info *x_display_info_for_name (Lisp_Object); Lisp_Object display_x_get_resource (struct w32_display_info *, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); -extern struct w32_display_info *w32_term_init (); +extern struct w32_display_info *w32_term_init (Lisp_Object, + char *, char *); extern int x_display_pixel_height (struct w32_display_info *); extern int x_display_pixel_width (struct w32_display_info *); @@ -544,8 +545,10 @@ #define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0) -extern void w32_fill_rect (); -extern void w32_clear_window (); +struct frame; /* from frame.h */ + +extern void w32_fill_rect (struct frame *, HDC, COLORREF, RECT *); +extern void w32_clear_window (struct frame *); #define w32_fill_area(f,hdc,pix,x,y,nx,ny) \ do { \ @@ -645,10 +648,10 @@ extern CRITICAL_SECTION critsect; -extern void init_crit (); -extern void delete_crit (); +extern void init_crit (void); +extern void delete_crit (void); -extern void signal_quit (); +extern void signal_quit (void); #define enter_crit() EnterCriticalSection (&critsect) #define leave_crit() LeaveCriticalSection (&critsect) @@ -658,14 +661,13 @@ extern HDC get_frame_dc (struct frame * f); extern int release_frame_dc (struct frame * f, HDC hDC); -extern void drain_message_queue (); +extern void drain_message_queue (void); -extern BOOL get_next_msg (); -extern BOOL post_msg (); +extern BOOL get_next_msg (W32Msg *, BOOL); +extern BOOL post_msg (W32Msg *); extern void complete_deferred_msg (HWND hwnd, UINT msg, LRESULT result); -extern void wait_for_sync (); -extern BOOL parse_button (); +extern BOOL parse_button (int, int, int *, int *); extern void w32_sys_ring_bell (struct frame *f); extern void x_delete_display (struct w32_display_info *dpyinfo); @@ -725,7 +727,7 @@ EXFUN (Fx_display_color_p, 1); EXFUN (Fx_display_grayscale_p, 1); -typedef DWORD (WINAPI * ClipboardSequence_Proc) (); +typedef DWORD (WINAPI * ClipboardSequence_Proc) (void); typedef BOOL (WINAPI * AppendMenuW_Proc) ( IN HMENU, IN UINT,