mirror of
git://slackware.nl/current.git
synced 2024-12-28 09:59:53 +01:00
5032 lines
152 KiB
Diff
5032 lines
152 KiB
Diff
|
--- seyon-2.20c.orig/Seyon.ad
|
|||
|
+++ seyon-2.20c/Seyon.ad
|
|||
|
@@ -7,6 +7,8 @@
|
|||
|
! * statement of rights and permissions for this program.
|
|||
|
! *
|
|||
|
|
|||
|
+#include "/etc/X11/seyon/Seyon-modem"
|
|||
|
+
|
|||
|
*.title: Seyon Command Center
|
|||
|
*.iconName: Seyon
|
|||
|
|
|||
|
@@ -259,31 +261,6 @@
|
|||
|
*statusBox.rng.label: RNG
|
|||
|
|
|||
|
!
|
|||
|
-! Quick Keys
|
|||
|
-!
|
|||
|
-
|
|||
|
-*quickKeyBox.Command.font: 6x10
|
|||
|
-
|
|||
|
-*quickKey1.visible: on
|
|||
|
-*quickKey2.visible: on
|
|||
|
-*quickKey3.visible: on
|
|||
|
-*quickKey4.visible: on
|
|||
|
-*quickKey5.visible: on
|
|||
|
-
|
|||
|
-!*quickKey1.action: DialEntries(1);
|
|||
|
-!*quickKey2.action: DialEntries(3);
|
|||
|
-!*quickKey3.action: FileTransfer(2, ou*);
|
|||
|
-!*quickKey4.action: DivertFile(/tmp/lo);
|
|||
|
-!*quickKey5.action: Hangup(); Beep();
|
|||
|
-!RunScript(test1); Echo(ll);
|
|||
|
-
|
|||
|
-*quickKey1.label: Athena
|
|||
|
-*quickKey2.label: Ch1
|
|||
|
-*quickKey3.label: UpMail
|
|||
|
-*quickKey4.label: DivMsg
|
|||
|
-*quickKey5.label: Local
|
|||
|
-
|
|||
|
-!
|
|||
|
! Fun messages. Send me more please.
|
|||
|
!
|
|||
|
|
|||
|
@@ -302,6 +279,7 @@
|
|||
|
"Have something funny? send it!" \
|
|||
|
"I've fallen and I can't get up!"
|
|||
|
|
|||
|
++*showFunMessages: off
|
|||
|
*notImplemented*title: Seyon Feature
|
|||
|
*notImplemented.dialog.label: \
|
|||
|
This feature is not yet implemented\n\
|
|||
|
--- seyon-2.20c.orig/SeDecl.h
|
|||
|
+++ seyon-2.20c/SeDecl.h
|
|||
|
@@ -66,7 +66,6 @@
|
|||
|
extern FILE *open_file(),
|
|||
|
*open_file_va();
|
|||
|
extern void send_break(),
|
|||
|
- usleep(),
|
|||
|
show(),
|
|||
|
showf(),
|
|||
|
SeyonMessage(),
|
|||
|
--- seyon-2.20c.orig/1-CHANGES
|
|||
|
+++ seyon-2.20c/1-CHANGES
|
|||
|
@@ -12,7 +12,6 @@
|
|||
|
Rolled in some obvious bug fixes from the Debian version of 2.14c:
|
|||
|
* Fixed typo in Seyon.ad: s/replcae/replace
|
|||
|
* Added #include <linux/serial.h> to SePort.c for Linux
|
|||
|
- * Minor changes to ExecShellCommand; used to crash, should no more.
|
|||
|
* Now under GPL (see 1-COPYING for details), new maintainer.
|
|||
|
|
|||
|
Versions up to 2.20b:
|
|||
|
--- seyon-2.20c.orig/SeTerm.c
|
|||
|
+++ seyon-2.20c/SeTerm.c
|
|||
|
@@ -10,7 +10,7 @@
|
|||
|
* This file contains routines for Seyon's terminal. The main routine is
|
|||
|
* terminal(), which reads characters from the terminal and sends them to the
|
|||
|
* port. That routine also forks a child process that reads characters from
|
|||
|
- * the port and writes them to the temrinal. Once the parent receives SIGTERM
|
|||
|
+ * the port and writes them to the terminal. Once the parent receives SIGTERM
|
|||
|
* (which should be sent by the grand parent), it kills the child and exits.
|
|||
|
*/
|
|||
|
|
|||
|
--- seyon-2.20c.orig/MultiList.c
|
|||
|
+++ seyon-2.20c/MultiList.c
|
|||
|
@@ -1031,8 +1031,8 @@
|
|||
|
XfwfMultiListWidget mlw;
|
|||
|
int row,column;
|
|||
|
{
|
|||
|
- GC bg_gc,fg_gc;
|
|||
|
- XfwfMultiListItem *item;
|
|||
|
+ GC bg_gc,fg_gc = 0;
|
|||
|
+ XfwfMultiListItem *item = NULL;
|
|||
|
int ul_x,ul_y,str_x,str_y,w,h,item_index,has_item,text_h;
|
|||
|
|
|||
|
if (!XtIsRealized((Widget)mlw)) return;
|
|||
|
--- seyon-2.20c.orig/SeInit.c
|
|||
|
+++ seyon-2.20c/SeInit.c
|
|||
|
@@ -34,30 +34,30 @@
|
|||
|
#endif
|
|||
|
|
|||
|
extern void TopAbout(),
|
|||
|
- TopHelp(),
|
|||
|
- TopSet(),
|
|||
|
- TopTransfer(),
|
|||
|
- TopMisc(),
|
|||
|
- SetNewlineTrMode(),
|
|||
|
- FunMessage();
|
|||
|
+ TopHelp(),
|
|||
|
+ TopSet(),
|
|||
|
+ TopTransfer(),
|
|||
|
+ TopMisc(),
|
|||
|
+ SetNewlineTrMode(),
|
|||
|
+ FunMessage();
|
|||
|
|
|||
|
extern void upload_acc_ok(),
|
|||
|
- setVal_action_ok(),
|
|||
|
- manual_dial_action_ok(),
|
|||
|
- divert_action_ok();
|
|||
|
+ setVal_action_ok(),
|
|||
|
+ manual_dial_action_ok(),
|
|||
|
+ divert_action_ok();
|
|||
|
|
|||
|
extern Boolean CvtStringToStringArray();
|
|||
|
|
|||
|
void HangupConfirm(),
|
|||
|
- ExecHangup(),
|
|||
|
- ExitConfirm(),
|
|||
|
- ExitAction(),
|
|||
|
- test();
|
|||
|
+ ExecHangup(),
|
|||
|
+ ExitConfirm(),
|
|||
|
+ ExitAction(),
|
|||
|
+ test();
|
|||
|
|
|||
|
Boolean inhibit_child = False;
|
|||
|
Widget w_exit,
|
|||
|
- w_kill,
|
|||
|
- statusMessage;
|
|||
|
+ w_kill,
|
|||
|
+ statusMessage;
|
|||
|
Widget dialWidget, genericWidget;
|
|||
|
pid_t w_child_pid = 0;
|
|||
|
Pixmap progIcon;
|
|||
|
@@ -66,194 +66,202 @@
|
|||
|
|
|||
|
void
|
|||
|
InitVariables(topLevel)
|
|||
|
- Widget topLevel;
|
|||
|
+ Widget topLevel;
|
|||
|
{
|
|||
|
- char buffer[REG_BUF];
|
|||
|
+ char buffer[REG_BUF];
|
|||
|
|
|||
|
- sprintf(captureFile, "%s/%s", expand_fname(qres.defaultDirectory, buffer),
|
|||
|
- qres.captureFile);
|
|||
|
+ expand_fname(qres.defaultDirectory, buffer, REG_BUF);
|
|||
|
|
|||
|
- SetNewlineTrMode(qres.newlineTranslation);
|
|||
|
+ if(REG_BUF > (1 + strlen(buffer) + strlen(qres.captureFile)))
|
|||
|
+ sprintf(captureFile, "%s/%s", buffer, qres.captureFile);
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ printf("Buffer overflow in InitVariables: %s/%s\nExit\n",buffer, qres.captureFile);
|
|||
|
+ exit(1);
|
|||
|
+ }
|
|||
|
+
|
|||
|
+ SetNewlineTrMode(qres.newlineTranslation);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SetIcon(topLevelWidget)
|
|||
|
- Widget topLevelWidget;
|
|||
|
+ Widget topLevelWidget;
|
|||
|
{
|
|||
|
- progIcon =
|
|||
|
- XCreateBitmapFromData(XtDisplay(topLevelWidget),
|
|||
|
- DefaultRootWindow(XtDisplay(topLevelWidget)),
|
|||
|
- progIcon_bits, progIcon_width,
|
|||
|
- progIcon_height);
|
|||
|
- XtVaSetValues(topLevelWidget, XtNiconPixmap, progIcon, NULL);
|
|||
|
+ progIcon =
|
|||
|
+ XCreateBitmapFromData(XtDisplay(topLevelWidget),
|
|||
|
+ DefaultRootWindow(XtDisplay(topLevelWidget)),
|
|||
|
+ progIcon_bits, progIcon_width,
|
|||
|
+ progIcon_height);
|
|||
|
+ XtVaSetValues(topLevelWidget, XtNiconPixmap, progIcon, NULL);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
CreateCommandCenter()
|
|||
|
{
|
|||
|
- void GetQuickKeyResources(),
|
|||
|
- GetValueByPopupOKAction(),
|
|||
|
- DispatchActionsCallback();
|
|||
|
- void TopShell();
|
|||
|
- void KillChildProc();
|
|||
|
-
|
|||
|
- Widget mainBox,
|
|||
|
- menuBox,
|
|||
|
- statusBox,
|
|||
|
- messageBox,
|
|||
|
- quickKeyBox;
|
|||
|
- static Widget status[NUM_MDM_STAT];
|
|||
|
- static Atom wm_delete_window;
|
|||
|
- Dimension menuBoxWidth;
|
|||
|
-
|
|||
|
- struct _quickKeyRes quickKeyRes;
|
|||
|
- Widget quickKeyW;
|
|||
|
- char qKBuf[REG_BUF];
|
|||
|
- int i, n = 0;
|
|||
|
-
|
|||
|
- static XtActionsRec actionTable[] = {
|
|||
|
- {"UploadOk", upload_acc_ok},
|
|||
|
- {"SetValOk", setVal_action_ok},
|
|||
|
- {"ManualDialOk", manual_dial_action_ok},
|
|||
|
- {"DivertOk", divert_action_ok},
|
|||
|
- {"Exit", ExitAction},
|
|||
|
- {"GetValueByPopupOK", GetValueByPopupOKAction},
|
|||
|
- };
|
|||
|
-
|
|||
|
- XtAppAddActions(XtWidgetToApplicationContext(topLevel), actionTable,
|
|||
|
- XtNumber(actionTable));
|
|||
|
-
|
|||
|
- mainBox = SeAddPaned("mainBox", topLevel);
|
|||
|
- statusBox = AddBox("statusBox", mainBox);
|
|||
|
- messageBox = SeAddForm("messageBox", mainBox);
|
|||
|
- quickKeyBox = AddBox("quickKeyBox", mainBox);
|
|||
|
- menuBox = AddBox("menuBox", mainBox);
|
|||
|
-
|
|||
|
- status[0] = SeAddToggle("dcd", statusBox, NULL);
|
|||
|
- status[1] = SeAddToggle("dtr", statusBox, NULL);
|
|||
|
- status[2] = SeAddToggle("dsr", statusBox, NULL);
|
|||
|
- status[3] = SeAddToggle("rts", statusBox, NULL);
|
|||
|
- status[4] = SeAddToggle("cts", statusBox, NULL);
|
|||
|
- status[5] = SeAddToggle("rng", statusBox, NULL);
|
|||
|
-
|
|||
|
- statusMessage = SeAddLabel("message", messageBox);
|
|||
|
-
|
|||
|
- AddButton("about", menuBox, TopAbout, NULL);
|
|||
|
- AddButton("help", menuBox, TopHelp, NULL);
|
|||
|
- AddButton("set", menuBox, TopSet, NULL);
|
|||
|
- genericWidget = dialWidget = AddButton("dial", menuBox, TopDial, NULL);
|
|||
|
- AddButton("transfer", menuBox, TopTransfer, NULL);
|
|||
|
- AddButton("shellCommand", menuBox, TopShell, NULL);
|
|||
|
- AddButton("misc", menuBox, TopMisc, NULL);
|
|||
|
- AddButton("hangup", menuBox, HangupConfirm, NULL);
|
|||
|
- w_exit = AddButton("exit", menuBox, ExitConfirm, NULL);
|
|||
|
- w_kill = AddButton("kill", menuBox, KillChildProc, NULL);
|
|||
|
-
|
|||
|
- for (i = 0; i < MAX_SEQUICKKEYS; i++) {
|
|||
|
- sprintf(qKBuf, "quickKey%d", i+1);
|
|||
|
- GetQuickKeyResources(qKBuf, &quickKeyRes);
|
|||
|
- if (quickKeyRes.visible) {
|
|||
|
- n++;
|
|||
|
+ void GetQuickKeyResources(),
|
|||
|
+ GetValueByPopupOKAction(),
|
|||
|
+ DispatchActionsCallback();
|
|||
|
+ void TopShell();
|
|||
|
+ void KillChildProc();
|
|||
|
+
|
|||
|
+ Widget mainBox,
|
|||
|
+ menuBox,
|
|||
|
+ statusBox,
|
|||
|
+ messageBox,
|
|||
|
+ quickKeyBox;
|
|||
|
+ static Widget status[NUM_MDM_STAT];
|
|||
|
+ static Atom wm_delete_window;
|
|||
|
+ Dimension menuBoxWidth;
|
|||
|
+
|
|||
|
+ struct _quickKeyRes quickKeyRes;
|
|||
|
+ Widget quickKeyW;
|
|||
|
+ char qKBuf[LRG_BUF];
|
|||
|
+ int i, n = 0;
|
|||
|
+
|
|||
|
+ static XtActionsRec actionTable[] = {
|
|||
|
+ {"UploadOk", upload_acc_ok},
|
|||
|
+ {"SetValOk", setVal_action_ok},
|
|||
|
+ {"ManualDialOk", manual_dial_action_ok},
|
|||
|
+ {"DivertOk", divert_action_ok},
|
|||
|
+ {"Exit", ExitAction},
|
|||
|
+ {"GetValueByPopupOK", GetValueByPopupOKAction},
|
|||
|
+ };
|
|||
|
+
|
|||
|
+ XtAppAddActions(XtWidgetToApplicationContext(topLevel), actionTable,
|
|||
|
+ XtNumber(actionTable));
|
|||
|
+
|
|||
|
+ mainBox = SeAddPaned("mainBox", topLevel);
|
|||
|
+ statusBox = AddBox("statusBox", mainBox);
|
|||
|
+ messageBox = SeAddForm("messageBox", mainBox);
|
|||
|
+ quickKeyBox = AddBox("quickKeyBox", mainBox);
|
|||
|
+ menuBox = AddBox("menuBox", mainBox);
|
|||
|
+
|
|||
|
+ status[0] = SeAddToggle("dcd", statusBox, NULL);
|
|||
|
+ status[1] = SeAddToggle("dtr", statusBox, NULL);
|
|||
|
+ status[2] = SeAddToggle("dsr", statusBox, NULL);
|
|||
|
+ status[3] = SeAddToggle("rts", statusBox, NULL);
|
|||
|
+ status[4] = SeAddToggle("cts", statusBox, NULL);
|
|||
|
+ status[5] = SeAddToggle("rng", statusBox, NULL);
|
|||
|
+
|
|||
|
+ statusMessage = SeAddLabel("message", messageBox);
|
|||
|
+
|
|||
|
+ AddButton("about", menuBox, TopAbout, NULL);
|
|||
|
+ AddButton("help", menuBox, TopHelp, NULL);
|
|||
|
+ AddButton("set", menuBox, TopSet, NULL);
|
|||
|
+ genericWidget = dialWidget = AddButton("dial", menuBox, TopDial, NULL);
|
|||
|
+ AddButton("transfer", menuBox, TopTransfer, NULL);
|
|||
|
+ AddButton("shellCommand", menuBox, TopShell, NULL);
|
|||
|
+ AddButton("misc", menuBox, TopMisc, NULL);
|
|||
|
+ AddButton("hangup", menuBox, HangupConfirm, NULL);
|
|||
|
+ w_exit = AddButton("exit", menuBox, ExitConfirm, NULL);
|
|||
|
+ w_kill = AddButton("kill", menuBox, KillChildProc, NULL);
|
|||
|
+
|
|||
|
+ for (i = 0; i < MAX_SEQUICKKEYS; i++) {
|
|||
|
+ sprintf(qKBuf, "quickKey%d", i+1); /* qKBuf is large enough here... */
|
|||
|
+ GetQuickKeyResources(qKBuf, &quickKeyRes);
|
|||
|
+ if (quickKeyRes.visible) {
|
|||
|
+ n++;
|
|||
|
quickKeyW =
|
|||
|
- AddButton(qKBuf, quickKeyBox, DispatchActionsCallback, NULL);
|
|||
|
- }
|
|||
|
- }
|
|||
|
- if (n == 0) XtDestroyWidget(quickKeyBox);
|
|||
|
-
|
|||
|
- XtOverrideTranslations(topLevel,
|
|||
|
- XtParseTranslationTable("<Message>WM_PROTOCOLS: Exit()"));
|
|||
|
-
|
|||
|
- /* Call UpdateStatusBox() before realizing the top-level widget so that
|
|||
|
- the status widget array in that function would be properly initialized
|
|||
|
- before the user is able to call hangup(), since the latter passes NULL
|
|||
|
- to UpdateStatusBox() */
|
|||
|
- UpdateStatusBox((XtPointer)status);
|
|||
|
-
|
|||
|
- XtSetMappedWhenManaged(topLevel, False);
|
|||
|
- XtRealizeWidget(topLevel);
|
|||
|
- XtVaGetValues(menuBox, XtNwidth, &menuBoxWidth, NULL);
|
|||
|
- XtVaSetValues(statusBox, XtNwidth, menuBoxWidth, NULL);
|
|||
|
- if (n) XtVaSetValues(quickKeyBox, XtNwidth, menuBoxWidth, NULL);
|
|||
|
-
|
|||
|
- /*
|
|||
|
- * (ideally one should not assume any fixed numbers, but this will do
|
|||
|
- * for now).
|
|||
|
- *
|
|||
|
- * width of message box = label width
|
|||
|
- * + 2*border width (2*1)
|
|||
|
- * + defaultDistance (right) (1)
|
|||
|
- * + horizDistance (left) (4)
|
|||
|
- *
|
|||
|
- * desired width of label = width of menu box
|
|||
|
- * - hSpace of menu box (2*4) (to align with buttons)
|
|||
|
- * - border with of label (2*1)
|
|||
|
- * = width of menu box - 10
|
|||
|
- *
|
|||
|
- * => width of message box = width of menu box - 10 + 7
|
|||
|
- * => width of message box < width of menu box
|
|||
|
- * => menu box width is the controlling factor in deciding the widnow
|
|||
|
- * width, as desired.
|
|||
|
- */
|
|||
|
- XtVaSetValues(statusMessage, XtNresizable, True, NULL);
|
|||
|
- XtVaSetValues(statusMessage, XtNwidth, menuBoxWidth - 10, NULL);
|
|||
|
- XtVaSetValues(statusMessage, XtNresizable, False, NULL);
|
|||
|
-
|
|||
|
- wm_delete_window = XInternAtom(XtDisplay(topLevel),
|
|||
|
- "WM_DELETE_WINDOW", False);
|
|||
|
- XSetWMProtocols(XtDisplay(topLevel), XtWindow(topLevel),
|
|||
|
- &wm_delete_window, 1);
|
|||
|
+ AddButton(qKBuf, quickKeyBox, DispatchActionsCallback, NULL);
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+ if (n == 0) XtDestroyWidget(quickKeyBox);
|
|||
|
+
|
|||
|
+ XtOverrideTranslations(topLevel,
|
|||
|
+ XtParseTranslationTable("<Message>WM_PROTOCOLS: Exit()"));
|
|||
|
+
|
|||
|
+ /* Call UpdateStatusBox() before realizing the top-level widget so that
|
|||
|
+ the status widget array in that function would be properly initialized
|
|||
|
+ before the user is able to call hangup(), since the latter passes NULL
|
|||
|
+ to UpdateStatusBox() */
|
|||
|
+ UpdateStatusBox((XtPointer)status);
|
|||
|
+
|
|||
|
+ XtSetMappedWhenManaged(topLevel, False);
|
|||
|
+ XtRealizeWidget(topLevel);
|
|||
|
+ XtVaGetValues(menuBox, XtNwidth, &menuBoxWidth, NULL);
|
|||
|
+ XtVaSetValues(statusBox, XtNwidth, menuBoxWidth, NULL);
|
|||
|
+ if (n) XtVaSetValues(quickKeyBox, XtNwidth, menuBoxWidth, NULL);
|
|||
|
+
|
|||
|
+ /*
|
|||
|
+ * (ideally one should not assume any fixed numbers, but this will do
|
|||
|
+ * for now).
|
|||
|
+ *
|
|||
|
+ * width of message box = label width
|
|||
|
+ * + 2*border width (2*1)
|
|||
|
+ * + defaultDistance (right) (1)
|
|||
|
+ * + horizDistance (left) (4)
|
|||
|
+ *
|
|||
|
+ * desired width of label = width of menu box
|
|||
|
+ * - hSpace of menu box (2*4) (to align with buttons)
|
|||
|
+ * - border with of label (2*1)
|
|||
|
+ * = width of menu box - 10
|
|||
|
+ *
|
|||
|
+ * => width of message box = width of menu box - 10 + 7
|
|||
|
+ * => width of message box < width of menu box
|
|||
|
+ * => menu box width is the controlling factor in deciding the widnow
|
|||
|
+ * width, as desired.
|
|||
|
+ */
|
|||
|
+ XtVaSetValues(statusMessage, XtNresizable, True, NULL);
|
|||
|
+ XtVaSetValues(statusMessage, XtNwidth, menuBoxWidth - 10, NULL);
|
|||
|
+ XtVaSetValues(statusMessage, XtNresizable, False, NULL);
|
|||
|
+
|
|||
|
+ wm_delete_window = XInternAtom(XtDisplay(topLevel),
|
|||
|
+ "WM_DELETE_WINDOW", False);
|
|||
|
+ XSetWMProtocols(XtDisplay(topLevel), XtWindow(topLevel),
|
|||
|
+ &wm_delete_window, 1);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
TopAbout(parent)
|
|||
|
- Widget parent;
|
|||
|
+ Widget parent;
|
|||
|
{
|
|||
|
- Widget popup,
|
|||
|
- mBox,
|
|||
|
- uBox,
|
|||
|
- lBox,
|
|||
|
- pic,
|
|||
|
- msg,
|
|||
|
- caption;
|
|||
|
- Pixmap pix;
|
|||
|
- Dimension width1,
|
|||
|
- width2;
|
|||
|
- char msgStr[LRG_BUF];
|
|||
|
+ Widget popup,
|
|||
|
+ mBox,
|
|||
|
+ uBox,
|
|||
|
+ lBox,
|
|||
|
+ pic,
|
|||
|
+ msg,
|
|||
|
+ caption;
|
|||
|
+ Pixmap pix;
|
|||
|
+ Dimension width1,
|
|||
|
+ width2;
|
|||
|
+ char msgStr[LRG_BUF];
|
|||
|
#include "authPic.h"
|
|||
|
|
|||
|
- popup = SeAddPopup("about", parent);
|
|||
|
- mBox = SeAddPaned("mBox", popup);
|
|||
|
- uBox = SeAddBox("uBox", mBox);
|
|||
|
- lBox = SeAddBox("lBox", mBox);
|
|||
|
-
|
|||
|
- msg = SeAddLabel("msg", uBox);
|
|||
|
- pic = SeAddLabel("pic", uBox);
|
|||
|
- caption = SeAddLabel("caption", uBox);
|
|||
|
+ popup = SeAddPopup("about", parent);
|
|||
|
+ mBox = SeAddPaned("mBox", popup);
|
|||
|
+ uBox = SeAddBox("uBox", mBox);
|
|||
|
+ lBox = SeAddBox("lBox", mBox);
|
|||
|
+
|
|||
|
+ msg = SeAddLabel("msg", uBox);
|
|||
|
+ pic = SeAddLabel("pic", uBox);
|
|||
|
+ caption = SeAddLabel("caption", uBox);
|
|||
|
|
|||
|
- sprintf(msgStr, "%s %s rev. %s\n%s\n%s\n%s", "Seyon version", VERSION,
|
|||
|
+ /* msgStr is big enough here */
|
|||
|
+ sprintf(msgStr, "%s %s rev. %s\n%s\n%s\n%s", "Seyon version", VERSION,
|
|||
|
REVISION, "Copyright 1992-1993", "(c) Muhammad M. Saggaf",
|
|||
|
"All rights reserved");
|
|||
|
- XtVaSetValues(msg, XtNlabel, msgStr, NULL);
|
|||
|
+ XtVaSetValues(msg, XtNlabel, msgStr, NULL);
|
|||
|
|
|||
|
- pix = XCreateBitmapFromData(XtDisplay(pic),
|
|||
|
- DefaultRootWindow(XtDisplay(pic)),
|
|||
|
- authPic_bits, authPic_width,
|
|||
|
- authPic_height);
|
|||
|
- XtVaSetValues(pic, XtNbitmap, pix, NULL);
|
|||
|
-
|
|||
|
- width1 = SeWidgetWidth(msg);
|
|||
|
- width2 = SeWidgetWidth(pic);
|
|||
|
- width1 = width1 > width2 ? width1 : width2;
|
|||
|
- width2 = SeWidgetWidth(caption);
|
|||
|
- width1 = width1 > width2 ? width1 : width2;
|
|||
|
-
|
|||
|
- XtVaSetValues(msg, XtNwidth, width1, NULL);
|
|||
|
- XtVaSetValues(pic, XtNwidth, width1, NULL);
|
|||
|
- XtVaSetValues(caption, XtNwidth, width1, NULL);
|
|||
|
+ pix = XCreateBitmapFromData(XtDisplay(pic),
|
|||
|
+ DefaultRootWindow(XtDisplay(pic)),
|
|||
|
+ authPic_bits, authPic_width,
|
|||
|
+ authPic_height);
|
|||
|
+ XtVaSetValues(pic, XtNbitmap, pix, NULL);
|
|||
|
+
|
|||
|
+ width1 = SeWidgetWidth(msg);
|
|||
|
+ width2 = SeWidgetWidth(pic);
|
|||
|
+ width1 = width1 > width2 ? width1 : width2;
|
|||
|
+ width2 = SeWidgetWidth(caption);
|
|||
|
+ width1 = width1 > width2 ? width1 : width2;
|
|||
|
+
|
|||
|
+ XtVaSetValues(msg, XtNwidth, width1, NULL);
|
|||
|
+ XtVaSetValues(pic, XtNwidth, width1, NULL);
|
|||
|
+ XtVaSetValues(caption, XtNwidth, width1, NULL);
|
|||
|
|
|||
|
- SeAddButton("dismiss", lBox, DestroyShell);
|
|||
|
+ SeAddButton("dismiss", lBox, DestroyShell);
|
|||
|
|
|||
|
- XtPopupSpringLoaded(popup);
|
|||
|
+ XtPopupSpringLoaded(popup);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -262,151 +270,151 @@
|
|||
|
|
|||
|
void
|
|||
|
TopHelp(widget)
|
|||
|
- Widget widget;
|
|||
|
+ Widget widget;
|
|||
|
{
|
|||
|
- Widget DoDisplayFile();
|
|||
|
- Widget displayPopup;
|
|||
|
+ Widget DoDisplayFile();
|
|||
|
+ Widget displayPopup;
|
|||
|
|
|||
|
- XtVaSetValues(widget, XtNsensitive, False, NULL);
|
|||
|
- displayPopup = DoDisplayFile(widget, qres.helpFile);
|
|||
|
- XtAddCallback(displayPopup, XtNdestroyCallback, SetSensitiveOn, widget);
|
|||
|
+ XtVaSetValues(widget, XtNsensitive, False, NULL);
|
|||
|
+ displayPopup = DoDisplayFile(widget, qres.helpFile);
|
|||
|
+ XtAddCallback(displayPopup, XtNdestroyCallback, SetSensitiveOn, widget);
|
|||
|
|
|||
|
- PositionShell(displayPopup, widget, SHELLPOS_HWFH);
|
|||
|
- XtPopup(displayPopup, XtGrabNone);
|
|||
|
+ PositionShell(displayPopup, widget, SHELLPOS_HWFH);
|
|||
|
+ XtPopup(displayPopup, XtGrabNone);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
ExecHangup()
|
|||
|
{
|
|||
|
- MdmHangup();
|
|||
|
- SeyonMessage("Line Disconnected");
|
|||
|
+ MdmHangup();
|
|||
|
+ SeyonMessage("Line Disconnected");
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
DoHangup(widget)
|
|||
|
- Widget widget;
|
|||
|
+ Widget widget;
|
|||
|
{
|
|||
|
- DestroyShell(widget);
|
|||
|
- ExecHangup();
|
|||
|
+ DestroyShell(widget);
|
|||
|
+ ExecHangup();
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
HangupConfirm(widget)
|
|||
|
- Widget widget;
|
|||
|
+ Widget widget;
|
|||
|
{
|
|||
|
- Widget popup,
|
|||
|
- dialog;
|
|||
|
+ Widget popup,
|
|||
|
+ dialog;
|
|||
|
|
|||
|
- ErrorIfBusy()
|
|||
|
+ ErrorIfBusy()
|
|||
|
|
|||
|
- if (qres.hangupConfirm) {
|
|||
|
- popup = AddSimplePopup("hangup", widget);
|
|||
|
- dialog = SeAddDialog("dialog", popup);
|
|||
|
+ if (qres.hangupConfirm) {
|
|||
|
+ popup = AddSimplePopup("hangup", widget);
|
|||
|
+ dialog = SeAddDialog("dialog", popup);
|
|||
|
|
|||
|
- XawDialogAddButton(dialog, "yes", DoHangup, (XtPointer) dialog);
|
|||
|
- XawDialogAddButton(dialog, "cancel", DestroyShell, NULL);
|
|||
|
+ XawDialogAddButton(dialog, "yes", DoHangup, (XtPointer) dialog);
|
|||
|
+ XawDialogAddButton(dialog, "cancel", DestroyShell, NULL);
|
|||
|
|
|||
|
- PopupCentered(popup, widget);
|
|||
|
- }
|
|||
|
- else
|
|||
|
- ExecHangup();
|
|||
|
+ PopupCentered(popup, widget);
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ ExecHangup();
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
ExitNoHangup(widget)
|
|||
|
- Widget widget;
|
|||
|
+ Widget widget;
|
|||
|
{
|
|||
|
- DestroyShell(widget);
|
|||
|
- s_exit(widget);
|
|||
|
+ DestroyShell(widget);
|
|||
|
+ s_exit(widget);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
ExitHangup(widget)
|
|||
|
- Widget widget;
|
|||
|
+ Widget widget;
|
|||
|
{
|
|||
|
- ExecHangup();
|
|||
|
- ExitNoHangup(widget);
|
|||
|
+ ExecHangup();
|
|||
|
+ ExitNoHangup(widget);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
ExitConfirm(widget)
|
|||
|
- Widget widget;
|
|||
|
+ Widget widget;
|
|||
|
{
|
|||
|
- Widget popup,
|
|||
|
- dialog;
|
|||
|
+ Widget popup,
|
|||
|
+ dialog;
|
|||
|
|
|||
|
- if (qres.exitConfirm && !qres.ignoreModemDCD && Online()) {
|
|||
|
- popup = AddSimplePopup("exit", widget);
|
|||
|
- dialog = SeAddDialog("dialog", popup);
|
|||
|
+ if (qres.exitConfirm && !qres.ignoreModemDCD && Online()) {
|
|||
|
+ popup = AddSimplePopup("exit", widget);
|
|||
|
+ dialog = SeAddDialog("dialog", popup);
|
|||
|
|
|||
|
- XawDialogAddButton(dialog, "yes", ExitHangup, NULL);
|
|||
|
- XawDialogAddButton(dialog, "no", ExitNoHangup, NULL);
|
|||
|
- XawDialogAddButton(dialog, "cancel", DestroyShell, NULL);
|
|||
|
+ XawDialogAddButton(dialog, "yes", ExitHangup, NULL);
|
|||
|
+ XawDialogAddButton(dialog, "no", ExitNoHangup, NULL);
|
|||
|
+ XawDialogAddButton(dialog, "cancel", DestroyShell, NULL);
|
|||
|
|
|||
|
- PopupCentered(popup, widget);
|
|||
|
- }
|
|||
|
- else
|
|||
|
- s_exit();
|
|||
|
+ PopupCentered(popup, widget);
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ s_exit();
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
ExitAction(widget)
|
|||
|
- Widget widget;
|
|||
|
+ Widget widget;
|
|||
|
{
|
|||
|
- Boolean wExitButtonStatus;
|
|||
|
+ Boolean wExitButtonStatus;
|
|||
|
|
|||
|
- /* Prevent the user from exiting the program by f.delete if exiting
|
|||
|
- is not permitted */
|
|||
|
- XtVaGetValues(w_exit, XtNsensitive, &wExitButtonStatus, NULL);
|
|||
|
- ReturnIfTrue(!wExitButtonStatus);
|
|||
|
- s_exit();
|
|||
|
+ /* Prevent the user from exiting the program by f.delete if exiting
|
|||
|
+ is not permitted */
|
|||
|
+ XtVaGetValues(w_exit, XtNsensitive, &wExitButtonStatus, NULL);
|
|||
|
+ ReturnIfTrue(!wExitButtonStatus);
|
|||
|
+ s_exit();
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
w_exit_up(w_exit_status)
|
|||
|
- Boolean w_exit_status;
|
|||
|
+ Boolean w_exit_status;
|
|||
|
{
|
|||
|
- XtVaSetValues(w_exit, XtNsensitive, w_exit_status, NULL);
|
|||
|
+ XtVaSetValues(w_exit, XtNsensitive, w_exit_status, NULL);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SetKillButtonSens(killWidgetStatus)
|
|||
|
- Boolean killWidgetStatus;
|
|||
|
+ Boolean killWidgetStatus;
|
|||
|
{
|
|||
|
- XtVaSetValues(w_kill, XtNsensitive, killWidgetStatus, NULL);
|
|||
|
- w_exit_up(!killWidgetStatus);
|
|||
|
+ XtVaSetValues(w_kill, XtNsensitive, killWidgetStatus, NULL);
|
|||
|
+ w_exit_up(!killWidgetStatus);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
w_kill_up(w_kill_status)
|
|||
|
- Boolean w_kill_status;
|
|||
|
+ Boolean w_kill_status;
|
|||
|
{
|
|||
|
- SetKillButtonSens(w_kill_status);
|
|||
|
+ SetKillButtonSens(w_kill_status);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
KillChildProc()
|
|||
|
{
|
|||
|
- if (w_child_pid == 0) return;
|
|||
|
- if (kill(w_child_pid, SIGTERM) == 0) w_child_pid = 0;
|
|||
|
+ if (w_child_pid == 0) return;
|
|||
|
+ if (kill(w_child_pid, SIGTERM) == 0) w_child_pid = 0;
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
GetQuickKeyResources(quickKeyName, quickKeyRes)
|
|||
|
- String quickKeyName;
|
|||
|
- struct _quickKeyRes *quickKeyRes;
|
|||
|
+ String quickKeyName;
|
|||
|
+ struct _quickKeyRes *quickKeyRes;
|
|||
|
{
|
|||
|
#define offset(field) XtOffsetOf(struct _quickKeyRes, field)
|
|||
|
- static XtResource resources[] = {
|
|||
|
- {"visible", "Visible", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(visible), XtRImmediate, (XtPointer)False},
|
|||
|
- {"action", "Action", XtRString, sizeof(String),
|
|||
|
- offset(action), XtRString, (XtPointer)""},
|
|||
|
- };
|
|||
|
+ static XtResource resources[] = {
|
|||
|
+ {"visible", "Visible", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(visible), XtRImmediate, (XtPointer)False},
|
|||
|
+ {"action", "Action", XtRString, sizeof(String),
|
|||
|
+ offset(action), XtRString, (XtPointer)""},
|
|||
|
+ };
|
|||
|
#undef offset
|
|||
|
|
|||
|
- XtGetSubresources(topLevel, (XtPointer)quickKeyRes, quickKeyName, "Command",
|
|||
|
- resources, XtNumber(resources), NULL, 0);
|
|||
|
+ XtGetSubresources(topLevel, (XtPointer)quickKeyRes, quickKeyName, "Command",
|
|||
|
+ resources, XtNumber(resources), NULL, 0);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
@@ -414,140 +422,140 @@
|
|||
|
{
|
|||
|
#define offset(field) XtOffsetOf(struct QueryResources, field)
|
|||
|
|
|||
|
- static XtResource resources[] = {
|
|||
|
- {"modems", "Modems", XtRString, sizeof(String),
|
|||
|
- offset(modems), XtRString, (XtPointer)""},
|
|||
|
- {"script", "Script", XtRString, sizeof(String),
|
|||
|
- offset(script), XtRString, (XtPointer) NULL},
|
|||
|
+ static XtResource resources[] = {
|
|||
|
+ {"modems", "Modems", XtRString, sizeof(String),
|
|||
|
+ offset(modems), XtRString, (XtPointer)""},
|
|||
|
+ {"script", "Script", XtRString, sizeof(String),
|
|||
|
+ offset(script), XtRString, (XtPointer) NULL},
|
|||
|
|
|||
|
- {"defaultBPS", "DefaultBPS", XtRString, sizeof(String),
|
|||
|
- offset(defaultBPS), XtRString, (XtPointer) "9600"},
|
|||
|
- {"defaultBits", "DefaultBits", XtRInt, sizeof(int),
|
|||
|
- offset(defaultBits), XtRImmediate, (XtPointer) 8},
|
|||
|
- {"defaultParity", "DefaultParity", XtRInt, sizeof(int),
|
|||
|
- offset(defaultParity), XtRImmediate, (XtPointer) 0},
|
|||
|
- {"defaultStopBits", "DefaultStopBits", XtRInt, sizeof(int),
|
|||
|
- offset(defaultStopBits), XtRImmediate, (XtPointer) 1},
|
|||
|
- {"stripHighBit", "StripHighBit", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(stripHighBit), XtRImmediate, (XtPointer) False},
|
|||
|
- {"backspaceTranslation", "BackspaceTranslation", XtRBoolean,
|
|||
|
- sizeof(Boolean), offset(backspaceTranslation), XtRImmediate,
|
|||
|
- (XtPointer) False},
|
|||
|
- {"metaKeyTranslation", "MetaKeyTranslation", XtRBoolean,
|
|||
|
- sizeof(Boolean), offset(metaKeyTranslation), XtRImmediate,
|
|||
|
- (XtPointer) True},
|
|||
|
- {"xonxoffFlowControl", "XonxoffFlowControl", XtRBoolean,
|
|||
|
- sizeof(Boolean), offset(xonxoffFlowControl), XtRImmediate,
|
|||
|
- (XtPointer) False},
|
|||
|
- {"rtsctsFlowControl", "RtsctsFlowControl", XtRBoolean,
|
|||
|
- sizeof(Boolean), offset(rtsctsFlowControl), XtRImmediate,
|
|||
|
- (XtPointer) False},
|
|||
|
- {"newlineTranslation", "NewlineTranslation", XtRString,
|
|||
|
- sizeof(String), offset(newlineTranslation), XtRImmediate,
|
|||
|
- (XtPointer) "cr"},
|
|||
|
-
|
|||
|
- {"dialPrefix", "DialPrefix", XtRString, sizeof(String),
|
|||
|
- offset(dialPrefix), XtRString, (XtPointer) "ATDT"},
|
|||
|
- {"dialSuffix", "DialSuffix", XtRString, sizeof(String),
|
|||
|
- offset(dialSuffix), XtRString, (XtPointer) "^M"},
|
|||
|
- {"dialCancelString", "DialCancelString", XtRString, sizeof(String),
|
|||
|
- offset(dialCancelString), XtRString, (XtPointer) "^M"},
|
|||
|
-
|
|||
|
- {"dialTimeOut", "DialTimeOut", XtRInt, sizeof(int),
|
|||
|
- offset(dialTimeOut), XtRImmediate, (XtPointer) 45},
|
|||
|
- {"dialDelay", "DialDelay", XtRInt, sizeof(int),
|
|||
|
- offset(dialDelay), XtRImmediate, (XtPointer) 10},
|
|||
|
- {"dialRepeat", "DialRepeat", XtRInt, sizeof(int),
|
|||
|
- offset(dialRepeat), XtRImmediate, (XtPointer) 5},
|
|||
|
-
|
|||
|
- {"connectString", "ConnectString", XtRString, sizeof(String),
|
|||
|
- offset(connectString), XtRString, (XtPointer) "CONNECT"},
|
|||
|
- {"noConnectString1", "NoConnectString1", XtRString, sizeof(String),
|
|||
|
- offset(noConnectString[0]), XtRString, (XtPointer) "NO CARRIER"},
|
|||
|
- {"noConnectString2", "NoConnectString2", XtRString, sizeof(String),
|
|||
|
- offset(noConnectString[1]), XtRString, (XtPointer) "NO DIALTONE"},
|
|||
|
- {"noConnectString3", "NoConnectString3", XtRString, sizeof(String),
|
|||
|
- offset(noConnectString[2]), XtRString, (XtPointer) "BUSY"},
|
|||
|
- {"noConnectString4", "NoConnectString4", XtRString, sizeof(String),
|
|||
|
- offset(noConnectString[3]), XtRString, (XtPointer) "VOICE"},
|
|||
|
-
|
|||
|
- {"hangupBeforeDial", "HangupBeforeDial", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(hangupBeforeDial), XtRImmediate, (XtPointer)True},
|
|||
|
- {"dialAutoStart", "DialAutoStart", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(dialAutoStart), XtRImmediate, (XtPointer)False},
|
|||
|
- {"dialDirFormat", "DialDirFormat", XtRString, sizeof(String),
|
|||
|
- offset(dialDirFormat), XtRString,
|
|||
|
- (XtPointer)"%-15s %-15s %6s %1c%1c%1c %1c%1c %s"},
|
|||
|
- {"defaultPhoneEntries", "DefaultPhoneEntries", XtRString, sizeof(String),
|
|||
|
- offset(defaultPhoneEntries), XtRString, (XtPointer)NULL},
|
|||
|
-
|
|||
|
- {"startupAction", "StartupAction", XtRString, sizeof(String),
|
|||
|
- offset(startupAction), XtRString,
|
|||
|
- (XtPointer)"RunScript(startup);"},
|
|||
|
- {"postConnectAction", "PostConnectAction", XtRString, sizeof(String),
|
|||
|
- offset(postConnectAction), XtRString, (XtPointer)"Beep();"},
|
|||
|
-
|
|||
|
- {"autoZmodem", "AutoZmodem", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(autoZmodem), XtRImmediate, (XtPointer)True},
|
|||
|
- {"autoZmodemAction", "AutoZmodemAction", XtRString, sizeof(String),
|
|||
|
- offset(autoZmodemAction), XtRString,
|
|||
|
- (XtPointer)"ShellCommand($rz);"},
|
|||
|
-
|
|||
|
- {"modemVMin", "ModemVMin", XtRInt, sizeof(int),
|
|||
|
- offset(modemVMin), XtRImmediate, (XtPointer) 1},
|
|||
|
- {"ignoreModemDCD", "IgnoreModemDCD", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(ignoreModemDCD), XtRImmediate, (XtPointer) False},
|
|||
|
- {"hangupViaDTR", "HangupViaDTR", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(hangupViaDTR), XtRImmediate, (XtPointer)False},
|
|||
|
- {"modemAttentionString", "ModemAttentionString", XtRString, sizeof(String),
|
|||
|
- offset(modemAttentionString), XtRString, (XtPointer)"+++"},
|
|||
|
- {"modemHangupString", "ModemHangupString", XtRString, sizeof(String),
|
|||
|
- offset(modemHangupString), XtRString, (XtPointer)"ATH^M"},
|
|||
|
- {"hangupConfirm", "HangupConfirm", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(hangupConfirm), XtRImmediate, (XtPointer) True},
|
|||
|
- {"exitConfirm", "ExitConfirm", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(exitConfirm), XtRImmediate, (XtPointer) True},
|
|||
|
- {"neverBeep", "NeverBeep", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(neverBeep), XtRImmediate, (XtPointer)False},
|
|||
|
-
|
|||
|
- {"defaultDirectory", "DefaultDirectory", XtRString, sizeof(String),
|
|||
|
- offset(defaultDirectory), XtRString, (XtPointer) "~/.seyon"},
|
|||
|
- {"scriptDirectory", "scriptDirectory", XtRString, sizeof(String),
|
|||
|
- offset(scriptDirectory), XtRString, (XtPointer) NULL},
|
|||
|
- {"startupFile", "StartupFile", XtRString, sizeof(String),
|
|||
|
- offset(startupFile), XtRString, (XtPointer) "startup"},
|
|||
|
- {"phoneFile", "PhoneFile", XtRString, sizeof(String),
|
|||
|
- offset(phoneFile), XtRString, (XtPointer) "phonelist"},
|
|||
|
- {"protocolsFile", "ProtocolsFile", XtRString, sizeof(String),
|
|||
|
- offset(protocolsFile), XtRString, (XtPointer) "protocols"},
|
|||
|
- {"captureFile", "CaptureFile", XtRString, sizeof(String),
|
|||
|
- offset(captureFile), XtRString, (XtPointer) "capture"},
|
|||
|
- {"helpFile", "HelpFile", XtRString, sizeof(String),
|
|||
|
- offset(helpFile), XtRString, (XtPointer) HELPFILE},
|
|||
|
-
|
|||
|
- {"modemStatusInterval", "ModemStatusInterval", XtRInt, sizeof(int),
|
|||
|
- offset(modemStatusInterval), XtRImmediate, (XtPointer) 5},
|
|||
|
-
|
|||
|
- {"idleGuard", "IdleGuard", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(idleGuard), XtRImmediate, (XtPointer) False},
|
|||
|
- {"idleGuardInterval", "IdleGuardInterval", XtRInt, sizeof(int),
|
|||
|
- offset(idleGuardInterval), XtRImmediate, (XtPointer) 300},
|
|||
|
- {"idleGuardString", "IdleGuardString", XtRString, sizeof(String),
|
|||
|
- offset(idleGuardString), XtRImmediate, (XtPointer) " ^H"},
|
|||
|
-
|
|||
|
- {"showFunMessages", "ShowFunMessages", XtRBoolean, sizeof(Boolean),
|
|||
|
- offset(showFunMessages), XtRImmediate, (XtPointer) True},
|
|||
|
- {"funMessagesInterval", "FunMessagesInterval", XtRInt, sizeof(int),
|
|||
|
- offset(funMessagesInterval), XtRImmediate, (XtPointer) 15},
|
|||
|
- {"funMessages", "FunMessages", XtRStringArray, sizeof(String*),
|
|||
|
- offset(funMessages), XtRStringArray, (XtPointer) NULL},
|
|||
|
- };
|
|||
|
+ {"defaultBPS", "DefaultBPS", XtRString, sizeof(String),
|
|||
|
+ offset(defaultBPS), XtRString, (XtPointer) "9600"},
|
|||
|
+ {"defaultBits", "DefaultBits", XtRInt, sizeof(int),
|
|||
|
+ offset(defaultBits), XtRImmediate, (XtPointer) 8},
|
|||
|
+ {"defaultParity", "DefaultParity", XtRInt, sizeof(int),
|
|||
|
+ offset(defaultParity), XtRImmediate, (XtPointer) 0},
|
|||
|
+ {"defaultStopBits", "DefaultStopBits", XtRInt, sizeof(int),
|
|||
|
+ offset(defaultStopBits), XtRImmediate, (XtPointer) 1},
|
|||
|
+ {"stripHighBit", "StripHighBit", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(stripHighBit), XtRImmediate, (XtPointer) False},
|
|||
|
+ {"backspaceTranslation", "BackspaceTranslation", XtRBoolean,
|
|||
|
+ sizeof(Boolean), offset(backspaceTranslation), XtRImmediate,
|
|||
|
+ (XtPointer) False},
|
|||
|
+ {"metaKeyTranslation", "MetaKeyTranslation", XtRBoolean,
|
|||
|
+ sizeof(Boolean), offset(metaKeyTranslation), XtRImmediate,
|
|||
|
+ (XtPointer) True},
|
|||
|
+ {"xonxoffFlowControl", "XonxoffFlowControl", XtRBoolean,
|
|||
|
+ sizeof(Boolean), offset(xonxoffFlowControl), XtRImmediate,
|
|||
|
+ (XtPointer) False},
|
|||
|
+ {"rtsctsFlowControl", "RtsctsFlowControl", XtRBoolean,
|
|||
|
+ sizeof(Boolean), offset(rtsctsFlowControl), XtRImmediate,
|
|||
|
+ (XtPointer) False},
|
|||
|
+ {"newlineTranslation", "NewlineTranslation", XtRString,
|
|||
|
+ sizeof(String), offset(newlineTranslation), XtRImmediate,
|
|||
|
+ (XtPointer) "cr"},
|
|||
|
+
|
|||
|
+ {"dialPrefix", "DialPrefix", XtRString, sizeof(String),
|
|||
|
+ offset(dialPrefix), XtRString, (XtPointer) "ATDT"},
|
|||
|
+ {"dialSuffix", "DialSuffix", XtRString, sizeof(String),
|
|||
|
+ offset(dialSuffix), XtRString, (XtPointer) "^M"},
|
|||
|
+ {"dialCancelString", "DialCancelString", XtRString, sizeof(String),
|
|||
|
+ offset(dialCancelString), XtRString, (XtPointer) "^M"},
|
|||
|
+
|
|||
|
+ {"dialTimeOut", "DialTimeOut", XtRInt, sizeof(int),
|
|||
|
+ offset(dialTimeOut), XtRImmediate, (XtPointer) 45},
|
|||
|
+ {"dialDelay", "DialDelay", XtRInt, sizeof(int),
|
|||
|
+ offset(dialDelay), XtRImmediate, (XtPointer) 10},
|
|||
|
+ {"dialRepeat", "DialRepeat", XtRInt, sizeof(int),
|
|||
|
+ offset(dialRepeat), XtRImmediate, (XtPointer) 5},
|
|||
|
+
|
|||
|
+ {"connectString", "ConnectString", XtRString, sizeof(String),
|
|||
|
+ offset(connectString), XtRString, (XtPointer) "CONNECT"},
|
|||
|
+ {"noConnectString1", "NoConnectString1", XtRString, sizeof(String),
|
|||
|
+ offset(noConnectString[0]), XtRString, (XtPointer) "NO CARRIER"},
|
|||
|
+ {"noConnectString2", "NoConnectString2", XtRString, sizeof(String),
|
|||
|
+ offset(noConnectString[1]), XtRString, (XtPointer) "NO DIALTONE"},
|
|||
|
+ {"noConnectString3", "NoConnectString3", XtRString, sizeof(String),
|
|||
|
+ offset(noConnectString[2]), XtRString, (XtPointer) "BUSY"},
|
|||
|
+ {"noConnectString4", "NoConnectString4", XtRString, sizeof(String),
|
|||
|
+ offset(noConnectString[3]), XtRString, (XtPointer) "VOICE"},
|
|||
|
+
|
|||
|
+ {"hangupBeforeDial", "HangupBeforeDial", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(hangupBeforeDial), XtRImmediate, (XtPointer)True},
|
|||
|
+ {"dialAutoStart", "DialAutoStart", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(dialAutoStart), XtRImmediate, (XtPointer)False},
|
|||
|
+ {"dialDirFormat", "DialDirFormat", XtRString, sizeof(String),
|
|||
|
+ offset(dialDirFormat), XtRString,
|
|||
|
+ (XtPointer)"%-15s %-15s %6s %1c%1c%1c %1c%1c %s"},
|
|||
|
+ {"defaultPhoneEntries", "DefaultPhoneEntries", XtRString, sizeof(String),
|
|||
|
+ offset(defaultPhoneEntries), XtRString, (XtPointer)NULL},
|
|||
|
+
|
|||
|
+ {"startupAction", "StartupAction", XtRString, sizeof(String),
|
|||
|
+ offset(startupAction), XtRString,
|
|||
|
+ (XtPointer)"RunScript(startup);"},
|
|||
|
+ {"postConnectAction", "PostConnectAction", XtRString, sizeof(String),
|
|||
|
+ offset(postConnectAction), XtRString, (XtPointer)"Beep();"},
|
|||
|
+
|
|||
|
+ {"autoZmodem", "AutoZmodem", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(autoZmodem), XtRImmediate, (XtPointer)True},
|
|||
|
+ {"autoZmodemAction", "AutoZmodemAction", XtRString, sizeof(String),
|
|||
|
+ offset(autoZmodemAction), XtRString,
|
|||
|
+ (XtPointer)"ShellCommand($rz);"},
|
|||
|
+
|
|||
|
+ {"modemVMin", "ModemVMin", XtRInt, sizeof(int),
|
|||
|
+ offset(modemVMin), XtRImmediate, (XtPointer) 1},
|
|||
|
+ {"ignoreModemDCD", "IgnoreModemDCD", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(ignoreModemDCD), XtRImmediate, (XtPointer) False},
|
|||
|
+ {"hangupViaDTR", "HangupViaDTR", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(hangupViaDTR), XtRImmediate, (XtPointer)False},
|
|||
|
+ {"modemAttentionString", "ModemAttentionString", XtRString, sizeof(String),
|
|||
|
+ offset(modemAttentionString), XtRString, (XtPointer)"+++"},
|
|||
|
+ {"modemHangupString", "ModemHangupString", XtRString, sizeof(String),
|
|||
|
+ offset(modemHangupString), XtRString, (XtPointer)"ATH^M"},
|
|||
|
+ {"hangupConfirm", "HangupConfirm", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(hangupConfirm), XtRImmediate, (XtPointer) True},
|
|||
|
+ {"exitConfirm", "ExitConfirm", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(exitConfirm), XtRImmediate, (XtPointer) True},
|
|||
|
+ {"neverBeep", "NeverBeep", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(neverBeep), XtRImmediate, (XtPointer)False},
|
|||
|
+
|
|||
|
+ {"defaultDirectory", "DefaultDirectory", XtRString, sizeof(String),
|
|||
|
+ offset(defaultDirectory), XtRString, (XtPointer) "~/.seyon"},
|
|||
|
+ {"scriptDirectory", "scriptDirectory", XtRString, sizeof(String),
|
|||
|
+ offset(scriptDirectory), XtRString, (XtPointer) NULL},
|
|||
|
+ {"startupFile", "StartupFile", XtRString, sizeof(String),
|
|||
|
+ offset(startupFile), XtRString, (XtPointer) "startup"},
|
|||
|
+ {"phoneFile", "PhoneFile", XtRString, sizeof(String),
|
|||
|
+ offset(phoneFile), XtRString, (XtPointer) "phonelist"},
|
|||
|
+ {"protocolsFile", "ProtocolsFile", XtRString, sizeof(String),
|
|||
|
+ offset(protocolsFile), XtRString, (XtPointer) "protocols"},
|
|||
|
+ {"captureFile", "CaptureFile", XtRString, sizeof(String),
|
|||
|
+ offset(captureFile), XtRString, (XtPointer) "capture"},
|
|||
|
+ {"helpFile", "HelpFile", XtRString, sizeof(String),
|
|||
|
+ offset(helpFile), XtRString, (XtPointer) HELPFILE},
|
|||
|
+
|
|||
|
+ {"modemStatusInterval", "ModemStatusInterval", XtRInt, sizeof(int),
|
|||
|
+ offset(modemStatusInterval), XtRImmediate, (XtPointer) 5},
|
|||
|
+
|
|||
|
+ {"idleGuard", "IdleGuard", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(idleGuard), XtRImmediate, (XtPointer) False},
|
|||
|
+ {"idleGuardInterval", "IdleGuardInterval", XtRInt, sizeof(int),
|
|||
|
+ offset(idleGuardInterval), XtRImmediate, (XtPointer) 300},
|
|||
|
+ {"idleGuardString", "IdleGuardString", XtRString, sizeof(String),
|
|||
|
+ offset(idleGuardString), XtRImmediate, (XtPointer) " ^H"},
|
|||
|
+
|
|||
|
+ {"showFunMessages", "ShowFunMessages", XtRBoolean, sizeof(Boolean),
|
|||
|
+ offset(showFunMessages), XtRImmediate, (XtPointer) True},
|
|||
|
+ {"funMessagesInterval", "FunMessagesInterval", XtRInt, sizeof(int),
|
|||
|
+ offset(funMessagesInterval), XtRImmediate, (XtPointer) 15},
|
|||
|
+ {"funMessages", "FunMessages", XtRStringArray, sizeof(String*),
|
|||
|
+ offset(funMessages), XtRStringArray, (XtPointer) NULL},
|
|||
|
+ };
|
|||
|
|
|||
|
#undef offset
|
|||
|
|
|||
|
- XtSetTypeConverter(XtRString, XtRStringArray, CvtStringToStringArray,
|
|||
|
- NULL, 0, XtCacheNone, NULL);
|
|||
|
+ XtSetTypeConverter(XtRString, XtRStringArray, CvtStringToStringArray,
|
|||
|
+ NULL, 0, XtCacheNone, NULL);
|
|||
|
|
|||
|
- XtGetApplicationResources(topLevel, (XtPointer)&qres, resources,
|
|||
|
- XtNumber(resources), NULL, 0);
|
|||
|
+ XtGetApplicationResources(topLevel, (XtPointer)&qres, resources,
|
|||
|
+ XtNumber(resources), NULL, 0);
|
|||
|
}
|
|||
|
--- seyon-2.20c.orig/SeDial.c
|
|||
|
+++ seyon-2.20c/SeDial.c
|
|||
|
@@ -89,7 +89,7 @@
|
|||
|
{XMapRaised(XtDisplay(widget), XtWindow(popup)); return;}
|
|||
|
|
|||
|
if (disItems[0] == NULL) {
|
|||
|
- strcpy(phoneFile, qres.phoneFile);
|
|||
|
+ strncpy(phoneFile, qres.phoneFile, REG_BUF);
|
|||
|
if (ReadParsePhoneFile(phoneFile, disItems) < 0) return;
|
|||
|
|
|||
|
form = XtParent(widget);
|
|||
|
@@ -328,7 +328,7 @@
|
|||
|
Widget dialog = XtParent(widget);
|
|||
|
char phoneNumber[SM_BUF];
|
|||
|
|
|||
|
- strcpy(phoneNumber, XawDialogGetValueString(dialog));
|
|||
|
+ strncpy(phoneNumber, XawDialogGetValueString(dialog), SM_BUF);
|
|||
|
DestroyShell(dialog);
|
|||
|
ExecManualDial(XtParent(GetShell(widget)), phoneNumber);
|
|||
|
}
|
|||
|
@@ -341,7 +341,7 @@
|
|||
|
inhibit_child = True;
|
|||
|
manualDial = True;
|
|||
|
|
|||
|
- strcpy(phone_number, phoneNumber);
|
|||
|
+ strncpy(phone_number, phoneNumber, SM_BUF);
|
|||
|
|
|||
|
dialTry = 1;
|
|||
|
PreProcessPrep();
|
|||
|
@@ -442,15 +442,15 @@
|
|||
|
if ((ptr = (char*)strstr(raw, keyword)) != NULL) {
|
|||
|
ptr += strlen(keyword);
|
|||
|
if (strncmp(ptr, "CURRENT", 3)) {
|
|||
|
- strcpy(buf, ptr);
|
|||
|
+ strncpy(buf, ptr, REG_BUF);
|
|||
|
GetWord(buf, wrd);
|
|||
|
- strcpy(var, wrd);
|
|||
|
+ strncpy(var, wrd, sizeof(*var));
|
|||
|
}
|
|||
|
else
|
|||
|
- strcpy(var, "CURRENT");
|
|||
|
+ strncpy(var, "CURRENT", sizeof(*var));
|
|||
|
}
|
|||
|
else
|
|||
|
- strcpy(var, def);
|
|||
|
+ strncpy(var, def, sizeof(*var));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
@@ -463,8 +463,8 @@
|
|||
|
char svar[TIN_BUF],
|
|||
|
sdef[TIN_BUF];
|
|||
|
|
|||
|
- sprintf(svar, "%d", *var);
|
|||
|
- sprintf(sdef, "%d", def);
|
|||
|
+ sprintf(svar, "%d", *var); /* safe */
|
|||
|
+ sprintf(sdef, "%d", def); /* safe */
|
|||
|
|
|||
|
GetStrField(raw, keyword, svar, sdef);
|
|||
|
|
|||
|
@@ -496,7 +496,7 @@
|
|||
|
else {
|
|||
|
signal(SIGALRM, SIG_DFL);
|
|||
|
alarm(0);
|
|||
|
- strcpy(dialMsg, "TIMEOUT");
|
|||
|
+ strncpy(dialMsg, "TIMEOUT", SM_BUF);
|
|||
|
longjmp(dial_env, 1);
|
|||
|
}
|
|||
|
}
|
|||
|
@@ -514,6 +514,8 @@
|
|||
|
*bufPtr,
|
|||
|
dialString[REG_BUF];
|
|||
|
int i,
|
|||
|
+/* length, */
|
|||
|
+ length_remaining,
|
|||
|
k;
|
|||
|
|
|||
|
if (setjmp(dial_env) != 0) {
|
|||
|
@@ -534,8 +536,8 @@
|
|||
|
if (!manualDial) {
|
|||
|
|
|||
|
itemName = ddItems[k]->name;
|
|||
|
- sprintf(dialString, "\r%s %s%s", ddItems[k]->prefix, ddItems[k]->number,
|
|||
|
- ddItems[k]->suffix);
|
|||
|
+ strncpy(dialString, FmtString("\r%s %s%s", ddItems[k]->prefix,
|
|||
|
+ ddItems[k]->number, ddItems[k]->suffix), REG_BUF);
|
|||
|
|
|||
|
if (mbaud(ddItems[k]->baud) < 0)
|
|||
|
se_warningf("invalid BPS value in dialing directory: %s",
|
|||
|
@@ -552,14 +554,23 @@
|
|||
|
}
|
|||
|
else {
|
|||
|
itemName = phone_number;
|
|||
|
- sprintf(dialString, "\r%s %s%s", qres.dialPrefix, phone_number,
|
|||
|
- qres.dialSuffix);
|
|||
|
+ strncpy(dialString, FmtString("\r%s %s%s", qres.dialPrefix, phone_number,
|
|||
|
+ qres.dialSuffix), REG_BUF);
|
|||
|
}
|
|||
|
|
|||
|
+ length_remaining = SM_BUF;
|
|||
|
if (dialTry == 1)
|
|||
|
- sprintf(dialMsg, "Dialing %s", itemName);
|
|||
|
+ {
|
|||
|
+ strncpy(dialMsg, "Dialing ", length_remaining);
|
|||
|
+ length_remaining -= strlen("Dialing ");
|
|||
|
+ strncat(dialMsg, itemName, length_remaining);
|
|||
|
+ }
|
|||
|
else
|
|||
|
- sprintf(dialMsg, "Redialing:%d %s", dialTry, itemName);
|
|||
|
+ strncpy(dialMsg, "Redialing ", length_remaining);
|
|||
|
+ length_remaining -= strlen("Redialing ");
|
|||
|
+ sprintf(dialMsg, "%1.1d ", dialTry);
|
|||
|
+ length_remaining -= 2;
|
|||
|
+ strncat(dialMsg, itemName, length_remaining);
|
|||
|
|
|||
|
ProcRequest(SET_MESSAGE, "Setting Up...", "");
|
|||
|
|
|||
|
@@ -589,7 +600,7 @@
|
|||
|
for (i = 0; i < 3; i++)
|
|||
|
if (*(bufPtr = StripSpace(qres.noConnectString[i])) &&
|
|||
|
strncmp(modemResponse, bufPtr, strlen(bufPtr)) == 0) {
|
|||
|
- strcpy(dialMsg, modemResponse);
|
|||
|
+ strncpy(dialMsg, modemResponse, SM_BUF);
|
|||
|
longjmp(dial_env, 1);
|
|||
|
}
|
|||
|
} /* while(1)... */
|
|||
|
@@ -601,15 +612,20 @@
|
|||
|
String disItems[];
|
|||
|
{
|
|||
|
FILE *fp;
|
|||
|
+ FILE *devnull;
|
|||
|
String rawItems[MAX_ENT + 1];
|
|||
|
char *buf,
|
|||
|
*sHold,
|
|||
|
disItemsBuf[REG_BUF];
|
|||
|
+ char filename[LRG_BUF];
|
|||
|
int i,
|
|||
|
n,
|
|||
|
+ length,
|
|||
|
iHold;
|
|||
|
|
|||
|
- if ((fp = open_file(fname, qres.defaultDirectory)) == NULL)
|
|||
|
+ strncpy(filename, fname, REG_BUF);
|
|||
|
+
|
|||
|
+ if ((fp = open_file(filename, REG_BUF, qres.defaultDirectory)) == NULL)
|
|||
|
return -1;
|
|||
|
|
|||
|
ReadCommentedFile(fp, rawItems);
|
|||
|
@@ -623,11 +639,9 @@
|
|||
|
|
|||
|
/* Find the number */
|
|||
|
GetWord(buf, ddItems[i]->number);
|
|||
|
-/* strcpy(ddItems[i]->number, GetFirstWord(buf));*/
|
|||
|
|
|||
|
/* Find the name */
|
|||
|
GetWord((buf = lptr), ddItems[i]->name);
|
|||
|
-/* strcpy(ddItems[i]->name, GetNextWord());*/
|
|||
|
|
|||
|
/* Find other stuff */
|
|||
|
GetStrField(buf, "BPS=", ddItems[i]->baud, qres.defaultBPS);
|
|||
|
@@ -643,8 +657,20 @@
|
|||
|
FreeList(rawItems);
|
|||
|
FreeList(disItems);
|
|||
|
|
|||
|
+ /* Ick... This is horrible - using a user-provided format string
|
|||
|
+ means we have no easy way of limiting string length. HACK HACK
|
|||
|
+ HACK Use fprintf to output to /dev/null and count the number of
|
|||
|
+ bytes... It would be nice if we could rely on having snprintf() */
|
|||
|
+
|
|||
|
+ devnull = fopen("/dev/null", "r+");
|
|||
|
+ if(NULL == devnull)
|
|||
|
+ {
|
|||
|
+ printf("Open /dev/null failed!?!\n");
|
|||
|
+ return 1;
|
|||
|
+ }
|
|||
|
+
|
|||
|
for (n = 0; n < i; n++) {
|
|||
|
- sprintf(disItemsBuf, qres.dialDirFormat,
|
|||
|
+ length = fprintf(devnull, qres.dialDirFormat,
|
|||
|
ddItems[n]->name,
|
|||
|
ddItems[n]->number,
|
|||
|
strncmp((sHold = ddItems[n]->baud), "CUR", 3) ? sHold : "????",
|
|||
|
@@ -658,10 +684,33 @@
|
|||
|
strcmp(sHold, qres.dialSuffix) ? 'S' : 'D' : '?',
|
|||
|
ddItems[n]->script);
|
|||
|
|
|||
|
- disItemsBuf[SM_BUF - 1] = '\0';
|
|||
|
- disItems[n] = XtNewString(disItemsBuf);
|
|||
|
+ if(REG_BUF >= length)
|
|||
|
+ {
|
|||
|
+ sprintf(disItemsBuf, qres.dialDirFormat,
|
|||
|
+ ddItems[n]->name,
|
|||
|
+ ddItems[n]->number,
|
|||
|
+ strncmp((sHold = ddItems[n]->baud), "CUR", 3) ? sHold : "????",
|
|||
|
+ (iHold = ddItems[n]->bits) == 100 ? '?' : itoa(iHold),
|
|||
|
+ (iHold = ddItems[n]->parity) ? (iHold == 1 ? 'O' :
|
|||
|
+ (iHold == 2 ? 'E' : '?')) : 'N',
|
|||
|
+ (iHold = ddItems[n]->stopBits) == 100 ? '?' : itoa(iHold),
|
|||
|
+ strncmp((sHold = ddItems[n]->prefix), "CUR", 3) ?
|
|||
|
+ strcmp(sHold, qres.dialPrefix) ? 'P' : 'D' : '?',
|
|||
|
+ strncmp((sHold = ddItems[n]->suffix), "CUR", 3) ?
|
|||
|
+ strcmp(sHold, qres.dialSuffix) ? 'S' : 'D' : '?',
|
|||
|
+ ddItems[n]->script);
|
|||
|
+ disItemsBuf[SM_BUF - 1] = '\0';
|
|||
|
+ disItems[n] = XtNewString(disItemsBuf);
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ printf("ReadParsePhoneFile: attempted overrun: %s\n",ddItems[n]->name);
|
|||
|
+ fclose(devnull);
|
|||
|
+ return 1;
|
|||
|
+ }
|
|||
|
}
|
|||
|
disItems[n] = NULL;
|
|||
|
+ fclose(devnull);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
--- seyon-2.20c.orig/SePort.c
|
|||
|
+++ seyon-2.20c/SePort.c
|
|||
|
@@ -51,7 +51,7 @@
|
|||
|
#ifdef linux
|
|||
|
#include <linux/serial.h>
|
|||
|
#include <sys/ioctl.h>
|
|||
|
-#include <linux/fs.h>
|
|||
|
+/* #include <linux/fs.h> */
|
|||
|
#include <linux/tty.h>
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
@@ -127,20 +127,30 @@
|
|||
|
|
|||
|
void
|
|||
|
MdmPutString(s)
|
|||
|
- char *s;
|
|||
|
+ char *s;
|
|||
|
{
|
|||
|
- char c;
|
|||
|
-
|
|||
|
- usleep(MDELAY);
|
|||
|
- for (; (c = *s); s++) {
|
|||
|
- if (*s == '^' && *(s + 1))
|
|||
|
- if (*(++s) == '^') c = *s;
|
|||
|
- else c = *s & 0x1f;
|
|||
|
+ char c;
|
|||
|
|
|||
|
- if (c == '~') sleep(1);
|
|||
|
- else send_tbyte(c);
|
|||
|
usleep(MDELAY);
|
|||
|
- }
|
|||
|
+ for (; (c = *s); s++)
|
|||
|
+ {
|
|||
|
+ if (*s == '^' && *(s + 1))
|
|||
|
+ {
|
|||
|
+ if (*(++s) == '^')
|
|||
|
+ {
|
|||
|
+ c = *s;
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ c = *s & 0x1f;
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+ if (c == '~')
|
|||
|
+ sleep(1);
|
|||
|
+ else
|
|||
|
+ send_tbyte(c);
|
|||
|
+ usleep(MDELAY);
|
|||
|
+ }
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
@@ -150,10 +160,7 @@
|
|||
|
*b,
|
|||
|
*c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- MdmPutString(buf);
|
|||
|
+ MdmPutString(FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
@@ -224,7 +231,7 @@
|
|||
|
int newModem;
|
|||
|
{
|
|||
|
static Boolean useModemControl = True;
|
|||
|
- int retStat;
|
|||
|
+ int retStat = 0;
|
|||
|
|
|||
|
if (newModem) useModemControl = True;
|
|||
|
|
|||
|
@@ -350,11 +357,11 @@
|
|||
|
|
|||
|
char *
|
|||
|
mport(s) /* get/set port string */
|
|||
|
- char *s;
|
|||
|
+ char *s;
|
|||
|
{
|
|||
|
- if (s != NULL)
|
|||
|
- strcpy(modem_port, s);
|
|||
|
- return (modem_port);
|
|||
|
+ if (s != NULL)
|
|||
|
+ strncpy(modem_port, s, sizeof(modem_port));
|
|||
|
+ return (modem_port);
|
|||
|
}
|
|||
|
|
|||
|
int
|
|||
|
@@ -650,6 +657,17 @@
|
|||
|
ser_io.flags |= ASYNC_SPD_VHI;
|
|||
|
break;
|
|||
|
#endif
|
|||
|
+#else
|
|||
|
+#ifdef B57600
|
|||
|
+ case 57600:
|
|||
|
+ baudrate = B57600;
|
|||
|
+ break;
|
|||
|
+#endif
|
|||
|
+#ifdef B115200
|
|||
|
+ case 115200:
|
|||
|
+ baudrate = B115200;
|
|||
|
+ break;
|
|||
|
+#endif
|
|||
|
#endif
|
|||
|
default:
|
|||
|
return (-1);
|
|||
|
@@ -702,6 +720,14 @@
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
return 38400;
|
|||
|
+#ifdef B57600
|
|||
|
+ case B57600:
|
|||
|
+ return 57600;
|
|||
|
+#endif
|
|||
|
+#ifdef B115200
|
|||
|
+ case B115200:
|
|||
|
+ return 115200;
|
|||
|
+#endif
|
|||
|
}
|
|||
|
|
|||
|
SeError("Consistency error in baud rate");
|
|||
|
@@ -822,7 +848,7 @@
|
|||
|
modemName, "", ""));
|
|||
|
break;
|
|||
|
default:
|
|||
|
- SeError(FmtString("Unknown Error While Openeong Modem ``%s''",
|
|||
|
+ SeError(FmtString("Unknown Error While Opening Modem ``%s''",
|
|||
|
modemName, "", ""));
|
|||
|
break;
|
|||
|
}
|
|||
|
@@ -946,16 +972,13 @@
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
-sendf_slowly(format, a, b, c)
|
|||
|
- char *format,
|
|||
|
+sendf_slowly(fmt, a, b, c)
|
|||
|
+ char *fmt,
|
|||
|
*a,
|
|||
|
*b,
|
|||
|
*c;
|
|||
|
{
|
|||
|
- char buffer[SM_BUF];
|
|||
|
-
|
|||
|
- sprintf(buffer, format, a, b, c);
|
|||
|
- send_slowly(buffer);
|
|||
|
+ send_slowly(FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
@@ -989,7 +1012,7 @@
|
|||
|
LockModem(modem)
|
|||
|
String modem;
|
|||
|
{
|
|||
|
- strcpy(modem_port, modem);
|
|||
|
+ strncpy(modem_port, modem, REG_BUF);
|
|||
|
return lock_tty();
|
|||
|
}
|
|||
|
|
|||
|
@@ -1004,50 +1027,82 @@
|
|||
|
int
|
|||
|
lock_tty()
|
|||
|
{
|
|||
|
- int lfd;
|
|||
|
- pid_t pid,
|
|||
|
- lckpid;
|
|||
|
- char *modemname;
|
|||
|
+ int lfd;
|
|||
|
+ pid_t pid,
|
|||
|
+ lckpid;
|
|||
|
+ char *modemname;
|
|||
|
#if LF_USE_ASCII_PID
|
|||
|
- char pidstr[20],
|
|||
|
- lckpidstr[20];
|
|||
|
- int nb;
|
|||
|
+ char pidstr[20],
|
|||
|
+ lckpidstr[20];
|
|||
|
+ int nb;
|
|||
|
#endif
|
|||
|
#if LF_USE_DEV_NUMBERS
|
|||
|
- struct stat mbuf;
|
|||
|
+ struct stat mbuf;
|
|||
|
#endif
|
|||
|
|
|||
|
- /* Get our PID, and initialize the filename strings */
|
|||
|
- pid = getpid();
|
|||
|
+ /* Get our PID, and initialize the filename strings */
|
|||
|
+ pid = getpid();
|
|||
|
|
|||
|
#if !LF_USE_DEV_NUMBERS
|
|||
|
- modemname = strrchr(modem_port, '/');
|
|||
|
- sprintf(lckf, "%s/%s%s", LF_PATH, LF_PREFIX,
|
|||
|
- (modemname ? (modemname + 1) : modem_port));
|
|||
|
+ modemname = strrchr(modem_port, '/');
|
|||
|
+ if(modemname)
|
|||
|
+ {
|
|||
|
+ if( SM_BUF > (1 + strlen(LF_PATH) + strlen(LF_PREFIX) + strlen(modemname)))
|
|||
|
+ sprintf(lckf, "%s/%s%s", LF_PATH, LF_PREFIX, (modemname + 1));
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ SePErrorF("Buffer too small for lock filename in lock_tty(): %s", modemname, "", "");
|
|||
|
+ return -1;
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ if( SM_BUF > (1 + strlen(LF_PATH) + strlen(LF_PREFIX) + strlen(modem_port)))
|
|||
|
+ sprintf(lckf, "%s/%s%s", LF_PATH, LF_PREFIX, (modem_port));
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ SePErrorF("Buffer too small for lock filename in lock_tty(): %s", modem_port, "", "");
|
|||
|
+ return -1;
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+
|
|||
|
#else
|
|||
|
- if(stat(modem_port, &mbuf) < 0) {
|
|||
|
- SePErrorF("could not stat modem port %s", modem_port, "", "");
|
|||
|
- return -1;
|
|||
|
- }
|
|||
|
- sprintf(lckf,"%s/%s%03u.%03u.%03u", LF_PATH, LF_PREFIX, major(mbuf.st_dev),
|
|||
|
- major(mbuf.st_rdev), minor(mbuf.st_rdev));
|
|||
|
+ if(stat(modem_port, &mbuf) < 0) {
|
|||
|
+ SePErrorF("could not stat modem port %s", modem_port, "", "");
|
|||
|
+ return -1;
|
|||
|
+ }
|
|||
|
+ if( SM_BUF > (10 + strlen(LF_PATH) + strlen(LF_PREFIX)))
|
|||
|
+ sprintf(lckf,"%s/%s%03u.%03u.%03u", LF_PATH, LF_PREFIX, major(mbuf.st_dev),
|
|||
|
+ major(mbuf.st_rdev), minor(mbuf.st_rdev));
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ SePErrorF("Buffer too small for lock filename in lock_tty():", "", "", "");
|
|||
|
+ return -1;
|
|||
|
+ }
|
|||
|
#endif /* LF_USE_DEV_NUMBERS */
|
|||
|
|
|||
|
- sprintf(ltmp, "%s/%s%d", LF_PATH, "LTMP.", pid);
|
|||
|
- /* Create the LTMP.<pid> file and scribble our PID in it */
|
|||
|
- unlink(ltmp);
|
|||
|
- if ((lfd = creat(ltmp, 0644)) == -1) {
|
|||
|
- SePErrorF("Could not create temporary lock file %s", ltmp, "", "");
|
|||
|
- return -1;
|
|||
|
- }
|
|||
|
+ if( SM_BUF > (11 + strlen(LF_PATH)))
|
|||
|
+ sprintf(ltmp, "%s/%s%d", LF_PATH, "LTMP.", pid);
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ SePErrorF("Buffer too small for ltmp filename in lock_tty():", "", "", "");
|
|||
|
+ return -1;
|
|||
|
+ }
|
|||
|
+ /* Create the LTMP.<pid> file and scribble our PID in it */
|
|||
|
+ unlink(ltmp);
|
|||
|
+ if ((lfd = creat(ltmp, 0644)) == -1) {
|
|||
|
+ SePErrorF("Could not create temporary lock file %s", ltmp, "", "");
|
|||
|
+ return -1;
|
|||
|
+ }
|
|||
|
|
|||
|
#if LF_USE_ASCII_PID
|
|||
|
- sprintf(pidstr, "%10d\n", pid);
|
|||
|
- write(lfd, pidstr, 11);
|
|||
|
+ /* pidstr is easily large enough */
|
|||
|
+ sprintf(pidstr, "%10d\n", pid);
|
|||
|
+ write(lfd, pidstr, 11);
|
|||
|
#else
|
|||
|
- write(lfd, (char*)&pid, sizeof(pid));
|
|||
|
+ write(lfd, (char*)&pid, sizeof(pid));
|
|||
|
#endif
|
|||
|
- close(lfd);
|
|||
|
+ close(lfd);
|
|||
|
|
|||
|
/*
|
|||
|
* Attempt to link directly - if it works, we're done.
|
|||
|
--- seyon-2.20c.orig/protocols
|
|||
|
+++ seyon-2.20c/protocols
|
|||
|
@@ -6,7 +6,7 @@
|
|||
|
# you have to use the resources
|
|||
|
# zmodemAutoDownload and
|
|||
|
# zmodemAutoDownloadCommand for that.
|
|||
|
-# see the manula page for more details.
|
|||
|
+# see the manual page for more details.
|
|||
|
|
|||
|
# the format is simple.
|
|||
|
|
|||
|
@@ -24,9 +24,9 @@
|
|||
|
|
|||
|
# you can put comments on a single line
|
|||
|
# or at the end of a line
|
|||
|
-
|
|||
|
-regular_zmodem_dl "$ cd /usr/dl; rz -vv" n # like in here
|
|||
|
-
|
|||
|
+#
|
|||
|
+#regular_zmodem_dl "$ cd /usr/dl; rz -vv" n # like in here
|
|||
|
+#
|
|||
|
# blank lines are OK too, for readability.
|
|||
|
|
|||
|
# the title has to be either a single word, like the above
|
|||
|
@@ -34,21 +34,29 @@
|
|||
|
|
|||
|
# you put anything instead of y as long as it starts
|
|||
|
# with y: y, Y, yes, yep ..etc.
|
|||
|
-
|
|||
|
-"regular zmodem ul" "$ cd /usr/src; sz -vv" y
|
|||
|
-
|
|||
|
+#
|
|||
|
+#"regular zmodem ul" "$ cd /usr/src; sz -vv" y
|
|||
|
+#
|
|||
|
# anything that doesn't start with a y is a no
|
|||
|
# e.g. n, N, NO, Not, nope, nien, nono ..etc.
|
|||
|
# even hello, but the use of words that doesn't start
|
|||
|
# with n is highly discouraged
|
|||
|
-
|
|||
|
-graphic_zmodem_dl "cd /usr/dl; grz No
|
|||
|
-xrz3D "$cd /usr/dl; xrz" NO
|
|||
|
-
|
|||
|
+#
|
|||
|
+#graphic_zmodem_dl "cd /usr/dl; grz No
|
|||
|
+#xrz3D "$cd /usr/dl; xrz" NO
|
|||
|
+#
|
|||
|
# here is my own protocols file
|
|||
|
# notice how I make it clear to myself
|
|||
|
# whether I'm uploading or downloading
|
|||
|
-
|
|||
|
-"SEND - Zmodem" "$cd /usr/src; sz -vv" y
|
|||
|
-"RECEIVE - Reg. Zmodem" "$cd /usr/dl; rz -vv" n
|
|||
|
-"RECEIVE - Xrz3D" "$cd /usr/dl; xrz" n
|
|||
|
+#
|
|||
|
+#"SEND - Zmodem" "$cd /usr/src; sz -vv" y
|
|||
|
+#"RECEIVE - Reg. Zmodem" "$cd /usr/dl; rz -vv" n
|
|||
|
+#"RECEIVE - Xrz3D" "$cd /usr/dl; xrz" n
|
|||
|
+
|
|||
|
+"Zmodem - RECEIVE" "$lrz" n
|
|||
|
+"Ymodem - RECEIVE" "$lrb" n
|
|||
|
+"Xmodem - RECEIVE" "$lrx" y
|
|||
|
+
|
|||
|
+"Zmodem - SEND" "$lsz" y
|
|||
|
+"Ymodem - SEND" "$lsb" y
|
|||
|
+"Xmodem - SEND" "$lsx" y
|
|||
|
--- seyon-2.20c.orig/SeErr.c
|
|||
|
+++ seyon-2.20c/SeErr.c
|
|||
|
@@ -107,28 +107,26 @@
|
|||
|
|
|||
|
#ifdef notdef
|
|||
|
void
|
|||
|
-SePopupWarningF(parent, fmt, a, b, c, d)
|
|||
|
+SePopupWarningF(parent, fmt, a, b, c)
|
|||
|
Widget parent;
|
|||
|
String fmt,
|
|||
|
a,
|
|||
|
b,
|
|||
|
- c,
|
|||
|
- d;
|
|||
|
+ c;
|
|||
|
{
|
|||
|
SePopupNoticeF(parent, 0, "Seyon Warning", DestroyParentPopup,
|
|||
|
- fmt, a, b, c, d);
|
|||
|
+ fmt, a, b, c);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
-SePopupInitWarningF(parent, fmt, a, b, c, d)
|
|||
|
+SePopupInitWarningF(parent, fmt, a, b, c)
|
|||
|
Widget parent;
|
|||
|
String fmt,
|
|||
|
a,
|
|||
|
b,
|
|||
|
- c,
|
|||
|
- d;
|
|||
|
+ c;
|
|||
|
{
|
|||
|
SePopupNoticeF(parent, 0, "Seyon Initialization Warning",
|
|||
|
- DestroyParentPopup, fmt, a, b, c, d);
|
|||
|
+ DestroyParentPopup, fmt, a, b, c);
|
|||
|
}
|
|||
|
#endif
|
|||
|
--- seyon-2.20c.orig/SeSubs.c
|
|||
|
+++ seyon-2.20c/SeSubs.c
|
|||
|
@@ -45,9 +45,9 @@
|
|||
|
|
|||
|
void
|
|||
|
toggle_flag(flag)
|
|||
|
- Boolean *flag;
|
|||
|
+ Boolean *flag;
|
|||
|
{
|
|||
|
- *flag = !*flag;
|
|||
|
+ *flag = !*flag;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -56,10 +56,10 @@
|
|||
|
|
|||
|
void
|
|||
|
show(msg)
|
|||
|
- char *msg;
|
|||
|
+ char *msg;
|
|||
|
{
|
|||
|
- fprintf(tfp, "%s\r\n", msg);
|
|||
|
- fflush(tfp);
|
|||
|
+ fprintf(tfp, "%s\r\n", msg);
|
|||
|
+ fflush(tfp);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -68,105 +68,96 @@
|
|||
|
|
|||
|
void
|
|||
|
showf(fmt, a, b, c)
|
|||
|
- char *fmt,
|
|||
|
- *a,
|
|||
|
- *b,
|
|||
|
- *c;
|
|||
|
+ char *fmt,
|
|||
|
+ *a,
|
|||
|
+ *b,
|
|||
|
+ *c;
|
|||
|
{
|
|||
|
- fprintf(tfp, fmt, a, b, c);
|
|||
|
- fprintf(tfp, "\r\n");
|
|||
|
+ fprintf(tfp, fmt, a, b, c);
|
|||
|
+ fprintf(tfp, "\r\n");
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SeError(msg)
|
|||
|
- char *msg;
|
|||
|
+ char *msg;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
+ char buf[REG_BUF];
|
|||
|
|
|||
|
- sprintf(buf, "\r>> Error: %s.", msg);
|
|||
|
- show(buf);
|
|||
|
+ strncpy(buf, "\r>> Error: ",REG_BUF);
|
|||
|
+ strncat(buf, msg, REG_BUF-12);
|
|||
|
+ buf[REG_BUF - 1] = 0; /* Null-terminate to be sure */
|
|||
|
+ show(buf);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SeErrorF(fmt, a, b, c)
|
|||
|
- char *fmt,
|
|||
|
- *a,
|
|||
|
- *b,
|
|||
|
- *c;
|
|||
|
+ char *fmt,
|
|||
|
+ *a,
|
|||
|
+ *b,
|
|||
|
+ *c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- SeError(buf);
|
|||
|
+ SeError(FmtString(fmt, a, b, c));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
se_warning(msg)
|
|||
|
- char *msg;
|
|||
|
+ char *msg;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
+ char buf[REG_BUF];
|
|||
|
|
|||
|
- sprintf(buf, "\r>> Warning: %s.", msg);
|
|||
|
- show(buf);
|
|||
|
+ strncpy(buf, "\r>> Warning: ",REG_BUF);
|
|||
|
+ strncat(buf, msg, REG_BUF-14);
|
|||
|
+ buf[REG_BUF - 1] = 0; /* Null-terminate to be sure */
|
|||
|
+ show(buf);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
se_warningf(fmt, a, b, c)
|
|||
|
- char *fmt,
|
|||
|
- *a,
|
|||
|
- *b,
|
|||
|
- *c;
|
|||
|
+ char *fmt,
|
|||
|
+ *a,
|
|||
|
+ *b,
|
|||
|
+ *c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- se_warning(buf);
|
|||
|
+ se_warning(FmtString(fmt, a, b, c));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SeNotice(msg)
|
|||
|
- char *msg;
|
|||
|
+ char *msg;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
+ char buf[REG_BUF];
|
|||
|
|
|||
|
- sprintf(buf, "\r>> Notice: %s.", msg);
|
|||
|
- show(buf);
|
|||
|
+ strncpy(buf, "\r>> Notice: ",REG_BUF);
|
|||
|
+ strncat(buf, msg, REG_BUF-13);
|
|||
|
+ buf[REG_BUF - 1] = 0; /* Null-terminate to be sure */
|
|||
|
+ show(buf);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SeNoticeF(fmt, a, b, c)
|
|||
|
- char *fmt,
|
|||
|
- *a,
|
|||
|
- *b,
|
|||
|
- *c;
|
|||
|
+ char *fmt,
|
|||
|
+ *a,
|
|||
|
+ *b,
|
|||
|
+ *c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- SeNotice(buf);
|
|||
|
+ SeNotice(FmtString(fmt, a, b, c));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SePError(msg)
|
|||
|
- char *msg;
|
|||
|
+ char *msg;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, "%s: %s", msg, strerror(errno));
|
|||
|
- SeError(buf);
|
|||
|
+ SeError(FmtString("%s: %s",msg,strerror(errno)));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
SePErrorF(fmt, a, b, c)
|
|||
|
- char *fmt,
|
|||
|
- *a,
|
|||
|
- *b,
|
|||
|
- *c;
|
|||
|
+ char *fmt,
|
|||
|
+ *a,
|
|||
|
+ *b,
|
|||
|
+ *c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- SePError(buf);
|
|||
|
+ SePError(FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
/* ------------------------------------------------------------
|
|||
|
@@ -180,12 +171,12 @@
|
|||
|
int
|
|||
|
SeFork()
|
|||
|
{
|
|||
|
- pid_t pid;
|
|||
|
+ pid_t pid;
|
|||
|
|
|||
|
- if ((pid = fork()) < 0)
|
|||
|
- SePError("Faild to fork process");
|
|||
|
+ if ((pid = fork()) < 0)
|
|||
|
+ SePError("Faild to fork process");
|
|||
|
|
|||
|
- return pid;
|
|||
|
+ return pid;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -194,119 +185,119 @@
|
|||
|
|
|||
|
void
|
|||
|
ShellCommandHandler(sig, fio_p)
|
|||
|
- int sig;
|
|||
|
- XtPointer fio_p;
|
|||
|
+ int sig;
|
|||
|
+ XtPointer fio_p;
|
|||
|
{
|
|||
|
- void PostExecPrep();
|
|||
|
+ void PostExecPrep();
|
|||
|
|
|||
|
- if (wait((int*)0) < 0) SePError("ShellCommand wait failed");
|
|||
|
- XoAppIgnoreSignal(app_con, SIGCHLD);
|
|||
|
+ if (wait((int*)0) < 0) SePError("ShellCommand wait failed");
|
|||
|
+ XoAppIgnoreSignal(app_con, SIGCHLD);
|
|||
|
|
|||
|
- set_tty_mode();
|
|||
|
- set_modem_fio(*(int *)fio_p);
|
|||
|
+ set_tty_mode();
|
|||
|
+ set_modem_fio(*(int *)fio_p);
|
|||
|
|
|||
|
- SeyonMessage("Shell Command Completed");
|
|||
|
- PostExecPrep();
|
|||
|
- inhibit_child = False;
|
|||
|
+ SeyonMessage("Shell Command Completed");
|
|||
|
+ PostExecPrep();
|
|||
|
+ inhibit_child = False;
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
ShellCommand(command)
|
|||
|
- char *command;
|
|||
|
+ char *command;
|
|||
|
{
|
|||
|
- ExecShellCommand(command, 1);
|
|||
|
+ ExecShellCommand(command, 1);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
ExecShellCommand(command, top)
|
|||
|
- char *command;
|
|||
|
- int top;
|
|||
|
+ char *command;
|
|||
|
+ int top;
|
|||
|
{
|
|||
|
- static char *shell = NULL;
|
|||
|
- char cmd[REG_BUF],
|
|||
|
- *scmd;
|
|||
|
- static int fio=0;
|
|||
|
- pid_t forkRes;
|
|||
|
-
|
|||
|
- if (command == NULL) return;
|
|||
|
-
|
|||
|
- if (shell == NULL) {
|
|||
|
- shell = (char*)getenv("SHELL");
|
|||
|
- if (!shell) shell = "/bin/sh";
|
|||
|
- }
|
|||
|
-
|
|||
|
- if (top) PreExecPrep();
|
|||
|
-
|
|||
|
- io_set_attr(tfd, &oldmode);
|
|||
|
- fio = get_modem_fio();
|
|||
|
-
|
|||
|
- if (top)
|
|||
|
- XoAppAddSignal(app_con, SIGCHLD, ShellCommandHandler, (XtPointer)&fio);
|
|||
|
- else signal(SIGCHLD, SIG_IGN);
|
|||
|
-
|
|||
|
- forkRes = SeFork();
|
|||
|
- if (forkRes == 0) {
|
|||
|
- scmd = str_stripspc_copy(cmd, command);
|
|||
|
-
|
|||
|
- show("");
|
|||
|
-
|
|||
|
- if (*scmd == '$') {
|
|||
|
- SeNotice("Redirecting stdin/stdout");
|
|||
|
- mattach(); /* Attach modem to stdin/stdout */
|
|||
|
- scmd++;
|
|||
|
+ static char *shell = NULL;
|
|||
|
+ char cmd[REG_BUF],
|
|||
|
+ *scmd;
|
|||
|
+ static int fio=0;
|
|||
|
+ pid_t forkRes;
|
|||
|
+
|
|||
|
+ if (command == NULL) return;
|
|||
|
+
|
|||
|
+ if (shell == NULL) {
|
|||
|
+ shell = (char*)getenv("SHELL");
|
|||
|
+ if (!shell) shell = "/bin/sh";
|
|||
|
}
|
|||
|
|
|||
|
- if (setuid(getuid()) < 0)
|
|||
|
- SePError("Failed to set effective uid");
|
|||
|
+ if (top) PreExecPrep();
|
|||
|
|
|||
|
- if (*scmd == CNULL) {
|
|||
|
- SeNotice(FmtString1("Executing the shell `%s'", shell));
|
|||
|
- execl(shell, shell, (char*)NULL);
|
|||
|
- SeError(FmtString1("Execution of the shell `%s' failed", shell));
|
|||
|
- exit(1);
|
|||
|
- }
|
|||
|
+ io_set_attr(tfd, &oldmode);
|
|||
|
+ fio = get_modem_fio();
|
|||
|
+
|
|||
|
+ if (top)
|
|||
|
+ XoAppAddSignal(app_con, SIGCHLD, ShellCommandHandler, (XtPointer)&fio);
|
|||
|
+ else signal(SIGCHLD, SIG_IGN);
|
|||
|
+
|
|||
|
+ forkRes = SeFork();
|
|||
|
+ if (forkRes == 0) {
|
|||
|
+ scmd = str_stripspc_copy(cmd, command);
|
|||
|
+
|
|||
|
+ show("");
|
|||
|
+
|
|||
|
+ if (*scmd == '$') {
|
|||
|
+ SeNotice("Redirecting stdin/stdout");
|
|||
|
+ mattach(); /* Attach modem to stdin/stdout */
|
|||
|
+ scmd++;
|
|||
|
+ }
|
|||
|
+
|
|||
|
+ if (setuid(getuid()) < 0)
|
|||
|
+ SePError("Failed to set effective uid");
|
|||
|
+
|
|||
|
+ if (*scmd == CNULL) {
|
|||
|
+ SeNotice(FmtString1("Executing the shell `%s'", shell));
|
|||
|
+ execl(shell, shell, (char*)NULL);
|
|||
|
+ SeError(FmtString1("Execution of the shell `%s' failed", shell));
|
|||
|
+ exit(1);
|
|||
|
+ }
|
|||
|
|
|||
|
- SeNotice(FmtString1("Executing the command `%s'", scmd));
|
|||
|
- execl(shell, shell, "-c", scmd, (char*)NULL);
|
|||
|
- SePError(FmtString1("Execution of the command `%s' failed", scmd));
|
|||
|
- exit(1);
|
|||
|
- }
|
|||
|
- else if (forkRes > 0) {
|
|||
|
- if (top) inhibit_child = True;
|
|||
|
- else {
|
|||
|
+ SeNotice(FmtString1("Executing the command `%s'", scmd));
|
|||
|
+ execl(shell, shell, "-c", scmd, (char*)NULL);
|
|||
|
+ SePError(FmtString1("Execution of the command `%s' failed", scmd));
|
|||
|
+ exit(1);
|
|||
|
+ }
|
|||
|
+ else if (forkRes > 0) {
|
|||
|
+ if (top) inhibit_child = True;
|
|||
|
+ else {
|
|||
|
wait((int*)0); /* Wait for the child process to terminate */
|
|||
|
set_tty_mode();
|
|||
|
set_modem_fio(fio);
|
|||
|
- }
|
|||
|
- } /* if (forkRes == 0)... */
|
|||
|
+ }
|
|||
|
+ } /* if (forkRes == 0)... */
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
PreProcessPrep()
|
|||
|
{
|
|||
|
- SuspContTerminal(TERM_SUSPEND);
|
|||
|
- SetKillButtonSens(True);
|
|||
|
+ SuspContTerminal(TERM_SUSPEND);
|
|||
|
+ SetKillButtonSens(True);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
PostProcessPrep()
|
|||
|
{
|
|||
|
- SuspContTerminal(TERM_CONTINUE);
|
|||
|
- SetKillButtonSens(False);
|
|||
|
+ SuspContTerminal(TERM_CONTINUE);
|
|||
|
+ SetKillButtonSens(False);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
PreExecPrep()
|
|||
|
{
|
|||
|
- SuspContTerminal(0);
|
|||
|
- w_exit_up(False);
|
|||
|
+ SuspContTerminal(0);
|
|||
|
+ w_exit_up(False);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
PostExecPrep()
|
|||
|
{
|
|||
|
- SuspContTerminal(1);
|
|||
|
- w_exit_up(True);
|
|||
|
+ SuspContTerminal(1);
|
|||
|
+ w_exit_up(True);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -318,33 +309,34 @@
|
|||
|
*/
|
|||
|
|
|||
|
char *
|
|||
|
-expand_fname(fname, buffer)
|
|||
|
- char *fname,
|
|||
|
- *buffer;
|
|||
|
-{
|
|||
|
- char *home,
|
|||
|
- *buf,
|
|||
|
- name[REG_BUF];
|
|||
|
- int i;
|
|||
|
-
|
|||
|
- str_stripspc_copy(name, fname);
|
|||
|
- buf = buffer;
|
|||
|
-
|
|||
|
- for (i = 0; name[i]; i++) {
|
|||
|
- if (name[i] == '~') {
|
|||
|
- if ((home = (char *) getenv("HOME")) == NULL)
|
|||
|
- return NULL;
|
|||
|
- strcpy(buf, home);
|
|||
|
- buf += strlen(home);
|
|||
|
+expand_fname(fname, buffer, size)
|
|||
|
+ char *fname,
|
|||
|
+ *buffer;
|
|||
|
+ int size;
|
|||
|
+{
|
|||
|
+ char *home,
|
|||
|
+ *buf,
|
|||
|
+ name[REG_BUF];
|
|||
|
+ int i;
|
|||
|
+
|
|||
|
+ str_stripspc_copy(name, fname);
|
|||
|
+ buf = buffer;
|
|||
|
+
|
|||
|
+ for (i = 0; (name[i] && (buffer+REG_BUF > buf)); i++) {
|
|||
|
+ if (name[i] == '~') {
|
|||
|
+ if ((home = (char *) getenv("HOME")) == NULL)
|
|||
|
+ return NULL;
|
|||
|
+ strncpy(buf, home, size);
|
|||
|
+ buf += strlen(home);
|
|||
|
+ }
|
|||
|
+ else {
|
|||
|
+ *buf = name[i];
|
|||
|
+ buf++;
|
|||
|
+ }
|
|||
|
}
|
|||
|
- else {
|
|||
|
- *buf = name[i];
|
|||
|
- buf++;
|
|||
|
- }
|
|||
|
- }
|
|||
|
- *buf = '\0';
|
|||
|
+ *buf = '\0';
|
|||
|
|
|||
|
- return buffer;
|
|||
|
+ return buffer;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -353,11 +345,12 @@
|
|||
|
*/
|
|||
|
|
|||
|
FILE*
|
|||
|
-open_file(fname, directory)
|
|||
|
- char *fname,
|
|||
|
- *directory;
|
|||
|
+open_file(fname, size, directory)
|
|||
|
+ char *fname;
|
|||
|
+ int size;
|
|||
|
+ char *directory;
|
|||
|
{
|
|||
|
- return open_file_va(fname, directory, NULL);
|
|||
|
+ return open_file_va(fname, size, directory, NULL);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -365,120 +358,79 @@
|
|||
|
*/
|
|||
|
|
|||
|
FILE*
|
|||
|
-open_file_va(fname, dir1, dir2)
|
|||
|
- char *fname,
|
|||
|
- *dir1,
|
|||
|
- *dir2;
|
|||
|
-{
|
|||
|
- FILE *fp;
|
|||
|
- char name[REG_BUF],
|
|||
|
- fullname[REG_BUF],
|
|||
|
- buffer[REG_BUF];
|
|||
|
-
|
|||
|
- str_stripspc_copy(name, fname);
|
|||
|
-
|
|||
|
- if (dir1) {
|
|||
|
- sprintf(fullname, "%s/%s", expand_fname(dir1, buffer), name);
|
|||
|
-
|
|||
|
- if ((fp = fopen(fullname, "r")) != NULL) {
|
|||
|
- strcpy(fname, fullname);
|
|||
|
- return fp;
|
|||
|
- }
|
|||
|
-
|
|||
|
- if (dir2) {
|
|||
|
- sprintf(fullname, "%s/%s", expand_fname(dir2, buffer), name);
|
|||
|
+open_file_va(fname, size, dir1, dir2)
|
|||
|
+ char *fname;
|
|||
|
+ int size;
|
|||
|
+ char *dir1,
|
|||
|
+ *dir2;
|
|||
|
+{
|
|||
|
+ FILE *fp;
|
|||
|
+ char *fullname,
|
|||
|
+ name[REG_BUF],
|
|||
|
+ buffer[REG_BUF];
|
|||
|
+
|
|||
|
+ str_stripspc_copy(name, fname);
|
|||
|
+
|
|||
|
+ if (dir1) {
|
|||
|
+ fullname = FmtString("%s/%s", expand_fname(dir1, buffer, REG_BUF), name, "");
|
|||
|
+ if ((fp = fopen(fullname, "r")) != NULL) {
|
|||
|
+ strncpy(fname, fullname, size);
|
|||
|
+ return fp;
|
|||
|
+ }
|
|||
|
|
|||
|
- if ((fp = fopen(fullname, "r")) != NULL) {
|
|||
|
- strcpy(fname, fullname);
|
|||
|
- return fp;
|
|||
|
- }
|
|||
|
+ if (dir2) {
|
|||
|
+ fullname = FmtString("%s/%s", expand_fname(dir2, buffer, REG_BUF), name, "");
|
|||
|
+ if ((fp = fopen(fullname, "r")) != NULL) {
|
|||
|
+ strncpy(fname, fullname, size);
|
|||
|
+ return fp;
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+ } /* if (dir1)... */
|
|||
|
+
|
|||
|
+ if ((fp = fopen(name, "r")) != NULL) {
|
|||
|
+ strncpy(fname, name, REG_BUF);
|
|||
|
+ return fp;
|
|||
|
}
|
|||
|
- } /* if (dir1)... */
|
|||
|
-
|
|||
|
- if ((fp = fopen(name, "r")) != NULL) {
|
|||
|
- strcpy(fname, name);
|
|||
|
- return fp;
|
|||
|
- }
|
|||
|
|
|||
|
- SeErrorF("/OFV/ Could not open the file `%s'", name, "", "");
|
|||
|
- if (dir1) {
|
|||
|
- SeNoticeF("Tried the default directory `%s'", dir1, "", "");
|
|||
|
- if (dir2)
|
|||
|
- SeNoticeF("Tried the default directory `%s'", dir2, "", "");
|
|||
|
- }
|
|||
|
- SeNotice("Tried the current directory");
|
|||
|
+ SeErrorF("/OFV/ Could not open the file `%s'", name, "", "");
|
|||
|
+ if (dir1) {
|
|||
|
+ SeNoticeF("Tried the default directory `%s'", dir1, "", "");
|
|||
|
+ if (dir2)
|
|||
|
+ SeNoticeF("Tried the default directory `%s'", dir2, "", "");
|
|||
|
+ }
|
|||
|
+ SeNotice("Tried the current directory");
|
|||
|
|
|||
|
- return NULL;
|
|||
|
+ return NULL;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
- * another implementation of the above using varargs, currently not used
|
|||
|
- */
|
|||
|
-
|
|||
|
-/*FILE *open_file_va(args)
|
|||
|
- va_list args;
|
|||
|
- va_decl
|
|||
|
-{
|
|||
|
- FILE *fp;
|
|||
|
- char *name, *dir, fullname[REG_BUF];
|
|||
|
- char buffer[REG_BUF];
|
|||
|
-
|
|||
|
- va_start(args);
|
|||
|
- name = va_arg(args, char *);
|
|||
|
-
|
|||
|
- if (fp = fopen(name, "r"))
|
|||
|
- return fp;
|
|||
|
-
|
|||
|
- while(dir = va_arg(args, char *))
|
|||
|
- {
|
|||
|
- sprintf(fullname, "%s/%s", expand_fname(SSpc(dir), buffer), name);
|
|||
|
-
|
|||
|
- if (fp = fopen(fullname, "r"))
|
|||
|
- return fp;
|
|||
|
- }
|
|||
|
-
|
|||
|
- va_end(args);
|
|||
|
-
|
|||
|
- if (dir = (char *) getenv("HOME")) {
|
|||
|
- sprintf(fullname, "%s/%s", dir, name);
|
|||
|
-
|
|||
|
- if (fp = fopen(fullname, "r"))
|
|||
|
- return fp;
|
|||
|
- }
|
|||
|
-
|
|||
|
- showf("<< Seyon: file '%s' not in current, default, or home directory >>",
|
|||
|
- name, "", "");
|
|||
|
- return NULL;
|
|||
|
-}*/
|
|||
|
-
|
|||
|
-/*
|
|||
|
* read a file into a buffer
|
|||
|
*/
|
|||
|
|
|||
|
void
|
|||
|
read_file(fp, line)
|
|||
|
- FILE *fp;
|
|||
|
- char *line[];
|
|||
|
+ FILE *fp;
|
|||
|
+ char *line[];
|
|||
|
{
|
|||
|
- char buffer[REG_BUF + 1];
|
|||
|
- int i;
|
|||
|
+ char buffer[REG_BUF + 1];
|
|||
|
+ int i;
|
|||
|
|
|||
|
- for (i = 0; i < MAX_ENT && fgets(buffer, REG_BUF, fp) != NULL; i++)
|
|||
|
- line[i] = strcpy((char *)malloc(sizeof(buffer)), SSpc(buffer));
|
|||
|
- line[i] = NULL;
|
|||
|
+ for (i = 0; i < MAX_ENT && fgets(buffer, REG_BUF, fp) != NULL; i++)
|
|||
|
+ line[i] = strcpy((char *)malloc(sizeof(buffer)), SSpc(buffer));
|
|||
|
+ line[i] = NULL;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
- * similar to the above, but closes the file after readsing it
|
|||
|
+ * similar to the above, but closes the file after reading it
|
|||
|
*/
|
|||
|
|
|||
|
void
|
|||
|
read_close_file(fp, line)
|
|||
|
- FILE *fp;
|
|||
|
- char *line[];
|
|||
|
+ FILE *fp;
|
|||
|
+ char *line[];
|
|||
|
{
|
|||
|
- read_file(fp, line);
|
|||
|
- fclose(fp);
|
|||
|
+ read_file(fp, line);
|
|||
|
+ fclose(fp);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -487,12 +439,12 @@
|
|||
|
|
|||
|
void
|
|||
|
write_pipe_data(pd, data, size)
|
|||
|
- int *pd;
|
|||
|
- char *data;
|
|||
|
- int size;
|
|||
|
+ int *pd;
|
|||
|
+ char *data;
|
|||
|
+ int size;
|
|||
|
{
|
|||
|
- if (write(pd[1], data, size) < 0)
|
|||
|
- show("<< Could not write to pipe >>");
|
|||
|
+ if (write(pd[1], data, size) < 0)
|
|||
|
+ show("<< Could not write to pipe >>");
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -501,11 +453,11 @@
|
|||
|
|
|||
|
void
|
|||
|
read_pipe_data(pd, data, size)
|
|||
|
- int *pd;
|
|||
|
- char *data;
|
|||
|
- int size;
|
|||
|
+ int *pd;
|
|||
|
+ char *data;
|
|||
|
+ int size;
|
|||
|
{
|
|||
|
- read(pd[0], data, size);
|
|||
|
+ read(pd[0], data, size);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -515,30 +467,30 @@
|
|||
|
void
|
|||
|
IdleGuard()
|
|||
|
{
|
|||
|
- struct stat statBuf;
|
|||
|
- time_t idleTime;
|
|||
|
- static time_t totalIdleTime;
|
|||
|
- int timeToNextCall;
|
|||
|
-
|
|||
|
- if (qres.idleGuard && !inhibit_child) {
|
|||
|
- if (fstat(tfd, &statBuf) < 0) {
|
|||
|
- SePError("/IG/ Could not stat the tty");
|
|||
|
- return;
|
|||
|
- }
|
|||
|
+ struct stat statBuf;
|
|||
|
+ time_t idleTime;
|
|||
|
+ static time_t totalIdleTime;
|
|||
|
+ int timeToNextCall;
|
|||
|
+
|
|||
|
+ if (qres.idleGuard && !inhibit_child) {
|
|||
|
+ if (fstat(tfd, &statBuf) < 0) {
|
|||
|
+ SePError("/IG/ Could not stat the tty");
|
|||
|
+ return;
|
|||
|
+ }
|
|||
|
+
|
|||
|
+ if ((idleTime = time((time_t *) 0) - statBuf.st_mtime) >=
|
|||
|
+ qres.idleGuardInterval * 0.99) {
|
|||
|
+ MdmPutString(qres.idleGuardString);
|
|||
|
+ timeToNextCall = qres.idleGuardInterval;
|
|||
|
+ totalIdleTime += idleTime;
|
|||
|
+ SeyonMessagef("Idle for %d minutes", (totalIdleTime + 30) / 60);
|
|||
|
+ }
|
|||
|
+ else {
|
|||
|
+ timeToNextCall = qres.idleGuardInterval - (int)idleTime;
|
|||
|
+ totalIdleTime = 0;
|
|||
|
+ }
|
|||
|
|
|||
|
- if ((idleTime = time((time_t *) 0) - statBuf.st_mtime) >=
|
|||
|
- qres.idleGuardInterval * 0.99) {
|
|||
|
- MdmPutString(qres.idleGuardString);
|
|||
|
- timeToNextCall = qres.idleGuardInterval;
|
|||
|
- totalIdleTime += idleTime;
|
|||
|
- SeyonMessagef("Idle for %d minutes", (totalIdleTime + 30) / 60);
|
|||
|
- }
|
|||
|
- else {
|
|||
|
- timeToNextCall = qres.idleGuardInterval - (int)idleTime;
|
|||
|
- totalIdleTime = 0;
|
|||
|
- }
|
|||
|
-
|
|||
|
- XtAppAddTimeOut(app_con, timeToNextCall * 1000,
|
|||
|
+ XtAppAddTimeOut(app_con, timeToNextCall * 1000,
|
|||
|
(XtTimerCallbackProc) IdleGuard, (XtPointer) app_con);
|
|||
|
- }
|
|||
|
+ }
|
|||
|
}
|
|||
|
--- seyon-2.20c.orig/Seyon.c
|
|||
|
+++ seyon-2.20c/Seyon.c
|
|||
|
@@ -72,314 +72,365 @@
|
|||
|
pid_t mainPid;
|
|||
|
|
|||
|
int
|
|||
|
-main(argc, argv)
|
|||
|
- int argc;
|
|||
|
- char *argv[];
|
|||
|
+main(int argc, char *argv[])
|
|||
|
{
|
|||
|
- int OpenModem();
|
|||
|
- void DispatchActions(),
|
|||
|
- GetParameters(),
|
|||
|
- ShowOpenModemErrMsg();
|
|||
|
-
|
|||
|
- char *arg[REG_BUF], termEmu[REG_BUF];
|
|||
|
- int sepIndex, i, n, retStatus;
|
|||
|
+ int OpenModem();
|
|||
|
+ void DispatchActions(),
|
|||
|
+ GetParameters(),
|
|||
|
+ ShowOpenModemErrMsg();
|
|||
|
+
|
|||
|
+ char *arg[REG_BUF],
|
|||
|
+ termEmu[REG_BUF];
|
|||
|
+ int sepIndex,
|
|||
|
+ i,
|
|||
|
+ n,
|
|||
|
+ length,
|
|||
|
+ retStatus;
|
|||
|
#ifdef HAVE_FAS
|
|||
|
- char large_string[1024];
|
|||
|
+ char large_string[LRG_BUF];
|
|||
|
#endif
|
|||
|
|
|||
|
- XtAppContext appContext;
|
|||
|
- char modemList[LRG_BUF],
|
|||
|
- *curModem,
|
|||
|
- *startupAction = modemList;
|
|||
|
+ int length_remaining;
|
|||
|
+ XtAppContext appContext;
|
|||
|
+ char modemList[LRG_BUF],
|
|||
|
+ *curModem,
|
|||
|
+ *startupAction = modemList;
|
|||
|
|
|||
|
- static char *fallbackResources[] = {
|
|||
|
+ static char *fallbackResources[] = {
|
|||
|
#include "Seyon.ad.h"
|
|||
|
- NULL,
|
|||
|
- };
|
|||
|
+ NULL,
|
|||
|
+ };
|
|||
|
|
|||
|
- static XrmOptionDescRec optionList[] = {
|
|||
|
- {"-modems", "modems", XrmoptionSepArg, NULL},
|
|||
|
- {"-script", "script", XrmoptionSepArg, NULL},
|
|||
|
- {"-entries", "defaultPhoneEntries", XrmoptionSepArg, NULL},
|
|||
|
- {"-dial", "dialAutoStart", XrmoptionNoArg, "True"},
|
|||
|
- {"-nodial", "dialAutoStart", XrmoptionNoArg, "False"},
|
|||
|
- {"-emulator", "emulator", XrmoptionSepArg, ""},
|
|||
|
- {"-noemulator", "noemulator", XrmoptionNoArg, ""},
|
|||
|
- {"-nodefargs", "nodefargs", XrmoptionNoArg, ""},
|
|||
|
- };
|
|||
|
+ static XrmOptionDescRec optionList[] = {
|
|||
|
+ {"-modems", "modems", XrmoptionSepArg, NULL},
|
|||
|
+ {"-script", "script", XrmoptionSepArg, NULL},
|
|||
|
+ {"-entries", "defaultPhoneEntries", XrmoptionSepArg, NULL},
|
|||
|
+ {"-dial", "dialAutoStart", XrmoptionNoArg, "True"},
|
|||
|
+ {"-nodial", "dialAutoStart", XrmoptionNoArg, "False"},
|
|||
|
+ {"-emulator", "emulator", XrmoptionSepArg, ""},
|
|||
|
+ {"-noemulator", "noemulator", XrmoptionNoArg, ""},
|
|||
|
+ {"-nodefargs", "nodefargs", XrmoptionNoArg, ""},
|
|||
|
+ };
|
|||
|
|
|||
|
- for (i = 1; i < argc && strcmp(argv[i], "--"); i++);
|
|||
|
- sepIndex = i;
|
|||
|
+ for (i = 1; i < argc && strcmp(argv[i], "--"); i++);
|
|||
|
+ sepIndex = i;
|
|||
|
|
|||
|
- /* Find if the -noemulator switch is given */
|
|||
|
- for (i = 1; i < sepIndex &&
|
|||
|
+ /* Find if the -noemulator switch is given */
|
|||
|
+ for (i = 1; i < sepIndex &&
|
|||
|
strncmp(argv[i], "-noemulator", max(4, strlen(argv[i]))); i++);
|
|||
|
|
|||
|
- /* If no, launch Seyon via the emulator */
|
|||
|
- if (i >= sepIndex) {
|
|||
|
+ /* If no, launch Seyon via the emulator */
|
|||
|
+ if (i >= sepIndex) {
|
|||
|
|
|||
|
- for (i = 1; i < sepIndex &&
|
|||
|
- strncmp(argv[i], "-emulator", max(3, strlen(argv[i]))); i++);
|
|||
|
- if (i < sepIndex - 1)
|
|||
|
- strcpy(termEmu, argv[i+1]);
|
|||
|
- else
|
|||
|
- strcpy(termEmu, SEYON_EMU_NAME);
|
|||
|
-
|
|||
|
- /* Find if the -nodefargs switch is given */
|
|||
|
- for (i = 1; i < sepIndex &&
|
|||
|
- strncmp(argv[i], "-nodefargs", max(5, strlen(argv[i]))); i++);
|
|||
|
+ for (i = 1; i < sepIndex &&
|
|||
|
+ strncmp(argv[i], "-emulator", max(3, strlen(argv[i]))); i++);
|
|||
|
+ if (i < sepIndex - 1)
|
|||
|
+ strncpy(termEmu, argv[i+1], REG_BUF);
|
|||
|
+ else
|
|||
|
+ strncpy(termEmu, SEYON_EMU_NAME, REG_BUF);
|
|||
|
+
|
|||
|
+ /* Find if the -nodefargs switch is given */
|
|||
|
+ for (i = 1; i < sepIndex &&
|
|||
|
+ strncmp(argv[i], "-nodefargs", max(5, strlen(argv[i]))); i++);
|
|||
|
|
|||
|
- n = 1;
|
|||
|
+ n = 1;
|
|||
|
|
|||
|
- /* If no, use the default emulator arguments */
|
|||
|
- if (i >= sepIndex) {
|
|||
|
+ /* If no, use the default emulator arguments */
|
|||
|
+ if (i >= sepIndex) {
|
|||
|
arg[n] = "-name"; n++;
|
|||
|
arg[n] = "Seyon"; n++;
|
|||
|
arg[n] = "-T"; n++;
|
|||
|
arg[n] = "Seyon Terminal Emulator"; n++;
|
|||
|
arg[n] = "-n"; n++;
|
|||
|
arg[n] = "Terminal"; n++;
|
|||
|
- }
|
|||
|
+ }
|
|||
|
|
|||
|
- /* Pass all switches aftetr '--' to the emulator */
|
|||
|
- for (i = sepIndex + 1; i < argc; i++, n++)
|
|||
|
+ /* Pass all switches aftetr '--' to the emulator */
|
|||
|
+ for (i = sepIndex + 1; i < argc; i++, n++)
|
|||
|
arg[n] = argv[i];
|
|||
|
|
|||
|
- arg[n] = "-e"; n++;
|
|||
|
+ arg[n] = "-e"; n++;
|
|||
|
|
|||
|
#ifndef HAVE_FAS
|
|||
|
- arg[n] = argv[0]; n++;
|
|||
|
- arg[n] = "-noemulator"; n++;
|
|||
|
+ arg[n] = argv[0]; n++;
|
|||
|
+ arg[n] = "-noemulator"; n++;
|
|||
|
|
|||
|
- /* Pass all switches before '--' to Seyon */
|
|||
|
- for (i = 1; i < sepIndex; i++, n++)
|
|||
|
+ /* Pass all switches before '--' to Seyon */
|
|||
|
+ for (i = 1; i < sepIndex; i++, n++)
|
|||
|
arg[n] = argv[i];
|
|||
|
#else
|
|||
|
- arg[n] = "/bin/sh"; n++;
|
|||
|
- arg[n] = "-c"; n++;
|
|||
|
- arg[n] = large_string;
|
|||
|
- strcpy(arg[n], argv[0]);
|
|||
|
- strcat(arg[n], " -noemulator");
|
|||
|
- for (i = 1; i < sepIndex; i++) {
|
|||
|
- strcat(arg[n]," ");
|
|||
|
- strcat(arg[n],argv[i]);
|
|||
|
- }
|
|||
|
- n++;
|
|||
|
+ arg[n] = "/bin/sh"; n++;
|
|||
|
+ arg[n] = "-c"; n++;
|
|||
|
+ arg[n] = large_string;
|
|||
|
+ length_remaining = LRG_BUF;
|
|||
|
+ strncpy(arg[n], argv[0], LRG_BUF);
|
|||
|
+ length_remaining -= strlen(argv[0]);
|
|||
|
+ length = strlen(" -noemulator");
|
|||
|
+ if(length_remaining > length)
|
|||
|
+ {
|
|||
|
+ strncat(arg[n], " -noemulator", length_remaining);
|
|||
|
+ length_remaining -= length;
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ printf("String overflow in parsing options\n");
|
|||
|
+ exit (1);
|
|||
|
+ }
|
|||
|
+ for (i = 1; i < sepIndex; i++) {
|
|||
|
+ length = strlen(argv[i]) + 1;
|
|||
|
+ if(length_remaining > length)
|
|||
|
+ {
|
|||
|
+ strncat(arg[n]," ", 1);
|
|||
|
+ strncat(arg[n],argv[i], length_remaining);
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ printf("String overflow in parsing options\n");
|
|||
|
+ exit (1);
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+ n++;
|
|||
|
#endif
|
|||
|
|
|||
|
- arg[n] = NULL; n++;
|
|||
|
+ arg[n] = NULL; n++;
|
|||
|
|
|||
|
- arg[0] = termEmu;
|
|||
|
- execvp(arg[0], arg);
|
|||
|
+ arg[0] = termEmu;
|
|||
|
+ execvp(arg[0], arg);
|
|||
|
|
|||
|
- fprintf(stderr, "%s `%s.\n%s\n", ">> Warning: Could not execute",
|
|||
|
- termEmu, ">> Notice: Falling to `xterm'.");
|
|||
|
+ fprintf(stderr, "%s `%s.\n%s\n", ">> Warning: Could not execute",
|
|||
|
+ termEmu, ">> Notice: Falling to `xterm'.");
|
|||
|
|
|||
|
- arg[0] = "xterm";
|
|||
|
- execvp(arg[0], arg);
|
|||
|
+ arg[0] = "xterm";
|
|||
|
+ execvp(arg[0], arg);
|
|||
|
|
|||
|
- fprintf(stderr, "%s\n%s\n", ">> Error: Could not execute `xterm'.",
|
|||
|
- ">> Notice: Giving up.");
|
|||
|
- exit(1);
|
|||
|
- } /* if (i >= sepIndex)... */
|
|||
|
-
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
-
|
|||
|
- /* The real program begins here */
|
|||
|
-
|
|||
|
- topLevel = XtAppInitialize(&appContext, "Seyon", optionList,
|
|||
|
- XtNumber(optionList), &argc, argv,
|
|||
|
- fallbackResources, NULL, 0);
|
|||
|
- app_con = appContext;
|
|||
|
- GetResources(topLevel);
|
|||
|
-
|
|||
|
- mainPid = getpid();
|
|||
|
- setup_signal_handlers();
|
|||
|
- SetIcon(topLevel);
|
|||
|
-
|
|||
|
- printf("\r\n%s %s\r\n", "Seyon Copyright (c) 1992-1993 Muhammad M. Saggaf.",
|
|||
|
- "All rights reserved.");
|
|||
|
- printf("\rVersion %s rev. %s %s-%s %s@%s %s %s.\r\n\n", VERSION, REVISION,
|
|||
|
- COMPILE_HOSTTYPE, COMPILE_OSNAME, COMPILE_BY, COMPILE_HOST,
|
|||
|
- COMPILE_DATE, COMPILE_TIME);
|
|||
|
-
|
|||
|
- if ((tfp = fopen("/dev/tty", "r+")) == NULL) {
|
|||
|
- PopupInitError("errTtyAccess", exit);
|
|||
|
- goto MainLoop;
|
|||
|
- }
|
|||
|
+ fprintf(stderr, "%s\n%s\n", ">> Error: Could not execute `xterm'.",
|
|||
|
+ ">> Notice: Giving up.");
|
|||
|
+ exit(1);
|
|||
|
+ } /* if (i >= sepIndex)... */
|
|||
|
+
|
|||
|
+ /* ------------------------------------------------------------------ */
|
|||
|
+ /* ------------------------------------------------------------------ */
|
|||
|
+
|
|||
|
+ /* The real program begins here */
|
|||
|
+
|
|||
|
+ topLevel = XtAppInitialize(&appContext, "Seyon", optionList,
|
|||
|
+ XtNumber(optionList), &argc, argv,
|
|||
|
+ fallbackResources, NULL, 0);
|
|||
|
+ app_con = appContext;
|
|||
|
+ GetResources(topLevel);
|
|||
|
+
|
|||
|
+ mainPid = getpid();
|
|||
|
+ setup_signal_handlers();
|
|||
|
+ SetIcon(topLevel);
|
|||
|
+
|
|||
|
+ printf("\r\n%s %s\r\n", "Seyon Copyright (c) 1992-1993 Muhammad M. Saggaf.",
|
|||
|
+ "All rights reserved.");
|
|||
|
+ printf("\rVersion %s rev. %s %s-%s %s@%s %s %s.\r\n\n", VERSION, REVISION,
|
|||
|
+ COMPILE_HOSTTYPE, COMPILE_OSNAME, COMPILE_BY, COMPILE_HOST,
|
|||
|
+ COMPILE_DATE, COMPILE_TIME);
|
|||
|
+
|
|||
|
+ if ((tfp = fopen("/dev/tty", "r+")) == NULL) {
|
|||
|
+ PopupInitError("errTtyAccess", exit);
|
|||
|
+ goto MainLoop;
|
|||
|
+ }
|
|||
|
|
|||
|
- tfd = fileno(tfp);
|
|||
|
+ tfd = fileno(tfp);
|
|||
|
|
|||
|
- io_get_attr(tfd, &oldmode); /* get current console tty mode */
|
|||
|
- newmode = oldmode; /* copy (structure) to newmode */
|
|||
|
+ io_get_attr(tfd, &oldmode); /* get current console tty mode */
|
|||
|
+ newmode = oldmode; /* copy (structure) to newmode */
|
|||
|
|
|||
|
#if HAVE_TERMIOS || HAVE_TERMIO
|
|||
|
- newmode.c_oflag &= ~OPOST;
|
|||
|
- newmode.c_iflag |= (IGNBRK | IGNPAR);
|
|||
|
- newmode.c_iflag &= ~(IXON | IXOFF | ISTRIP | BRKINT);
|
|||
|
- newmode.c_lflag &= ~(ICANON | ISIG | ECHO);
|
|||
|
- newmode.c_cflag |= CREAD;
|
|||
|
- newmode.c_cc[VMIN] = 1;
|
|||
|
- newmode.c_cc[VTIME] = 1;
|
|||
|
+ newmode.c_oflag &= ~OPOST;
|
|||
|
+ newmode.c_iflag |= (IGNBRK | IGNPAR);
|
|||
|
+ newmode.c_iflag &= ~(IXON | IXOFF | ISTRIP | BRKINT);
|
|||
|
+ newmode.c_lflag &= ~(ICANON | ISIG | ECHO);
|
|||
|
+ newmode.c_cflag |= CREAD;
|
|||
|
+ newmode.c_cc[VMIN] = 1;
|
|||
|
+ newmode.c_cc[VTIME] = 1;
|
|||
|
#else
|
|||
|
#if HAVE_SGTTYB
|
|||
|
- newmode.sg_flags = CBREAK;
|
|||
|
+ newmode.sg_flags = CBREAK;
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
|
|||
|
- set_tty_mode();
|
|||
|
+ set_tty_mode();
|
|||
|
|
|||
|
- InitVariables(topLevel);
|
|||
|
+ InitVariables(topLevel);
|
|||
|
|
|||
|
- if (argc > 1 && strcmp(argv[1], "--")) {
|
|||
|
- SeErrorF("Unknown or incomplete command-line switch: `%s'", argv[1],
|
|||
|
- "", "");
|
|||
|
- PopupInitError("errSwitches", do_exit);
|
|||
|
- goto MainLoop;
|
|||
|
- }
|
|||
|
+ if (argc > 1 && strcmp(argv[1], "--")) {
|
|||
|
+ SeErrorF("Unknown or incomplete command-line switch: `%s'", argv[1],
|
|||
|
+ "", "");
|
|||
|
+ PopupInitError("errSwitches", do_exit);
|
|||
|
+ goto MainLoop;
|
|||
|
+ }
|
|||
|
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
+ /* ------------------------------------------------------------------- */
|
|||
|
|
|||
|
- /* Open modem port and configure it */
|
|||
|
+ /* Open modem port and configure it */
|
|||
|
|
|||
|
- strcpy(modemList, qres.modems);
|
|||
|
- curModem = GetFirstWord(modemList);
|
|||
|
+ strncpy(modemList, qres.modems, LRG_BUF);
|
|||
|
+ curModem = GetFirstWord(modemList);
|
|||
|
|
|||
|
- show("Locating Modems...");
|
|||
|
+ show("Locating Modems...");
|
|||
|
|
|||
|
- do {
|
|||
|
- if ((retStatus = OpenModem(curModem)) >= 0) break;
|
|||
|
+ do {
|
|||
|
+ if ((retStatus = OpenModem(curModem)) >= 0) break;
|
|||
|
|
|||
|
- ShowOpenModemErrMsg(curModem, retStatus);
|
|||
|
- if (retStatus != ERR_MDM_NOMODEM)
|
|||
|
+ ShowOpenModemErrMsg(curModem, retStatus);
|
|||
|
+ if (retStatus != ERR_MDM_NOMODEM)
|
|||
|
show(FmtString("Modem `%s' is Unavailable.\n", curModem, "", ""));
|
|||
|
- curModem = GetNextWord();
|
|||
|
- } while (curModem[0] != '\0');
|
|||
|
-
|
|||
|
- if (retStatus < 0) {
|
|||
|
- SeError("No Modems Available");
|
|||
|
- PopupInitError("errModemInit", do_exit);
|
|||
|
- goto MainLoop;
|
|||
|
- }
|
|||
|
-
|
|||
|
- show(FmtString("Modem `%s' is Available.\n", curModem, "", ""));
|
|||
|
-
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
-
|
|||
|
- CreateCommandCenter();
|
|||
|
-
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
+ curModem = GetNextWord();
|
|||
|
+ } while (curModem[0] != '\0');
|
|||
|
|
|||
|
- pipe(child_pipe);
|
|||
|
- pipe(scriptToMainPipe);
|
|||
|
- pipe(mainToTermPipe);
|
|||
|
- XtAppAddInput(appContext, child_pipe[0], (XtPointer)XtInputReadMask,
|
|||
|
- ExecProcRequest, NULL);
|
|||
|
- XtAppAddInput(appContext, scriptToMainPipe[0], (XtPointer)XtInputReadMask,
|
|||
|
- GetParameters, NULL);
|
|||
|
+ if (retStatus < 0) {
|
|||
|
+ SeError("No Modems Available");
|
|||
|
+ PopupInitError("errModemInit", do_exit);
|
|||
|
+ goto MainLoop;
|
|||
|
+ }
|
|||
|
+
|
|||
|
+ show(FmtString("Modem `%s' is Available.\n", curModem, "", ""));
|
|||
|
+
|
|||
|
+ /* ------------------------------------------------------------------- */
|
|||
|
+
|
|||
|
+ CreateCommandCenter();
|
|||
|
+
|
|||
|
+ /* ------------------------------------------------------------------- */
|
|||
|
+
|
|||
|
+ pipe(child_pipe);
|
|||
|
+ pipe(scriptToMainPipe);
|
|||
|
+ pipe(mainToTermPipe);
|
|||
|
+ XtAppAddInput(appContext, child_pipe[0], (XtPointer)XtInputReadMask,
|
|||
|
+ ExecProcRequest, NULL);
|
|||
|
+ XtAppAddInput(appContext, scriptToMainPipe[0], (XtPointer)XtInputReadMask,
|
|||
|
+ GetParameters, NULL);
|
|||
|
+
|
|||
|
+ IdleGuard();
|
|||
|
+ if (qres.showFunMessages)
|
|||
|
+ XtAppAddTimeOut(appContext, qres.funMessagesInterval*1000,
|
|||
|
+ FunMessage, NULL);
|
|||
|
+
|
|||
|
+ /* ------------------------------------------------------------------- */
|
|||
|
+
|
|||
|
+ length_remaining = LRG_BUF;
|
|||
|
+ strncpy(startupAction, qres.startupAction, LRG_BUF);
|
|||
|
+ length_remaining -= strlen(startupAction);
|
|||
|
+ if (qres.script)
|
|||
|
+ {
|
|||
|
+ length = strlen(" RunScript();") + strlen(qres.script);
|
|||
|
+ if (length_remaining > length)
|
|||
|
+ {
|
|||
|
+ sprintf(startupAction + strlen(startupAction),
|
|||
|
+ " RunScript(%s);", qres.script);
|
|||
|
+ length_remaining -= length;
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ printf("String overflow in parsing options\n");
|
|||
|
+ exit (1);
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+ if (qres.dialAutoStart)
|
|||
|
+ {
|
|||
|
+ length = strlen(" DialEntries(Default);");
|
|||
|
+ if(length_remaining > length)
|
|||
|
+ {
|
|||
|
+ strncat(startupAction, " DialEntries(Default);", length);
|
|||
|
+ length -= length;
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ printf("String overflow in parsing options\n");
|
|||
|
+ exit (1);
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+
|
|||
|
+ /* ------------------------------------------------------------------- */
|
|||
|
|
|||
|
- IdleGuard();
|
|||
|
- if (qres.showFunMessages) XtAppAddTimeOut(appContext,
|
|||
|
- qres.funMessagesInterval*1000, FunMessage, NULL);
|
|||
|
+ linkflag = 2;
|
|||
|
+ ProcRequest(DISPATCH_ACTION, "", startupAction);
|
|||
|
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
+ /* ------------------------------------------------------------------- */
|
|||
|
|
|||
|
- strcpy(startupAction, qres.startupAction);
|
|||
|
- if (qres.script) sprintf(startupAction + strlen(startupAction),
|
|||
|
- " RunScript(%s);", qres.script);
|
|||
|
- if (qres.dialAutoStart) strcat(startupAction, " DialEntries(Default);");
|
|||
|
-
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
-
|
|||
|
- linkflag = 2;
|
|||
|
- ProcRequest(DISPATCH_ACTION, "", startupAction);
|
|||
|
-
|
|||
|
- /* ---------------------------------------------------------------------- */
|
|||
|
-
|
|||
|
- XtSetMappedWhenManaged(topLevel, True);
|
|||
|
- XtMapWidget(topLevel); /* I don't know why I need this, but I do */
|
|||
|
+ XtSetMappedWhenManaged(topLevel, True);
|
|||
|
+ XtMapWidget(topLevel); /* I don't know why I need this, but I do */
|
|||
|
|
|||
|
MainLoop:
|
|||
|
- XtAppMainLoop(app_con);
|
|||
|
- return 0;
|
|||
|
+ XtAppMainLoop(app_con);
|
|||
|
+ return 0;
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
-setup_signal_handlers()
|
|||
|
+setup_signal_handlers(void)
|
|||
|
{
|
|||
|
- signal(SIGINT, SIG_IGN);
|
|||
|
- signal(SIGQUIT, SIG_IGN);
|
|||
|
+ signal(SIGINT, SIG_IGN);
|
|||
|
+ signal(SIGQUIT, SIG_IGN);
|
|||
|
|
|||
|
#ifdef SIGBUS
|
|||
|
- signal(SIGBUS, die);
|
|||
|
+ signal(SIGBUS, die);
|
|||
|
#endif
|
|||
|
- signal(SIGFPE, die);
|
|||
|
- signal(SIGILL, die);
|
|||
|
- signal(SIGIOT, die);
|
|||
|
- signal(SIGSEGV, die);
|
|||
|
- signal(SIGTERM, die);
|
|||
|
- signal(SIGTRAP, die);
|
|||
|
+ signal(SIGFPE, die);
|
|||
|
+ signal(SIGILL, die);
|
|||
|
+ signal(SIGIOT, die);
|
|||
|
+ signal(SIGSEGV, die);
|
|||
|
+ signal(SIGTERM, die);
|
|||
|
+ signal(SIGTRAP, die);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
-die(sig)
|
|||
|
- int sig;
|
|||
|
+die(int sig)
|
|||
|
{
|
|||
|
- void KillChildProc();
|
|||
|
- signal(sig, SIG_IGN);
|
|||
|
+ void KillChildProc();
|
|||
|
+ signal(sig, SIG_IGN);
|
|||
|
|
|||
|
- SeErrorF("Killed by signal %d", sig, "", "");
|
|||
|
- SeNoticeF("Debugging info: pid=%d.", getpid(), "", "");
|
|||
|
+ SeErrorF("Killed by signal %d", sig, "", "");
|
|||
|
+ SeNoticeF("Debugging info: pid=%d.", getpid(), "", "");
|
|||
|
|
|||
|
- if (getpid() == mainPid) {
|
|||
|
- KillTerminal();
|
|||
|
- KillChildProc();
|
|||
|
+ if (getpid() == mainPid) {
|
|||
|
+ KillTerminal();
|
|||
|
+ KillChildProc();
|
|||
|
|
|||
|
- SeNotice("Press any key to exit");
|
|||
|
- getchar();
|
|||
|
- cleanup_exit(1);
|
|||
|
- }
|
|||
|
- else {
|
|||
|
- write_child_info(child_pipe, KILL_TERM, "Terminal Proc Exited");
|
|||
|
- exit(1);
|
|||
|
- }
|
|||
|
+ SeNotice("Press any key to exit");
|
|||
|
+ getchar();
|
|||
|
+ cleanup_exit(1);
|
|||
|
+ }
|
|||
|
+ else {
|
|||
|
+ write_child_info(child_pipe, KILL_TERM, "Terminal Proc Exited");
|
|||
|
+ exit(1);
|
|||
|
+ }
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
-do_exit(rc)
|
|||
|
- int rc;
|
|||
|
+do_exit(int rc)
|
|||
|
{
|
|||
|
- void KillChildProc();
|
|||
|
+ void KillChildProc();
|
|||
|
|
|||
|
- XtUnmapWidget(topLevel);
|
|||
|
- KillTerminal();
|
|||
|
- KillChildProc();
|
|||
|
+ XtUnmapWidget(topLevel);
|
|||
|
+ KillTerminal();
|
|||
|
+ KillChildProc();
|
|||
|
|
|||
|
- unlock_tty();
|
|||
|
+ unlock_tty();
|
|||
|
|
|||
|
- fflush(tfp);
|
|||
|
- restore_orig_mode();
|
|||
|
- fclose(tfp);
|
|||
|
+ fflush(tfp);
|
|||
|
+ restore_orig_mode();
|
|||
|
+ fclose(tfp);
|
|||
|
|
|||
|
- CloseModem();
|
|||
|
+ CloseModem();
|
|||
|
|
|||
|
- XtDestroyApplicationContext(XtWidgetToApplicationContext(topLevel));
|
|||
|
+ XtDestroyApplicationContext(XtWidgetToApplicationContext(topLevel));
|
|||
|
/* XCloseDisplay(XtDisplay(topLevel));*/
|
|||
|
- exit(rc);
|
|||
|
+ exit(rc);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
-cleanup_exit(status)
|
|||
|
- int status;
|
|||
|
+cleanup_exit(int status)
|
|||
|
{
|
|||
|
- SeNotice("cleaning up..");
|
|||
|
- do_exit(status);
|
|||
|
+ SeNotice("cleaning up..");
|
|||
|
+ do_exit(status);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
s_exit()
|
|||
|
{
|
|||
|
- show("I'm rated PG-34!!");
|
|||
|
- do_exit(0);
|
|||
|
+ show("I'm rated PG-34!!");
|
|||
|
+ do_exit(0);
|
|||
|
}
|
|||
|
--- seyon-2.20c.orig/SeTrans.c
|
|||
|
+++ seyon-2.20c/SeTrans.c
|
|||
|
@@ -51,7 +51,7 @@
|
|||
|
ErrorIfBusy();
|
|||
|
|
|||
|
if (disItems[0] == NULL) {
|
|||
|
- strcpy(protocolsFile, qres.protocolsFile);
|
|||
|
+ strncpy(protocolsFile, qres.protocolsFile, REG_BUF);
|
|||
|
if (ReadParseProtFile(protocolsFile, disItems) < 0)
|
|||
|
return;
|
|||
|
}
|
|||
|
@@ -81,39 +81,47 @@
|
|||
|
|
|||
|
void
|
|||
|
DoTransfer(widget, clientData, callData)
|
|||
|
- Widget widget;
|
|||
|
- XtPointer clientData,
|
|||
|
- callData;
|
|||
|
-{
|
|||
|
- XfwfMultiListReturnStruct *item;
|
|||
|
- Widget popup;
|
|||
|
- String* actionData = (String*)clientData;
|
|||
|
- char fullCommand[LRG_BUF];
|
|||
|
-
|
|||
|
- if (clientData)
|
|||
|
- {if ((transCurItemIndex = atoi(actionData[0]) - 1) < 0 ||
|
|||
|
- transCurItemIndex > MAX_ENT - 1)
|
|||
|
- SimpleError("Invalid Entry Number");}
|
|||
|
- else {
|
|||
|
- if ((item = XfwfMultiListGetHighlighted(mlw))->num_selected == 0)
|
|||
|
+ Widget widget;
|
|||
|
+ XtPointer clientData,
|
|||
|
+ callData;
|
|||
|
+{
|
|||
|
+ XfwfMultiListReturnStruct *item;
|
|||
|
+ Widget popup;
|
|||
|
+ String* actionData = (String*)clientData;
|
|||
|
+ char fullCommand[LRG_BUF];
|
|||
|
+ int length_remaining;
|
|||
|
+
|
|||
|
+ if (clientData)
|
|||
|
+ {if ((transCurItemIndex = atoi(actionData[0]) - 1) < 0 ||
|
|||
|
+ transCurItemIndex > MAX_ENT - 1)
|
|||
|
+ SimpleError("Invalid Entry Number");}
|
|||
|
+ else {
|
|||
|
+ if ((item = XfwfMultiListGetHighlighted(mlw))->num_selected == 0)
|
|||
|
SimpleError("No Item Selected");
|
|||
|
- transCurItemIndex = item->selected_items[0];
|
|||
|
- }
|
|||
|
+ transCurItemIndex = item->selected_items[0];
|
|||
|
+ }
|
|||
|
|
|||
|
- strcpy(fullCommand, protItems[transCurItemIndex]->command);
|
|||
|
+ strncpy(fullCommand, protItems[transCurItemIndex]->command, LRG_BUF);
|
|||
|
|
|||
|
- if (protItems[transCurItemIndex]->reqName)
|
|||
|
- if (actionData == NULL || actionData[1] == NULL) {
|
|||
|
+ if (protItems[transCurItemIndex]->reqName)
|
|||
|
+ {
|
|||
|
+ if (actionData == NULL || actionData[1] == NULL)
|
|||
|
+ {
|
|||
|
popup = GetShell(PopupDialogGetValue("upload", widget, exec_upload,
|
|||
|
- NULL, lastUploadFile));
|
|||
|
+ NULL, lastUploadFile));
|
|||
|
PopupCentered(popup, (clientData) ? XtParent(GetShell(widget)) : widget);
|
|||
|
return;
|
|||
|
- }
|
|||
|
- else
|
|||
|
- strcat(strcat(fullCommand, " "), actionData[1]);
|
|||
|
-
|
|||
|
- DestroyShell(widget);
|
|||
|
- ShellCommand(fullCommand);
|
|||
|
+ }
|
|||
|
+ else
|
|||
|
+ {
|
|||
|
+ length_remaining = LRG_BUF - strlen(fullCommand);
|
|||
|
+ strncat(fullCommand, " ", length_remaining);
|
|||
|
+ length_remaining -= 1;
|
|||
|
+ strncat(fullCommand, actionData[1], length_remaining);
|
|||
|
+ }
|
|||
|
+ }
|
|||
|
+ DestroyShell(widget);
|
|||
|
+ ShellCommand(fullCommand);
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
@@ -133,11 +141,11 @@
|
|||
|
Widget widget;
|
|||
|
{
|
|||
|
Widget dialog = XtParent(widget);
|
|||
|
- static char cmd[REG_BUF];
|
|||
|
+ static char *cmd;
|
|||
|
|
|||
|
- strcpy(lastUploadFile, XawDialogGetValueString(dialog));
|
|||
|
- sprintf(cmd, "%s %s", protItems[transCurItemIndex]->command,
|
|||
|
- lastUploadFile);
|
|||
|
+ strncpy(lastUploadFile, XawDialogGetValueString(dialog), REG_BUF);
|
|||
|
+ cmd = FmtString("%s %s", protItems[transCurItemIndex]->command,
|
|||
|
+ lastUploadFile, "");
|
|||
|
|
|||
|
DestroyShell(XtParent(GetShell(widget)));
|
|||
|
ShellCommand(cmd);
|
|||
|
--- seyon-2.20c.orig/Seyon-co.ad
|
|||
|
+++ seyon-2.20c/Seyon-co.ad
|
|||
|
@@ -13,26 +13,30 @@
|
|||
|
*foreground: black
|
|||
|
*borderColor: white
|
|||
|
|
|||
|
+*background: blue
|
|||
|
+*foreground: black
|
|||
|
+*borderColor: lightBlue
|
|||
|
+
|
|||
|
*Command.background: lightBlue
|
|||
|
-*Scrollbar.background: darkSeaGreen
|
|||
|
-*Toggle.background: darkOliveGreen
|
|||
|
-*Toggle.foreground: darkTurquoise
|
|||
|
-*List.background: grey
|
|||
|
-*XfwfMultiList.background: grey
|
|||
|
-*Text*background: grey
|
|||
|
-*Text*Scrollbar.background: darkSeaGreen
|
|||
|
+*Scrollbar.background: cyan
|
|||
|
+*Toggle.background: cyan
|
|||
|
+*Toggle.foreground: black
|
|||
|
+*List.background: tan
|
|||
|
+*XfwfMultiList.background: tan
|
|||
|
+*Text*background: tan
|
|||
|
+*Text*Scrollbar.background: cyan
|
|||
|
|
|||
|
*ok.background: green
|
|||
|
-*cancel.background: tomato
|
|||
|
+*cancel.background: red
|
|||
|
*dismiss.background: orange
|
|||
|
-*hangup.background: orange
|
|||
|
-*exit.background: tomato
|
|||
|
-*kill.background: tomato
|
|||
|
+*hangup.background: red
|
|||
|
+*exit.background: red
|
|||
|
+*kill.background: red
|
|||
|
|
|||
|
-*about*msg.background: grey
|
|||
|
-*about*pic.background: grey
|
|||
|
+*about*msg.background: tan
|
|||
|
+*about*pic.background: tan
|
|||
|
|
|||
|
-*messageBox.message.background: grey
|
|||
|
+*messageBox.message.background: tan
|
|||
|
|
|||
|
-*quickKeyBox.Command.background: darkOliveGreen
|
|||
|
-*quickKeyBox.Command.foreground: darkTurquoise
|
|||
|
+*quickKeyBox.Command.background: orange
|
|||
|
+*quickKeyBox.Command.foreground: black
|
|||
|
--- seyon-2.20c.orig/config.h
|
|||
|
+++ seyon-2.20c/config.h
|
|||
|
@@ -302,7 +302,7 @@
|
|||
|
* HDB uucp does) rather than in binary form as other uucp prgrams do
|
|||
|
*/
|
|||
|
#ifndef LF_USE_ASCII_PID
|
|||
|
-#define LF_USE_ASCII_PID NO
|
|||
|
+#define LF_USE_ASCII_PID YES
|
|||
|
#endif
|
|||
|
|
|||
|
/*
|
|||
|
@@ -319,7 +319,7 @@
|
|||
|
*/
|
|||
|
|
|||
|
#ifndef LF_PATH
|
|||
|
-#define LF_PATH "/usr/spool/uucp"
|
|||
|
+#define LF_PATH "/var/lock"
|
|||
|
#endif
|
|||
|
|
|||
|
/*
|
|||
|
--- seyon-2.20c.orig/Imakefile
|
|||
|
+++ seyon-2.20c/Imakefile
|
|||
|
@@ -48,14 +48,16 @@
|
|||
|
InstallNonExecFile(seyon.help,$(LIBDIR))
|
|||
|
|
|||
|
install::
|
|||
|
+/*
|
|||
|
@if [ ! -d $(HOME)/.seyon ]; then mkdir $(HOME)/.seyon; fi; \
|
|||
|
echo "=== Copying example files (no overwrite) to $(HOME)/.seyon ..."; \
|
|||
|
for i in phonelist protocols startup script.*; do \
|
|||
|
if [ ! -f $(HOME)/.seyon/$$i ]; then cp $$i $(HOME)/.seyon; fi;\
|
|||
|
done;
|
|||
|
+*/
|
|||
|
|
|||
|
clean::
|
|||
|
- rm -f version.h y.tab.* SeParse.c
|
|||
|
+ rm -f version.h y.tab.* SeParse.c Seyon.ad.h
|
|||
|
|
|||
|
Seyon.c: Seyon.ad.h version.h
|
|||
|
|
|||
|
@@ -66,7 +68,7 @@
|
|||
|
rm -f version.h
|
|||
|
|
|||
|
version.h:
|
|||
|
- ./makever.sh
|
|||
|
+ sh ./makever.sh
|
|||
|
|
|||
|
SeScan.o: y.tab.h
|
|||
|
|
|||
|
--- seyon-2.20c.orig/makever.sh
|
|||
|
+++ seyon-2.20c/makever.sh
|
|||
|
@@ -48,9 +48,9 @@
|
|||
|
echo "#define VERSION \"$VERSION\"" >> version.h
|
|||
|
echo "#define REVISION \"$REVISION\"" >> version.h
|
|||
|
|
|||
|
-echo "#ifdef IS_MAIN" >> version.h
|
|||
|
-echo "static char version[] = \"\$Revision: $VERSION.$REVISION \$\";"\
|
|||
|
- >> version.h
|
|||
|
-echo "#endif" >> version.h
|
|||
|
+#echo "#ifdef IS_MAIN" >> version.h
|
|||
|
+#echo "static char version[] = \"\$Revision: $VERSION.$REVISION \$\";"\
|
|||
|
+# >> version.h
|
|||
|
+#echo "#endif" >> version.h
|
|||
|
|
|||
|
echo "Machine type is $machine, OS name is $system"
|
|||
|
--- seyon-2.20c.orig/SeScan.c
|
|||
|
+++ seyon-2.20c/SeScan.c
|
|||
|
@@ -95,8 +95,8 @@
|
|||
|
SC_OUTSIDE,
|
|||
|
};
|
|||
|
|
|||
|
-static ScanState = SC_OUTSIDE;
|
|||
|
-static ScanDelim = 0; /* Current string delimiter */
|
|||
|
+static int ScanState = SC_OUTSIDE;
|
|||
|
+static int ScanDelim = 0; /* Current string delimiter */
|
|||
|
|
|||
|
void NEW_STATE(st)
|
|||
|
int st;
|
|||
|
@@ -290,8 +290,8 @@
|
|||
|
#ifdef TEST
|
|||
|
main()
|
|||
|
{
|
|||
|
- scSetInputBuf("Just to see if we'\\'re \\n\\033 able to distinguish' words and strings
|
|||
|
-\"Also 'quotes' inside strings\" and 'strs \"inside quotes\"'
|
|||
|
+ scSetInputBuf("Just to see if we'\\'re \\n\\033 able to distinguish' words and strings\n\
|
|||
|
+\"Also 'quotes' inside strings\" and 'strs \"inside quotes\"'\n\
|
|||
|
Not to forget ^S and ^q control ^ chars");
|
|||
|
|
|||
|
while (lGetWord() != 0);
|
|||
|
--- seyon-2.20c.orig/SeSubsX.c
|
|||
|
+++ seyon-2.20c/SeSubsX.c
|
|||
|
@@ -70,7 +70,8 @@
|
|||
|
|
|||
|
if (onlineTime != oldOnlineTime) {
|
|||
|
oldOnlineTime = onlineTime;
|
|||
|
- sprintf(buf, "%02d:%02d", onlineTime / 60, onlineTime % 60);
|
|||
|
+ /* Buffer is easily big enough */
|
|||
|
+ sprintf(buf, "%02ld:%02ld", onlineTime / 60, onlineTime % 60);
|
|||
|
SeSetLabel(statusWidget[0], buf);
|
|||
|
}
|
|||
|
|
|||
|
@@ -91,6 +92,7 @@
|
|||
|
msg = qres.funMessages[msg_index++];
|
|||
|
if (msg == NULL) {
|
|||
|
msg_index = 0;
|
|||
|
+ /* Buffer is easily big enough */
|
|||
|
sprintf(vermsg, "Welcome to Seyon version %s.%s", VERSION, REVISION);
|
|||
|
msg = vermsg;
|
|||
|
}
|
|||
|
@@ -171,7 +173,8 @@
|
|||
|
|
|||
|
procRequest.action = action;
|
|||
|
|
|||
|
- if (msg) strcpy(procRequest.msg, msg);
|
|||
|
+ if (msg)
|
|||
|
+ strncpy(procRequest.msg, msg, 80);
|
|||
|
else *procRequest.msg = '\0';
|
|||
|
|
|||
|
write_pipe_data(pd, &procRequest, sizeof(procRequest));
|
|||
|
@@ -186,8 +189,8 @@
|
|||
|
struct _procRequest procRequest;
|
|||
|
|
|||
|
procRequest.action = action;
|
|||
|
- strcpy(procRequest.msg, msg);
|
|||
|
- strcpy(procRequest.arg, arg);
|
|||
|
+ strncpy(procRequest.msg, msg, 80);
|
|||
|
+ strncpy(procRequest.arg, arg, 90);
|
|||
|
|
|||
|
write_pipe_data(child_pipe, &procRequest, sizeof(procRequest));
|
|||
|
}
|
|||
|
@@ -201,10 +204,7 @@
|
|||
|
*b,
|
|||
|
*c;
|
|||
|
{
|
|||
|
- char buffer[SM_BUF];
|
|||
|
-
|
|||
|
- sprintf(buffer, fmt, a, b, c);
|
|||
|
- write_child_info(pd, action, buffer);
|
|||
|
+ write_child_info(pd, action, FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
@@ -222,10 +222,7 @@
|
|||
|
b,
|
|||
|
c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- SeyonMessage(buf);
|
|||
|
+ SeyonMessage(FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
Boolean
|
|||
|
--- seyon-2.20c.orig/SeActions.c
|
|||
|
+++ seyon-2.20c/SeActions.c
|
|||
|
@@ -28,6 +28,7 @@
|
|||
|
/* SeDecl.h includes stdio.h */
|
|||
|
#include "SeDecl.h"
|
|||
|
#include "version.h"
|
|||
|
+#include "config.h"
|
|||
|
|
|||
|
#define CheckNumParam(num) {if (*numParam != num) \
|
|||
|
SimpleError("Wrong Number of Parameters");}
|
|||
|
@@ -234,7 +235,7 @@
|
|||
|
Cardinal* numParam;
|
|||
|
{
|
|||
|
int IconifyShell();
|
|||
|
- Widget dirWidget;
|
|||
|
+/* Widget dirWidget; */
|
|||
|
static String termWindowId = NULL;
|
|||
|
int i;
|
|||
|
|
|||
|
@@ -312,10 +313,18 @@
|
|||
|
Cardinal* numParam;
|
|||
|
{
|
|||
|
void s_set();
|
|||
|
+ int length;
|
|||
|
+ int length_remaining;
|
|||
|
|
|||
|
ErrorIfBusy();
|
|||
|
CheckNumParam(2);
|
|||
|
- sprintf((lptr = line), "%s %s", param[0], param[1]);
|
|||
|
+
|
|||
|
+ length_remaining = WBSIZE;
|
|||
|
+ length = 1 + strlen(param[0]) + strlen(param[1]);
|
|||
|
+ if(length_remaining > length)
|
|||
|
+ sprintf((lptr = line), "%s %s", param[0], param[1]);
|
|||
|
+ else
|
|||
|
+ printf("SetAction: string buffer would have overrun: %s %s\n",param[0], param[1]);
|
|||
|
eof_flag = 0;
|
|||
|
s_set();
|
|||
|
}
|
|||
|
@@ -372,7 +381,7 @@
|
|||
|
prevActionAsync = False,
|
|||
|
startup = True;
|
|||
|
static Widget actionWidget;
|
|||
|
- static String actionStack;
|
|||
|
+ static String actionStack = "";
|
|||
|
|
|||
|
void (*actionProc)();
|
|||
|
static char actionName[SM_BUF],
|
|||
|
@@ -387,6 +396,9 @@
|
|||
|
Boolean async;
|
|||
|
};
|
|||
|
|
|||
|
+ /* A string containing a script of actions to perform at startup. */
|
|||
|
+ String startScript;
|
|||
|
+
|
|||
|
static struct _actionTable actionTable[] = {
|
|||
|
{"Beep", BeepAction, False},
|
|||
|
{"CloseWindow", CloseWindowAction, False},
|
|||
|
@@ -413,12 +425,12 @@
|
|||
|
switch (intData) {
|
|||
|
|
|||
|
case ACTION_NEW_ACTION:
|
|||
|
- strcpy(actionName, stringData);
|
|||
|
+ strncpy(actionName, stringData, sizeof(actionName));
|
|||
|
numArgs = 0;
|
|||
|
return;
|
|||
|
|
|||
|
case ACTION_NEW_ARG:
|
|||
|
- strcpy((argsArray[numArgs] = args[numArgs]), stringData);
|
|||
|
+ strncpy((argsArray[numArgs] = args[numArgs]), stringData, SM_BUF);
|
|||
|
numArgs++;
|
|||
|
return;
|
|||
|
|
|||
|
@@ -461,10 +473,12 @@
|
|||
|
XtFree(actionStack);
|
|||
|
|
|||
|
if (startup) {
|
|||
|
- startup = False;
|
|||
|
- ParseThis(FmtString("Message(\"Welcome to Seyon version %s.%s\"); %s",
|
|||
|
- VERSION, REVISION, "RestartTerminal();"),
|
|||
|
- DispatchActions);
|
|||
|
+ startup = False;
|
|||
|
+ startScript
|
|||
|
+ = XtNewString( FmtString("Message(\"Welcome to Seyon version %s.%s\"); %s",
|
|||
|
+ VERSION, REVISION, "RestartTerminal();"));
|
|||
|
+ ParseThis(startScript, DispatchActions);
|
|||
|
+ XtFree(startScript);
|
|||
|
}
|
|||
|
|
|||
|
return;
|
|||
|
--- seyon-2.20c.orig/SeScript.c
|
|||
|
+++ seyon-2.20c/SeScript.c
|
|||
|
@@ -100,8 +100,8 @@
|
|||
|
if (qres.scriptDirectory) scriptDir = qres.scriptDirectory;
|
|||
|
else scriptDir = qres.defaultDirectory;
|
|||
|
|
|||
|
- strcpy(buf, scriptFileName);
|
|||
|
- if ((scriptFP = open_file(buf, scriptDir)) == NULL)
|
|||
|
+ strncpy(buf, scriptFileName, REG_BUF);
|
|||
|
+ if ((scriptFP = open_file(buf, REG_BUF, scriptDir)) == NULL)
|
|||
|
return False;
|
|||
|
|
|||
|
exec_close_script(scriptFP);
|
|||
|
@@ -110,31 +110,33 @@
|
|||
|
|
|||
|
void
|
|||
|
exec_close_script(script_fp)
|
|||
|
- FILE *script_fp;
|
|||
|
+ FILE *script_fp;
|
|||
|
{
|
|||
|
- if_flag = 0;
|
|||
|
- echo_flag = False;
|
|||
|
- captflag = False;
|
|||
|
- tty_flag = True;
|
|||
|
- eof_flag = 0;
|
|||
|
+ if_flag = 0;
|
|||
|
+ echo_flag = False;
|
|||
|
+ captflag = False;
|
|||
|
+ tty_flag = True;
|
|||
|
+ eof_flag = 0;
|
|||
|
|
|||
|
- if (linkflag == 2)
|
|||
|
- linkflag = 0;
|
|||
|
+ if (linkflag == 2)
|
|||
|
+ linkflag = 0;
|
|||
|
|
|||
|
- while (!eof_flag)
|
|||
|
- get_line(script_fp);
|
|||
|
+ while (!eof_flag)
|
|||
|
+ get_line(script_fp);
|
|||
|
|
|||
|
- fclose(script_fp);
|
|||
|
- if (captflag)
|
|||
|
- fclose(cf);
|
|||
|
+ fclose(script_fp);
|
|||
|
+ if (captflag)
|
|||
|
+ fclose(cf);
|
|||
|
|
|||
|
- eof_flag = 0;
|
|||
|
- lptr = strcpy(line, "");
|
|||
|
- k_when();
|
|||
|
+ eof_flag = 0;
|
|||
|
+ /* No buffer length problem here! */
|
|||
|
+ /* But why do this??? */
|
|||
|
+ lptr = strcpy(line, "");
|
|||
|
+ k_when();
|
|||
|
|
|||
|
- linkflag = 0;
|
|||
|
+ linkflag = 0;
|
|||
|
|
|||
|
- return;
|
|||
|
+ return;
|
|||
|
}
|
|||
|
|
|||
|
static char wf[MAX_LINE];
|
|||
|
@@ -202,7 +204,7 @@
|
|||
|
|
|||
|
|
|||
|
GETTEST_ARG("waitfor");
|
|||
|
- strcpy(wf, word);
|
|||
|
+ strncpy(wf, word, MAX_LINE);
|
|||
|
|
|||
|
GET_ARG();
|
|||
|
|
|||
|
@@ -331,7 +333,7 @@
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
- strcpy(label, word);
|
|||
|
+ strncpy(label, word, WBSIZE);
|
|||
|
|
|||
|
rewind(script_fp);
|
|||
|
while (!found) {
|
|||
|
@@ -360,7 +362,7 @@
|
|||
|
if_flag = 0; /* reset IF flag */
|
|||
|
}
|
|||
|
|
|||
|
-static if_negate = 0;
|
|||
|
+static int if_negate = 0;
|
|||
|
|
|||
|
static int
|
|||
|
if_test(cond)
|
|||
|
--- seyon-2.20c.orig/SeWin.c
|
|||
|
+++ seyon-2.20c/SeWin.c
|
|||
|
@@ -377,7 +377,7 @@
|
|||
|
{
|
|||
|
Widget dialog = XtParent(valueWidget);
|
|||
|
|
|||
|
- strcpy(getValueDefValue, XawDialogGetValueString(dialog));
|
|||
|
+ strncpy(getValueDefValue, XawDialogGetValueString(dialog), REG_BUF);
|
|||
|
DestroyShell(dialog);
|
|||
|
|
|||
|
(*getValueExecProc)(XtParent(GetShell(valueWidget)), getValueDefValue);
|
|||
|
@@ -745,10 +745,7 @@
|
|||
|
b,
|
|||
|
c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- SePopupMsg(parent, buf);
|
|||
|
+ SePopupMsg(parent, FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
Widget
|
|||
|
@@ -773,20 +770,16 @@
|
|||
|
}
|
|||
|
|
|||
|
void
|
|||
|
-SePopupNoticeF(parent, title, call_back, fmt, a, b, c, d)
|
|||
|
+SePopupNoticeF(parent, title, call_back, fmt, a, b, c)
|
|||
|
Widget parent;
|
|||
|
String title;
|
|||
|
void (*call_back) ();
|
|||
|
String fmt,
|
|||
|
a,
|
|||
|
b,
|
|||
|
- c,
|
|||
|
- d;
|
|||
|
+ c;
|
|||
|
{
|
|||
|
- char buf[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buf, fmt, a, b, c);
|
|||
|
- SePopupNotice(parent, title, call_back, buf);
|
|||
|
+ SePopupNotice(parent, title, call_back, FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -918,10 +911,7 @@
|
|||
|
b,
|
|||
|
c;
|
|||
|
{
|
|||
|
- char buffer[REG_BUF];
|
|||
|
-
|
|||
|
- sprintf(buffer, fmt, a, b, c);
|
|||
|
- SetStatusMessage(buffer);
|
|||
|
+ SetStatusMessage(FmtString(fmt,a,b,c));
|
|||
|
}
|
|||
|
|
|||
|
/*---------------------------------------------------------------------------+
|
|||
|
--- seyon-2.20c.orig/SeString.c
|
|||
|
+++ seyon-2.20c/SeString.c
|
|||
|
@@ -22,12 +22,13 @@
|
|||
|
|
|||
|
char
|
|||
|
itoa(num)
|
|||
|
- int num;
|
|||
|
+ int num;
|
|||
|
{
|
|||
|
- char buf[TIN_BUF];
|
|||
|
+ char buf[TIN_BUF];
|
|||
|
|
|||
|
- sprintf(buf, "%d", num);
|
|||
|
- return buf[0];
|
|||
|
+ /* Buffer is safely big enough */
|
|||
|
+ sprintf(buf, "%d", num);
|
|||
|
+ return buf[0];
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -100,8 +101,15 @@
|
|||
|
char buffer[REG_BUF],
|
|||
|
*bufptr;
|
|||
|
|
|||
|
- strcpy(buffer, source);
|
|||
|
+ strncpy(buffer, source, REG_BUF);
|
|||
|
+
|
|||
|
+ /* Null-terminate, as expected by str_strip_lead_end_space(). */
|
|||
|
+ buffer[REG_BUF] = '\0';
|
|||
|
+
|
|||
|
bufptr = str_strip_lead_end_space(buffer);
|
|||
|
+
|
|||
|
+ /* Must fit, as we can only have removed things from the original
|
|||
|
+ string */
|
|||
|
return strcpy(dest, bufptr);
|
|||
|
}
|
|||
|
|
|||
|
@@ -128,14 +136,43 @@
|
|||
|
return strBuf;
|
|||
|
}
|
|||
|
|
|||
|
+/* Note that the the (char *) data structure returned by FmtString()
|
|||
|
+ is invalidated on subsequent calls, and that the function is not
|
|||
|
+ re-entrant. Take care that the pointer returned is not held for
|
|||
|
+ use across calls. */
|
|||
|
char*
|
|||
|
FmtString(fmt, a, b, c)
|
|||
|
- char *fmt, *a, *b, *c;
|
|||
|
+ char *fmt, *a, *b, *c;
|
|||
|
{
|
|||
|
- static char strBuf[LRG_BUF];
|
|||
|
+ static char strBuf[LRG_BUF];
|
|||
|
+ static FILE *devnull=NULL;
|
|||
|
+ int length = 0;
|
|||
|
+
|
|||
|
+ /* Clear the buffer as it highlights errors elsewhere, such as
|
|||
|
+ simultaneous use of the static string or re-entry into this
|
|||
|
+ function. */
|
|||
|
+ memset(strBuf, 0, LRG_BUF);
|
|||
|
+
|
|||
|
+ /* Ick... This is horrible - using a user-provided format string
|
|||
|
+ means we have no easy way of limiting string length. HACK HACK
|
|||
|
+ HACK Use fprintf to output to /dev/null and count the number of
|
|||
|
+ bytes... It would be nice if we could rely on having snprintf() */
|
|||
|
+
|
|||
|
+ if(NULL == devnull)
|
|||
|
+ {
|
|||
|
+ devnull = fopen("/dev/null", "r+");
|
|||
|
+ if(NULL == devnull)
|
|||
|
+ {
|
|||
|
+ printf("Open /dev/null failed!?!\n");
|
|||
|
+ return strBuf;
|
|||
|
+ }
|
|||
|
+ length = fprintf(devnull, fmt, a, b, c);
|
|||
|
+ }
|
|||
|
+
|
|||
|
+ if(LRG_BUF >= length)
|
|||
|
+ sprintf(strBuf, fmt, a, b, c);
|
|||
|
|
|||
|
- sprintf(strBuf, fmt, a, b, c);
|
|||
|
- return strBuf;
|
|||
|
+ return strBuf;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
@@ -189,6 +226,7 @@
|
|||
|
if (*line == '\0')
|
|||
|
return NULL;
|
|||
|
else if (*line == '\"')
|
|||
|
+
|
|||
|
for (wrd = ++line; *line != '\"' && *line; line++);
|
|||
|
else
|
|||
|
for (wrd = line; !isspace(*line) && *line; line++);
|
|||
|
@@ -246,38 +284,38 @@
|
|||
|
* this routine is not currently used, and I'm not if it works
|
|||
|
*/
|
|||
|
|
|||
|
-char *
|
|||
|
-get_word(str, word)
|
|||
|
- char *str,
|
|||
|
- *word;
|
|||
|
-{
|
|||
|
- char *wrd,
|
|||
|
- c;
|
|||
|
-
|
|||
|
- while (isspace(*str) && *str)
|
|||
|
- str++;
|
|||
|
-
|
|||
|
- if (!(*str))
|
|||
|
- word[0] = '\0';
|
|||
|
-
|
|||
|
- else if (*str == '\"') {
|
|||
|
- for (wrd = ++str; *str != '\"' && *str; str++);
|
|||
|
- *str = '\0';
|
|||
|
- strcpy(word, wrd);
|
|||
|
- *str = '\"';
|
|||
|
- str++;
|
|||
|
- }
|
|||
|
+/* char * */
|
|||
|
+/* get_word(str, word) */
|
|||
|
+/* char *str, */
|
|||
|
+/* *word; */
|
|||
|
+/* { */
|
|||
|
+/* char *wrd, */
|
|||
|
+/* c; */
|
|||
|
+
|
|||
|
+/* while (isspace(*str) && *str) */
|
|||
|
+/* str++; */
|
|||
|
+
|
|||
|
+/* if (!(*str)) */
|
|||
|
+/* word[0] = '\0'; */
|
|||
|
+
|
|||
|
+/* else if (*str == '\"') { */
|
|||
|
+/* for (wrd = ++str; *str != '\"' && *str; str++); */
|
|||
|
+/* *str = '\0'; */
|
|||
|
+/* strcpy(word, wrd); */
|
|||
|
+/* *str = '\"'; */
|
|||
|
+/* str++; */
|
|||
|
+/* } */
|
|||
|
+
|
|||
|
+/* else { */
|
|||
|
+/* for (wrd = str; !isspace(*str) && *str; str++); */
|
|||
|
+/* c = *str; */
|
|||
|
+/* *str = '\0'; */
|
|||
|
+/* strcpy(word, wrd); */
|
|||
|
+/* *str = c; */
|
|||
|
+/* } */
|
|||
|
|
|||
|
- else {
|
|||
|
- for (wrd = str; !isspace(*str) && *str; str++);
|
|||
|
- c = *str;
|
|||
|
- *str = '\0';
|
|||
|
- strcpy(word, wrd);
|
|||
|
- *str = c;
|
|||
|
- }
|
|||
|
-
|
|||
|
- return str;
|
|||
|
-}
|
|||
|
+/* return str; */
|
|||
|
+/* } */
|
|||
|
|
|||
|
#if !HAVE_STRERROR
|
|||
|
|
|||
|
--- seyon-2.20c.orig/SeParse.y
|
|||
|
+++ seyon-2.20c/SeParse.y
|
|||
|
@@ -1,8 +1,11 @@
|
|||
|
%{
|
|||
|
#include <stdio.h>
|
|||
|
#include <ctype.h>
|
|||
|
+#include <stdlib.h>
|
|||
|
#include "SeParse.h"
|
|||
|
|
|||
|
+int yylex(void);
|
|||
|
+
|
|||
|
void (*callbackProc)();
|
|||
|
%}
|
|||
|
|
|||
|
@@ -81,19 +84,19 @@
|
|||
|
{
|
|||
|
char long_line[1000];
|
|||
|
|
|||
|
- char input_str[] = "This(is, a, real, funky); script();
|
|||
|
- Scripts(); Can(be); Multi(Line, \"Can't they?\");
|
|||
|
- Commas(are, no, longer, optional, inside, arglists);
|
|||
|
- Scripts(); Can(); contain(\"tabs \\t and backspaces \\b\");
|
|||
|
- As(\"Well\\ as Quoted Strings\", and, '\"Quoted Strings inside
|
|||
|
- quoted strings\"');
|
|||
|
- esc(can, appear, outside, strings, ^z, \\012\\015\\n);
|
|||
|
- But(parenthesis, should, match);
|
|||
|
- We(\"have a funny way of specifying \\012 chars and even)\");
|
|||
|
- backslashes( \" \\\\ \");
|
|||
|
- new(\"in this version are ^m and ^A ctr-escapes, as in ^S^Q\");
|
|||
|
- The(next, line, will, give, a, syntax, error, because, it, has, two, adj, functions,
|
|||
|
- without, a, separating, semicolon);
|
|||
|
+ char input_str[] = "This(is, a, real, funky); script();\n\
|
|||
|
+ Scripts(); Can(be); Multi(Line, \"Can't they?\");\n\
|
|||
|
+ Commas(are, no, longer, optional, inside, arglists);\n\
|
|||
|
+ Scripts(); Can(); contain(\"tabs \\t and backspaces \\b\");\n\
|
|||
|
+ As(\"Well\\ as Quoted Strings\", and, '\"Quoted Strings inside\n\
|
|||
|
+ quoted strings\"');\n\
|
|||
|
+ esc(can, appear, outside, strings, ^z, \\012\\015\\n)\n\
|
|||
|
+ But(parenthesis, should, match);\n\
|
|||
|
+ We(\"have a funny way of specifying \\012 chars and even)\"); \n\
|
|||
|
+ backslashes( \" \\\\ \");\n\
|
|||
|
+ new(\"in this version are ^m and ^A ctr-escapes, as in ^S^Q\");\n\
|
|||
|
+ The(next, line, will, give, a, syntax, error, because, it, has, two, adj, functions,\n\
|
|||
|
+ without, a, separating, semicolon);\n\
|
|||
|
End() script()";
|
|||
|
|
|||
|
printf("------ String to parse: \n%s\n\n---- Parsing begins:\n", input_str);
|
|||
|
--- seyon-2.20c.orig/SeSet.c
|
|||
|
+++ seyon-2.20c/SeSet.c
|
|||
|
@@ -18,6 +18,9 @@
|
|||
|
|
|||
|
#include "seyon.h"
|
|||
|
#include "SeDecl.h"
|
|||
|
+#if HAVE_TERMIOS
|
|||
|
+#include <termios.h>
|
|||
|
+#endif
|
|||
|
|
|||
|
extern int param_pipe[2];
|
|||
|
|
|||
|
@@ -84,6 +87,13 @@
|
|||
|
{"baud", {"300", "1200", "2400", "4800", "9600", "19200", "38400",
|
|||
|
#if USE_NONSTD_BAUD
|
|||
|
"57600", "115200",
|
|||
|
+#else
|
|||
|
+#ifdef B57600
|
|||
|
+ "57600",
|
|||
|
+#endif
|
|||
|
+#ifdef B115200
|
|||
|
+ "115200",
|
|||
|
+#endif
|
|||
|
#endif
|
|||
|
NULL}, 1, MenuSetGetBaud},
|
|||
|
{"bits", {"5", "6", "7", "8", NULL}, 1, MenuSetGetCSize},
|
|||
|
@@ -191,7 +201,7 @@
|
|||
|
struct _setValue *vptr;
|
|||
|
|
|||
|
vptr = set_value;
|
|||
|
- strcpy(vptr->value, modem_port);
|
|||
|
+ strncpy(vptr->value, modem_port, SM_BUF);
|
|||
|
vptr++;
|
|||
|
|
|||
|
curValObjPtr = (vptr = (struct _setValue *)client_data);
|
|||
|
--- seyon-2.20c.orig/startup
|
|||
|
+++ seyon-2.20c/startup
|
|||
|
@@ -4,30 +4,30 @@
|
|||
|
# see the manual page for a complete listing of the keywords
|
|||
|
# that can be used with 'set'.
|
|||
|
|
|||
|
-# set baud 9600
|
|||
|
+set baud 57600
|
|||
|
|
|||
|
# can be 5, 6, 7, or 8
|
|||
|
-# set bits 8
|
|||
|
+set bits 8
|
|||
|
|
|||
|
# can be 0 (= no parity), 1 (= odd parity), or 2 (= even parity)
|
|||
|
# set parity 0
|
|||
|
|
|||
|
# can be 1 or 2
|
|||
|
-# set stopBits 1
|
|||
|
+set stopBits 1
|
|||
|
|
|||
|
# can be nl, cr, or cr/lf
|
|||
|
# set newlineTranslation cr
|
|||
|
|
|||
|
-# set del on
|
|||
|
-# set meta_tr on
|
|||
|
-# set xoff off
|
|||
|
-# set rtscts on
|
|||
|
-# set autozm on
|
|||
|
+set del on
|
|||
|
+set meta_tr on
|
|||
|
+set xoff off
|
|||
|
+set rtscts on
|
|||
|
+set autozm on
|
|||
|
# set idleGuard on
|
|||
|
|
|||
|
# put the modem initialization string here if you like one.
|
|||
|
# most modern modems do not need it since they store their setup in
|
|||
|
# non-volatile memory.
|
|||
|
|
|||
|
-# echo "Initializing modem..."
|
|||
|
-# transmit "ATZ^M"
|
|||
|
+echo "Initializing modem..."
|
|||
|
+transmit "ATM0^M"
|
|||
|
--- seyon-2.20c.orig/debian/po/POTFILES.in
|
|||
|
+++ seyon-2.20c/debian/po/POTFILES.in
|
|||
|
@@ -0,0 +1 @@
|
|||
|
+[type: gettext/rfc822deb] templates
|
|||
|
--- seyon-2.20c.orig/debian/po/fr.po
|
|||
|
+++ seyon-2.20c/debian/po/fr.po
|
|||
|
@@ -0,0 +1,49 @@
|
|||
|
+#
|
|||
|
+# Translators, if you are not familiar with the PO format, gettext
|
|||
|
+# documentation is worth reading, especially sections dedicated to
|
|||
|
+# this format, e.g. by running:
|
|||
|
+# info -n '(gettext)PO Files'
|
|||
|
+# info -n '(gettext)Header Entry'
|
|||
|
+#
|
|||
|
+# Some information specific to po-debconf are available at
|
|||
|
+# /usr/share/doc/po-debconf/README-trans
|
|||
|
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
|||
|
+#
|
|||
|
+# Developers do not need to manually edit POT or PO files.
|
|||
|
+#
|
|||
|
+msgid ""
|
|||
|
+msgstr ""
|
|||
|
+"Project-Id-Version: seyon 2.20c-12\n"
|
|||
|
+"POT-Creation-Date: 2003-10-13 02:02+0100\n"
|
|||
|
+"PO-Revision-Date: 2003-10-16 23:41+0100\n"
|
|||
|
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
|
|||
|
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
|
|||
|
+"MIME-Version: 1.0\n"
|
|||
|
+"Content-Type: text/plain; charset=iso-8859-15\n"
|
|||
|
+"Content-Transfer-Encoding: 8bit\n"
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid "Modem device"
|
|||
|
+msgstr "P<>riph<70>rique du modem"
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"Please choose the device file corresponding to the port the modem is "
|
|||
|
+"connected to. This may be /dev/ttyS1 or any other device file."
|
|||
|
+msgstr ""
|
|||
|
+"Veuillez choisir le fichier de p<>riph<70>rique correspondant au port o<> est "
|
|||
|
+"connect<63> le modem. Cela peut <20>tre /dev/ttyS1 ou tout autre fichier de "
|
|||
|
+"p<>riph<70>rique."
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"/dev/modem is usually a symbolic link to the appropriate device file. This "
|
|||
|
+"configuration program will not setup this link. If you choose \"/dev/modem"
|
|||
|
+"\", the link should already exist."
|
|||
|
+msgstr ""
|
|||
|
+"/dev/modem est g<>n<EFBFBD>ralement un lien symbolique vers le fichier de "
|
|||
|
+"p<>riph<70>rique correct. Ce programme de configuration n'<27>tablira pas ce lien. "
|
|||
|
+"Si vous indiquez <20><>/dev/modem<65><6D>, il faudrait que le lien existe au pr<70>alable."
|
|||
|
--- seyon-2.20c.orig/debian/po/nl.po
|
|||
|
+++ seyon-2.20c/debian/po/nl.po
|
|||
|
@@ -0,0 +1,50 @@
|
|||
|
+#
|
|||
|
+# Translators, if you are not familiar with the PO format, gettext
|
|||
|
+# documentation is worth reading, especially sections dedicated to
|
|||
|
+# this format, e.g. by running:
|
|||
|
+# info -n '(gettext)PO Files'
|
|||
|
+# info -n '(gettext)Header Entry'
|
|||
|
+#
|
|||
|
+# Some information specific to po-debconf are available at
|
|||
|
+# /usr/share/doc/po-debconf/README-trans
|
|||
|
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
|||
|
+#
|
|||
|
+# Developers do not need to manually edit POT or PO files.
|
|||
|
+#
|
|||
|
+#, fuzzy
|
|||
|
+msgid ""
|
|||
|
+msgstr ""
|
|||
|
+"Project-Id-Version: seyon2.20c-12 \n"
|
|||
|
+"Report-Msgid-Bugs-To: \n"
|
|||
|
+"POT-Creation-Date: 2003-07-21 16:50+0200\n"
|
|||
|
+"PO-Revision-Date: 2003-09-07 17:46+0100\n"
|
|||
|
+"Last-Translator: Tim Vandermeersch <qber66@skolelinux.no>\n"
|
|||
|
+"Language-Team: dutch <debian-l10n-dutch@lists.debian.org>\n"
|
|||
|
+"MIME-Version: 1.0\n"
|
|||
|
+"Content-Type: text/plain; charset=iso-8859-1\n"
|
|||
|
+"Content-Transfer-Encoding: 8bit\n"
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid "Modem device"
|
|||
|
+msgstr "Modem apparaat"
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"Please choose the device file corresponding to the port the modem is "
|
|||
|
+"connected to. This may be /dev/ttyS1 or any other device file."
|
|||
|
+msgstr ""
|
|||
|
+"Gelieve het overeenkomstige apparaat bestand te kiezen van de poort waar de "
|
|||
|
+"modem met verbonden is. Dit kan /dev/ttyS1 of een ander apparaat bestand zijn."
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"/dev/modem is usually a symbolic link to the appropriate device file. This "
|
|||
|
+"configuration program will not setup this link. If you choose \"/dev/modem"
|
|||
|
+"\", the link should already exist."
|
|||
|
+msgstr ""
|
|||
|
+"/dev/modem is meestal een symbolische link naar het correcte apparaat bestand."
|
|||
|
+"Dit configuratie programma zal deze link niet cre<72>ren. Als u \"/dev/modem\""
|
|||
|
+"kiest, dient deze link al te bestaan."
|
|||
|
--- seyon-2.20c.orig/debian/po/templates.pot
|
|||
|
+++ seyon-2.20c/debian/po/templates.pot
|
|||
|
@@ -0,0 +1,45 @@
|
|||
|
+#
|
|||
|
+# Translators, if you are not familiar with the PO format, gettext
|
|||
|
+# documentation is worth reading, especially sections dedicated to
|
|||
|
+# this format, e.g. by running:
|
|||
|
+# info -n '(gettext)PO Files'
|
|||
|
+# info -n '(gettext)Header Entry'
|
|||
|
+#
|
|||
|
+# Some information specific to po-debconf are available at
|
|||
|
+# /usr/share/doc/po-debconf/README-trans
|
|||
|
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
|||
|
+#
|
|||
|
+# Developers do not need to manually edit POT or PO files.
|
|||
|
+#
|
|||
|
+#, fuzzy
|
|||
|
+msgid ""
|
|||
|
+msgstr ""
|
|||
|
+"Project-Id-Version: PACKAGE VERSION\n"
|
|||
|
+"Report-Msgid-Bugs-To: \n"
|
|||
|
+"POT-Creation-Date: 2003-10-13 02:02+0100\n"
|
|||
|
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|||
|
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|||
|
+"Language-Team: LANGUAGE <LL@li.org>\n"
|
|||
|
+"MIME-Version: 1.0\n"
|
|||
|
+"Content-Type: text/plain; charset=CHARSET\n"
|
|||
|
+"Content-Transfer-Encoding: 8bit\n"
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid "Modem device"
|
|||
|
+msgstr ""
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"Please choose the device file corresponding to the port the modem is "
|
|||
|
+"connected to. This may be /dev/ttyS1 or any other device file."
|
|||
|
+msgstr ""
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"/dev/modem is usually a symbolic link to the appropriate device file. This "
|
|||
|
+"configuration program will not setup this link. If you choose \"/dev/modem"
|
|||
|
+"\", the link should already exist."
|
|||
|
+msgstr ""
|
|||
|
--- seyon-2.20c.orig/debian/po/cs.po
|
|||
|
+++ seyon-2.20c/debian/po/cs.po
|
|||
|
@@ -0,0 +1,49 @@
|
|||
|
+#
|
|||
|
+# Translators, if you are not familiar with the PO format, gettext
|
|||
|
+# documentation is worth reading, especially sections dedicated to
|
|||
|
+# this format, e.g. by running:
|
|||
|
+# info -n '(gettext)PO Files'
|
|||
|
+# info -n '(gettext)Header Entry'
|
|||
|
+#
|
|||
|
+# Some information specific to po-debconf are available at
|
|||
|
+# /usr/share/doc/po-debconf/README-trans
|
|||
|
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
|
|||
|
+#
|
|||
|
+# Developers do not need to manually edit POT or PO files.
|
|||
|
+#
|
|||
|
+msgid ""
|
|||
|
+msgstr ""
|
|||
|
+"Project-Id-Version: seyon\n"
|
|||
|
+"Report-Msgid-Bugs-To: \n"
|
|||
|
+"POT-Creation-Date: 2003-10-13 02:02+0100\n"
|
|||
|
+"PO-Revision-Date: 2004-12-31 11:57+0100\n"
|
|||
|
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
|
|||
|
+"Language-Team: Czech <provoz@debian.cz>\n"
|
|||
|
+"MIME-Version: 1.0\n"
|
|||
|
+"Content-Type: text/plain; charset=ISO-8859-2\n"
|
|||
|
+"Content-Transfer-Encoding: 8bit\n"
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid "Modem device"
|
|||
|
+msgstr "Za<5A><61>zen<65> modemu"
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"Please choose the device file corresponding to the port the modem is "
|
|||
|
+"connected to. This may be /dev/ttyS1 or any other device file."
|
|||
|
+msgstr ""
|
|||
|
+"Vyberte soubor za<7A><61>zen<65>, kter<65> odpov<6F>d<EFBFBD> portu, ke kter<65>mu je modem p<>ipojen. "
|
|||
|
+"M<><4D>e to b<>t /dev/ttyS1, nebo n<>jak<61> jin<69> soubor za<7A><61>zen<65>."
|
|||
|
+
|
|||
|
+#. Description
|
|||
|
+#: ../templates:4
|
|||
|
+msgid ""
|
|||
|
+"/dev/modem is usually a symbolic link to the appropriate device file. This "
|
|||
|
+"configuration program will not setup this link. If you choose \"/dev/modem"
|
|||
|
+"\", the link should already exist."
|
|||
|
+msgstr ""
|
|||
|
+"/dev/modem <20>asto b<>v<EFBFBD> symbolick<63>m odkazem na p<><70>slu<6C>n<EFBFBD> soubor za<7A><61>zen<65>. "
|
|||
|
+"Tento konfigura<72>n<EFBFBD> program zm<7A>n<EFBFBD>n<EFBFBD> odkaz nevytv<74><76><EFBFBD>. Zad<61>te-li tedy \"/dev/"
|
|||
|
+"modem\", m<>l by odkaz ji<6A> existovat."
|
|||
|
--- seyon-2.20c.orig/debian/conffiles
|
|||
|
+++ seyon-2.20c/debian/conffiles
|
|||
|
@@ -0,0 +1,2 @@
|
|||
|
+/etc/X11/app-defaults/Seyon
|
|||
|
+/etc/X11/app-defaults/Seyon-color
|
|||
|
--- seyon-2.20c.orig/debian/config.include
|
|||
|
+++ seyon-2.20c/debian/config.include
|
|||
|
@@ -0,0 +1,84 @@
|
|||
|
+# Edit this file to configure debian/rules to build a package.
|
|||
|
+# No modification of debian/rules should be neccessary. (Famous last words!)
|
|||
|
+#
|
|||
|
+# File by Joey Hess <joeyh@master.debian.org>
|
|||
|
+
|
|||
|
+# What is the name of the primary package in this sourcepackage?
|
|||
|
+package=seyon
|
|||
|
+
|
|||
|
+# Parameters to pass to rules file. This can include doc files, or
|
|||
|
+# command-line switches.
|
|||
|
+docs=1-{BUGREPORT,FAQ,HISTORY,README,SURVEY,TODO}
|
|||
|
+examples=phonelist protocols startup
|
|||
|
+binfiles=$(package)
|
|||
|
+copyright=debian/copyright
|
|||
|
+
|
|||
|
+# What file must exist in the current directory if the package is
|
|||
|
+# properly unpacked here?
|
|||
|
+test_file=$(package).h
|
|||
|
+
|
|||
|
+# Does this package build from an Imakefile?
|
|||
|
+# If so, uncomment the line below.
|
|||
|
+use_imakefile=y
|
|||
|
+
|
|||
|
+# Does this package build from a Configure script?
|
|||
|
+# If so, uncomment the line below and enter the command to run to run the
|
|||
|
+# Configure script (ie: "./Configure")
|
|||
|
+#use_configure=./Configure
|
|||
|
+
|
|||
|
+# What commands to run to build the package?
|
|||
|
+define build_command
|
|||
|
+ $(MAKE)
|
|||
|
+endef
|
|||
|
+
|
|||
|
+# What commands to run to clean up after a build?
|
|||
|
+define clean_command
|
|||
|
+ -$(MAKE) -i clean
|
|||
|
+endef
|
|||
|
+
|
|||
|
+# List here any files that must be removed during "debian/rules clean"
|
|||
|
+# that clean_command doesn't take care of.
|
|||
|
+clean_files=
|
|||
|
+
|
|||
|
+# List here any temporary directories that are used to build multiple-
|
|||
|
+# binary packages. These are automatically created and removed.
|
|||
|
+tmp_dirs=
|
|||
|
+
|
|||
|
+# List here any files that should be preserved during a build, and restored
|
|||
|
+# to their original state during a clean. For example, if the package comes
|
|||
|
+# with both an Imakefile and a Makefile, and xmkmf is run, list the original
|
|||
|
+# Makefile here so it will be backed up before it is overwritten my xmkmf.
|
|||
|
+preserve_files=Makefile
|
|||
|
+
|
|||
|
+# What command to run to install the package into debian/tmp?
|
|||
|
+# You might want to edit the package's Makefile and add $(PREFIX)
|
|||
|
+# to all the paths it installs files to. or, you can just write
|
|||
|
+# your own install commands here instead.
|
|||
|
+#
|
|||
|
+# Note that debian/* and the files in /usr/share/doc will be installed
|
|||
|
+# properly for you, you don't need to do that here.
|
|||
|
+#
|
|||
|
+define install_command
|
|||
|
+ $(MAKE) DESTDIR=debian/tmp install
|
|||
|
+ install -d debian/tmp/etc/X11/seyon
|
|||
|
+ ln -sf /etc/X11/seyon/seyon-emu debian/tmp/usr/X11R6/bin/seyon-emu
|
|||
|
+ install -d debian/tmp/usr/X11R6/man/man1
|
|||
|
+ install -m 644 seyon.man debian/tmp/usr/X11R6/man/man1/seyon.1x
|
|||
|
+ install -m 644 debian/seyon-emu.man debian/tmp/usr/X11R6/man/man1/seyon-emu.1x
|
|||
|
+ # Install 1-CHANGES as upstream changelog.
|
|||
|
+ install -d debian/tmp/usr/share/doc/$(package)
|
|||
|
+ cp 1-CHANGES debian/tmp/usr/share/doc/$(package)/changelog
|
|||
|
+ strip --remove-section=.comment --remove-section=.note debian/tmp/usr/X11R6/bin/seyon
|
|||
|
+ install -d debian/tmp/usr/lib/menu
|
|||
|
+ install -m 644 debian/menu debian/tmp/usr/lib/menu/seyon
|
|||
|
+endef
|
|||
|
+
|
|||
|
+# After being installed in debian/tmp, everything is chowned to root.root,
|
|||
|
+# and chmod g-ws is run on everything. Enter below any chmod commands you
|
|||
|
+# need to run to set files to the proper permissions. This is where you
|
|||
|
+# can make programs be suid, etc.
|
|||
|
+# (Note that these commands will be run as root.)
|
|||
|
+define ch_commands
|
|||
|
+ chmod 644 debian/tmp/etc/X11/app-defaults/*
|
|||
|
+ chmod 644 debian/tmp/usr/X11R6/lib/X11/seyon.help
|
|||
|
+endef
|
|||
|
--- seyon-2.20c.orig/debian/copyright
|
|||
|
+++ seyon-2.20c/debian/copyright
|
|||
|
@@ -0,0 +1,46 @@
|
|||
|
+This is a Debian prepackaged version of seyon.
|
|||
|
+
|
|||
|
+This package was originally put together by Joey Hess
|
|||
|
+<joeyh@master.debian.org>, using sources from:
|
|||
|
+
|
|||
|
+ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm/dialout/Seyon-2.14c-tar.gz
|
|||
|
+
|
|||
|
+The following copyright applied to the old package:
|
|||
|
+
|
|||
|
+======================================================================
|
|||
|
+
|
|||
|
+ Seyon is Copyright (c) 1992 of Muhammad M. Saggaf. Seyon is not
|
|||
|
+ public domain. Permission is granted to use and distribute Seyon
|
|||
|
+ freely for any use and to sell it at any price without reference to
|
|||
|
+ the copyright owner provided that in all above cases Seyon is intact
|
|||
|
+ and is not made part of any program either in whole or in part and
|
|||
|
+ that this copyright notice is included with Seyon. Permission is
|
|||
|
+ also granted to modify the source as long as the modified source is
|
|||
|
+ not distributed.
|
|||
|
+
|
|||
|
+======================================================================
|
|||
|
+
|
|||
|
+As of May 1999, Muhammad M. Saggaf has given permission for seyon to
|
|||
|
+be released and maintained under GPL (see
|
|||
|
+/usr/share/common-licenses/GPL):
|
|||
|
+
|
|||
|
+Dear Steve:
|
|||
|
+
|
|||
|
+I received your letter today (yes, I know it took a long time, it took a
|
|||
|
+trip half-way around the world and then back to my current address in the
|
|||
|
+U.S.). I share your view about license for Seyon, I think it is too
|
|||
|
+restrictive, especially that I'm not actively maintaining it. The purpose
|
|||
|
+behind that restriction was to prevent incompatible versions, really, but I
|
|||
|
+don't think it was the correct way of doing that. You have my permission to
|
|||
|
+modify the license (e.g. the GPL is just fine) and distribute the package
|
|||
|
+with the new license.
|
|||
|
+
|
|||
|
+My very best wishes,
|
|||
|
+
|
|||
|
+-- M. Saggaf
|
|||
|
+ msaggaf@erl.mit.edu
|
|||
|
+
|
|||
|
+For now I am the new upstream maintainer as well as the Debian
|
|||
|
+maintainer for the seyon package. Upstream sources without the Debian
|
|||
|
+patches will be made available shortly from sunsite.unc.edu (now
|
|||
|
+better known as metalab.unc.edu), as above.
|
|||
|
--- seyon-2.20c.orig/debian/examples
|
|||
|
+++ seyon-2.20c/debian/examples
|
|||
|
@@ -0,0 +1,7 @@
|
|||
|
+script.QWK
|
|||
|
+script.unix
|
|||
|
+script.CIS
|
|||
|
+script.PCBoard
|
|||
|
+startup
|
|||
|
+protocols
|
|||
|
+phonelist
|
|||
|
--- seyon-2.20c.orig/debian/postinst
|
|||
|
+++ seyon-2.20c/debian/postinst
|
|||
|
@@ -0,0 +1,27 @@
|
|||
|
+#!/bin/sh -e
|
|||
|
+
|
|||
|
+case "$1" in
|
|||
|
+ abort-upgrade|abort-remove|abort-deconfigure)
|
|||
|
+ exit 0;; # Don't prompt for configuration if something went wrong...
|
|||
|
+esac
|
|||
|
+
|
|||
|
+if test -x /usr/bin/update-menus; then update-menus; fi
|
|||
|
+
|
|||
|
+EMU=/etc/X11/seyon/seyon-emu
|
|||
|
+COLORDEFAULTS=/etc/X11/seyon/Seyon
|
|||
|
+MODEMDEFAULTS=/etc/X11/seyon/Seyon-modem
|
|||
|
+
|
|||
|
+. /usr/share/debconf/confmodule
|
|||
|
+db_version 2.0
|
|||
|
+
|
|||
|
+if [ ! -f $COLORDEFAULTS -o ! -f $MODEMDEFAULTS ]; then
|
|||
|
+
|
|||
|
+ # No longer need to worry about colour/mono app-defaults any more; the
|
|||
|
+ # system will get it right...
|
|||
|
+
|
|||
|
+ ln -sf /usr/bin/x-terminal-emulator $EMU
|
|||
|
+
|
|||
|
+fi
|
|||
|
+exit 0
|
|||
|
+
|
|||
|
+#DEBHELPER#
|
|||
|
--- seyon-2.20c.orig/debian/postrm
|
|||
|
+++ seyon-2.20c/debian/postrm
|
|||
|
@@ -0,0 +1,21 @@
|
|||
|
+#!/bin/sh -e
|
|||
|
+
|
|||
|
+if test -x /usr/bin/update-menus; then update-menus; fi
|
|||
|
+
|
|||
|
+XTERM=/etc/X11/seyon/seyon-emu
|
|||
|
+COLORDEFAULTS=/etc/X11/seyon/Seyon
|
|||
|
+MODEMDEFAULTS=/etc/X11/seyon/Seyon-modem
|
|||
|
+
|
|||
|
+if [ "$1" = "purge" ]
|
|||
|
+then
|
|||
|
+ rm -f $XTERM $COLORDEFAULTS $MODEMDEFAULTS
|
|||
|
+ rmdir /etc/X11/seyon /etc/X11 2>/dev/null || true
|
|||
|
+
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+
|
|||
|
+ db_purge
|
|||
|
+
|
|||
|
+
|
|||
|
+fi
|
|||
|
+
|
|||
|
+#DEBHELPER#
|
|||
|
--- seyon-2.20c.orig/debian/postrm.debhelper
|
|||
|
+++ seyon-2.20c/debian/postrm.debhelper
|
|||
|
@@ -0,0 +1,78 @@
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
+# Automatically added by dh_installdebconf
|
|||
|
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
|||
|
+ . /usr/share/debconf/confmodule
|
|||
|
+ db_purge
|
|||
|
+fi
|
|||
|
+# End automatically added section
|
|||
|
--- seyon-2.20c.orig/debian/preinst
|
|||
|
+++ seyon-2.20c/debian/preinst
|
|||
|
@@ -0,0 +1,15 @@
|
|||
|
+#! /bin/sh
|
|||
|
+# see: dh_installdeb(1)
|
|||
|
+
|
|||
|
+set -e
|
|||
|
+
|
|||
|
+# Source debconf library
|
|||
|
+. /usr/share/debconf/confmodule
|
|||
|
+
|
|||
|
+# dh_installdeb will replace this with shell code automatically
|
|||
|
+# generated by other debhelper scripts.
|
|||
|
+
|
|||
|
+#DEBHELPER#
|
|||
|
+
|
|||
|
+
|
|||
|
+
|
|||
|
--- seyon-2.20c.orig/debian/rules
|
|||
|
+++ seyon-2.20c/debian/rules
|
|||
|
@@ -0,0 +1,143 @@
|
|||
|
+#!/usr/bin/make -f
|
|||
|
+##############################################################################
|
|||
|
+# Generic debian/rules file. Based on:
|
|||
|
+#
|
|||
|
+#> Sample debian.rules file - for GNU Hello (1.3).
|
|||
|
+#> Copyright 1994,1995 by Ian Jackson.
|
|||
|
+#> I hereby give you perpetual unlimited permission to copy,
|
|||
|
+#> modify and relicense this file, provided that you do not remove
|
|||
|
+#> my name from the file itself. (I assert my moral right of
|
|||
|
+#> paternity under the Copyright, Designs and Patents Act 1988.)
|
|||
|
+#
|
|||
|
+# Heavily modified by Joey Hess <jeh22@cornell.edu>
|
|||
|
+#
|
|||
|
+##############################################################################
|
|||
|
+#
|
|||
|
+# NOTE: You shouldn't have to edit this file. Edit debian/config.include instead.
|
|||
|
+# If you must edit this file to get your package to build properly, then
|
|||
|
+# I have failed. Let me know; mail jeh22@cornell.edu.
|
|||
|
+#
|
|||
|
+# (Currently not handled: multiple binary packages from 1 source package,
|
|||
|
+# and binary-indep rule.)
|
|||
|
+#
|
|||
|
+# NOTE: This file is designed so it doesn't need to be run as root. For
|
|||
|
+# actions that require that the user be root, the root password will be
|
|||
|
+# prompted for, if you're not already root.
|
|||
|
+#
|
|||
|
+##############################################################################
|
|||
|
+
|
|||
|
+# Include config file.
|
|||
|
+include debian/config.include
|
|||
|
+
|
|||
|
+# Generate a makefile (via configure scriopt or xmkmf).
|
|||
|
+makefile-stamp:
|
|||
|
+ ifeq ($(strip $(use_imakefile)),y)
|
|||
|
+ xmkmf -a
|
|||
|
+ endif
|
|||
|
+ $(use_configure)
|
|||
|
+ touch makefile-stamp
|
|||
|
+
|
|||
|
+# Preserve some files that may get deleted/overwritten/modified otherwise.
|
|||
|
+preserve-stamp:
|
|||
|
+ ifneq ($(strip $(preserve_files)),)
|
|||
|
+ $(foreach file,$(preserve_files),-cp $(file) $(file).preserved)
|
|||
|
+ endif
|
|||
|
+ touch preserve-stamp
|
|||
|
+
|
|||
|
+build: preserve-stamp makefile-stamp
|
|||
|
+ $(checkdir)
|
|||
|
+ $(build_command)
|
|||
|
+ touch build
|
|||
|
+
|
|||
|
+clean: preserve-stamp makefile-stamp
|
|||
|
+ $(checkdir)
|
|||
|
+ # Do actual cleaning up here.
|
|||
|
+ -rm -f build
|
|||
|
+ $(clean_command)
|
|||
|
+ -rm -rf *~ debian/*~ debian/files* $(clean_files)
|
|||
|
+ $(clean_tmp)
|
|||
|
+ # Remove Makefile that xmkmf creates.
|
|||
|
+ ifeq ($(strip $(use_imakefile)),y)
|
|||
|
+ -rm -f Makefile
|
|||
|
+ endif
|
|||
|
+ # If we preserved some files, we need to restore them now.
|
|||
|
+ ifneq ($(strip $(preserve_files)),)
|
|||
|
+ $(foreach file,$(preserve_files),-mv -f $(file).preserved $(file))
|
|||
|
+ endif
|
|||
|
+ -rm -f preserve-stamp makefile-stamp
|
|||
|
+
|
|||
|
+# Build architecture-independent files here.
|
|||
|
+# (not yet set up to be used)
|
|||
|
+binary-indep: build
|
|||
|
+ $(checkdir)
|
|||
|
+
|
|||
|
+# Build architecture-dependent files here.
|
|||
|
+binary-arch: build
|
|||
|
+ $(checkdir)
|
|||
|
+ $(clean_tmp)
|
|||
|
+ install -d debian/tmp debian/tmp/DEBIAN debian/tmp/usr/share/doc/$(package)
|
|||
|
+ $(install_command)
|
|||
|
+ # Compress manpages
|
|||
|
+ -gzip -9v -r debian/tmp/usr/man/ debian/tmp/usr/X11R6/man/
|
|||
|
+ # Install documentation files, compressed.
|
|||
|
+ ifneq ($(strip $(docs)),)
|
|||
|
+ cp $(docs) debian/tmp/usr/share/doc/$(package)
|
|||
|
+ gzip -9v debian/tmp/usr/share/doc/$(package)/*
|
|||
|
+ endif
|
|||
|
+ # Install copyright file, don't compress.
|
|||
|
+ ifneq ($(strip $(copyright)),)
|
|||
|
+ cp $(copyright) debian/tmp/usr/share/doc/$(package)/copyright
|
|||
|
+ endif
|
|||
|
+ # Install examples, compressed.
|
|||
|
+ ifneq ($(strip $(examples)),)
|
|||
|
+ install -d debian/tmp/usr/share/doc/$(package)/examples
|
|||
|
+ cp $(examples) debian/tmp/usr/share/doc/$(package)/examples
|
|||
|
+ gzip -9v debian/tmp/usr/share/doc/$(package)/examples/*
|
|||
|
+ endif
|
|||
|
+ # Install other debian files if they exist.
|
|||
|
+ -install -m 644 debian/changelog debian/tmp/usr/share/doc/$(package)/changelog.Debian
|
|||
|
+ -gzip -9v debian/tmp/usr/share/doc/$(package)/changelog.Debian
|
|||
|
+ -install -m 644 debian/conffiles debian/tmp/DEBIAN/conffiles
|
|||
|
+ -install -m 755 debian/preinst debian/tmp/DEBIAN/preinst
|
|||
|
+ -install -m 755 debian/postinst debian/tmp/DEBIAN/postinst
|
|||
|
+ -install -m 755 debian/prerm debian/tmp/DEBIAN/prerm
|
|||
|
+ -install -m 755 debian/postrm debian/tmp/DEBIAN/postrm
|
|||
|
+ # Generate control file.
|
|||
|
+ dpkg-shlibdeps $(binfiles)
|
|||
|
+ dpkg-gencontrol -isp
|
|||
|
+ # Set permissions.
|
|||
|
+ @[ "`whoami`" != root ] && \
|
|||
|
+ echo -e "\n ** Enter root password to set file permissions."; \
|
|||
|
+ debian/rules setperms
|
|||
|
+ # C. Perrier. Well, debhelper helps a lot for all this..:-)
|
|||
|
+ # Install debconf templates (with debhelper)
|
|||
|
+ dh_installdebconf
|
|||
|
+ # Actually build the .deb file.
|
|||
|
+ dpkg --build debian/tmp ..
|
|||
|
+
|
|||
|
+# This must be run suid root, it sets the file permissions in debian/tmp
|
|||
|
+setperms:
|
|||
|
+ chown -R root.root debian/tmp
|
|||
|
+ chmod -R g-ws debian/tmp
|
|||
|
+ -$(ch_commands)
|
|||
|
+
|
|||
|
+define checkdir
|
|||
|
+ @test -f $(test_file) -a -f debian/rules || (echo -e "\n\
|
|||
|
+ ** \"$(test_file)\" or \"debian/rules\" does not exist.\n\
|
|||
|
+ ** Either \"$(package)\" is not unpacked in this directory, or\n\
|
|||
|
+ ** an incorrect test_file is specified in debian/config.\n" && false)
|
|||
|
+endef
|
|||
|
+
|
|||
|
+# This rm's the debian/tmp directory.
|
|||
|
+define clean_tmp
|
|||
|
+ -rm -rf debian/tmp >/dev/null 2>&1
|
|||
|
+ @if [ -d debian/tmp ]; then \
|
|||
|
+ if [ "`whoami`" != root ]; then \
|
|||
|
+ echo -e "\n ** Enter root password to remove debian/tmp."; \
|
|||
|
+ fi; \
|
|||
|
+ rm -rf debian/tmp; \
|
|||
|
+ fi
|
|||
|
+endef
|
|||
|
+
|
|||
|
+binary: binary-indep binary-arch
|
|||
|
+.PHONY: clean setperms binary
|
|||
|
--- seyon-2.20c.orig/debian/rules.old
|
|||
|
+++ seyon-2.20c/debian/rules.old
|
|||
|
@@ -0,0 +1,136 @@
|
|||
|
+#!/usr/bin/make -f
|
|||
|
+##############################################################################
|
|||
|
+# Generic debian/rules file. Based on:
|
|||
|
+#
|
|||
|
+#> Sample debian.rules file - for GNU Hello (1.3).
|
|||
|
+#> Copyright 1994,1995 by Ian Jackson.
|
|||
|
+#> I hereby give you perpetual unlimited permission to copy,
|
|||
|
+#> modify and relicense this file, provided that you do not remove
|
|||
|
+#> my name from the file itself. (I assert my moral right of
|
|||
|
+#> paternity under the Copyright, Designs and Patents Act 1988.)
|
|||
|
+#
|
|||
|
+# Heavily modified by Joey Hess <joeyh@master.debian.org>
|
|||
|
+#
|
|||
|
+##############################################################################
|
|||
|
+#
|
|||
|
+# NOTE: You shouldn't have to edit this file. Edit debian/config instead.
|
|||
|
+# If you must edit this file to get your package to build properly, then
|
|||
|
+# I have failed. Let me know; mail me.
|
|||
|
+#
|
|||
|
+# (Currently not handled: multiple binary packages from 1 source package,
|
|||
|
+# and binary-indep rule.)
|
|||
|
+#
|
|||
|
+# NOTE: This file is designed so it doesn't need to be run as root. For
|
|||
|
+# actions that require that the user be root, the root password will be
|
|||
|
+# prompted for, if you're not already root.
|
|||
|
+#
|
|||
|
+##############################################################################
|
|||
|
+#
|
|||
|
+# Changelog:
|
|||
|
+# * Fakeroot and sudo fixes.
|
|||
|
+# * Run dpkg-gencontrol after debstd, and delete substvars during clean.
|
|||
|
+# * Clean up junk files in subdirs.
|
|||
|
+# * Modifications for multiple binary package support.
|
|||
|
+# * Call debstd after fixing file perms.
|
|||
|
+# * Don't pass package name to debstd + fixes for multi binary packages.
|
|||
|
+# * Use build-stamp instead of build.
|
|||
|
+# * New email address.
|
|||
|
+# * Added changelog.
|
|||
|
+#
|
|||
|
+##############################################################################
|
|||
|
+
|
|||
|
+# Include config file.
|
|||
|
+include debian/config
|
|||
|
+
|
|||
|
+# Generate a makefile (via configure scriopt or xmkmf).
|
|||
|
+makefile-stamp:
|
|||
|
+ ifeq ($(strip $(use_imakefile)),y)
|
|||
|
+ xmkmf -a
|
|||
|
+ endif
|
|||
|
+ $(use_configure)
|
|||
|
+ touch makefile-stamp
|
|||
|
+
|
|||
|
+# Preserve some files that may get deleted/overwritten/modified otherwise.
|
|||
|
+preserve-stamp:
|
|||
|
+ ifneq ($(strip $(preserve_files)),)
|
|||
|
+ $(foreach file,$(preserve_files),cp $(file) $(file).preserved ;)
|
|||
|
+ endif
|
|||
|
+ touch preserve-stamp
|
|||
|
+
|
|||
|
+build-stamp: preserve-stamp makefile-stamp
|
|||
|
+ $(checkdir)
|
|||
|
+ $(build_command)
|
|||
|
+ touch build-stamp
|
|||
|
+
|
|||
|
+build: build-stamp
|
|||
|
+
|
|||
|
+clean: preserve-stamp makefile-stamp
|
|||
|
+ $(checkdir)
|
|||
|
+ # Do actual cleaning up here.
|
|||
|
+ -rm -f build-stamp
|
|||
|
+ $(clean_command)
|
|||
|
+ -find . -name '\#*\#' -o -name '*~' -o -name 'DEADJOE' -exec rm -f {} \;
|
|||
|
+ -rm -f debian/files* debian/substvars debian/*.substvars $(clean_files)
|
|||
|
+ $(clean_tmp)
|
|||
|
+ # Remove Makefile that xmkmf creates.
|
|||
|
+ ifeq ($(strip $(use_imakefile)),y)
|
|||
|
+ -rm -f Makefile
|
|||
|
+ endif
|
|||
|
+ # If we preserved some files, we need to restore them now.
|
|||
|
+ ifneq ($(strip $(preserve_files)),)
|
|||
|
+ $(foreach file,$(preserve_files),mv -f $(file).preserved $(file); )
|
|||
|
+ endif
|
|||
|
+ -rm -f preserve-stamp makefile-stamp
|
|||
|
+
|
|||
|
+# Build architecture-independent files here.
|
|||
|
+# (not yet set up to be used)
|
|||
|
+binary-indep: build
|
|||
|
+ $(checkdir)
|
|||
|
+
|
|||
|
+# Build architecture-dependent files here.
|
|||
|
+binary-arch: build
|
|||
|
+ $(checkdir)
|
|||
|
+ $(clean_tmp)
|
|||
|
+ $(install_command)
|
|||
|
+ # Set permissions and check package for problems, then build package.
|
|||
|
+ @if [ "`whoami`" != root ]; then \
|
|||
|
+ echo -e "\n ** Enter root password to set file permissions."; \
|
|||
|
+ sudo debian/rules setperms; \
|
|||
|
+ else \
|
|||
|
+ debian/rules setperms; \
|
|||
|
+ fi
|
|||
|
+
|
|||
|
+# This must be run suid root, it sets the file permissions in debian/tmp
|
|||
|
+setperms:
|
|||
|
+ chown -R root.root debian/tmp
|
|||
|
+ chmod -R g-ws debian/tmp
|
|||
|
+ # Debstd handles lots of nasty details. This requires that the debmake
|
|||
|
+ # package is installed.
|
|||
|
+ -debstd $(debstd) $(docs)
|
|||
|
+ dpkg-gencontrol -p$(package)
|
|||
|
+ $(ch_commands)
|
|||
|
+ dpkg --build debian/tmp ..
|
|||
|
+
|
|||
|
+define checkdir
|
|||
|
+ @test -e $(test_file) -a -f debian/rules || (echo -e "\n\
|
|||
|
+ ** \"$(test_file)\" or \"debian/rules\" does not exist.\n\
|
|||
|
+ ** Either the package is not unpacked in this directory, or\n\
|
|||
|
+ ** an incorrect test_file is specified in debian/config.\n" && false)
|
|||
|
+endef
|
|||
|
+
|
|||
|
+# This rm's the debian/tmp directory, and any other directories specified in
|
|||
|
+# tmpdirs
|
|||
|
+define clean_tmp
|
|||
|
+ -rm -rf debian/tmp >/dev/null 2>&1
|
|||
|
+ @if [ -d debian/tmp -o -n "$(tmp_dirs)" ]; then \
|
|||
|
+ if [ "`whoami`" != root ]; then \
|
|||
|
+ echo -e "\n ** Enter root password to remove temporary directories $(tmp_dirs)"; \
|
|||
|
+ sudo rm -rf debian/tmp $(tmp_dirs); \
|
|||
|
+ else \
|
|||
|
+ rm -rf debian/tmp $(tmp_dirs); \
|
|||
|
+ fi; \
|
|||
|
+ fi
|
|||
|
+endef
|
|||
|
+
|
|||
|
+binary: binary-indep binary-arch
|
|||
|
+.PHONY: clean setperms binary
|
|||
|
--- seyon-2.20c.orig/debian/seyon-emu.man
|
|||
|
+++ seyon-2.20c/debian/seyon-emu.man
|
|||
|
@@ -0,0 +1,23 @@
|
|||
|
+.TH SEYON 1 \" -*- nroff -*-
|
|||
|
+
|
|||
|
+.SH NAME
|
|||
|
+Seyon \- X11 Telecommunications Package.
|
|||
|
+
|
|||
|
+.SH SYNOPSIS
|
|||
|
+.B seyon-emu
|
|||
|
+
|
|||
|
+.SH DESCRIPTION
|
|||
|
+
|
|||
|
+.P
|
|||
|
+
|
|||
|
+\fISeyon-emu\fP is the name of the terminal-emulator program called by
|
|||
|
+\fIseyon\fP. This will normally simply be a symbolic link to another
|
|||
|
+program (such as \fIxterm\fP or \fIrxvt\fP). Therefore read the manual
|
|||
|
+page of the appropriate program for its options.
|
|||
|
+
|
|||
|
+.SH SEE ALSO
|
|||
|
+rxvt(1), xterm(1), seyon(1)
|
|||
|
+
|
|||
|
+This manual page added by Steve McIntyre <stevem@chiark.greenend.org.uk>,
|
|||
|
+Debian maintainer of seyon, 14th March 1998.
|
|||
|
+
|
|||
|
--- seyon-2.20c.orig/debian/substvars
|
|||
|
+++ seyon-2.20c/debian/substvars
|
|||
|
@@ -0,0 +1,2 @@
|
|||
|
+shlibs:Depends=libc6 (>= 2.3.2.ds1-4), libice6 | xlibs (>> 4.1.0), libsm6 | xlibs (>> 4.1.0), libx11-6 | xlibs (>> 4.1.0), libxaw7 (>> 4.1.0), libxext6 | xlibs (>> 4.1.0), libxmu6 | xlibs (>> 4.1.0), libxpm4 | xlibs (>> 4.1.0), libxt6 | xlibs (>> 4.1.0)
|
|||
|
+misc:Depends=debconf (>= 0.5) | debconf-2.0, debconf (>= 0.5)
|
|||
|
--- seyon-2.20c.orig/debian/templates
|
|||
|
+++ seyon-2.20c/debian/templates
|
|||
|
@@ -0,0 +1,10 @@
|
|||
|
+Template: seyon/device
|
|||
|
+Type: string
|
|||
|
+Default: /dev/modem
|
|||
|
+_Description: Modem device
|
|||
|
+ Please choose the device file corresponding to the port the modem is
|
|||
|
+ connected to. This may be /dev/ttyS1 or any other device file.
|
|||
|
+ .
|
|||
|
+ /dev/modem is usually a symbolic link to the appropriate device file.
|
|||
|
+ This configuration program will not setup this link. If you choose
|
|||
|
+ "/dev/modem", the link should already exist.
|
|||
|
--- seyon-2.20c.orig/debian/config
|
|||
|
+++ seyon-2.20c/debian/config
|
|||
|
@@ -0,0 +1,92 @@
|
|||
|
+#!/bin/sh -e
|
|||
|
+
|
|||
|
+# Some ideas stolen from the cvs package
|
|||
|
+
|
|||
|
+# Config script for seyon using debconf
|
|||
|
+. /usr/share/debconf/confmodule
|
|||
|
+db_version 2.0 || [ $? -lt 30 ]
|
|||
|
+
|
|||
|
+db_title "Seyon communication software"
|
|||
|
+
|
|||
|
+# Defaults
|
|||
|
+MODEMDEFAULTS=/etc/X11/seyon/Seyon-modem
|
|||
|
+DEFAULTPORT=/dev/modem
|
|||
|
+PORT=$DEFAULTPORT
|
|||
|
+
|
|||
|
+read_rcfile() {
|
|||
|
+ # Default values
|
|||
|
+ if [ -f $MODEMDEFAULTS ]; then
|
|||
|
+ PORT=`cat $MODEMDEFAULTS | grep -m1 "^seyon\*modems:" | cut -f2 -d: 2>/dev/null`
|
|||
|
+ fi
|
|||
|
+ if [ -z $PORT ] ; then
|
|||
|
+ PORT=$DEFAULTPORT
|
|||
|
+ fi
|
|||
|
+}
|
|||
|
+
|
|||
|
+write_rcfile() {
|
|||
|
+ TEMPFILE=`tempfile`
|
|||
|
+ if [ -f $MODEMDEFAULTS ]; then
|
|||
|
+ ESCAPEDPORT=`echo $PORT | sed 's/\//\\\\\//g'`
|
|||
|
+ sed "s/^seyon\*modems:.*$/seyon\*modems: ${ESCAPEDPORT}/" $MODEMDEFAULTS > $TEMPFILE
|
|||
|
+ chmod --reference=$MODEMDEFAULTS $TEMPFILE
|
|||
|
+ chown --reference=$MODEMDEFAULTS $TEMPFILE
|
|||
|
+ else
|
|||
|
+ echo "seyon*modems: $PORT" > $TEMPFILE
|
|||
|
+ chmod 640 $TEMPFILE
|
|||
|
+ chown root.dialout $TEMPFILE
|
|||
|
+ fi
|
|||
|
+ if [ ! -d /etc/X11/seyon ] ; then
|
|||
|
+ mkdir -p /etc/X11/seyon
|
|||
|
+ fi
|
|||
|
+ mv $TEMPFILE $MODEMDEFAULTS
|
|||
|
+}
|
|||
|
+
|
|||
|
+set_debconf() {
|
|||
|
+ if [ "$PORT" ]; then
|
|||
|
+ db_set seyon/device "$PORT" || true
|
|||
|
+ fi
|
|||
|
+}
|
|||
|
+
|
|||
|
+get_debconf() {
|
|||
|
+ db_get seyon/device
|
|||
|
+ PORT=$RET
|
|||
|
+ # If not present, use default
|
|||
|
+ if [ "$PORT" = "" ]
|
|||
|
+ then
|
|||
|
+ PORT=$DEFAULTPORT
|
|||
|
+ fi
|
|||
|
+}
|
|||
|
+
|
|||
|
+
|
|||
|
+input_settings() {
|
|||
|
+ db_input low seyon/device || true
|
|||
|
+ db_go
|
|||
|
+ db_get seyon/device
|
|||
|
+ PORT=$RET
|
|||
|
+ # If not present, use default
|
|||
|
+ if [ "$PORT" = "" ]
|
|||
|
+ then
|
|||
|
+ PORT=$DEFAULTPORT
|
|||
|
+ fi
|
|||
|
+}
|
|||
|
+
|
|||
|
+
|
|||
|
+## Main program
|
|||
|
+# We first read the settings file
|
|||
|
+# in order to get admin-modified settings
|
|||
|
+read_rcfile
|
|||
|
+# Debconf-stored values are updated accordingly
|
|||
|
+set_debconf
|
|||
|
+# They are re-read from Debconf
|
|||
|
+get_debconf
|
|||
|
+# In case the package has never been configured, the settings
|
|||
|
+# are asked through debconf
|
|||
|
+input_settings
|
|||
|
+# They are re-re-read from debconf
|
|||
|
+# for updating variables
|
|||
|
+get_debconf
|
|||
|
+# The settings file is written
|
|||
|
+write_rcfile
|
|||
|
+# Then we do some other stuff, which could sometimes lead to
|
|||
|
+# debconf showing screens
|
|||
|
+# This is why they are here and not in the postinst script
|
|||
|
--- seyon-2.20c.orig/debian/control
|
|||
|
+++ seyon-2.20c/debian/control
|
|||
|
@@ -0,0 +1,18 @@
|
|||
|
+Source: seyon
|
|||
|
+Section: comm
|
|||
|
+Priority: extra
|
|||
|
+Maintainer: Steve McIntyre <93sam@debian.org>
|
|||
|
+Standards-Version: 3.6.1.1
|
|||
|
+Build-Depends: xlibs-dev, xutils, libxaw7-dev | libxaw-dev, bison, debhelper (>= 4.1.16)
|
|||
|
+
|
|||
|
+Package: seyon
|
|||
|
+Architecture: any
|
|||
|
+Depends: ${shlibs:Depends}, xterm | x-terminal-emulator, debconf (>= 1.2.9)
|
|||
|
+Suggests: lrzsz, ckermit
|
|||
|
+Description: Full-featured native X11 communications program
|
|||
|
+ Seyon is a complete full-featured modem communications package
|
|||
|
+ for the X Window System. Some of its features are:
|
|||
|
+ - dialing directory
|
|||
|
+ - terminal emulation (DEC VT02, Tektronix 4014 and ANSI)
|
|||
|
+ - script language
|
|||
|
+ - Zmodem
|
|||
|
--- seyon-2.20c.orig/debian/menu
|
|||
|
+++ seyon-2.20c/debian/menu
|
|||
|
@@ -0,0 +1,3 @@
|
|||
|
+?package(seyon):needs="X11" section="Apps/Net" hints="Terminal" \
|
|||
|
+ title="Seyon" longtitle="Seyon communications program" \
|
|||
|
+ command="seyon"
|
|||
|
--- seyon-2.20c.orig/debian/prerm
|
|||
|
+++ seyon-2.20c/debian/prerm
|
|||
|
@@ -0,0 +1,10 @@
|
|||
|
+#!/bin/sh
|
|||
|
+
|
|||
|
+
|
|||
|
+PACKAGE=seyon
|
|||
|
+
|
|||
|
+if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/$PACKAGE ]; then
|
|||
|
+ rm -f /usr/doc/$PACKAGE
|
|||
|
+fi
|
|||
|
+
|
|||
|
+#DEBHELPER#
|
|||
|
--- seyon-2.20c.orig/debian/changelog
|
|||
|
+++ seyon-2.20c/debian/changelog
|
|||
|
@@ -0,0 +1,267 @@
|
|||
|
+seyon (2.20c-16) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Added Czech debconf template. Thanks to Miroslav Kure for the
|
|||
|
+ patch. Closes: #288019.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Mon, 03 Jan 2005 21:49:33 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-15) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Fix handling of /etc/X11/seyon/Seyon-modem on new
|
|||
|
+ installations. Closes: #275167. Thanks to Rob Epping for the patch.
|
|||
|
+ * Updated Standards-version and fixed some lintian warnings.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Mon, 25 Oct 2004 22:58:45 +0100
|
|||
|
+
|
|||
|
+seyon (2.20c-14) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Updated French debconf template. Thanks to Christian
|
|||
|
+ Perrier. Closes: #216159.
|
|||
|
+ * Added Dutch debconf template. Thanks to Tim Vandermeersch. Closes:
|
|||
|
+ #209081.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Sun, 02 Nov 2003 16:10:08 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-13) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Fixed typo in debian/templates. Closes: #209080
|
|||
|
+ * Update to use new serial speed interface for Linux. Closes: #206321.
|
|||
|
+ Thanks to Elrik Fuller for the patch.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Mon, 13 Oct 2003 02:00:51 +0100
|
|||
|
+
|
|||
|
+seyon (2.20c-12) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Patch by Christian Perrier <bubulle@debian.org> :
|
|||
|
+ - rename debian/config to debian/config.include (avoid confusion
|
|||
|
+ with the config file needed by debconf)
|
|||
|
+ - Now uses debconf :
|
|||
|
+ - Depends on debconf (>= 1.2.9 for gettext)
|
|||
|
+ - new config script (should properly handle admin-modified settings
|
|||
|
+ -->debconf is not a registry)
|
|||
|
+ - rewrote postint
|
|||
|
+ - new templates file (gettext-based)
|
|||
|
+ This should make the installation uninteractive. Closes: #147269
|
|||
|
+ This should also remember the serial port on upgrade; Closes: #92414
|
|||
|
+ - Any value may be entered for the modem device. Closes: #87564
|
|||
|
+ * Make sure that the new Seyon-modem config file has the same
|
|||
|
+ permissions as the old one.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Mon, 21 Jul 2003 20:31:27 +0100
|
|||
|
+
|
|||
|
+seyon (2.20c-11) unstable; urgency=high
|
|||
|
+
|
|||
|
+ * Real fix for the string-handling bug in FmtString(). Many thanks
|
|||
|
+ to Barry Kitson for a _huge_ amount of work on this one.
|
|||
|
+ * Several other less major string cleanups, again thanks to Barry.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Wed, 16 Jul 2003 01:39:22 +0100
|
|||
|
+
|
|||
|
+seyon (2.20c-10) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Fix for a nasty string-handling bug. Thanks to Barry Kitson for
|
|||
|
+ the inspiration. Closes: #90613, #132484.
|
|||
|
+ * Make sure we delete the generated Seyon.ad.h file on a "make clean".
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Mon, 14 Jul 2003 02:49:49 +0100
|
|||
|
+
|
|||
|
+seyon (2.20c-9) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Fix multi-line strings so will build again with gcc 3.3. Closes: #196280
|
|||
|
+ Thanks to Joshua Kwan for the patch.
|
|||
|
+ * Finally get around to replacing the NMU version. Closes: #133890
|
|||
|
+ Thanks Junichi...
|
|||
|
+ * Fixed some lintian warnings
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Sat, 07 Jun 2003 19:08:02 +0100
|
|||
|
+
|
|||
|
+seyon (2.20c-8.1) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * NMU
|
|||
|
+ * Do not write to $(HOME) when building. (closes: #133890)
|
|||
|
+ * Fix build-deps to depend on libxaw7-dev | libxaw-dev instead of
|
|||
|
+ libxaw-dev only.
|
|||
|
+
|
|||
|
+ -- Junichi Uekawa <dancer@debian.org> Fri, 17 May 2002 21:12:50 +0900
|
|||
|
+
|
|||
|
+seyon (2.20c-8) unstable; urgency=medium
|
|||
|
+
|
|||
|
+ * Added Build-Depends on bison. Closes: #123699.
|
|||
|
+ * Turned app-defaults files into conffiles after lintian warning.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Wed, 19 Dec 2001 17:24:13 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-7) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Added Build-Depends on libxaw-dev. Closes: #89742.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Thu, 15 Mar 2001 15:55:19 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-6) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Properly added menu entry. Sorry! Closes: #80160.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Wed, 14 Mar 2001 00:03:32 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-5) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Added xutils to Build-Depends. Closes: #89134.
|
|||
|
+ * Changed dependency on x-terminal-emulator to xterm | x-terminal-emulator to fix lintian warning.
|
|||
|
+ * Added menu hint. Closes: #80160.
|
|||
|
+ * I still think there's no better place in the menu structure than Apps/Net. Closes: #15080.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Sat, 10 Mar 2001 11:12:39 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-4) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * New maintainer address.
|
|||
|
+ * Renamed Build-Depends-Indep to Build-Depends.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <93sam@debian.org> Wed, 07 Mar 2001 22:53:31 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-3) unstable; urgency=medium
|
|||
|
+
|
|||
|
+ * Removed a broken usleep() declaration from SeDecl.h. Closes: #87532
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 25 Feb 2001 11:31:56 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-2) unstable; urgency=medium
|
|||
|
+
|
|||
|
+ * Move app-defaults file to /etc/X11/app-defaults. Closes: #86289
|
|||
|
+ * Now explicitly depends on x-terminal-emulator instead of imlicitly on xterm. Closes: #75343
|
|||
|
+ * Fixed includes from SePort.c, so it now builds again. Closes: 84487
|
|||
|
+ * Updated Standards-Version, added Build-Depends.
|
|||
|
+ * Fixed lots of lintian warnings.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 24 Feb 2001 11:01:56 +0000
|
|||
|
+
|
|||
|
+seyon (2.20c-1) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Call makever.sh with sh, so it doesn't need to be executable. Fixes Bug#38037
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 23 May 1999 20:19:56 +0100
|
|||
|
+
|
|||
|
+seyon (2.20c-0) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Hurrah! Seyon is now free! Check the copyright file for more info.
|
|||
|
+ Fixes Bug#20914.
|
|||
|
+ * New upstream version, new upstream maintainer (me!)
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 09 May 1999 21:18:01 +0100
|
|||
|
+
|
|||
|
+seyon (2.14c-12) frozen unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Removed obsolete dependency on xbase. Would be important bug if we weren'y non-free...
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 06 Feb 1999 13:32:15 +0000
|
|||
|
+
|
|||
|
+seyon (2.14c-11) frozen unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Replaced Suggests: for now non-existent kermit package with ckermit.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Thu, 14 Jan 1999 23:54:15 +0000
|
|||
|
+
|
|||
|
+seyon (2.14c-10) frozen unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Integrated non-maintainer diff (9.1)
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Wed, 30 Dec 1998 01:48:53 +0000
|
|||
|
+
|
|||
|
+seyon (2.14c-9.1) frozen unstable; urgency=low
|
|||
|
+
|
|||
|
+ * non-maintainer (binary-only) upload for Alpha
|
|||
|
+ * ignore error from $(ch_commands) as chmodding the Seyon symlink fails if
|
|||
|
+ seyon isn't installed yet (and hence no /etc/X11/seyon/Seyon file).
|
|||
|
+
|
|||
|
+ -- Paul Slootman <paul@debian.org> Tue, 29 Dec 1998 20:11:10 +0100
|
|||
|
+
|
|||
|
+seyon (2.14c-9) frozen unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Fixed typo in mono app-default file; s/replcae/replace; thanks to Remo Badii <Remo.Badii@psi.ch> for pointing this one out.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 24 Oct 1998 20:15:08 +0100
|
|||
|
+
|
|||
|
+seyon (2.14c-8) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Fixed script-handling code so it no longer seg-faults after running a "shell" command. Fixes Bug#27015.
|
|||
|
+ * Include examples for phonelist, protocols and startup. Fixes Bug#23268.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 17 Oct 1998 22:03:16 +0100
|
|||
|
+
|
|||
|
+seyon (2.14c-7) frozen unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Added missing sunsite reference to copyright file. Fixes bug #19870
|
|||
|
+ * Added error-checking to postinst - don't ask questions if something went wrong. Fizes bug #12608.
|
|||
|
+ * Restores X beep after use; fixes bug #17231.
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Thu, 26 Mar 1998 22:54:54 -0000
|
|||
|
+
|
|||
|
+seyon (2.14c-6) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * New maintainer
|
|||
|
+ * Added simple man page for seyon-emu.
|
|||
|
+ * Other packaging fixes to close bug #19402.
|
|||
|
+ * Uses correct devices (fixes bug #15061)
|
|||
|
+ * Postinst fixed (fixes bug #16226)
|
|||
|
+
|
|||
|
+ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 14 Mar 1998 20:31:43 -0000
|
|||
|
+
|
|||
|
+seyon (2.14c-5.3) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Fixed postint to not fail if enter is pressed in response to the first
|
|||
|
+ question with no 'y' or 'n'.
|
|||
|
+ * Postinst and postrm do not use bashisms, changes them to use /bin/sh.
|
|||
|
+
|
|||
|
+ -- Joey Hess <joeyh@master.debian.org> Sun, 16 Nov 1997 00:42:06 -0500
|
|||
|
+
|
|||
|
+seyon (2.14c-5.2) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Libc6 release.
|
|||
|
+
|
|||
|
+ -- Joey Hess <joeyh@master.debian.org> Sun, 16 Nov 1997 00:42:06 -0500
|
|||
|
+
|
|||
|
+seyon (2.14c-5.1) unstable; urgency=low
|
|||
|
+
|
|||
|
+ * Changed maintainer to Debian QA Group; seyon is orphaned.
|
|||
|
+ * Updated to use new source format (#9561).
|
|||
|
+ * Use pristine sources.
|
|||
|
+ * Register with menu system.
|
|||
|
+ * Depend on xbase for xterm.
|
|||
|
+ * Use ttyS instead of cua (#4922).
|
|||
|
+ * If upgrading, and we used cua before, update the conffiles to use ttyS
|
|||
|
+ instead.
|
|||
|
+ * Include phonelist in the examples directory (#6475).
|
|||
|
+
|
|||
|
+ -- Joey Hess <joeyh@master.debian.org> Mon, 1 Sep 1997 13:13:24 -0400
|
|||
|
+
|
|||
|
+Wed Jul 24 23:18:23 1996 Sven Rudolph <sr1@inf.tu-dresden.de>
|
|||
|
+
|
|||
|
+ * debian.control: added exetended description (Bug#3689)
|
|||
|
+
|
|||
|
+ * debian.rules: corrected multiarchitecture support
|
|||
|
+
|
|||
|
+ * debian.control: added Section: and Priority:
|
|||
|
+
|
|||
|
+Thu Apr 4 19:38:36 1996 Sven Rudolph <sr1@inf.tu-dresden.de>
|
|||
|
+
|
|||
|
+ * releasing 2.14c-3
|
|||
|
+
|
|||
|
+ * rebuilt for ELF
|
|||
|
+
|
|||
|
+ * debian.postinst: fixed creytion of seyon-emu symlink
|
|||
|
+
|
|||
|
+ * debian.control: removed Package_Revision field
|
|||
|
+ added Architecture field
|
|||
|
+
|
|||
|
+Thu Sep 21 23:23:52 1995 Sven Rudolph <sr1@inf.tu-dresden.de>
|
|||
|
+
|
|||
|
+ * moved config data to /etc/X11/seyon
|
|||
|
+
|
|||
|
+ * debian.postinst: postinst doesn't modify
|
|||
|
+ /etc/X11/xinit/Xresources and
|
|||
|
+ /etc/X11/xdm/Xresources now
|
|||
|
+
|
|||
|
+ * debian.control: fixed entries for DEPENDS and OPTIONAL
|
|||
|
+ (Bug#1409, Bug#1177)
|
|||
|
+
|
|||
|
+ * debian.control: corrected location of manpage (Bug#490)
|
|||
|
--- seyon-2.20c.orig/typescript
|
|||
|
+++ seyon-2.20c/typescript
|
|||
|
@@ -0,0 +1,37 @@
|
|||
|
+Script started on Thu Feb 24 23:08:45 2000
|
|||
|
+hammer:~/debian/seyon/seyon-2.20c$ make clean && make
|
|||
|
+rm -f seyon
|
|||
|
+rm -f version.h y.tab.* SeParse.c
|
|||
|
+rm -f *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"*
|
|||
|
+rm -f version.h
|
|||
|
+sh ./makever.sh
|
|||
|
+Machine type is i686, OS name is Linux
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o Seyon.o Seyon.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeActions.o SeActions.c
|
|||
|
+bison -y -d SeParse.y
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeScan.o SeScan.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeDial.o SeDial.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeErr.o SeErr.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeGeneric.o SeGeneric.c
|
|||
|
+rm -f SeInit.o
|
|||
|
+gcc -c -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DHELPFILE=\"/usr/X11R6/lib/X11/seyon.help\" SeInit.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeIo.o SeIo.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeMisc.o SeMisc.c
|
|||
|
+mv -f y.tab.c SeParse.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeParse.o SeParse.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SePort.o SePort.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeScript.o SeScript.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSet.o SeSet.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSig.o SeSig.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeString.o SeString.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSubs.o SeSubs.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSubsX.o SeSubsX.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSupp.o SeSupp.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeTerm.o SeTerm.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeTrans.o SeTrans.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeWin.o SeWin.c
|
|||
|
+gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o MultiList.o MultiList.c
|
|||
|
+rm -f seyon
|
|||
|
+gcc -o seyon -O2 -g -Wall -L/usr/X11R6/lib Seyon.o SeActions.o SeScan.o SeDial.o SeErr.o SeGeneric.o SeInit.o SeIo.o SeMisc.o SeParse.o SePort.o SeScript.o SeSet.o SeSig.o SeString.o SeSubs.o SeSubsX.o SeSupp.o SeTerm.o SeTrans.o SeWin.o MultiList.o -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11
|
|||
|
+hammer:~/debian/seyon/seyon-2.20c$
|
|||
|
+Script done on Thu Feb 24 23:09:17 2000
|