mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-01-24 02:22:15 +08:00
61 lines
1.6 KiB
Diff
61 lines
1.6 KiB
Diff
From 527d258d605e5a1dd841bccc6091c0b894a10411 Mon Sep 17 00:00:00 2001
|
|
From: Natanael Copa <ncopa@alpinelinux.org>
|
|
Date: Wed, 27 Jan 2010 16:02:08 +0000
|
|
Subject: [PATCH] implement com_right_r()
|
|
|
|
For heimdal compat
|
|
---
|
|
lib/et/com_err.h | 2 ++
|
|
lib/et/com_right.c | 14 ++++++++++++++
|
|
2 files changed, 16 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/lib/et/com_err.h b/lib/et/com_err.h
|
|
index de0146e..eb2106f 100644
|
|
--- a/lib/et/com_err.h
|
|
+++ b/lib/et/com_err.h
|
|
@@ -16,6 +16,7 @@
|
|
#define COM_ERR_ATTR(x)
|
|
#endif
|
|
|
|
+#include <stddef.h>
|
|
#include <stdarg.h>
|
|
|
|
typedef long errcode_t;
|
|
@@ -49,6 +50,7 @@ extern void add_to_error_table(struct et_list *new_table);
|
|
|
|
/* Provided for Heimdall compatibility */
|
|
extern const char *com_right(struct et_list *list, long code);
|
|
+extern const char *com_right_r(struct et_list *list, long code, char *str, size_t len);
|
|
extern void initialize_error_table_r(struct et_list **list,
|
|
const char **messages,
|
|
int num_errors,
|
|
diff --git a/lib/et/com_right.c b/lib/et/com_right.c
|
|
index 173fd1a..dbc1e41 100644
|
|
--- a/lib/et/com_right.c
|
|
+++ b/lib/et/com_right.c
|
|
@@ -55,6 +55,21 @@ com_right(struct et_list *list, long code)
|
|
return NULL;
|
|
}
|
|
|
|
+const char *
|
|
+com_right_r(struct et_list *list, long code, char *str, size_t len)
|
|
+{
|
|
+ struct et_list *p;
|
|
+ for (p = list; p; p = p->next) {
|
|
+ if (code >= p->table->base && code < p->table->base + p->table->n_msgs) {
|
|
+ strncpy(str, p->table->msgs[code - p->table->base], len);
|
|
+ str[len-1] = '\0';
|
|
+ return str;
|
|
+ }
|
|
+ }
|
|
+ return NULL;
|
|
+}
|
|
+
|
|
+
|
|
struct foobar {
|
|
struct et_list etl;
|
|
struct error_table tab;
|
|
--
|
|
1.6.6.1
|
|
|