- update to new upstream version
- remove patches merged by upstream - update rh patch to support unix socket (#592355)
This commit is contained in:
parent
5886585cc6
commit
67ec19fdb2
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
minicom-2.4.tar.gz
|
||||
/minicom-2.5.tar.gz
|
||||
|
@ -1,45 +0,0 @@
|
||||
Patch from Debian's minicom_2.2-5.diff.gz:
|
||||
minicom-2.2/debian/patches/bug199924.diff
|
||||
--- minicom-2.2.orig/src/util.c 2005-11-09 00:34:25.000000000 +0100
|
||||
+++ minicom-2.2/src/util.c 2006-10-19 17:38:18.000000000 +0200
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
/* Delete escape-characters ment for the shell */
|
||||
p = cmd;
|
||||
- while ((p = strchr(p, '\\')))
|
||||
+ while ((p = strchr(p, '\\')) && *(p+1) != ' ')
|
||||
memmove(p, p + 1, strlen(p+1));
|
||||
|
||||
/* Split line into words */
|
||||
--- minicom-2.2.orig/src/file.c 2005-08-14 22:39:30.000000000 +0200
|
||||
+++ minicom-2.2/src/file.c 2006-10-19 17:43:10.000000000 +0200
|
||||
@@ -529,6 +529,8 @@
|
||||
{
|
||||
GETSDIR_ENTRY *my_d;
|
||||
int indxr, len;
|
||||
+ int i;
|
||||
+ char *j;
|
||||
|
||||
my_d = d;
|
||||
for (indxr = nrents, len = 0; indxr; --indxr, ++my_d)
|
||||
@@ -548,8 +550,18 @@
|
||||
for (indxr = nrents; indxr; --indxr, ++my_d)
|
||||
if (my_d->cflags & FL_TAG) {
|
||||
/* this could be *much* more efficient */
|
||||
- strcat(ret_buf, my_d->fname);
|
||||
- strcat(ret_buf, " ");
|
||||
+ for (i = strlen(ret_buf), j = my_d->fname; *j; j++) {
|
||||
+ if (*j == ' ') {
|
||||
+ if ((ret_buf = (char*)realloc(ret_buf, ++len)) == NULL) {
|
||||
+ file_tell(_("Too many files tagged - buffer would overflow"));
|
||||
+ return(NULL);
|
||||
+ }
|
||||
+ ret_buf[i++] = '\\';
|
||||
+ }
|
||||
+ ret_buf[i++] = *j;
|
||||
+ }
|
||||
+ ret_buf[i++] = ' ';
|
||||
+ ret_buf[i] = '\0';
|
||||
}
|
||||
|
||||
ret_buf[strlen(ret_buf) - 1] = (char)0;
|
@ -1,65 +0,0 @@
|
||||
diff -up minicom-2.3/src/file.c.gotodir minicom-2.3/src/file.c
|
||||
--- minicom-2.3/src/file.c.gotodir 2008-08-29 12:41:21.000000000 +0200
|
||||
+++ minicom-2.3/src/file.c 2008-08-29 12:41:21.000000000 +0200
|
||||
@@ -282,6 +282,8 @@ static int new_filedir(GETSDIR_ENTRY *o_
|
||||
int initial_y = (76 - (WHAT_NR_OPTIONS * WHAT_WIDTH >= 76
|
||||
? 74 : WHAT_NR_OPTIONS * WHAT_WIDTH)) / 2;
|
||||
size_t i;
|
||||
+ int rval;
|
||||
+ char * new_prev_dir;
|
||||
|
||||
cur = 0;
|
||||
ocur = 0;
|
||||
@@ -295,11 +297,6 @@ static int new_filedir(GETSDIR_ENTRY *o_
|
||||
dprev = -1;
|
||||
tag_cnt = 0;
|
||||
|
||||
- /* got to do some error-checking here!!! Maybe use mcd(), too! */
|
||||
- if (prev_dir != NULL)
|
||||
- free(prev_dir);
|
||||
- prev_dir = getcwd(NULL, BUFSIZ);
|
||||
-
|
||||
/*
|
||||
* get last directory
|
||||
*/
|
||||
@@ -329,7 +326,30 @@ static int new_filedir(GETSDIR_ENTRY *o_
|
||||
if (strlen(work_dir) > 1 && work_dir[strlen(work_dir) - 1] == '/')
|
||||
work_dir[strlen(work_dir) - 1] = (char)0;
|
||||
|
||||
- chdir(work_dir);
|
||||
+ /* get the current working directory, which will become the prev_dir, on success */
|
||||
+ new_prev_dir = getcwd(NULL, BUFSIZ);
|
||||
+ if (new_prev_dir == NULL) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ rval = chdir(work_dir);
|
||||
+ if (rval == 0) {
|
||||
+ /* was able to change to new working directory */
|
||||
+ free(prev_dir);
|
||||
+ prev_dir = new_prev_dir;
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Could not change to the new working directory */
|
||||
+ mc_wbell();
|
||||
+ werror(
|
||||
+ _("Could not change to directory %s (%s)"),
|
||||
+ work_dir,
|
||||
+ strerror(errno));
|
||||
+
|
||||
+ /* restore the previous working directory */
|
||||
+ free(work_dir);
|
||||
+ work_dir = set_work_dir(new_prev_dir, strlen(new_prev_dir));
|
||||
+ }
|
||||
|
||||
/* All right, draw the file directory! */
|
||||
|
||||
@@ -435,7 +455,7 @@ static int new_filedir(GETSDIR_ENTRY *o_
|
||||
mc_wredraw(dsub, 1);
|
||||
}
|
||||
|
||||
- return 0;
|
||||
+ return rval;
|
||||
}
|
||||
|
||||
|
@ -1,12 +0,0 @@
|
||||
diff -r ba1114e2cb7b src/rwconf.c
|
||||
--- a/src/rwconf.c Sun Jan 09 23:54:02 2011 +0100
|
||||
+++ b/src/rwconf.c Fri Jan 14 12:32:16 2011 +0100
|
||||
@@ -269,7 +269,7 @@
|
||||
while (isspace(*s))
|
||||
s++;
|
||||
|
||||
- if (!s || *s == '#')
|
||||
+ if (*s == 0 || *s == '#')
|
||||
continue;
|
||||
|
||||
/* Skip old 'pr' and 'pu' marks at the beginning of the line */
|
@ -1,16 +0,0 @@
|
||||
diff -up minicom-2.4/src/config.c.orig minicom-2.4/src/config.c
|
||||
--- minicom-2.4/src/config.c.orig 2010-03-10 12:41:42.000000000 +0100
|
||||
+++ minicom-2.4/src/config.c 2010-03-10 13:16:16.233368251 +0100
|
||||
@@ -52,6 +52,12 @@ void read_parms(void)
|
||||
|
||||
/* Read global parameters */
|
||||
if ((fp = fopen(parfile, "r")) == NULL) {
|
||||
+ if (dosetup) {
|
||||
+ fputs(_("minicom: WARNING: configuration file not found, using defaults\n"),stderr);
|
||||
+ sleep(2);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
fprintf(stderr,
|
||||
_("minicom: there is no global configuration file %s\n"), parfile);
|
||||
fputs(_("Ask your sysadmin to create one (with minicom -s).\n"), stderr);
|
@ -1,12 +0,0 @@
|
||||
diff -up minicom-2.4/src/vt100.c.orig minicom-2.4/src/vt100.c
|
||||
--- minicom-2.4/src/vt100.c.orig 2009-12-12 16:47:47.000000000 +0100
|
||||
+++ minicom-2.4/src/vt100.c 2010-03-10 10:53:23.338369299 +0100
|
||||
@@ -1012,7 +1012,7 @@ void vt_out(int ch)
|
||||
if (!using_iconv()) {
|
||||
c = vt_inmap[c]; /* conversion 04.09.97 / jl */
|
||||
#if TRANSLATE
|
||||
- if (vt_type == VT100 && vt_asis == 0)
|
||||
+ if (vt_type == VT100 && vt_trans[vt_charset] && vt_asis == 0)
|
||||
c = vt_trans[vt_charset][c];
|
||||
#endif
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
diff -r ba1114e2cb7b man/ascii-xfr.1
|
||||
--- a/man/ascii-xfr.1 Sun Jan 09 23:54:02 2011 +0100
|
||||
+++ b/man/ascii-xfr.1 Fri Jan 14 12:37:24 2011 +0100
|
||||
@@ -20,7 +20,7 @@
|
||||
(End-Of-Line) character is transmitted as CRLF. When
|
||||
receiving, the CR character is stripped from the incoming file.
|
||||
The Control-Z (ASCII 26) character signals End-Of-File, if option \-e
|
||||
-is specified (unless you change it to Cotrol-D (ASCII 4) with \-d).
|
||||
+is specified (unless you change it to Control-D (ASCII 4) with \-d).
|
||||
.PP
|
||||
\fBAscii-xfr\fP reads from \fIstdin\fP when receiving, and
|
||||
sends data on \fIstdout\fP when sending. Some form of
|
||||
@@ -40,7 +40,7 @@
|
||||
.IP \fB\-n\fP
|
||||
Do not translate CR to CRLF and vice versa.
|
||||
.IP \fB\-v\fP
|
||||
-Verbose: show tranfer statistics on the stderr output.
|
||||
+Verbose: show transfer statistics on the stderr output.
|
||||
.IP "\fB\-l\fP \fImilliseconds\fP"
|
||||
When transmitting, pause for this delay after each line.
|
||||
.IP "\fB\-c\fP \fImilliseconds\fP"
|
@ -1,113 +0,0 @@
|
||||
diff -up minicom-2.4/src/main.c.orig minicom-2.4/src/main.c
|
||||
--- minicom-2.4/src/main.c.orig 2009-12-12 16:47:47.000000000 +0100
|
||||
+++ minicom-2.4/src/main.c 2010-03-10 11:43:12.588243671 +0100
|
||||
@@ -154,13 +154,18 @@ void term_socket_close(void)
|
||||
int open_term(int doinit, int show_win_on_error)
|
||||
{
|
||||
struct stat stt;
|
||||
+#ifdef NOTNOW
|
||||
char buf[128];
|
||||
- int fd, n = 0;
|
||||
+ int fd;
|
||||
int pid;
|
||||
+#endif
|
||||
+ int n = 0;
|
||||
#ifdef HAVE_ERRNO_H
|
||||
int s_errno;
|
||||
#endif
|
||||
|
||||
+#ifdef NOTNOW
|
||||
+
|
||||
/* First see if the lock file directory is present. */
|
||||
if (P_LOCK[0] && stat(P_LOCK, &stt) == 0) {
|
||||
|
||||
@@ -212,6 +217,29 @@ int open_term(int doinit, int show_win_o
|
||||
if (doinit > 0)
|
||||
lockfile_create();
|
||||
|
||||
+#else
|
||||
+ lockfile[0] = 0;
|
||||
+ if (doinit > 0) {
|
||||
+ int rc = ttylock(dial_tty);
|
||||
+ if (rc < 0) {
|
||||
+ if (access(dial_tty, W_OK) == -1)
|
||||
+ fprintf(stderr, _("Device %s access failed: %s.\n"),
|
||||
+ dial_tty, strerror(errno));
|
||||
+ else
|
||||
+ fprintf(stderr, _("Device %s lock failed: %s.\n"),
|
||||
+ dial_tty, strerror(-rc));
|
||||
+ } else if (rc > 0) {
|
||||
+ fprintf(stderr, _("Device %s is locked.\n"), dial_tty);
|
||||
+ } else if (rc == 0) {
|
||||
+ snprintf(lockfile, sizeof(lockfile), "%s", dial_tty);
|
||||
+ }
|
||||
+ if (rc) {
|
||||
+ if (stdwin) mc_wclose(stdwin, 1);
|
||||
+ return(-1);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/* Run a special program to disable callin if needed. */
|
||||
if (doinit > 0 && P_CALLOUT[0]) {
|
||||
if (fastsystem(P_CALLOUT, NULL, NULL, NULL) < 0) {
|
||||
diff -up minicom-2.4/src/minicom.c.orig minicom-2.4/src/minicom.c
|
||||
--- minicom-2.4/src/minicom.c.orig 2009-12-12 16:47:47.000000000 +0100
|
||||
+++ minicom-2.4/src/minicom.c 2010-03-10 11:39:32.406244215 +0100
|
||||
@@ -1555,7 +1555,7 @@ dirty_goto:
|
||||
mc_wclose(stdwin, 1);
|
||||
keyboard(KUNINSTALL, 0);
|
||||
if (lockfile[0])
|
||||
- unlink(lockfile);
|
||||
+ ttyunlock(lockfile);
|
||||
close(portfd);
|
||||
|
||||
if (quit != NORESET && P_CALLIN[0])
|
||||
diff -up minicom-2.4/src/minicom.h.orig minicom-2.4/src/minicom.h
|
||||
--- minicom-2.4/src/minicom.h.orig 2009-12-12 16:47:47.000000000 +0100
|
||||
+++ minicom-2.4/src/minicom.h 2010-03-10 11:39:32.406244215 +0100
|
||||
@@ -35,6 +35,8 @@
|
||||
|
||||
#include <time.h>
|
||||
|
||||
+#include <baudboy.h>
|
||||
+
|
||||
#ifdef USE_SOCKET
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
@@ -82,7 +84,7 @@ EXTERN int tempst; /* Status line is tem
|
||||
EXTERN int escape; /* Escape code. */
|
||||
EXTERN int disable_online_time; /* disable online time display */
|
||||
|
||||
-EXTERN char lockfile[128]; /* UUCP lock file of terminal */
|
||||
+EXTERN char lockfile[1024]; /* UUCP lock file of terminal */
|
||||
EXTERN char homedir[256]; /* Home directory of user */
|
||||
EXTERN char logfname[PARS_VAL_LEN]; /* Name of the logfile */
|
||||
EXTERN char username[16]; /* Who is using minicom? */
|
||||
diff -up minicom-2.4/src/updown.c.orig minicom-2.4/src/updown.c
|
||||
--- minicom-2.4/src/updown.c.orig 2009-12-13 16:20:34.000000000 +0100
|
||||
+++ minicom-2.4/src/updown.c 2010-03-10 11:54:05.519368852 +0100
|
||||
@@ -378,11 +378,12 @@ void updown(int what, int nr)
|
||||
void lockfile_remove(void)
|
||||
{
|
||||
if (lockfile[0])
|
||||
- unlink(lockfile);
|
||||
+ ttyunlock(lockfile);
|
||||
}
|
||||
|
||||
void lockfile_create(void)
|
||||
{
|
||||
+#ifdef NOTNOW
|
||||
int fd, n;
|
||||
char buf[81];
|
||||
|
||||
@@ -399,6 +400,9 @@ void lockfile_create(void)
|
||||
close(fd);
|
||||
}
|
||||
umask(n);
|
||||
+#else
|
||||
+ ttylock(lockfile);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/*
|
@ -1,217 +0,0 @@
|
||||
diff -up minicom-2.4/src/updown.c.staticbuf minicom-2.4/src/updown.c
|
||||
--- minicom-2.4/src/updown.c.staticbuf 2009-12-13 16:20:34.000000000 +0100
|
||||
+++ minicom-2.4/src/updown.c 2010-03-10 10:43:14.570243745 +0100
|
||||
@@ -89,40 +89,83 @@ static void udcatch(int dummy)
|
||||
* Translate %b to the current bps rate, and
|
||||
* %l to the current tty port.
|
||||
* %f to the serial port file descriptor
|
||||
+ *
|
||||
+ * Caller must free the returned string
|
||||
*/
|
||||
static char *translate(char *s)
|
||||
{
|
||||
- static char buf[128];
|
||||
- char str_portfd[8]; /* kino */
|
||||
- int i;
|
||||
+ char * ptr;
|
||||
+ char * translation;
|
||||
+ size_t translation_length;
|
||||
+ char str_portfd[8]; /* kino */
|
||||
+
|
||||
+ /* determine how many bytes we'll need for the translated version */
|
||||
+ translation_length = 0;
|
||||
+ for (ptr = s; *ptr != '\0'; ptr++) {
|
||||
+ if (*ptr != '%') {
|
||||
+ translation_length++;
|
||||
+ }
|
||||
+ else {
|
||||
+ switch(*++ptr) {
|
||||
+
|
||||
+ case 'l': /* tty port */
|
||||
+ translation_length += strlen(dial_tty);
|
||||
+ break;
|
||||
+
|
||||
+ case 'b': /* baud rate (bbp) */
|
||||
+ translation_length += strlen(P_BAUDRATE);
|
||||
+ break;
|
||||
+
|
||||
+ case 'f': /* serial port file descriptor */
|
||||
+ sprintf(str_portfd, "%d", portfd);
|
||||
+ translation_length += strlen(str_portfd);
|
||||
+ break;
|
||||
+
|
||||
+ default: /* treat all other escape sequences literally */
|
||||
+ translation_length += 2;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ translation = malloc(translation_length + 1);
|
||||
+ if (translation == NULL) {
|
||||
+ do_log("out of memory");
|
||||
+ return NULL;
|
||||
+ }
|
||||
|
||||
- for (i = 0; *s && i < 127; i++, s++) {
|
||||
+ /* now copy and translate s into the allocated buffer */
|
||||
+ for (ptr = translation; *s != '\0'; s++) {
|
||||
if (*s != '%') {
|
||||
- buf[i] = *s;
|
||||
+ *ptr++ = *s;
|
||||
continue;
|
||||
}
|
||||
- switch (*++s) {
|
||||
- case 'l':
|
||||
- strncpy(buf + i, dial_tty, sizeof(buf)-i);
|
||||
- i += strlen(dial_tty) - 1;
|
||||
+ switch(*++s) {
|
||||
+ case 'l': /* tty port */
|
||||
+ strcpy(ptr, dial_tty);
|
||||
+ ptr += strlen(dial_tty);
|
||||
break;
|
||||
- case 'b':
|
||||
- strncpy(buf + i, P_BAUDRATE, sizeof(buf)-i);
|
||||
- i += strlen(P_BAUDRATE) - 1;
|
||||
+
|
||||
+ case 'b': /* baud rate (bbp) */
|
||||
+ strcpy(ptr, P_BAUDRATE);
|
||||
+ ptr += strlen(P_BAUDRATE);
|
||||
break;
|
||||
- case 'f':
|
||||
+
|
||||
+ case 'f': /* serial port file descriptor */
|
||||
sprintf(str_portfd, "%d", portfd);
|
||||
- strncpy(buf + i, str_portfd, sizeof(buf)-i);
|
||||
- i += strlen(str_portfd) - 1;
|
||||
+ strcpy(ptr, str_portfd);
|
||||
+ ptr += strlen(str_portfd);
|
||||
break;
|
||||
- default:
|
||||
- buf[i++] = '%';
|
||||
- buf[i] = *s;
|
||||
+
|
||||
+ default: /* treat all other escape sequences literally */
|
||||
+ *ptr++ = '%';
|
||||
+ *ptr++ = *s;
|
||||
break;
|
||||
}
|
||||
}
|
||||
- buf[i] = 0;
|
||||
- return buf;
|
||||
+ *ptr = '\0';
|
||||
+
|
||||
+ return translation;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -183,7 +226,8 @@ void updown(int what, int nr)
|
||||
const char *s ="";
|
||||
int pipefd[2];
|
||||
int n, status;
|
||||
- char cmdline[128];
|
||||
+ char * cmdline = NULL;
|
||||
+ char * translated_cmdline = NULL;
|
||||
WIN *win = (WIN *)NULL;
|
||||
|
||||
if (mcd(what == 'U' ? P_UPDIR : P_DOWNDIR) < 0)
|
||||
@@ -215,6 +259,7 @@ void updown(int what, int nr)
|
||||
#if 1
|
||||
{
|
||||
int multiple; /* 0:only directory, 1:one file, -1:any number */
|
||||
+ size_t cmdline_length;
|
||||
|
||||
if (P_MUL(g)=='Y')
|
||||
/* need file(s), or just a directory? */
|
||||
@@ -234,7 +279,13 @@ void updown(int what, int nr)
|
||||
}
|
||||
|
||||
/* discard directory if "multiple" == 0 */
|
||||
- snprintf(cmdline, sizeof(cmdline), "%s %s", P_PPROG(g), multiple == 0? "" : s);
|
||||
+ cmdline_length = strlen(P_PPROG(g)) + strlen((char*) (multiple == 0 ? "" : s)) + 1; /* + 1 for ' ' */
|
||||
+ cmdline = malloc(cmdline_length + 1); /* + 1 for NUL */
|
||||
+ if (cmdline == NULL) {
|
||||
+ werror(_("Out of memory: could allocate buffer for command line"));
|
||||
+ return;
|
||||
+ }
|
||||
+ snprintf(cmdline, cmdline_length + 1, "%s %s", P_PPROG(g), multiple == 0 ? "" : s);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -260,6 +311,8 @@ void updown(int what, int nr)
|
||||
} else
|
||||
mc_wreturn();
|
||||
mcd("");
|
||||
+ if(cmdline)
|
||||
+ free(cmdline);
|
||||
return;
|
||||
case 0: /* Child */
|
||||
if (P_PIORED(g) == 'Y') {
|
||||
@@ -278,11 +331,21 @@ void updown(int what, int nr)
|
||||
for (n = 1; n < _NSIG; n++)
|
||||
signal(n, SIG_DFL);
|
||||
|
||||
- fastexec(translate(cmdline));
|
||||
+ translated_cmdline = translate(cmdline);
|
||||
+ if (translated_cmdline != NULL) {
|
||||
+ fastexec(translated_cmdline);
|
||||
+ free(translated_cmdline);
|
||||
+ }
|
||||
+ if(cmdline)
|
||||
+ free(cmdline);
|
||||
exit(1);
|
||||
default: /* Parent */
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ if(cmdline)
|
||||
+ free(cmdline);
|
||||
+
|
||||
if (win) {
|
||||
setcbreak(1); /* Cbreak, no echo. */
|
||||
enab_sig(1, 0); /* But enable SIGINT */
|
||||
@@ -409,7 +472,8 @@ void lockfile_create(void)
|
||||
void kermit(void)
|
||||
{
|
||||
int status, pid, n;
|
||||
- char *kermit_path = translate(P_KERMIT);
|
||||
+ char * translated_cmdline;
|
||||
+ char *kermit_path = P_KERMIT;
|
||||
|
||||
if (!kermit_path || !*kermit_path) {
|
||||
werror("No kermit path defined!");
|
||||
@@ -433,7 +497,11 @@ void kermit(void)
|
||||
for (n = 0; n < _NSIG; n++)
|
||||
signal(n, SIG_DFL);
|
||||
|
||||
- fastexec(kermit_path);
|
||||
+ translated_cmdline = translate(P_KERMIT);
|
||||
+ if (translated_cmdline != NULL) {
|
||||
+ fastexec(translated_cmdline);
|
||||
+ free(translated_cmdline);
|
||||
+ }
|
||||
exit(1);
|
||||
default: /* Parent */
|
||||
break;
|
||||
@@ -531,6 +599,7 @@ void runscript(int ask, const char *s, c
|
||||
char scr_lines[5];
|
||||
char cmdline[128];
|
||||
struct pollfd fds[2];
|
||||
+ char *translated_cmdline;
|
||||
char *ptr;
|
||||
WIN *w;
|
||||
int done = 0;
|
||||
@@ -633,7 +702,12 @@ void runscript(int ask, const char *s, c
|
||||
mc_setenv("LOGIN", scr_user);
|
||||
mc_setenv("PASS", scr_passwd);
|
||||
mc_setenv("TERMLIN", scr_lines); /* jl 13.09.97 */
|
||||
- fastexec(translate(cmdline));
|
||||
+ translated_cmdline = translate(cmdline);
|
||||
+
|
||||
+ if (translated_cmdline != NULL) {
|
||||
+ fastexec(translated_cmdline);
|
||||
+ free(translated_cmdline);
|
||||
+ }
|
||||
exit(1);
|
||||
default: /* Parent */
|
||||
break;
|
@ -1,12 +0,0 @@
|
||||
diff -up ./minicom-2.4/src/config.c.umask ./minicom-2.4/src/config.c
|
||||
--- minicom-2.4/src/config.c.umask 2010-03-09 16:32:14.876153489 +0100
|
||||
+++ minicom-2.4/src/config.c 2010-03-09 16:33:17.789153650 +0100
|
||||
@@ -1245,6 +1245,8 @@ int dodflsave(void)
|
||||
}
|
||||
writepars(fp, dosetup);
|
||||
fclose(fp);
|
||||
+ if(dosetup)
|
||||
+ chmod(fname, (mode_t) 0644);
|
||||
werror(_("Configuration saved"));
|
||||
|
||||
return domacsave() < 0 ? -1 : 0;
|
159
minicom-2.5-rh.patch
Normal file
159
minicom-2.5-rh.patch
Normal file
@ -0,0 +1,159 @@
|
||||
diff --git a/src/main.c b/src/main.c
|
||||
index bc4db89..8e68e2c 100644
|
||||
--- a/src/main.c
|
||||
+++ b/src/main.c
|
||||
@@ -154,16 +154,22 @@ void term_socket_close(void)
|
||||
int open_term(int doinit, int show_win_on_error, int no_msgs)
|
||||
{
|
||||
struct stat stt;
|
||||
+#ifdef NOTNOW
|
||||
union {
|
||||
char bytes[128];
|
||||
int kermit;
|
||||
} buf;
|
||||
- int fd, n = 0;
|
||||
+ int fd;
|
||||
int pid;
|
||||
+#endif
|
||||
+ int rc;
|
||||
+ int n = 0;
|
||||
#ifdef HAVE_ERRNO_H
|
||||
int s_errno;
|
||||
#endif
|
||||
|
||||
+#ifdef NOTNOW
|
||||
+
|
||||
/* First see if the lock file directory is present. */
|
||||
if (P_LOCK[0] && stat(P_LOCK, &stt) == 0) {
|
||||
|
||||
@@ -215,6 +221,44 @@ int open_term(int doinit, int show_win_on_error, int no_msgs)
|
||||
if (doinit > 0)
|
||||
lockfile_create();
|
||||
|
||||
+#else
|
||||
+ lockfile[0] = 0;
|
||||
+ if (doinit > 0) {
|
||||
+#ifdef USE_SOCKET
|
||||
+ if (strncmp(dial_tty, SOCKET_PREFIX, strlen(SOCKET_PREFIX)) == 0) {
|
||||
+ if (stat(dial_tty+strlen(SOCKET_PREFIX), &stt) == 0 &&
|
||||
+ S_ISSOCK(stt.st_mode)) {
|
||||
+ rc = 0;
|
||||
+ } else {
|
||||
+ rc = 1;
|
||||
+ fprintf(stderr, _("File %s is not a socket.\n"),
|
||||
+ dial_tty+strlen(SOCKET_PREFIX));
|
||||
+ }
|
||||
+ } else {
|
||||
+#endif
|
||||
+ rc = ttylock(dial_tty);
|
||||
+ if (rc < 0) {
|
||||
+ if (access(dial_tty, W_OK) == -1)
|
||||
+ fprintf(stderr, _("Device %s access failed: %s.\n"),
|
||||
+ dial_tty, strerror(errno));
|
||||
+ else
|
||||
+ fprintf(stderr, _("Device %s lock failed: %s.\n"),
|
||||
+ dial_tty, strerror(-rc));
|
||||
+ } else if (rc > 0) {
|
||||
+ fprintf(stderr, _("Device %s is locked.\n"), dial_tty);
|
||||
+ }
|
||||
+#ifdef USE_SOCKET
|
||||
+ }
|
||||
+#endif
|
||||
+ if (rc == 0) {
|
||||
+ snprintf(lockfile, sizeof(lockfile), "%s", dial_tty);
|
||||
+ } else {
|
||||
+ if (stdwin) mc_wclose(stdwin, 1);
|
||||
+ return(-1);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/* Run a special program to disable callin if needed. */
|
||||
if (doinit > 0 && P_CALLOUT[0]) {
|
||||
if (fastsystem(P_CALLOUT, NULL, NULL, NULL) < 0) {
|
||||
@@ -232,7 +276,6 @@ int open_term(int doinit, int show_win_on_error, int no_msgs)
|
||||
signal(SIGALRM, get_alrm);
|
||||
alarm(4);
|
||||
#ifdef USE_SOCKET
|
||||
-#define SOCKET_PREFIX "unix#"
|
||||
portfd_is_socket = portfd_is_connected = 0;
|
||||
if (strncmp(dial_tty, SOCKET_PREFIX, strlen(SOCKET_PREFIX)) == 0) {
|
||||
portfd_is_socket = 1;
|
||||
diff --git a/src/minicom.c b/src/minicom.c
|
||||
index 7780ff7..8b26f0d 100644
|
||||
--- a/src/minicom.c
|
||||
+++ b/src/minicom.c
|
||||
@@ -1569,8 +1569,7 @@ dirty_goto:
|
||||
mc_wclose(st, 0);
|
||||
mc_wclose(stdwin, 1);
|
||||
keyboard(KUNINSTALL, 0);
|
||||
- if (lockfile[0])
|
||||
- unlink(lockfile);
|
||||
+ lockfile_remove();
|
||||
close(portfd);
|
||||
|
||||
if (quit != NORESET && P_CALLIN[0])
|
||||
diff --git a/src/minicom.h b/src/minicom.h
|
||||
index 309d54a..83f3fca 100644
|
||||
--- a/src/minicom.h
|
||||
+++ b/src/minicom.h
|
||||
@@ -34,10 +34,14 @@
|
||||
#include "libport.h"
|
||||
|
||||
#include <time.h>
|
||||
+#include <limits.h>
|
||||
+#include <baudboy.h>
|
||||
|
||||
#ifdef USE_SOCKET
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
+
|
||||
+#define SOCKET_PREFIX "unix#"
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -82,7 +86,7 @@ EXTERN int tempst; /* Status line is temporary */
|
||||
EXTERN int escape; /* Escape code. */
|
||||
EXTERN int disable_online_time; /* disable online time display */
|
||||
|
||||
-EXTERN char lockfile[128]; /* UUCP lock file of terminal */
|
||||
+EXTERN char lockfile[PATH_MAX]; /* UUCP lock file of terminal */
|
||||
EXTERN char homedir[256]; /* Home directory of user */
|
||||
EXTERN char logfname[PARS_VAL_LEN]; /* Name of the logfile */
|
||||
EXTERN char username[16]; /* Who is using minicom? */
|
||||
diff --git a/src/updown.c b/src/updown.c
|
||||
index 24531a2..23194e4 100644
|
||||
--- a/src/updown.c
|
||||
+++ b/src/updown.c
|
||||
@@ -441,12 +441,14 @@ void updown(int what, int nr)
|
||||
|
||||
void lockfile_remove(void)
|
||||
{
|
||||
- if (lockfile[0])
|
||||
- unlink(lockfile);
|
||||
+ if (lockfile[0] && strncmp(dial_tty, SOCKET_PREFIX, strlen(SOCKET_PREFIX)) != 0)
|
||||
+ ttyunlock(lockfile);
|
||||
}
|
||||
|
||||
void lockfile_create(void)
|
||||
{
|
||||
+ int rc;
|
||||
+#ifdef NOTNOW
|
||||
int fd, n;
|
||||
|
||||
if (!lockfile[0])
|
||||
@@ -468,6 +470,14 @@ void lockfile_create(void)
|
||||
close(fd);
|
||||
}
|
||||
umask(n);
|
||||
+#else
|
||||
+ if (strncmp(dial_tty, SOCKET_PREFIX, strlen(SOCKET_PREFIX)) != 0) {
|
||||
+ rc = ttylock(lockfile);
|
||||
+ if (rc) {
|
||||
+ werror(_("Cannot lock device!"));
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
/*
|
31
minicom.spec
31
minicom.spec
@ -1,7 +1,7 @@
|
||||
Summary: A text-based modem control and terminal emulation program
|
||||
Name: minicom
|
||||
Version: 2.4
|
||||
Release: 2%{?dist}
|
||||
Version: 2.5
|
||||
Release: 1%{?dist}
|
||||
URL: http://alioth.debian.org/projects/minicom/
|
||||
License: GPLv2+
|
||||
Group: Applications/Communications
|
||||
@ -10,17 +10,9 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: lockdev-devel ncurses-devel
|
||||
Requires: lockdev lrzsz
|
||||
|
||||
Source0: http://alioth.debian.org/frs/download.php/3195/minicom-2.4.tar.gz
|
||||
Source0: http://alioth.debian.org/frs/download.php/3487/minicom-2.5.tar.gz
|
||||
|
||||
Patch1: minicom-2.4-umask.patch
|
||||
Patch2: minicom-2.2-spaces.patch
|
||||
Patch3: minicom-2.3-gotodir.patch
|
||||
Patch4: minicom-2.4-rh.patch
|
||||
Patch5: minicom-2.4-esc.patch
|
||||
Patch6: minicom-2.4-staticbuf.patch
|
||||
Patch7: minicom-2.4-config.patch
|
||||
Patch8: minicom-2.4-config-parse.patch
|
||||
Patch9: minicom-2.4-man-typo.patch
|
||||
Patch1: minicom-2.5-rh.patch
|
||||
|
||||
%description
|
||||
Minicom is a simple text-based modem control and terminal emulation
|
||||
@ -30,15 +22,7 @@ language, and other features.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1 -b .umask
|
||||
%patch2 -p1 -b .spaces
|
||||
%patch3 -p1 -b .gotodir
|
||||
%patch4 -p1 -b .rh
|
||||
%patch5 -p1 -b .esc
|
||||
%patch6 -p1 -b .staticbuf
|
||||
%patch7 -p1 -b .config
|
||||
%patch8 -p1 -b .config-parse
|
||||
%patch9 -p1 -b .man
|
||||
%patch1 -p1 -b .rh
|
||||
|
||||
cp -pr doc doc_
|
||||
rm -f doc_/Makefile*
|
||||
@ -68,6 +52,11 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Mon Jan 31 2011 Jan Görig <jgorig@redhat.com> 2.5-1
|
||||
- update to new upstream version
|
||||
- remove patches merged by upstream
|
||||
- update rh patch to support unix socket (#592355)
|
||||
|
||||
* Fri Jan 14 2011 Jan Görig <jgorig@redhat.com> 2.4-2
|
||||
- fixed typos in ascii-xfr manpage (#669098)
|
||||
- fixed empty lines handling in configuration file (#669406)
|
||||
|
Loading…
Reference in New Issue
Block a user