annotate dmd/man.c @ 837:331a176c1f4f

Removed error on naked, not fully complete, but I'll be doing more work on it during this Christmas, and some things do work. Fixed taking delegate of final class method. see mini/delegate3.d.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Tue, 09 Dec 2008 14:07:30 +0100
parents f79bbd1d0b27
children 330f999ade44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
337
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
1
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
2 // Compiler implementation of the D programming language
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
3 // Copyright (c) 2008-2008 by Digital Mars
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
4 // All Rights Reserved
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
5 // written by Walter Bright
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
6 // http://www.digitalmars.com
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
7 // License for redistribution is by either the Artistic License
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
8 // in artistic.txt, or the GNU General Public License in gnu.txt.
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
9 // See the included readme.txt for details.
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
10
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
11 #include <stdio.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
12 #include <string.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
13 #include <stdlib.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
14 #include <assert.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
15
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
16 #if _WIN32
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
17
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
18 #include <windows.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
19
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
20 #pragma comment(lib,"shell32.lib")
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
21
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
22 void browse(const char *url)
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
23 {
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
24 ShellExecute(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
25 }
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
26
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
27 #endif
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
28
535
f79bbd1d0b27 Add __APPLE__ to most #if linux compile time switches.
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 337
diff changeset
29 #if linux || __APPLE__
337
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
30
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
31 #include <sys/types.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
32 #include <sys/wait.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
33 #include <unistd.h>
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
34
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
35 void browse(const char *url)
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
36 {
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
37 pid_t childpid;
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
38 const char *args[3];
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
39
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
40 char *browser = getenv("BROWSER");
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
41 if (browser)
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
42 browser = strdup(browser);
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
43 else
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
44 browser = "firefox";
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
45
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
46 args[0] = browser;
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
47 args[1] = url;
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
48 args[2] = NULL;
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
49
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
50 childpid = fork();
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
51 if (childpid == 0)
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
52 {
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
53 execvp(args[0], (char**)args);
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
54 perror(args[0]); // failed to execute
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
55 return;
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
56 }
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
57 }
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
58
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
59 #endif
d03d748a9b5f [svn r358] Forgot to add new files from DMD 1.033
lindquist
parents:
diff changeset
60