From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?Q?=C3=93scar?= Fuentes Newsgroups: gmane.emacs.bugs Subject: bug#6674: [PATCH fixed] bug#6674: fix assignment of grep-find-use-xargs on Windows/MS-DOS Date: Mon, 02 Aug 2010 19:48:29 +0200 Message-ID: <87vd7sdhxu.fsf_-_@telefonica.net> References: <878w564xtc.fsf@telefonica.net> <87vd8a2rxg.fsf@telefonica.net> <87r5iy2ptw.fsf@telefonica.net> <83vd8acbbv.fsf@gnu.org> <87eiey2apg.fsf@telefonica.net> <4C569D60.5040804@gmail.com> <8739uxdnib.fsf_-_@telefonica.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1280772581 30940 80.91.229.12 (2 Aug 2010 18:09:41 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 2 Aug 2010 18:09:41 +0000 (UTC) To: 6674@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Aug 02 20:09:35 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OfzS1-0000jM-Db for geb-bug-gnu-emacs@m.gmane.org; Mon, 02 Aug 2010 20:09:29 +0200 Original-Received: from localhost ([127.0.0.1]:43290 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OfzRu-0006hL-HL for geb-bug-gnu-emacs@m.gmane.org; Mon, 02 Aug 2010 14:09:18 -0400 Original-Received: from [140.186.70.92] (port=55905 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OfzRZ-0006dd-5Q for bug-gnu-emacs@gnu.org; Mon, 02 Aug 2010 14:09:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OfzQe-0000io-A8 for bug-gnu-emacs@gnu.org; Mon, 02 Aug 2010 14:08:01 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:58563) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OfzQe-0000if-8i for bug-gnu-emacs@gnu.org; Mon, 02 Aug 2010 14:08:00 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1Ofz8I-0008Gg-Ca; Mon, 02 Aug 2010 13:49:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?=C3=93scar?= Fuentes Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 02 Aug 2010 17:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 6674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 6674-submit@debbugs.gnu.org id=B6674.128077129431772 (code B ref 6674); Mon, 02 Aug 2010 17:49:02 +0000 Original-Received: (at 6674) by debbugs.gnu.org; 2 Aug 2010 17:48:14 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Ofz7W-0008GP-Dl for submit@debbugs.gnu.org; Mon, 02 Aug 2010 13:48:14 -0400 Original-Received: from impaqm4.telefonica.net ([213.4.138.4]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Ofz7T-0008GK-3S for 6674@debbugs.gnu.org; Mon, 02 Aug 2010 13:48:12 -0400 Original-Received: from IMPmailhost6.adm.correo ([10.20.102.127]) by IMPaqm4.telefonica.net with bizsmtp id pUvZ1e00P2kvMAa3QVoYgd; Mon, 02 Aug 2010 19:48:32 +0200 Original-Received: from qcore ([83.42.13.171]) by IMPmailhost6.adm.correo with BIZ IMP id pVoV1e00Q3hRxRf1mVoWka; Mon, 02 Aug 2010 19:48:32 +0200 X-Brightmail-Tracker: AAAAAA== X-TE-authinfo: authemail="981711563$telefonica.net" |auth_email="981711563@telefonica.net" X-TE-AcuTerraCos: auth_cuTerraCos="cosuitnetc01" In-Reply-To: <8739uxdnib.fsf_-_@telefonica.net> =?UTF-8?Q?("=C3=93scar?= Fuentes"'s message of "Mon, 02 Aug 2010 17:48:12 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Mon, 02 Aug 2010 13:49:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:39163 Archived-At: Fixed the typo pointed out by Andreas. 2010-08-02 =C3=93scar Fuentes * cmdproxy.c (main): use _snprintf instead of wsprintf. Fixes bug#6647. wsprintf has a 1024 char limit on Windows. --- a/nt/cmdproxy.c +++ b/nt/cmdproxy.c @@ -35,6 +35,9 @@ along with GNU Emacs. If not, see . */ #include /* getenv */ #include /* strlen */ =20 +/* We don't want to include stdio.h because we are already duplicating + lots of it here */ +int _snprintf(char *buffer, size_t count, const char *format, ...); =20 /******* Mock C library routines *********************************/ =20 @@ -604,6 +607,7 @@ main (int argc, char ** argv) { char * p; int extra_arg_space =3D 0; + int maxlen, remlen; int run_command_dot_com; =20 progname =3D getenv ("COMSPEC"); @@ -635,21 +639,32 @@ main (int argc, char ** argv) case path contains spaces (fortunately it can't contain quotes, since they are illegal in path names). */ =20 - buf =3D p =3D alloca (strlen (progname) + extra_arg_space + - strlen (cmdline) + 16); + remlen =3D maxlen =3D + strlen (progname) + extra_arg_space + strlen (cmdline) + 16; + buf =3D p =3D alloca (maxlen + 1); =20 /* Quote progname in case it contains spaces. */ - p +=3D wsprintf (p, "\"%s\"", progname); + p +=3D _snprintf (p, remlen, "\"%s\"", progname); + remlen =3D maxlen - (p - buf); =20 /* Include pass_through_args verbatim; these are just switches so should not need quoting. */ for (argv =3D pass_through_args; *argv !=3D NULL; ++argv) - p +=3D wsprintf (p, " %s", *argv); + { + p +=3D _snprintf (p, remlen, " %s", *argv); + remlen =3D maxlen - (p - buf); + } =20 if (run_command_dot_com) - wsprintf(p, " /e:%d /c %s", envsize, cmdline); + { + _snprintf(p, remlen, " /e:%d /c %s", envsize, cmdline); + remlen =3D maxlen - (p - buf); + } else - wsprintf(p, " /c %s", cmdline); + { + _snprintf(p, remlen, " /c %s", cmdline); + remlen =3D maxlen - (p - buf); + } cmdline =3D buf; } else @@ -669,19 +684,27 @@ main (int argc, char ** argv) else path[0] =3D '\0'; =20 - cmdline =3D p =3D alloca (strlen (progname) + extra_arg_space + - strlen (path) + 13); + remlen =3D maxlen =3D + strlen (progname) + extra_arg_space + strlen (path) + 13; + cmdline =3D p =3D alloca (maxlen + 1); =20 /* Quote progname in case it contains spaces. */ - p +=3D wsprintf (p, "\"%s\" %s", progname, path); + p +=3D _snprintf (p, remlen, "\"%s\" %s", progname, path); + remlen =3D maxlen - (p - cmdline); =20 /* Include pass_through_args verbatim; these are just switches so should not need quoting. */ for (argv =3D pass_through_args; *argv !=3D NULL; ++argv) - p +=3D wsprintf (p, " %s", *argv); + { + p +=3D _snprintf (p, remlen, " %s", *argv); + remlen =3D maxlen - (p - cmdline); + } =20 if (run_command_dot_com) - wsprintf (p, " /e:%d", envsize); + { + _snprintf (p, remlen, " /e:%d", envsize); + remlen =3D maxlen - (p - cmdline); + } } } =20