]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgfortran/runtime/pause.c
Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
[thirdparty/gcc.git] / libgfortran / runtime / pause.c
CommitLineData
6de9cd9a 1/* Implementation of the STOP statement.
748086b7 2 Copyright 2002, 2005, 2007, 2009 Free Software Foundation, Inc.
6de9cd9a
DN
3 Contributed by Paul Brook <paul@nowt.org>
4
57dea9f6 5This file is part of the GNU Fortran 95 runtime library (libgfortran).
6de9cd9a 6
57dea9f6
TM
7Libgfortran is free software; you can redistribute it and/or
8modify it under the terms of the GNU General Public
6de9cd9a 9License as published by the Free Software Foundation; either
748086b7 10version 3 of the License, or (at your option) any later version.
57dea9f6
TM
11
12Libgfortran is distributed in the hope that it will be useful,
6de9cd9a
DN
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
57dea9f6 15GNU General Public License for more details.
6de9cd9a 16
748086b7
JJ
17Under Section 7 of GPL version 3, you are granted additional
18permissions described in the GCC Runtime Library Exception, version
193.1, as published by the Free Software Foundation.
20
21You should have received a copy of the GNU General Public License and
22a copy of the GCC Runtime Library Exception along with this program;
23see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24<http://www.gnu.org/licenses/>. */
6de9cd9a 25
36ae8a61 26#include "libgfortran.h"
6de9cd9a 27#include <string.h>
6de9cd9a 28
6de9cd9a 29
6de9cd9a
DN
30static void
31do_pause (void)
32{
33 char buff[4];
34 st_printf ("To resume execution, type go. "
35 "Other input will terminate the job.\n");
36
37 fgets(buff, 4, stdin);
38 if (strncmp(buff, "go\n", 3) != 0)
39 stop_numeric (-1);
40 st_printf ("RESUMED\n");
41}
42
43/* A numeric or blank STOP statement. */
7d7b8bfe
RH
44
45extern void pause_numeric (GFC_INTEGER_4 code);
46export_proto(pause_numeric);
47
6de9cd9a
DN
48void
49pause_numeric (GFC_INTEGER_4 code)
50{
6de9cd9a
DN
51 if (code == -1)
52 st_printf ("PAUSE\n");
53 else
54 st_printf ("PAUSE %d\n", (int)code);
55
56 do_pause ();
57}
58
7d7b8bfe
RH
59extern void pause_string (char *string, GFC_INTEGER_4 len);
60export_proto(pause_string);
6de9cd9a
DN
61
62void
63pause_string (char *string, GFC_INTEGER_4 len)
64{
6de9cd9a
DN
65 st_printf ("PAUSE ");
66 while (len--)
67 st_printf ("%c", *(string++));
68 st_printf ("\n");
69
70 do_pause ();
71}