summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Tupone <tupone@gentoo.org>2008-11-30 08:05:44 +0000
committerAlfredo Tupone <tupone@gentoo.org>2008-11-30 08:05:44 +0000
commitd0fc69fca8b56cf3f4c569ac3fae382513943bbf (patch)
tree6b81ab5a4f7e63db3092f68a8fa2ded24d03179d /games-mud/mcl
parentBig file in FILESDIR. Bug #248973 (diff)
downloadgentoo-2-d0fc69fca8b56cf3f4c569ac3fae382513943bbf.tar.gz
gentoo-2-d0fc69fca8b56cf3f4c569ac3fae382513943bbf.tar.bz2
gentoo-2-d0fc69fca8b56cf3f4c569ac3fae382513943bbf.zip
Moved a big file from FILESDIR to mirror. Bug #248975
(Portage version: 2.1.4.5)
Diffstat (limited to 'games-mud/mcl')
-rw-r--r--games-mud/mcl/ChangeLog7
-rw-r--r--games-mud/mcl/files/mcl-0.53.00-inputlines.patch648
-rw-r--r--games-mud/mcl/mcl-0.53.00.ebuild7
3 files changed, 10 insertions, 652 deletions
diff --git a/games-mud/mcl/ChangeLog b/games-mud/mcl/ChangeLog
index 30f90201de46..ca3ca6743b95 100644
--- a/games-mud/mcl/ChangeLog
+++ b/games-mud/mcl/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for games-mud/mcl
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-mud/mcl/ChangeLog,v 1.17 2008/01/22 05:35:50 nyhm Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-mud/mcl/ChangeLog,v 1.18 2008/11/30 08:05:44 tupone Exp $
+
+ 30 Nov 2008; Tupone Alfredo <tupone@gentoo.org>
+ -files/mcl-0.53.00-inputlines.patch, mcl-0.53.00.ebuild:
+ Moved a big file from FILESDIR to mirror. Bug #248975 by
+ <flameeyes@gentoo.org>
22 Jan 2008; Tristan Heaven <nyhm@gentoo.org>
+files/mcl-0.53.00-gcc42.patch, mcl-0.53.00.ebuild:
diff --git a/games-mud/mcl/files/mcl-0.53.00-inputlines.patch b/games-mud/mcl/files/mcl-0.53.00-inputlines.patch
deleted file mode 100644
index 37d1fc64c68c..000000000000
--- a/games-mud/mcl/files/mcl-0.53.00-inputlines.patch
+++ /dev/null
@@ -1,648 +0,0 @@
-Patch from Jose Quinteiro
-via http://bugs.gentoo.org/show_bug.cgi?id=196216
-
-Index: StatusLine.cc
-===================================================================
---- StatusLine.cc (revision 1)
-+++ StatusLine.cc (revision 3)
-@@ -27,5 +27,5 @@
-
- // Set the status line (using a formatted string)
--void StatusLine::setf(const char *fmt ...)
-+void StatusLine::setf(const char *fmt, ...)
- {
- char buf[256];
-Index: misc.cc
-===================================================================
---- misc.cc (revision 1)
-+++ misc.cc (revision 3)
-@@ -135,5 +135,4 @@
- }
-
--#define MAX_COLOR_BUF 256
- int ColorConverter::convert (const unsigned char *s, int size) {
- char buf[MAX_COLOR_BUF];
-Index: Session.cc
-===================================================================
---- Session.cc (revision 1)
-+++ Session.cc (revision 3)
-@@ -18,4 +18,5 @@
- #include "Curses.h"
- #include "Chat.h"
-+#include "StatusLine.h"
-
- const int connectTimeout = 30;
-@@ -235,9 +236,12 @@
- }
-
--Session::Session(MUD& _mud, Window *_window, int _fd) : Socket(_fd), state(disconnected),mud(_mud), window(_window), pos(0),
--nsw(NULL), timer(NULL), statWindow(NULL), last_nsw_update(0)
-+Session::Session(MUD& _mud, Window *_window, int _fd) : Socket(_fd), state(disconnected),mud(_mud),
-+ window(_window), nsw(NULL), timer(NULL), statWindow(NULL), last_nsw_update(0), m_input_state(text)
- {
-- input_buffer[0] = NUL;
-- prompt[0] = NUL;
-+ m_ansi_buf[0] = NUL;
-+ m_ansi_pos = m_ansi_buf;
-+ m_output_buf[0] = NUL;
-+ m_output_pos = m_output_buf;
-+ m_last_line = m_output_buf;
- memset(&stats,0,sizeof(stats));
-
-@@ -391,21 +395,17 @@
-
- // Data from the MUD has arrived
--void Session::inputReady() {
-- char out_buf[MAX_MUD_BUF];
-- char temp_buf[MAX_MUD_BUF];
-- char *out;
-- int code_pos;
-- char *prompt_begin;
--
-- int count;
-- int i;
--
-- count = read(temp_buf, MAX_MUD_BUF-1);
--
-- globalStats.bytes_read += count;
-- stats.bytes_read += count;
-+void Session::inputReady()
-+{
-+ unsigned char l_cur_buf[MAX_MUD_BUF];
-+ char l_temp_buf[MAX_MUD_BUF];
-+ int l_count;
-+
-+ l_count = read(l_temp_buf, MAX_MUD_BUF-1);
-+
-+ globalStats.bytes_read += l_count;
-+ stats.bytes_read += l_count;
-
- // Filter through mudcompress
-- mudcompress_receive(mcinfo, temp_buf, count);
-+ mudcompress_receive(mcinfo, l_temp_buf, l_count);
-
- // Error?
-@@ -423,186 +423,204 @@
- }
-
-- while (mudcompress_pending(mcinfo) && pos < MAX_MUD_BUF-1) {
-+ while (mudcompress_pending(mcinfo))
-+ {
- // Get some data
-- count = mudcompress_get(mcinfo, (char*) input_buffer + pos, MAX_MUD_BUF - pos - 1);
--
-- if (count > 0 && chatServerSocket)
-- chatServerSocket->handleSnooping((char*)(input_buffer+pos), count);
--
-- prompt_begin = NULL;
-- out = out_buf;
--
-- /* If we have data from last call, this means we got some incomplete ansi */
-- if (pos)
-- code_pos = 0;
-- else
-- code_pos = -1;
--
-- /* Process the buffer */
-- for (i = 0; i < count + pos; i++)
-- {
-- /* Lose patience of code does not terminate within 16 characters */
-- if (code_pos >= 0 && i - code_pos > 16)
-- code_pos = -1;
--
--
-- /* IAC: next character is a telnet command */
-- if (input_buffer[i] == IAC)
-- {
-- if (++i < count + pos) /* just forget it if it appears at the end of a buffer */
-- {
-- /* spec: handle prompts that split across reads */
-- if (input_buffer[i] == GA || input_buffer[i] == EOR) /* this is a prompt */
-- {
-- /* if we have a prompt_begin, that's the start of
-- * the prompt. If we don't, then the contents
-- * of the 'prompt' buffer, plus any output we
-- * have, is the prompt.
-- */
-- if(!config->getOption(opt_snarf_prompt)) {
-- if(prompt_begin) {
-- int len = out - prompt_begin;
-- char *buf = new char[len + 1];
-- memcpy(buf, prompt_begin+1, len);
-- buf[len] = '\0';
-- embed_interp->run_quietly("sys/prompt", buf, buf);
-- }
-+ l_count = mudcompress_get(mcinfo, (char*) l_cur_buf, MAX_MUD_BUF - 1);
-+
-+ if (l_count > 0 && chatServerSocket)
-+ chatServerSocket->handleSnooping((char*)(l_cur_buf), l_count);
-+
-+ for(int i = 0; i < l_count; i++)
-+ {
-+ if( (m_output_pos - m_output_buf) == MAX_MUD_BUF ) {
-+ //We've buffered as much as we can, let's write it out
-+ //TODO: Trigger scripts here? Looks like a corner case
-+ //log.warn("Buffer exhausted, flushing\n");
-+ *m_output_pos = NUL;
-+ print( m_output_buf );
-+ m_output_pos = m_output_buf;
-+ m_last_line = m_output_buf;
-+ }
-+ if( (m_ansi_pos - m_ansi_buf) == MAX_COLOR_BUF ) {
-+ *m_ansi_pos = NUL;
-+ //log.warn("ANSI sequence %s too long, ignoring\n", m_ansi_buf);
-+ m_ansi_pos = m_ansi_buf;
-+ }
-+
-+ switch(m_input_state)
-+ {
-+ case text:
-+ if( l_cur_buf[i] == IAC ) {
-+ m_state_stack.push_back(m_input_state);
-+ m_input_state = found_iac;
-+ continue;
-+ }
-+ if( l_cur_buf[i] == '\e' ) {
-+ m_state_stack.push_back(m_input_state);
-+ m_input_state = found_esc;
-+ continue;
-+ }
-+ if (l_cur_buf[i] == '\a' && config->getOption(opt_mudbeep)) {
-+ ::write(STDOUT_FILENO, "\a", 1); // use screen->flash() here?
-+ continue;
-+ }
-+ if (l_cur_buf[i] == '\r') {
-+ //log.debug("Discarded carriage return");
-+ continue;
-+ }
-+ if (l_cur_buf[i] == '\n')
-+ {
-+ triggerCheck(m_last_line, m_output_pos - m_last_line, &m_output_pos);
-+ m_last_line = m_output_pos + 1;
-+ }
-+
-+ *m_output_pos++ = l_cur_buf[i];
-+ continue;
-+
-+ case found_iac:
-+ if( l_cur_buf[i] >= WILL && l_cur_buf[i] <= DONT ) {
-+ m_input_state = telnet_option;
-+ continue;
-+ }
-+ if( l_cur_buf[i] == EOR || l_cur_buf[i] == GA )
-+ {
-+ *m_output_pos = NUL;
-+ if( config->getOption(opt_snarf_prompt) ) {
-+ set_prompt( m_last_line, (int)strlen(m_last_line) );
-+ } else {
-+ embed_interp->run_quietly("sys/prompt", m_last_line, m_last_line);
-+ }
-+
-+ if( config->getOption(opt_showprompt) ) {
-+ *m_output_pos++ = '\n';
-+ *m_output_pos = NUL;
-+ print( m_output_buf );
-+ } else {
-+ *m_last_line = NUL;
-+ print( m_output_buf );
-+ }
-+ m_output_pos = m_output_buf;
-+ m_last_line = m_output_buf;
-+ m_input_state = m_state_stack.back();
-+ m_state_stack.pop_back();
-+ continue;
-+ }
-+ //log.warn("Ignoring telnet command %d\n", l_cur_buf[i]);
-+ m_input_state = m_state_stack.back();
-+ m_state_stack.pop_back();
-+ continue;
-+
-+ case telnet_option:
-+ if( l_cur_buf[i] == TELOPT_EOR) {
-+ //TODO: use telnet.h defines here
-+ write ("\377\375\31", 3);
-+ } else {
-+ //log.warn("Ignoring telnet option %c\n", l_cur_buf[i]);
-+ }
-+ m_input_state = m_state_stack.back();
-+ m_state_stack.pop_back();
-+ continue;
-+
-+ case found_esc:
-+ if( l_cur_buf[i] == IAC ) {
-+ m_state_stack.push_back(m_input_state);
-+ m_input_state = found_iac;
-+ continue;
-+ }
-+ if( l_cur_buf[i] ='[' ) {
-+ if( m_ansi_pos != m_ansi_buf ) {
-+ //log.warn("New ANSI escape sequence started before the last one was finished");
-+ m_ansi_pos = m_ansi_buf;
-+ }
-+ *m_ansi_pos++ = '\e';
-+ *m_ansi_pos++ = l_cur_buf[i];
-+ m_input_state = ansi_sequence;
-+ continue;
-+ }
-+ //log.warn("Ignoring escape sequence ESC%c\n", l_cur_buf[i]);
-+ m_input_state = m_state_stack.back();
-+ m_state_stack.pop_back();
-+ continue;
-+
-+ case ansi_sequence:
-+ if( l_cur_buf[i] == IAC ) {
-+ m_state_stack.push_back(m_input_state);
-+ m_input_state = found_iac;
-+ continue;
-+ }
-+ if( isdigit(l_cur_buf[i]) || l_cur_buf[i] == ';' ){
-+ *m_ansi_pos++ = l_cur_buf[i];
-+ continue;
-+ }
-+ if(l_cur_buf[i] == '"') {
-+ *m_ansi_pos++ = l_cur_buf[i];
-+ m_state_stack.push_back(m_input_state);
-+ m_input_state = ansi_found_quot;
-+ continue;
-+ }
-+ if( isalpha(l_cur_buf[i]) )
-+ {
-+ if( l_cur_buf[i] == 'm' || l_cur_buf[i] == 'R' )
-+ {
-+ /* Conver this color code to internal representation */
-+ int l_color;
-+ if( (l_color = m_colorConverter.convert((const byte*)m_ansi_buf, m_ansi_pos - m_ansi_buf)) > 0 )
-+ {
-+ *m_output_pos++ = SET_COLOR;
-+ *m_output_pos++ = l_color;
- }
-- else if (prompt_begin)
-- {
-- set_prompt (prompt_begin + 1, out - prompt_begin - 1);
-- if (!config->getOption(opt_showprompt))
-- out = prompt_begin + 1;
-+ if (m_colorConverter.checkReportStatus()) { /* suggested by Chris Litchfield */
-+ output->printf("\n(Sending location code\n");
-+ writeMUD("\e[40;13R\n");
- }
-- else
-- {
-- if (prompt[0] || out[0])
-- {
-- unsigned char *temp = prompt + strlen ((char*)prompt);
--
-- *out = NUL;
-- strcat ((char*)prompt, out_buf);
-- set_prompt ((char*)prompt, (int)strlen ((char*)prompt));
-- *temp = NUL;
-- }
-- if (!config->getOption(opt_showprompt))
-- out = out_buf;
-- }
-- // Insert a clear color code here
-- // It'd be better to interpret color codes in the prompt properly,
-- // but that is surprisingly hard to do
-- *out++ = SET_COLOR;
-- *out++ = bg_black|fg_white; // Is that really the *default* color?
--
-- prompt[0] = NUL;
-- prompt_begin = out;
-- }
-- // React to IAC WILL EOR and send back IAC DO EOR
-- else if (input_buffer[i] == WILL && (i+1) < count+pos && input_buffer[i+1] == TELOPT_EOR)
-- {
-- i++;
--
-- // @@ use telnet.h defines here
-- write ("\377\375\31", 3);
-- }
-- /* Skip the next character if this is an option */
-- else if (input_buffer[i] >= WILL && input_buffer[i] <= DONT)
-- i++;
-- }
--
-+ } else {
-+ *m_ansi_pos = NUL;
-+ //log.warn("Ignoring ANSI sequence %s%c\n", m_ansi_buf, l_cur_buf[i]);
-+ }
-+ m_ansi_pos = m_ansi_buf;
-+ m_input_state = m_state_stack.back();
-+ m_state_stack.pop_back();
-+ continue;
-+ }
-+ *m_ansi_pos = NUL;
-+ //log.warn("Ignoring ANSI sequence %s%c\n", m_ansi_buf, l_cur_buf[i]);
-+ m_ansi_pos = m_ansi_buf;
-+ m_input_state = m_state_stack.back();
-+ m_state_stack.pop_back();
- continue;
-- }
--
-- // Escape sequence
-- else if (input_buffer[i] == '\e')
-- code_pos = i;
--
-- // Attention
-- else if (input_buffer[i] == '\a' && config->getOption(opt_mudbeep))
-- ::write(STDOUT_FILENO, "\a", 1); // use screen->flash() here?
--
-- else if (code_pos == -1) { // not inside a color code, real text
-- if (input_buffer[i] == '\n') {
-- // Do regexp trigger magic
-- bool cancel_line = triggerCheck(prompt_begin ? prompt_begin+1 : (char*) out_buf,
-- prompt_begin ? out-prompt_begin-1: out-out_buf, &out);
-- prompt_begin = out;
-- if (cancel_line) {
-- // We just gagged that line, so the \n which otherwise would be the beginning of the prompt
-- // is eaten up.
-- if (out > out_buf)
-- prompt_begin = out-1;
-- else
-- prompt_begin = NULL;
-- continue;
-- }
-- }
--
-- if (input_buffer[i] != '\r') /* discard those */
-- *out++ = input_buffer[i]; /* Add to output buffer */
-- }
--
-- /* Check if the code should terminate here */
-- if (code_pos >= 0 && isalpha (input_buffer[i]))
-- {
-- int color;
--
-- /* Conver this color code to internal representation */
-- if ((color = colorConverter.convert (input_buffer + code_pos, i - code_pos + 1)) > 0)
-- {
-- *out++ = SET_COLOR;
-- *out++ = color;
-- }
-- if (colorConverter.checkReportStatus()) { /* suggested by Chris Litchfield */
-- output->printf("\n(Sending location code\n");
-- writeMUD("\e[40;13R\n");
-- }
--
-- code_pos = -1;
-- }
-- }
--
-- *out = NUL;
--
-- // Run triggers on incompletely received lines
-- bool cancel_line = triggerCheck(prompt_begin ? prompt_begin+1 : (char*) out_buf,
-- prompt_begin ? out-prompt_begin-1: out-out_buf, &out);
-- prompt_begin = out;
-- if (cancel_line) {
-- // We just gagged that line, so the \n which otherwise would be the beginning of the prompt
-- // is eaten up.
-- if (out > out_buf)
-- prompt_begin = out-1;
-- else
-- prompt_begin = NULL;
-- }
--
-- print (out_buf);
--
-- /* Do we have some leftover data, an incomplete ANSI sequence? */
-- if (code_pos >= 0)
-- {
-- /* Copy so that the buffer is at the beginning of that code */
-- memcpy (input_buffer, input_buffer + code_pos, count + pos - code_pos);
--
-- /* Next incoming data will be put there */
-- pos = count + pos - code_pos;
-- }
-- else
-- pos = 0;
--
--
--
-- /* spec: fix up partial lines for subsequent prompts */
-- if (prompt_begin)
-- strcpy ((char*)prompt, prompt_begin);
-- else if (strlen((char*)prompt) < MAX_MUD_BUF/4 && strlen(out_buf) < MAX_MUD_BUF/4) {
-- // guard against too long lines
-- strcat((char*)prompt, out_buf);
-- }
--
--
-- } // end while
--}
-+ //case ansi_sequence
-+
-+ case ansi_found_quot:
-+ if( l_cur_buf[i] == IAC ) {
-+ m_state_stack.push_back(m_input_state);
-+ m_input_state = found_iac;
-+ continue;
-+ }
-+ //Is literally anything allowed between quotes in an ANSI key redefinition sequence?
-+ //I think so
-+ *m_ansi_pos++ = l_cur_buf[i];
-+ if(l_cur_buf[i] == '"') {
-+ //Should always fall back to ansi_sequence
-+ m_input_state = m_state_stack.back();
-+ m_state_stack.pop_back();
-+ }
-+ continue;
-+
-+ }//switch(m_input_state)
-+
-+ }//for(int i = 0; i < l_count; i++)
-+ } // end while (mudcompress_pending(mcinfo))
-+
-+ //We got a complete line, flush it out
-+ //TODO: is newline (\n) a valid character in any mode besides text?
-+ //i.e., should I check for m_input_state == text here?
-+ if( m_output_pos > m_output_buf && *(m_output_pos - 1) == '\n' )
-+ {
-+ *m_output_pos = NUL;
-+ print( m_output_buf );
-+ m_output_pos = m_output_buf;
-+ m_last_line = m_output_buf;
-+ }
-+} //inputReady()
-
- void Session::show_timer() {
-Index: h/StatusLine.h
-===================================================================
---- h/StatusLine.h (revision 1)
-+++ h/StatusLine.h (revision 3)
-@@ -11,5 +11,5 @@
- virtual void idle(); // Check if it is time to remove the text
- void set(const char *s); // Set status lien to this message
-- void setf(const char *fmt ...); // As above ,but formatted string
-+ void setf(const char *fmt, ...); // As above ,but formatted string
-
- virtual void redraw();
-Index: h/Session.h
-===================================================================
---- h/Session.h (revision 1)
-+++ h/Session.h (revision 3)
-@@ -4,6 +4,9 @@
- #include "mccpDecompress.h"
- #include "Socket.h"
-+#include <vector>
-
--typedef enum {disconnected, connecting, connected} state_t;
-+typedef enum {
-+ disconnected, connecting, connected
-+} state_t;
-
- class NetworkStateWindow;
-@@ -11,61 +14,80 @@
- class StatWindow;
- class Window;
-+class MUD;
-+class ColorConverter;
-+class Action;
-
- class Session : public Socket {
-- public:
-- Session(MUD& _mud, Window *_window, int _fd = -1); // Initialize a new session to this mud
-- ~Session();
-- bool open(); // Connect
-- bool close(); // Disconnect
-- void idle(); // Do time-based updates
--
-- void show_nsw(); // Show the NSW
-- void show_timer(); // Show the Timer Window
-- bool expand_macros(int key); // Expand this macro key
-- void writeMUD (const char *s); // Send this
--
-- state_t state; // Are offline, connecting or connected?
-- MUD& mud;
--
-+public:
-+ Session(MUD& _mud, Window *_window, int _fd = -1); // Initialize a new session to this mud
-+ ~Session();
-+ bool open(); // Connect
-+ bool close(); // Disconnect
-+ void idle(); // Do time-based updates
-+
-+ void show_nsw(); // Show the NSW
-+ void show_timer(); // Show the Timer Window
-+ bool expand_macros(int key); // Expand this macro key
-+ void writeMUD (const char *s); // Send this
-+
-+ state_t state; // Are offline, connecting or connected?
-+ MUD& mud;
-+ enum input_state_t {
-+ text, found_iac, telnet_option, found_esc, ansi_sequence, ansi_found_quot
-+ };
-+
-+
- private:
-- Window *window; // Window we are writing to
--
-- // Incomplete ANSI codes should be left in this buffer
-- unsigned char input_buffer[MAX_MUD_BUF];
--
-- // and this one, partial lines (for prompts)
-- unsigned char prompt[MAX_MUD_BUF];
-- int pos;
--
-- NetworkStateWindow *nsw; // if non-NULL, we display stats there when idle'ing
-- TimerWindow *timer; // Timer window
-- StatWindow *statWindow; // Input/Output statitstics here
--
-- // Some statistics
-- struct {
-- int bytes_written, bytes_read; // # of bytes read/written
-- time_t connect_time; // When did we connect?
-- time_t dial_time;
-- } stats;
--
-- time_t last_nsw_update;
-- mc_state *mcinfo;
-- ColorConverter colorConverter;
-+ Window *window; // Window we are writing to
-
-- friend class NetworkStateWindow;
-- friend class StatWindow;
-- friend class TimerWindow;
-+ NetworkStateWindow *nsw; // if non-NULL, we display stats there when idle'ing
-+ TimerWindow *timer; // Timer window
-+ StatWindow *statWindow; // Input/Output statitstics here
-
-- void print(const char *s); // Write to our output/log
-+ // Some statistics
-+ struct {
-+ int bytes_written, bytes_read; // # of bytes read/written
-+ time_t connect_time; // When did we connect?
-+ time_t dial_time;
-+ } stats;
-
-- void set_prompt (const char *s, int len);
-- bool triggerCheck (char *line, int len, char **out);
-- void runTrigger(Action *a, char *buf, char *line, int& len, char **out);
-- void establishConnection(bool quick_restore); // run on connect, qr = true if 'hot' boot
-- int convert_color (const unsigned char *s, int size);
-+ time_t last_nsw_update;
-+ mc_state *mcinfo;
-+ ColorConverter m_colorConverter;
-
-- virtual void connectionEstablished();
-- virtual void inputReady();
-- virtual void errorEncountered(int);
-+ //Current input parser state
-+ input_state_t m_input_state;
-+ //State history. We need to know which state we should
-+ //return to after processing escape sequences and/or
-+ //telnet commands
-+ std::vector<input_state_t> m_state_stack;
-+
-+ // Incomplete ANSI codes should be left in this buffer
-+ char m_ansi_buf[MAX_COLOR_BUF];
-+ //points to the last char
-+ char *m_ansi_pos;
-+
-+ //Incomplete lines
-+ char m_output_buf[MAX_MUD_BUF];
-+ //points to the last char
-+ char *m_output_pos;
-+ //points to the beginning of the last line
-+ char *m_last_line;
-+
-+ friend class NetworkStateWindow;
-+ friend class StatWindow;
-+ friend class TimerWindow;
-+
-+ void print(const char *s); // Write to our output/log
-+
-+ void set_prompt (const char *s, int len);
-+ bool triggerCheck (char *line, int len, char **out);
-+ void runTrigger(Action *a, char *buf, char *line, int& len, char **out);
-+ void establishConnection(bool quick_restore); // run on connect, qr = true if 'hot' boot
-+ int convert_color (const unsigned char *s, int size);
-+
-+ virtual void connectionEstablished();
-+ virtual void inputReady();
-+ virtual void errorEncountered(int);
-
- };
-Index: h/Socket.h
-===================================================================
---- h/Socket.h (revision 1)
-+++ h/Socket.h (revision 3)
-@@ -4,4 +4,8 @@
-
- #include <netinet/in.h>
-+#include "defs.h"
-+#include "Buffer.h"
-+
-+class Selectable;
-
- class Socket : public Selectable {
-Index: h/defs.h
-===================================================================
---- h/defs.h (revision 1)
-+++ h/defs.h (revision 3)
-@@ -4,4 +4,6 @@
- #define MAX_MUD_BUF 4096
- #define MAX_INPUT_BUF 1024
-+#define MAX_COLOR_BUF 256
-+
- #define NUL '\0'
-
diff --git a/games-mud/mcl/mcl-0.53.00.ebuild b/games-mud/mcl/mcl-0.53.00.ebuild
index 3d72cfac16e4..ddbcfac0ec39 100644
--- a/games-mud/mcl/mcl-0.53.00.ebuild
+++ b/games-mud/mcl/mcl-0.53.00.ebuild
@@ -1,12 +1,13 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/games-mud/mcl/mcl-0.53.00.ebuild,v 1.17 2008/01/22 05:35:50 nyhm Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-mud/mcl/mcl-0.53.00.ebuild,v 1.18 2008/11/30 08:05:44 tupone Exp $
inherit eutils games
DESCRIPTION="A console MUD client scriptable in Perl and Python"
HOMEPAGE="http://www.andreasen.org/mcl/"
-SRC_URI="http://www.andreasen.org/mcl/dist/${P}-src.tar.gz"
+SRC_URI="http://www.andreasen.org/mcl/dist/${P}-src.tar.gz
+ mirror://gentoo/${P}-inputlines.patch.gz"
LICENSE="GPL-2"
SLOT="0"
@@ -26,7 +27,7 @@ src_unpack() {
"${FILESDIR}"/${P}-gcc34.patch \
"${FILESDIR}"/${PV}-dynacomplete.patch \
"${FILESDIR}"/${P}-libdir.patch \
- "${FILESDIR}"/${P}-inputlines.patch \
+ "${WORKDIR}"/${P}-inputlines.patch \
"${FILESDIR}"/${P}-gcc42.patch
sed -i \