aboutsummaryrefslogtreecommitdiffstats
path: root/main/e2fsprogs/0001-implement-com_right_r.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/e2fsprogs/0001-implement-com_right_r.patch')
-rw-r--r--main/e2fsprogs/0001-implement-com_right_r.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/main/e2fsprogs/0001-implement-com_right_r.patch b/main/e2fsprogs/0001-implement-com_right_r.patch
new file mode 100644
index 0000000000..dc285d9acd
--- /dev/null
+++ b/main/e2fsprogs/0001-implement-com_right_r.patch
@@ -0,0 +1,59 @@
+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,20 @@ 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) {
++ strlcpy(str, p->table->msgs[code - p->table->base], len);
++ return str;
++ }
++ }
++ return NULL;
++}
++
++
+ struct foobar {
+ struct et_list etl;
+ struct error_table tab;
+--
+1.6.6.1
+