#
2084:7d479274f334 |
| 30-Apr-2022 |
Alejandro Colomar |
Fixed #define style.
We had a mix of styles for declaring function-like macros:
Style A: #define \ foo() \ do { \ ...
Fixed #define style.
We had a mix of styles for declaring function-like macros:
Style A: #define \ foo() \ do { \ ... \ } while (0)
Style B: #define foo() \ do { \ ... \ } while (0)
We had a similar number of occurences of each style:
$ grep -rnI '^\w*(.*\\' | wc -l 244 $ grep -rn 'define.*(.*)' | wc -l 239
(Those regexes aren't perfect, but a very decent approximation.)
Real examples:
$ find src -type f | xargs sed -n '/^nxt_double_is_zero/,/^$/p' nxt_double_is_zero(f) \ (fabs(f) <= FLT_EPSILON)
$ find src -type f | xargs sed -n '/define nxt_http_field_set/,/^$/p' #define nxt_http_field_set(_field, _name, _value) \ do { \ (_field)->name_length = nxt_length(_name); \ (_field)->value_length = nxt_length(_value); \ (_field)->name = (u_char *) _name; \ (_field)->value = (u_char *) _value; \ } while (0)
I'd like to standardize on a single style for them, and IMO, having the identifier in the same line as #define is a better option for the following reasons:
- Programmers are used to `#define foo() ...` (readability). - One less line of code. - The program for finding them is really simple (see below).
function grep_ngx_func() { if (($# != 1)); then >&2 echo "Usage: ${FUNCNAME[0]} <func>"; return 1; fi;
find src -type f \ | grep '\.[ch]$' \ | xargs grep -l "$1" \ | sort \ | xargs pcregrep -Mn "(?s)^\$[\w\s*]+?^$1\(.*?^}";
find src -type f \ | grep '\.[ch]$' \ | xargs grep -l "$1" \ | sort \ | xargs pcregrep -Mn "(?s)define $1\(.*?^$" \ | sed -E '1s/^[^:]+:[0-9]+:/&\n\n/'; }
$ grep_ngx_func Usage: grep_ngx_func <func>
$ grep_ngx_func nxt_http_field_set src/nxt_http.h:98:
#define nxt_http_field_set(_field, _name, _value) \ do { \ (_field)->name_length = nxt_length(_name); \ (_field)->value_length = nxt_length(_value); \ (_field)->name = (u_char *) _name; \ (_field)->value = (u_char *) _value; \ } while (0)
$ grep_ngx_func nxt_sprintf src/nxt_sprintf.c:56:
u_char * nxt_cdecl nxt_sprintf(u_char *buf, u_char *end, const char *fmt, ...) { u_char *p; va_list args;
va_start(args, fmt); p = nxt_vsprintf(buf, end, fmt, args); va_end(args);
return p; }
................ Scripted change: ................
$ find src -type f \ | grep '\.[ch]$' \ | xargs sed -i '/define *\\$/{N;s/ *\\\n/ /;s/ //}'
show more ...
|
Revision tags: 1.26.1-1, 1.26.1, 1.26.0-1, 1.26.0, 1.25.0-1, 1.25.0, 1.24.0-1, 1.24.0, 1.23.0-1, 1.23.0, 1.22.0-1, 1.22.0, 1.21.0-1, 1.21.0, 1.20.0-1, 1.20.0, 1.19.0-1, 1.19.0, 1.18.0-1, 1.18.0, 1.17.0-1, 1.17.0, 1.16.0-1, 1.16.0, 1.15.0-1, 1.15.0, 1.14.0-1, 1.14.0, 1.13.0-1, 1.13.0 |
|
#
1267:74acbd89400a |
| 14-Nov-2019 |
Igor Sysoev |
Introduced event engine memory buffers.
|
#
1266:22a29a8b15e2 |
| 14-Nov-2019 |
Igor Sysoev |
Event engine memory cache refactored.
|
Revision tags: 1.12.0-1, 1.12.0, 1.11.0-2, 1.11.0-1, 1.11.0, 1.10.0-2, 1.10.0-1, 1.10.0, 1.9.0-1, 1.9.0, 1.8.0-1, 1.8.0, 1.7.1-1, 1.7.1, 1.7-1, 1.7, 1.6-1, 1.6, 1.5-1, 1.5 |
|
#
813:e44c40395227 |
| 22-Oct-2018 |
Igor Sysoev |
Improved epoll failures handling.
epoll changes are committed to the kernel before epoll_wait() or on changes array overflow. In the latter case if there are errors epoll_wait() timeout was not set
Improved epoll failures handling.
epoll changes are committed to the kernel before epoll_wait() or on changes array overflow. In the latter case if there are errors epoll_wait() timeout was not set to zero.
This commit is related to #173 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao).
show more ...
|
Revision tags: 1.4-2, 1.4, 1.3, 1.2, 1.1, 1.0, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2 |
|
#
358:40bbd4c2349d |
| 17-Oct-2017 |
Igor Sysoev |
Storing memory cache slot hint inside nxt_sockaddr_t.
|
#
337:854a1a440616 |
| 27-Sep-2017 |
Igor Sysoev |
Event engine memory cache for nxt_sockaddr_t.
Introducing event engine memory cache and using the cache for nxt_sockaddr_t structures.
|
#
318:c2442f5e054d |
| 15-Sep-2017 |
Max Romanov |
Introducing application timeout.
|
Revision tags: 0.1 |
|
#
165:a1156473a8f1 |
| 17-Jul-2017 |
Max Romanov |
Work queue thread assertions. Reset thread after fork.
|
#
115:bef7c075837b |
| 05-Jul-2017 |
Igor Sysoev |
Router: processing JSON configuration.
|
#
88:c6879c7b5bdf |
| 23-Jun-2017 |
Max Romanov |
Added basic HTTP request processing in router.
- request to connection mapping in engine; - requests queue in connection; - engine port creation; - connected ports hash for each process; - engine po
Added basic HTTP request processing in router.
- request to connection mapping in engine; - requests queue in connection; - engine port creation; - connected ports hash for each process; - engine port data messages processing (app responses);
show more ...
|
#
63:b79fe37d9f24 |
| 19-Jun-2017 |
Igor Sysoev |
Memory pools refactoring.
|
#
62:5e1efcc7b740 |
| 14-Jun-2017 |
Igor Sysoev |
nxt_event_conn_... functions and structures have been renamed to nxt_conn_...
|
#
53:0b10a73d4993 |
| 31-May-2017 |
Igor Sysoev |
Skeleton of router configuration and request processing.
|
#
20:4dc92b438f58 |
| 09-Mar-2017 |
Igor Sysoev |
Processes refactoring. The cycle has been renamed to the runtime.
|
#
13:3a52b2c3d3f1 |
| 22-Feb-2017 |
Igor Sysoev |
I/O operations refactoring.
|
#
12:477899a6661b |
| 07-Feb-2017 |
Igor Sysoev |
Event engines refactoring.
|
#
6:6b3ce47b7663 |
| 30-Jan-2017 |
Igor Sysoev |
nxt_event_timer has been renamed to nxt_timer.
|
#
4:76c63e9b6322 |
| 27-Jan-2017 |
Igor Sysoev |
Work queues refactoring.
|
#
1:fdc027c56872 |
| 23-Jan-2017 |
Igor Sysoev |
Introducing tasks.
|
#
0:a63ceefd6ab0 |
| 17-Jan-2017 |
Igor Sysoev |
Initial version.
|