summaryrefslogtreecommitdiff
path: root/x11/xview-lib/patches/patch-cy
diff options
context:
space:
mode:
Diffstat (limited to 'x11/xview-lib/patches/patch-cy')
-rw-r--r--x11/xview-lib/patches/patch-cy390
1 files changed, 385 insertions, 5 deletions
diff --git a/x11/xview-lib/patches/patch-cy b/x11/xview-lib/patches/patch-cy
index fe98709644e..9d4aae8e785 100644
--- a/x11/xview-lib/patches/patch-cy
+++ b/x11/xview-lib/patches/patch-cy
@@ -1,14 +1,22 @@
-$NetBSD: patch-cy,v 1.2 2004/09/30 20:38:28 kristerw Exp $
+$NetBSD: patch-cy,v 1.3 2006/01/05 18:25:57 joerg Exp $
--- lib/libxview/textsw/txt_file.c.orig 1993-06-29 07:17:48.000000000 +0200
+++ lib/libxview/textsw/txt_file.c 2004-09-30 22:24:41.000000000 +0200
-@@ -45,13 +45,27 @@
+@@ -18,6 +18,7 @@ static char sccsid[] = "@(#)txt_file
+ #include <xview_private/txt_impl.h>
+ #include <xview_private/ev_impl.h>
+ #include <xview_private/txt_18impl.h>
++#include <limits.h>
+ #ifdef SVR4
+ #include <dirent.h>
+ #include <string.h>
+@@ -45,13 +46,27 @@ static char sccsid[] = "@(#)txt_file
extern CHAR *STRCAT();
extern CHAR *STRNCAT();
-#ifdef SVR4
+
-+#if (defined(SVR4) || (__NetBSD_Version__ >= 103080000))
++#if (defined(SVR4) || (__NetBSD_Version__ >= 103080000)) || defined(__DragonFly__)
+#define GETCWD
+#endif
+
@@ -19,7 +27,7 @@ $NetBSD: patch-cy,v 1.2 2004/09/30 20:38:28 kristerw Exp $
-#endif /* SVR4 */
+#endif /* GETCWD */
+#if (defined(BSD) && (BSD >= 199306))
-+#if __NetBSD_Version__ > 103080000
++#if defined(__DragonFly__) || (defined(__NetBSD__) && __NetBSD_Version__ > 103080000)
+#include <errno.h>
+#else
+extern int errno, sys_nerr;
@@ -32,7 +40,19 @@ $NetBSD: patch-cy,v 1.2 2004/09/30 20:38:28 kristerw Exp $
Pkg_private int textsw_change_directory();
Pkg_private void textsw_display(), textsw_display_view_margins();
-@@ -354,21 +368,21 @@
+@@ -314,7 +329,11 @@ textsw_load_selection(folio, locx, locy,
+ register int locx, locy;
+ int no_cd;
+ {
++#ifdef NAME_MAX
++ CHAR filename[NAME_MAX];
++#else
+ CHAR filename[MAXNAMLEN];
++#endif
+ register int result;
+
+ if (textsw_get_selection_as_filename(
+@@ -354,21 +373,21 @@ textsw_full_pathname(name)
}
#ifdef OW_I18N
@@ -58,3 +78,363 @@ $NetBSD: patch-cy,v 1.2 2004/09/30 20:38:28 kristerw Exp $
return (0);
#endif /* OW_I18N */
+@@ -459,8 +478,13 @@ textsw_load_file(abstract, filename, res
+ int reset_views;
+ int locx, locy;
+ {
++#ifdef NAME_MAX
++ char notice_msg_buf[NAME_MAX + 100];
++ CHAR scratch_name[NAME_MAX];
++#else
+ char notice_msg_buf[MAXNAMLEN + 100];
+ CHAR scratch_name[MAXNAMLEN];
++#endif
+ int result;
+ Es_status status;
+ Es_handle new_esh;
+@@ -546,7 +570,11 @@ textsw_load_file_quietly(abstract, filen
+ int reset_views;
+ int locx, locy;
+ {
++#ifdef NAME_MAX
++ CHAR scratch_name[NAME_MAX];
++#else
+ CHAR scratch_name[MAXNAMLEN];
++#endif
+ Es_status status;
+ Es_handle new_esh;
+ Es_index start_at;
+@@ -587,7 +615,11 @@ textsw_save_store_common(folio, output_n
+ CHAR *output_name;
+ int reload;
+ {
++#ifdef NAME_MAX
++ CHAR scratch_name[NAME_MAX];
++#else
+ CHAR scratch_name[MAXNAMLEN];
++#endif
+ Es_handle new_esh;
+ register Es_handle output;
+ Es_status result;
+@@ -604,9 +636,16 @@ textsw_save_store_common(folio, output_n
+ es_destroy(output);
+ if (folio->checkpoint_name) {
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ char temp_mb[NAME_MAX];
++
++ (void) wcstombs(temp_mb, folio->checkpoint_name, NAME_MAX);
++#else
+ char temp_mb[MAXNAMLEN];
+
+ (void) wcstombs(temp_mb, folio->checkpoint_name, MAXNAMLEN);
++#endif
++
+ if (unlink(temp_mb) == -1) { /* } for match */
+ #else
+ if (unlink(folio->checkpoint_name) == -1) {
+@@ -733,7 +772,11 @@ textsw_save_internal(folio, error_buf, l
+ int locx, locy; /* Currently unused */
+ {
+ Pkg_private Es_handle es_file_make_backup();
++#ifdef NAME_MAX
++ CHAR original_name[NAME_MAX], *name;
++#else
+ CHAR original_name[MAXNAMLEN], *name;
++#endif
+ register char *msg;
+ Es_handle backup, original = ES_NULL;
+ int status;
+@@ -826,10 +869,16 @@ Was the file edited with another editor?
+ textsw_save_store_common(folio, original_name, RELOAD)) {
+ case ES_SUCCESS: {
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ char original_name_mb[NAME_MAX];
++
++ (void) wcstombs(original_name_mb, original_name, NAME_MAX);
++#else
+ char original_name_mb[MAXNAMLEN];
+
+ (void) wcstombs(original_name_mb, original_name, MAXNAMLEN);
+ #endif
++#endif
+ (void) es_destroy(original);
+ textsw_notify(folio->first_view,
+ #ifdef OW_I18N
+@@ -868,7 +917,11 @@ textsw_save(abstract, locx, locy)
+ Textsw abstract;
+ int locx, locy;
+ {
++#ifdef NAME_MAX
++ char error_buf[NAME_MAX];
++#else
+ char error_buf[MAXNAMLEN + 100];
++#endif
+ Es_status status;
+ Textsw_view_handle view = VIEW_ABS_TO_REP(abstract);
+
+@@ -969,7 +1022,11 @@ textsw_cd(textsw, locx, locy)
+ Textsw_folio textsw;
+ int locx, locy;
+ {
++#ifdef NAME_MAX
++ CHAR buf[NAME_MAX];
++#else
+ CHAR buf[MAXNAMLEN];
++#endif
+
+ if (0 == textsw_get_selection_as_filename(
+ textsw, buf, SIZEOF(buf), locx, locy)) {
+@@ -988,15 +1045,27 @@ textsw_get_from_file(view, filename, pri
+ int fd;
+ Es_status status;
+ Textsw_status result = TEXTSW_STATUS_CANNOT_INSERT_FROM_FILE;
++#ifdef NAME_MAX
++ CHAR buf[NAME_MAX];
++#else
+ CHAR buf[MAXNAMLEN];
++#endif
+
+ if (!TXTSW_IS_READ_ONLY(folio) && ((int)STRLEN(filename) > 0)) {
+ STRCPY(buf, filename);
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ if (textsw_expand_filename(folio, buf, NAME_MAX, -1, -1) == 0) {/* } */
++ char buf_mb[NAME_MAX];
++
++ (void) wcstombs(buf_mb, buf, NAME_MAX);
++#else
+ if (textsw_expand_filename(folio, buf, MAXNAMLEN, -1, -1) == 0) {/* } */
+ char buf_mb[MAXNAMLEN];
+
+ (void) wcstombs(buf_mb, buf, MAXNAMLEN);
++#endif
++
+ if ((fd = open(buf_mb, 0)) >= 0) { /* } for match */
+ textsw_implicit_commit(folio);
+ #else
+@@ -1034,9 +1103,15 @@ textsw_file_stuff(view, locx, locy)
+ {
+ Textsw_folio folio = FOLIO_FOR_VIEW(view);
+ int fd;
++#ifdef NAME_MAX
++ CHAR buf[NAME_MAX];
++ char msg[NAME_MAX + 100], *sys_msg;
++ char notice_msg1[NAME_MAX + 100];
++#else
+ CHAR buf[MAXNAMLEN];
+ char msg[MAXNAMLEN + 100], *sys_msg;
+ char notice_msg1[MAXNAMLEN + 100];
++#endif
+ char *notice_msg2;
+ Es_status status;
+ int cannot_open = 0;
+@@ -1047,9 +1122,15 @@ textsw_file_stuff(view, locx, locy)
+ if (0 == textsw_get_selection_as_filename(
+ folio, buf, SIZEOF(buf), locx, locy)) {
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ char buf_mb[NAME_MAX];
++
++ (void) wcstombs(buf_mb, buf, NAME_MAX);
++#else
+ char buf_mb[MAXNAMLEN];
+
+ (void) wcstombs(buf_mb, buf, MAXNAMLEN);
++#endif
+ if ((fd = open(buf_mb, 0)) < 0) { /* } for match */
+ #else
+ if ((fd = open(buf, 0)) < 0) {
+@@ -1141,8 +1222,13 @@ textsw_file_stuff_from_str(view, buf, lo
+ {
+ Textsw_folio folio = FOLIO_FOR_VIEW(view);
+ int fd;
++#ifdef NAME_MAX
++ char msg[NAME_MAX + 100], *sys_msg;
++ char notice_msg1[NAME_MAX + 100];
++#else
+ char msg[MAXNAMLEN + 100], *sys_msg;
+ char notice_msg1[MAXNAMLEN + 100];
++#endif
+ char *notice_msg2;
+ Es_status status;
+ int cannot_open = 0;
+@@ -1150,9 +1236,15 @@ textsw_file_stuff_from_str(view, buf, lo
+ Xv_Notice text_notice;
+ Frame frame;
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ char buf_mb[NAME_MAX];
++
++ (void) wcstombs(buf_mb, buf, NAME_MAX);
++#else
+ char buf_mb[MAXNAMLEN];
+
+ (void) wcstombs(buf_mb, buf, MAXNAMLEN);
++#endif
+ if ((fd = open(buf_mb, 0)) < 0) { /* } for match */
+ #else
+ if ((fd = open(buf, 0)) < 0) {
+@@ -1245,9 +1337,15 @@ textsw_store_init(textsw, filename)
+ {
+ struct stat stat_buf;
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ char filename_mb[NAME_MAX];
++
++ (void) wcstombs(filename_mb, filename, NAME_MAX);
++#else
+ char filename_mb[MAXNAMLEN];
+
+ (void) wcstombs(filename_mb, filename, MAXNAMLEN);
++#endif
+ if (stat(filename_mb, &stat_buf) == 0) { /* } for match */
+ #else
+ if (stat(filename, &stat_buf) == 0) {
+@@ -1310,10 +1408,16 @@ textsw_process_store_error(textsw, filen
+ case ES_CANNOT_OVERWRITE:
+ #ifdef OW_I18N
+ {
++#ifdef NAME_MAX
++ char filename_mb[NAME_MAX];
++
++ (void) wcstombs(filename_mb, filename, NAME_MAX);
++#else
+ char filename_mb[MAXNAMLEN];
+
+ (void) wcstombs(filename_mb, filename, MAXNAMLEN);
+ #endif
++#endif
+ frame = FRAME_FROM_FOLIO_OR_VIEW(textsw);
+ text_notice = (Xv_Notice)xv_get(frame,
+ XV_KEY_DATA, text_notice_key,
+@@ -1465,9 +1569,12 @@ textsw_store_file_internal(abstract, fil
+ if (status == ES_SUCCESS) {
+ if (textsw->state & TXTSW_STORE_CHANGES_FILE) {
+ #ifdef OW_I18N
+- char filename_mbs[MAXNAMLEN];
++#ifdef NAME_MAX
++ char filename_mbs[NAME_MAX];
+
+- (void) wcstombs(filename_mbs, filename, MAXNAMLEN);
++ (void) wcstombs(filename_mbs, filename, NAME_MAX);
++#else
++#endif
+ textsw_notify(textsw->first_view,
+ TEXTSW_ACTION_LOADED_FILE, filename_mbs,
+ TEXTSW_ACTION_LOADED_FILE_WCS, filename, 0);
+@@ -1491,9 +1598,15 @@ textsw_store_file(abstract, filename, lo
+ int locx, locy;
+ {
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ CHAR filename_wcs[NAME_MAX];
++
++ (void) mbstowcs(filename_wcs, filename, NAME_MAX);
++#else
+ CHAR filename_wcs[MAXNAMLEN];
+
+ (void) mbstowcs(filename_wcs, filename, MAXNAMLEN);
++#endif
+ return (textsw_store_file_internal(abstract, filename_wcs, locx, locy));
+ #else
+ return (textsw_store_file_internal(abstract, filename, locx, locy));
+@@ -1516,7 +1629,11 @@ textsw_store_to_selection(textsw, locx,
+ Textsw_folio textsw;
+ int locx, locy;
+ {
++#ifdef NAME_MAX
++ CHAR filename[NAME_MAX];
++#else
+ CHAR filename[MAXNAMLEN];
++#endif
+
+ if (textsw_get_selection_as_filename(
+ textsw, filename, SIZEOF(filename), locx, locy))
+@@ -1545,11 +1662,19 @@ textsw_reset_2(abstract, locx, locy, pre
+ #endif /* SVR4 */
+ Pkg_private Es_handle es_mem_create();
+ Es_handle piece_esh, old_original_esh, new_original_esh;
++ char *temp_name;
++#ifdef NAME_MAX
++#ifdef OW_I18N
++ CHAR *name, save_name[NAME_MAX], scratch_name[NAME_MAX];
++#else
++ char *name, save_name[NAME_MAX], scratch_name[NAME_MAX];
++#endif
++#else
+ #ifdef OW_I18N
+ CHAR *name, save_name[MAXNAMLEN], scratch_name[MAXNAMLEN];
+- char *temp_name;
+ #else
+- char *name, save_name[MAXNAMLEN], scratch_name[MAXNAMLEN], *temp_name;
++ char *name, save_name[MAXNAMLEN], scratch_name[MAXNAMLEN];
++#endif
+ #endif
+ int status;
+ Textsw_folio folio = FOLIO_FOR_VIEW(VIEW_ABS_TO_REP(abstract));
+@@ -1591,7 +1716,11 @@ textsw_reset_2(abstract, locx, locy, pre
+ (char *) window_get(abstract, TEXTSW_TEMP_FILENAME);
+ if (temp_name)
+ #ifdef OW_I18N
++#ifdef NAME_MAX
++ (void) mbstowcs(save_name, temp_name, NAME_MAX);
++#else
+ (void) mbstowcs(save_name, temp_name, MAXNAMLEN);
++#endif
+ #else
+ (void) STRCPY(save_name, temp_name);
+ #endif
+@@ -2150,7 +2279,11 @@ textsw_post_error(folio_or_view, locx, l
+ int locx, locy; /* Unused */
+ char *msg1, *msg2;
+ {
++#ifdef NAME_MAX
++ char buf[NAME_MAX + 1000];
++#else
+ char buf[MAXNAMLEN + 1000];
++#endif
+ int size_to_use = sizeof(buf);
+ Frame frame;
+ Xv_Notice text_notice;
+@@ -2226,8 +2359,13 @@ textsw_change_directory(textsw, filename
+ CHAR *full_pathname_wc;
+ char filename[MAXPATHLEN];
+ #endif
++#ifdef NAME_MAX
++ char msg[NAME_MAX + 100];
++ char notice_msg[NAME_MAX + 100];
++#else
+ char msg[MAXNAMLEN + 100];
+ char notice_msg[MAXNAMLEN + 100];
++#endif
+ struct stat stat_buf;
+ int result = 0;
+ int notice_result;
+@@ -2402,8 +2540,13 @@ textsw_checkpoint_internal(folio)
+ CHAR *name;
+ if (textsw_file_name(folio, &name) != 0)
+ return (ES_CANNOT_GET_NAME);
++#ifdef NAME_MAX
++ if ((folio->checkpoint_name = (CHAR *) MALLOC(NAME_MAX)) == 0)
++ return (ES_CANNOT_GET_NAME);
++#else
+ if ((folio->checkpoint_name = (CHAR *) MALLOC(MAXNAMLEN)) == 0)
+ return (ES_CANNOT_GET_NAME);
++#endif
+ #ifdef OW_I18N
+ (void) SPRINTF(folio->checkpoint_name, "%ws%%%%", name);
+ #else
+@@ -2773,7 +2916,11 @@ textsw_invalid_data_notice(view, filenam
+ int flag;
+ {
+ Xv_Notice text_notice;
++#ifdef NAME_MAX
++ char notice_msg[NAME_MAX + 300];
++#else
+ char notice_msg[MAXNAMLEN + 300];
++#endif
+ Frame frame = FRAME_FROM_FOLIO_OR_VIEW(view);
+
+ if (flag) {