]> git.pld-linux.org Git - packages/elinks.git/commitdiff
This commit was manufactured by cvs2git to create branch 'AC-branch'. AC-branch
authorcvs2git <feedback@pld-linux.org>
Fri, 27 Aug 2010 13:44:11 +0000 (13:44 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Cherrypick from master 2009-03-29 14:07:50 UTC witekfl <witekfl@pld-linux.org> '- support for fbterm':
    elinks-bug517.patch -> 1.1
    elinks-chunked.patch -> 1.1
    elinks-date-format.patch -> 1.2
    elinks-fbterm.patch -> 1.1
    elinks-home_etc.patch -> 1.4
    elinks-mailcap_DISPLAY.patch -> 1.1
    elinks-old_incremental.patch -> 1.1
    elinks.desktop -> 1.9
Cherrypick from master 2006-12-15 22:50:54 UTC Adam Gołębiowski <adamg@pld-linux.org> '- new':
    elinks-bug899.patch -> 1.1
    elinks-pl.po-update.patch -> 1.8
Cherrypick from master 2007-12-15 00:40:40 UTC Jakub Bogusz <qboosh@pld-linux.org> '- use _Polish_ language':
    elinks-cgi.patch -> 1.1
    elinks-pl.po.patch -> 1.23
Cherrypick from master 2010-08-27 13:44:11 UTC Elan Ruusamäe <glen@pld-linux.org> '- adapter friendly macros, file perms, file-cleanup':
    elinks.spec -> 1.174

13 files changed:
elinks-bug517.patch [new file with mode: 0644]
elinks-bug899.patch [new file with mode: 0644]
elinks-cgi.patch [new file with mode: 0644]
elinks-chunked.patch [new file with mode: 0644]
elinks-date-format.patch [new file with mode: 0644]
elinks-fbterm.patch [new file with mode: 0644]
elinks-home_etc.patch [new file with mode: 0644]
elinks-mailcap_DISPLAY.patch [new file with mode: 0644]
elinks-old_incremental.patch [new file with mode: 0644]
elinks-pl.po-update.patch [new file with mode: 0644]
elinks-pl.po.patch [new file with mode: 0644]
elinks.desktop [new file with mode: 0644]
elinks.spec [new file with mode: 0644]

diff --git a/elinks-bug517.patch b/elinks-bug517.patch
new file mode 100644 (file)
index 0000000..a368520
--- /dev/null
@@ -0,0 +1,179 @@
+diff --git a/AUTHORS b/AUTHORS
+index f65085d..b08ec55 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -215,6 +215,9 @@ Hugo Haas <hugo@larve.net>
+       Minor random hacking
+       debian/watch file
++<incoherent@mail.ru>
++      bzip2 decoding fix and rewrite
++
+ Ingo Blechschmidt <iblech@web.de>
+       German translation updates
+diff --git a/src/encoding/bzip2.c b/src/encoding/bzip2.c
+index 0291a39..c33b88e 100644
+--- a/src/encoding/bzip2.c
++++ b/src/encoding/bzip2.c
+@@ -12,6 +12,7 @@ #endif
+ #ifdef HAVE_BZLIB_H
+ #include <bzlib.h> /* Everything needs this after stdio.h */
+ #endif
++#include <errno.h>
+ #include "elinks.h"
+@@ -20,29 +21,32 @@ #include "encoding/encoding.h"
+ #include "util/memory.h"
++#define ELINKS_BZ_BUFFER_LENGTH BZ_MAX_UNUSED
++
+ struct bz2_enc_data {
+-      FILE *file;
+-      BZFILE *bzfile;
+-      int last_read; /* If err after last bzRead() was BZ_STREAM_END.. */
++      int fdread;
++      bz_stream fbz_stream;
++      int last_read; /* If err after last bzDecompress was BZ_STREAM_END.. */
++      unsigned char buf[ELINKS_BZ_BUFFER_LENGTH];
+ };
+-/* TODO: When it'll be official, use bzdopen() from Yoshioka Tsuneo. --pasky */
+-
+ static int
+ bzip2_open(struct stream_encoded *stream, int fd)
+ {
+       struct bz2_enc_data *data = mem_alloc(sizeof(*data));
+       int err;
++      stream->data = 0;
+       if (!data) {
+               return -1;
+       }
+-      data->last_read = 0;
+-
+-      data->file = fdopen(fd, "rb");
++      memset(data, 0, sizeof(struct bz2_enc_data) - ELINKS_BZ_BUFFER_LENGTH);
+-      data->bzfile = BZ2_bzReadOpen(&err, data->file, 0, 0, NULL, 0);
+-      if (!data->bzfile) {
++      data->last_read = 0;
++      data->fdread = fd;
++      
++      err = BZ2_bzDecompressInit(&data->fbz_stream, 0, 0);
++      if (err != BZ_OK) {
+               mem_free(data);
+               return -1;
+       }
+@@ -58,17 +62,44 @@ bzip2_read(struct stream_encoded *stream
+       struct bz2_enc_data *data = (struct bz2_enc_data *) stream->data;
+       int err = 0;
+-      if (data->last_read)
+-              return 0;
++      if (!data) return -1;
+-      len = BZ2_bzRead(&err, data->bzfile, buf, len);
++      assert(len > 0);        
+-      if (err == BZ_STREAM_END)
+-              data->last_read = 1;
+-      else if (err)
+-              return -1;
++      if (data->last_read) return 0;
++
++      data->fbz_stream.avail_out = len;
++      data->fbz_stream.next_out = buf;
++
++      do {    
++              if (data->fbz_stream.avail_in == 0) {
++                      int l = safe_read(data->fdread, data->buf,
++                                        ELINKS_BZ_BUFFER_LENGTH);
+-      return len;
++                      if (l == -1) {
++                              if (errno == EAGAIN)
++                                      break;
++                              else
++                                      return -1; /* I/O error */
++                      } else if (l == 0) {
++                              /* EOF. It is error: we wait for more bytes */
++                              return -1;
++                      }
++
++                      data->fbz_stream.next_in = data->buf;
++                      data->fbz_stream.avail_in = l;
++              }
++              
++              err = BZ2_bzDecompress(&data->fbz_stream);
++              if (err == BZ_STREAM_END) { 
++                      data->last_read = 1;
++                      break;
++              } else if (err != BZ_OK) { 
++                      return -1;
++              }
++      } while (data->fbz_stream.avail_out > 0);
++      
++      return len - data->fbz_stream.avail_out;
+ }
+ static unsigned char *
+@@ -148,11 +179,13 @@ static void
+ bzip2_close(struct stream_encoded *stream)
+ {
+       struct bz2_enc_data *data = (struct bz2_enc_data *) stream->data;
+-      int err;
+-      BZ2_bzReadClose(&err, data->bzfile);
+-      fclose(data->file);
+-      mem_free(data);
++      if (data) {
++              BZ2_bzDecompressEnd(&data->fbz_stream);
++              close(data->fdread);
++              mem_free(data);
++              stream->data = 0;
++      }
+ }
+ static unsigned char *bzip2_extensions[] = { ".bz2", ".tbz", NULL };
+diff --git a/src/protocol/http/http.c b/src/protocol/http/http.c
+index 87d468d..6f7469f 100644
+--- a/src/protocol/http/http.c
++++ b/src/protocol/http/http.c
+@@ -720,20 +720,13 @@ http_send_header(struct socket *socket)
+ #if defined(CONFIG_GZIP) || defined(CONFIG_BZIP2)
+       add_to_string(&header, "Accept-Encoding: ");
+-#ifdef BUG_517
+ #ifdef CONFIG_BZIP2
+       add_to_string(&header, "bzip2");
+ #endif
+-#endif
+-
+ #ifdef CONFIG_GZIP
+-
+-#ifdef BUG_517
+ #ifdef CONFIG_BZIP2
+       add_to_string(&header, ", ");
+ #endif
+-#endif
+-
+       add_to_string(&header, "gzip");
+ #endif
+       add_crlf_to_string(&header);
+@@ -1810,13 +1803,11 @@ #ifdef CONFIG_GZIP
+                   && (!strcasecmp(d, "gzip") || !strcasecmp(d, "x-gzip")))
+                       conn->content_encoding = ENCODING_GZIP;
+ #endif
+-#ifdef BUG_517
+ #ifdef CONFIG_BZIP2
+               if (file_encoding != ENCODING_BZIP2
+                   && (!strcasecmp(d, "bzip2") || !strcasecmp(d, "x-bzip2")))
+                       conn->content_encoding = ENCODING_BZIP2;
+ #endif
+-#endif
+               mem_free(d);
+       }
diff --git a/elinks-bug899.patch b/elinks-bug899.patch
new file mode 100644 (file)
index 0000000..0edfd40
--- /dev/null
@@ -0,0 +1,113 @@
+diff --git a/src/osdep/types.h b/src/osdep/types.h
+index 9d0f282..2404ac0 100644
+--- a/src/osdep/types.h
++++ b/src/osdep/types.h
+@@ -53,6 +53,28 @@
+ #endif
+ #endif
++#if defined(HAVE_LONG_LONG) && !defined(LLONG_MAX)
++#ifdef MAXLLONG
++#define LLONG_MAX MAXLLONG
++#elif SIZEOF_LONG_LONG == 8
++#define LLONG_MAX 9223372036854775807LL
++#elif SIZEOF_LONG_LONG == 4
++#define LLONG_MAX LONG_MAX
++#endif
++#endif
++
++#ifndef OFFT_MAX
++#if defined(HAVE_LONG_LONG) && SIZEOF_OFF_T == SIZEOF_LONG_LONG
++#define OFFT_MAX LLONG_MAX
++#elif SIZEOF_OFF_T == SIZEOF_LONG
++#define OFFT_MAX LONG_MAX
++#elif SIZEOF_OFF_T == SIZEOF_INT
++#define OFFT_MAX INT_MAX
++#elif SIZEOF_OFF_T == SIZEOF_SHORT
++#define OFFT_MAX SHRT_MAX
++#endif
++#endif
++
+ #ifndef HAVE_UINT16_T
+ #if SIZEOF_CHAR == 2
+ typedef unsigned char uint16_t;
+diff --git a/src/protocol/ftp/ftp.c b/src/protocol/ftp/ftp.c
+index 87ec444..01e301b 100644
+--- a/src/protocol/ftp/ftp.c
++++ b/src/protocol/ftp/ftp.c
+@@ -1091,7 +1091,7 @@ display_dir_entry(struct cache_entry *cached, off_t *pos, int *tries,
+       add_to_string(&string, "   1 ftp      ftp ");
+       if (ftp_info->size != FTP_SIZE_UNKNOWN) {
+-              add_format_to_string(&string, "%12lu ", ftp_info->size);
++              add_format_to_string(&string, "%12" OFF_T_FORMAT " ", ftp_info->size);
+       } else {
+               add_to_string(&string, "           - ");
+       }
+diff --git a/src/protocol/ftp/parse.c b/src/protocol/ftp/parse.c
+index b5caeba..be4326e 100644
+--- a/src/protocol/ftp/parse.c
++++ b/src/protocol/ftp/parse.c
+@@ -41,10 +41,10 @@
+ #define skip_nonspace_end(src, end) \
+       do { while ((src) < (end) && *(src) != ' ') (src)++; } while (0)
+-static long
+-parse_ftp_number(unsigned char **src, unsigned char *end, long from, long to)
++static off_t
++parse_ftp_number(unsigned char **src, unsigned char *end, off_t from, off_t to)
+ {
+-      long number = 0;
++      off_t number = 0;
+       unsigned char *pos = *src;
+       for (; pos < end && isdigit(*pos); pos++)
+@@ -104,7 +104,7 @@ parse_ftp_eplf_response(struct ftp_file_info *info, unsigned char *src, int len)
+               case FTP_EPLF_SIZE:
+                       if (src >= pos) break;
+-                      info->size = parse_ftp_number(&src, pos, 0, LONG_MAX);
++                      info->size = parse_ftp_number(&src, pos, 0, OFFT_MAX);
+                       break;
+               case FTP_EPLF_MTIME:
+@@ -278,7 +278,7 @@ parse_ftp_unix_response(struct ftp_file_info *info, unsigned char *src, int len)
+                               break;
+                       }
+-                      info->size = parse_ftp_number(&src, pos, 0, LONG_MAX);
++                      info->size = parse_ftp_number(&src, pos, 0, OFFT_MAX);
+                       break;
+               case FTP_UNIX_DAY:
+@@ -543,7 +543,7 @@ parse_ftp_winnt_response(struct ftp_file_info *info, unsigned char *src, int len
+       memset(&mtime, 0, sizeof(mtime));
+       mtime.tm_isdst = -1;
+-      mtime.tm_mon = parse_ftp_number(&src, end, 1, 12);
++      mtime.tm_mon = (int) parse_ftp_number(&src, end, 1, 12);
+       if (src + 2 >= end || *src != '-')
+               return NULL;
+@@ -587,7 +587,7 @@ parse_ftp_winnt_response(struct ftp_file_info *info, unsigned char *src, int len
+       } else if (isdigit(*src)) {
+               info->type = FTP_FILE_PLAINFILE;
+-              info->size = parse_ftp_number(&src, end, 0, LONG_MAX);
++              info->size = parse_ftp_number(&src, end, 0, OFFT_MAX);
+               info->permissions = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
+       } else {
+diff --git a/src/protocol/ftp/parse.h b/src/protocol/ftp/parse.h
+index e777398..18cfacd 100644
+--- a/src/protocol/ftp/parse.h
++++ b/src/protocol/ftp/parse.h
+@@ -19,7 +19,7 @@ struct ftp_file_info {
+       enum ftp_file_type type;        /* File type */
+       struct string name;             /* File name */
+       struct string symlink;          /* Link to which file points */
+-      long size;                      /* File size. -1 if unknown. */
++      off_t size;                     /* File size. -1 if unknown. */
+       time_t mtime;                   /* Modification time */
+       unsigned int local_time_zone:1; /* What format the mtime is in */
+       mode_t permissions;             /* File permissions */
diff --git a/elinks-cgi.patch b/elinks-cgi.patch
new file mode 100644 (file)
index 0000000..0e815cc
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/src/protocol/uri.c b/src/protocol/uri.c
+index df22646..e9c3b39 100644
+--- a/src/protocol/uri.c
++++ b/src/protocol/uri.c
+@@ -149,7 +149,7 @@ static int
+ check_uri_file(const unsigned char *name)
+ {
+       /* Check POST_CHAR etc ... */
+-      static const unsigned char chars[] = POST_CHAR_S "#?";
++      static const unsigned char chars[] = POST_CHAR_S "#";
+       return strcspn(name, chars);
+ }
diff --git a/elinks-chunked.patch b/elinks-chunked.patch
new file mode 100644 (file)
index 0000000..29b2d9d
--- /dev/null
@@ -0,0 +1,139 @@
+diff --git a/src/protocol/http/http.c b/src/protocol/http/http.c
+index 1264f6f..6de3078 100644
+--- a/src/protocol/http/http.c
++++ b/src/protocol/http/http.c
+@@ -983,29 +983,23 @@ decompress_data(struct connection *conn,
+               int *new_len)
+ {
+       struct http_connection_info *http = conn->info;
+-      /* to_read is number of bytes to be read from the decoder. It is 65536
+-       * (then we are just emptying the decoder buffer as we finished the walk
+-       * through the incoming stream already) or PIPE_BUF / 2 (when we are
+-       * still walking through the stream - then we write PIPE_BUF / 2 to the
+-       * pipe and read it back to the decoder ASAP; the point is that we can't
+-       * write more than PIPE_BUF to the pipe at once, but we also have to
+-       * never let read_encoded() (gzread(), in fact) to empty the pipe - that
+-       * causes further malfunction of zlib :[ ... so we will make sure that
+-       * we will always have at least PIPE_BUF / 2 + 1 in the pipe (returning
+-       * early otherwise)). */
+-      int to_read = PIPE_BUF / 2, did_read = 0;
++      enum { NORMAL, FINISHING } state = NORMAL;
++      int did_read = 0;
+       int *length_of_block;
+       unsigned char *output = NULL;
+-      length_of_block = (http->length == LEN_CHUNKED ? &http->chunk_remaining
+-                                                     : &http->length);
+-
+ #define BIG_READ 65536
+-      if (!*length_of_block) {
+-              /* Going to finish this decoding bussiness. */
+-              /* Some nicely big value - empty encoded output queue by reading
+-               * big chunks from it. */
+-              to_read = BIG_READ;
++
++      if (http->length == LEN_CHUNKED) {
++              if (http->chunk_remaining == CHUNK_ZERO_SIZE)
++                      state = FINISHING;
++              length_of_block = &http->chunk_remaining;
++      } else {
++              length_of_block = &http->length;
++              if (!*length_of_block) {
++                      /* Going to finish this decoding bussiness. */
++                      state = FINISHING;
++              }
+       }
+       if (conn->content_encoding == ENCODING_NONE) {
+@@ -1024,14 +1018,13 @@ #define BIG_READ 65536
+       }
+       do {
+-              int init = 0;
++              unsigned char *tmp;
+-              if (to_read == PIPE_BUF / 2) {
++              if (state == NORMAL) {
+                       /* ... we aren't finishing yet. */
+-                      int written = safe_write(conn->stream_pipes[1], data,
+-                                               len > to_read ? to_read : len);
++                      int written = safe_write(conn->stream_pipes[1], data, len);
+-                      if (written > 0) {
++                      if (written >= 0) {
+                               data += written;
+                               len -= written;
+@@ -1042,7 +1035,7 @@ #define BIG_READ 65536
+                                * non-keep-alive and chunked */
+                               if (!http->length) {
+                                       /* That's all, folks - let's finish this. */
+-                                      to_read = BIG_READ;
++                                      state = FINISHING;
+                               } else if (!len) {
+                                       /* We've done for this round (but not done
+                                        * completely). Thus we will get out with
+@@ -1061,28 +1054,26 @@ #define BIG_READ 65536
+                       conn->stream = open_encoded(conn->stream_pipes[0],
+                                       conn->content_encoding);
+                       if (!conn->stream) return NULL;
+-                      /* On "startup" pipe is treated with care, but if everything
+-                       * was already written to the pipe, caution isn't necessary */
+-                      else if (to_read != BIG_READ) init = 1;
+-              } else init = 0;
++              }
+-              output = (unsigned char *) mem_realloc(output, *new_len + to_read);
+-              if (!output) break;
++              tmp = mem_realloc(output, *new_len + BIG_READ);
++              if (!tmp) break;
++              output = tmp;
++
++              did_read = read_encoded(conn->stream, output + *new_len, BIG_READ);
+-              did_read = read_encoded(conn->stream, output + *new_len,
+-                                      init ? PIPE_BUF / 32 : to_read); /* on init don't read too much */
+               if (did_read > 0) *new_len += did_read;
+-              else if (did_read == -1) {
+-                      mem_free_set(&output, NULL);
+-                      *new_len = 0;
+-                      break; /* Loop prevention (bug 517), is this correct ? --Zas */
++              else {
++                      if (did_read < 0) state = FINISHING;
++                      break;
+               }
+-      } while (len || did_read == BIG_READ);
++      } while (len || (did_read == BIG_READ));
+-      shutdown_connection_stream(conn);
++      if (state == FINISHING) shutdown_connection_stream(conn);
+       return output;
+ }
++
+ static int
+ is_line_in_buffer(struct read_buffer *rb)
+ {
+@@ -1206,11 +1197,8 @@ read_chunked_http_data(struct connection
+               } else {
+                       unsigned char *data;
+                       int data_len;
+-                      int len;
+                       int zero = (http->chunk_remaining == CHUNK_ZERO_SIZE);
+-
+-                      if (zero) http->chunk_remaining = 0;
+-                      len = http->chunk_remaining;
++                      int len = zero ? 0 : http->chunk_remaining;
+                       /* Maybe everything necessary didn't come yet.. */
+                       int_upper_bound(&len, rb->length);
+@@ -1850,8 +1838,7 @@ #endif
+               conn->cached->encoding_info = stracpy(get_encoding_name(conn->content_encoding));
+       }
+-      if (http->length == -1
+-          || (PRE_HTTP_1_1(http->recv_version) && http->close))
++      if (http->length == -1 || http->close)
+               socket->state = SOCKET_END_ONCLOSE;
+       read_http_data(socket, rb);
diff --git a/elinks-date-format.patch b/elinks-date-format.patch
new file mode 100644 (file)
index 0000000..603a21d
--- /dev/null
@@ -0,0 +1,83 @@
+--- elinks-0.11.3/src/util/file.c.orig 2007-12-02 01:03:26.631355000 +0100
++++ elinks-0.11.3/src/util/file.c      2007-12-02 01:19:06.416911036 +0100
+@@ -461,16 +461,16 @@ stat_date(struct string *string, struct 
+               if (current_time > when + 6L * 30L * 24L * 60L * 60L
+                   || current_time < when - 60L * 60L)
+-                      fmt = "%b %e  %Y";
++                      fmt = gettext("%b %e  %Y");
+               else
+-                      fmt = "%b %e %H:%M";
++                      fmt = gettext("%b %e %H:%M");
+               add_date_to_string(string, fmt, &when);
+               add_char_to_string(string, ' ');
+               return;
+       }
+ #endif
+-      add_to_string(string, "             ");
++      add_to_string(string, gettext("             "));
+ }
+--- elinks-0.11.3/po/pl.po.orig        2007-04-15 22:51:02.000000000 +0200
++++ elinks-0.11.3/po/pl.po     2007-12-02 01:29:45.701341779 +0100
+@@ -7428,6 +7428,18 @@
+ msgid "Use EPSV instead of EPRT (passive vs active mode, IPv6 only)."
+ msgstr "U¿ywaj EPSV zamiast EPRT (tryb pasywny kontra aktywny, tylko IPv6)."
++#: src/protocol/ftp/ftp.c:1160 src/util/file.c:464
++msgid "%b %e  %Y"
++msgstr "%e.%m.%Y "
++
++#: src/protocol/ftp/ftp.c:1162 src/util/file.c:466
++msgid "%b %e %H:%M"
++msgstr "%e.%m %H:%M"
++
++#: src/protocol/ftp/ftp.c:1165 src/protocol/ftp/ftp.c:1172 src/util/file.c:473
++msgid "             "
++msgstr "             "
++
+ #. name:
+ #: src/protocol/gopher/gopher.c:46
+ msgid "Gopher"
+--- elinks-0.12pre1/src/protocol/ftp/ftp.c.old 2008-07-01 18:51:59.000000000 +0200
++++ elinks-0.12pre1/src/protocol/ftp/ftp.c     2008-07-01 18:59:09.000000000 +0200
+@@ -1185,7 +1185,7 @@ display_dir_entry(struct cache_entry *ca
+               /* LC_TIME=fi_FI.UTF_8 can generate "elo___ 31 23:59"
+                * where each _ denotes U+00A0 encoded as 0xC2 0xA0,
+                * thus needing a 19-byte buffer.  */
+-              unsigned char date[80];
++              unsigned char date[MAX_STR_LEN];
+               int wr;
+               if (ftp_info->local_time_zone)
+@@ -1195,16 +1195,16 @@ display_dir_entry(struct cache_entry *ca
+               if (current_time > when + 6L * 30L * 24L * 60L * 60L
+                   || current_time < when - 60L * 60L)
+-                      fmt = "%b %e  %Y";
++                      fmt = gettext("%b %e  %Y");
+               else
+-                      fmt = "%b %e %H:%M";
++                      fmt = gettext("%b %e %H:%M");
+               wr = strftime(date, sizeof(date), fmt, when_tm);
+               add_cp_html_to_string(&string, format->libc_codepage,
+                                     date, wr);
+       } else
+ #endif
+-      add_to_string(&string, "            ");
++      add_to_string(&string, gettext("             "));
+       /* TODO: Above, the number of spaces might not match the width
+        * of the string generated by strftime.  It depends on the
+        * locale.  So if ELinks knows the timestamps of some FTP
+@@ -1218,8 +1218,6 @@ display_dir_entry(struct cache_entry *ca
+        * Any solution chosen here should also be applied to the
+        * file: protocol handler.  */
+-      add_char_to_string(&string, ' ');
+-
+       if (ftp_info->type == FTP_FILE_DIRECTORY && format->colorize_dir) {
+               add_to_string(&string, "<font color=\"");
+               add_to_string(&string, format->dircolor);
diff --git a/elinks-fbterm.patch b/elinks-fbterm.patch
new file mode 100644 (file)
index 0000000..99c6ab4
--- /dev/null
@@ -0,0 +1,223 @@
+commit e23a8ec12164af00922751aea0dfa285d3e240b4
+Author: Witold Filipczyk <witekfl@poczta.onet.pl>
+Date:   Fri Mar 27 19:44:46 2009 +0100
+
+    Support for fbterm.
+    
+    fbterm uses different 256 color sequences than xterm.
+    color256_seqs are part of the driver info.
+
+diff --git a/src/config/options.c b/src/config/options.c
+index 14ab8db..00c9a25 100644
+--- a/src/config/options.c
++++ b/src/config/options.c
+@@ -703,6 +703,9 @@ register_autocreated_options(void)
+       get_opt_int("terminal.xterm-256color.type") = 1;
+       get_opt_int("terminal.xterm-256color.colors") = COLOR_MODE_256;
+       get_opt_bool("terminal.xterm-256color.underline") = 1;
++      get_opt_int("terminal.fbterm.type") = 5;
++      get_opt_int("terminal.fbterm.colors") = COLOR_MODE_256;
++      get_opt_bool("terminal.fbterm.underline") = 1;
+ #endif
+ }
+diff --git a/src/config/options.inc b/src/config/options.inc
+index b9c6a7f..c4e4a9b 100644
+--- a/src/config/options.inc
++++ b/src/config/options.inc
+@@ -879,20 +879,22 @@ static struct option_info config_options_info[] = {
+        * 4 (TERM_FREEBSD) outputs characters in the 0x80...0x9F
+        *   range, which FreeBSD 4.0 (but not 5.0) treated as
+        *   graphical.
++       * 5 (TERM_FBTERM)
+        *
+        * When UTF-8 I/O is enabled, ELinks outputs (almost) the same
+        * characters as above but encodes them in UTF-8 and does not
+        * switch charsets.  So, it will work in any terminal that
+        * understands UTF-8 and has the characters in its font.  */
+       INIT_OPT_INT("terminal._template_", N_("Type"),
+-              "type", 0, 0, 4, 0,
++              "type", 0, 0, 5, 0,
+               N_("Terminal type; matters mostly only when drawing frames "
+               "and dialog box borders:\n"
+               "0 is dumb terminal type, ASCII art\n"
+               "1 is VT100, simple but portable\n"
+               "2 is Linux, you get double frames and other goodies\n"
+               "3 is KOI-8\n"
+-              "4 is FreeBSD")),
++              "4 is FreeBSD\n"
++              "5 is fbterm")),
+       INIT_OPT_BOOL("terminal._template_", N_("Always encode xterm title in ISO-8859-1"),
+               "latin1_title", 0, 1,
+diff --git a/src/terminal/screen.c b/src/terminal/screen.c
+index 8f838a6..bb3cbb1 100644
+--- a/src/terminal/screen.c
++++ b/src/terminal/screen.c
+@@ -189,6 +189,19 @@ static const struct string underline_seqs[] = {
+  *
+  * @todo TODO: termcap/terminfo can maybe gradually be introduced via
+  *           this structure. We'll see. --jonas */
++
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++static const struct string color256_seqs[] = {
++      /* foreground: */       TERM_STRING("\033[0;38;5;%dm"),
++      /* background: */       TERM_STRING("\033[48;5;%dm"),
++};
++
++static const struct string fbterm_color256_seqs[] = {
++      /* foreground: */       TERM_STRING("\033[m\033[1;%d}"),
++      /* background: */       TERM_STRING("\033[2;%d}"),
++};
++#endif
++
+ struct screen_driver {
+       LIST_HEAD(struct screen_driver);
+@@ -215,6 +228,9 @@ struct screen_driver {
+               /** The color mode */
+               enum color_mode color_mode;
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++              const struct string *color256_seqs;
++#endif
+               /** These are directly derived from the terminal options. */
+               unsigned int transparent:1;
+@@ -237,6 +253,9 @@ static const struct screen_driver_opt dumb_screen_driver_opt = {
+       /* frame_seqs: */       NULL,
+       /* underline: */        underline_seqs,
+       /* color_mode: */       COLOR_MODE_16,
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++      /* 256 colors: */       color256_seqs,
++#endif
+       /* transparent: */      1,
+ #ifdef CONFIG_UTF8
+       /* utf8_cp: */          0,
+@@ -250,6 +269,9 @@ static const struct screen_driver_opt vt100_screen_driver_opt = {
+       /* frame_seqs: */       vt100_frame_seqs,
+       /* underline: */        underline_seqs,
+       /* color_mode: */       COLOR_MODE_16,
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++      /* 256 colors: */       color256_seqs,
++#endif
+       /* transparent: */      1,
+ #ifdef CONFIG_UTF8
+       /* utf8_cp: */          0,
+@@ -263,6 +285,9 @@ static const struct screen_driver_opt linux_screen_driver_opt = {
+       /* frame_seqs: */       NULL,           /* No m11_hack */
+       /* underline: */        underline_seqs,
+       /* color_mode: */       COLOR_MODE_16,
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++      /* 256 colors: */       color256_seqs,
++#endif
+       /* transparent: */      1,
+ #ifdef CONFIG_UTF8
+       /* utf8_cp: */          0,
+@@ -276,6 +301,9 @@ static const struct screen_driver_opt koi8_screen_driver_opt = {
+       /* frame_seqs: */       NULL,
+       /* underline: */        underline_seqs,
+       /* color_mode: */       COLOR_MODE_16,
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++      /* 256 colors: */       color256_seqs,
++#endif
+       /* transparent: */      1,
+ #ifdef CONFIG_UTF8
+       /* utf8_cp: */          0,
+@@ -289,12 +317,35 @@ static const struct screen_driver_opt freebsd_screen_driver_opt = {
+       /* frame_seqs: */       NULL,           /* No m11_hack */
+       /* underline: */        underline_seqs,
+       /* color_mode: */       COLOR_MODE_16,
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++      /* 256 colors: */       color256_seqs,
++#endif
+       /* transparent: */      1,
+ #ifdef CONFIG_UTF8
+       /* utf8_cp: */          0,
+ #endif /* CONFIG_UTF8 */
++#ifdef CONFIG_COMBINE
++      /* combine */           0,
++#endif /* CONFIG_COMBINE */
+ };
++/** Default options for ::TERM_LINUX.  */
++static const struct screen_driver_opt fbterm_screen_driver_opt = {
++      /* charsets: */         { -1, -1 },     /* No UTF8 I/O */
++      /* frame: */            NULL,
++      /* frame_seqs: */       NULL,           /* No m11_hack */
++      /* underline: */        underline_seqs,
++      /* color_mode: */       COLOR_MODE_16,
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
++      /* 256 colors: */       fbterm_color256_seqs,
++#endif
++      /* transparent: */      1,
++#ifdef CONFIG_UTF8
++      /* utf8_cp: */          0,
++#endif /* CONFIG_UTF8 */
++};
++
++
+ /** Default options for all the different types of terminals.
+  * XXX: Keep in sync with enum term_mode_type. */
+ static const struct screen_driver_opt *const screen_driver_opts[] = {
+@@ -303,6 +354,7 @@ static const struct screen_driver_opt *const screen_driver_opts[] = {
+       /* TERM_LINUX: */       &linux_screen_driver_opt,
+       /* TERM_KOI8: */        &koi8_screen_driver_opt,
+       /* TERM_FREEBSD: */     &freebsd_screen_driver_opt,
++      /* TERM_FBTERM: */      &fbterm_screen_driver_opt,
+ };
+ #define use_utf8_io(driver)   ((driver)->opt.charsets[0] != -1)
+@@ -353,7 +405,7 @@ set_screen_driver_opt(struct screen_driver *driver, struct option *term_spec)
+                * characters encoded in UTF-8 are already unambiguous.  */
+               driver->opt.frame_seqs = NULL;
+-              if (driver->type == TERM_LINUX) {
++              if (driver->type == TERM_LINUX || driver->type == TERM_FBTERM) {
+                       if (get_opt_bool_tree(term_spec, "restrict_852"))
+                               driver->opt.frame = frame_restrict;
+                       driver->opt.charsets[1] = get_cp_index("cp437");
+@@ -754,11 +806,6 @@ add_char16(struct string *screen, struct screen_driver *driver,
+       add_char_data(screen, driver, ch->data, border);
+ }
+-#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
+-static const struct string color256_seqs[] = {
+-      /* foreground: */       TERM_STRING("\033[0;38;5;%dm"),
+-      /* background: */       TERM_STRING("\033[48;5;%dm"),
+-};
+ static inline void
+ add_char_color(struct string *screen, const struct string *seq, unsigned char color)
+@@ -810,6 +857,7 @@ add_char_color(struct string *screen, const struct string *seq, unsigned char co
+ #define add_background_color(str, seq, chr) add_char_color(str, &(seq)[1], (chr)->color[1])
+ #define add_foreground_color(str, seq, chr) add_char_color(str, &(seq)[0], (chr)->color[0])
++#if defined(CONFIG_88_COLORS) || defined(CONFIG_256_COLORS)
+ /** Time critical section. */
+ static inline void
+ add_char256(struct string *screen, struct screen_driver *driver,
+@@ -853,9 +901,9 @@ add_char256(struct string *screen, struct screen_driver *driver,
+          ) {
+               copy_color_256(state->color, ch->color);
+-              add_foreground_color(screen, color256_seqs, ch);
++              add_foreground_color(screen, driver->opt.color256_seqs, ch);
+               if (!driver->opt.transparent || ch->color[1] != 0) {
+-                      add_background_color(screen, color256_seqs, ch);
++                      add_background_color(screen, driver->opt.color256_seqs, ch);
+               }
+               if (ch->attr & SCREEN_ATTR_BOLD)
+diff --git a/src/terminal/terminal.h b/src/terminal/terminal.h
+index c2c1d79..1db36d0 100644
+--- a/src/terminal/terminal.h
++++ b/src/terminal/terminal.h
+@@ -18,6 +18,7 @@ enum term_mode_type {
+       TERM_LINUX,
+       TERM_KOI8,
+       TERM_FREEBSD,
++      TERM_FBTERM,
+ };
+ /** This is a bitmask describing the environment we are living in,
diff --git a/elinks-home_etc.patch b/elinks-home_etc.patch
new file mode 100644 (file)
index 0000000..611364d
--- /dev/null
@@ -0,0 +1,27 @@
+--- elinks-0.12pre1/doc/man/man1/elinks.1.in.old       2008-07-01 02:11:44.000000000 +0200
++++ elinks-0.12pre1/doc/man/man1/elinks.1.in   2008-07-01 18:36:50.000000000 +0200
+@@ -315,6 +315,12 @@ The path to the users home directory. Us
+ ~/.
+ .RE
+ .PP
++HOME_ETC
++.RS 4
++If set the location of the directory containing configuration files
++is \fI$HOME_ETC/.elinks/\fR instead of \fI~/.elinks/\fR.
++.RE
++.PP
+ WWW_HOME
+ .RS 4
+ Homepage location (as in
+--- elinks-0.12pre1/src/config/home.c.old      2008-07-01 02:11:44.000000000 +0200
++++ elinks-0.12pre1/src/config/home.c  2008-07-01 18:41:01.000000000 +0200
+@@ -110,7 +110,8 @@ static unsigned char *
+ get_home(void)
+ {
+       unsigned char *home_elinks;
+-      unsigned char *envhome = getenv("HOME");
++      unsigned char *home_etc = getenv("HOME_ETC");
++      unsigned char *envhome = home_etc ? home_etc : getenv("HOME");
+       unsigned char *home = NULL;
+       if (!home && envhome)
diff --git a/elinks-mailcap_DISPLAY.patch b/elinks-mailcap_DISPLAY.patch
new file mode 100644 (file)
index 0000000..fc0197b
--- /dev/null
@@ -0,0 +1,106 @@
+bug 638: Save, set and restore the DISPLAY environment variable.
+
+Thanks to this trick the appropriate handler is executed,
+even in a mixed (X11, framebuffer) environment.
+
+---
+commit 65a3518a912d6cc6aa38cee4a4142299d7a25cc7
+tree 47b6a1c4af22420fef498ac26dd0955e79428024
+parent 81f8ee1fa2b94ef40460eb4a42710e1ed9e22c98
+author Witold Filipczyk <witekfl@poczta.onet.pl> Sun, 16 Mar 2008 16:29:32 +0100
+committer Witold Filipczyk <nobody@nowhere> Sun, 16 Mar 2008 16:29:32 +0100
+
+ configure.in               |    1 +
+ src/mime/backend/mailcap.c |   58 +++++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 58 insertions(+), 1 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 0a867ae..5cfeaa9 100644
+--- a/configure.in
++++ b/configure.in
+@@ -307,6 +307,7 @@ AC_CHECK_FUNCS(gettimeofday clock_gettime)
+ AC_CHECK_FUNCS([cygwin_conv_to_full_win32_path])
+ AC_CHECK_FUNCS(setenv putenv, HAVE_SETENV_OR_PUTENV=yes)
++AC_CHECK_FUNCS(unsetenv)
+ AC_CHECK_FUNCS(getuid, HAVE_GETUID=yes)
+ AC_CHECK_FUNCS(geteuid, HAVE_GETEUID=yes)
+diff --git a/src/mime/backend/mailcap.c b/src/mime/backend/mailcap.c
+index 76ea78b..70e270d 100644
+--- a/src/mime/backend/mailcap.c
++++ b/src/mime/backend/mailcap.c
+@@ -646,8 +646,57 @@ get_mailcap_entry(unsigned char *type)
+       return entry;
+ }
++#if defined(HAVE_SETENV) || defined(HAVE_PUTENV)
++/* restore == 0 set DISPLAY
++ * restore == 1 restore DISPLAY
++ */
++static void
++set_display(int xwin, int restore)
++{
++      static unsigned char *display = NULL;
++
++      if (!restore) {
++              display = getenv("DISPLAY");
++              if (display) display = stracpy(display);
++              if (xwin) {
++#ifdef HAVE_SETENV
++                      setenv("DISPLAY", ":0", 1);
++#else
++                      putenv("DISPLAY=:0");
++#endif
++              } else {
++#ifdef HAVE_UNSETENV
++                      unsetenv("DISPLAY");
++#else
++                      putenv("DISPLAY");
++#endif
++              }
++      } else { /* restore DISPLAY */
++              if (display) {
++#ifdef HAVE_SETENV
++                      setenv("DISPLAY", display, 1);
++#else
++                      {
++                              static unsigned char DISPLAY[1024] = { 'D','I','S','P','L','A','Y','=' };
++
++                              strncpy(DISPLAY + 8, display, 1023 - 8);
++                              putenv(DISPLAY);
++                      }
++#endif
++                      mem_free(display);
++              } else {
++#ifdef HAVE_UNSETENV
++                      unsetenv("DISPLAY");
++#else
++                      putenv("DISPLAY");
++#endif
++              }
++      }
++}
++#endif
++
+ static struct mime_handler *
+-get_mime_handler_mailcap(unsigned char *type, int options)
++get_mime_handler_mailcap(unsigned char *type, int xwin)
+ {
+       struct mailcap_entry *entry;
+       struct mime_handler *handler;
+@@ -658,7 +707,14 @@ get_mime_handler_mailcap(unsigned char *type, int options)
+           || (!mailcap_map && !init_mailcap_map()))
+               return NULL;
++#if defined(HAVE_SETENV) || defined(HAVE_PUTENV)
++      set_display(xwin, 0);
++#endif
+       entry = get_mailcap_entry(type);
++
++#if defined(HAVE_SETENV) || defined(HAVE_PUTENV)
++      set_display(xwin, 1);
++#endif
+       if (!entry) return NULL;
+       program = format_command(entry->command, type, entry->copiousoutput);
diff --git a/elinks-old_incremental.patch b/elinks-old_incremental.patch
new file mode 100644 (file)
index 0000000..94b57c7
--- /dev/null
@@ -0,0 +1,10 @@
+--- elinks-0.12pre1/src/viewer/text/search.c.orig      2008-07-01 02:11:44.000000000 +0200
++++ elinks-0.12pre1/src/viewer/text/search.c   2008-08-21 23:13:57.000000000 +0200
+@@ -1551,6 +1551,7 @@
+               default:
+                       if (doc_view->document->nlinks) {
+                               handler = link_typeahead_handler;
++                              history = NULL;
+                               break;
+                       }
diff --git a/elinks-pl.po-update.patch b/elinks-pl.po-update.patch
new file mode 100644 (file)
index 0000000..d16d0fc
--- /dev/null
@@ -0,0 +1,353 @@
+diff --git a/po/pl.po b/po/pl.po
+index b658603..1430ad6 100644
+--- a/po/pl.po
++++ b/po/pl.po
+@@ -12,7 +12,7 @@ msgstr ""
+ "Project-Id-Version: ELinks 0.11.CVS\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2006-01-29 12:53+0100\n"
+-"PO-Revision-Date: 2006-01-11 00:40+0100\n"
++"PO-Revision-Date: 2006-12-05 20:35+0100\n"
+ "Last-Translator: Adam Golebiowski <adamg@pld-linux.org>\n"
+ "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+@@ -397,7 +397,7 @@ msgstr "Czy usun±æ zaznaczone zak³adki?"
+ #: src/bookmarks/dialogs.c:129
+ #, c-format
+ msgid "Delete the folder \"%s\" and all bookmarks in it?"
+-msgstr "Czy skasowaæ folder \"%s\" i znajduj±ce siê wnim zak³adki?"
++msgstr "Czy skasowaæ folder \"%s\" i znajduj±ce siê w nim zak³adki?"
+ #. delete_item_title
+ #: src/bookmarks/dialogs.c:131
+@@ -407,7 +407,7 @@ msgstr "Skasuj zak³adkê"
+ #. delete_item
+ #: src/bookmarks/dialogs.c:133
+ msgid "Delete this bookmark?"
+-msgstr "Czy skasowac t± zak³adkê?"
++msgstr "Czy skasowaæ tê zak³adkê?"
+ #. clear_all_items_title
+ #: src/bookmarks/dialogs.c:135
+@@ -1280,7 +1280,7 @@ msgid ""
+ "The ID maps to information that will be used when creating the\n"
+ "new instance. You don't want to use it."
+ msgstr ""
+-"U¿ywane wewnêtrznie podczas otwierania instacji ELinksa w nowych oknach.\n"
++"U¿ywane wewnêtrznie podczas otwierania instancji ELinksa w nowych oknach.\n"
+ "ID jest mapowane do informacji u¿ywanej podczas tworzenia nowej\n"
+ "instancji. Nie chcesz tego u¿ywaæ."
+@@ -1574,7 +1574,7 @@ msgstr ""
+ "numerze nie istnieje, to jest tworzony i bie¿±ca sesja staje siê sesj±\n"
+ "nadrzêdn± (co zwykle nie ma wiêkszego znaczenia dla Ciebie jako\n"
+ "zwyk³ego u¿ytkownika). Wiedz, ¿e normalnie nie bêdziesz chcia³ tego\n"
+-"u¿ywaæ, dopóki nie jeste¶ developerem i chcesz zrobiæ parê testów.\n"
++"u¿ywaæ, dopóki nie jeste¶ deweloperem i chcesz zrobiæ parê testów.\n"
+ "Je¶li chcesz oddzielne instancje raczej u¿yj -no-connect w linii\n"
+ "komend. Wiedz, ¿e normalnie ¿adne pliki stanu nie s± zapisywane\n"
+ "na dysk, gdy ta opcja jest u¿yta. Zobacz tak¿e -touch-files."
+@@ -1640,7 +1640,7 @@ msgstr ""
+ "## je¶li sobie tego ¿yczysz; plik ten jest edytowany przez ELinksa\n"
+ "## gdy zapisujesz konfiguracjê poprzez menad¿era ustawieñ, jednak\n"
+ "## tylko warto¶ci opcji bêd± zmienione a formatowanie, komentarze\n"
+-"## itp. pozostan± niezmienione.\n"
++"## i.t.p. pozostan± niezmienione.\n"
+ #: src/config/conf.c:728
+ msgid ""
+@@ -2297,7 +2297,6 @@ msgid "External editor"
+ msgstr "Zewnêtrzny edytor"
+ #: src/config/options.inc:195
+-#, fuzzy
+ msgid ""
+ "Path to the executable that ELinks should launch when the user\n"
+ "requests to edit a textarea with an external editor.\n"
+@@ -2306,10 +2305,10 @@ msgid ""
+ "default to \"vi\"."
+ msgstr ""
+ "¦cie¿ka do programu, który ELinks powinien uruchomiæ, gdy\n"
+-"u¿ytkownik zechce edytowaæ pole tekstowe przy u¿yciu\n"
++"u¿ytkownik zechce modyfikowaæ pole tekstowe przy u¿yciu\n"
+ "zewnêtrznego edytora.\n"
+ "\n"
+-"Je¶li nieustawione, ELinks u¿yje warto¶ci zmiennej\n"
++"Je¶li jest nieustawione, ELinks u¿yje warto¶ci zmiennej\n"
+ "¶rodowiskowej $EDITOR. Gdy $EDITOR jest pusty albo\n"
+ "nieustawiony, ELinks u¿yje \"vi\"."
+@@ -2405,7 +2404,7 @@ msgid ""
+ msgstr ""
+ "Maksymalna d³ugo¶æ etykiety obrazka (alt/title):\n"
+ "0   -  zawsze wy¶wietlaj pe³n± etykietê\n"
+-"1-500 - wy¶wietlaj eytkietê o takiej maksymalnej d³ugo¶ci;\n"
++"1-500 - wy¶wietlaj etykietê o takiej maksymalnej d³ugo¶ci;\n"
+ "      je¶li nazwa jest d³u¿sza, ¶rodek jest zastêpowany\n"
+ "      gwiazdkami"
+@@ -2546,7 +2545,7 @@ msgstr "Numerowanie odno¶ników"
+ #: src/config/options.inc:306
+ msgid "Display numbers next to the links."
+-msgstr "Czy wy¶wietlaæ liczby z prawej strony odno¶ników."
++msgstr "Czy wy¶wietlaæ numery odno¶ników."
+ #: src/config/options.inc:308
+ msgid "Handling of target=_blank"
+@@ -2591,7 +2590,7 @@ msgstr "Zg³aszanie brakuj±cych fragmentó
+ msgid "Open a message box when document has no tag with given id."
+ msgstr ""
+ "Czy otwieraæ okienko dialogowe z raportem, je¶li dokument nie posiada "
+-"zniacznika z podanym id."
++"znacznika z podanym id."
+ #: src/config/options.inc:334
+ msgid "Number keys select links"
+@@ -2672,7 +2671,7 @@ msgid ""
+ "operations."
+ msgstr ""
+ "Czy zezwoliæ na poziome przewijanie w przypadku, gdy\n"
+-"dokukment nie jest wiêkszy ni¿ szeroko¶æ ekranu. Przydatne\n"
++"dokument nie jest wiêkszy ni¿ szeroko¶æ ekranu. Przydatne\n"
+ "przy operacjach kopiowania/wklejania."
+ #: src/config/options.inc:371
+@@ -3199,7 +3198,7 @@ msgid ""
+ "Codepage used in dump output. 'System' stands for\n"
+ "a codepage determined by a selected locale."
+ msgstr ""
+-"Strona kodowa u¿yta podczasu zrzutu. 'System' oznacza\n"
++"Strona kodowa u¿yta podczas zrzutu. 'System' oznacza\n"
+ "i¿ zostanie okre¶lona przez wybrane locale."
+ #: src/config/options.inc:634
+@@ -3274,7 +3273,7 @@ msgstr "Czy pamiêtaæ historiê powrotów."
+ #
+ #: src/config/options.inc:670
+ msgid "HTML rendering"
+-msgstr "Renderowanie HTML-a"
++msgstr "Formatowanie HTML-a"
+ #: src/config/options.inc:672
+ msgid "Options concerning the display of HTML pages."
+@@ -3320,7 +3319,7 @@ msgstr "Pokazuj indeks górny (jako ^co¶)
+ #: src/config/options.inc:690
+ msgid "Rendering of html link element"
+-msgstr "Renderowanie elementu odno¶nika html"
++msgstr "Wy¶wietlanie elementu odno¶nika html"
+ #: src/config/options.inc:692
+ msgid ""
+@@ -3332,7 +3331,7 @@ msgid ""
+ "4 is type in addition\n"
+ "5 is everything"
+ msgstr ""
+-"W jaki sposób renderowaæ znaczniki <link> w nag³ówku HTML:\n"
++"W jaki sposób pokazywaæ znaczniki <link> w nag³ówku HTML:\n"
+ "0 - w ogóle\n"
+ "1 - tytu³\n"
+ "2 - dodatkowo nazwa\n"
+@@ -3365,7 +3364,7 @@ msgstr ""
+ #
+ #: src/config/options.inc:711
+ msgid "Plain rendering"
+-msgstr "Renderowanie zwyk³ego tekstu"
++msgstr "Formatowanie zwyk³ego tekstu"
+ #: src/config/options.inc:713
+ msgid "Options concerning the display of plain text pages."
+@@ -3398,7 +3397,6 @@ msgid "Rules for passing URIs to externa
+ msgstr "Zasady przekazywania URI do zewnêtrznych poleceñ."
+ #: src/config/options.inc:730
+-#, fuzzy
+ msgid ""
+ "A rule for passing URI to an external command.\n"
+ "The format is:\n"
+@@ -3411,7 +3409,7 @@ msgstr ""
+ "%c w ³añcuchu oznacza bie¿±cy URL\n"
+ "%% w ³añcuchu oznacza '%'\n"
+ "\n"
+-"Nie dodawaj apostrofów lub cudzys³owiów wokó³ %c."
++"Nie dodawaj apostrofów lub cudzys³owów wokó³ %c."
+ #. Keep options in alphabetical order.
+ #: src/config/options.inc:740
+@@ -3611,7 +3609,7 @@ msgid ""
+ "'System' stands for a codepage determined by a selected locale."
+ msgstr ""
+ "Strona kodowa u¿ywana do wy¶wietlania na terminalu.\n"
+-"'System' oznacza i¿ zostanie okreslona przez wybrane locale."
++"'System' oznacza i¿ zostanie okre¶lona przez wybrane locale."
+ #. Keep options in alphabetical order.
+ #: src/config/options.inc:840
+@@ -4453,7 +4451,7 @@ msgstr ""
+ "nienarodowych domen (zamiast zwykle dwóch). Niektóre\n"
+ "kraje posiadaj± domeny ogólnego u¿ytku drugiego poziomu\n"
+ "(np. .com.pl, .co.uk) i zezwolenie stronom na ustawienie\n"
+-"ciasteczka dla tych domen mo¿e byæ niebzpiecznie.\n"
++"ciasteczka dla tych domen mo¿e byæ niebezpiecznie.\n"
+ "Domy¶lnie ta opcja jest wy³±czona, poniewa¿ powoduje\n"
+ "b³êdy na wielu stronach."
+@@ -4748,7 +4746,7 @@ msgid "Copying"
+ msgstr "Kopiowanie"
+ #: src/dialogs/info.c:142
+-#, fuzzy, c-format
++#, c-format
+ msgid ""
+ "ELinks %s\n"
+ "\n"
+@@ -4766,12 +4764,12 @@ msgstr ""
+ "\n"
+ "(C) 1999 - 2002 Mikulas Patocka\n"
+ "(C) 2001 - 2004 Petr Baudis\n"
+-"(C) 2002 - 2005 Jonas Fonseca\n"
++"(C) 2002 - 2006 Jonas Fonseca\n"
+ "i inni\n"
+ "\n"
+-"Niniejszy program jest oprogramowaniem wolnodostêpnym; mo¿esz go "
++"Niniejszy program jest oprogramowaniem wolnodostêpnym; mo¿na go "
+ "rozprowadzaæ dalej i/lub modyfikowaæ na warunkach GPL GNU, wydanej przez "
+-"Free Software Foundation - wed³ug wersji 2-giej tej Licencji."
++"Free Software Foundation - wed³ug wersji 2. tej Licencji."
+ #: src/dialogs/info.c:170 src/dialogs/info.c:275
+ msgid "Resources"
+@@ -5492,7 +5490,6 @@ msgid "Ignore <noscript> content"
+ msgstr "Ignoruj zawarto¶æ <noscript>"
+ #: src/ecmascript/ecmascript.c:50
+-#, fuzzy
+ msgid ""
+ "Whether to ignore content enclosed by the <noscript> tag\n"
+ "when ECMAScript is enabled."
+@@ -5589,7 +5586,7 @@ msgstr "Czy usun±æ ten formularz?"
+ #. clear_all_items_title
+ #: src/formhist/dialogs.c:140
+ msgid "Clear all forms"
+-msgstr "Skasowanie wszystkich formualrzy"
++msgstr "Skasowanie wszystkich formularzy"
+ #. clear_all_items_title
+ #: src/formhist/dialogs.c:142
+@@ -6423,7 +6420,7 @@ msgstr ""
+ "Ten URL zawiera protokó³ nie obs³ugiwany natywnie przez\n"
+ "ELinks co oznacza i¿ ELinks bêdzie polega³ na zewnêtrznym\n"
+ "programie do jego obs³ugi. ¦ci±ganie URLi za pomoc±\n"
+-"zewnêtrznyc programów nie jest w tej chwili wspierane."
++"zewnêtrznych programów nie jest w tej chwili wspierane."
+ #: src/network/state.c:70
+ msgid "Bad HTTP response"
+@@ -6690,7 +6687,7 @@ msgstr "Zakres portów na którym mo¿na na
+ #: src/protocol/bittorrent/bittorrent.c:38
+ msgid "Minimum port"
+-msgstr "Minumalny numer portów"
++msgstr "Minimalny numer portów"
+ #: src/protocol/bittorrent/bittorrent.c:40
+ msgid "The minimum port to try and listen on."
+@@ -6732,7 +6729,7 @@ msgstr ""
+ #: src/protocol/bittorrent/bittorrent.c:61
+ msgid "Tracker announce interval"
+-msgstr "Czêstotliwo¶æ rozg³aszania tackera"
++msgstr "Czêstotliwo¶æ rozg³aszania trackera"
+ #: src/protocol/bittorrent/bittorrent.c:63
+ msgid ""
+@@ -6832,7 +6829,7 @@ msgstr ""
+ "Maksymalna liczba dozwolonych po³±czeñ zarówno z aktywnymi jak\n"
+ "i nieaktywnymi partnerami. Zwiêkszaj±c tê liczbê zwiêksza siê\n"
+ "szansê znalezienia dobrych partnerów do pobierania.\n"
+-"Jednak zbyt wiele po³±czeñ mo¿e prowadziæ do przytkanai TCP.\n"
++"Jednak zbyt wiele po³±czeñ mo¿e prowadziæ do przytkania TCP.\n"
+ "Po osi±gniêciu maksimum wszystkie nowe przychodz±ce po³±czenia\n"
+ "bêd± zamykane."
+@@ -6862,7 +6859,7 @@ msgstr ""
+ #: src/protocol/bittorrent/bittorrent.c:120
+ msgid "Length of requests"
+-msgstr "D³ugo¶æ ¿adañ"
++msgstr "D³ugo¶æ ¿±dañ"
+ #: src/protocol/bittorrent/bittorrent.c:122
+ msgid ""
+@@ -7017,7 +7014,7 @@ msgid ""
+ "room for stealing bandwidth."
+ msgstr ""
+ "Liczba sekund miêdzy uaktualnieniami stanu po³±czenia i, co bardziej\n"
+-"istotne, przyt³umaniem lub odt³umianiem po³±czeñ z partnerami.\n"
++"istotne, przyt³umianiem lub odt³umianiem po³±czeñ z partnerami.\n"
+ "Okres ten powinien byæ wystarczaj±co du¿y dla nowo odt³umionych\n"
+ "po³±czeñ, aby siê zaczê³y, ale wystarczaj±co ma³y, aby nie pozwoliæ\n"
+ "wolnym je¼d¼com wykra¶æ zbyt du¿o pasma."
+@@ -7120,9 +7117,9 @@ msgstr "Partnerzy"
+ #, c-format
+ msgid "%u connection"
+ msgid_plural "%u connections"
+-msgstr[0] "%d po³±czenie"
+-msgstr[1] "%d po³±czenia"
+-msgstr[2] "%d po³±czeñ"
++msgstr[0] "%u po³±czenie"
++msgstr[1] "%u po³±czenia"
++msgstr[2] "%u po³±czeñ"
+ #: src/protocol/bittorrent/dialogs.c:329 src/protocol/bittorrent/dialogs.c:345
+ #, c-format
+@@ -7136,9 +7133,9 @@ msgstr[2] "%u karmi±cych"
+ #, c-format
+ msgid "%u available"
+ msgid_plural "%u available"
+-msgstr[0] "%d dostêpny"
+-msgstr[1] "%d dostêpne"
+-msgstr[2] "%d dostêpnych"
++msgstr[0] "%u dostêpny"
++msgstr[1] "%u dostêpne"
++msgstr[2] "%u dostêpnych"
+ #: src/protocol/bittorrent/dialogs.c:340
+ msgid "Swarm info"
+@@ -7360,24 +7357,20 @@ msgstr "Finger"
+ #. name:
+ #: src/protocol/fsp/fsp.c:44 src/protocol/fsp/fsp.c:56
+-#, fuzzy
+ msgid "FSP"
+-msgstr "FTP"
++msgstr "FSP"
+ #: src/protocol/fsp/fsp.c:46
+-#, fuzzy
+ msgid "FSP specific options."
+-msgstr "Opcje dotycz±ce protoko³u FTP."
++msgstr "Opcje dotycz±ce protoko³u FSP."
+ #: src/protocol/fsp/fsp.c:48
+-#, fuzzy
+ msgid "Sort entries"
+-msgstr "Inteligentne przedrostki"
++msgstr "Sortowanie wpisów"
+ #: src/protocol/fsp/fsp.c:50
+-#, fuzzy
+ msgid "Whether to sort entries in directory listings."
+-msgstr "Pokazuj ukryte pliki przy wy¶wietlaniu katalogów"
++msgstr "Czy sortowaæ wpisy przy wy¶wietlania katalogu."
+ #. name:
+ #: src/protocol/ftp/ftp.c:55 src/protocol/ftp/ftp.c:85
+@@ -8526,6 +8519,3 @@ msgstr "B³±d zapisu"
+ #: src/viewer/text/view.c:1289
+ msgid "Error writing to file"
+ msgstr "B³±d zapisu do pliku"
+-
+-#~ msgid "~Clear"
+-#~ msgstr "Wy~czy¶æ"
diff --git a/elinks-pl.po.patch b/elinks-pl.po.patch
new file mode 100644 (file)
index 0000000..8939295
--- /dev/null
@@ -0,0 +1,84 @@
+--- elinks-0.11.3/po/pl.po.orig        2007-12-02 01:36:09.863233000 +0100
++++ elinks-0.11.3/po/pl.po     2007-12-14 23:53:13.549902494 +0100
+@@ -1,7 +1,7 @@
+ # Polish ELinks translation.
+ # Arkadiusz Sochala <jojoro@priv2.onet.pl>
+ # Grzegorz Golawski <grzegol@pld.org.pl>
+-# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2006
++# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2007
+ # Wojtek Bojdo/l <wojboj@lp.net.pl>
+ # Witold Filipczyk <witekfl@pld-linux.org>, 2001 - 2004
+ # Adam Go³êbiowski <adamg@pld-linux.org>, 2003-2006
+@@ -738,7 +738,7 @@
+ #: src/config/actions-main.inc:12
+ msgid "Open authentication manager"
+-msgstr "Otwórz menad¿era autentykacji"
++msgstr "Otwórz menad¿era uwierzytelniania"
+ #: src/config/actions-main.inc:13
+ msgid "Open bookmark manager"
+@@ -5192,7 +5192,7 @@
+ #: src/dialogs/menu.c:484
+ msgid "~Authentication"
+-msgstr "~Autentykacja"
++msgstr "~Uwierzytelnianie"
+ #: src/dialogs/menu.c:500
+ msgid "~File"
+@@ -6621,34 +6621,34 @@
+ #: src/protocol/auth/dialogs.c:214
+ #, c-format
+ msgid "Sorry, but auth entry \"%s\" cannot be deleted."
+-msgstr "Przykro mi, ale pozycja autentykacji \"%s\" nie mo¿e byæ usuniêta."
++msgstr "Przykro mi, ale pozycja uwierzytelniania \"%s\" nie mo¿e byæ usuniêta."
+ #. cant_delete_used_item
+ #: src/protocol/auth/dialogs.c:216
+ #, c-format
+ msgid "Sorry, but auth entry \"%s\" is being used by something else."
+ msgstr ""
+-"Przykro mi, ale pozycja autentykacji \"%s\" jest u¿ywana przez co¶ innego."
++"Przykro mi, ale pozycja uwierzytelniania \"%s\" jest u¿ywana przez co¶ innego."
+ #. delete_marked_items_title
+ #: src/protocol/auth/dialogs.c:222
+ msgid "Delete marked auth entries"
+-msgstr "Usuwanie zaznaczonych pozycji autentykacji"
++msgstr "Usuwanie zaznaczonych pozycji uwierzytelniania"
+ #. delete_marked_items
+ #: src/protocol/auth/dialogs.c:224
+ msgid "Delete marked auth entries?"
+-msgstr "Czy usun±æ zaznaczone pozycje autentykacji?"
++msgstr "Czy usun±æ zaznaczone pozycje uwierzytelniania?"
+ #. delete_item_title
+ #: src/protocol/auth/dialogs.c:230
+ msgid "Delete auth entry"
+-msgstr "Usuwanie pozycji autentykacji"
++msgstr "Usuwanie pozycji uwierzytelniania"
+ #. delete_item
+ #: src/protocol/auth/dialogs.c:232
+ msgid "Delete this auth entry?"
+-msgstr "Czy usun±æ tê pozycjê autentykacji?"
++msgstr "Czy usun±æ tê pozycjê uwierzytelniania?"
+ #. clear_all_items_title
+ #: src/protocol/auth/dialogs.c:234
+@@ -6658,11 +6658,11 @@
+ #. clear_all_items_title
+ #: src/protocol/auth/dialogs.c:236
+ msgid "Do you really want to remove all auth entries?"
+-msgstr "Czy na pewno chcesz skasowaæ wszystkie pozycje autentykacji?"
++msgstr "Czy na pewno chcesz skasowaæ wszystkie pozycje uwierzytelniania?"
+ #: src/protocol/auth/dialogs.c:263
+ msgid "Authentication manager"
+-msgstr "Zarz±dca autentykacji"
++msgstr "Zarz±dca uwierzytelniania"
+ #. name:
+ #: src/protocol/bittorrent/bittorrent.c:26
diff --git a/elinks.desktop b/elinks.desktop
new file mode 100644 (file)
index 0000000..fe99665
--- /dev/null
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=elinks
+Comment=Experimental Links www text browser
+Comment[pl]=Eksperymentalna wersja tekstowej przeglądarki WWW Links 
+Exec=elinks
+Terminal=true
+Icon=elinks
+Categories=ConsoleOnly;Network;WebBrowser;
+Type=Application
+# vi: encoding=utf-8
diff --git a/elinks.spec b/elinks.spec
new file mode 100644 (file)
index 0000000..dc4e318
--- /dev/null
@@ -0,0 +1,183 @@
+# TODO: consider lua51
+
+# Conditional build:
+%bcond_with    gnutls          # Enable GNUTLS SSL support (disables openssl)
+%bcond_with    lzma            # Enable lzma support
+%bcond_with    python          # Enable Python scripting support
+%bcond_with    ruby            # Enable (experimental) Ruby scripting support
+%bcond_with    smb             # Enable smb protocol support (smb requires libsmbclient)
+#The latest libsmbclient is GPLv3, while ELinks is GPL v2 only.
+%bcond_with    verbose         # verbose build (V=1)
+%bcond_with    x               # Use the X Window System
+%bcond_without 256             # Disable 256 colors support
+%bcond_without bittorrent      # Disable BitTorrent support
+%bcond_without cgi             # Disable Local CGI support
+%bcond_without fsp             # Disable FSP support
+%bcond_without guile           # Disable Guile scripting
+%bcond_without idn             # Disable Internation Domain Names support
+%bcond_without ipv6            # Disable IPv6 support
+%bcond_without js              # Disable experimental (yet quite usable) JavaScript support (using SpiderMonkey)
+%bcond_without led             # Disable LEDs
+%bcond_without lua             # Disable Lua scripting
+%bcond_without openssl         # Disable OpenSSL support
+%bcond_without perl            # Disable Perl scripting
+
+%if %{with gnutls}
+%undefine      with_openssl
+%endif
+
+%define                subver  pre5
+%define                rel             4
+Summary:       Experimantal Links (text WWW browser)
+Summary(es.UTF-8):     El links es un browser para modo texto, similar a lynx
+Summary(pl.UTF-8):     Eksperymentalny Links (tekstowa przeglądarka WWW)
+Summary(pt_BR.UTF-8):  O links é um browser para modo texto, similar ao lynx
+Name:          elinks
+Version:       0.12
+Release:       0.%{subver}.%{rel}
+Epoch:         1
+License:       GPL v2
+Group:         Applications/Networking
+Source0:       http://www.elinks.cz/download/%{name}-%{version}%{subver}.tar.bz2
+# Source0-md5: 92790144290131ac5e63b44548b45e08
+Source1:       %{name}.desktop
+Source2:       links.png
+Patch0:                %{name}-home_etc.patch
+Patch1:                %{name}-lua40.patch
+Patch2:                %{name}-date-format.patch
+Patch3:                %{name}-old_incremental.patch
+Patch4:                %{name}-fbterm.patch
+URL:           http://www.elinks.cz/
+BuildRequires: autoconf >= 2.61
+BuildRequires: automake
+BuildRequires: bzip2-devel
+BuildRequires: expat-devel
+%{?with_fsp:BuildRequires:     fsplib-devel}
+BuildRequires: gettext-devel
+%{?with_gnutls:BuildRequires:  gnutls-devel >= 1.2.5}
+BuildRequires: gpm-devel
+%{?with_guile:BuildRequires: guile-devel}
+%{?with_js:BuildRequires:      js-devel >= 1.5-0.rc6a.1}
+%{?with_idn:BuildRequires:     libidn-devel}
+%{?with_smb:BuildRequires:     libsmbclient-devel}
+%{?with_lua:BuildRequires:     lua50-devel}
+%{?with_lzma:BuildRequires:    lzma-devel}
+BuildRequires: ncurses-devel >= 5.1
+%{?with_openssl:BuildRequires: openssl-devel >= 0.9.7d}
+%{?with_perl:BuildRequires:    perl-devel}
+BuildRequires: pkgconfig
+%{?with_python:BuildRequires:  python-devel}
+%{?with_ruby:BuildRequires:    ruby-devel}
+BuildRequires: tre-devel
+BuildRequires: which
+BuildRequires: zlib-devel
+Suggests:      mailcap
+Provides:      webclient
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define                _sysconfdir     /etc/elinks
+%define                specflags_ia32  -fomit-frame-pointer
+
+%description
+This is the elinks tree - intended to provide feature-rich version of
+links, however not rock-stable and dedicated mainly for testing. Its
+purpose is to make alternative to links, until Mikulas will have some
+time to maintain it, and to test and tune various patches for Mikulas
+to be able to include them in the official links releases.
+
+%description -l es.UTF-8
+Links es un browser WWW modo texto, similar al Lynx. El links muestra
+tablas, hace baja archivos en segundo plano, y usa conexiones HTTP/1.1
+keepalive.
+
+%description -l pl.UTF-8
+Bogata w opcje i możliwości wersja tekstowej przeglądarki WWW - links.
+elinks jednak jest dedykowana głównie do testowania.
+
+%description -l pt_BR.UTF-8
+Links é um browser WWW modo texto, similar ao Lynx. O Links exibe
+tabelas, baixa arquivos em segundo plano, e usa as conexões HTTP/1.1
+keepalive.
+
+%prep
+%setup -q -n %{name}-%{version}%{subver}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+# restores old behaviour of type-ahead search
+#%patch3 -p1
+%patch4 -p1
+
+%build
+%{__aclocal}
+%{__autoconf}
+%{__autoheader}
+%configure \
+       %{?with_smb:--enable-smb} \
+       --disable-no-root \
+       %{!?debug:--enable-fastmem} \
+       %{?debug:--enable-debug} \
+       %{!?with_ipv6:--disable-ipv6} \
+       %{?with_bittorrent:--enable-bittorrent} \
+       %{?with_cgi:--enable-cgi} \
+       --enable-finger \
+       --enable-gopher \
+       --enable-nntp \
+       %{?with_256:--enable-256-colors} \
+       --enable-exmode \
+       %{?with_fsp:--enable-fsp} \
+       %{?with_leds:--enable-leds} \
+       --enable-marks \
+       --enable-html-highlight \
+       %{!?with_idn:--without-idn} \
+       %{?with_guile:--with-guile} \
+       %{?with_perl:--with-perl} \
+       %{!?with_lua:--without-lua} \
+       %{?with_python:--with-python} \
+       %{?with_ruby:--with-ruby} \
+       %{!?with_js:--without-spidermonkey} \
+       %{?with_gnutls:--with-gnutls} \
+       %{!?with_openssl:--without-openssl} \
+       --with%{!?with_x:out}-x \
+       %{!?with_lzma:--without-lzma}
+# xterm -e is default, one might want to change it to
+# something else
+#      --with-xterm="xterm -e"
+
+%{__make} %{?with_verbose:V=1}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_desktopdir} \
+       $RPM_BUILD_ROOT%{_datadir}/%{name} \
+       $RPM_BUILD_ROOT{%{_sysconfdir},%{_pixmapsdir}}
+
+%{__make} install %{?with_verbose:V=1} \
+       DESTDIR=$RPM_BUILD_ROOT
+
+rm $RPM_BUILD_ROOT%{_datadir}/locale/locale.alias
+
+cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
+
+%{?with_lua:install contrib/lua/*.lua $RPM_BUILD_ROOT%{_sysconfdir}}
+
+%find_lang %{name}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files -f %{name}.lang
+%defattr(644,root,root,755)
+%doc AUTHORS BUGS ChangeLog NEWS README SITES TODO doc/html/*.html
+%doc contrib/{keybind*,wipe-out-ssl*,lua/elinks-remote} contrib/conv/{*awk,*.pl,*.sh}
+%attr(755,root,root) %{_bindir}/elinks
+%{_mandir}/man1/elinks.1*
+%{_mandir}/man5/elinks.conf.5*
+%{_mandir}/man5/elinkskeys.5*
+%{_desktopdir}/elinks.desktop
+%{_pixmapsdir}/elinks.png
+%if %{with lua}
+%dir %{_sysconfdir}
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.lua
+%endif
This page took 0.211402 seconds and 4 git commands to generate.