mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Better format for printf format attributes.
This commit is contained in:
		| @@ -57,7 +57,7 @@ cmdq_free(struct cmd_q *cmdq) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Show message from command. */ | /* Show message from command. */ | ||||||
| void printflike2 | void | ||||||
| cmdq_print(struct cmd_q *cmdq, const char *fmt, ...) | cmdq_print(struct cmd_q *cmdq, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	struct client	*c = cmdq->client; | 	struct client	*c = cmdq->client; | ||||||
| @@ -87,7 +87,7 @@ cmdq_print(struct cmd_q *cmdq, const char *fmt, ...) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Show error from command. */ | /* Show error from command. */ | ||||||
| void printflike2 | void | ||||||
| cmdq_error(struct cmd_q *cmdq, const char *fmt, ...) | cmdq_error(struct cmd_q *cmdq, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	struct client	*c = cmdq->client; | 	struct client	*c = cmdq->client; | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ | |||||||
| #include "tmux.h" | #include "tmux.h" | ||||||
|  |  | ||||||
| /* Write a line. */ | /* Write a line. */ | ||||||
| void printflike2 | void | ||||||
| control_write(struct client *c, const char *fmt, ...) | control_write(struct client *c, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	va_list		 ap; | 	va_list		 ap; | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								log.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								log.c
									
									
									
									
									
								
							| @@ -80,7 +80,7 @@ log_vwrite(const char *msg, va_list ap) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Log a debug message. */ | /* Log a debug message. */ | ||||||
| void printflike1 | void | ||||||
| log_debug(const char *msg, ...) | log_debug(const char *msg, ...) | ||||||
| { | { | ||||||
| 	va_list	ap; | 	va_list	ap; | ||||||
| @@ -91,7 +91,7 @@ log_debug(const char *msg, ...) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Log a critical error with error string and die. */ | /* Log a critical error with error string and die. */ | ||||||
| __dead void printflike1 | __dead void | ||||||
| log_fatal(const char *msg, ...) | log_fatal(const char *msg, ...) | ||||||
| { | { | ||||||
| 	char	*fmt; | 	char	*fmt; | ||||||
| @@ -105,7 +105,7 @@ log_fatal(const char *msg, ...) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Log a critical error and die. */ | /* Log a critical error and die. */ | ||||||
| __dead void printflike1 | __dead void | ||||||
| log_fatalx(const char *msg, ...) | log_fatalx(const char *msg, ...) | ||||||
| { | { | ||||||
| 	char	*fmt; | 	char	*fmt; | ||||||
|   | |||||||
| @@ -99,7 +99,7 @@ options_remove(struct options *oo, const char *name) | |||||||
| 	free(o); | 	free(o); | ||||||
| } | } | ||||||
|  |  | ||||||
| struct options_entry *printflike3 | struct options_entry * | ||||||
| options_set_string(struct options *oo, const char *name, const char *fmt, ...) | options_set_string(struct options *oo, const char *name, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	struct options_entry	*o; | 	struct options_entry	*o; | ||||||
|   | |||||||
| @@ -25,13 +25,13 @@ | |||||||
|  |  | ||||||
| void	screen_write_initctx(struct screen_write_ctx *, struct tty_ctx *, int); | void	screen_write_initctx(struct screen_write_ctx *, struct tty_ctx *, int); | ||||||
| void	screen_write_overwrite(struct screen_write_ctx *, u_int); | void	screen_write_overwrite(struct screen_write_ctx *, u_int); | ||||||
| int	screen_write_combine( | int	screen_write_combine(struct screen_write_ctx *, | ||||||
| 	    struct screen_write_ctx *, const struct utf8_data *); | 	    const struct utf8_data *); | ||||||
|  |  | ||||||
| /* Initialise writing with a window. */ | /* Initialise writing with a window. */ | ||||||
| void | void | ||||||
| screen_write_start( | screen_write_start(struct screen_write_ctx *ctx, struct window_pane *wp, | ||||||
|     struct screen_write_ctx *ctx, struct window_pane *wp, struct screen *s) |     struct screen *s) | ||||||
| { | { | ||||||
| 	ctx->wp = wp; | 	ctx->wp = wp; | ||||||
| 	if (wp != NULL && s == NULL) | 	if (wp != NULL && s == NULL) | ||||||
| @@ -73,7 +73,7 @@ screen_write_putc(struct screen_write_ctx *ctx, struct grid_cell *gc, | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Calculate string length, with embedded formatting. */ | /* Calculate string length, with embedded formatting. */ | ||||||
| size_t printflike2 | size_t | ||||||
| screen_write_cstrlen(int utf8flag, const char *fmt, ...) | screen_write_cstrlen(int utf8flag, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	va_list	ap; | 	va_list	ap; | ||||||
| @@ -108,7 +108,7 @@ screen_write_cstrlen(int utf8flag, const char *fmt, ...) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Calculate string length. */ | /* Calculate string length. */ | ||||||
| size_t printflike2 | size_t | ||||||
| screen_write_strlen(int utf8flag, const char *fmt, ...) | screen_write_strlen(int utf8flag, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	va_list			ap; | 	va_list			ap; | ||||||
| @@ -145,9 +145,9 @@ screen_write_strlen(int utf8flag, const char *fmt, ...) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Write simple string (no UTF-8 or maximum length). */ | /* Write simple string (no UTF-8 or maximum length). */ | ||||||
| void printflike3 | void | ||||||
| screen_write_puts( | screen_write_puts(struct screen_write_ctx *ctx, struct grid_cell *gc, | ||||||
|     struct screen_write_ctx *ctx, struct grid_cell *gc, const char *fmt, ...) |     const char *fmt, ...) | ||||||
| { | { | ||||||
| 	va_list	ap; | 	va_list	ap; | ||||||
|  |  | ||||||
| @@ -157,9 +157,9 @@ screen_write_puts( | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Write string with length limit (-1 for unlimited). */ | /* Write string with length limit (-1 for unlimited). */ | ||||||
| void printflike5 | void | ||||||
| screen_write_nputs(struct screen_write_ctx *ctx, | screen_write_nputs(struct screen_write_ctx *ctx, ssize_t maxlen, | ||||||
|     ssize_t maxlen, struct grid_cell *gc, int utf8flag, const char *fmt, ...) |     struct grid_cell *gc, int utf8flag, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	va_list	ap; | 	va_list	ap; | ||||||
|  |  | ||||||
| @@ -221,7 +221,7 @@ screen_write_vnputs(struct screen_write_ctx *ctx, ssize_t maxlen, | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Write string, similar to nputs, but with embedded formatting (#[]). */ | /* Write string, similar to nputs, but with embedded formatting (#[]). */ | ||||||
| void printflike5 | void | ||||||
| screen_write_cnputs(struct screen_write_ctx *ctx, | screen_write_cnputs(struct screen_write_ctx *ctx, | ||||||
|     ssize_t maxlen, struct grid_cell *gc, int utf8flag, const char *fmt, ...) |     ssize_t maxlen, struct grid_cell *gc, int utf8flag, const char *fmt, ...) | ||||||
| { | { | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								status.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								status.c
									
									
									
									
									
								
							| @@ -651,7 +651,7 @@ status_print( | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Set a status line message. */ | /* Set a status line message. */ | ||||||
| void printflike2 | void | ||||||
| status_message_set(struct client *c, const char *fmt, ...) | status_message_set(struct client *c, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	struct timeval		 tv; | 	struct timeval		 tv; | ||||||
|   | |||||||
							
								
								
									
										46
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								tmux.h
									
									
									
									
									
								
							| @@ -69,11 +69,7 @@ extern char   **environ; | |||||||
| #define unused __attribute__ ((unused)) | #define unused __attribute__ ((unused)) | ||||||
|  |  | ||||||
| /* Attribute to make gcc check printf-like arguments. */ | /* Attribute to make gcc check printf-like arguments. */ | ||||||
| #define printflike1 __attribute__ ((format (printf, 1, 2))) | #define printflike(a, b) __attribute__ ((format (printf, a, b))) | ||||||
| #define printflike2 __attribute__ ((format (printf, 2, 3))) |  | ||||||
| #define printflike3 __attribute__ ((format (printf, 3, 4))) |  | ||||||
| #define printflike4 __attribute__ ((format (printf, 4, 5))) |  | ||||||
| #define printflike5 __attribute__ ((format (printf, 5, 6))) |  | ||||||
|  |  | ||||||
| /* Number of items in array. */ | /* Number of items in array. */ | ||||||
| #ifndef nitems | #ifndef nitems | ||||||
| @@ -1515,8 +1511,8 @@ int		 format_cmp(struct format_entry *, struct format_entry *); | |||||||
| RB_PROTOTYPE(format_tree, format_entry, entry, format_cmp); | RB_PROTOTYPE(format_tree, format_entry, entry, format_cmp); | ||||||
| struct format_tree *format_create(void); | struct format_tree *format_create(void); | ||||||
| void		 format_free(struct format_tree *); | void		 format_free(struct format_tree *); | ||||||
| void printflike3 format_add(struct format_tree *, const char *, const char *, | void printflike(3, 4) format_add(struct format_tree *, const char *, | ||||||
| 		     ...); | 		     const char *, ...); | ||||||
| const char	*format_find(struct format_tree *, const char *); | const char	*format_find(struct format_tree *, const char *); | ||||||
| char		*format_expand(struct format_tree *, const char *); | char		*format_expand(struct format_tree *, const char *); | ||||||
| void		 format_session(struct format_tree *, struct session *); | void		 format_session(struct format_tree *, struct session *); | ||||||
| @@ -1569,7 +1565,7 @@ void	options_free(struct options *); | |||||||
| struct options_entry *options_find1(struct options *, const char *); | struct options_entry *options_find1(struct options *, const char *); | ||||||
| struct options_entry *options_find(struct options *, const char *); | struct options_entry *options_find(struct options *, const char *); | ||||||
| void	options_remove(struct options *, const char *); | void	options_remove(struct options *, const char *); | ||||||
| struct options_entry *printflike3 options_set_string(struct options *, | struct options_entry *printflike(3, 4) options_set_string(struct options *, | ||||||
| 	    const char *, const char *, ...); | 	    const char *, const char *, ...); | ||||||
| char   *options_get_string(struct options *, const char *); | char   *options_get_string(struct options *, const char *); | ||||||
| struct options_entry *options_set_number(struct options *, const char *, | struct options_entry *options_set_number(struct options *, const char *, | ||||||
| @@ -1836,8 +1832,8 @@ size_t		 cmd_list_print(struct cmd_list *, char *, size_t); | |||||||
| /* cmd-queue.c */ | /* cmd-queue.c */ | ||||||
| struct cmd_q	*cmdq_new(struct client *); | struct cmd_q	*cmdq_new(struct client *); | ||||||
| int		 cmdq_free(struct cmd_q *); | int		 cmdq_free(struct cmd_q *); | ||||||
| void printflike2 cmdq_print(struct cmd_q *, const char *, ...); | void printflike(2, 3) cmdq_print(struct cmd_q *, const char *, ...); | ||||||
| void printflike2 cmdq_error(struct cmd_q *, const char *, ...); | void printflike(2, 3) cmdq_error(struct cmd_q *, const char *, ...); | ||||||
| int		 cmdq_guard(struct cmd_q *, const char *, int); | int		 cmdq_guard(struct cmd_q *, const char *, int); | ||||||
| void		 cmdq_run(struct cmd_q *, struct cmd_list *); | void		 cmdq_run(struct cmd_q *, struct cmd_list *); | ||||||
| void		 cmdq_append(struct cmd_q *, struct cmd_list *); | void		 cmdq_append(struct cmd_q *, struct cmd_list *); | ||||||
| @@ -1932,9 +1928,9 @@ void	 status_free_jobs(struct status_out_tree *); | |||||||
| void	 status_update_jobs(struct client *); | void	 status_update_jobs(struct client *); | ||||||
| void	 status_set_window_at(struct client *, u_int); | void	 status_set_window_at(struct client *, u_int); | ||||||
| int	 status_redraw(struct client *); | int	 status_redraw(struct client *); | ||||||
| char	*status_replace(struct client *, struct session *, | char	*status_replace(struct client *, struct session *, struct winlink *, | ||||||
| 	     struct winlink *, struct window_pane *, const char *, time_t, int); | 	     struct window_pane *, const char *, time_t, int); | ||||||
| void printflike2 status_message_set(struct client *, const char *, ...); | void printflike(2, 3) status_message_set(struct client *, const char *, ...); | ||||||
| void	 status_message_clear(struct client *); | void	 status_message_clear(struct client *); | ||||||
| int	 status_message_redraw(struct client *); | int	 status_message_redraw(struct client *); | ||||||
| void	 status_prompt_set(struct client *, const char *, const char *, | void	 status_prompt_set(struct client *, const char *, const char *, | ||||||
| @@ -2024,13 +2020,13 @@ void	 screen_write_start( | |||||||
| 	     struct screen_write_ctx *, struct window_pane *, struct screen *); | 	     struct screen_write_ctx *, struct window_pane *, struct screen *); | ||||||
| void	 screen_write_stop(struct screen_write_ctx *); | void	 screen_write_stop(struct screen_write_ctx *); | ||||||
| void	 screen_write_reset(struct screen_write_ctx *); | void	 screen_write_reset(struct screen_write_ctx *); | ||||||
| size_t printflike2 screen_write_cstrlen(int, const char *, ...); | size_t printflike(2, 3) screen_write_cstrlen(int, const char *, ...); | ||||||
| void printflike5 screen_write_cnputs(struct screen_write_ctx *, | void printflike(5, 6) screen_write_cnputs(struct screen_write_ctx *, | ||||||
| 	     ssize_t, struct grid_cell *, int, const char *, ...); | 	     ssize_t, struct grid_cell *, int, const char *, ...); | ||||||
| size_t printflike2 screen_write_strlen(int, const char *, ...); | size_t printflike(2, 3) screen_write_strlen(int, const char *, ...); | ||||||
| void printflike3 screen_write_puts(struct screen_write_ctx *, | void printflike(3, 4) screen_write_puts(struct screen_write_ctx *, | ||||||
| 	     struct grid_cell *, const char *, ...); | 	     struct grid_cell *, const char *, ...); | ||||||
| void printflike5 screen_write_nputs(struct screen_write_ctx *, | void printflike(5, 6) screen_write_nputs(struct screen_write_ctx *, | ||||||
| 	     ssize_t, struct grid_cell *, int, const char *, ...); | 	     ssize_t, struct grid_cell *, int, const char *, ...); | ||||||
| void	 screen_write_vnputs(struct screen_write_ctx *, | void	 screen_write_vnputs(struct screen_write_ctx *, | ||||||
| 	     ssize_t, struct grid_cell *, int, const char *, va_list); | 	     ssize_t, struct grid_cell *, int, const char *, va_list); | ||||||
| @@ -2214,7 +2210,7 @@ extern const char window_clock_table[14][5][5]; | |||||||
| extern const struct window_mode window_copy_mode; | extern const struct window_mode window_copy_mode; | ||||||
| void		 window_copy_init_from_pane(struct window_pane *); | void		 window_copy_init_from_pane(struct window_pane *); | ||||||
| void		 window_copy_init_for_output(struct window_pane *); | void		 window_copy_init_for_output(struct window_pane *); | ||||||
| void printflike2 window_copy_add(struct window_pane *, const char *, ...); | void printflike(2, 3) window_copy_add(struct window_pane *, const char *, ...); | ||||||
| void		 window_copy_vadd(struct window_pane *, const char *, va_list); | void		 window_copy_vadd(struct window_pane *, const char *, va_list); | ||||||
| void		 window_copy_pageup(struct window_pane *); | void		 window_copy_pageup(struct window_pane *); | ||||||
|  |  | ||||||
| @@ -2253,7 +2249,7 @@ void	clear_signals(int); | |||||||
|  |  | ||||||
| /* control.c */ | /* control.c */ | ||||||
| void	control_callback(struct client *, int, void *); | void	control_callback(struct client *, int, void *); | ||||||
| void printflike2 control_write(struct client *, const char *, ...); | void printflike(2, 3) control_write(struct client *, const char *, ...); | ||||||
| void	control_write_buffer(struct client *, struct evbuffer *); | void	control_write_buffer(struct client *, struct evbuffer *); | ||||||
|  |  | ||||||
| /* control-notify.c */ | /* control-notify.c */ | ||||||
| @@ -2324,9 +2320,9 @@ char   *get_proc_name(int, char *); | |||||||
| /* log.c */ | /* log.c */ | ||||||
| void		 log_open(const char *); | void		 log_open(const char *); | ||||||
| void		 log_close(void); | void		 log_close(void); | ||||||
| void printflike1 log_debug(const char *, ...); | void printflike(1, 2) log_debug(const char *, ...); | ||||||
| __dead void printflike1 log_fatal(const char *, ...); | __dead void printflike(1, 2) log_fatal(const char *, ...); | ||||||
| __dead void printflike1 log_fatalx(const char *, ...); | __dead void printflike(1, 2) log_fatalx(const char *, ...); | ||||||
|  |  | ||||||
| /* xmalloc.c */ | /* xmalloc.c */ | ||||||
| char		*xstrdup(const char *); | char		*xstrdup(const char *); | ||||||
| @@ -2334,9 +2330,9 @@ void		*xcalloc(size_t, size_t); | |||||||
| void		*xmalloc(size_t); | void		*xmalloc(size_t); | ||||||
| void		*xrealloc(void *, size_t); | void		*xrealloc(void *, size_t); | ||||||
| void		*xreallocarray(void *, size_t, size_t); | void		*xreallocarray(void *, size_t, size_t); | ||||||
| int printflike2	 xasprintf(char **, const char *, ...); | int printflike(2, 3) xasprintf(char **, const char *, ...); | ||||||
| int		 xvasprintf(char **, const char *, va_list); | int		 xvasprintf(char **, const char *, va_list); | ||||||
| int printflike3	 xsnprintf(char *, size_t, const char *, ...); | int printflike(3, 4) xsnprintf(char *, size_t, const char *, ...); | ||||||
| int		 xvsnprintf(char *, size_t, const char *, va_list); | int		 xvsnprintf(char *, size_t, const char *, va_list); | ||||||
|  |  | ||||||
| /* style.c */ | /* style.c */ | ||||||
|   | |||||||
| @@ -94,7 +94,7 @@ xreallocarray(void *oldptr, size_t nmemb, size_t size) | |||||||
| 	return (newptr); | 	return (newptr); | ||||||
| } | } | ||||||
|  |  | ||||||
| int printflike2 | int | ||||||
| xasprintf(char **ret, const char *fmt, ...) | xasprintf(char **ret, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	va_list ap; | 	va_list ap; | ||||||
| @@ -119,7 +119,7 @@ xvasprintf(char **ret, const char *fmt, va_list ap) | |||||||
| 	return (i); | 	return (i); | ||||||
| } | } | ||||||
|  |  | ||||||
| int printflike3 | int | ||||||
| xsnprintf(char *buf, size_t len, const char *fmt, ...) | xsnprintf(char *buf, size_t len, const char *fmt, ...) | ||||||
| { | { | ||||||
| 	va_list ap; | 	va_list ap; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nicm
					nicm