Subject: bug#14847: 24.1; gdb-mi.el does not handle backslashes as quotes

From: Eli Zaretskii <[email-masked]>
Date: Fri, 12 Jul 2013 11:50:33 +0300

> From: Sergio Durigan Junior <[email-masked]>
> Date: Fri, 12 Jul 2013 00:51:20 -0300
> 
> If you start gdb-mi.el (on Emacs 24.1), and try to use backslashes to
> quote/break long lines, it is not handled correctly.  For example,
> suppose your program being debugged inside GDB takes 3 arguments.  You
> could run it with:
> 
>     (gdb) file myprogram
>     Reading symbols from myprogram...done.
>     (gdb) run \
>     first_arg \
>     second_arg \
>     third_arg
> 
> GDB should correctly run the binary using the 3 args.  However, inside
> Emacs, you receive an error:
> 
>     Undefined command: "third_arg".  Try "help".
> 
> This is because gdb-mi.el is not handling the backslashes correctly.
> The error is specifically on the function `gdb_send', and the patch
> inlined in this message fixes this.  The patch can also be seen on:
> 
> <https://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00423.html>
> 
> And there is also a GDB bug related to this issue:
> 
> <http://sourceware.org/bugzilla/show_bug.cgi?id=15596>

Your patch doesn't seem to work for me.  I tried on GNU/Linux and on
MS-Windows, and in both cases I get the same error.  Here's the recipe
I tried (after applying your latest patch and rebuilding Emacs):

 emacs -Q
 M-x gdb RET
 gdb -i=mi ./src/emacs RET
 (gdb) break main
 (gdb) run \
 -Q

When I type RET after "-Q", I get an error:

  Undefined MI command: Q

What am I doing wrong?

Thanks.