author | Tero Marttila <terom@fixme.fi> |
Sun, 08 Jun 2008 21:03:23 +0300 | |
changeset 15 | e7f0697814dc |
parent 12 | 43297144f196 |
child 19 | d18606bb6f20 |
permissions | -rw-r--r-- |
8
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
1 |
|
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
2 |
/* |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
3 |
* error handling |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
4 |
*/ |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
5 |
|
15
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
6 |
void _generic_err (const char *func, int perr, int do_exit, const char *fmt, ...) |
e7f0697814dc
added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
7 |
__attribute__ ((format (printf, 4, 5))); |
8
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
8 |
|
12
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
9 |
// various kinds of ways to handle an error, 2**3 of them, *g* |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
10 |
#define error(...) _generic_err(NULL, 0, 0, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
11 |
#define err_exit(...) _generic_err(NULL, 0, 1, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
12 |
#define perr(...) _generic_err(NULL, 1, 0, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
13 |
#define perr_exit(...) _generic_err(NULL, 1, 1, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
14 |
#define err_func(func, ...) _generic_err(func, 0, 0, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
15 |
#define err_func_exit(func, ...) _generic_err(func, 0, 1, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
16 |
#define perr_func(func, ...) _generic_err(func, 1, 0, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
17 |
#define perr_func_exit(func, ...) _generic_err(func, 1, 1, __VA_ARGS__) |
11
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
18 |
|
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
19 |
// error(func + colon + msg, ...) + goto error |
12
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
20 |
#define ERROR(...) do { err_func(__func__, __VA_ARGS__); goto error; } while (0) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
21 |
#define PERROR(...) do { perr_func(__func__, __VA_ARGS__); goto error; } while (0) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
22 |
#define FATAL(...) err_func_exit(__func__, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
23 |
#define PFATAL(...) perr_func_exit(__func__, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
24 |
#define WARNING(...) err_func(__func__, __VA_ARGS__) |
43297144f196
* rename files, render_file -> file_main, render_node -> node_main, mandelbrot -> render_mandelbrot
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
25 |
#define PWARNING(...) perr_func(__func__, __VA_ARGS__) |
11
082bfaf38cf0
* massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
26 |
|
8
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
27 |
/* |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
28 |
* Parse a host:port string. |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
29 |
* |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
30 |
* Valid formats: |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
31 |
* host |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
32 |
* host:port |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
33 |
* [host] |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
34 |
* [host]:port |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
35 |
* |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
36 |
* The contents of the given hostport string *will* be modified. |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
37 |
* |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
38 |
* The value of *port will be set to NULL if no port was given. |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
39 |
* |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
40 |
* Returns 0 and sets *host if succesfull, nonzero otherwise. |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
41 |
* |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
42 |
*/ |
4d38ccbeb93e
* fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents:
2
diff
changeset
|
43 |
int parse_hostport (char *hostport, char **host, char **port); |
0
5b010627d7ed
initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
44 |