+2014-10-24  Don Breazeal  <donb@codesourcery.com>
+
+       * infrun.c (follow_fork_inferior): Update fork message printing
+       to use target_terminal_ours_for_output instead of
+       target_terminal_ours, to use _() for all format strings, to print
+       "vfork" instead of "fork" for vforks, and to add a detach message.
+       (handle_vfork_child_exec_or_exit): Update message printing to use
+       target_terminal_ours_for_output instead of target_terminal_ours, to
+       use _() for all format strings, and to fix some formatting.
+
 2014-10-24  Pedro Alves  <palves@redhat.com>
 
        * Makefile.in (ALLDEPFILES): Remove vax-nat.c.
 
 
          if (info_verbose || debug_infrun)
            {
-             target_terminal_ours ();
+             target_terminal_ours_for_output ();
              fprintf_filtered (gdb_stdlog,
-                               "Detaching after fork from "
-                               "child process %d.\n",
+                               _("Detaching after %s from "
+                                 "child process %d.\n"),
+                               has_vforked ? "vfork" : "fork",
                                child_pid);
            }
        }
 
       if (info_verbose || debug_infrun)
        {
-         target_terminal_ours ();
-         if (has_vforked)
-           fprintf_filtered (gdb_stdlog,
-                             _("Attaching after process %d "
-                               "vfork to child process %d.\n"),
-                             parent_pid, child_pid);
-         else
-           fprintf_filtered (gdb_stdlog,
-                             _("Attaching after process %d "
-                               "fork to child process %d.\n"),
-                             parent_pid, child_pid);
+         target_terminal_ours_for_output ();
+         fprintf_filtered (gdb_stdlog,
+                           _("Attaching after process %d "
+                             "%s to child process %d.\n"),
+                           parent_pid,
+                           has_vforked ? "vfork" : "fork",
+                           child_pid);
        }
 
       /* Add the new inferior first, so that the target_detach below
          parent_inf->waiting_for_vfork_done = 0;
        }
       else if (detach_fork)
-       target_detach (NULL, 0);
+       {
+         if (info_verbose || debug_infrun)
+           {
+             target_terminal_ours_for_output ();
+             fprintf_filtered (gdb_stdlog,
+                               _("Detaching after fork from "
+                                 "child process %d.\n"),
+                               child_pid);
+           }
+
+         target_detach (NULL, 0);
+       }
 
       /* Note that the detach above makes PARENT_INF dangling.  */
 
 
          if (debug_infrun || info_verbose)
            {
-             target_terminal_ours ();
+             target_terminal_ours_for_output ();
 
              if (exec)
-               fprintf_filtered (gdb_stdlog,
-                                 "Detaching vfork parent process "
-                                 "%d after child exec.\n",
-                                 inf->vfork_parent->pid);
+               {
+                 fprintf_filtered (gdb_stdlog,
+                                   _("Detaching vfork parent process "
+                                     "%d after child exec.\n"),
+                                   inf->vfork_parent->pid);
+               }
              else
-               fprintf_filtered (gdb_stdlog,
-                                 "Detaching vfork parent process "
-                                 "%d after child exit.\n",
-                                 inf->vfork_parent->pid);
+               {
+                 fprintf_filtered (gdb_stdlog,
+                                   _("Detaching vfork parent process "
+                                     "%d after child exit.\n"),
+                                   inf->vfork_parent->pid);
+               }
            }
 
          target_detach (NULL, 0);
 
        # Set up the output we expect to see after we run.
        set expected_re ""
        if {$who == "child"} {
-           set expected_re "Attaching after.* fork to.*set breakpoint here.*"
+           set expected_re "Attaching after.* fork to.*"
+           if {$detach == "on"} {
+               append expected_re "Detaching after fork from .*"
+           }
+           append expected_re "set breakpoint here.*"
        } elseif {$who == "parent" && $detach == "on"} {
            set expected_re "Detaching after fork from .*set breakpoint here.*"
        } else {
        "Temporary breakpoint.*, line $bp_after_fork.*" \
        "set follow-fork child, tbreak"
 
-    gdb_test "continue" \
-       "Attaching after.* fork to.* at .*$bp_after_fork.*" \
-       "set follow-fork child, hit tbreak"
+    set expected_re "Attaching after.* fork to.*Detaching after fork from"
+    append expected_re ".* at .*$bp_after_fork.*"
+    gdb_test "continue" $expected_re "set follow-fork child, hit tbreak"
 
     # The parent has been detached; allow time for any output it might
     # generate to arrive, so that output doesn't get confused with
 
 
    set test "step"
    gdb_test_multiple "next" $test {
-       -re "Detaching after fork from.*if \\(pid == 0\\).*$gdb_prompt " {
+       -re "Detaching after vfork from.*if \\(pid == 0\\).*$gdb_prompt " {
           pass $test
        }
    }
 
    set test "continue to bp"
    gdb_test_multiple "continue" $test {
-       -re ".*Detaching after fork from child process.*Breakpoint.*${bp_location}.*$gdb_prompt " {
+       -re ".*Detaching after vfork from child process.*Breakpoint.*${bp_location}.*$gdb_prompt " {
           pass $test
        }
    }
 
    set test "continue to bp"
    gdb_test_multiple "continue" $test {
-      -re "Attaching after.* vfork to.*xecuting new program.*Breakpoint.*vforked-prog.c:${linenum}.*$gdb_prompt " {
+      -re "Attaching after.* vfork to.*Detaching vfork parent.*xecuting new program.*Breakpoint.*vforked-prog.c:${linenum}.*$gdb_prompt " {
          pass $test
       }
    }
        #
        set linenum [gdb_get_line_number "printf(\"Hello from vforked-prog" ${srcfile2}]
        gdb_test_multiple "next" $test {
-          -re "Attaching after fork to.*Executing new program.*Breakpoint.*vforked-prog.c:${linenum}.*$gdb_prompt " {
+          -re "Attaching after vfork to.*Executing new program.*Breakpoint.*vforked-prog.c:${linenum}.*$gdb_prompt " {
               pass "$test"
           }
        }