From d500c6152724ddbeaaf3fc7defb6f01569e06925 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Thu, 12 Jan 2023 15:07:20 +0000 Subject: [PATCH 01/47] DtTerm: fix a segfault by allocating a string dynamically. --- cde/lib/DtTerm/TermPrim/TermPrim.c | 36 ++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/cde/lib/DtTerm/TermPrim/TermPrim.c b/cde/lib/DtTerm/TermPrim/TermPrim.c index 159d73424..f4d79c90f 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrim.c +++ b/cde/lib/DtTerm/TermPrim/TermPrim.c @@ -1091,11 +1091,28 @@ Initialize(Widget ref_w, Widget w, Arg *args, Cardinal *num_args) &tw->term.boldFontSet, &tw->term.boldFont); } else { /* let's try and build a bold fontlist off of the base fontlist... */ + int num_fonts; + char **fontNames; + char *boldFontNames = NULL; + const char *bold = "bold"; + size_t boldLen = strlen(bold); + if (tw->term.fontSet) { - int num_fonts; + int i; XFontStruct **fonts; - char **fontNames; - char boldFontNames[BUFSIZ]; + size_t len = 1; /* 1: NUL */ + + Debug('f', fprintf(stderr, ">>generating bold fontset\n")); + num_fonts = XFontsOfFontSet(tw->term.fontSet, &fonts, &fontNames); + + for (i = 0; i < num_fonts; ++i) + /* 2: COMMA and SPACE */ + len += strlen(fontNames[i]) + boldLen + 2; + + boldFontNames = malloc(len); + } + + if (boldFontNames) { char *c1; char *c2; int i1; @@ -1103,8 +1120,6 @@ Initialize(Widget ref_w, Widget w, Arg *args, Cardinal *num_args) char **missingCharsetList; int missingCharsetCount; - Debug('f', fprintf(stderr, ">>generating bold fontset\n")); - num_fonts = XFontsOfFontSet(tw->term.fontSet, &fonts, &fontNames); for (i1 = 0, c2 = boldFontNames; i1 < num_fonts; i1++) { /* if this is not the first name we need a comma to * separate the names... @@ -1128,8 +1143,8 @@ Initialize(Widget ref_w, Widget w, Arg *args, Cardinal *num_args) /* make boldFont bold by swapping the bold in for the * weight... */ - (void) strcpy(c2, "bold"); - c2 += strlen("bold"); + (void) strcpy(c2, bold); + c2 += boldLen; /* skip over the weight in the source... */ while (*c1 && (*c1 != '-')) { @@ -1151,6 +1166,9 @@ Initialize(Widget ref_w, Widget w, Arg *args, Cardinal *num_args) &missingCharsetList, &missingCharsetCount, (char **) 0); + + free(boldFontNames); + if (missingCharsetCount > 0) { int i; @@ -1196,8 +1214,8 @@ Initialize(Widget ref_w, Widget w, Arg *args, Cardinal *num_args) /* make boldFont bold by swapping the bold in for the * weight... */ - (void) strcpy(c2, "bold"); - c2 += strlen("bold"); + (void) strcpy(c2, bold); + c2 += boldLen; /* skip over the weight in the source... */ while (*c1 && (*c1 != '-')) { From bba694f5f2b6f0b707a076388dc15b1409cd3cf6 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Tue, 12 Jul 2022 11:50:07 +0000 Subject: [PATCH 02/47] dtwm: fix a title bar resizing issue. --- cde/programs/dtwm/WmCDecor.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cde/programs/dtwm/WmCDecor.c b/cde/programs/dtwm/WmCDecor.c index 8b731edf1..956daa0ee 100644 --- a/cde/programs/dtwm/WmCDecor.c +++ b/cde/programs/dtwm/WmCDecor.c @@ -2361,9 +2361,10 @@ void RegenerateClientFrame (ClientData *pcd) } /* resize title bar window */ - if (decor & MWM_DECOR_TITLE && !pcd->clientTitleWin) + if (decor & MWM_DECOR_TITLE) { - CreateTitleBarWindow (pcd); + if (!pcd->clientTitleWin) CreateTitleBarWindow (pcd); + XResizeWindow (DISPLAY, pcd->clientTitleWin, pcd->frameInfo.width - 2*pcd->frameInfo.upperBorderWidth, pcd->frameInfo.titleBarHeight); From 69d47966adbc30392fdd2b944bb23dd66acf7003 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Thu, 14 Jul 2022 06:24:11 +0000 Subject: [PATCH 03/47] dtwm: fix compiler warnings. --- cde/programs/dtwm/WmCEvent.c | 4 +++- cde/programs/dtwm/WmEwmh.c | 14 +++++++------- cde/programs/dtwm/WmGlobal.h | 2 +- cde/programs/dtwm/WmWinInfo.c | 2 +- cde/programs/dtwm/WmWinState.c | 11 +++++------ 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/cde/programs/dtwm/WmCEvent.c b/cde/programs/dtwm/WmCEvent.c index 5b8d47fc6..178ace2dc 100644 --- a/cde/programs/dtwm/WmCEvent.c +++ b/cde/programs/dtwm/WmCEvent.c @@ -611,7 +611,9 @@ Boolean HandleEventsOnSpecialWindows (XEvent *pEvent) case ClientMessage: { if (pCD = InitClientData (pEvent->xclient.window)) { - XClientMessageEvent *clientEvent = pEvent; + XClientMessageEvent *clientEvent; + + clientEvent = (XClientMessageEvent *) pEvent; if (clientEvent->message_type == wmGD.xa__NET_WM_FULLSCREEN_MONITORS) diff --git a/cde/programs/dtwm/WmEwmh.c b/cde/programs/dtwm/WmEwmh.c index 12ef70255..07e641bc0 100644 --- a/cde/programs/dtwm/WmEwmh.c +++ b/cde/programs/dtwm/WmEwmh.c @@ -76,7 +76,7 @@ static void UpdateNetWmState (ClientData *pCD) if (pCD->maxConfig) { - if (pCD->isFullscreen) + if (pCD->fullscreen) { atoms[natoms++] = wmGD.xa__NET_WM_STATE_FULLSCREEN; } @@ -100,15 +100,15 @@ static void ProcessNetWmStateFullscreen (ClientData *pCD, long action) switch (action) { case _NET_WM_STATE_REMOVE: - if (!pCD->isFullscreen) return; - pCD->isFullscreen = False; + if (!pCD->fullscreen) return; + pCD->fullscreen = False; break; case _NET_WM_STATE_ADD: - if (pCD->isFullscreen) return; - pCD->isFullscreen = True; + if (pCD->fullscreen) return; + pCD->fullscreen = True; break; case _NET_WM_STATE_TOGGLE: - pCD->isFullscreen = !pCD->isFullscreen; + pCD->fullscreen = !pCD->fullscreen; break; default: return; @@ -116,7 +116,7 @@ static void ProcessNetWmStateFullscreen (ClientData *pCD, long action) SetClientState (pCD, NORMAL_STATE, GetTimestamp ()); - if (pCD->isFullscreen) + if (pCD->fullscreen) SetClientState (pCD, MAXIMIZED_STATE, GetTimestamp ()); } diff --git a/cde/programs/dtwm/WmGlobal.h b/cde/programs/dtwm/WmGlobal.h index 9aa2c31ec..b3adbf824 100644 --- a/cde/programs/dtwm/WmGlobal.h +++ b/cde/programs/dtwm/WmGlobal.h @@ -1630,7 +1630,7 @@ typedef struct _ClientData Window clientBaseWin; /* for matte & reparenting */ int xBorderWidth; /* original X border width */ FrameInfo frameInfo; /* frame geometry data */ - Boolean isFullscreen; /* True => fullscreen */ + Boolean fullscreen; /* fullscreen flag */ Boolean monitorSizeIsSet; /* True => X, Y, W, H is set */ int monitorX; /* monitor X loc */ int monitorY; /* monitor Y loc */ diff --git a/cde/programs/dtwm/WmWinInfo.c b/cde/programs/dtwm/WmWinInfo.c index a213ead25..b5ddd0308 100644 --- a/cde/programs/dtwm/WmWinInfo.c +++ b/cde/programs/dtwm/WmWinInfo.c @@ -219,7 +219,7 @@ InitClientData (Window clientWindow) pCD->smClientID = (String)NULL; - pCD->isFullscreen = False; + pCD->fullscreen = False; pCD->monitorSizeIsSet = False; for (i = 0; i < STRETCH_COUNT; ++i) pCD->clientStretchWin[i] = (Window)0L; diff --git a/cde/programs/dtwm/WmWinState.c b/cde/programs/dtwm/WmWinState.c index 47ac90c13..138671edd 100644 --- a/cde/programs/dtwm/WmWinState.c +++ b/cde/programs/dtwm/WmWinState.c @@ -604,7 +604,7 @@ static void SetupWindowStateWithEventMask (ClientData *pCD, int newState, void ConfigureNewState (ClientData *pcd) { - if (pcd->maxConfig && !pcd->isFullscreen) + if (pcd->maxConfig && !pcd->fullscreen) { pcd->maxConfig = FALSE; RegenerateClientFrame(pcd); @@ -614,17 +614,16 @@ void ConfigureNewState (ClientData *pcd) } else { - long decor = WM_DECOR_DEFAULT; + long decor = pcd->decor; WmHeadInfo_t *WmHI; - if (pcd->isFullscreen) + if (pcd->fullscreen) { - decor = pcd->decor; pcd->decor = WM_DECOR_NONE; SetClientOffset (pcd); } - if (pcd->isFullscreen && pcd->monitorSizeIsSet) + if (pcd->fullscreen && pcd->monitorSizeIsSet) { pcd->maxX = pcd->monitorX; pcd->maxY = pcd->monitorY; @@ -654,7 +653,7 @@ void ConfigureNewState (ClientData *pcd) pcd->maxConfig = TRUE; RegenerateClientFrame(pcd); - if (pcd->isFullscreen) + if (pcd->fullscreen) { pcd->decor = decor; SetClientOffset (pcd); From a90666402cf72d9ea55ddca539c1c8c14f6d1ea9 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Mon, 18 Jul 2022 07:56:30 +0000 Subject: [PATCH 04/47] dtwm: add support for _NET_WM_VISIBLE_NAME and _NET_WM_VISIBLE_ICON_NAME. --- cde/programs/dtwm/WmEwmh.c | 8 +++++++- cde/programs/dtwm/WmEwmh.h | 2 ++ cde/programs/dtwm/WmGlobal.h | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cde/programs/dtwm/WmEwmh.c b/cde/programs/dtwm/WmEwmh.c index 07e641bc0..dea955d50 100644 --- a/cde/programs/dtwm/WmEwmh.c +++ b/cde/programs/dtwm/WmEwmh.c @@ -277,6 +277,8 @@ void SetupWmEwmh (void) XA__NET_SUPPORTING_WM_CHECK, XA__NET_WM_NAME, XA__NET_WM_ICON_NAME, + XA__NET_WM_VISIBLE_NAME, + XA__NET_WM_VISIBLE_ICON_NAME, XA__NET_WM_FULLSCREEN_MONITORS, XA__NET_WM_STATE, XA__NET_WM_STATE_FULLSCREEN, @@ -290,6 +292,8 @@ void SetupWmEwmh (void) _XA__NET_SUPPORTING_WM_CHECK, _XA__NET_WM_NAME, _XA__NET_WM_ICON_NAME, + _XA__NET_WM_VISIBLE_NAME, + _XA__NET_WM_VISIBLE_ICON_NAME, _XA__NET_WM_FULLSCREEN_MONITORS, _XA__NET_WM_STATE, _XA__NET_WM_STATE_FULLSCREEN, @@ -305,6 +309,8 @@ void SetupWmEwmh (void) wmGD.xa_UTF8_STRING = atoms[XA_UTF8_STRING]; wmGD.xa__NET_WM_NAME = atoms[XA__NET_WM_NAME]; wmGD.xa__NET_WM_ICON_NAME = atoms[XA__NET_WM_ICON_NAME]; + wmGD.xa__NET_WM_VISIBLE_NAME = atoms[XA__NET_WM_VISIBLE_NAME]; + wmGD.xa__NET_WM_VISIBLE_ICON_NAME = atoms[XA__NET_WM_VISIBLE_ICON_NAME]; wmGD.xa__NET_WM_FULLSCREEN_MONITORS = atoms[XA__NET_WM_FULLSCREEN_MONITORS]; wmGD.xa__NET_WM_STATE = atoms[XA__NET_WM_STATE]; wmGD.xa__NET_WM_STATE_FULLSCREEN = atoms[XA__NET_WM_STATE_FULLSCREEN]; @@ -333,6 +339,6 @@ void SetupWmEwmh (void) XChangeProperty(DISPLAY, wmGD.Screens[scr].rootWindow, atoms[XA__NET_SUPPORTED], XA_ATOM, 32, PropModeReplace, (unsigned char *)&atoms[XA__NET_SUPPORTING_WM_CHECK], - 8); + 10); } } diff --git a/cde/programs/dtwm/WmEwmh.h b/cde/programs/dtwm/WmEwmh.h index 804b2aef2..551918b2e 100644 --- a/cde/programs/dtwm/WmEwmh.h +++ b/cde/programs/dtwm/WmEwmh.h @@ -34,6 +34,8 @@ #define _XA__NET_SUPPORTING_WM_CHECK "_NET_SUPPORTING_WM_CHECK" #define _XA__NET_WM_NAME "_NET_WM_NAME" #define _XA__NET_WM_ICON_NAME "_NET_WM_ICON_NAME" +#define _XA__NET_WM_VISIBLE_NAME "_NET_WM_VISIBLE_NAME" +#define _XA__NET_WM_VISIBLE_ICON_NAME "_NET_WM_VISIBLE_ICON_NAME" #define _XA__NET_WM_FULLSCREEN_MONITORS "_NET_WM_FULLSCREEN_MONITORS" #define _XA__NET_WM_STATE "_NET_WM_STATE" #define _XA__NET_WM_STATE_FULLSCREEN "_NET_WM_STATE_FULLSCREEN" diff --git a/cde/programs/dtwm/WmGlobal.h b/cde/programs/dtwm/WmGlobal.h index b3adbf824..339d84e35 100644 --- a/cde/programs/dtwm/WmGlobal.h +++ b/cde/programs/dtwm/WmGlobal.h @@ -1939,6 +1939,8 @@ typedef struct _WmGlobalData Atom xa_UTF8_STRING; Atom xa__NET_WM_NAME; Atom xa__NET_WM_ICON_NAME; + Atom xa__NET_WM_VISIBLE_NAME; + Atom xa__NET_WM_VISIBLE_ICON_NAME; Atom xa__NET_WM_FULLSCREEN_MONITORS; Atom xa__NET_WM_STATE; Atom xa__NET_WM_STATE_FULLSCREEN; From 0011ed2f705d8c598fa78d4a808282d317b088c3 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Mon, 5 Dec 2022 05:27:46 +0000 Subject: [PATCH 05/47] dtwm: optimize EWMH processing. --- cde/programs/dtwm/WmCEvent.c | 22 ++++--------- cde/programs/dtwm/WmEwmh.c | 46 +------------------------- cde/programs/dtwm/WmEwmh.h | 8 ++--- cde/programs/dtwm/WmWinInfo.c | 61 +++++++++++++++++++++++++++-------- 4 files changed, 58 insertions(+), 79 deletions(-) diff --git a/cde/programs/dtwm/WmCEvent.c b/cde/programs/dtwm/WmCEvent.c index 178ace2dc..311e443a1 100644 --- a/cde/programs/dtwm/WmCEvent.c +++ b/cde/programs/dtwm/WmCEvent.c @@ -748,18 +748,6 @@ void HandleCPropertyNotify (ClientData *pCD, XPropertyEvent *propertyEvent) break; } - case XA_WM_NAME: - { - ProcessWmWindowTitle (pCD, FALSE /*not first time*/); - break; - } - - case XA_WM_ICON_NAME: - { - ProcessWmIconTitle (pCD, FALSE /*not first time*/); - break; - } - case XA_WM_CLASS: { @@ -868,13 +856,15 @@ void HandleCPropertyNotify (ClientData *pCD, XPropertyEvent *propertyEvent) ProcessMwmHints (pCD); SetClientOffset (pCD); } - else if (propertyEvent->atom == wmGD.xa__NET_WM_NAME) + else if (propertyEvent->atom == XA_WM_NAME || + propertyEvent->atom == wmGD.xa__NET_WM_NAME) { - ProcessNetWmName (pCD); + ProcessWmWindowTitle (pCD, FALSE /*not first time*/); } - else if (propertyEvent->atom == wmGD.xa__NET_WM_ICON_NAME) + else if (propertyEvent->atom == XA_WM_ICON_NAME || + propertyEvent->atom == wmGD.xa__NET_WM_ICON_NAME) { - ProcessNetWmIconName (pCD); + ProcessWmIconTitle (pCD, FALSE /*not first time*/); } break; } diff --git a/cde/programs/dtwm/WmEwmh.c b/cde/programs/dtwm/WmEwmh.c index dea955d50..557696682 100644 --- a/cde/programs/dtwm/WmEwmh.c +++ b/cde/programs/dtwm/WmEwmh.c @@ -145,30 +145,6 @@ static void ProcessNetWmStateMaximized (ClientData *pCD, long action) SetClientState (pCD, newState, GetTimestamp ()); } -static void ProcessNetWmNameNetWmIconName (ClientData *pCD, Atom name) -{ - unsigned long nitems; - unsigned char *netNameProp; - XTextProperty nameProp = {0}; - - nitems = GetWindowProperty(pCD->client, name, wmGD.xa_UTF8_STRING, - &netNameProp); - - if (!nitems) goto done; - - if (Xutf8TextListToTextProperty (DISPLAY, (char **) &netNameProp, 1, - XUTF8StringStyle, &nameProp) != Success) goto done; - - if (name == wmGD.xa__NET_WM_NAME) - XSetWMName (DISPLAY, pCD->client, &nameProp); - else if (name == wmGD.xa__NET_WM_ICON_NAME) - XSetWMIconName (DISPLAY, pCD->client, &nameProp); - -done: - XFree (netNameProp); - XFree ((char*) nameProp.value); -} - /** * @brief Processes the _NET_WM_FULLSCREEN_MONITORS protocol. * @@ -246,26 +222,6 @@ void ProcessNetWmState (ClientData *pCD, long action, UpdateNetWmState (pCD); } -/** -* @brief Processes the _NET_WM_NAME property. -* -* @param pCD -*/ -void ProcessNetWmName (ClientData *pCD) -{ - ProcessNetWmNameNetWmIconName (pCD, wmGD.xa__NET_WM_NAME); -} - -/** -* @brief Processes the _NET_WM_ICON_NAME property. -* -* @param pCD -*/ -void ProcessNetWmIconName (ClientData *pCD) -{ - ProcessNetWmNameNetWmIconName (pCD, wmGD.xa__NET_WM_ICON_NAME); -} - /** * @brief Sets up the window manager handling of the EWMH. */ @@ -326,7 +282,7 @@ void SetupWmEwmh (void) XChangeProperty(DISPLAY, childWindow, atoms[XA__NET_WM_NAME], atoms[XA_UTF8_STRING], 8, PropModeReplace, - DT_WM_RESOURCE_NAME, 5); + (unsigned char *)DT_WM_RESOURCE_NAME, 5); XChangeProperty(DISPLAY, childWindow, atoms[XA__NET_SUPPORTING_WM_CHECK], XA_WINDOW, 32, diff --git a/cde/programs/dtwm/WmEwmh.h b/cde/programs/dtwm/WmEwmh.h index 551918b2e..8de670d6f 100644 --- a/cde/programs/dtwm/WmEwmh.h +++ b/cde/programs/dtwm/WmEwmh.h @@ -23,8 +23,8 @@ * Floor, Boston, MA 02110-1301 USA */ -#ifndef _Dt_WmEwmh_h_ -#define _Dt_WmEwmh_h_ +#ifndef WMEWMH_H +#define WMEWMH_H #define _NET_WM_STATE_REMOVE 0 #define _NET_WM_STATE_ADD 1 @@ -46,8 +46,6 @@ void ProcessNetWmFullscreenMonitors (ClientData *pCD, long top, long bottom, long left, long right); void ProcessNetWmState (ClientData *pCD, long action, long firstProperty, long secondProperty); -void ProcessNetWmName (ClientData *pCD); -void ProcessNetWmIconName (ClientData *pCD); void SetupWmEwmh (void); -#endif /* _Dt_WmEwmh_h_ */ +#endif diff --git a/cde/programs/dtwm/WmWinInfo.c b/cde/programs/dtwm/WmWinInfo.c index b5ddd0308..f5ef8bf38 100644 --- a/cde/programs/dtwm/WmWinInfo.c +++ b/cde/programs/dtwm/WmWinInfo.c @@ -56,7 +56,6 @@ #include "WmCDecor.h" #include "WmCPlace.h" #include "WmError.h" -#include "WmEwmh.h" #include "WmIDecor.h" #include "WmIPlace.h" #include "WmIconBox.h" @@ -420,7 +419,6 @@ GetClientInfo (WmScreenData *pSD, Window clientWindow, long manageFlags) */ ProcessWmWindowTitle (pCD, TRUE); - ProcessNetWmName (pCD); /* @@ -428,7 +426,6 @@ GetClientInfo (WmScreenData *pSD, Window clientWindow, long manageFlags) */ ProcessWmIconTitle (pCD, TRUE); - ProcessNetWmIconName (pCD); /* @@ -2204,16 +2201,35 @@ WmICCCMToXmString (XTextProperty *wmNameProp) void ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime) { + Atom actualType; + int actualFormat; + unsigned long nitems; + unsigned long leftover; + char *netWmNameProp; XTextProperty wmNameProp; XmString title_xms = NULL; + Window win = pCD->client; + Boolean hasWmName = HasProperty (pCD, XA_WM_NAME); + Boolean hasNetWmName = HasProperty (pCD, wmGD.xa__NET_WM_NAME); if ((pCD->clientDecoration & MWM_DECOR_TITLE) && - (!firstTime || HasProperty (pCD, XA_WM_NAME)) && - XGetWMName(DISPLAY, pCD->client, &wmNameProp)) + (!firstTime || hasWmName || hasNetWmName)) { - title_xms = WmICCCMToXmString(&wmNameProp); - if (wmNameProp.value) - XFree ((char*)wmNameProp.value); + if ((!firstTime || hasNetWmName) && + XGetWindowProperty (DISPLAY, win, wmGD.xa__NET_WM_NAME, 0L, + 1000000L, False, wmGD.xa_UTF8_STRING, + &actualType, &actualFormat, &nitems, &leftover, + (unsigned char **) &netWmNameProp) == Success) + { + title_xms = XmStringCreateLocalized (netWmNameProp); + XFree (netWmNameProp); + } + else if ((!firstTime || hasWmName) && + XGetWMName(DISPLAY, win, &wmNameProp)) + { + title_xms = WmICCCMToXmString(&wmNameProp); + if (wmNameProp.value) XFree ((char*)wmNameProp.value); + } } if (title_xms) @@ -2418,17 +2434,36 @@ FixSubpanelEmbeddedClientGeometry (ClientData *pCD) void ProcessWmIconTitle (ClientData *pCD, Boolean firstTime) { + Atom actualType; + int actualFormat; + unsigned long nitems; + unsigned long leftover; + char *netWmIconNameProp; XTextProperty wmIconNameProp; XmString icon_xms = NULL; + Window win = pCD->client; + Boolean hasWmIconName = HasProperty (pCD, XA_WM_ICON_NAME); + Boolean hasNetWmIconName = HasProperty (pCD, wmGD.xa__NET_WM_ICON_NAME); if ((pCD->clientFunctions & MWM_FUNC_MINIMIZE) && (pCD->transientLeader == NULL) && - (!firstTime || HasProperty(pCD, XA_WM_ICON_NAME)) && - XGetWMIconName (DISPLAY, pCD->client, &wmIconNameProp)) + (!firstTime || hasWmIconName || hasNetWmIconName)) { - icon_xms = WmICCCMToXmString(&wmIconNameProp); - if (wmIconNameProp.value) - XFree ((char*)wmIconNameProp.value); + if ((!firstTime || hasNetWmIconName) && + XGetWindowProperty (DISPLAY, win, wmGD.xa__NET_WM_ICON_NAME, 0L, + 1000000L, False, wmGD.xa_UTF8_STRING, &actualType, + &actualFormat, &nitems, &leftover, + (unsigned char **) &netWmIconNameProp) == Success) + { + icon_xms = XmStringCreateLocalized (netWmIconNameProp); + XFree (netWmIconNameProp); + } + else if ((!firstTime || hasWmIconName) && + XGetWMIconName (DISPLAY, win, &wmIconNameProp)) + { + icon_xms = WmICCCMToXmString(&wmIconNameProp); + if (wmIconNameProp.value) XFree ((char*)wmIconNameProp.value); + } } if (icon_xms) From 8ed81a67a73233906fc49bf2765711cdd6953c8a Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Mon, 5 Dec 2022 07:28:39 +0000 Subject: [PATCH 06/47] localized: fix the character encoding errors in zh_TW.UTF-8. --- .../zh_TW.UTF-8/app-defaults/Dt.tmsg | 8 +- .../zh_TW.UTF-8/app-defaults/Dtcm.tmsg | 2 +- .../zh_TW.UTF-8/app-defaults/Dtfile.tmsg | 2 +- .../zh_TW.UTF-8/app-defaults/Dtwm.tmsg | 8 +- .../zh_TW.UTF-8/config/Xresources.tmsg | 32 +- .../zh_TW.UTF-8/config/dtfile.config.tmsg | 6 +- .../zh_TW.UTF-8/config/sys.dtwmrc.tmsg | 80 +- .../zh_TW.UTF-8/config/sys.resources.tmsg | 8 +- .../localized/zh_TW.UTF-8/msg/DtHelp.msg | 262 +- .../localized/zh_TW.UTF-8/msg/DtMail.msg | 752 ++--- .../localized/zh_TW.UTF-8/msg/DtWidget.msg | 114 +- .../localized/zh_TW.UTF-8/msg/MotifApp.msg | 18 +- .../zh_TW.UTF-8/msg/SUNW_TOOLTALK.msg | 1938 ++++++------- cde/programs/localized/zh_TW.UTF-8/msg/dt.msg | 266 +- .../localized/zh_TW.UTF-8/msg/dtact.msg | 22 +- .../localized/zh_TW.UTF-8/msg/dtbuilder.msg | 2526 ++++++++--------- .../localized/zh_TW.UTF-8/msg/dtcalc.msg | 386 +-- .../localized/zh_TW.UTF-8/msg/dtcm.msg | 1546 +++++----- .../localized/zh_TW.UTF-8/msg/dtcodegen.msg | 166 +- .../localized/zh_TW.UTF-8/msg/dtconfig.msg | 86 +- .../localized/zh_TW.UTF-8/msg/dtcopy.msg | 144 +- .../localized/zh_TW.UTF-8/msg/dtcreate.msg | 436 +-- .../localized/zh_TW.UTF-8/msg/dtfile.msg | 2040 ++++++------- .../localized/zh_TW.UTF-8/msg/dthello.msg | 30 +- .../localized/zh_TW.UTF-8/msg/dthelpgen.msg | 74 +- .../localized/zh_TW.UTF-8/msg/dthelpprint.msg | 88 +- .../localized/zh_TW.UTF-8/msg/dticon.msg | 216 +- .../localized/zh_TW.UTF-8/msg/dtksh.msg | 938 +++--- .../localized/zh_TW.UTF-8/msg/dtlogin.msg | 348 +-- .../localized/zh_TW.UTF-8/msg/dtlp.msg | 34 +- .../localized/zh_TW.UTF-8/msg/dtmailopts.msg | 156 +- .../localized/zh_TW.UTF-8/msg/dtprintinfo.msg | 262 +- .../localized/zh_TW.UTF-8/msg/dtscreen.msg | 36 +- .../localized/zh_TW.UTF-8/msg/dtsession.msg | 96 +- .../localized/zh_TW.UTF-8/msg/dtstyle.msg | 368 +-- .../localized/zh_TW.UTF-8/msg/dtterm.msg | 298 +- .../localized/zh_TW.UTF-8/msg/dttypes.msg | 30 +- .../localized/zh_TW.UTF-8/msg/dtwm.msg | 144 +- .../localized/zh_TW.UTF-8/msg/fmt_tbl.msg | 4 +- .../localized/zh_TW.UTF-8/msg/libABil.msg | 88 +- .../localized/zh_TW.UTF-8/msg/libABobjXm.msg | 26 +- .../localized/zh_TW.UTF-8/msg/libAButil.msg | 14 +- .../localized/zh_TW.UTF-8/msg/libDtMail.msg | 64 +- .../zh_TW.UTF-8/types/_common.dt.tmsg | 2428 ++++++++-------- .../localized/zh_TW.UTF-8/types/action.tmsg | 14 +- 45 files changed, 8302 insertions(+), 8302 deletions(-) diff --git a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dt.tmsg b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dt.tmsg index 69d7041ff..ea4981796 100644 --- a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dt.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dt.tmsg @@ -100,10 +100,10 @@ $ NOTE: These messages used to be in sys.resources.tmsg message 5-8. $ Messages 14-17 are labels for the file selection box. They need to be $ set globally for Cde. Don't translate the ':'. $ -14 藣蘋聤梏迖麔淰扢ボ磝: -15 彶隞 -16 藣蘋麔淰ボ磝: -17 麔淰扢 +14 輸入路徑或檔案夾名稱: +15 更新 +16 輸入檔案名稱: +17 檔案夾 $ $ Message 21 and 23 can be translated. These are shown on the menu. $ Message 22 and 24 should not be changed unless accelerator keys need to diff --git a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtcm.tmsg b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtcm.tmsg index 209f62797..6e718d578 100644 --- a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtcm.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtcm.tmsg @@ -232,7 +232,7 @@ $ $ Messages 52 and 53 are programable date formats $ $ 52 %B %Y -52 %Y龰 %b +52 %Y年 %b 53 %B $ $ Messages 54 through 59 are location specific pixmaps. These could diff --git a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtfile.tmsg b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtfile.tmsg index 3f5917a29..abeb4898c 100644 --- a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtfile.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtfile.tmsg @@ -131,4 +131,4 @@ $ $ $ Message 23 is a window title of root directory. $ -23 淂槉嵺 +23 根視窗 diff --git a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg index eaa5af626..d716fc48c 100644 --- a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg @@ -31,10 +31,10 @@ $ * Message 1 is not used $ * $ * Specify the user-visible titles of workspaces $ * -2 纂 -3 蘑 -4 警 -5 ⅹ +2 一 +3 二 +4 三 +5 四 $ $ ---------------------------------------------------------------------------- $ Do not translate message 6 - 10. diff --git a/cde/programs/localized/zh_TW.UTF-8/config/Xresources.tmsg b/cde/programs/localized/zh_TW.UTF-8/config/Xresources.tmsg index a990c851c..5a0cd5846 100644 --- a/cde/programs/localized/zh_TW.UTF-8/config/Xresources.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/config/Xresources.tmsg @@ -217,35 +217,35 @@ $ ---------------------------------------------------------------------------- $ LANG=C 200 C -------- POSIX $ LANG=de -201 de ------- 憼齪 +201 de ------- 德文 $ LANG=fr -202 fr ------- 恄齪 +202 fr ------- 法文 $ LANG=it -203 it ------- 氂騰伈齪 +203 it ------- 義大利文 $ LANG=sv -204 sv ------- 撖怢齪 +204 sv ------- 瑞典文 $ LANG=es -205 es ------- 邳耀⻆笣蠱齪 +205 es ------- 拉丁西班牙文 $ LANG=en_US -206 en_US ---- 蚆齪 +206 en_US ---- 英文 $ LANG=ja -207 ja ------- 戀ヾ齪 +207 ja ------- 日本文 $ LANG=japanese -208 japanese - 戀ヾ齪 +208 japanese - 日本文 $ LANG=ko -209 ko ------- 鬺齪 +209 ko ------- 韓文 $ LANG=korean -210 korean --- 鬺齪 +210 korean --- 韓文 $ LANG=zh -211 zh ------- 斕齪/籙忟 +211 zh ------- 中文/簡體 $ LANG=chinese -212 chinese -- 斕齪/籙忟 +212 chinese -- 中文/簡體 $ LANG=zh_TW -213 zh_TW ---- 斕齪/鏾忟 +213 zh_TW ---- 中文/繁體 $ LANG=tchinese -214 tchinese - 斕齪/鏾忟 +214 tchinese - 中文/繁體 $ LANG=ca -215 ca ------- 蠹砦碭⼖呯 +215 ca ------- 加泰隆尼亞 $ "NEW-" 216 en_AU ---- Australia $ "NEW-" @@ -314,7 +314,7 @@ $ Sun Desktop Names $ $ Names are used on the dtlogin Options->Session menu $ -290 纂郫痐譫磣隉侇嗄 (CDE) +290 一般桌上管理系統 (CDE) $ ---------------------------------------------------------------------------- $ Login screen language list translations for HP-UX (HP) diff --git a/cde/programs/localized/zh_TW.UTF-8/config/dtfile.config.tmsg b/cde/programs/localized/zh_TW.UTF-8/config/dtfile.config.tmsg index eb111ca93..7e6861e40 100644 --- a/cde/programs/localized/zh_TW.UTF-8/config/dtfile.config.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/config/dtfile.config.tmsg @@ -26,6 +26,6 @@ $ * \ (at end of line) continue on same line $ * $ ***************************************************************************** $ -1 彶庍 AFS ACL ... -2 䬷ざ鉡箹髱緷 ... -3 恞蜑: ⼓旂纂堈 Andrew File System (AFS) 昡ス.\\nБ抻暐⑴ḷ儸ョ AFS Access Control List (ACL) 斕迻戔. +1 更改 AFS ACL ... +2 顯示測試對話 ... +3 注意: 它是一個 Andrew File System (AFS) 物件.\\n存取許可權已在 AFS Access Control List (ACL) 中限制. diff --git a/cde/programs/localized/zh_TW.UTF-8/config/sys.dtwmrc.tmsg b/cde/programs/localized/zh_TW.UTF-8/config/sys.dtwmrc.tmsg index 28b7c6588..88b52cf75 100644 --- a/cde/programs/localized/zh_TW.UTF-8/config/sys.dtwmrc.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/config/sys.dtwmrc.tmsg @@ -51,15 +51,15 @@ $ * Translate all labels (first column) except no-label. Do not remove ". * $ * Functions (second column) should not be changed unless it is required in * $ * your language. * $ *--------------------------------------------------------------------------* -6 "齡汃洠睮衢逑玿" f.title\n\ - "ホ譫懘葎" f.circle_up\n\ - "ホ譯懘葎" f.circle_down\n\ - "怑隞" f.refresh\n\ - "醷⺍瑊麵/ャ艀虳巖郖帣" f.toggle_frontpanel\n\ +6 "工作空間功能表" f.title\n\ + "向上輪換" f.circle_up\n\ + "向下輪換" f.circle_down\n\ + "刷新" f.refresh\n\ + "縮至最小/回復前方面板" f.toggle_frontpanel\n\ no-label f.separator\n\ - "适隞絒棬齡汃洠睮磣隉炟..." f.restart\n\ + "重新啟動工作空間管理者..." f.restart\n\ no-label f.separator\n\ - "僳罐..." f.action ExitSession + "登出..." f.action ExitSession $ * $ * #DtPanelMenu# $ * @@ -71,13 +71,13 @@ $ * Translate all labels (first column) except no-label. * $ * Functions (second column) should not be changed unless it is required in * $ * your language. * $ *--------------------------------------------------------------------------* -7 ャ艀 _R f.normalize\n\ - 傶棬 _M f.move\n\ - 醷⺍瑊麵 _n f.minimize\n\ - 傶⺍芚嬬 _L f.lower\n\ - 怑隞 _f f.refresh\n\ +7 回復 _R f.normalize\n\ + 移動 _M f.move\n\ + 縮至最小 _n f.minimize\n\ + 移至底層 _L f.lower\n\ + 刷新 _f f.refresh\n\ no-label f.separator\n\ - "僳罐..." _o f.action ExitSession + "登出..." _o f.action ExitSession $ * $ * #SampleWindowMenu# $ * @@ -87,18 +87,18 @@ $ * no-label. Do not remove ". * $ * Accelerator (third column) and functions (forth column) should not be * $ * changed unless it is required in your language. * $ *--------------------------------------------------------------------------* -8 "ャ艀" _R f.normalize\n\ - "傶棬" _M f.move\n\ - "騰麵" _S f.resize\n\ - "醷⺍瑊麵" _n f.minimize\n\ - "勂⺍瑊騰" _x f.maximize\n\ - "傶⺍芚嬬" _L f.lower\n\ +8 "回復" _R f.normalize\n\ + "移動" _M f.move\n\ + "大小" _S f.resize\n\ + "縮至最小" _n f.minimize\n\ + "放至最大" _x f.maximize\n\ + "移至底層" _L f.lower\n\ no-label f.separator\n\ - "ŋ謾齡汃洠睮..." _O f.workspace_presence\n\ - "ŋ謾邴齡汃洠睮" _A f.occupy_all\n\ - "抻祤ŋ謾齡汃洠睮" _U f.remove\n\ + "佔據工作空間..." _O f.workspace_presence\n\ + "佔據所有工作空間" _A f.occupy_all\n\ + "取消佔據工作空間" _U f.remove\n\ no-label f.separator\n\ - "驨椲" _C AltF4 f.kill + "關閉" _C AltF4 f.kill $ * $ * #NoAcceleratorWindowMenu# $ * @@ -108,18 +108,18 @@ $ * no-label. Do not remove ". * $ * Functionns (third column) should not be changed unless it is required in * $ * your language. * $ *--------------------------------------------------------------------------* -9 "ャ艀" _R f.normalize\n\ - "傶棬" _M f.move\n\ - "騰麵" _S f.resize\n\ - "醷⺍瑊麵" _n f.minimize\n\ - "勂⺍瑊騰" _x f.maximize\n\ - "傶⺍芚嬬" _L f.lower\n\ +9 "回復" _R f.normalize\n\ + "移動" _M f.move\n\ + "大小" _S f.resize\n\ + "縮至最小" _n f.minimize\n\ + "放至最大" _x f.maximize\n\ + "移至底層" _L f.lower\n\ no-label f.separator\n\ - "ŋ謾齡汃洠睮..." _O f.workspace_presence\n\ - "ŋ謾齡汃洠睮" _A f.occupy_all\n\ - "抻祤ŋ謾齡汃洠睮" _U f.remove\n\ + "佔據工作空間..." _O f.workspace_presence\n\ + "佔據工作空間" _A f.occupy_all\n\ + "取消佔據工作空間" _U f.remove\n\ no-label f.separator\n\ - "驨椲" _C f.kill + "關閉" _C f.kill $ * $ * #DefaultWindowMenu# $ * @@ -129,14 +129,14 @@ $ * no-label. Do not remove ". * $ * Accelerator (third column) and functions (forth column) should not be * $ * changed unless it is required in your language. * $ *--------------------------------------------------------------------------* -10 "ャ艀" _R AltF5 f.normalize\n\ - "傶棬" _M AltF7 f.move\n\ - "騰麵" _S AltF8 f.resize\n\ - "醷⺍瑊麵" _n AltF9 f.minimize\n\ - "勂⺍瑊騰" _x AltF10 f.maximize\n\ - "傶⺍芚嬬" _L AltF3 f.lower\n\ +10 "回復" _R AltF5 f.normalize\n\ + "移動" _M AltF7 f.move\n\ + "大小" _S AltF8 f.resize\n\ + "縮至最小" _n AltF9 f.minimize\n\ + "放至最大" _x AltF10 f.maximize\n\ + "移至底層" _L AltF3 f.lower\n\ no-label f.separator\n\ - "驨椲" _C AltF4 f.kill + "關閉" _C AltF4 f.kill $ * $ * Key And Button Bindings Descriptions $ * diff --git a/cde/programs/localized/zh_TW.UTF-8/config/sys.resources.tmsg b/cde/programs/localized/zh_TW.UTF-8/config/sys.resources.tmsg index aef801fc5..c3f0a7c25 100644 --- a/cde/programs/localized/zh_TW.UTF-8/config/sys.resources.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/config/sys.resources.tmsg @@ -56,10 +56,10 @@ $ $ Messages 5-9 are labels for the file selection box. They need to be $ set globally for CDE. Don't translate the ':'. $ -5 藣蘋聤梏迖麔淰扢ボ磝: -6 彶隞 -7 藣蘋麔淰ボ磝: -8 麔淰扢 +5 輸入路徑或檔案夾名稱: +6 更新 +7 輸入檔案名稱: +8 檔案夾 $ $ *XmFileSelectionBox*XmLabelGadget.fontList $ This is not a message, but locale dependent values. See sys.font.tmsg... diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/DtHelp.msg b/cde/programs/localized/zh_TW.UTF-8/msg/DtHelp.msg index a05d0ebc6..695b2394c 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/DtHelp.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/DtHelp.msg @@ -48,50 +48,50 @@ $ They come in pairs where the first is the menu name (e.g. 1 Print...) and the $ second is the mnemonic (e.g. 2 P). $ $ Messages 1 through 6 are the pulldown menus for the File menu. -1 トパ(P)... +1 列印(P)... 2 P -3 驨椲(C) +3 關閉(C) 4 C -5 瞅隞槉嵺(W)... +5 開新視窗(W)... 6 W $ Messages 7 through 8 are the pulldown menus for the Edit menu. -7 闀蕍(C) +7 複製(C) 8 C $ Messages 9 through 10 are the pulldown menus for the Search menu. -9 袎鰱(I)... +9 索引(I)... 10 I $ Messages 11 through 16 are the pulldown menus for the Navigate menu. -11 媊沓饜纕(T) +11 起始主題(T) 12 T -13 酈ホ銌硻(B) +13 反向搜尋(B) 14 B -15 奡蠊(H)... +15 記錄(H)... 16 H $ Messages 17 through 28 are the pulldown menus for the Help menu. -17 颮羏(v) - 囷え赮伢諰咭 +17 概觀(v) - 使用輔助說明 18 v -19 げ蠊(C) +19 目錄(C) 20 C -21 齡汃(T) +21 工作(T) 22 T -23 棤嘵(R) +23 參照(R) 24 R -25 僶趡昑耰薏(M) +25 滑鼠和鍵盤(M) 26 M -27 驨卼赮伢諰咭(A) +27 關於輔助說明(A) 28 A $ $ Messages 29 through 36 are the menu labels and mnemonics for for the $ Help Dialog. -29 麔淰(F) +29 檔案(F) 30 F -31 銌硻(S) +31 搜尋(S) 32 S -33 硻郲(N) +33 尋航(N) 34 N -35 赮伢諰咭(H) +35 輔助說明(H) 36 H -37 蹌藟(E) +37 編輯(E) 38 E $ $ @@ -100,92 +100,92 @@ $ $ Messages 50 through 55 are used to display formatting errors within the $ helps dialog and quick help dialog widgets. $ -50 А⻌罶涷隓恄眭冈襲﹞ -51 棬鳷⺌⻌罶涷隓恄眭冈襲﹞ -52 轃譫葰伢郟隓恄眭冈襲﹞睎邴錛衭柁轃譫葰伢郟⑴逑攜Бョ﹜迖旂\ -儸銧骱﹞ -53 齪А麔淰罶涷隓恄眭冈襲﹞睎邴錛衭柁轃譫葰伢郟⑴逑攜Бョ﹜迖\ -旂儸銧骱﹞ -54 赮伢諰咭饜纕隓恄眭冈襲﹞ -55 ⑶ト ID ⻏殦攜Бョ” +50 字串資料無法格式化。 +51 動態自串資料無法格式化。 +52 線上援助頁無法格式化。您所需要的線上援助頁可能不存在,或是\ +已損毀。 +53 文字檔案資料無法格式化。您所需要的線上援助頁可能不存在,或\ +是已損毀。 +54 輔助說明主題無法格式化。 +55 右列 ID 位置不存在: $ $ Messages 56 and 67 are displayed when a hypertext link type is selected but $ not supported within the current application. $ -56 楙堈鶈え嶂冈攜齬葰睎邴藞抻柁熅齪А椵廎﹞ -57 楙堈鶈え嶂冈攜齬葰椵廎轃譫葰伢郟衢逑﹞ +56 這個應用程式不支援您所選取的超文字連結。 +57 這個應用程式不支援連結線上援助頁功能。 $ $ Messages 58 through 62 are used when bad or null help volumes or $ locationId's are used. $ -58 睎錛衭柁轃譫赮伢諰咭⑴逑扽Е稹﹜迖ゝ⻏卼懱撋柁銌硻聤梏譫﹞驨Е稹轃譫赮伢諰咭柁罶媢﹜霘棤℡雰陔柁諰咭齪ス﹞\n -59 ゝ挴泂 ID ⻏殦﹞ -60 ゝ挴泂赮伢諰咭晥忟﹞ -61 赮伢諰咭晥忟” -62 ID ⻏殦” +58 您需要的線上輔助說明可能沒有安裝,或未位於適當的搜尋路徑上。有關安裝線上輔助說明的資訊,請參考產品的說明文件。\n +59 未指定 ID 位置。 +60 未指定輔助說明容體。 +61 輔助說明容體: +62 ID 位置: $ $ >>>>> Skip #63 through #69 $ $ $ Message 70 is used when a null value for DtNtopicTitle is used. $ -70 饜纕簅纕攜Бョ﹞ +70 此主題標題不存在。 $ $ $ New messages added after early msg cat freeze; not in order -80 挴泂柁赮伢諰咭麷倛隓淩﹞ +80 指定的輔助說明類型無效。 $set 3 $ **** Module: History.c **** $ These messages are used as labels for the History Dialog. -1 赮伢諰咭 - 奡蠊廲ៜ嶂冈 -2 廲ៜ蝝柁赮伢諰咭晥忟” -3 驨椲 -4 赮伢諰咭 -5 赮伢諰咭麔淰 -6 轃譫葰伢郟 -7 赮伢諰咭媢桾 -8 廲ៜ蝝柁赮伢諰咭饜纕” -9 廲ៜ蝝柁赮伢諰咭麔淰” -10 廲ៜ蝝柁轃譫葰伢郟” -11 廲ៜ蝝柁赮伢諰咭媢桾饜纕” +1 輔助說明 - 記錄瀏覽程式 +2 瀏覽過的輔助說明容體: +3 關閉 +4 輔助說明 +5 輔助說明檔案 +6 線上援助頁 +7 輔助說明訊息 +8 瀏覽過的輔助說明主題: +9 瀏覽過的輔助說明檔案: +10 瀏覽過的線上援助頁: +11 瀏覽過的輔助說明訊息主題: $set 4 $ ***** Module: Print.c ***** $ These messages are used as labels for the Print Dialog. $ 1: dialog title -1 赮伢諰咭 - トパ +1 輔助說明 - 列印 $ 10-12: standard printer dialog labels -10 パ玿鞥” -11 ソ禨” -12 玿韝簅纕郟簅纕” +10 印表機: +11 份數: +12 表頭標題頁標題: $ 20-25: paper size label and sizes -20 訬痧騰麵” +20 紙張大小: 21 Letter 8.5 x 11 in 22 Legal 8.5 x 14 in 23 Executive 7.25 x 10.5 in 24 A4 210 x 297 mm 25 B5 182 x 257 mm $ 30-33: help volume-specific printing options -30 衭トパ柁饜纕 -31 隃⺼饜纕 -32 隃⺼饜纕縋嬬饜纕 -33 げ蠊縋袎鰱 -34 晥忟斕柁邴饜纕 +30 要列印的主題 +31 現行主題 +32 現行主題與次層主題 +33 目錄與索引 +34 容體中的所有主題 $ 40-42: buttons at bottom of dialog -40 トパ -41 抻祤 -42 赮伢諰咭 +40 列印 +41 取消 +42 輔助說明 $ These messages are used to describe the kind of content to be printed $ 50 "Help Volume: " -50 赮伢諰咭晥忟” -51 赮伢諰咭媢桾” -52 赮伢諰咭麔淰 +50 輔助說明容體: +51 輔助說明訊息: +52 輔助說明檔案 $ 53 "Manual Page: " -53 轃譫葰伢郟” -54 蠆諟媢桾 +53 線上援助頁: +54 錯誤訊息 $ Don't translate message 60 unless it is not an empty string $ This is the default value that goes in the Printer field $ 60 " " @@ -201,31 +201,31 @@ $ This is the default value that goes in the Copies field $set 5 $ ***** Module: GlobSearch.c ***** $ Message 1 is the label used to label the dialog -1 赮伢諰咭 - 袎鰱銌硻 -2 銌硻 -3 隃⺼晥忟 +1 輔助說明 - 索引搜尋 +2 搜尋 +3 現行容體 $ DO NOT TRANSLATE MESSAGE 4; it is no longer used $ " (%s)" 4 (%s) -5 邴晥忟 -6 藞抻柁晥忟 -7 藞抻晥忟... -8 䬷ざ -9 汒謽袎鰱 -10 藣蘋罶涷” -11 虳芼 -12 瞅沓銌硻 -13 凭㶴銌硻 -14 彘欐銌硻 -15 驨椲 -16 赮伢諰咭 -17 筈萺晥忟... 岊怉 %d 堈 -18 銌硻斕... 瑀瀦晥忟”%d 堈 -19 岊攜怉袎鰱禋げ -20 汒謽袎鰱 -21 藣蘋罶涷 "%s" -22 ゝ藞抻晥忟 -23 皕譫巖藞抻銌硻藞禋 +5 所有容體 +6 選取的容體 +7 選取容體... +8 顯示 +9 完整索引 +10 輸入資料: +11 前往 +12 開始搜尋 +13 繼續搜尋 +14 停止搜尋 +15 關閉 +16 輔助說明 +17 掃描容體... 找到 %d 個 +18 搜尋中... 剩餘容體:%d 個 +19 找不到索引項目 +20 完整索引 +21 輸入資料 "%s" +22 未選取容體 +23 從上方選取搜尋選項 $ Do NOT translate messages 25-31 $quote " $ " " @@ -244,14 +244,14 @@ $quote $ DO translate messages 32 and above $ kind of topic messages 32 Help Message -33 赮伢諰咭麔淰 -34 葰伢諰咭郟 -35 攜咭柁眭冈 +33 輔助說明檔案 +34 援助說明頁 +35 不明的格式 $ specialized title of Search Volume Selection dialog -40 赮伢諰咭 - 銌硻晥忟藞謥 +40 輔助說明 - 搜尋容體選擇 $ additional messages (late addition caused this ordering) -50 岊攜怉袎鰱禋げ﹞霘閰箹銌硻邴晥忟﹞ -51 岊攜怉袎鰱禋げ﹞霘閰箹囷え怬鱗驨耰А﹞ +50 找不到索引項目。請嘗試搜尋所有容體。 +51 找不到索引項目。請嘗試使用其他關鍵字。 $ additional messages (later addition caused this ordering) $ These messages are the braces that go around the current volume name $ in the index search dialog. They are kept in the message catalog @@ -263,12 +263,12 @@ $ in case they need to be localized. $set 6 $ ***** Module: HelpAccess.c ***** $ These messages are used for the Help on Help dialog in Cde Help widgets. -1 驨赮伢諰咭柁赮伢諰咭 -2 トパ ... -3 驨椲 -4 楙堈鶈え嶂冈攜齬葰>驨赮伢諰咭柁赮伢諰咭=衢逑! -5 酈ホ銌硻 -6 赮伢諰咭 ... +1 有關輔助說明的輔助說明 +2 列印 ... +3 關閉 +4 這個應用程式不支援「有關輔助說明的輔助說明」功能! +5 反向搜尋 +6 輔助說明 ... $set 7 @@ -278,39 +278,39 @@ $ localized for dthelpview, however, they are not directly used by libDtHelp $ Messages 1 through 7 are command line usage response messages. $ Do NOT translate the option name (e.g. -helpVolume). DO translate $ the argument descriptor name (e.g. ) -1 え恄”%s...\n +1 用法:%s...\n 2 \t-helpVolume \n 3 \t-locationId \n 5 \t-file \n 6 \t-man\n 7 \t-manPage \n\n\n $ man page dialog -11 轃譫葰伢郟 -12 轃譫葰伢郟” -13 䬷ざ轃譫葰伢郟 +11 線上援助頁 +12 線上援助頁: +13 顯示線上援助頁 $ button labels -16 廎忒 -17 驨椲 -18 酈ホ銌硻 -19 トパ ... +16 結束 +17 關閉 +18 反向搜尋 +19 列印 ... $ title of helpview window -20 赮伢諰咭髲砫蟟 +20 輔助說明察看器 $set 8 $ ***** Module: HelpUtil.c ***** $ Message 1 is the label used in the definition link dialog box $ (e.g. Quick help close button) -2 驨椲 -3 蠡楶蠆諟”隓恄庉抻僶趡\nDtHelpReturnSelectedWidget 斕黫﹞\n -4 蠡楶蠆諟”隓恄庉抻耰薏\nDtHelpReturnSelectedWidget() 斕黫﹞\n -5 赮伢諰咭蠆諟 +2 關閉 +3 內部錯誤:無法抓取滑鼠\nDtHelpReturnSelectedWidget 中斷。\n +4 內部錯誤:無法抓取鍵盤\nDtHelpReturnSelectedWidget() 中斷。\n +5 輔助說明錯誤 $ Messages 10 and up were added after message catalogs were taken $ for translation. They are not in any order or chosen location. -10 羼鰹欹⺼ -11 攜衭欹⺼ -12 赮伢諰咭晥忟裱欹⺼纂堈杬麟伀ボ﹞\n伀ボ '%s' ゝ泂氂﹞ -13 赮伢諰咭晥忟裱欹⺼纂堈杬麟伀ボ﹞\n珜藹Еツ摽裱﹜⺌棬欹⺼杬麟柁衢逑揧驨椲﹞\n杬麟珜” %s +10 仍舊執行 +11 不要執行 +12 輔助說明容體想執行一個命令別名。\n別名 '%s' 未定義。 +13 輔助說明容體想執行一個命令別名。\n為了安全著想,自動執行命令的功能被關閉。\n命令為: %s $ End Message set 8 @@ -318,33 +318,33 @@ $set 9 $ ***** Module: PathArea.c ***** $ These messages are used in the general Help Dialog Widget. $ Message 1 is the label used to label Topic Tree Area -1 晥忟” +1 容體: $ Messages 2 though 5 are used in the Button Box area of our general $ help dialog. -2 酈ホ銌硻 -3 奡蠊... -4 袎鰱... -5 煄嬬 +2 反向搜尋 +3 記錄... +4 索引... +5 頂層 $set 10 $ ***** Module: VolSelect.c ***** $ Message 1 is the default label used to label the volume selection dialog. -1 赮伢諰咭 - 晥忟藞謥 -2 赮伢諰咭晥忟 -3 霘藞謥纂堈迖ロ堈赮伢諰咭晥忟 -4 驨椲 -5 赮伢諰咭 +1 輔助說明 - 容體選擇 +2 輔助說明容體 +3 請選擇一個或多個輔助說明容體 +4 關閉 +5 輔助說明 $set 11 $ ***** Module: HelpQuickD.c ***** $ These messages are used as labels for the quick help dialog. -1 驨椲 -2 彶ロ ... -3 酈ホ銌硻 -4 トパ ... -5 赮伢諰咭 ... +1 關閉 +2 更多 ... +3 反向搜尋 +4 列印 ... +5 輔助說明 ... $set 99 $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/DtMail.msg b/cde/programs/localized/zh_TW.UTF-8/msg/DtMail.msg index 544b13355..c9801afb5 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/DtMail.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/DtMail.msg @@ -24,32 +24,32 @@ $ $ Strings from dtmail/RoamApp.C $set 1 -1 "薚泂" +1 "確定" $ /* NL_COMMENT $ * This is a menu label, please refer to the resource file "Dtmail" for $ * appropriate mnemonics tranlation $ */ -2 "瑧ス藞禋..." -3 "⺌棬ャ砆" -4 "笱迒彶隞斕..." +2 "郵件選項..." +3 "自動回信" +4 "特性更新中..." $ $ Strings from dtmail/RoamMenuWindow.C -5 "抻祤" -6 "諔騵瑧ス" -7 "諔騵瑧ス" -8 "諔騵瑧ス" -9 "伝崽" -10 "譯纂堈" -11 "虳纂堈" -12 "ャ鷋溈ス藺" -13 "トパ" -14 "婽ス藺" -15 "饜纕" -16 "戀蛺昑渀睮" -17 "騰麵" +5 "取消" +6 "電子郵件" +7 "電子郵件" +8 "電子郵件" +9 "刪除" +10 "下一個" +11 "前一個" +12 "回覆寄件人" +13 "列印" +14 "送件人" +15 "主題" +16 "日期和時間" +17 "大小" $ /* NL_COMMENT $ * Menu labels in Main Mailer (from RoamMenuWindow.C). $ * The following menu labels require translation plus parenthesized @@ -64,117 +64,117 @@ $ * Message 64,65,221 are menu labels for "Move" pull down menu. $ * Message 66,68,69 are menu labels for "Attachment" pull down menu. $ * Message 71-77 are menu labels for "Help" pull down menu. $ */ -18 "瑧謜" -19 "黀栯旂匢隞瑧ス" -20 "瞅絒ス謜" -21 "瞅絒ス謜" -22 "隞瑧ス..." -23 "諔騵瑧ス - 隞瑧ス" -24 "隞瑧ス" -25 "瞅絒..." -26 "諔騵瑧ス - 瞅絒" -27 "瞅絒" -28 "曚骱儸伝崽柁媢桾" -29 "驨椲" -30 "瞅絒" -31 "鬊Б珜齪А麔..." -32 "諔騵瑧ス - 媢桾 - 鬊Б珜齪А麔" -33 "闀蕍怉" -34 "トパ..." -35 "硻岊..." -36 "ツ楶藞抻" -37 "伝崽" -38 "抻祤伝崽虳纂堈媢桾" -39 "皕ト玿斕抻祤伝崽..." -40 "媢桾" -41 "傶棬" -42 "諔騵瑧ス - 媢桾" -43 "闀蕍" -44 "ツ楶藞抻" -45 "蹌藟" -46 "諔騵瑧ス - 齪А" -47 "譯纂堈" -48 "虳纂堈" -49 "玿韝醷嬣" -50 "呣戀蛺/渀睮粡囥" -51 "呣婽ス藺粡囥" -52 "呣饜纕粡囥" -53 "呣騰麵粡囥" -54 "呣昲鳷粡囥" -55 "髲砫" -56 "隞媢桾" -57 "隞媢桾﹜屼挭ツ楶" -58 "鼲婽媢桾" -59 "ャ鷋婽ス藺" -60 "ャ鷋邴藺" -61 "ャ鷋婽ス藺﹜屼挭" -62 "ャ鷋邴藺﹜屼挭" -63 "ャ砆" -64 "傶棬" -65 "怬鱗瑧謜..." -66 "ⅱБ隞麔..." -67 "諔騵瑧ス - 眃㪫稹殦 - ⅱБ隞麔" -68 "ツ楶藞抻" -69 "眃㪫稹殦" -70 "諔騵瑧ス - 眃㪫稹殦" -71 "颮羏" -72 "齡汃" -73 "棤嘵" -74 "驨卼禋げ" -75 "囷え赮伢諰咭" -76 "赮伢諰咭" -77 "驨卼諔騵瑧ス..." -78 "諔騵瑧ス攜覗鞁瑧謜柁昲鳷﹞\n霘藞謥>薚泂=驨椲瑧謜悒﹜テ适隞絒棬諔騵瑧ス﹞" -79 "鼲葎斕... 汒 %d %%" -80 "諔騵瑧ス" +18 "郵箱" +19 "檢查是否有新郵件" +20 "開啟收件箱" +21 "開啟收件箱" +22 "新郵件..." +23 "電子郵件 - 新郵件" +24 "新郵件" +25 "開啟..." +26 "電子郵件 - 開啟" +27 "開啟" +28 "銷毀已刪除的訊息" +29 "關閉" +30 "開啟" +31 "儲存為文字檔..." +32 "電子郵件 - 訊息 - 儲存為文字檔" +33 "複製到" +34 "列印..." +35 "尋找..." +36 "全部選取" +37 "刪除" +38 "取消刪除前一個訊息" +39 "從列表中取消刪除..." +40 "訊息" +41 "移動" +42 "電子郵件 - 訊息" +43 "複製" +44 "全部選取" +45 "編輯" +46 "電子郵件 - 文字" +47 "下一個" +48 "前一個" +49 "表頭縮寫" +50 "依日期/時間排序" +51 "依送件人排序" +52 "依主題排序" +53 "依大小排序" +54 "依狀態排序" +55 "察看" +56 "新訊息" +57 "新訊息,含括全部" +58 "轉送訊息" +59 "回覆送件人" +60 "回覆所有人" +61 "回覆送件人,含括" +62 "回覆所有人,含括" +63 "回信" +64 "移動" +65 "其他郵箱..." +66 "另存新檔..." +67 "電子郵件 - 附屬裝置 - 另存新檔" +68 "全部選取" +69 "附屬裝置" +70 "電子郵件 - 附屬裝置" +71 "概觀" +72 "工作" +73 "參照" +74 "關於項目" +75 "使用輔助說明" +76 "輔助說明" +77 "關於電子郵件..." +78 "電子郵件不清楚此郵箱的狀態。\n請選擇「確定」關閉郵箱後,再重新啟動電子郵件。" +79 "轉換中... 完成 %d %%" +80 "電子郵件" $ $ Strings from dtmail/AttachArea.C -81 "諔騵瑧ス" -82 "諔騵瑧ス" -83 "諔騵瑧ス" +81 "電子郵件" +82 "電子郵件" +83 "電子郵件" $ $ Strings from dtmail/Attachment.C -84 "%s 旂纂堈⑴欹⺼柁眃㪫稹殦﹞ 睎裱欹⺼蓇?" -85 "諔騵瑧ス" -86 "諔騵瑧ス" -87 "諔騵瑧ス" -88 "諔騵瑧ス" +84 "%s 是一個可執行的附屬裝置。 您想執行嗎?" +85 "電子郵件" +86 "電子郵件" +87 "電子郵件" +88 "電子郵件" $ $ Strings from dtmail/RoamCmds.C -89 "諔騵瑧ス - 怬鱗瑧謜" -90 "傶棬" -91 "トパ..." -92 "薚泂" -93 "鬊Б" -94 "鬊Б" -95 "鬊Б" -96 "覗洠" -97 "庍ボ" -98 "諔騵瑧ス - 庍ボ" -99 "諔騵瑧ス" -100 "薚泂" -101 "抻祤" -102 "睎儸ョ⺌棬ャ砆髓⼃柁藞禋斕\n囷え藹鼲婽鞥逑﹞ ⺌棬ャ砆欹⺼渀 \n﹜⺌棬ャ砆鞂眃蠹怉篎藞禋\n柁鼲婽汃鞄斕﹞ 睎薚泂衭絒棬⺌棬ャ砆蓇?\0" -103 "諔騵瑧ス" -104 "睎ョ .forward 麔淰斕儸欹⺼⺌棬ャ砆嶂冈﹞\n霘皕諰咭齪ス斕栯罐ヵ彘欐嶂冈﹜呥渿⼓皕 .forward 麔淰斕伝崽﹞\n棯纕箾扻悒﹜霘テ箹纂挴麟﹞\0" -105 "隓恄瞅絒 .vacation.msg 麔淰 -- 扽嬣蘋暐⑴ḷ﹞" -106 ".vacation.msg 麔淰儸Бョ﹞ 衭髓隞齪А抻鷥蓇?" -107 "隓恄瞅絒 .vacation.msg 麔淰 -- 扽嬣蘋暐⑴ḷ﹞" -108 "宎ョザ徦撋斕" +89 "電子郵件 - 其他郵箱" +90 "移動" +91 "列印..." +92 "確定" +93 "儲存" +94 "儲存" +95 "儲存" +96 "清空" +97 "改名" +98 "電子郵件 - 改名" +99 "電子郵件" +100 "確定" +101 "取消" +102 "您已在自動回信以外的選項中\n使用了轉送機能。 自動回信執行時 \n,自動回信會附加到該選項\n的轉送作業中。 您確定要啟動自動回信嗎?\0" +103 "電子郵件" +104 "您在 .forward 檔案中已執行自動回信程式。\n請從說明文件中查出如何停止此程式,並將它從 .forward 檔案中刪除。\n問題解決後,請再試一次此指令。\0" +105 "無法開啟 .vacation.msg 檔案 -- 沒有寫入許可權。" +106 ".vacation.msg 檔案已存在。 要以新文字取代嗎?" +107 "無法開啟 .vacation.msg 檔案 -- 沒有寫入許可權。" +108 "我正在休假當中" $ /* NL_COMMENT $ * This is the default value of the subject field in the $ * message that gets returned to the sender when vacation $ * is turned on. $ */ -109 "宎ョザ徦撋斕﹞\n嶉宎ャ坭悒﹜鞂櫇幺睎婽坭驨 \"$SUBJECT\" 柁瑧ス﹞\n" +109 "我正在休假當中。\n等我回來後,會閱讀您送來有關 \"$SUBJECT\" 的郵件。\n" $ @@ -218,8 +218,8 @@ $ */ $ $ Strings from dtmail/Undelete.C -115 "抻祤伝崽" -116 "驨椲" +115 "取消刪除" +116 "關閉" $ $ Strings from dtmail/SendMsgDialog.C @@ -238,54 +238,54 @@ $ * Message 64,65,221 are menu labels for "Move" pull down menu. $ * Message 66,68,69 are menu labels for "Attachment" pull down menu. $ * Message 71-77 are menu labels for "Help" pull down menu. $ */ -117 "婽罐" -118 "驨椲" -119 "隞媢桾" -120 "諔騵瑧ス" -121 "麔淰" -122 "屼挭..." -123 "諔騵瑧ス - 屼挭" -124 "屼挭" -125 "鬊Б珜齪А麔..." -126 "諔騵瑧ス - 鬊Б珜齪А麔" -127 "戀諲媢桾" -128 "汃珜...婽罐" -129 "驨椲" -130 "蹌藟" -131 "籔婘" -132 "椌抻" -133 "闀蕍" -134 "鶼漜" -135 "笱眻鶼漜" -136 "蠹巖挭芧" -137 "醷粡" -138 "覗崽" -139 "伝崽" -140 "ツ楶藞抻" -141 "眃㪫稹殦" -142 "嚌蠹麔淰..." -143 "諔騵瑧ス - 嚌蠹" -144 "嚌蠹" -145 "ⅱБ隞麔..." -146 "諔騵瑧ス - 眃㪫稹殦 - ⅱБ隞麔" -147 "伝崽" -148 "抻祤伝崽" -149 "庍ボ" -150 "ツ楶藞抻" +117 "送出" +118 "關閉" +119 "新訊息" +120 "電子郵件" +121 "檔案" +122 "含括..." +123 "電子郵件 - 含括" +124 "含括" +125 "儲存為文字檔..." +126 "電子郵件 - 儲存為文字檔" +127 "日誌訊息" +128 "作為...送出" +129 "關閉" +130 "編輯" +131 "還原" +132 "剪取" +133 "複製" +134 "黏貼" +135 "特殊黏貼" +136 "加方括弧" +137 "縮排" +138 "清除" +139 "刪除" +140 "全部選取" +141 "附屬裝置" +142 "增加檔案..." +143 "電子郵件 - 增加" +144 "增加" +145 "另存新檔..." +146 "電子郵件 - 附屬裝置 - 另存新檔" +147 "刪除" +148 "取消刪除" +149 "改名" +150 "全部選取" $ /* NL_COMMENT $ * This is an obsolete message. It is replaced by message 226 $ * in set 1. $ */ -151 "䬷ざ嵺眭" -152 "眭冈" -153 "⺌棬葎⺼" -154 "暋泂圊..." -155 "硻岊/彶庍..." -156 "捋А黀栯..." -157 "篲帣" -158 "諔騵瑧ス - 眃㪫稹殦" -159 "諔騵瑧ス - ャ砆" -160 "隞媢桾" +151 "顯示窗格" +152 "格式" +153 "自動換行" +154 "設定值..." +155 "尋找/更改..." +156 "拼字檢查..." +157 "模板" +158 "電子郵件 - 附屬裝置" +159 "電子郵件 - 回信" +160 "新訊息" $ /* NL_COMMENT $ * This is the label for a toggle item in a menu. When the item $ * is set to "Show List", the Attachment List is mapped in the @@ -296,23 +296,23 @@ $ */ $ $ Strings from dtmail/ViewMsgDialog.C -161 "闀蕍" -162 "ツ楶藞抻" -163 "蹌藟" -164 "ⅱБ隞麔..." -165 "諔騵瑧ス - 眃㪫稹殦 - ⅱБ隞麔" -166 "ツ楶藞抻" -167 "眃㪫稹殦" -168 "諔騵瑧ス - 眃㪫稹殦" -169 "諔騵瑧ス - 齪А" -170 "颮羏" -171 "齡汃" -172 "棤嘵" -173 "驨卼禋げ" -174 "囷え赮伢諰咭" -175 "赮伢諰咭" -176 "驨卼諔騵瑧ス..." -177 "諔騵瑧ス" +161 "複製" +162 "全部選取" +163 "編輯" +164 "另存新檔..." +165 "電子郵件 - 附屬裝置 - 另存新檔" +166 "全部選取" +167 "附屬裝置" +168 "電子郵件 - 附屬裝置" +169 "電子郵件 - 文字" +170 "概觀" +171 "工作" +172 "參照" +173 "關於項目" +174 "使用輔助說明" +175 "輔助說明" +176 "關於電子郵件..." +177 "電子郵件" $ @@ -320,30 +320,30 @@ $ Strings from dtmail/DtMailGenDialog.C $ /* NL_COMMENT $ * 178 and 179 are obsolete messages, replaced by messages -178 "諔騵瑧ス - 驨卼 Dtmail" +178 "電子郵件 - 關於 Dtmail" 179 "Dtmail Version 1.0" -180 "薚泂" -181 "薚泂" -182 "抻祤" +180 "確定" +181 "確定" +182 "取消" $ $ Strings from dtmail/FindDialog.C -183 "硻岊" +183 "尋找" $ /* NL_COMMENT $ * This is an obsolete message. Replaced by message 220 in set 1 $ */ -184 "硻岊呥藞抻ツ楶" -185 "覗崽" -186 "驨椲" -187 "赮伢諰咭" -188 "ス藺”" -189 "溈ス藺”" -190 "饜纕”" -191 "棓ヾ”" -192 "諔騵瑧ス - 硻岊" -193 "芼譯硻岊" -194 "芼ャ硻岊" +184 "尋找並選取全部" +185 "清除" +186 "關閉" +187 "輔助說明" +188 "收件人:" +189 "寄件人:" +190 "主題:" +191 "副本:" +192 "電子郵件 - 尋找" +193 "往下尋找" +194 "往回尋找" $ /* NL_COMMENT $ * This message replaces message 184 in set 1 $ */ @@ -371,82 +371,82 @@ $ Strings from dtmail/DtEditor.C $ $ Strings from dtmail/Editor.C -$ 195 "------------- 鼲婽媢桾瞅沓 -------------\n\n" -$ 196 "------------- 屼挭媢桾瞅沓 -------------\n\n" -$ 197 "------------- 鼲婽媢桾廎忒 -------------\n\n" -$ 198 "------------- 屼挭媢桾廎忒 -------------\n\n" +$ 195 "------------- 轉送訊息開始 -------------\n\n" +$ 196 "------------- 含括訊息開始 -------------\n\n" +$ 197 "------------- 轉送訊息結束 -------------\n\n" +$ 198 "------------- 含括訊息結束 -------------\n\n" $ $ Strings from dtmail/XmTextEditor.C -$ 199 "\n------------- 屼挭媢桾瞅沓 -------------\n" -$ 200 "\n------------- 屼挭媢桾廎忒 -------------\n" +$ 199 "\n------------- 含括訊息開始 -------------\n" +$ 200 "\n------------- 含括訊息結束 -------------\n" $ $ Strings from dtmail/DtEditor.C -$ 201 "\n------------- 屼挭媢桾瞅沓 -------------\n" -$ 202 "\n------------- 屼挭媢桾廎忒 -------------\n" +$ 201 "\n------------- 含括訊息開始 -------------\n" +$ 202 "\n------------- 含括訊息結束 -------------\n" $ $ Strings from dtmail/ComposeCmds.C -203 "諔騵瑧ス" -204 "隓恄唈ゥャ砆槉嵺﹞" -205 "諔騵瑧ス" -206 "隓恄唈ゥャ砆槉嵺﹞" -207 "諔騵瑧ス" -208 "隓恄唈ゥャ砆槉嵺﹞" -209 "諔騵瑧ス" -210 "隓恄唈ゥャ砆槉嵺﹞" -211 "諔騵瑧ス" -212 "篲帣攜Бョ﹞" -213 "諔騵瑧ス" -214 "篲帣ʊ驗儸銧骱﹞" -215 "諔騵瑧ス" -216 "奡襉忟攜冞﹜隓恄蟡蘋篲帣﹞" -217 "諔騵瑧ス" -218 "篲帣ʊ驗儸銧骱﹞" +203 "電子郵件" +204 "無法建立回信視窗。" +205 "電子郵件" +206 "無法建立回信視窗。" +207 "電子郵件" +208 "無法建立回信視窗。" +209 "電子郵件" +210 "無法建立回信視窗。" +211 "電子郵件" +212 "模板不存在。" +213 "電子郵件" +214 "模板似乎已損毀。" +215 "電子郵件" +216 "記憶體不足,無法載入模板。" +217 "電子郵件" +218 "模板似乎已損毀。" $ $ Strings from dtmail/SortCmd.C -219 "粡囥斕..." +219 "排序中..." -220 "ツ楶藞抻" -221 "ス謜" +220 "全部選取" +221 "收件箱" -222 "%a %b %d %k”%M" +222 "%a %b %d %k:%M" $ /* NL_COMMENT $ * The "%a %b %d %k:%M" is the time and date format, please refer to $ * strftime man page for explanation of each format. $ */ -223 "%a %b %d %H”%M" +223 "%a %b %d %H:%M" $ /* NL_COMMENT $ * The "%a %b %d %H:%M" is the time and date format, please refer to $ * strftime man page for explanation of each format. $ */ -224 "%a %b %d %k”%M" +224 "%a %b %d %k:%M" $ /* NL_COMMENT $ * The "%a %b %d %k:%M" is the time and date format, please refer to $ * strftime man page for explanation of each format. $ */ -225 "%a %b %d %H”%M" +225 "%a %b %d %H:%M" $ /* NL_COMMENT $ * The "%a %b %d %H:%M" is the time and date format, please refer to $ * strftime man page for explanation of each format. $ */ -226 "䬷ざト玿" +226 "顯示列表" $ String from Undelete.C, Deleted Messages window title -227 "諔騵瑧ス - Deleted Messages" +227 "電子郵件 - Deleted Messages" $ Strings from SendMsgDialog.C, Add Bcc, Delete Bcc menu buttons -228 "嚌蠹" -229 "伝崽" -230 "蒡婽" +228 "增加" +229 "刪除" +230 "傳送" $ /* NL_COMMENT $ * This string is displayed on the find dialog status line $ * when searching for a matching message. $ */ -231 "銌硻..." +231 "搜尋..." $ /* NL_COMMENT $ * These strings are displayed on the find dialog status line @@ -455,84 +455,84 @@ $ * string is displayed when there is one matching message, $ * and the second string is displayed when there is more than $ * one. The %d is the number of messages that matched. $ */ -232 "藞泂 1 媢桾" -233 "藞泂 %d 媢桾" +232 "選定 1 訊息" +233 "選定 %d 訊息" $ /* NL_COMMENT $ * This string is displayed on the find dialog status line when $ * no matching messages were found. $ */ -234 "岊攜怉砨嗃媢桾" +234 "找不到相符訊息" $ /* NL_COMMENT $ * These strings replace strings 178 and 179. They are used in $ * the "About Mailer" dialog box. $ */ -235 "諔騵瑧ス - 驨卼諔騵瑧ス" -236 "諔騵瑧ス 1.0 斿ヾ" +235 "電子郵件 - 關於電子郵件" +236 "電子郵件 1.0 版本" $set 2 -1 "諔騵瑧ス" -2 "ToolTalk 泲ゝ瑱⺼媊沓暋泂﹞ 諔騵瑧ス隓恄ョ扽 ToolTalk 柁硠扃譯欹⺼﹞\n霘閰箹絒棬 /usr/dt/bin/dtsession﹜迖鏺彄睎柁侇嗄磣隉婝﹞" +1 "電子郵件" +2 "ToolTalk 尚未進行起始設定。 電子郵件無法在沒有 ToolTalk 的情況下執行。\n請嘗試啟動 /usr/dt/bin/dtsession,或聯絡您的系統管理員。" -3 "槉嵺隓恄瑱⺼媊沓暋泂﹞ 廎忒斕﹞\n" -4 "諔騵瑧スЕ稹棯纕﹜\n\モ欹⺼漦嗢暋泂蠆諟﹜\n\邴髓隓恄欹⺼" -5 "睎攜怞暐⑴ḷ﹜隓恄髲砫 %s" +3 "視窗無法進行起始設定。 結束中。\n" +4 "電子郵件安裝有問題,\n\因執行群組設定錯誤,\n\所以無法執行" +5 "您不具許可權,無法察看 %s" $ /* NL_COMMENT $ * The %s is the name of the mailbox the user doesn't have $ * permission to view. $ */ -6 "瑧謜 %s 旂纂堈げ蠊﹜隓恄瞅絒﹞" -7 "隓恄渿 %s 覗洠﹞ モ珜⼓攜Бョ﹞" -8 "鬊Б棷 %s 儸覗洠﹞" -9 "蠆諟 - 隓恄覗洠 %s" -10 "諔騵瑧ス" +6 "郵箱 %s 是一個目錄,無法開啟。" +7 "無法將 %s 清空。 因為它不存在。" +8 "儲存區 %s 已清空。" +9 "錯誤 - 無法清空 %s" +10 "電子郵件" 11 "%s" -12 "諔騵瑧ス" -13 "諔騵瑧ス" -14 "眃㪫稹殦⽁禕ッ藞抻﹜懼逑欹⺼>ⅱБ隞麔\=挴麟渿⼓Б怉纂堈\n\麔淰蠡﹞" +12 "電子郵件" +13 "電子郵件" +14 "附屬裝置必須先選取,才能執行「另存新檔\」指令將它存到一個\n\檔案內。" -15 "蠆諟 - 隓恄抻痤 mailrc﹞" -16 "泲ゝ藞抻媢桾﹞" +15 "錯誤 - 無法取得 mailrc。" +16 "尚未選取訊息。" $ /* NL_COMMENT $ * No mail message has been selected by the user. $ */ -17 "睎儸蹌藟蝝 \"%s\"﹜羼鰹衭伝崽蓇?" -18 "蠆諟”隓恄屼挭麔淰 %s" -19 "眃㪫稹殦⽁禕ッ藞抻﹜懼逑欹⺼>ⅱБ隞麔=挴麟渿⼓Б怉纂堈\n\麔淰蠡﹞" +17 "您已編輯過 \"%s\",仍舊要刪除嗎?" +18 "錯誤:無法含括檔案 %s" +19 "附屬裝置必須先選取,才能執行「另存新檔」指令將它存到一個\n\檔案內。" -20 "眃㪫稹殦⽁禕ッ藞抻﹜懼逑欹⺼>ⅱБ隞麔=挴麟渿⼓Б怉纂堈\n\麔淰蠡﹞" +20 "附屬裝置必須先選取,才能執行「另存新檔」指令將它存到一個\n\檔案內。" -21 "諔騵瑧ス" +21 "電子郵件" $set 3 -1 "⺌棬鬊Б斕..." +1 "自動儲存中..." -2 "媊沓暋泂斕..." -3 "瑧謜 %s 攜Бョ﹞\n\睎裱唈ゥ楙堈ボ磝柁瑧謜蓇?" -4 "諔騵瑧ス" -5 "薚泂" -6 "瑧謜 %s 揧孍泂﹞\n\睎⑴髓え鷗棬柁巖冈箾崽孍泂﹜隑悒テ箹纂“\n\迖旂鏺彄睎柁侇嗄磣隉婝﹞" -7 "諔騵瑧ス" -8 "薚泂" -9 "薚泂" -10 "薚泂" -11 "薚泂" +2 "起始設定中..." +3 "郵箱 %s 不存在。\n\您想建立這個名稱的郵箱嗎?" +4 "電子郵件" +5 "確定" +6 "郵箱 %s 被鎖定。\n\您可以用手動的方式解除鎖定,然後再試一次;\n\或是聯絡您的系統管理員。" +7 "電子郵件" +8 "確定" +9 "確定" +10 "確定" +11 "確定" 12 "%s" -13 "媢桾 %d (ヅ %d 衧媢桾)﹜%d 衧隞媢桾﹜%d 衧儸伝崽" -14 "媢桾 %d (ヅ %d 衧媢桾)﹜%d 衧隞媢桾﹜%d 衧儸伝崽" +13 "訊息 %d (共有 %d 則訊息),%d 則新訊息,%d 則已刪除" +14 "訊息 %d (共有 %d 則訊息),%d 則新訊息,%d 則已刪除" $ /* NL_COMMENT $ * The user will see the following message display as: $ * "Message 3 of 10, 2 new, 6 deleted" $ * This means ??? -- Explain to translator. $ */ -15 "鬊Б斕..." -16 "諔騵瑧ス" +15 "儲存中..." +16 "電子郵件" $ /* NL_COMMENT $ * This dialog comes up when the user tries to quit the $ * mailbox and the user is asked if he wants to destroy @@ -542,68 +542,68 @@ $ /* NL_COMMENT $ * Messages 16 and 17 are no longer being used. They are $ * being replaced by messages 86 and 87. $ */ -17 "衭皕楙堈瑧謜斕曚骱睎簅ざ衭伝崽\n\柁媢桾蓇?" -18 "薚泂" -19 "抻祤" -20 "瞅絒瑧謜斕..." -21 "%s 儸Бョ﹞\n\衭适嬣蓇?" -22 "諔騵瑧ス" -23 "隓恄适嬣 %s﹞\n霘黀栯麔淰柁暐⑴ḷ﹜隑悒适箹纂﹞" -24 "諔騵瑧ス" -25 "鬊Б棷蟡蘋斕..." -26 "麔淰扢鼏衭罶媢" -27 "蟡蘋斕..." -28 "覗洠鬊Б棷" -29 "薚泂" -30 "薚泂" -31 "薚泂" -32 "ョ曚骱儸伝崽柁媢桾..." -33 "薚泂" +17 "要從這個郵箱中銷毀您標示要刪除\n\的訊息嗎?" +18 "確定" +19 "取消" +20 "開啟郵箱中..." +21 "%s 已存在。\n\要重寫嗎?" +22 "電子郵件" +23 "無法重寫 %s。\n請檢查檔案的許可權,然後重試一次。" +24 "電子郵件" +25 "儲存區載入中..." +26 "檔案夾摘要資訊" +27 "載入中..." +28 "清空儲存區" +29 "確定" +30 "確定" +31 "確定" +32 "正在銷毀已刪除的訊息..." +33 "確定" -34 "%s 攜Бョ﹞" -35 "隓恄瞅絒 %s﹞" -36 "隓恄崷殦奡襉忟﹞" -37 "眃㪫稹殦鼏衭" -38 "眃㪫稹殦" -39 "眃㪫稹殦" +34 "%s 不存在。" +35 "無法開啟 %s。" +36 "無法配置記憶體。" +37 "附屬裝置摘要" +38 "附屬裝置" +39 "附屬裝置" $ /* NL_COMMENT $ * "attachments" is the plural form of "attachment". $ */ -40 "眃㪫稹殦" -41 "儸伝崽" +40 "附屬裝置" +41 "已刪除" -42 "%s 儸Бョ﹞ 衭抻鷥蓇?" -43 "隓恄抻鷥 %s﹞" -44 "隓恄唈ゥ %s﹞" -45 "隓恄唈ゥ %s﹞" +42 "%s 已存在。 要取代嗎?" +43 "無法取代 %s。" +44 "無法建立 %s。" +45 "無法建立 %s。" -46 "覗洠鬊Б棷" -47 "%s 儸Бョ﹞\n衭适嬣蓇?" -48 "諔騵瑧ス" -49 "隓恄适嬣 %s﹞\n\霘黀栯麔淰暐⑴ḷ欄悒适箹﹞" -50 "諔騵瑧ス" -51 "隓恄唈ゥ %s﹞" -52 "諔騵瑧ス" -53 "隓恄嬣蘋 %s﹞" -54 "諔騵瑧ス" -55 "隓恄唈ゥ %s﹞" -56 "諔騵瑧ス" -57 "渿眃㪫稹殦庍ボ珜" -58 "ャ砆槉嵺屼纂咍ョ槉嵺\n\驨椲渀鞂蟺⼇柁齪А迖眃㪫稹殦﹜\n\睎薚泂衭驨椲ャ砆槉嵺蓇?" -59 "扽奡襉忟" -60 "奡襉忟攜冞﹜隓恄蟡蘋隃Б柁 .vacation.msg 麔淰﹞" -61 "諔騵瑧ス" -62 "隃Б柁 .vacation.msg 麔淰ʊ驗儸銧骱﹞" +46 "清空儲存區" +47 "%s 已存在。\n要重寫嗎?" +48 "電子郵件" +49 "無法重寫 %s。\n\請檢查檔案許可權之後重試。" +50 "電子郵件" +51 "無法建立 %s。" +52 "電子郵件" +53 "無法寫入 %s。" +54 "電子郵件" +55 "無法建立 %s。" +56 "電子郵件" +57 "將附屬裝置改名為" +58 "回信視窗含有一些在視窗\n\關閉時會遺失的文字或附屬裝置,\n\您確定要關閉回信視窗嗎?" +59 "沒有記憶體" +60 "記憶體不足,無法載入現存的 .vacation.msg 檔案。" +61 "電子郵件" +62 "現存的 .vacation.msg 檔案似乎已損毀。" -63 "藞抻纂堈媢桾坭傶棬﹞" -64 "藞抻纂堈媢桾坭闀蕍﹞" -65 "%d 堈媢桾傶怉 %s" -66 "%d 堈媢桾傶怉 %s" -67 "%d 堈媢桾闀蕍怉 %s" -68 "%d 堈媢桾闀蕍怉 %s" -69 "槉棷儸Бョ﹞ 霘渿⼓菙⺍虳磞﹞" +63 "選取一個訊息來移動。" +64 "選取一個訊息來複製。" +65 "%d 個訊息移到 %s" +66 "%d 個訊息移到 %s" +67 "%d 個訊息複製到 %s" +68 "%d 個訊息複製到 %s" +69 "視區已存在。 請將它提至前端。" $ /* NL_COMMENT $ * The current mail message selected is already displayed in a separate $ * window. Therefore this 'separate' window will be raised in front @@ -612,22 +612,22 @@ $ */ -70 "檎嬣隓恄庋踽柁瑧ス..." -71 "諔騵瑧ス" -72 "薚泂" -73 "抻祤" -74 "薚泂" +70 "撰寫無法投遞的郵件..." +71 "電子郵件" +72 "確定" +73 "取消" +74 "確定" -75 "薚泂" -76 "薚泂" +75 "確定" +76 "確定" -77 "睎纂堈儸瞅絒柁眃㪫稹殦﹜⑴逑屼泲ゝ鬊Б埏庍柁蠡晥﹞\n蒡婽楙堈媢桾渿鞂蛁灡縋楙堈儸瞅絒柁眃㪫稹殦\n柁椵稌﹞ ズ泲ゝ鬊Б埏庍柁蠡晥渿攜鞂珜楙堈媢桾柁\n纂楶ソ﹞ 睎⑴髓囷え>ⅱБ隞麔=髓鬊Б埏庍柁蠡晥﹜ョ椵稌揧\n蛁灡髓悒﹜攜蝝埏庍柁蠡晥渿攜鞂珜楙堈眃㪫稹殦\n柁纂楶ソ﹞" -78 "暋泂瑧ス藞禋..." -79 "曚骱呥媏罐" -80 "攜衭曚骱﹜媏罐" -81 "楙堈眃㪫稹殦⑴逑屼⑴髓楸╩适銧掑柁\n\杬麟﹞ 唈諞睎瑊ンッ薚泂髓悒﹜テ欹⺼楙堈眃㪫稹殦﹞ ヵ峈睎薚泂﹜霘挹>薚泂=“ 霘挹>抻祤=﹜髓抻祤欹⺼﹞" -82 "伀藺ョ囷え楙堈砆謜﹞\n睎裱衭衭忴孍泂痼魌謦汃蓇〝" -83 "諔騵瑧ス隓恄蘀抻孍泂痼魌謦汃楙堈砆謜﹞\n睎裱衭髓椔幺柁昲鳷瞅絒楙堈砆謜蓇〝" +77 "您有一個已開啟的附屬裝置,可能含有尚未儲存修改的內容。\n傳送這個訊息將會破壞與這個已開啟的附屬裝置\n的連接。 任何尚未儲存修改的內容將不會成為這個訊息的\n一部份。 您可以使用「另存新檔」以儲存修改的內容,在連接被\n破壞以後,不過修改的內容將不會成為這個附屬裝置\n的一部份。" +78 "設定郵件選項..." +79 "銷毀並退出" +80 "不要銷毀,退出" +81 "這個附屬裝置可能含有可以造成嚴重損害的\n\命令。 建議您最好先確定以後,再執行這個附屬裝置。 如果您確定,請按「確定」; 請按「取消」,以取消執行。" +82 "有別人正在使用這個信箱。\n您想要要求鎖定單獨操作嗎?" +83 "電子郵件無法獲取鎖定單獨操作這個信箱。\n您想要以唯讀的狀態開啟這個信箱嗎?" $ /* NL_COMMENT $ * The following sentence means %d number of mail messages have @@ -635,7 +635,7 @@ $ * been deleted from the mail folder. This is the plural form $ * of the message that gets printed if more than one message $ * is moved. $ */ -84 "伝崽 %d 媢桾" +84 "刪除 %d 訊息" $ /* NL_COMMENT $ * The following sentence means %d number of mail messages have @@ -643,92 +643,92 @@ $ * been deleted from the mail folder. This is the singular $ * form of the message that gets printed if only one message $ * is moved. $ */ -85 "伝崽 %d 媢桾" -86 "黀栯隞柁瑧ス..." +85 "刪除 %d 訊息" +86 "檢查新的郵件..." $ /* NL_COMMENT $ * This dialog comes up when the user tries to quit the $ * mailbox. The user is asked if they want to destroy $ * the deleted messages. $ */ -87 "諔騵瑧ス - 驨椲" -88 "曚骱伝崽柁媢桾呥驨椲楙堈砆謜蓇〝" -89 "曚骱呥驨椲" -90 "砉絅呥驨椲" +87 "電子郵件 - 關閉" +88 "銷毀刪除的訊息並關閉這個信箱嗎?" +89 "銷毀並關閉" +90 "保留並關閉" $ /* NL_COMMENT $ * Post a dialog explaining that the action was invalid $ */ -91 "隓恄欹⺼隓淩柁棬汃﹞" +91 "無法執行無效的動作。" $ /* NL_COMMENT $ * Post a dialog explaining that the action failed. $ */ -92 "欹⺼棬汃⼇絫〞" -93 "藞泂柁頝踛 %s 翍逑欿欹⺼﹞\n挹纂譯>薚泂=髓欹⺼﹜迖>抻祤=髓廎忒﹞" -94 "諔騵瑧ス隓恄痼魌孍泂楙堈\n砆謜﹜モ珜侇嗄ゝャ鶈﹞\n\nⅲョ渀﹜睎⑴髓藞謥⑩瞅絒楙堈砆謜\n珜椔幺昲鳷﹜迖瞅絒楙堈砆謜珜幺嬣昲鳷゛攜痼魌\n孍泂﹜(ⅲョ隓藺囷え楙堈砆謜渀﹜懼ヵ囷え)﹞" -95 "椔幺" -96 "幺嬣" +92 "執行動作失敗!" +93 "選定的圖像 %s 真正能夠執行。\n按一下「確定」以執行,或「取消」以結束。" +94 "電子郵件無法單獨鎖定這個\n信箱,因為系統未回應。\n\n只有在此時,您可以選擇去開啟這個信箱\n為唯讀狀態,或開啟這個信箱為讀寫狀態而不單獨\n鎖定,(只有在無人使用這個信箱時,才如此使用)。" +95 "唯讀" +96 "讀寫" $set 5 -1 "諔騵瑧ス" -2 "諔騵瑧ス" -3 "蚍婘穔婽罐媢桾\n\ 衧眃㪫稹殦斕邴汃柁埏庍渿\n\ 鞂蟺⼇﹞" +1 "電子郵件" +2 "電子郵件" +3 "若原樣送出此訊息\n\ 則附屬裝置中所作的修改將\n\ 會遺失。" $ /* NL_COMMENT $ * The user tried to send a messages without saving changes in $ * some open attachments. This warning makes sure that is what $ * the user intended. $ */ -4 "霘ⅲ藞抻纂堈眃㪫稹殦\n\ 隑悒藞抻>庍ボ=" +4 "請只選取一個附屬裝置\n\ 然後選取「改名」" $ /* NL_COMMENT $ * Mailer ran out of memory. Ask the user to quit some other $ * applications so there will be more memory available. $ */ -5 "媢桾斕栲咍⻏彴諟﹜\nモ珜⼓呥ゝ棤嘵怉侇嗄斕ズ儸洁柁囷え炟﹞\n霘薚泂旂匢邴柁⻏彴忔淩﹜隑悒テ箹纂﹞" +5 "訊息中某些位址有誤,\n因為它並未參照到系統中任何已知的使用者。\n請確定是否所有的位址均有效,然後再試一次。" $ /* NL_COMMENT $ * Mailer ran out of memory. Ask the user to quit some other $ * applications so there will be more memory available. $ */ -6 "諔騵瑧ス 柁奡襉忟攜冞﹜隓恄婽罐\n楙堈媢桾﹞\n霘廎忒怬鱗鶈え嶂冈﹜\n隑悒テ蒡纂﹞" +6 "電子郵件 的記憶體不足,無法送出\n這個訊息。\n請結束其他應用程式,\n然後再傳一次。" $ /* NL_COMMENT $ * There was an error from the mail transport (sendmail). $ */ -7 "ョ蒡婽睎柁媢桾渀蠆諟僛ぇ﹞\n霘黀栯楙堈媢桾旂匢揧怉﹞ ヵ峈泲ゝ怉﹜\n迖暐睎錛衭适蒡纂﹞" +7 "在傳送您的訊息時有錯誤發生。\n請檢查這個訊息是否被收到。 如果尚未收到,\n或許您需要重傳一次。" $ /* NL_COMMENT $ * User trying to send a message that has no addressed recipient. $ */ -8 "霘閰箹>蒡婽=ョ挴泂楙堈媢桾柁稌炟欄悒﹜\n\ョ ス藺:, 棓ヾ:, 迖 Bcc: 唫⻏﹞" +8 "請嘗試「傳送」在指定這個訊息的接收者之後,\n\在 收件人:, 副本:, 或 Bcc: 欄位。" $set 12 -1 "眃㪫稹殦" -2 "眃㪫稹殦" +1 "附屬裝置" +2 "附屬裝置" 3 "displayCount" -4 "隓恄椵稌 FIFO 麔淰”%s" -5 "隓恄椵稌А蠣笱眻麔淰”%s" -6 "隓恄椵稌げ蠊”%s" -7 "隓恄椵稌棷栠笱眻麔淰”%s" -8 "隓恄椵稌 socket 麔淰”%s" +4 "無法連接 FIFO 檔案:%s" +5 "無法連接字元特殊檔案:%s" +6 "無法連接目錄:%s" +7 "無法連接區段特殊檔案:%s" +8 "無法連接 socket 檔案:%s" $set 13 -1 "隓恄唈ゥ" -2 "隓恄嬣蘋" +1 "無法建立" +2 "無法寫入" $ $ Strings from dtmail/AttachCmds.C $set 14 -1 "蠹蘋眃㪫稹殦" -2 "隓恄瞅絒 %s" -3 "隓恄椵稌 FIFO 麔淰”%s" -4 "隓恄椵稌А蠣笱眻麔淰”%s" -5 "隓恄椵稌げ蠊”%s" -6 "隓恄椵稌棷栠笱眻麔淰”%s" -7 "隓恄椵稌 socket 麔淰”%s" -8 "隓恄瞅絒 %s" -9 "諔騵瑧ス - 眃㪫稹殦庍ボ" -10 "諰咭" -11 "渿眃㪫稹殦鬊Б珜" +1 "加入附屬裝置" +2 "無法開啟 %s" +3 "無法連接 FIFO 檔案:%s" +4 "無法連接字元特殊檔案:%s" +5 "無法連接目錄:%s" +6 "無法連接區段特殊檔案:%s" +7 "無法連接 socket 檔案:%s" +8 "無法開啟 %s" +9 "電子郵件 - 附屬裝置改名" +10 "說明" +11 "將附屬裝置儲存為" $set 15 -1 "睎儸槴泲ゝ鬊Б柁埏庍蠡晥﹞\n睎⑴髓鬊Б睎柁埏庍蠡晥﹜迖勂蛫睎柁埏庍蠡晥﹜\n迖珃ャ睎譫髱緷柁⻏殦﹞" -2 "鬊Б" -3 "勂蛫" +1 "您已經有尚未儲存的修改內容。\n您可以儲存您的修改內容,或放棄您的修改內容,\n或返回您上次對話的位置。" +2 "儲存" +3 "放棄" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/DtWidget.msg b/cde/programs/localized/zh_TW.UTF-8/msg/DtWidget.msg index 409abbb39..0fc0a5604 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/DtWidget.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/DtWidget.msg @@ -63,11 +63,11 @@ $ ** ** $ ************************************************************* $ Default value for DtNdialogCloseButtonLabel resource. $ This string is used for all "Close" buttons in all dialogs. -1 驨椲 +1 關閉 $ Default value for DtNdialogHelpButtonLabel resource. $ This string is used for all "Help" buttons in all dialogs. -2 赮伢諰咭 +2 輔助說明 $set 3 $ ************************************************************* @@ -83,26 +83,26 @@ $ ********************************************** $ Default value for DtNformatSettingsDialogTitle resource, $ title of format settings dialog -1 眭冈暋泂 +1 格式設定 $ Default values for DtNlMarginFieldLabel and DtNrMarginFieldLabel resources, $ labels for margin fields in Format Settings dialog -2 ⑶饡盉” -3 ⼢饡盉” +2 右邊界: +3 左邊界: $ Default values for DtNlAlignToggleLabel, DtNrAlignToggleLabel, $ DtNjustifyToggleLabel, and DtNcenterToggleLabel resources, $ labels for justification radio buttons in Format Settings dialog -4 氋⼢髱錔 -5 氋⑶髱錔 -6 汒ツ髱錔 -7 祂斕 +4 靠左對齊 +5 靠右對齊 +6 完全對齊 +7 居中 $ Default values for DtNformatParagraphButtonLabel and $ DtNformatAllButtonLabel resources, $ labels for paragraph and all buttons in Format Settings dialog -8 栠瘥 -9 ツ楶 +8 段落 +9 全部 $ ****************************************************************** $ ** module Editor.c ** @@ -111,30 +111,30 @@ $ ****************************************************************** $ Default value for DtNspellDialogTitle resource, $ title of the Spell dialog -20 捋А +20 拼字 $ Default value for DtNfindDialogTitle resource, $ title of the Find/Change dialog -21 硻岊/彶庍 +21 尋找/更改 $ Default value for DtNmisspelledListLabel resource, $ label for list of unrecognized and misspelled words -22 捋А蠆諟” +22 拼字錯誤: $ Default value for DtNfindFieldLabel resource, $ label of field in which user types string for which to search. -23 硻岊” +23 尋找: $ Default value for DtNchangeFieldLabel resource, $ label of field in which user types the replacement string -24 彶庍珜” +24 更改為: $ Default values for DtNfindButtonLabel, DtNchangeButtonLabel, and $ DtNchangeAllButtonLabel resources, $ labels for find, change, and change all buttons in Find/Change dialog -25 硻岊 -26 彶庍 -27 ツ楶彶庍 +25 尋找 +26 更改 +27 全部更改 $ ****************************************************************** $ ** module: SearchDlg. ** @@ -143,11 +143,11 @@ $ ** specified string or word. ** $ ****************************************************************** $ Used to display "Unable to find the string FOO in the current document." $ Note: Do not localize the characters %s. -30 ョ隃⺼齪ス斕岊攜怉А⻌ %s﹞ +30 在現行文件中找不到字串 %s。 $ Title for general information dialog (e.g. "Find/Change dialog can't $ find word in document."). -31 罶媢 +31 資訊 $ *********************************************************** $ ** module Editor.c ** @@ -156,15 +156,15 @@ $ *********************************************************** $ Default value for DtNcurrentLineLabel resource, $ label for the display showing the current insert cursor line -40 ⺼磍” +40 行號: $ Default value for DtNtotalLineCountLabel resource, $ label for the display showing the total number of lines in the document -41 鐠⺼禨” +41 總行數: $ Default value for DtNoverstrikeLabel resource, $ label used to indicate Editor is in overstrike (overtype) mode. -42 鷋嬣 +42 覆寫 $ Default value for DtNinsertLabel resource, $ label used to indicate Editor is in insert mode. @@ -200,12 +200,12 @@ $ ** ** $ ************************************************************* $ Warning messsage $ Note: do not localize the chars XmNmenuPost -1 XmNmenuPost 柁圊攜ポ恄﹞ +1 XmNmenuPost 的值不合法。 $ Error messsages $ Note: do not localize the chars DtMenuButtonWidget in messages 2 and 3 -2 DtMenuButtonWidget”隓淩柁譫嬬衢逑玿﹞ -3 DtMenuButtonWidget”隓淩柁衢逑玿﹞ +2 DtMenuButtonWidget:無效的上層功能表。 +3 DtMenuButtonWidget:無效的次功能表。 $set 5 $ ************************************************************* @@ -216,38 +216,38 @@ $ ************************************************************* $ Warning messsages $ Note: do not localize the chars DtComboBoxWidget in messages 1 - 11 $ Note: do not localize the chars alignment and DtALIGNMENT_CENTER -1 DtComboBoxWidget”隓淩柁 alignment 罶鳲 (蠡泂圊珜 DtALIGNMENT_CENTER)﹞ +1 DtComboBoxWidget:無效的 alignment 資源 (內定值為 DtALIGNMENT_CENTER)。 $ Note: do not localize the chars marginHeight -2 DtComboBoxWidget”隓淩柁 marginHeight 罶鳲 (蠡泂圊珜 2)﹞ +2 DtComboBoxWidget:無效的 marginHeight 資源 (內定值為 2)。 $ Note: do not localize the chars marginWidth -3 DtComboBoxWidget”隓淩柁 marginWidth 罶鳲 (蠡泂圊珜 2)﹞ +3 DtComboBoxWidget:無效的 marginWidth 資源 (內定值為 2)。 $ Note: do not localize the chars horizontalSpacing -4 DtComboBoxWidget”隓淩柁 horizontalSpacing 罶鳲 (蠡泂圊珜 0)﹞ +4 DtComboBoxWidget:無效的 horizontalSpacing 資源 (內定值為 0)。 $ Note: do not localize the chars verticalSpacing -5 DtComboBoxWidget”隓淩柁 verticalSpacing 罶鳲 (蠡泂圊珜 0)﹞ +5 DtComboBoxWidget:無效的 verticalSpacing 資源 (內定值為 0)。 $ Note: do not localize the chars orientation and DtRIGHT -6 DtComboBoxWidget”隓淩柁 orientation 罶鳲 (蠡泂圊珜 DtRIGHT)﹞ +6 DtComboBoxWidget:無效的 orientation 資源 (內定值為 DtRIGHT)。 $ Note: do not localize the chars itemCount -7 DtComboBoxWidget”隓淩柁 itemCount 罶鳲 (蠡泂圊珜 0)﹞ +7 DtComboBoxWidget:無效的 itemCount 資源 (內定值為 0)。 $ Note: do not localize the chars selectedPosition -8 DtComboBoxWidget”隓淩柁 selectedPosition 罶鳲 (蠡泂圊珜 to 0)﹞ +8 DtComboBoxWidget:無效的 selectedPosition 資源 (內定值為 to 0)。 $ Note: do not localize the chars textField -9 DtComboBoxWidget”隓恄暋泂 textField 罶鳲﹞ +9 DtComboBoxWidget:無法設定 textField 資源。 $ Note: do not localize the chars DtComboBoxSetItem -10 DtComboBoxWidget”隓恄岊怉禋げ坭暋泂 (DtComboBoxSetItem)﹞ +10 DtComboBoxWidget:無法找到項目來設定 (DtComboBoxSetItem)。 $ Note: do not localize the chars DtComboBoxSelectItem -11 DtComboBoxWidget”隓恄岊怉禋げ坭藞抻 (DtComboBoxSelectItem)﹞ -12 彶庍騰麵⼇絫﹞⑴逑旂瑊畈柁禋げ熅蝝⑴え嬥唄邴襓茬﹞ +11 DtComboBoxWidget:無法找到項目來選取 (DtComboBoxSelectItem)。 +12 更改大小失敗。可能是最長的項目超過可用寬度所導致。 $ Label value -13 篞ポ巖涺 +13 綜合方框 $ Error message $ Note: do not localize the chars String and XmRType -14 cvtStringToType”棤禨蠆諟﹜String 怉 XmRType 柁鼲葎攜錛衭籧⼃柁棤禨 +14 cvtStringToType:參數錯誤,String 到 XmRType 的轉換不需要額外的參數 $ Warning message -15 DtComboBoxDeletePos”棤禨蠆諟﹜隓淩柁⻏殦圊 +15 DtComboBoxDeletePos:參數錯誤,無效的位置值 $set 6 $ ************************************************************* @@ -258,32 +258,32 @@ $ ************************************************************* $ Warning messsages $ Note: do not localize the chars DtSpinBoxWidget in messages 1 - 14 $ Note: do not localize the chars arrowSensitivity and DtARROWS_SENSITIVE -1 DtSpinBoxWidget”隓淩柁 arrowSensitivity 罶鳲 (蠡泂圊珜 DtARROWS_SENSITIVE)﹞ +1 DtSpinBoxWidget:無效的 arrowSensitivity 資源 (內定值為 DtARROWS_SENSITIVE)。 $ Note: do not localize the chars alignment and DtALIGNMENT_CENTER -2 DtSpinBoxWidget”隓淩柁 alignment 罶鳲 (蠡泂圊珜 DtALIGNMENT_CENTER)﹞ +2 DtSpinBoxWidget:無效的 alignment 資源 (內定值為 DtALIGNMENT_CENTER)。 $ Note: do not localize the chars intialDelay -3 DtSpinBoxWidget”隓淩柁 initialDelay 罶鳲 (蠡泂圊珜 250)﹞ +3 DtSpinBoxWidget:無效的 initialDelay 資源 (內定值為 250)。 $ Note: do not localize the chars marginHeight -4 DtSpinBoxWidget”隓淩柁 marginHeight 罶鳲 (蠡泂圊珜 2)﹞ +4 DtSpinBoxWidget:無效的 marginHeight 資源 (內定值為 2)。 $ Note: do not localize the chars marginWidth -5 DtSpinBoxWidget”隓淩柁 marginWidth 罶鳲 (蠡泂圊珜 2)﹞ +5 DtSpinBoxWidget:無效的 marginWidth 資源 (內定值為 2)。 $ Note: do not localize the chars arrowLayout and DtARROWS_BEGINNING -6 DtSpinBoxWidget”隓淩柁 arrowLayout 罶鳲 (蠡泂圊珜 DtARROWS_BEGINNING)﹞ +6 DtSpinBoxWidget:無效的 arrowLayout 資源 (內定值為 DtARROWS_BEGINNING)。 $ Note: do not localize the chars repeatDelay -7 DtSpinBoxWidget”隓淩柁 repeatDelay 罶鳲 (蠡泂圊珜 200)﹞ +7 DtSpinBoxWidget:無效的 repeatDelay 資源 (內定值為 200)。 $ Note: do not localize the chars itemCount -8 DtSpinBoxWidget”隓淩柁 itemCount 罶鳲 (蠡泂圊珜 0)﹞ +8 DtSpinBoxWidget:無效的 itemCount 資源 (內定值為 0)。 $ Note: do not localize the chars position in messages 9 and 10 -9 DtSpinBoxWidget”隓淩柁 position 罶鳲 (蠡泂圊珜 0)﹞ -10 DtSpinBoxWidget”隓淩柁 position 罶鳲 (蠡泂圊珜 minimum)﹞ +9 DtSpinBoxWidget:無效的 position 資源 (內定值為 0)。 +10 DtSpinBoxWidget:無效的 position 資源 (內定值為 minimum)。 $ Note: do not localize the chars decimalPoints -11 DtSpinBoxWidget”隓淩柁 decimalPoints 罶鳲 (蠡泂圊珜 0)﹞ +11 DtSpinBoxWidget:無效的 decimalPoints 資源 (內定值為 0)。 $ Note: do not localize the chars minimum -12 DtSpinBoxWidget”隓淩柁 minimum 罶鳲 (蠡泂圊珜 maximum)﹞ +12 DtSpinBoxWidget:無效的 minimum 資源 (內定值為 maximum)。 $ Note: do not localize the chars textField -13 DtSpinBoxWidget”隓恄暋泂 textField 罶鳲﹞ +13 DtSpinBoxWidget:無法設定 textField 資源。 $ Note: do not localize the chars DtSpinBoxSetItem -14 DtSpinBoxWidget”隓恄岊怉禋げ坭暋泂 (DtSpinBoxSetItem)﹞ +14 DtSpinBoxWidget:無法找到項目來設定 (DtSpinBoxSetItem)。 $ Label value -15 藞禋巖涺 +15 選項方框 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/MotifApp.msg b/cde/programs/localized/zh_TW.UTF-8/msg/MotifApp.msg index f374eb244..10d077e89 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/MotifApp.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/MotifApp.msg @@ -32,7 +32,7 @@ $quote " $set 1 -1 "睎翍柁衭欹⺼楙堈杬麟蓇?" +1 "您真的要執行這個命令嗎?" $ ------------------------------------- $ MotifApp/DialogManager.C $ @@ -40,8 +40,8 @@ $ $quote " -2 "薚泂" -3 "抻祤" +2 "確定" +3 "取消" $ ------------------------------------- $ MotifApp/Help.C $ @@ -49,9 +49,9 @@ $ $quote " -4 "DtMail 斿ヾ髱緷" -5 "DtMail 斿ヾ髱緷" -6 "睎⽁禕ョ鶈え嶂冈斕藞抻纂堈蠣ス﹞\n" +4 "DtMail 版本對話" +5 "DtMail 版本對話" +6 "您必須在應用程式中選取一個元件。\n" 7 "DtMail Help" 8 "DtMail Help" @@ -67,13 +67,13 @@ $ $quote " -10 "挴麟隓恄籔婘﹞羼鰹衭凭㶴蓇?" +10 "此指令無法還原。仍舊要繼續嗎?" $quote " $set 2 -1 "藞謥蠆諟﹜隓恄凭㶴\n" -2 "囷え炟⺌⺼斕黫藞謥﹞\n" +1 "選擇錯誤,無法繼續\n" +2 "使用者自行中斷選擇。\n" $ ------------------------------------- $ MotifApp/QuitCmd.C $ diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/SUNW_TOOLTALK.msg b/cde/programs/localized/zh_TW.UTF-8/msg/SUNW_TOOLTALK.msg index 907fc0b4b..0038ae0a7 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/SUNW_TOOLTALK.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/SUNW_TOOLTALK.msg @@ -1,1168 +1,1168 @@ $ $XConsortium: SUNW_TOOLTALK.msg /main/3 1996/07/24 19:02:24 drk $ $quote " $set 1 -3 "ョ %s 柁 rpc.ttdbserverd 柁 clnt_create ⼇絫%s" -4 "'蠆諟”ョ %s 柁 rpc.ttdbserverd 扽欹⺼" -6 "ɵ峇蟟斿ヾ (%s) 縋罶涷梬玿斿ヾ (%s) 攜嗃﹞\霘欹⺼斿ヾ磍謑珜 %s 柁罶涷梬ɵ峇蟟" -7 "閰箹瞅絒罶涷梬玿 %s”%s ⼇絫" -14 "隓恄伝崽 X 淂槉嵺笱迒 %s 襬夼瞃栠\汃鞄" -15 "⻏彴斿ヾ珜 %d﹜ɪ宎ⅲ諝痤 %d! (⻏彴”<%s>)" -17 "隓恄箾庰 X 䬷ざ蟟ボ磝”\"%s\"" -18 "麔淰 \"%s\" 柁媢桾隓恄⻗ト﹜モ珜僛ぇ蠡楶蠆諟 %\d" -19 "隓恄伝崽ゝ汃え柁瞃栠汃鞄 <%s> 皕麔淰 \"%s\" 柁ḷ羝ト玿斕﹜モ珜僛ぇ蠡楶蠆諟 %d" -20 "隓恄伝崽ゝ僳奡ḷ羝柁瞃栠汃鞄 <%s> 皕麔淰 \"%s\" 柁ḷ羝ト玿斕﹜モ珜僛ぇ蠡楶蠆諟 %d" -21 "tttracefile 諴恄蠆諟⺼磍”\n%s" -22 "隓恄搢隉ョ $%s 柁 tttracefile" -23 "ヵ峈翍柁 UID 攜嶉卼淩柁 UID﹜衧攜蠢暐寍麶" -24 "稌抰衭忴" -25 "洠く齪ス靨隓麔淰" -26 "隓恄蘀痤 messageID“謦汃躂暐隓恄抻祤﹜モ珜 tt_m\essage_arg_val()" -27 "隓恄抻痤簅纕“齪ス渿扽簅纕﹜モ珜 tt_message_arg_v\al()" -28 "攜咭柁 opnum 晻傶" +3 "在 %s 的 rpc.ttdbserverd 的 clnt_create 失敗%s" +4 "'錯誤:在 %s 的 rpc.ttdbserverd 沒有執行" +6 "伺服器版本 (%s) 與資料庫表版本 (%s) 不符。\請執行版本號碼為 %s 的資料庫伺服器" +7 "嘗試開啟資料庫表 %s:%s 失敗" +14 "無法刪除 X 根視窗特性 %s 公告此階段\作業" +15 "位址版本為 %d,但我只認得 %d! (位址:<%s>)" +17 "無法解析 X 顯示器名稱:\"%s\"" +18 "檔案 \"%s\" 的訊息無法佇列,因為發生內部錯誤 %\d" +19 "無法刪除未作用的階段作業 <%s> 從檔案 \"%s\" 的權益列表中,因為發生內部錯誤 %d" +20 "無法刪除未登記權益的階段作業 <%s> 從檔案 \"%s\" 的權益列表中,因為發生內部錯誤 %d" +21 "tttracefile 語法錯誤行號:\n%s" +22 "無法處理在 $%s 的 tttracefile" +23 "如果真正的 UID 不等於有效的 UID,則不允許追蹤" +24 "接受要求" +25 "空白文件且無檔案" +26 "無法獲得 messageID;此操作也許無法取消,因為 tt_m\essage_arg_val()" +27 "無法取得標題;文件將沒有標題,因為 tt_message_arg_v\al()" +28 "不明的 opnum 偏移" $set 2 -2 "ptype %s - 僛隃隓恄藑籫柁麷伀奡磍" -3 "扽椵稌襓ホ柁蝒婽" -4 "纂堈 ToolTalk 剟鷓鞥ョ⑴髓揧楈洁抻ャ⼓怉蛺柁媢桾欄虳﹜砅儸槴撋鞥藹" -5 "ョ楈洁 ToolTalk 剟鷓鞥⑴髓 \抻ャ纂堈媢桾渀﹜椵稌斕黫" -6 "ⅱ纂堈瞃栠汃鞄ョ欹⺼ (饜鞥=%s, pid=%d)" -7 "隓恄椵彄婘ッ剚夼柁瞃栠汃鞄 (饜鞥=%s, pid=%d)“モ徦暋⼓儸撋鞥..." -8 "隓恄箾庰襬夼柁瞃栠汃鞄 id“モ髓宎⺌儷柁 id 适嬣..." -9 "%s 旂纂堈 version %d 麷倛柁罶涷梬﹜楙纂斿ⅲ逑幺抻 versions %d 髓轡彶柁斿ヾ" -10 "麷倛罶涷梬”%s 斕柁麷倛隓恄箾謑﹞躂暐旂儸銧骱﹞" -11 "适嬣 %s" -12 "芩靬 ToolTalk 麷伀奡磍柁攜咭㪫迒 <%s>..." -13 "ttce2xdr ⼇絫“(昲鳷=%d)“Classing Engine \"囷え炟\" 罶涷梬斕柁麷伀扽鼲葎..." -14 "闀蕍 ISAM 奡蠊" -15 "ISAM 麔淰ゝ瞅絒" -16 "ISAM 鰱禨攜ポ恄" -17 "ISAM 耰萺訒蠣攜ポ恄" -18 "瞅絒霽ロ ISAM 麔淰" -19 "ISAM 麔淰眭冈蠆諟" -20 "ISAM 盻渫えБ抻" -21 "ISAM 奡蠊揧孍泂" -22 "ISAM 耰儸Бョ" -23 "ISAM 耰旂饜耰" -24 "ISAM 麔淰瞅沓迖廎忒" -25 "隓恄岊怉 ISAM 奡蠊" -26 "扽隃⺼柁 ISAM 奡蠊" -27 "ISAM 麔淰揧孍泂" -28 "ISAM 麔ボ霽畈" -29 "ISAM 隓恄崷殦奡襉忟" -30 "ISAM RPC 蝺渀" -31 "ISAM TCP/IP 椵稌斕黫" -32 "隓恄椵稌 ISAM ɵ峇蟟" -33 "隓恄鼲抻 ISAM 罶涷" -34 "扽ヾ磞 SAM 窵嶂冈" -35 "ISAM 僛ぇ蠡楶╩适蠆諟" -36 "ISAM Locale/LANG 攜嗃" +2 "ptype %s - 發現無法辨識的類別記號" +3 "沒有連接導向的運送" +4 "一個 ToolTalk 客戶機在可以被通知取回它到期的訊息之前,便已經當機了" +5 "在通知 ToolTalk 客戶機可以 \取回一個訊息時,連接中斷" +6 "另一個階段作業正在執行 (主機=%s, pid=%d)" +7 "無法連絡原先宣告的階段作業 (主機=%s, pid=%d);因此假設它已當機..." +8 "無法解析公告的階段作業 id;因此以我自己的 id 重寫..." +9 "%s 是一個 version %d 類型的資料庫,這一版只能讀取 versions %d 以及更早的版本" +10 "類型資料庫:%s 中的類型無法解碼。也許是已損毀。" +11 "重寫 %s" +12 "忽略 ToolTalk 類別記號的不明屬性 <%s>..." +13 "ttce2xdr 失敗;(狀態=%d);Classing Engine \"使用者\" 資料庫中的類別沒有轉換..." +14 "複製 ISAM 記錄" +15 "ISAM 檔案未開啟" +16 "ISAM 引數不合法" +17 "ISAM 鍵描述元不合法" +18 "開啟太多 ISAM 檔案" +19 "ISAM 檔案格式錯誤" +20 "ISAM 非專用存取" +21 "ISAM 記錄被鎖定" +22 "ISAM 鍵已存在" +23 "ISAM 鍵是主鍵" +24 "ISAM 檔案開始或結束" +25 "無法找到 ISAM 記錄" +26 "沒有現行的 ISAM 記錄" +27 "ISAM 檔案被鎖定" +28 "ISAM 檔名太長" +29 "ISAM 無法配置記憶體" +30 "ISAM RPC 逾時" +31 "ISAM TCP/IP 連接中斷" +32 "無法連接 ISAM 伺服器" +33 "無法轉取 ISAM 資料" +34 "沒有本端 SAM 精靈程式" +35 "ISAM 發生內部嚴重錯誤" +36 "ISAM Locale/LANG 不符" $set 3 -2 "騵樄鷁 (%d) 廎忒﹜婘モ珜媢磍 %d%s" -3 " (淭鰾鼲Б)" -4 "騵樄鷁 (%d) 敊ゝ廎忒﹜躂扽稌怉媢磍!" -5 "隓恄渿剟鷓鞥勂⺍瑊騰﹜モ珜 %m" -6 "扽謓睕⑴髓磣隉﹞霘囷え -c, -p, -d, 迖暋泂 $DISPLAY﹞" -7 "-S 藞禋隓恄昑 -c 銈崷囷え" -8 "騵 ttsession 廎忒﹜昲鳷珜 %d" -9 "騵 ttsession 廎忒﹜婘モ珜媢磍 %d%s" -10 "(淭鰾鼲Б)" -11 "騵 ttsession 敊ゝ廎忒﹜躂ゝ稌怉媢磍!" -12 "絒棬斕" -13 "泲ゝ幺抻柁麷倛" -14 "麷倛諟“砉絅鰹柁麷倛" -15 "$OPENWINHOME ゝ暋泂" -16 "\nえ恄”ttsession [-a unix|des][-d display][-spStvhNX" -17 "][-c command]\n -c [command] 絒棬纂堈搢隉蹠瞃栠汃鞄﹜隑悒ョ怬斕欹⺼杬麟﹞\n 悒㶴柁藞禋鞂蒡踽彃杬麟﹞蠡泂圊”$SHELL\n -p 絒棬纂堈搢隉蹠瞃栠汃鞄﹜隑悒トパ怬 id\n -d display ョ䬷ざ蟟譫絒棬纂堈 X 瞃栠汃鞄\n\n -a unix|des 暋泂ɵ峇蟟薚泂嬬\n -s 驨椲滙夼﹜攜トパズ滙夼\n -S 攜雰ぇ騵嶂囥怉茯葔\n -N 渿蠢暐柁剟鷓鞥禨げ暋泂怉瑊騰\n -t 瞅絒媢桾寍麶衢逑\n -X 囷え XDR 罶涷梬汃珜譖鳷麷倛 (蠡泂圊)\n" -18 " -E 囷え Classing Engine 汃珜譖鳷麷倛\n" -19 "\n -v トパ斿ヾ磍謑\n -h トパ楙衧媢桾\n\ -\n媢磍蘭郖”\n kill -USR1 ttsession_pid 籠葎媢桾寍麶衢逑\n kill -USR2 ttsession_pid 适隞幺抻譖鳷麷倛" -20 "廎忒" +2 "子節點 (%d) 結束,原因為訊號 %d%s" +3 " (核心轉存)" +4 "子節點 (%d) 既未結束,也沒有接收到訊號!" +5 "無法將客戶機放至最大,因為 %m" +6 "沒有範圍可以管理。請使用 -c, -p, -d, 或設定 $DISPLAY。" +7 "-S 選項無法和 -c 搭配使用" +8 "子 ttsession 結束,狀態為 %d" +9 "子 ttsession 結束,原因為訊號 %d%s" +10 "(核心轉存)" +11 "子 ttsession 既未結束,也未接收到訊號!" +12 "啟動中" +13 "有尚未讀取的類型" +14 "類型有誤;保留舊的類型" +15 "$OPENWINHOME 未設定" +16 "\n用法:ttsession [-a unix|des][-d display][-spStvhNX" +17 "][-c command]\n -c [command] 啟動一個處理樹階段作業,然後在其中執行命令。\n 後續的選項會傳遞給命令。內定值:$SHELL\n -p 啟動一個處理樹階段作業,然後列印其 id\n -d display 在顯示器上啟動一個 X 階段作業\n\n -a unix|des 設定伺服器確定層次\n -s 關閉警告,不列印任何警告\n -S 不產生子程序到背景\n -N 將允許的客戶機數目設定到最大\n -t 開啟訊息追蹤功能\n -X 使用 XDR 資料庫作為靜態類型 (內定值)\n" +18 " -E 使用 Classing Engine 作為靜態類型\n" +19 "\n -v 列印版本號碼\n -h 列印這則訊息\n\ +\n訊號介面:\n kill -USR1 ttsession_pid 切換訊息追蹤功能\n kill -USR2 ttsession_pid 重新讀取靜態類型" +20 "結束" $set 4 -2 "え恄”\ntt_type_comp [-s] [-d db] [-mM] source_file\ntt_type_comp [-s\ -] [-d db] -r type ...\n-M 渿坭鳲麷倛ポ坰怉挴泂柁罶涷梬﹜攜彶隞\ -隃Б柁麷倛\n-m ポ坰﹜ɪ彶隞隃Б麷倛﹞\ -珜蠡泂圊﹞\n-r 皕挴泂柁罶涷梬斕崽⑩坭鳲麷倛\n-d db 衭謦汃柁罶涷梬﹞\ -⑴逑珜囷え炟﹝侇嗄迖篚聤欄纂﹞蠡泂圊”囷え炟\n-G ョ ToolTalk 罶涷梬ɵ峇蟟欹⺼杶扜碬.\n\ntt_type_comp [-sE] -p|O|P [-d db]\ntt_type_comp [-s\ -] -p|O|P compiled_file\n-O ョ stdout 譫ト罐幺蘋柁\ -邴 otypes 柁ボ磝\n-P ョ stdout 譫ト罐幺蘋柁\ -邴 ptypes 柁ボ磝\n\\n-p 髓蝷荂羏柁斿郖ョ stdout 譫\ -パ罐幺蘋柁邴 ToolTalk 麷倛\n-E 囷え Classing Engine 罶\ -涷梬抻鷥 XDR 罶涷梬\n-d db 衭幺抻柁罶涷梬﹞⑴逑珜囷え炟﹝侇\ -嗄迖篚聤欄纂﹞蠡泂圊”ツ楶\n\ntt_type_comp [-s] -x [-o \ -compiled_file] source_file\n-x 蹌㾀坭⺌ source_file \ -(迖 stdin﹜ヵ峈麔淰旂 \"-\") 柁麷倛\n-o 渿儸蹌㾀柁麷倛\ -嬣怉 compiled_file (迖 stdout﹜ヵ峈麔淰旂 \"-\")\n 蠡泂圊”\ -source_file.xdr﹜迖 \"types.xdr\"﹜ヵ峈坭鳲旂\ - stdin\n\ntt_type_comp [-hv]\n-v パ罐斿ヾ磍謑\n-h パ罐楙衧\ -媢桾\n-s 攜パ罐ズ昲鳷媢桾﹞\n\n楙咍 cpp 藞禋柁蒡踽渿\ -椴蝝”\n -undef -Dname -Idirectory -Uname -Ydirectory" -3 "麷倛麔淰諴蜑諟" -4 "攜旂淩柁 ToolTalk 麷倛麔淰" -5 "隓恄皕 Classing Engine 罶涷梬幺抻ズ ToolTalk 麷倛" -6 "ポ坰 Classing Engine 玿柁衢逑儸攜テ菙坯" -7 "隓恄ョ %s 罶涷梬幺抻麷倛 - 斿ヾ攜嗃" -8 "隓恄ョ %s 罶涷梬幺抻麷倛" -9 "$OPENWINHOME ゝ暋泂" -10 "隓恄媊沓暋泂 %s 罶涷梬髓嬣蘋" -11 "隓恄崽⑩ %s 柁鰹泂氂" -12 "适嬣斕" -13 "嬣蘋斕" -14 "%s 隓恄嚌蠹隞泂氂" -15 "隓恄崽⑩ %s 柁鰹泂氂" -16 "适嬣" -17 "嬣蘋" -18 "%s 隓恄嚌蠹隞泂氂" -19 "蹌㾀柁麷倛斿ヾ攜嗃" -20 "隓恄幺抻罶涷梬斕柁麷倛" -21 "$OPENWINHOME ゝ暋泂" -22 "隓恄ョ %s 罶涷梬幺抻麷倛 - 斿ヾ攜嗃" -23 "隓恄ョ %s 罶涷梬幺抻麷倛" -24 "$OPENWINHOME ゝ暋泂" -25 "崽⑩ otype %s 斕\n" -26 "崽⑩ ptype %s 斕\n" -27 "藣罐嬣怉 %s\n" -28 "隓淩柁罶涷梬”%s" -29 "霘ⅲ挴泂譯ト藞禋欄纂 -O -P -m -M -p -r -x" -30 "ゝ瑱⺼虳搢隉﹜婘モ”%s”%s" -31 "otype 凭邯瑢蛺讓屼 %s" -32 "otype %2$s 柁蚼ッ樄鷁 %1$s 攜Бョ" -33 "ptype %s 攜Бョ﹜ɪ儸揧 otype %s 抻ボ汃珜蕍汃炟" -34 "otype %s 斕泂氂藹ロ适柁搢隉蟟" -35 "otype %s 斕邴凭邯柁麷伀奡磍ョ々樄鷁斕攜Бョ" -36 "怚堈 ptypes﹜%s 縋 %s﹜怞砨フ柁搢隉蟟" -37 "otype %2$s 柁蚼ッ樄鷁 %1$s 攜Бョ" -38 "艂蘄 otype 凭邯瞃嬬 -\n {" -39 "otype %s 适闀柁泂氂" -40 "ptype %s 适闀柁泂氂" +2 "用法:\ntt_type_comp [-s] [-d db] [-mM] source_file\ntt_type_comp [-s\ +] [-d db] -r type ...\n-M 將來源類型合併到指定的資料庫,不更新\ +現存的類型\n-m 合併,但更新現存類型。\ +為內定值。\n-r 從指定的資料庫中除去來源類型\n-d db 要操作的資料庫。\ +可能為使用者、系統或網路之一。內定值:使用者\n-G 在 ToolTalk 資料庫伺服器執行垃圾收集.\n\ntt_type_comp [-sE] -p|O|P [-d db]\ntt_type_comp [-s\ +] -p|O|P compiled_file\n-O 在 stdout 上列出讀入的\ +所有 otypes 的名稱\n-P 在 stdout 上列出讀入的\ +所有 ptypes 的名稱\n\\n-p 以較美觀的版面在 stdout 上\ +印出讀入的所有 ToolTalk 類型\n-E 使用 Classing Engine 資\ +料庫取代 XDR 資料庫\n-d db 要讀取的資料庫。可能為使用者、系\ +統或網路之一。內定值:全部\n\ntt_type_comp [-s] -x [-o \ +compiled_file] source_file\n-x 編譯來自 source_file \ +(或 stdin,如果檔案是 \"-\") 的類型\n-o 將已編譯的類型\ +寫到 compiled_file (或 stdout,如果檔案是 \"-\")\n 內定值:\ +source_file.xdr,或 \"types.xdr\",如果來源是\ + stdin\n\ntt_type_comp [-hv]\n-v 印出版本號碼\n-h 印出這則\ +訊息\n-s 不印出任何狀態訊息。\n\n這些 cpp 選項的傳遞將\ +透過:\n -undef -Dname -Idirectory -Uname -Ydirectory" +3 "類型檔案語意有誤" +4 "不是有效的 ToolTalk 類型檔案" +5 "無法從 Classing Engine 資料庫讀取任何 ToolTalk 類型" +6 "合併 Classing Engine 表的功能已不再提供" +7 "無法在 %s 資料庫讀取類型 - 版本不符" +8 "無法在 %s 資料庫讀取類型" +9 "$OPENWINHOME 未設定" +10 "無法起始設定 %s 資料庫以寫入" +11 "無法除去 %s 的舊定義" +12 "重寫中" +13 "寫入中" +14 "%s 無法增加新定義" +15 "無法除去 %s 的舊定義" +16 "重寫" +17 "寫入" +18 "%s 無法增加新定義" +19 "編譯的類型版本不符" +20 "無法讀取資料庫中的類型" +21 "$OPENWINHOME 未設定" +22 "無法在 %s 資料庫讀取類型 - 版本不符" +23 "無法在 %s 資料庫讀取類型" +24 "$OPENWINHOME 未設定" +25 "除去 otype %s 中\n" +26 "除去 ptype %s 中\n" +27 "輸出寫到 %s\n" +28 "無效的資料庫:%s" +29 "請只指定下列選項之一 -O -P -m -M -p -r -x" +30 "未進行前處理,原因:%s:%s" +31 "otype 繼承週期包含 %s" +32 "otype %2$s 的祖先節點 %1$s 不存在" +33 "ptype %s 不存在,但已被 otype %s 取名作為製作者" +34 "otype %s 中定義了多重的處理器" +35 "otype %s 中所繼承的類別記號在母節點中不存在" +36 "兩個 ptypes,%s 與 %s,具有相同的處理器" +37 "otype %2$s 的祖先節點 %1$s 不存在" +38 "循環 otype 繼承階層 -\n {" +39 "otype %s 有重複的定義" +40 "ptype %s 有重複的定義" $set 5 -3 "蝪酈Еツ迒”RPC 昋ⅰ衭宎瞅絒纂堈攜旂 ToolTalk 罶涷梬柁麔淰" -4 "ョ囷え隞柁 rpc.ttdbserverd (>= 1.1) 欄悒﹜ズ囷え鰹柁 (<= 1.0.2) rpc.ttdbserverd 邴嬣柁罶涷楁鞂揧芩靬" -5 "ョ囷え隞柁 rpc.ttdbserverd (>= 1.1) 欄悒﹜ズ囷え鰹柁 (<= 1.0.2) rpc.ttdbserverd 邴嬣柁罶涷楁鞂揧芩靬" -6 "rpc.ttdbserverd 斿ヾ (%s) 縋罶涷梬玿斿ヾ (%s) 攜嗃﹞霘Е稹 rpc.ttdbserverd 斿ヾ %s (迖彶隞柁斿ヾ)" -7 "え恄”\nrpc.ttdbserverd [-S] [-n] [-m DTMOUNTPOINT]\nrpc.ttdbserverd [-S] [-v]" -8 "隓恄瞅絒杶扜碬搢隉. thr_create()\n" -9 "隓恄 fork() 杶扜碬.\n" +3 "違反安全性:RPC 呼叫要我開啟一個不是 ToolTalk 資料庫的檔案" +4 "在使用新的 rpc.ttdbserverd (>= 1.1) 之後,任何使用舊的 (<= 1.0.2) rpc.ttdbserverd 所寫的資料都會被忽略" +5 "在使用新的 rpc.ttdbserverd (>= 1.1) 之後,任何使用舊的 (<= 1.0.2) rpc.ttdbserverd 所寫的資料都會被忽略" +6 "rpc.ttdbserverd 版本 (%s) 與資料庫表版本 (%s) 不符。請安裝 rpc.ttdbserverd 版本 %s (或更新的版本)" +7 "用法:\nrpc.ttdbserverd [-S] [-n] [-m DTMOUNTPOINT]\nrpc.ttdbserverd [-S] [-v]" +8 "無法開啟垃圾收集處理. thr_create()\n" +9 "無法 fork() 垃圾收集.\n" $set 6 -2 "え恄”\nttdbck [-f file] [-k objkey] [-t type] [-bx] \n[-impa] [-IZ] [-F newfilename] [-T newtype] [mountpoints]\n" -3 "ttdbck”ヵ峈挴泂藹埏៻ [-FTZ] 藞禋﹜祼⽁禕挴泂纂堈藞謥 [-fkt] 藞禋\n迖漎黫 [-bx] 藞禋\n" -4 "蹌㾀麷倛柁斿ヾ攜嗃" -5 "隓恄幺抻罶涷梬蠡柁麷倛" -6 "ttdbck”霘閰箹囷え 'ttdbck -I'﹞\n" -7 "髓麔ボ藞抻”%s\n" -8 "髓 objid 耰藞抻”" -9 "髓麷倛藞抻”%s\n" -10 "漎黫怉夆渀棯纕柁骳忟\n" -11 "漎黫棤嘵怉攜Бョ柁骳忟\n" -12 "䬷ざ ids\n" -13 "䬷ざ⽁衭柁罶涷\n" -14 "䬷ざ笱迒縋禨圊罶涷\n" -15 "ョ黀栯欄虳﹜ッ鞜え NetISAM isrepair() 怐禨\n" -16 "衭埏៻霘暋泂麷倛”%s\n" -17 "伈え伝崽埏៻\n" -18 "崽蠆トパ藣罐瞃嬬 %d\n" -19 "衭埏៻霘暋泂麔淰”%s\n" -20 "蠆諟”扽斒眭麔淰﹞\n" -21 "蠆諟”扽斒眭麷倛﹞\n" -22 "蠆諟”\"%s\" 攜旂纂堈儸Е稹柁 otype﹞\n" -23 "蠆諟”斒眭柁麷倛笱迒ロ堈圊﹞\n" -24 "蠆諟”" -25 "ttdbck”ゝ岊怉蠆諟﹞\n" -26 "蠆諟”" +2 "用法:\nttdbck [-f file] [-k objkey] [-t type] [-bx] \n[-impa] [-IZ] [-F newfilename] [-T newtype] [mountpoints]\n" +3 "ttdbck:如果指定了修護 [-FTZ] 選項,就必須指定一個選擇 [-fkt] 選項\n或診斷 [-bx] 選項\n" +4 "編譯類型的版本不符" +5 "無法讀取資料庫內的類型" +6 "ttdbck:請嘗試使用 'ttdbck -I'。\n" +7 "以檔名選取:%s\n" +8 "以 objid 鍵選取:" +9 "以類型選取:%s\n" +10 "診斷到形成時有問題的實體\n" +11 "診斷參照到不存在的實體\n" +12 "顯示 ids\n" +13 "顯示必要的資料\n" +14 "顯示特性與數值資料\n" +15 "在檢查之前,先調用 NetISAM isrepair() 函數\n" +16 "要修護請設定成類型:%s\n" +17 "利用刪除修護\n" +18 "除錯列印輸出階層 %d\n" +19 "要修護請設定成檔案:%s\n" +20 "錯誤:沒有規格檔案。\n" +21 "錯誤:沒有規格類型。\n" +22 "錯誤:\"%s\" 不是一個已安裝的 otype。\n" +23 "錯誤:規格的類型特性有多個值。\n" +24 "錯誤:" +25 "ttdbck:未找到錯誤。\n" +26 "錯誤:" $set 7 -2 "え恄”%s {ctx}[fhpPv[v]] [tarfile] pathname ...\n %s {ctx}fL[hpPRv[v]] tttarfile pathname ...\n %s -v\n %s -h\n" -3 "\tc 唈ゥ纂堈齪ス砉磣\n\tt トざ齪ス砉磣柁蠡晥\n\tx 皕齪ス砉磣斕樄蠊\n\tf 囷え譯纂堈鰱禨 汃珜齪ス砉磣\n\th 藦艂滽懧迒椵廎\n\tL 攜鞜え tar(1)\n\tp 砉絅麔淰篲鳷\n\tP (淂) 攜砉絅昡ス柁邴炟﹝埏庍渀睮嶉嶉﹞\n\tR 攜踽媝怉げ蠊\n\tv 囷え覽畈夆冈\n\tvv 囷え笱伀覽畈柁夆冈\n\t-v トパ斿ヾ磍謑悒欏瞅\n\t-h[elp] トパ楙衧媢桾\n" -4 "%s”隓恄皕齪ス砉Б⻌殈斕幺抻昡ス瞗麷﹞\n" -5 "%s”隓恄皕齪ス砉Б⻌殈斕幺抻齪ス砉Б斿ヾ﹞\n" -6 "%s”岊怉齪ス砉Б斿ヾ %d﹜ɪ錛衭柁旂斿ヾ %d﹞\n" -7 "%s”ョ齪ス砉Б斕岊怉攜咭麷倛 %d 柁昡ス﹞\n" -8 "%s”隓恄皕齪ス砉Б⻌殈斕幺抻昡ス瞗麷﹞\n" -9 "%s”隓恄皕齪ス砉Б⻌殈斕幺抻齪ス砉Б斿ヾ﹞\n" -10 "%s”岊怉齪ス砉Б斿ヾ %d﹜ɪ錛衭柁旂斿ヾ %d﹞\n" -11 "%s”ョ齪ス砉Б斕岊怉攜咭麷倛 %d 柁昡ス﹞\n" +2 "用法:%s {ctx}[fhpPv[v]] [tarfile] pathname ...\n %s {ctx}fL[hpPRv[v]] tttarfile pathname ...\n %s -v\n %s -h\n" +3 "\tc 建立一個文件保管\n\tt 列示文件保管的內容\n\tx 從文件保管中節錄\n\tf 使用下一個引數 作為文件保管\n\th 遵循象徵性連結\n\tL 不調用 tar(1)\n\tp 保留檔案模態\n\tP (根) 不保留物件的所有者、修改時間等等。\n\tR 不遞迴到目錄\n\tv 使用冗長形式\n\tvv 使用特別冗長的形式\n\t-v 列印版本號碼後離開\n\t-h[elp] 列印這則訊息\n" +4 "%s:無法從文件保存串流中讀取物件種類。\n" +5 "%s:無法從文件保存串流中讀取文件保存版本。\n" +6 "%s:找到文件保存版本 %d,但需要的是版本 %d。\n" +7 "%s:在文件保存中找到不明類型 %d 的物件。\n" +8 "%s:無法從文件保存串流中讀取物件種類。\n" +9 "%s:無法從文件保存串流中讀取文件保存版本。\n" +10 "%s:找到文件保存版本 %d,但需要的是版本 %d。\n" +11 "%s:在文件保存中找到不明類型 %d 的物件。\n" $set 8 -2 "%s”隓恄崽⑩ ToolTalk 昡ス %s﹜モ珜 %s\n" -3 "%s”隓恄渿 ToolTalk 昡ス皕 \"%s\" 傶怉 \"%s\"﹜モ珜 %s\n" -4 "%s”渿攜鞂閰箹傶棬 ToolTalk 昡ス”\n" -5 "え恄”%s [-] [-fL] path1 path2\n %s [-] [-fL] path1 [path2 ...] dir\n %s -v\n %s -h\n" -6 "\t-L 攜欹⺼ mv(1)\n\t-v トパ斿ヾ磍謑隑悒欏瞅\n\t-h トパ楙衧媢桾\n" -7 "%s”隓恄崽⑩ ToolTalk 昡ス %s﹜モ珜 %s\n" -8 "え恄”%s [-] [-%s] %s ...\n %s -v\n %s -h\n" -9 "麔淰" -10 "げ蠊" -11 "\t-L 攜欹⺼ %s(1)\n\t-v トパ斿ヾ磍謑隑悒欏瞅\n\t-h[elp] トパ楙衧媢桾\n" -12 "%s”隓恄崽⑩ ToolTalk 昡ス %s﹜モ珜 %s\n" -13 "え恄”%s [-pL] file1 file2\n %s [-prRL] path1 [path2 ...] dir\n %s -v\n %s -h\n" -14 "\t-L 攜欹⺼ cp(1)\n\t-v トパ斿ヾ磍謑隑悒欏瞅\n\t-h トパ楙衧媢桾\n" +2 "%s:無法除去 ToolTalk 物件 %s,因為 %s\n" +3 "%s:無法將 ToolTalk 物件從 \"%s\" 移到 \"%s\",因為 %s\n" +4 "%s:將不會嘗試移動 ToolTalk 物件:\n" +5 "用法:%s [-] [-fL] path1 path2\n %s [-] [-fL] path1 [path2 ...] dir\n %s -v\n %s -h\n" +6 "\t-L 不執行 mv(1)\n\t-v 列印版本號碼然後離開\n\t-h 列印這則訊息\n" +7 "%s:無法除去 ToolTalk 物件 %s,因為 %s\n" +8 "用法:%s [-] [-%s] %s ...\n %s -v\n %s -h\n" +9 "檔案" +10 "目錄" +11 "\t-L 不執行 %s(1)\n\t-v 列印版本號碼然後離開\n\t-h[elp] 列印這則訊息\n" +12 "%s:無法除去 ToolTalk 物件 %s,因為 %s\n" +13 "用法:%s [-pL] file1 file2\n %s [-prRL] path1 [path2 ...] dir\n %s -v\n %s -h\n" +14 "\t-L 不執行 cp(1)\n\t-v 列印版本號碼然後離開\n\t-h 列印這則訊息\n" $set 9 -2 "え恄”%s [-0FCa][-o outfile] [-S session | command [\ +2 "用法:%s [-0FCa][-o outfile] [-S session | command [\ options]]\n %s [-e script | -f scriptfile][-S session | \ -command [options]]\n -0 驨椲瞃栠汃鞄斕柁媢桾寍麶衢逑﹜迖\ -ョ扽媢桾寍麶\n (伒蒟 API 寍麶) 柁硠扃譯欹⺼杬麟\n -F\ - 藦艂邴か杬麟雰ぇ柁騵嶂囥柁騵樄鷁﹜迖\n \ - ョ瞃栠汃鞄斕か ttsession(1) 稌㶴絒棬\n -C 攜寍麶 \ -ToolTalk API 昋ⅰ\n -a トパ寍麶怉柁媢桾柁邴㪫迒﹝鰱禨\ -縋\n 譫譯齪葅簏﹞蠡泂圊珜痼⺼鼏衭﹞\n -e script 幺抻杬\ -麟碬斕柁 tttracefile(4) 暋泂\n -f scriptfile 皕杬麟碬麔淰斕幺抻 \ -tttracefile(4) 暋泂﹞\"-\"”stdin﹞\n -o outfile 藣罐﹞\"-\"”\ -stdout﹞蠡泂圊”瞃栠汃鞄寍麶珜 stdout﹜\n 杬麟寍麶珜 \ -(tttrace 柁) stderr\n -S session 衭寍麶柁瞃栠汃鞄﹞蠡泂圊”霘棤櫇 \ -tt_default_session()\n command 衭鞜え縋寍麶柁 ToolTalk 剟鷓鞥杬麟\n" -3 "%s”瞃栠汃鞄 <%s> 攜齬葰 Session_Trace﹞霘庍え kill -USR1﹞霘棤櫇 ttsession(1)﹞\n" +command [options]]\n -0 關閉階段作業中的訊息追蹤功能,或\ +在沒有訊息追蹤\n (即僅有 API 追蹤) 的情況下執行命令\n -F\ + 遵循所有由命令產生的子程序的子節點,或\n \ + 在階段作業中由 ttsession(1) 接續啟動\n -C 不追蹤 \ +ToolTalk API 呼叫\n -a 列印追蹤到的訊息的所有屬性、引數\ +與\n 上下文插槽。內定值為單行摘要。\n -e script 讀取命\ +令集中的 tttracefile(4) 設定\n -f scriptfile 從命令集檔案中讀取 \ +tttracefile(4) 設定。\"-\":stdin。\n -o outfile 輸出。\"-\":\ +stdout。內定值:階段作業追蹤為 stdout,\n 命令追蹤為 \ +(tttrace 的) stderr\n -S session 要追蹤的階段作業。內定值:請參閱 \ +tt_default_session()\n command 要調用與追蹤的 ToolTalk 客戶機命令\n" +3 "%s:階段作業 <%s> 不支援 Session_Trace。請改用 kill -USR1。請參閱 ttsession(1)。\n" $set 10 -2 "芩靬蒡踽彃 Tts_address 柁攜咭 Tt_address ::add()\n" -3 "芩靬蒡踽彃 Tts_address 柁攜咭 Tt_address ::remove()\n" -4 "芩靬蒡踽彃 tts_address 柁攜咭 address ::tts_set()\n" -5 "芩靬蒡踽彃 tts_address 柁攜咭 address ::tts_unset()\n" -6 "芩靬 tts_address 邴幺抻柁攜咭⻏彴::load()\n" -7 "Tts_arglist::Tts_arglist - 幺抻鰱禨蠆諟 - \n\t" -8 "Tts_arglist::蟡蘋 - 蝎怉攜咭柁鰱禨麷倛 - 囷え BARG\n" -9 "俔滽柁禳麷 Tts_arg::挴泂 (Tt_pattern) 昋ⅰ - 芩靬\n" -10 "俔滽柁禳麷 Tts_arg::挴泂 (Tt_message) 昋ⅰ - 芩靬\n" -11 "俔滽柁禳麷 Tts_arg::雰ぇ昋ⅰ - 芩靬\n" -12 "俔滽柁禳麷 Tts_arg::鬊Б昋ⅰ - 芩靬\n" -13 "俔滽柁禳麷 Tts_arg::蟡蘋昋ⅰ - 芩靬\n" -14 "Tts_arg::mode_to_chars 隓淩柁篲鳷 - 囷え TT_INOUT\n" -15 "Tts_arg::chars_to_mode 隓淩柁篲鳷 - 囷え TT_INOUT\n" -16 "芩靬蒡踽彃 Tts_category 柁攜咭 Tt_category ::set()\n" -17 "Tts_category::generate() 昋ⅰ媢桾 - 芩靬\n" -18 "芩靬 tts_category 邴幺抻柁攜咭瞗麷::load()\n" -19 "芩靬蒡踽彃 Tts_class 柁攜咭 Tt_class::add()\n" -20 "芩靬蒡踽彃 Tts_class 柁攜咭 Tt_class::remove()\n" -21 "芩靬蒡踽彃 tts_class 柁攜咭瞗麷::tts_set()\n" -22 "芩靬蒡踽彃 tts_class 柁攜咭瞗麷::tts_unset()\n" -23 "芩靬 tts_class 邴幺抻柁攜咭瞗麷::load()\n" -24 "Tts_connection::universal_callback - А⻌扽А⻌᝱楸衢逑!\n" -25 "Tts_cntxtlist::Tts_cntxtlist - 幺抻譫譯齪蠆諟 - \n\t" -26 "Tts_contextlist::蟡蘋 - 蝎怉攜咭柁 cntxt 麷倛 - 囷え BCNTXT\n" -27 "俔滽柁瞗麷 Tts_context::挴泂 (Tt_pattern) 昋ⅰ - 芩靬\n" -28 "俔滽柁瞗麷 Tts_context::挴泂 (Tt_pattern) 昋ⅰ - 芩靬\n" -29 "俔滽柁瞗麷 Tts_context::雰ぇ昋ⅰ - 芩靬\n" -30 "俔滽柁瞗麷 Tts_context::鬊Б昋ⅰ - 芩靬\n" -31 "俔滽柁瞗麷 Tts_context::蟡蘋昋ⅰ - 芩靬\n" -32 "芩靬蒡踽彃 Tts_disposition 柁攜咭 Tt_disposition::add()\n" -33 "芩靬蒡踽彃 Tts_disposition 柁攜咭 Tt_disposition::remove()\n" -34 "芩靬蒡踽彃 tts_disposition 柁攜咭搢禳::tts_set()\n" -35 "芩靬蒡踽彃 tts_disposition 柁攜咭搢禳::tts_unset()\n" -36 "芩靬か tts_disposition 幺抻柁攜咭搢禳::load()\n" -37 "昋ⅰ %s\n" -38 "ToolTalk 蠆諟”%s\n 媊鳲”坭鳲麔淰 %s 剼 %d ⺼\n" -39 "滙夼”%s\n 媊鳲”坭鳲麔淰 %s 剼 %d ⺼\n" -40 " Tts_message_molding::send - 閰箹婽罐ゝ媊沓暋泂柁媢桾᝱楸\n" -41 "芩靬蒡踽彃Tts_scope 柁攜咭 Tt_scope::add()\n" -42 "芩靬蒡踽彃 Tts_scope 柁攜咭 Tt_scope::remove()\n" -43 "芩靬蒡踽彃 tts_scope 柁攜咭謓睕::tts_set()\n" -44 "芩靬蒡踽彃 tts_scope 柁攜咭謓睕::tts_unset()\n" -45 "芩靬 tts_scope 邴幺抻柁攜咭謓睕::load()\n" -46 "芩靬蒡踽彃 Tts_state 柁攜咭 Tt_state::add()\n" -47 "芩靬蒡踽彃 Tts_state 柁攜咭 Tt_state::remove()\n" -48 "芩靬蒡踽彃 tts_state 柁攜咭昲鳷::tts_set()\n" -49 "芩靬蒡踽彃 tts_state 柁攜咭昲鳷::tts_unset()\n" -50 "Tts_state::generate() 昋ⅰ媢桾 - 芩靬\n" -51 "芩靬 tts_state 邴幺抻柁攜咭昲鳷::load()\n" -82 "蘀抻 TTSnoop 赮伢諰咭" +2 "忽略傳遞給 Tts_address 的不明 Tt_address ::add()\n" +3 "忽略傳遞給 Tts_address 的不明 Tt_address ::remove()\n" +4 "忽略傳遞給 tts_address 的不明 address ::tts_set()\n" +5 "忽略傳遞給 tts_address 的不明 address ::tts_unset()\n" +6 "忽略 tts_address 所讀取的不明位址::load()\n" +7 "Tts_arglist::Tts_arglist - 讀取引數錯誤 - \n\t" +8 "Tts_arglist::載入 - 遇到不明的引數類型 - 使用 BARG\n" +9 "抽象的分類 Tts_arg::指定 (Tt_pattern) 呼叫 - 忽略\n" +10 "抽象的分類 Tts_arg::指定 (Tt_message) 呼叫 - 忽略\n" +11 "抽象的分類 Tts_arg::產生呼叫 - 忽略\n" +12 "抽象的分類 Tts_arg::儲存呼叫 - 忽略\n" +13 "抽象的分類 Tts_arg::載入呼叫 - 忽略\n" +14 "Tts_arg::mode_to_chars 無效的模態 - 使用 TT_INOUT\n" +15 "Tts_arg::chars_to_mode 無效的模態 - 使用 TT_INOUT\n" +16 "忽略傳遞給 Tts_category 的不明 Tt_category ::set()\n" +17 "Tts_category::generate() 呼叫訊息 - 忽略\n" +18 "忽略 tts_category 所讀取的不明種類::load()\n" +19 "忽略傳遞給 Tts_class 的不明 Tt_class::add()\n" +20 "忽略傳遞給 Tts_class 的不明 Tt_class::remove()\n" +21 "忽略傳遞給 tts_class 的不明種類::tts_set()\n" +22 "忽略傳遞給 tts_class 的不明種類::tts_unset()\n" +23 "忽略 tts_class 所讀取的不明種類::load()\n" +24 "Tts_connection::universal_callback - 此字串沒有字串鑄造功能!\n" +25 "Tts_cntxtlist::Tts_cntxtlist - 讀取上下文錯誤 - \n\t" +26 "Tts_contextlist::載入 - 遇到不明的 cntxt 類型 - 使用 BCNTXT\n" +27 "抽象的種類 Tts_context::指定 (Tt_pattern) 呼叫 - 忽略\n" +28 "抽象的種類 Tts_context::指定 (Tt_pattern) 呼叫 - 忽略\n" +29 "抽象的種類 Tts_context::產生呼叫 - 忽略\n" +30 "抽象的種類 Tts_context::儲存呼叫 - 忽略\n" +31 "抽象的種類 Tts_context::載入呼叫 - 忽略\n" +32 "忽略傳遞給 Tts_disposition 的不明 Tt_disposition::add()\n" +33 "忽略傳遞給 Tts_disposition 的不明 Tt_disposition::remove()\n" +34 "忽略傳遞給 tts_disposition 的不明處分::tts_set()\n" +35 "忽略傳遞給 tts_disposition 的不明處分::tts_unset()\n" +36 "忽略由 tts_disposition 讀取的不明處分::load()\n" +37 "呼叫 %s\n" +38 "ToolTalk 錯誤:%s\n 起源:來源檔案 %s 第 %d 行\n" +39 "警告:%s\n 起源:來源檔案 %s 第 %d 行\n" +40 " Tts_message_molding::send - 嘗試送出未起始設定的訊息鑄造\n" +41 "忽略傳遞給Tts_scope 的不明 Tt_scope::add()\n" +42 "忽略傳遞給 Tts_scope 的不明 Tt_scope::remove()\n" +43 "忽略傳遞給 tts_scope 的不明範圍::tts_set()\n" +44 "忽略傳遞給 tts_scope 的不明範圍::tts_unset()\n" +45 "忽略 tts_scope 所讀取的不明範圍::load()\n" +46 "忽略傳遞給 Tts_state 的不明 Tt_state::add()\n" +47 "忽略傳遞給 Tts_state 的不明 Tt_state::remove()\n" +48 "忽略傳遞給 tts_state 的不明狀態::tts_set()\n" +49 "忽略傳遞給 tts_state 的不明狀態::tts_unset()\n" +50 "Tts_state::generate() 呼叫訊息 - 忽略\n" +51 "忽略 tts_state 所讀取的不明狀態::load()\n" +82 "獲取 TTSnoop 輔助說明" 83 "----------------------" -84 "衭痤怉纂郫 TTSnoop 赮伢諰咭﹜霘挹>驨卼 TTSnoop=" -85 "挹瘖﹞ヵ錛ペ伀挹瘖柁赮伢諰咭縋暋泂﹜霘渿僶趡殦卼" -86 "篎挹瘖 (迖睎嬾儱柁暋泂) 譫巖﹜隑悒挹纂譯赮伢諰咭" -87 "耰﹞衭洁蝚 ttsnoop げ虳邴囷え柁 API 昋ⅰ﹜霘ョ鞜え" -88 "ttsnoop 渀﹜蠹譫 -t 棤禨﹞" -89 "囷え TTSnoop" +84 "要得到一般 TTSnoop 輔助說明,請按「關於 TTSnoop」" +85 "按鈕。如需各別按鈕的輔助說明與設定,請將滑鼠置於" +86 "該按鈕 (或您有興趣的設定) 上方,然後按一下輔助說明" +87 "鍵。要知道 ttsnoop 目前所使用的 API 呼叫,請在調用" +88 "ttsnoop 時,加上 -t 參數。" +89 "使用 TTSnoop" 90 "-------------" -91 "衭羏髲媢桾﹜霘藞抻>絒棬=楙堈暋泂藞謥﹞" +91 "要觀察訊息,請選取「啟動」這個設定選擇。" 92 "" -93 "衭驨椲媢桾羏髲﹜霘藞抻>彘欐=楙堈暋泂藞謥﹞" +93 "要關閉訊息觀察,請選取「停止」這個設定選擇。" 94 "" -95 "衭迻泂媢桾柁麷倛”" -96 " 1) 藞抻>А⻌=挹瘖" -97 " 2) 藣蘋睎裱羏髲柁А⻌麷倛" -98 " 3) 藞抻>鶈え=挹瘖" +95 "要限定訊息的類型:" +96 " 1) 選取「字串」按鈕" +97 " 2) 輸入您想觀察的字串類型" +98 " 3) 選取「應用」按鈕" 99 "" -100 "衭髓崼矨唄玿ざ䬷ざ柁罶媢”" -101 " 1) 藞抻>䬷ざ=挹瘖" -102 " 2) 簅漶睎裱髓崼矨唄玿ざ柁禋げ" -103 " 3) 藞抻>鶈え=挹瘖" +100 "要以高亮度表示顯示的資訊:" +101 " 1) 選取「顯示」按鈕" +102 " 2) 標註您想以高亮度表示的項目" +103 " 3) 選取「應用」按鈕" 104 "" -105 "衭婽罐媢桾”" -106 " 1) 藞抻>媢桾=挹瘖" -107 " 2) 檎嬣媢桾" -108 " 3) 藞抻>婽罐媢桾=挹瘖" +105 "要送出訊息:" +106 " 1) 選取「訊息」按鈕" +107 " 2) 撰寫訊息" +108 " 3) 選取「送出訊息」按鈕" 109 "" -110 "衭鬊Б媢桾”" -111 " 1) 藞抻>媢桾=挹瘖" -112 " 2) 檎嬣媢桾" -113 " 3) 藞抻>嚌蠹媢桾=挹瘖" +110 "要儲存訊息:" +111 " 1) 選取「訊息」按鈕" +112 " 2) 撰寫訊息" +113 " 3) 選取「增加訊息」按鈕" 114 "" -115 "衭婽罐纂堈呦ッБン柁媢桾”" -116 " 皕>婽罐媢桾=衢逑玿斕藞抻媢桾" +115 "要送出一個事先存好的訊息:" +116 " 從「送出訊息」功能表中選取訊息" 117 "" -118 "衭覗崽媢桾藣罐槉嵺﹜霘藞抻>覗崽=挹瘖﹞" +118 "要清除訊息輸出視窗,請選取「清除」按鈕。" 119 "" -120 "ToolTalk 纂郫罶媢" +120 "ToolTalk 一般資訊" 121 "----------------------------" -122 "ョ椴蝝 ToolTalk 婽罐迖稌昡ス襓ホ" -123 "柁媢桾欄虳﹜衭ッホ媢桾蒡踽蟟漶癱" -124 "纂堈搢隉﹞漶癱⑴⣷楙堈搢隉夼洁" -125 "ToolTalk 暐ロ媢桾”" +122 "在透過 ToolTalk 送出或接收物件導向" +123 "的訊息之前,要先向訊息傳遞器註冊" +124 "一個處理。註冊可讓這個處理告知" +125 "ToolTalk 許多訊息:" 126 "" -127 " 楙堈搢隉柁搢隉麷倛 (ptype)﹞" -128 " 楙⑴⣷媢桾蒡踽蟟渿か" -129 " 邴蕍汃柁媢桾鰱襓怉搢" -130 " 隉﹞" +127 " 這個處理的處理類型 (ptype)。" +128 " 這可讓訊息傳遞器將由此" +129 " 所製作的訊息引導到此處" +130 " 理。" 131 "" -132 " 楙堈搢隉邴ョ柁瞃栠汃鞄﹞" +132 " 這個處理所在的階段作業。" 133 "" -134 " 楙堈搢隉ョ羏髲柁齪ス﹞ヵ﹜" -135 " 蒡踽彃楙咍齪ス斕昡ス柁媢桾﹜祼" -136 " ⑴髓僛婽怉楙堈搢隉斕﹞" +134 " 這個處理正在觀察的文件。如此," +135 " 傳遞給這些文件中物件的訊息,就" +136 " 可以發送到這個處理中。" 137 "" 138 "" -139 "恞蜑﹜楙咍漶癱棬汃纂郫鞂埏庍雰ぇ柁А" -140 "⻌﹞睎⑴髓囷えА⻌謦祰 API 昋ⅰ坭羏髲" -141 "迖搢隉昡ス襓ホ柁媢桾﹜ɪ搢萺訒柁巖" -142 "恄衭僰痤ロ﹜モ珜⼓埢伈え怉藹ョ麷倛泂" -143 "氂斕邴剚夼柁罶媢﹞" +139 "注意,這些註冊動作一般會修改產生的字" +140 "串。您可以使用字串操控 API 呼叫來觀察" +141 "或處理物件導向的訊息,但此處描述的方" +142 "法要短得多,因為它們利用到了在類型定" +143 "義中所宣告的資訊。" 144 "" 145 "" 146 "" -147 "囷え tt_session_join 髓砅蠹蘋汃珜瞃栠汃鞄柁纂楶禳﹞" -148 "蠹蘋渀﹜睎⽁禕菙坯衭蠹蘋柁瞃栠汃鞄柁" -149 "瞃栠汃鞄 id﹞" +147 "使用 tt_session_join 以便加入作為階段作業的一部分。" +148 "加入時,您必須提供要加入的階段作業的" +149 "階段作業 id。" 150 "" -151 "撋睎柁齡怞攜テ錛衭 ToolTalk 峇棜渀﹜" -152 "霘伈え tt_session_quit 廎忒瞃栠汃鞄﹞" +151 "當您的工具不再需要 ToolTalk 服務時," +152 "請利用 tt_session_quit 結束階段作業。" 153 "" -154 "撋睎柁齡怞蟡蘋纂堈麔淰﹜⼓⽁禕伈え" -155 "昋ⅰ tt_file_join() 柁巖冈﹜蠹蘋僳奡ḷ羝" -156 "卼篎麔淰柁搢隉漦嗢斕“麔淰搢隉汒" -157 "欄悒﹜霘昋ⅰ tt_file_quit() 欏瞅楙咍搢隉﹞" -158 "咍齡怞鞂纂瞅絒禨堈麔淰“咍衧" -159 "纂ⅲ瞅絒纂堈麔淰﹞" -160 "囷え TTSnoop" +154 "當您的工具載入一個檔案,它必須利用" +155 "呼叫 tt_file_join() 的方式,加入登記權益" +156 "於該檔案的處理群組中;檔案處理完成" +157 "之後,請呼叫 tt_file_quit() 離開這些處理。" +158 "有些工具會一次開啟數個檔案;有些則" +159 "一次只開啟一個檔案。" +160 "使用 TTSnoop" 161 "-------------" -162 "衭羏髲媢桾﹜霘藞抻>絒棬=楙堈暋泂藞謥﹞" -163 "衭驨椲媢桾羏髲﹜霘藞抻>彘欐=楙堈暋泂藞謥﹞" +162 "要觀察訊息,請選取「啟動」這個設定選擇。" +163 "要關閉訊息觀察,請選取「停止」這個設定選擇。" 164 "" -165 "衭迻泂媢桾柁麷倛”" -166 " 1) 藞抻>А⻌=挹瘖" -167 " 2) 藣蘋睎裱羏髲柁А⻌麷倛" -168 " 3) 藞抻>鶈え=挹瘖" +165 "要限定訊息的類型:" +166 " 1) 選取「字串」按鈕" +167 " 2) 輸入您想觀察的字串類型" +168 " 3) 選取「應用」按鈕" 169 "" -170 "衭髓崼矨唄玿ざ䬷ざ柁罶媢”" -171 " 1) 藞抻>䬷ざ=挹瘖" -172 " 2) 簅漶睎裱髓崼矨唄玿ざ柁禋げ" -173 " 3) 藞抻>鶈え=挹瘖" +170 "要以高亮度表示顯示的資訊:" +171 " 1) 選取「顯示」按鈕" +172 " 2) 標註您想以高亮度表示的項目" +173 " 3) 選取「應用」按鈕" 174 "" -175 "衭婽罐媢桾”" -176 " 1) 藞抻>媢桾=挹瘖" -177 " 2) 檎嬣媢桾" -178 " 3) 藞抻>婽罐媢桾=挹瘖" +175 "要送出訊息:" +176 " 1) 選取「訊息」按鈕" +177 " 2) 撰寫訊息" +178 " 3) 選取「送出訊息」按鈕" 179 "" -180 "衭鬊Б媢桾”" -181 " 1) 藞抻>媢桾=挹瘖" -182 " 2) 檎嬣媢桾" -183 " 3) 藞抻>嚌蠹媢桾=挹瘖" +180 "要儲存訊息:" +181 " 1) 選取「訊息」按鈕" +182 " 2) 撰寫訊息" +183 " 3) 選取「增加訊息」按鈕" 184 "" -185 "衭婽罐纂堈呦ッБン柁媢桾”" -186 " 皕>婽罐媢桾=衢逑玿斕藞抻媢桾" +185 "要送出一個事先存好的訊息:" +186 " 從「送出訊息」功能表中選取訊息" 187 "" -188 "衭覗崽媢桾藣罐槉嵺﹜霘藞抻>覗崽=挹瘖﹞" +188 "要清除訊息輸出視窗,請選取「清除」按鈕。" 189 "" -190 "ToolTalk 纂郫罶媢" +190 "ToolTalk 一般資訊" 191 "----------------------------" -192 "ョ椴蝝 ToolTalk 婽罐迖稌昡ス襓ホ" -193 "柁媢桾欄虳﹜衭ッホ媢桾蒡踽蟟漶癱" -194 "纂堈搢隉﹞漶癱⑴⣷楙堈搢隉夼洁" -195 "ToolTalk 暐ロ媢桾”" -196 " 楙堈搢隉柁搢隉麷倛 (ptype)﹞" -197 " 楙⑴⣷媢桾蒡踽蟟渿か邴蕍" -198 " 汃柁媢桾鰱襓怉搢隉﹞" +192 "在透過 ToolTalk 送出或接收物件導向" +193 "的訊息之前,要先向訊息傳遞器註冊" +194 "一個處理。註冊可讓這個處理告知" +195 "ToolTalk 許多訊息:" +196 " 這個處理的處理類型 (ptype)。" +197 " 這可讓訊息傳遞器將由此所製" +198 " 作的訊息引導到此處理。" 199 "" -200 " 楙堈搢隉邴ョ柁瞃栠汃鞄﹞" +200 " 這個處理所在的階段作業。" 201 "" -202 " 楙堈搢隉ョ羏髲柁齪ス﹞ヵ﹜" -203 " 蒡踽彃楙咍齪ス斕昡ス柁媢桾﹜祼" -204 " ⑴髓僛婽怉楙堈搢隉斕﹞" +202 " 這個處理正在觀察的文件。如此," +203 " 傳遞給這些文件中物件的訊息,就" +204 " 可以發送到這個處理中。" 205 "" -206 "恞蜑﹜楙咍漶癱棬汃纂郫鞂埏庍雰ぇ柁А" -207 "⻌﹞睎⑴髓囷えА⻌謦祰 API 昋ⅰ坭羏髲" -208 "迖搢隉昡ス襓ホ柁媢桾﹜ɪ搢萺訒柁巖" -209 "恄衭僰痤ロ﹜モ珜⼓埢伈え怉藹ョ麷倛泂" -210 "氂斕邴剚夼柁罶媢﹞" +206 "注意,這些註冊動作一般會修改產生的字" +207 "串。您可以使用字串操控 API 呼叫來觀察" +208 "或處理物件導向的訊息,但此處描述的方" +209 "法要短得多,因為它們利用到了在類型定" +210 "義中所宣告的資訊。" 211 "" -212 "囷え tt_session_join 髓砅蠹蘋汃珜瞃栠汃鞄柁纂楶禳﹞蠹蘋渀﹜" -213 "睎⽁禕菙坯衭蠹蘋柁瞃栠汃鞄柁瞃栠汃鞄 id﹞" +212 "使用 tt_session_join 以便加入作為階段作業的一部分。加入時," +213 "您必須提供要加入的階段作業的階段作業 id。" 214 "" -215 "撋睎柁齡怞攜テ錛衭 ToolTalk 峇棜渀﹜" -216 "霘伈え tt_session_quit 廎忒瞃栠汃鞄﹞" +215 "當您的工具不再需要 ToolTalk 服務時," +216 "請利用 tt_session_quit 結束階段作業。" 217 "" -218 "撋睎柁齡怞蟡蘋纂堈麔淰﹜⼓⽁禕伈え昋ⅰ tt_file_join()" -219 "柁巖冈﹜蠹蘋僳奡ḷ羝卼篎麔淰柁搢隉漦嗢斕“麔淰" -220 "搢隉汒欄悒﹜霘昋ⅰ tt_file_quit() 欏瞅楙咍搢隉﹞" -221 "咍齡怞鞂纂瞅絒禨堈麔淰“咍衧纂ⅲ瞅絒" -222 "纂堈麔淰﹞" -223 "絒棬/彘欐稌縋䬷ざ媢桾﹞" -224 "覗崽媢桾槉嵺﹞" -225 "䬷ざ" +218 "當您的工具載入一個檔案,它必須利用呼叫 tt_file_join()" +219 "的方式,加入登記權益於該檔案的處理群組中;檔案" +220 "處理完成之後,請呼叫 tt_file_quit() 離開這些處理。" +221 "有些工具會一次開啟數個檔案;有些則一次只開啟" +222 "一個檔案。" +223 "啟動/停止接收與顯示訊息。" +224 "清除訊息視窗。" +225 "顯示" 226 "-------" -227 "撋纂堈媢桾怉蝞睎柁搢隉﹜鞂纂堈旓淰萺訒蠣䨣汃" -228 "え斕﹞呣謾睎柁齡怞廎擛旂匢笱伀﹜睎⑴髓謽隉⣷槉嵺" -229 "侇嗄齡怞嗢ョ麔淰萺訒蠣汃え渀﹜昋ⅰ纂堈ャⅰ汃え“" -230 "迖旂渿麔淰萺訒蠣蠹蘋纂堈 select(3) 昋ⅰ欄斕﹜髓眈" -231 "譇纂咍麔淰萺訒蠣﹞隓鵂囷え婛纂瞗巖冈﹜楁衭昋ⅰ" -232 "tt_message_receive() 珜讓屼婽蘋柁媢桾蘀抻纂堈祰鷁﹞" -233 "睎⑴髓囷え tt_message_*() 昋ⅰ坭黀栯媢桾㪫迒﹜髓扻" -234 "泂衭粞抻矓錵⺼棬﹞睎⑴髓伈え籤髱祰鷁柁巖冈﹝髓" -235 "tt_message_user_set() 昋ⅰ勂蘋媢桾斕髱睎柁鶈え嶂冈" -236 "蜑氂柁罶媢柁巖冈﹝迖髓 tt_message_callback_add 縋" -237 "tt_pattern_callback_add 昋ⅰ勂蘋媢桾迖⺌⻌笱泂柁ャⅰ" -238 "嶉巖冈﹜岊罐睎蒡婽彃媢桾柁ャ嵹﹞" +227 "當一個訊息到達您的處理,會有一個訪案描述元變成作" +228 "用中。依據您的工具結構是否特別,您可以整理讓視窗" +229 "系統工具組在檔案描述元作用時,呼叫一個回叫作用;" +230 "或是將檔案描述元加入一個 select(3) 呼叫之中,以阻" +231 "擋一些檔案描述元。無論使用哪一種方式,都要呼叫" +232 "tt_message_receive() 為包含送入的訊息獲取一個控點。" +233 "您可以使用 tt_message_*() 呼叫來檢查訊息屬性,以決" +234 "定要採取什麼行動。您可以利用比對控點的方式、以" +235 "tt_message_user_set() 呼叫放入訊息中對您的應用程式" +236 "有意義的資訊的方式、或以 tt_message_callback_add 與" +237 "tt_pattern_callback_add 呼叫放入訊息或自串特定的回叫" +238 "等方式,找出您傳送給訊息的回答。" 239 "" 240 "" -241 "媢桾" +241 "訊息" 242 "--------" -243 "衭婽罐媢桾﹜郗ッ霘崷殦纂衧隞媢桾﹜蝫蘋懱撋柁罶媢﹜隑悒" -244 "渿⼓婽罐﹞邴柁ャ嵹楁鞂罐隃ョフ纂衧媢桾斕﹞媢桾蕍汃汒" -245 "欄悒﹜霘恊勂纂咍鬊Б忟坯媢桾囷え﹞(髱卼鞂蒡ャ纂堈圊" -246 "柁衭忴坭諰﹜楙堈棬汃霘ョ⽁衭柁蒡ャ圊闀蕍罐⑩欄悒瑱⺼﹜" -247 "蚍ⅲ旂楈洁汃え﹜楙堈棬汃霘ョ婽罐悒瑱⺼﹞)" +243 "要送出訊息,首先請配置一則新訊息,填入適當的資訊,然後" +244 "將它送出。所有的回答都會出現在同一則訊息中。訊息製作完" +245 "成之後,請釋放一些儲存體供此訊息使用。(對於會傳回一個值" +246 "的要求來說,這個動作請在必要的傳回值複製出去之後進行," +247 "若只是通知作用,這個動作請在送出後進行。)" 248 "" -249 "衭崷殦隞媢桾﹜霘囷え tt_message_create()﹞⼓鞂蒡ャ纂堈 " -250 "\"祰鷁\" 迖 \"騿鰳冈柁挴簅\" 彃媢桾“霘渿楙堈祰鷁え卼稌" -251 "㶴柁昋ⅰ斕﹜髓棤嘵衧媢桾﹞" +249 "要配置新訊息,請使用 tt_message_create()。它會傳回一個 " +250 "\"控點\" 或 \"隱藏式的指標\" 給訊息;請將這個控點用於接" +251 "續的呼叫中,以參照此則訊息。" 252 "" -253 "衭蝫蘋媢桾罶媢﹜霘囷え tt_message_*_set() 昋ⅰ“" -254 "媢桾柁怀堈㪫迒楁鞂楙咍禋げ欄纂﹞" +253 "要填入訊息資訊,請使用 tt_message_*_set() 呼叫;" +254 "訊息的每個屬性都會有這些項目之一。" 255 "" -256 "睎⽁禕暋泂 Class﹝Address﹝Op 轡 Args﹞" +256 "您必須設定 Class、Address、Op 及 Args。" 257 "" -258 "伈え tt_message_send() 婽罐媢桾﹞" -259 "А⻌" +258 "利用 tt_message_send() 送出訊息。" +259 "字串" 260 "--------" -261 "か卼媢桾呥盻か婽罐柁搢隉咭薚﹝枺稌ユ鰱襓怉栲堈笱泂柁" -262 "抰炟﹜モ宎埢囷え \"А⻌籤髱\" 柁巖恄坭扻泂抰炟﹞" -263 "齡怞漶癱藹媢桾邴僳奡ḷ羝柁萺訒﹜ToolTalk 囷え楙咍萺訒" -264 "坭筀鵂媢桾柁楄嶂﹞怬斕鞂砉絅ペ伀嗢柁А⻌﹜髓萺訒齡怞" -265 "裱搢隉柁媢桾﹜髓轡裱羏髲柁媢桾﹞裱稌媢桾柁齡怞剚夼" -266 "怬ḷ羝僳奡柁渀鞥﹜⑴逑旂欹⺼渀棬鳷剚夼﹜迖ョЕ稹渀譖" -267 "鳷剚夼﹞棬鳷漶癱讓屼纂嗢А⻌﹜邴媢桾楁禕昑楙咍А⻌" -268 "籤髱﹞ヵ峈媢桾縋А⻌砨嗃﹜漶癱А⻌柁齡怞伒⑴ポ恄" -269 "稌媢桾﹞" +261 "由於訊息並非由送出的處理明確、直接地引導到某個特定的" +262 "收受者,因此我們使用 \"字串比對\" 的方法來決定收受者。" +263 "工具註冊了訊息所登記權益的描述,ToolTalk 使用這些描述" +264 "來推論訊息的途程。其中會保留各別組的字串,以描述工具" +265 "想處理的訊息,以及想觀察的訊息。想接收訊息的工具宣告" +266 "其權益登記的時機,可能是執行時動態宣告,或在安裝時靜" +267 "態宣告。動態註冊包含一組字串,所有訊息都須和這些字串" +268 "比對。如果有訊息與字串相符,註冊此字串的工具即可合法" +269 "接收此訊息。" 270 "" 271 "" 272 "" -273 "ョ椴蝝 ToolTalk 稌嶂囥媢桾欄虳﹜纂堈搢隉⽁禕ホ媢桾" -274 "蒡踽蟟漶癱﹞椴蝝漶癱柁蝝嶂﹜搢隉菙坯А⻌彃 ToolTalk“" -275 "欄悒 ToolTalk テ渿縋楙咍А⻌砨嗃柁媢桾蒡踽彃搢隉﹞楙咍" -276 "А⻌⑴髓伈え怚瞗巖冈唈ゥ”" +273 "在透過 ToolTalk 接收程序訊息之前,一個處理必須向訊息" +274 "傳遞器註冊。透過註冊的過程,處理提供字串給 ToolTalk;" +275 "之後 ToolTalk 再將與這些字串相符的訊息傳遞給處理。這些" +276 "字串可以利用兩種方式建立:" 277 "" -278 "譖鳷﹞椴蝝纂堈 ptype﹞纂堈搢隉⑴髓ホ媢桾蒡踽炟剚夼" -279 "怬 ptype“稌譯坭 ToolTalk 伒⑴皕 ptype 斕柁怀堈麷伀奡磍" -280 "斕雰ぇА⻌﹞楙咍雰ぇ柁А⻌⑴伈え蠹蘋縋欏瞅瞃栠汃鞄" -281 "柁巖冈埏庍﹜祼踛ョ昡ス襓ホ媢桾蒡踽渀纂穔﹞" +278 "靜態。透過一個 ptype。一個處理可以向訊息傳遞者宣告" +279 "其 ptype;接下來 ToolTalk 即可從 ptype 中的每個類別記號" +280 "中產生字串。這些產生的字串可利用加入與離開階段作業" +281 "的方式修改,就像在物件導向訊息傳遞時一樣。" 282 "" -283 "棬鳷﹞纂堈搢隉⑴髓ョ \"欹⺼斕\" 唈ゥА⻌呥ホ" -284 "ToolTalk 漶癱﹞楙堈鞥逑柁怢倛え恄旂汃珜纂堈" -285 "媢桾僳蠊齡怞﹜⼓ⅲ羏髲槴蝝柁邴媢桾﹜渿怬" -286 "䬷ざョ纂堈槉嵺斕“楙瞗齡怞ョ媢桾抾泂崽蠆渀" -287 "砨撋え﹞" +283 "動態。一個處理可以在 \"執行中\" 建立字串並向" +284 "ToolTalk 註冊。這個機能的典型用法是作為一個" +285 "訊息登錄工具,它只觀察經過的所有訊息,將其" +286 "顯示在一個視窗中;這種工具在訊息協定除錯時" +287 "相當有用。" 288 "" -289 "楙堈鶈嶂冈ⅲ囷え棬鳷А⻌﹞" +289 "這個應程式只使用動態字串。" 290 "" -291 "衭珜纂堈А⻌漶癱﹜郗ッ衭崷殦纂堈隞А⻌﹜蝫蘋懱撋柁罶媢﹜" -292 "隑悒テ漶癱﹞撋睎蕍汃ンА⻌欄悒 (ⅲ逑ョ睎髱卼嗃ポА⻌柁﹜" -293 "媢桾攜テ裧怉嬾儱欄悒)﹜霘恊勂鬊Б忟坯А⻌囷え﹞" +291 "要為一個字串註冊,首先要配置一個新字串,填入適當的資訊," +292 "然後再註冊。當您製作好字串之後 (只能在您對於符合此字串的," +293 "訊息不再感到興趣之後),請釋放儲存體供字串使用。" 294 "" 295 "" -296 "衭崷殦隞А⻌﹜霘囷え tt_pattern_create()﹞⼓鞂蒡ャ纂堈 " -297 "\"祰鷁\" 迖 \"騿鰳冈柁挴簅\" 彃А⻌“霘渿楙堈祰鷁え卼稌" -298 "㶴柁昋ⅰ斕﹜髓棤嘵楙堈А⻌﹞" +296 "要配置新字串,請使用 tt_pattern_create()。它會傳回一個 " +297 "\"控點\" 或 \"隱藏式的指標\" 給字串;請將這個控點用於接" +298 "續的呼叫中,以參照這個字串。" 299 "" -300 "衭蝫蘋А⻌罶媢﹜霘囷え tt_pattern_*_add() 昋ⅰ“" -301 "А⻌柁怀堈㪫迒楁鞂楙咍禋げ欄纂﹞А⻌斕柁怀" -302 "纂堈㪫迒﹜睎楁⑴髓菙坯ロ堈圊﹜ヵ峈А⻌斕柁圊" -303 "縋媢桾斕柁圊砨嗃伒⑴﹞" +300 "要填入字串資訊,請使用 tt_pattern_*_add() 呼叫;" +301 "字串的每個屬性都會有這些項目之一。字串中的每" +302 "一個屬性,您都可以提供多個值,如果字串中的值" +303 "與訊息中的值相符即可。" 304 "" 305 "" -306 "楙堈鶈え嶂冈囷え藹盻犧¨柁暋泂圊縋髓楉磍禳觰柁圊" -307 "汃珜ロ适㪫迒﹞" +306 "這個應用程式使用了非互斥的設定值與以逗號分隔的值" +307 "作為多重屬性。" 308 "" -309 "衭ョ攜℡懤笱泂㪫迒柁圊柁硠扃譯籤髱媢桾﹜" -310 "ⅲ衭ョА⻌斕攜衭蠹蘋㪫迒伒⑴﹞" +309 "要在不考慮特定屬性的值的情況下比對訊息," +310 "只要在字串中不要加入屬性即可。" 311 "" -312 "ヵ峈扽挴泂А⻌㪫迒﹜ToolTalk 峇棜鞂衶磭媢桾㪫迒柁禨げ﹜" -313 "汃珜嗃ポ柁禨げ﹞睎挴泂柁А⻌㪫迒熀韁﹜⑴髓怉柁媢桾熀" -314 "ロ﹞" +312 "如果沒有指定字串屬性,ToolTalk 服務會計算訊息屬性的數目," +313 "作為符合的數目。您指定的字串屬性越少,可以收到的訊息越" +314 "多。" 315 "" -316 "ヵ峈纂堈А⻌㪫迒挴泂藹ロ堈圊﹜怬斕纂堈⽁禕嗃ポ媢桾㪫迒" -317 "柁圊﹞ヵ峈扽圊嗃ポ﹜ToolTalk 祼攜鞂渿睎柁鶈え嶂冈槉珜" -318 "稌炟﹞" +316 "如果一個字串屬性指定了多個值,其中一個必須符合訊息屬性" +317 "的值。如果沒有值符合,ToolTalk 就不會將您的應用程式視為" +318 "接收者。" 319 "" -320 "㪫迒柁>瞗麷=縋>謓睕=纂泂衭蝫蘋﹞" +320 "屬性的「種類」與「範圍」一定要填入。" 321 "" -322 "А⻌汒欄悒﹜霘囷え tt_pattern_register() 蜌楙堈А⻌漶" -323 "癱﹜隑悒藞謥>鶈え=挹瘖﹜呣錛衭蠹蘋瞃栠汃鞄斕﹞" +322 "字串完成之後,請使用 tt_pattern_register() 替這個字串註" +323 "冊,然後選擇「應用」按鈕,依需要加入階段作業中。" 324 "" 325 "" -326 "か卼蠹蘋麔淰縋瞃栠汃鞄柁饜衭淩峈﹜旂彶隞げ虳漶癱" -327 "柁А⻌﹜モョ蠹蘋瞃栠汃鞄欄悒邴漶癱柁А⻌砅攜鞂" -328 "揧彶隞﹞睎瑊ンョ蠹蘋欄虳蜌邴柁А⻌漶癱﹜迖ョ漶" -329 "癱隞А⻌欄悒﹜适隞欹⺼蠹蘋柁棬汃﹞椴蝝蠹蘋 ptype﹜" -330 "楙堈棬汃伒⑴鶈え怉咭薚ユ漶癱柁А⻌﹞撋睎伈え媢桾" -331 "槉嵺蠹蘋媢桾渀﹜椵稌挹瘖柁衢逑玿祼鞂䨣騰﹞藞謥" -332 "纂堈媢桾欄悒﹜伒⑴渿⼓婽罐﹞" -333 "⻏彴”" -334 "か卼齡怞柁麷倛哱ロ﹜攜フ柁囷え炟譬鞂ョ攜フ柁渀睮蠡" -335 "囷え攜フ嗢柁齡怞﹜モ渀媢桾溈ス藺隓恄咭薚ユ价黫" -336 "栲堈媢桾柁抰炟侀毼旂鵅﹞モ﹜砨酈ユ﹜溈ス藺鞂菙" -337 "坯纂堈謦汃ボ磝﹜挴泂楙堈媢桾柁蜑氂﹜躂⑴髓菙坯楙堈" -338 "媢桾渿揧襓鰱怉婛纂堈昡ス﹜迖菙坯昡ス麷倛 (otype)﹞" +326 "由於加入檔案與階段作業的主要效果,是更新目前註冊" +327 "的字串,因此在加入階段作業之後所註冊的字串便不會" +328 "被更新。您最好在加入之前替所有的字串註冊,或在註" +329 "冊新字串之後,重新執行加入的動作。透過加入 ptype," +330 "這個動作即可應用到明確地註冊的字串。當您利用訊息" +331 "視窗加入訊息時,連接此按鈕的功能表就會變大。選擇" +332 "一個訊息之後,即可將它送出。" +333 "位址:" +334 "由於工具的類型很多,不同的使用者又會在不同的時間內" +335 "使用不同組的工具,因此有時訊息寄件人無法明確地判斷" +336 "某個訊息的收受者究竟是誰。因此,相反地,寄件人會提" +337 "供一個操作名稱,指定這個訊息的意義,也可以提供這個" +338 "訊息將被導引到哪一個物件,或提供物件類型 (otype)。" 339 "" 340 "" -341 "霘ョ昡ス襓ホ柁媢桾斕囷え昡ス迖 otype﹞ヵ峈⻏彴旂纂堈" -342 "搢隉蟟﹜衧霘挴泂搢隉蟟﹞" +341 "請在物件導向的訊息中使用物件或 otype。如果位址是一個" +342 "處理器,則請指定處理器。" 343 "" -344 " TT_PROCEDURE”邴菙坯柁 Op 縋 Args﹞" +344 " TT_PROCEDURE:所提供的 Op 與 Args。" 345 "" -346 " TT_OBJECT” 邴菙坯柁 Object, Op, 縋 Args﹞" +346 " TT_OBJECT: 所提供的 Object, Op, 與 Args。" 347 "" -348 " TT_HANDLER” 邴菙坯柁 Handler, Op, 縋 Args﹞" +348 " TT_HANDLER: 所提供的 Handler, Op, 與 Args。" 349 "" -350 " TT_OTYPE” 邴菙坯柁 Otype, Op, 縋 Args﹞" -351 "搢隉蟟”" -352 "ヵ峈睎洁蝚搢隉蟟薚骳柁 procid﹜祼⑴髓枺稌髱⼓僛婽媢桾﹞" -353 "纂郫柁硠扃旂﹜纂堈搢隉僛罐纂堈纂郫迒柁衭忴﹜隑悒皕ャ" -354 "鷋斕謥抻 Handler 㪫迒﹜テ鰱襓瑱纂忻柁媢桾怉フ纂堈搢隉" -355 "蟟“ヵ伒⑴椴蝝槴蝝柁徾礂媢桾﹜渿怚堈搢隉伒碬ポ媊坭﹜" -356 "隑悒纂媊怉蝞纂堈髱緷﹞" +350 " TT_OTYPE: 所提供的 Otype, Op, 與 Args。" +351 "處理器:" +352 "如果您知道處理器確實的 procid,就可以直接對它發送訊息。" +353 "一般的情況是,一個處理發出一個一般性的要求,然後從回" +354 "覆中擇取 Handler 屬性,再引導進一步的訊息到同一個處理" +355 "器;如此即可透過經過的廣播訊息,將兩個處理即集合起來," +356 "然後一起到達一個對話。" 357 "" -358 "Handler_Ptype”" -359 "ヵ峈睎洁蝚渿搢隉楙堈媢桾柁搢隉柁 ptype﹜霘蝫蘋﹞ⅲ衭" -360 "栯砫 ptype 泂氂﹜伒⑴岊罐抾泂柁嗏樄﹞" +358 "Handler_Ptype:" +359 "如果您知道將處理這個訊息的處理的 ptype,請填入。只要" +360 "查看 ptype 定義,即可找出協定的細節。" 361 "" -362 "昡ス”" -363 "蝫蘋楙堈媢桾渿揧婽怉柁昡ス欄 objid﹞" -364 "OType”" -365 "昡ス柁麷倛﹞" -366 "Op”" -367 "蝫蘋⑴諰咭雰ぇ柁楈洁迖衭忴柁謦汃﹞霘栯砫げ簅昡ス" -368 "柁 otype 泂氂﹜伒⑴痤洁謦汃ボ磝﹞" +362 "物件:" +363 "填入這個訊息將被送到的物件之 objid。" +364 "OType:" +365 "物件的類型。" +366 "Op:" +367 "填入可說明產生的通知或要求的操作。請查看目標物件" +368 "的 otype 定義,即可得知操作名稱。" 369 "" -370 "謦汃磍謑”" -371 "謦汃磍謑﹞楙⑴え坭禳藑蝝蟡柁謦汃 (ボ磝砨フɪ鰱禨麷" -372 "倛攜フ柁謦汃)﹜呥籙襲剟鷓鞥柁 \"蠡楶\" 禳狾 (珜彃泂柁" -373 "媢桾鞜え懱撋柁嶂囥﹞" +370 "操作號碼:" +371 "操作號碼。這可用來分辨過載的操作 (名稱相同但引數類" +372 "型不同的操作),並簡化客戶機的 \"內部\" 分派 (為給定的" +373 "訊息調用適當的程序。" 374 "" -375 "謓睕”" -376 "ヵ峈錛衭柁旂坭⺌フ纂堈瞃栠柁怬鱗搢隉柁媢桾﹜霘囷え" -377 "謓睕瞃栠汃鞄“ヵ峈錛衭柁旂驨卼栲堈麔淰柁麔淰媢桾﹜" -378 "衧霘囷え謓睕麔淰﹞" +375 "範圍:" +376 "如果需要的是來自同一個階段的其他處理的訊息,請使用" +377 "範圍階段作業;如果需要的是關於某個檔案的檔案訊息," +378 "則請使用範圍檔案。" 379 "" -380 " TT_SESSION” 稌坭⺌睎柁瞃栠汃鞄斕柁怬鱗搢" -381 " 隉柁媢桾﹞" +380 " TT_SESSION: 接收來自您的階段作業中的其他處" +381 " 理的訊息。" 382 "" -383 " TT_FILE” 稌驨卼蠹蘋柁麔淰柁媢桾﹞" +383 " TT_FILE: 接收關於加入的檔案的訊息。" 384 "" -385 " TT_BOTH” 稌驨卼麔淰縋瞃栠汃鞄柁" -386 " 媢桾﹞" +385 " TT_BOTH: 接收關於檔案與階段作業的" +386 " 訊息。" 387 "" -388 " TT_FILE_IN_SESSION” 稌ョ瞃栠汃鞄斕蠹蘋柁" -389 " 麔淰柁媢桾﹞" -390 "瞃栠汃鞄”" -391 "髱卼謓睕瞃栠汃鞄﹜霘挴泂瞃栠汃鞄 (蠡泂圊珜" -392 "tt_default_session())﹞" -393 "麔淰”" -394 "髱卼麔淰謓睕﹜霘挴泂麔淰ボ磝﹞" -395 "瞗麷”" -396 "囷え瞗麷羏髲睎旂匢裱栯砫罶媢“囷え瞗麷祰鷁衧⑴⺌癵" -397 "珜媢桾柁椔纂搢隉蟟﹞" +388 " TT_FILE_IN_SESSION: 接收在階段作業中加入的" +389 " 檔案的訊息。" +390 "階段作業:" +391 "對於範圍階段作業,請指定階段作業 (內定值為" +392 "tt_default_session())。" +393 "檔案:" +394 "對於檔案範圍,請指定檔案名稱。" +395 "種類:" +396 "使用種類觀察您是否想查看資訊;使用種類控點則可自願" +397 "成為訊息的唯一處理器。" 398 "" -399 " TT_OBSERVE”羏髲搢隉堍堍蘀痤⺌冼媢桾柁棓ヾ﹞" -400 " ズ禨げ柁搢隉楁⑴髓羏髲纂堈媢桾﹞伒囷栲" -401 " 堈媢桾旂纂堈衭忴﹜羏髲炟躂隓恄渿圊蒡ャ彃" -402 " 溈ス藺﹞纂郫諰坭﹜羏髲炟隓恄渿圊蒡ャ彃溈" -403 " ス藺﹞楈畈羏髲炟邴粞抻柁棬汃ⅲ鞂憵ᤑ怉芚" -404 " 嬬齡怞罶涷柁ガ隬冈䬷冈﹞" +399 " TT_OBSERVE:觀察處理剛剛獲得自身訊息的副本。" +400 " 任何數目的處理都可以觀察一個訊息。即使某" +401 " 個訊息是一個要求,觀察者也無法將值傳回給" +402 " 寄件人。一般說來,觀察者無法將值傳回給寄" +403 " 件人。通長觀察者所採取的動作只會影響到底" +404 " 層工具資料的交談式顯式。" 405 "" -406 " TT_HANDLE”搢隉骳鍺呣謾篎媢桾欹⺼栲堈棬汃柁" -407 " 搢隉﹞ⅲ纂堈搢隉⑴髓搢隉邴彃泂柁媢" -408 " 桾﹞ヵ峈媢桾旂纂堈衭忴﹜搢隉嶂囥祼旂蒡" -409 " ャ圊柁嶂囥﹞纂郫諰坭﹜搢隉蟟邴粞抻柁棬" -410 " 汃﹜鞂憵ᤑ齡怞罶涷柁挼㶴鬊Б玿隃﹞" +406 " TT_HANDLE:處理實際依據該訊息執行某個動作的" +407 " 處理。只有一個處理可以處理所有給定的訊" +408 " 息。如果訊息是一個要求,處理程序就是傳" +409 " 回值的程序。一般說來,處理器所採取的動" +410 " 作,會影響工具資料的持續儲存表現。" 411 "" -412 "麷伀”" -413 "麷伀衭忴囷え卼髓譯硠扃”えョ⑴蒡ャ圊柁媢桾“えョ睎" -414 "囧菗ャ䔝耩夼洁睎媢桾儸揧搢隉迖儸⻗ト渀“迖旂撋纂堈" -415 "搢隉瞅沓衭搢隉楙堈衭忴渀﹞髱卼堍楈洁怬鱗搢隉呦ス" -416 "僛ぇ柁媢桾﹜霘囷え麷伀楈洁﹞" +412 "類別:" +413 "類別要求使用於以下情況:用在可傳回值的訊息;用在您" +414 "希望有回饋告知您訊息已被處理或已佇列時;或是當一個" +415 "處理開始要處理這個要求時。對於剛通知其他處理有事件" +416 "發生的訊息,請使用類別通知。" 417 "" -418 " TT_NOTICE”邴臗>楈夼=旂楈洁怬鱗齡怞呦ス僛ぇ" -419 " 柁媢桾﹞婽罐楈洁柁齡怞攜蛺菗ャ鷋“溈ス藺" -420 " ⅲ囧菗夼洁怬鱗齡怞僛ぇ藹矓錵呦﹞" +418 " TT_NOTICE:所謂「通告」是通知其他工具有事件發生" +419 " 的訊息。送出通知的工具不期望有回覆;寄件人" +420 " 只希望告知其他工具發生了什麼事。" 421 "" 422 "" -423 " TT_REQUEST”邴臗>衭忴=旂霘忴怬鱗齡怞欹⺼" -424 " 栲堈棬汃柁媢桾﹞楈琣 (ɪ旂呥盻廕髱) 菙" -425 " 罐衭忴柁齡怞鞂蛺恁怉蒡ャ圊﹞楙堈圊" -426 " 伒珜髱衭忴柁嵹鷋﹞伒囷攜蒡ャズ圊﹜" -427 " 搢隉楙堈衭忴柁齡怞躂鞂婽罐嵹鷋﹜夼洁" -428 " 衢迖⼇絫﹞" -429 "搢禳”" -430 "挴泂ヵ峈媢桾隓恄揧ズ欹⺼斕柁嶂囥搢隉﹜鶈粞抻瞗⺼" -431 "棬﹞ヵ峈楙堈媢桾鶈篎⻗ト嶉恁﹜纂枺怉 Handler_Ptype 柁搢" -432 "隉漶癱欄悒﹜衧扻泂⻗ト﹞ヵ峈栲堈 Handler_Ptype 柁搢隉⽁" -433 "禕絒棬﹜衧扻泂絒棬﹞" +423 " TT_REQUEST:所謂「要求」是請求其他工具執行" +424 " 某個動作的訊息。通常 (但是並非絕對) 提" +425 " 出要求的工具會期待收到傳回值。這個值" +426 " 即為對此要求的答覆。即使不傳回任何值," +427 " 處理這個要求的工具也會送出答覆,告知" +428 " 成功或失敗。" +429 "處分:" +430 "指定如果訊息無法被任何執行中的程序處理,應採取何種行" +431 "動。如果這個訊息應該佇列等待,一直到 Handler_Ptype 的處" +432 "理註冊之後,則決定佇列。如果某個 Handler_Ptype 的處理必" +433 "須啟動,則決定啟動。" 434 "" -435 " TT_QUEUE”渿媢桾⻗ト﹜枺怉懱撋 ptype 柁搢隉怉楙堈" -436 " 媢桾珜欐﹞" +435 " TT_QUEUE:將訊息佇列,直到適當 ptype 的處理收到這個" +436 " 訊息為止。" 437 "" -438 " TT_START”ヵ峈扽搢隉ョ欹⺼﹜衧閰箹絒棬纂堈懱" -439 " 撋 ptype 柁搢隉﹞" +438 " TT_START:如果沒有處理正在執行,則嘗試啟動一個有適" +439 " 當 ptype 的處理。" 440 "" -441 "恞蜑﹜Tt_disposition 柁圊⑴髓砨蠹﹜モ TT_QUEUE+TT_START" -442 "祼玿ざ怚炟楁衭渿媢桾⻗ト﹜呥閰箹絒棬纂堈搢隉﹞ヵ峈" -443 "絒棬⑴逑⼇絫 (迖か囷え炟匢扻)﹜楙堈衢逑祼⑴逑え怉﹜" -444 "⣷ポ恄柁搢隉纂絒棬欄悒﹜媢桾ゥ伒⑴髓揧搢隉﹞" +441 "注意,Tt_disposition 的值可以相加,因此 TT_QUEUE+TT_START" +442 "就表示兩者都要將訊息佇列,並嘗試啟動一個處理。如果" +443 "啟動可能失敗 (或由使用者否決),這個功能就可能用到," +444 "讓合法的處理一啟動之後,訊息立即可以被處理。" 445 "" -446 "硠扃”" -447 "纂堈媢桾柁昲鳷㪫迒柁圊﹞⑴逑柁圊轡怬鷥玿蜑氂ヵ譯”" +446 "情況:" +447 "一個訊息的狀態屬性的值。可能的值及其代表意義如下:" 448 "" 449 "" -450 " TT_CREATED” 唈ゥンɪゝ婽罐柁媢桾﹞ⅲ媢桾柁" -451 " 溈ス藺⑴髓砫怉楙瞗昲鳷柁媢桾﹞" +450 " TT_CREATED: 建立好但未送出的訊息。只有訊息的" +451 " 寄件人可以看到這種狀態的訊息。" 452 "" -453 " TT_SENT” 儸婽罐ɪ泲ゝ揧搢隉柁媢桾﹞" +453 " TT_SENT: 已送出但尚未被處理的訊息。" 454 "" -455 " TT_HANDLED” 媢桾儸揧搢隉﹜靨蒡ャ圊旂淩柁﹞" +455 " TT_HANDLED: 訊息已被處理,且傳回值是有效的。" 456 "" -457 " TT_FAILED” 媢桾隓恄蒡踽怉搢隉蟟﹞" +457 " TT_FAILED: 訊息無法傳遞到處理器。" 458 "" -459 " TT_QUEUED” 媢桾揧衭忴菪纂鷁テ蒡罐﹞" +459 " TT_QUEUED: 訊息被要求晚一點再傳出。" 460 "" -461 " TT_STARTED: 閰箹絒棬纂堈搢隉﹜髓砅搢隉媢桾﹞" +461 " TT_STARTED: 嘗試啟動一個處理,以便處理訊息。" 462 "" -463 " TT_REJECTED”媢桾揧纂堈⑴逑柁搢隉蟟陃廕﹞" -464 " 楙堈昲鳷ⅲ衭僛罐陃廕柁搢隉⑴髓砫怉“" -465 " ToolTalk 鞂ョ蒡踽楙堈媢桾怉怬鱗⑴逑柁" -466 " 搢隉蟟欄虳﹜渿昲鳷庍ャ TT_SENT﹞" -467 "昲鳷”" -468 "椔纂柁禨А﹜挴罐ャ鷋炟邴蒡ャ柁媢桾廎峈﹞楙堈禨А" -469 "⽁禕騰卼 TT_ERR_LAST (2047)﹞" -470 "昲鳷А⻌”" -471 "媢桾昲鳷柁齪А萺訒﹞" -472 "溈ス藺”" -473 "挴罐婽罐楙堈媢桾柁搢隉﹞" -474 "溈ス藺 ptype”" -475 "婽罐楙堈媢桾柁搢隉柁 ptype﹞" -476 "Uid”" -477 "婽罐楙堈媢桾柁搢隉淩柁囷え炟籫伀А﹞" -478 "Gid”" -479 "婽罐楙堈媢桾柁搢隉淩柁漦嗢籫伀А﹞" -480 "篲鳷”" -481 "挴泂媢桾鰱禨柁篲鳷﹞⑴逑柁圊轡怬蜑氂ヵ譯”" +463 " TT_REJECTED:訊息被一個可能的處理器拒絕。" +464 " 這個狀態只要發出拒絕的處理可以看到;" +465 " ToolTalk 會在傳遞這個訊息到其他可能的" +466 " 處理器之前,將狀態改回 TT_SENT。" +467 "狀態:" +468 "唯一的數字,指出回覆者所傳回的訊息結果。這個數字" +469 "必須大於 TT_ERR_LAST (2047)。" +470 "狀態字串:" +471 "訊息狀態的文字描述。" +472 "寄件人:" +473 "指出送出這個訊息的處理。" +474 "寄件人 ptype:" +475 "送出這個訊息的處理的 ptype。" +476 "Uid:" +477 "送出這個訊息的處理有效的使用者識別字。" +478 "Gid:" +479 "送出這個訊息的處理有效的群組識別字。" +480 "模態:" +481 "指定訊息引數的模態。可能的值及其意義如下:" 482 "" 483 "" -484 " TT_IN” 楙堈鰱禨旂か溈ス藺邴嬣﹜か搢隉蟟轡ズ羏髲" -485 " 炟邴幺抻﹞" +484 " TT_IN: 這個引數是由寄件人所寫,由處理器及任何觀察" +485 " 者所讀取。" 486 "" -487 " TT_OUT” 楙堈鰱禨旂か溈ス藺邴嬣﹜か搢隉蟟轡ズャ鷋" -488 " 羏髲炟邴幺抻﹞" +487 " TT_OUT: 這個引數是由寄件人所寫,由處理器及任何回覆" +488 " 觀察者所讀取。" 489 "" -490 " TT_INOUT”楙堈鰱禨旂か溈ス藺轡搢隉蟟轡ズ羏髲炟邴" -491 " 嬣蘋轡幺抻﹞" -492 "麷倛”" -493 "挴罐麷倛柁А⻌﹞纂郫柁圊旂 \"string\" 縋 \"int\"﹜" -494 "鬕隑僛晜藺婝⑴髓⺌⺼唈ゥ﹞" -495 "圊”" -496 "皕㪫篎麷倛柁圊柁骳鍺罶涷﹞撋睎挹藹>鶈え=" -497 "挹瘖欄悒﹜怉柁怀堈媢桾﹜祼鞂䬷ざ挴泂暋" -498 "泂柁圊﹞挹藹挹瘖欄悒﹜䬷ざ柁圊鞂适暋珜虳" -499 "鶈え渀柁硠扃迖旂媊沓圊﹜砫婛纂堈渀睮蝷" -500 "珆﹞" -501 "蹌藟稌柁蠡齪”" -502 "嚌蠹﹝伝崽迖䨣彶睎裱稌柁蠡齪﹞" -503 "А⻌籤髱嶂冈" +490 " TT_INOUT:這個引數是由寄件人及處理器及任何觀察者所" +491 " 寫入及讀取。" +492 "類型:" +493 "指出類型的字串。一般的值是 \"string\" 與 \"int\"," +494 "雖然發展人員可以自行建立。" +495 "值:" +496 "從屬該類型的值的實際資料。當您按了「應用」" +497 "按鈕之後,收到的每個訊息,就會顯示指定設" +498 "定的值。按了按鈕之後,顯示的值會重設為前" +499 "次應用時的情況或是起始值,看哪一個時間較" +500 "近。" +501 "編輯接收的內文:" +502 "增加、刪除或變更您想接收的內文。" +503 "字串比對程式" 504 "---------------" -505 "か卼媢桾呥盻か婽罐柁搢隉咭薚﹝枺稌ユ鰱襓怉栲堈笱泂柁" -506 "稌炟﹜モ宎埢囷え \"А⻌籤髱\" 柁巖恄坭扻泂稌炟﹞" -507 "齡怞漶癱藹媢桾邴僳奡ḷ羝柁萺訒﹜ToolTalk 囷え楙咍萺訒" -508 "坭筀鵂媢桾柁楄嶂﹞怬斕鞂砉絅ペ伀嗢柁А⻌﹜髓萺訒齡怞" -509 "裱搢隉柁媢桾﹜髓轡裱羏髲柁媢桾﹞裱稌媢桾柁齡怞剚夼" -510 "怬ḷ羝僳奡柁渀鞥﹜⑴逑旂欹⺼渀棬鳷剚夼﹜迖ョЕ稹渀譖" -511 "鳷剚夼﹞棬鳷漶癱讓屼纂嗢А⻌﹜邴媢桾楁禕昑楙咍А⻌" -512 "籤髱﹞ヵ峈媢桾縋А⻌砨嗃﹜漶癱А⻌柁齡怞伒⑴ポ恄" -513 "稌媢桾﹞" +505 "由於訊息並非由送出的處理明確、直接地引導到某個特定的" +506 "接收者,因此我們使用 \"字串比對\" 的方法來決定接收者。" +507 "工具註冊了訊息所登記權益的描述,ToolTalk 使用這些描述" +508 "來推論訊息的途程。其中會保留各別組的字串,以描述工具" +509 "想處理的訊息,以及想觀察的訊息。想接收訊息的工具宣告" +510 "其權益登記的時機,可能是執行時動態宣告,或在安裝時靜" +511 "態宣告。動態註冊包含一組字串,所有訊息都須和這些字串" +512 "比對。如果有訊息與字串相符,註冊此字串的工具即可合法" +513 "接收此訊息。" 514 "" 515 "" 516 "" 517 "" -518 "ョ椴蝝 ToolTalk 稌嶂囥媢桾欄虳﹜纂堈搢隉⽁禕ホ媢桾" -519 "蒡踽蟟漶癱﹞椴蝝漶癱柁蝝嶂﹜搢隉菙坯А⻌彃 ToolTalk“" -520 "欄悒 ToolTalk テ渿縋楙咍А⻌砨嗃柁媢桾蒡踽彃搢隉﹞楙咍" -521 "А⻌⑴髓伈え怚瞗巖冈唈ゥ”" +518 "在透過 ToolTalk 接收程序訊息之前,一個處理必須向訊息" +519 "傳遞器註冊。透過註冊的過程,處理提供字串給 ToolTalk;" +520 "之後 ToolTalk 再將與這些字串相符的訊息傳遞給處理。這些" +521 "字串可以利用兩種方式建立:" 522 "" -523 "譖鳷﹞椴蝝纂堈 ptype﹞纂堈搢隉⑴髓ホ [媢桾蒡踽炟] 剚夼" -524 "怬 ptype“稌譯坭 ToolTalk 伒⑴皕 ptype 斕柁怀堈麷伀奡磍" -525 "斕雰ぇА⻌﹞楙咍雰ぇ柁А⻌⑴伈え蠹蘋縋欏瞅瞃栠汃鞄" -526 "柁巖冈埏庍﹜祼踛ョ昡ス襓ホ媢桾蒡踽渀纂穔﹞" +523 "靜態。透過一個 ptype。一個處理可以向 [訊息傳遞者] 宣告" +524 "其 ptype;接下來 ToolTalk 即可從 ptype 中的每個類別記號" +525 "中產生字串。這些產生的字串可利用加入與離開階段作業" +526 "的方式修改,就像在物件導向訊息傳遞時一樣。" 527 "" -528 "棬鳷﹞纂堈搢隉⑴髓ョ \"欹⺼斕\" 唈ゥА⻌呥ホ" -529 "ToolTalk 漶癱﹞楙堈鞥逑柁怢倛え恄旂汃珜纂堈" -530 "媢桾僳蠊齡怞﹜⼓ⅲ羏髲槴蝝柁邴媢桾﹜渿怬" -531 "䬷ざョ纂堈槉嵺斕“楙瞗齡怞ョ媢桾抾泂崽蠆渀" -532 "砨撋え﹞" +528 "動態。一個處理可以在 \"執行中\" 建立字串並向" +529 "ToolTalk 註冊。這個機能的典型用法是作為一個" +530 "訊息登錄工具,它只觀察經過的所有訊息,將其" +531 "顯示在一個視窗中;這種工具在訊息協定除錯時" +532 "相當有用。" 533 "" -534 "楙堈鶈嶂冈ⅲ囷え棬鳷А⻌﹞" +534 "這個應程式只使用動態字串。" 535 "" -536 "衭珜纂堈А⻌漶癱﹜郗ッ衭崷殦纂堈隞А⻌﹜蝫蘋懱撋柁罶媢﹜" -537 "隑悒テ漶癱﹞撋睎蕍汃ンА⻌欄悒 (ⅲ逑ョ睎髱卼嗃ポА⻌柁﹜" -538 "媢桾攜テ裧怉嬾儱欄悒)﹜霘恊勂鬊Б忟坯А⻌囷え﹞" +536 "要為一個字串註冊,首先要配置一個新字串,填入適當的資訊," +537 "然後再註冊。當您製作好字串之後 (只能在您對於符合此字串的," +538 "訊息不再感到興趣之後),請釋放儲存體供字串使用。" 539 "" 540 "" -541 "衭崷殦隞А⻌﹜霘囷え tt_pattern_create()﹞⼓鞂蒡ャ纂堈 " -542 "\"祰鷁\" 迖 \"騿鰳冈柁挴簅\" 彃А⻌“霘渿楙堈祰鷁え卼稌" -543 "㶴柁昋ⅰ斕﹜髓棤嘵楙堈А⻌﹞" +541 "要配置新字串,請使用 tt_pattern_create()。它會傳回一個 " +542 "\"控點\" 或 \"隱藏式的指標\" 給字串;請將這個控點用於接" +543 "續的呼叫中,以參照這個字串。" 544 "" -545 "衭蝫蘋А⻌罶媢﹜霘囷え tt_pattern_*_add() 昋ⅰ“" -546 "А⻌柁怀堈㪫迒楁鞂楙咍禋げ欄纂﹞А⻌斕柁怀" -547 "纂堈㪫迒﹜睎楁⑴髓菙坯ロ堈圊﹜ヵ峈А⻌斕柁圊" -548 "縋媢桾斕柁圊砨嗃伒⑴﹞" +545 "要填入字串資訊,請使用 tt_pattern_*_add() 呼叫;" +546 "字串的每個屬性都會有這些項目之一。字串中的每" +547 "一個屬性,您都可以提供多個值,如果字串中的值" +548 "與訊息中的值相符即可。" 549 "" 550 "" -551 "楙堈鶈え嶂冈囷え藹盻犧¨柁暋泂圊縋髓楉磍禳觰柁圊" -552 "汃珜ロ适㪫迒﹞" +551 "這個應用程式使用了非互斥的設定值與以逗號分隔的值" +552 "作為多重屬性。" 553 "" -554 "衭ョ攜℡懤笱泂㪫迒柁圊柁硠扃譯籤髱媢桾﹜" -555 "ⅲ衭ョА⻌斕攜衭蠹蘋㪫迒伒⑴﹞" +554 "要在不考慮特定屬性的值的情況下比對訊息," +555 "只要在字串中不要加入屬性即可。" 556 "" -557 "ヵ峈扽挴泂А⻌㪫迒﹜ToolTalk 峇棜鞂衶磭媢桾㪫迒柁禨げ﹜" -558 "汃珜嗃ポ柁禨げ﹞睎挴泂柁А⻌㪫迒熀韁﹜⑴髓怉柁媢桾熀" -559 "ロ﹞" +557 "如果沒有指定字串屬性,ToolTalk 服務會計算訊息屬性的數目," +558 "作為符合的數目。您指定的字串屬性越少,可以收到的訊息越" +559 "多。" 560 "" -561 "ヵ峈纂堈А⻌㪫迒挴泂藹ロ堈圊﹜怬斕纂堈⽁禕嗃ポ媢桾㪫迒" -562 "柁圊﹞ヵ峈扽圊嗃ポ﹜ToolTalk 祼攜鞂渿睎柁鶈え嶂冈槉珜" -563 "稌炟﹞" +561 "如果一個字串屬性指定了多個值,其中一個必須符合訊息屬性" +562 "的值。如果沒有值符合,ToolTalk 就不會將您的應用程式視為" +563 "接收者。" 564 "" -565 "㪫迒柁>瞗麷=縋>謓睕=纂泂衭蝫蘋﹞" +565 "屬性的「種類」與「範圍」一定要填入。" 566 "" -567 "А⻌汒欄悒﹜霘囷え tt_pattern_register() 蜌楙堈А⻌漶" -568 "癱﹜隑悒藞謥>鶈え=挹瘖﹜呣錛衭蠹蘋瞃栠汃鞄斕﹞" +567 "字串完成之後,請使用 tt_pattern_register() 替這個字串註" +568 "冊,然後選擇「應用」按鈕,依需要加入階段作業中。" 569 "" 570 "" -571 "か卼蠹蘋麔淰縋瞃栠汃鞄柁饜衭淩峈﹜旂彶隞げ虳漶癱" -572 "柁А⻌﹜モョ蠹蘋瞃栠汃鞄欄悒邴漶癱柁А⻌砅攜鞂" -573 "揧彶隞﹞睎瑊ンョ蠹蘋欄虳蜌邴柁А⻌漶癱﹜迖ョ漶" -574 "癱隞А⻌欄悒﹜适隞欹⺼蠹蘋柁棬汃﹞椴蝝蠹蘋 ptype﹜" -575 "楙堈棬汃伒⑴鶈え怉咭薚ユ漶癱柁А⻌﹞撋睎伈え媢桾" -576 "槉嵺蠹蘋媢桾渀﹜椵稌挹瘖柁衢逑玿祼鞂䨣騰﹞藞謥" -577 "纂堈媢桾欄悒﹜伒⑴渿⼓婽罐﹞" -578 "⻏彴”" -579 "か卼齡怞柁麷倛哱ロ﹜攜フ柁囷え炟譬鞂ョ攜フ柁渀睮蠡" -580 "囷え攜フ嗢柁齡怞﹜モ渀媢桾溈ス藺隓恄咭薚ユ价黫" -581 "栲堈媢桾柁抰炟侀毼旂鵅﹞モ﹜砨酈ユ﹜溈ス藺鞂菙" -582 "坯纂堈謦汃ボ磝﹜挴泂楙堈媢桾柁蜑氂﹜躂⑴髓菙坯楙堈" -583 "媢桾渿揧襓鰱怉婛纂堈昡ス﹜迖菙坯昡ス麷倛 (otype)﹞" +571 "由於加入檔案與階段作業的主要效果,是更新目前註冊" +572 "的字串,因此在加入階段作業之後所註冊的字串便不會" +573 "被更新。您最好在加入之前替所有的字串註冊,或在註" +574 "冊新字串之後,重新執行加入的動作。透過加入 ptype," +575 "這個動作即可應用到明確地註冊的字串。當您利用訊息" +576 "視窗加入訊息時,連接此按鈕的功能表就會變大。選擇" +577 "一個訊息之後,即可將它送出。" +578 "位址:" +579 "由於工具的類型很多,不同的使用者又會在不同的時間內" +580 "使用不同組的工具,因此有時訊息寄件人無法明確地判斷" +581 "某個訊息的收受者究竟是誰。因此,相反地,寄件人會提" +582 "供一個操作名稱,指定這個訊息的意義,也可以提供這個" +583 "訊息將被導引到哪一個物件,或提供物件類型 (otype)。" 584 "" -585 "霘ョ昡ス襓ホ柁媢桾斕囷え昡ス迖 otype﹞ヵ峈⻏彴旂纂堈" -586 "搢隉蟟﹜衧霘挴泂搢隉蟟﹞" +585 "請在物件導向的訊息中使用物件或 otype。如果位址是一個" +586 "處理器,則請指定處理器。" 587 "" -588 " TT_PROCEDURE”菙坯藹 Op 縋 Args﹞" +588 " TT_PROCEDURE:提供了 Op 與 Args。" 589 "" -590 " TT_OBJECT” 菙坯藹 Object, Op, 縋 Args﹞" +590 " TT_OBJECT: 提供了 Object, Op, 與 Args。" 591 "" -592 " TT_HANDLER” 菙坯藹 Handler, Op, 縋 Args﹞" +592 " TT_HANDLER: 提供了 Handler, Op, 與 Args。" 593 "" -594 " TT_OTYPE” 菙坯藹 Otype, Op, 縋 Args﹞" -595 "昡ス”" -596 "蝫蘋楙堈媢桾渿揧婽怉柁昡ス欄 objid﹞" -597 "OType”" -598 "昡ス柁麷倛﹞" -599 "Op”" -600 "蝫蘋⑴諰咭雰ぇ柁楈洁迖衭忴柁謦汃﹞霘栯砫げ簅昡ス" -601 "柁 otype 泂氂﹜伒⑴痤洁謦汃ボ磝﹞" +594 " TT_OTYPE: 提供了 Otype, Op, 與 Args。" +595 "物件:" +596 "填入這個訊息將被送到的物件之 objid。" +597 "OType:" +598 "物件的類型。" +599 "Op:" +600 "填入可說明產生的通知或要求的操作。請查看目標物件" +601 "的 otype 定義,即可得知操作名稱。" 602 "" -603 "謓睕”" -604 "ヵ峈錛衭柁旂坭⺌フ纂堈瞃栠柁怬鱗搢隉柁媢桾﹜霘囷え" -605 "謓睕瞃栠汃鞄“ヵ峈錛衭柁旂驨卼栲堈麔淰柁麔淰媢桾﹜" -606 "衧霘囷え謓睕麔淰﹞" +603 "範圍:" +604 "如果需要的是來自同一個階段的其他處理的訊息,請使用" +605 "範圍階段作業;如果需要的是關於某個檔案的檔案訊息," +606 "則請使用範圍檔案。" 607 "" -608 " TT_SESSION” 稌坭⺌睎柁瞃栠汃鞄斕柁怬鱗搢" -609 " 隉柁媢桾﹞" +608 " TT_SESSION: 接收來自您的階段作業中的其他處" +609 " 理的訊息。" 610 "" -611 " TT_FILE” 稌驨卼蠹蘋柁麔淰柁媢桾﹞" +611 " TT_FILE: 接收關於加入的檔案的訊息。" 612 "" -613 " TT_BOTH” 稌驨卼麔淰縋瞃栠汃鞄柁媢桾﹞" +613 " TT_BOTH: 接收關於檔案與階段作業的訊息。" 614 "" -615 " TT_FILE_IN_SESSION” 稌ョ瞃栠汃鞄斕蠹蘋" -616 " 麔淰柁媢桾﹞" -617 "麔淰”" -618 "髱卼麔淰謓睕﹜霘挴泂麔淰ボ磝﹞" -619 "瞃栠汃鞄”" -620 "髱卼謓睕瞃栠汃鞄﹜霘挴泂瞃栠汃鞄 (蠡泂圊珜" -621 "tt_default_session())﹞" -622 "瞗麷”" -623 "囷え瞗麷羏髲睎旂匢裱栯砫罶媢“囷え瞗麷祰鷁衧⑴⺌癵" -624 "珜媢桾柁椔纂搢隉蟟﹞" +615 " TT_FILE_IN_SESSION: 接收在階段作業中加入" +616 " 檔案的訊息。" +617 "檔案:" +618 "對於檔案範圍,請指定檔案名稱。" +619 "階段作業:" +620 "對於範圍階段作業,請指定階段作業 (內定值為" +621 "tt_default_session())。" +622 "種類:" +623 "使用種類觀察您是否想查看資訊;使用種類控點則可自願" +624 "成為訊息的唯一處理器。" 625 "" -626 " TT_OBSERVE”羏髲搢隉堍堍蘀痤⺌冼媢桾柁棓ヾ﹞" -627 " ズ禨げ柁搢隉楁⑴髓羏髲纂堈媢桾﹞伒囷栲" -628 " 堈媢桾旂纂堈衭忴﹜羏髲炟躂隓恄渿圊蒡ャ彃" -629 " 溈ス藺﹞纂郫諰坭﹜羏髲炟隓恄渿圊蒡ャ彃溈" -630 " ス藺﹞楈琣羏髲炟邴粞抻柁棬汃ⅲ鞂憵ᤑ怉芚" -631 " 嬬齡怞罶涷柁ガ隬冈䬷冈﹞" +626 " TT_OBSERVE:觀察處理剛剛獲得自身訊息的副本。" +627 " 任何數目的處理都可以觀察一個訊息。即使某" +628 " 個訊息是一個要求,觀察者也無法將值傳回給" +629 " 寄件人。一般說來,觀察者無法將值傳回給寄" +630 " 件人。通常觀察者所採取的動作只會影響到底" +631 " 層工具資料的交談式顯式。" 632 "" -633 " TT_HANDLE”搢隉骳鍺呣謾篎媢桾欹⺼栲堈棬汃柁" -634 " 搢隉﹞ⅲ纂堈搢隉⑴髓搢隉邴彃泂柁媢" -635 " 桾﹞ヵ峈媢桾旂纂堈衭忴﹜搢隉嶂囥祼旂蒡" -636 " ャ圊柁嶂囥﹞纂郫諰坭﹜搢隉蟟邴粞抻柁棬" -637 " 汃﹜鞂憵ᤑ齡怞罶涷柁挼㶴鬊Б玿隃﹞" +633 " TT_HANDLE:處理實際依據該訊息執行某個動作的" +634 " 處理。只有一個處理可以處理所有給定的訊" +635 " 息。如果訊息是一個要求,處理程序就是傳" +636 " 回值的程序。一般說來,處理器所採取的動" +637 " 作,會影響工具資料的持續儲存表現。" 638 "" -639 "麷伀”" -640 "麷伀衭忴囷え卼髓譯硠扃”えョ⑴蒡ャ圊柁媢桾“えョ睎" -641 "囧菗ャ䔝耩夼洁睎媢桾儸揧搢隉迖儸⻗ト渀“迖旂撋纂堈" -642 "搢隉瞅沓衭搢隉楙堈衭忴渀﹞髱卼堍楈洁怬鱗搢隉呦ス" -643 "僛ぇ柁媢桾﹜霘囷え麷伀楈洁﹞" +639 "類別:" +640 "類別要求使用於以下情況:用在可傳回值的訊息;用在您" +641 "希望有回饋告知您訊息已被處理或已佇列時;或是當一個" +642 "處理開始要處理這個要求時。對於剛通知其他處理有事件" +643 "發生的訊息,請使用類別通知。" 644 "" -645 " TT_NOTICE”邴臗>楈夼=旂楈洁怬鱗齡怞呦ス僛ぇ" -646 " 柁媢桾﹞婽罐楈洁柁齡怞攜蛺菗ャ鷋“溈ス藺" -647 " ⅲ囧菗夼洁怬鱗齡怞僛ぇ藹矓錵呦﹞" +645 " TT_NOTICE:所謂「通告」是通知其他工具有事件發生" +646 " 的訊息。送出通知的工具不期望有回覆;寄件人" +647 " 只希望告知其他工具發生了什麼事。" 648 "" 649 "" -650 " TT_REQUEST”邴臗>衭忴=旂霘忴怬鱗齡怞欹⺼" -651 " 栲堈棬汃柁媢桾﹞楈琣 (ɪ旂呥盻廕髱) 菙" -652 " 菙罐衭忴柁齡怞鞂蛺恁怉蒡ャ圊﹞楙堈圊" -653 " 伒珜髱衭忴柁嵹鷋﹞伒囷攜蒡ャズ圊﹜" -654 " 搢隉楙堈衭忴柁齡怞躂鞂婽罐嵹鷋﹜夼洁" -655 " 衢迖⼇絫﹞" -656 "硠扃”" -657 "纂堈媢桾柁昲鳷㪫迒柁圊﹞⑴逑柁圊轡怬鷥玿蜑氂ヵ譯”" +650 " TT_REQUEST:所謂「要求」是請求其他工具執行" +651 " 某個動作的訊息。通常 (但是並非絕對) 提" +652 " 提出要求的工具會期待收到傳回值。這個值" +653 " 即為對此要求的答覆。即使不傳回任何值," +654 " 處理這個要求的工具也會送出答覆,告知" +655 " 成功或失敗。" +656 "情況:" +657 "一個訊息的狀態屬性的值。可能的值及其代表意義如下:" 658 "" 659 "" -660 " TT_CREATED” 唈ゥンɪゝ婽罐柁媢桾﹞ⅲ媢桾柁" -661 " 溈ス藺⑴髓砫怉楙瞗昲鳷柁媢桾﹞" +660 " TT_CREATED: 建立好但未送出的訊息。只有訊息的" +661 " 寄件人可以看到這種狀態的訊息。" 662 "" -663 " TT_SENT” 儸婽罐ɪ泲ゝ揧搢隉柁媢桾﹞" +663 " TT_SENT: 已送出但尚未被處理的訊息。" 664 "" -665 " TT_HANDLED” 媢桾儸揧搢隉﹜靨蒡ャ圊旂淩柁﹞" +665 " TT_HANDLED: 訊息已被處理,且傳回值是有效的。" 666 "" -667 " TT_FAILED” 媢桾隓恄蒡踽怉搢隉蟟﹞" +667 " TT_FAILED: 訊息無法傳遞到處理器。" 668 "" -669 " TT_QUEUED” 媢桾揧衭忴菪纂鷁テ蒡罐﹞" +669 " TT_QUEUED: 訊息被要求晚一點再傳出。" 670 "" -671 " TT_STARTED: 閰箹絒棬纂堈搢隉﹜髓砅搢隉媢桾﹞" +671 " TT_STARTED: 嘗試啟動一個處理,以便處理訊息。" 672 "" -673 " TT_REJECTED”媢桾揧纂堈⑴逑柁搢隉蟟陃廕﹞" -674 " 楙堈昲鳷ⅲ衭僛罐陃廕柁搢隉⑴髓砫怉“" -675 " ToolTalk 鞂ョ蒡踽楙堈媢桾怉怬鱗⑴逑柁" -676 " 搢隉蟟欄虳﹜渿昲鳷庍ャ TT_SENT﹞" -677 "搢禳”" -678 "挴泂ヵ峈媢桾隓恄揧ズ欹⺼斕柁嶂囥搢隉﹜鶈粞抻瞗⺼" -679 "棬﹞ヵ峈楙堈媢桾鶈篎⻗ト嶉恁﹜纂枺怉 Handler_Ptype 柁搢" -680 "隉漶癱欄悒﹜衧扻泂⻗ト﹞ヵ峈栲堈 Handler_Ptype 柁搢隉⽁" -681 "禕絒棬﹜衧扻泂絒棬﹞" +673 " TT_REJECTED:訊息被一個可能的處理器拒絕。" +674 " 這個狀態只要發出拒絕的處理可以看到;" +675 " ToolTalk 會在傳遞這個訊息到其他可能的" +676 " 處理器之前,將狀態改回 TT_SENT。" +677 "處分:" +678 "指定如果訊息無法被任何執行中的程序處理,應採取何種行" +679 "動。如果這個訊息應該佇列等待,一直到 Handler_Ptype 的處" +680 "理註冊之後,則決定佇列。如果某個 Handler_Ptype 的處理必" +681 "須啟動,則決定啟動。" 682 "" -683 " TT_QUEUE”渿媢桾⻗ト﹜枺怉懱撋 ptype 柁搢隉怉楙堈" -684 " 媢桾珜欐﹞" +683 " TT_QUEUE:將訊息佇列,直到適當 ptype 的處理收到這個" +684 " 訊息為止。" 685 "" -686 " TT_START”ヵ峈扽搢隉ョ欹⺼﹜衧閰箹絒棬纂堈懱" -687 " 撋 ptype 柁搢隉﹞" +686 " TT_START:如果沒有處理正在執行,則嘗試啟動一個有適" +687 " 當 ptype 的處理。" 688 "" -689 "恞蜑﹜Tt_disposition 柁圊⑴髓砨蠹﹜モ TT_QUEUE+TT_START" -690 "祼玿ざ怚炟楁衭渿媢桾⻗ト﹜呥閰箹絒棬纂堈搢隉﹞ヵ峈" -691 "絒棬⑴逑⼇絫 (迖か囷え炟匢扻)﹜楙堈衢逑祼⑴逑え怉﹜" -692 "⣷ポ恄柁搢隉纂絒棬欄悒﹜媢桾ゥ伒⑴髓揧搢隉﹞" +689 "注意,Tt_disposition 的值可以相加,因此 TT_QUEUE+TT_START" +690 "就表示兩者都要將訊息佇列,並嘗試啟動一個處理。如果" +691 "啟動可能失敗 (或由使用者否決),這個功能就可能用到," +692 "讓合法的處理一啟動之後,訊息立即可以被處理。" 693 "" -694 "溈ス藺”" -695 "挴罐婽罐楙堈媢桾柁搢隉﹞" -696 "溈ス藺 ptype”" -697 "婽罐楙堈媢桾柁搢隉柁 ptype﹞" -698 "Args”" -699 "蝫蘋禋謦汃笱泂柁鰱禨﹞霘囷え tt_message_arg_add --" -700 "蠹蘋ペ堈鰱禨﹞怀堈鰱禨楁衭挴泂髓譯禋げ”篲鳷 (in﹝out" -701 "迖 inout)﹝麷倛﹜ヵ峈篲鳷攜旂 in 迖 inout﹜衧禕挴泂禨圊﹞" -702 "篲鳷”" -703 "挴泂媢桾鰱禨柁篲鳷﹞⑴逑柁圊轡怬蜑氂ヵ譯”" +694 "寄件人:" +695 "指出送出這個訊息的處理。" +696 "寄件人 ptype:" +697 "送出這個訊息的處理的 ptype。" +698 "Args:" +699 "填入此項操作特定的引數。請使用 tt_message_arg_add --" +700 "加入各個引數。每個引數都要指定以下項目:模態 (in、out" +701 "或 inout)、類型,如果模態不是 in 或 inout,則須指定數值。" +702 "模態:" +703 "指定訊息引數的模態。可能的值及其意義如下:" 704 "" 705 "" -706 " TT_IN” 楙堈鰱禨旂か溈ス藺邴嬣﹜か搢隉蟟轡ズ羏髲" -707 " 炟邴幺抻﹞" +706 " TT_IN: 這個引數是由寄件人所寫,由處理器及任何觀察" +707 " 者所讀取。" 708 "" -709 " TT_OUT” 楙堈鰱禨旂か溈ス藺邴嬣﹜か搢隉蟟轡ズャ鷋" -710 " 羏髲炟邴幺抻﹞" +709 " TT_OUT: 這個引數是由寄件人所寫,由處理器及任何回覆" +710 " 觀察者所讀取。" 711 "" -712 " TT_INOUT”楙堈鰱禨旂か溈ス藺轡搢隉蟟轡ズ羏髲炟邴" -713 " 嬣蘋轡幺抻﹞" -714 "麷倛”" -715 "挴罐麷倛柁А⻌﹞纂郫柁圊旂 \"string\" 縋 \"int\"﹜" -716 "鬕隑僛晜藺婝⑴髓⺌⺼唈ゥ﹞" -717 "圊”" -718 "皕㪫篎麷倛柁圊柁骳鍺罶涷﹞" -719 "嚌蠹挹瘖”" -720 "ョ篲鳷﹝麷倛昑圊斕嚌蠹纂堈鰱禨﹞" -721 "伝崽挹瘖”" -722 "伝崽藞抻柁鰱禨﹞" -723 "䨣彶挹瘖”" -724 "渿藞抻柁鰱禨庍珜げ虳篲鳷﹝麷倛縋圊柁" -725 "隃⺼圊﹞" -726 "鶈え挹瘖”" -727 "漶癱髓稌嗃ポА⻌柁媢桾﹞" -728 "ボ磝”" -729 "楙堈譫譯齪柁ボ磝" -730 "圊”" -731 "瞗麷倛懱え柁圊﹜" +712 " TT_INOUT:這個引數是由寄件人及處理器及任何觀察者所" +713 " 寫入及讀取。" +714 "類型:" +715 "指出類型的字串。一般的值是 \"string\" 與 \"int\"," +716 "雖然發展人員可以自行建立。" +717 "值:" +718 "從屬該類型的值的實際資料。" +719 "增加按鈕:" +720 "在模態、類型和值中增加一個引數。" +721 "刪除按鈕:" +722 "刪除選取的引數。" +723 "變更按鈕:" +724 "將選取的引數改為目前模態、類型與值的" +725 "現行值。" +726 "應用按鈕:" +727 "註冊以接收符合此字串的訊息。" +728 "名稱:" +729 "這個上下文的名稱" +730 "值:" +731 "此種類型適用的值," 732 "" -733 "キ伒 int 麷倛珜 55﹜char 麷倛珜 \"fred\"﹜bytes 麷倛珜" -734 "^V^L^X﹞" -735 "嚌蠹譫譯齪”" -736 "ョ譫譯齪トざ斕﹜蠹蘋ボ磝縋圊怚堈唫⻏隃⺼" -737 "柁圊﹞" -738 "伝崽譫譯齪”" -739 "皕譫譯齪トざ斕伝崽藞抻柁禋げ﹞" -740 "䨣彶譫譯齪”" -741 "渿藞抻柁禋げ庍珜ボ磝昑圊怚堈唫⻏斕柁罶涷﹞" -742 "蹌藟婽罐譫譯齪”" -743 "旂纂堈伒隃槉嵺﹜坯睎蹌藟睎裱蒡婽柁譫譯齪トざ﹞" -744 "媢桾" +733 "亦即 int 類型為 55,char 類型為 \"fred\",bytes 類型為" +734 "^V^L^X。" +735 "增加上下文:" +736 "在上下文列示中,加入名稱與值兩個欄位現行" +737 "的值。" +738 "刪除上下文:" +739 "從上下文列示中刪除選取的項目。" +740 "變更上下文:" +741 "將選取的項目改為名稱和值兩個欄位中的資料。" +742 "編輯送出上下文:" +743 "是一個即現視窗,供您編輯您想傳送的上下文列示。" +744 "訊息" 745 "-------" -746 "衭婽罐媢桾﹜郗ッ霘崷殦纂衧隞媢桾﹜蝫蘋懱撋柁罶媢﹜隑悒" -747 "渿⼓婽罐﹞邴柁ャ嵹楁鞂罐隃ョフ纂衧媢桾斕﹞媢桾蕍汃汒" -748 "欄悒﹜霘恊勂纂咍鬊Б忟坯媢桾囷え﹞(髱卼鞂蒡ャ纂堈圊" -749 "柁衭忴坭諰﹜楙堈棬汃霘ョ⽁衭柁蒡ャ圊闀蕍罐⑩欄悒瑱⺼﹜" -750 "蚍ⅲ旂楈洁汃え﹜楙堈棬汃霘ョ婽罐悒瑱⺼﹞)" +746 "要送出訊息,首先請配置一則新訊息,填入適當的資訊,然後" +747 "將它送出。所有的回答都會出現在同一則訊息中。訊息製作完" +748 "成之後,請釋放一些儲存體供此訊息使用。(對於會傳回一個值" +749 "的要求來說,這個動作請在必要的傳回值複製出去之後進行," +750 "若只是通知作用,這個動作請在送出後進行。)" 751 "" -752 "衭崷殦隞媢桾﹜霘囷え tt_message_create()﹞⼓鞂蒡ャ纂堈 " -753 "\"祰鷁\" 迖 \"騿鰳冈柁挴簅\" 彃媢桾“霘渿楙堈祰鷁え卼稌" -754 "㶴柁昋ⅰ斕﹜髓棤嘵衧媢桾﹞" +752 "要配置新訊息,請使用 tt_message_create()。它會傳回一個 " +753 "\"控點\" 或 \"隱藏式的指標\" 給訊息;請將這個控點用於接" +754 "續的呼叫中,以參照此則訊息。" 755 "" -756 "衭蝫蘋媢桾罶媢﹜霘囷え tt_message_*_set() 昋ⅰ“" -757 "媢桾柁怀堈㪫迒楁鞂楙咍禋げ欄纂﹞" +756 "要填入訊息資訊,請使用 tt_message_*_set() 呼叫;" +757 "訊息的每個屬性都會有這些項目之一。" 758 "" -759 "睎⽁禕暋泂 Class﹝Address﹝Op 轡 Args﹞" +759 "您必須設定 Class、Address、Op 及 Args。" 760 "" -761 "伈え tt_message_send() 婽罐媢桾﹞" -762 "⻏彴”" -763 "か卼齡怞柁麷倛哱ロ﹜攜フ柁囷え炟譬鞂ョ攜フ柁渀睮蠡" -764 "囷え攜フ嗢柁齡怞﹜モ渀媢桾溈ス藺隓恄咭薚ユ价黫" -765 "栲堈媢桾柁抰炟侀毼旂鵅﹞モ﹜砨酈ユ﹜溈ス藺鞂菙" -766 "坯纂堈謦汃ボ磝﹜挴泂楙堈媢桾柁蜑氂﹜躂⑴髓菙坯楙堈" -767 "媢桾渿揧襓鰱怉婛纂堈昡ス﹜迖菙坯昡ス麷倛 (otype)﹞" +761 "利用 tt_message_send() 送出訊息。" +762 "位址:" +763 "由於工具的類型很多,不同的使用者又會在不同的時間內" +764 "使用不同組的工具,因此有時訊息寄件人無法明確地判斷" +765 "某個訊息的收受者究竟是誰。因此,相反地,寄件人會提" +766 "供一個操作名稱,指定這個訊息的意義,也可以提供這個" +767 "訊息將被導引到哪一個物件,或提供物件類型 (otype)。" 768 "" 769 "" -770 "霘ョ昡ス襓ホ柁媢桾斕囷え昡ス迖 otype﹞ヵ峈⻏彴旂纂堈" -771 "搢隉蟟﹜衧霘挴泂搢隉蟟﹞" +770 "請在物件導向的訊息中使用物件或 otype。如果位址是一個" +771 "處理器,則請指定處理器。" 772 "" -773 " TT_PROCEDURE”邴菙坯柁 Op 縋 Args﹞" +773 " TT_PROCEDURE:所提供的 Op 與 Args。" 774 "" -775 " TT_OBJECT” 邴菙坯柁 Object, Op, 縋 Args﹞" +775 " TT_OBJECT: 所提供的 Object, Op, 與 Args。" 776 "" -777 " TT_HANDLER” 邴菙坯柁 Handler, Op, 縋 Args﹞" +777 " TT_HANDLER: 所提供的 Handler, Op, 與 Args。" 778 "" -779 " TT_OTYPE” 邴菙坯柁 Otype, Op, 縋 Args﹞" -780 "搢隉蟟”" -781 "ヵ峈睎洁蝚搢隉蟟薚骳柁 procid﹜祼⑴髓枺稌髱⼓僛婽媢桾﹞" -782 "纂郫柁硠扃旂﹜纂堈搢隉僛罐纂堈纂郫迒柁衭忴﹜隑悒皕ャ" -783 "鷋斕謥抻 Handler 㪫迒﹜テ鰱襓瑱纂忻柁媢桾怉フ纂堈搢隉" -784 "蟟“ヵ伒⑴椴蝝槴蝝柁徾礂媢桾﹜渿怚堈搢隉伒碬ポ媊坭﹜" -785 "隑悒纂媊怉蝞纂堈髱緷﹞" +779 " TT_OTYPE: 所提供的 Otype, Op, 與 Args。" +780 "處理器:" +781 "如果您知道處理器確實的 procid,就可以直接對它發送訊息。" +782 "一般的情況是,一個處理發出一個一般性的要求,然後從回" +783 "覆中擇取 Handler 屬性,再引導進一步的訊息到同一個處理" +784 "器;如此即可透過經過的廣播訊息,將兩個處理即集合起來," +785 "然後一起到達一個對話。" 786 "" -787 "Handler_Ptype”" -788 "ヵ峈睎洁蝚渿搢隉楙堈媢桾柁搢隉柁 ptype﹜霘蝫蘋﹞ⅲ衭" -789 "栯砫 ptype 泂氂﹜伒⑴岊罐抾泂柁嗏樄﹞" +787 "Handler_Ptype:" +788 "如果您知道將處理這個訊息的處理的 ptype,請填入。只要" +789 "查看 ptype 定義,即可找出協定的細節。" 790 "" -791 "昡ス”" -792 "蝫蘋楙堈媢桾渿揧婽怉柁昡ス欄 objid﹞" -793 "OType”" -794 "昡ス柁麷倛﹞" -795 "Op”" -796 "蝫蘋⑴諰咭雰ぇ柁楈洁迖衭忴柁謦汃﹞霘栯砫げ簅昡ス" -797 "柁 otype 泂氂﹜伒⑴痤洁謦汃ボ磝﹞" +791 "物件:" +792 "填入這個訊息將被送到的物件之 objid。" +793 "OType:" +794 "物件的類型。" +795 "Op:" +796 "填入可說明產生的通知或要求的操作。請查看目標物件" +797 "的 otype 定義,即可得知操作名稱。" 798 "" -799 "謓睕”" -800 "ヵ峈錛衭柁旂坭⺌フ纂堈瞃栠柁怬鱗搢隉柁媢桾﹜霘囷え" -801 "謓睕瞃栠汃鞄“ヵ峈錛衭柁旂驨卼栲堈麔淰柁麔淰媢桾﹜" -802 "衧霘囷え謓睕麔淰﹞" +799 "範圍:" +800 "如果需要的是來自同一個階段的其他處理的訊息,請使用" +801 "範圍階段作業;如果需要的是關於某個檔案的檔案訊息," +802 "則請使用範圍檔案。" 803 "" -804 " TT_SESSION” 稌坭⺌睎柁瞃栠汃鞄斕柁怬鱗搢" -805 " 隉柁媢桾﹞" +804 " TT_SESSION: 接收來自您的階段作業中的其他處" +805 " 理的訊息。" 806 "" -807 " TT_FILE” 稌驨卼蠹蘋柁麔淰柁媢桾﹞" +807 " TT_FILE: 接收關於加入的檔案的訊息。" 808 "" -809 " TT_BOTH” 稌驨卼麔淰縋瞃栠汃鞄柁媢桾﹞" +809 " TT_BOTH: 接收關於檔案與階段作業的訊息。" 810 "" -811 " TT_FILE_IN_SESSION” 稌ョ瞃栠汃鞄斕蠹蘋" -812 " 麔淰柁媢桾﹞" -813 "瞃栠汃鞄”" -814 "髱卼謓睕瞃栠汃鞄﹜霘挴泂瞃栠汃鞄 (蠡泂圊珜" -815 "tt_default_session())﹞" -816 "麔淰”" -817 "髱卼麔淰謓睕﹜霘挴泂麔淰ボ磝﹞" -818 "麷伀”" -819 "麷伀衭忴囷え卼髓譯硠扃”えョ⑴蒡ャ圊柁媢桾“えョ睎" -820 "囧菗ャ䔝耩夼洁睎媢桾儸揧搢隉迖儸⻗ト渀“迖旂撋纂堈" -821 "搢隉瞅沓衭搢隉楙堈衭忴渀﹞髱卼堍楈洁怬鱗搢隉呦ス" -822 "僛ぇ柁媢桾﹜霘囷え麷伀楈洁﹞" +811 " TT_FILE_IN_SESSION: 接收在階段作業中加入" +812 " 檔案的訊息。" +813 "階段作業:" +814 "對於範圍階段作業,請指定階段作業 (內定值為" +815 "tt_default_session())。" +816 "檔案:" +817 "對於檔案範圍,請指定檔案名稱。" +818 "類別:" +819 "類別要求使用於以下情況:用在可傳回值的訊息;用在您" +820 "希望有回饋告知您訊息已被處理或已佇列時;或是當一個" +821 "處理開始要處理這個要求時。對於剛通知其他處理有事件" +822 "發生的訊息,請使用類別通知。" 823 "" -824 " TT_NOTICE”邴臗>楈夼=旂楈洁怬鱗齡怞呦ス僛ぇ" -825 " 柁媢桾﹞婽罐楈洁柁齡怞攜蛺菗ャ鷋“溈ス藺" -826 " ⅲ囧菗夼洁怬鱗齡怞僛ぇ藹矓錵呦﹞" +824 " TT_NOTICE:所謂「通告」是通知其他工具有事件發生" +825 " 的訊息。送出通知的工具不期望有回覆;寄件人" +826 " 只希望告知其他工具發生了什麼事。" 827 "" 828 "" -829 " TT_REQUEST”邴臗>衭忴=旂霘忴怬鱗齡怞欹⺼" -830 " 栲堈棬汃柁媢桾﹞楈琣 (ɪ旂呥盻廕髱) 菙" -831 " 罐衭忴柁齡怞鞂蛺恁怉蒡ャ圊﹞楙堈圊" -832 " 伒珜髱衭忴柁嵹鷋﹞伒囷攜蒡ャズ圊﹜" -833 " 搢隉楙堈衭忴柁齡怞躂鞂婽罐嵹鷋﹜夼洁" -834 " 衢迖⼇絫﹞" -835 "搢禳”" -836 "挴泂ヵ峈媢桾隓恄揧ズ欹⺼斕柁嶂囥搢隉﹜鶈粞抻瞗⺼" -837 "棬﹞ヵ峈楙堈媢桾鶈篎⻗ト嶉恁﹜纂枺怉 Handler_Ptype 柁搢" -838 "隉漶癱欄悒﹜衧扻泂⻗ト﹞ヵ峈栲堈 Handler_Ptype 柁搢隉⽁" -839 "禕絒棬﹜衧扻泂絒棬﹞" +829 " TT_REQUEST:所謂「要求」是請求其他工具執行" +830 " 某個動作的訊息。通常 (但是並非絕對) 提" +831 " 出要求的工具會期待收到傳回值。這個值" +832 " 即為對此要求的答覆。即使不傳回任何值," +833 " 處理這個要求的工具也會送出答覆,告知" +834 " 成功或失敗。" +835 "處分:" +836 "指定如果訊息無法被任何執行中的程序處理,應採取何種行" +837 "動。如果這個訊息應該佇列等待,一直到 Handler_Ptype 的處" +838 "理註冊之後,則決定佇列。如果某個 Handler_Ptype 的處理必" +839 "須啟動,則決定啟動。" 840 "" -841 " TT_QUEUE”渿媢桾⻗ト﹜枺怉懱撋 ptype 柁搢隉怉楙堈" -842 " 媢桾珜欐﹞" +841 " TT_QUEUE:將訊息佇列,直到適當 ptype 的處理收到這個" +842 " 訊息為止。" 843 "" -844 " TT_START”ヵ峈扽搢隉ョ欹⺼﹜衧閰箹絒棬纂堈懱" -845 " 撋 ptype 柁搢隉﹞" +844 " TT_START:如果沒有處理正在執行,則嘗試啟動一個有適" +845 " 當 ptype 的處理。" 846 "" -847 "恞蜑﹜Tt_disposition 柁圊⑴髓砨蠹﹜モ TT_QUEUE+TT_START" -848 "祼玿ざ怚炟楁衭渿媢桾⻗ト﹜呥閰箹絒棬纂堈搢隉﹞ヵ峈" -849 "絒棬⑴逑⼇絫 (迖か囷え炟匢扻)﹜楙堈衢逑祼⑴逑え怉﹜" -850 "⣷ポ恄柁搢隉纂絒棬欄悒﹜媢桾ゥ伒⑴髓揧搢隉﹞" +847 "注意,Tt_disposition 的值可以相加,因此 TT_QUEUE+TT_START" +848 "就表示兩者都要將訊息佇列,並嘗試啟動一個處理。如果" +849 "啟動可能失敗 (或由使用者否決),這個功能就可能用到," +850 "讓合法的處理一啟動之後,訊息立即可以被處理。" 851 "" -852 "Sender_Ptype”" -853 "婽罐楙堈媢桾柁搢隉柁 ptype﹞" -854 "昲鳷”" -855 "椔纂柁禨А﹜挴罐ャ鷋炟邴蒡ャ柁媢桾廎峈﹞楙堈禨А" -856 "⽁禕騰卼 TT_ERR_LAST (2047)﹞" -857 "昲鳷А⻌”" -858 "媢桾昲鳷柁齪А萺訒﹞" -859 "Args”" -860 "蝫蘋禋謦汃笱泂柁鰱禨﹞霘囷え tt_message_arg_add 纂纂" -861 "蠹蘋ペ堈鰱禨﹞怀堈鰱禨楁衭挴泂髓譯禋げ”篲鳷 (in﹝out" -862 "迖 inout)﹝麷倛﹜ヵ峈篲鳷攜旂 in 迖 inout﹜衧禕挴泂禨圊﹞" +852 "Sender_Ptype:" +853 "送出這個訊息的處理的 ptype。" +854 "狀態:" +855 "唯一的數字,指出回覆者所傳回的訊息結果。這個數字" +856 "必須大於 TT_ERR_LAST (2047)。" +857 "狀態字串:" +858 "訊息狀態的文字描述。" +859 "Args:" +860 "填入此項操作特定的引數。請使用 tt_message_arg_add 一一" +861 "加入各個引數。每個引數都要指定以下項目:模態 (in、out" +862 "或 inout)、類型,如果模態不是 in 或 inout,則須指定數值。" 863 "" -864 "篲鳷”" -865 "挴泂媢桾鰱禨柁篲鳷﹞⑴逑柁圊轡怬蜑氂ヵ譯”" +864 "模態:" +865 "指定訊息引數的模態。可能的值及其意義如下:" 866 "" 867 "" -868 " TT_IN” 楙堈鰱禨旂か溈ス藺邴嬣﹜か搢隉蟟轡ズ羏髲" -869 " 炟邴幺抻﹞" +868 " TT_IN: 這個引數是由寄件人所寫,由處理器及任何觀察" +869 " 者所讀取。" 870 "" -871 " TT_OUT” 楙堈鰱禨旂か溈ス藺邴嬣﹜か搢隉蟟轡ズャ鷋" -872 " 羏髲炟邴幺抻﹞" +871 " TT_OUT: 這個引數是由寄件人所寫,由處理器及任何回覆" +872 " 觀察者所讀取。" 873 "" -874 " TT_INOUT”楙堈鰱禨旂か溈ス藺轡搢隉蟟轡ズ羏髲炟邴" -875 " 嬣蘋轡幺抻﹞" -876 "麷倛”" -877 "挴罐麷倛柁А⻌﹞纂郫柁圊旂 \"string\" 縋 \"int\"﹜" -878 "鬕隑僛晜藺婝⑴髓⺌⺼唈ゥ﹞" -879 "圊”" -880 "皕㪫篎麷倛柁圊柁骳鍺罶涷﹞" -881 "嚌蠹挹瘖”" -882 "ョ篲鳷﹝麷倛昑圊斕嚌蠹纂堈鰱禨﹞" -883 "伝崽挹瘖”" -884 "伝崽藞抻柁鰱禨﹞" -885 "䨣彶挹瘖”" -886 "渿藞抻柁鰱禨庍珜げ虳篲鳷﹝麷倛縋圊柁" -887 "隃⺼圊﹞" -888 "婽罐挹瘖”" -889 "婽罐楙堈媢桾﹞フ渀躂ョ簅僾藣罐譫ト罐え坭唈ゥ縋僛" -890 "婽楙堈媢桾柁 ToolTalk 昋ⅰ﹞" -891 "ボ磝”" -892 "楙堈譫譯齪柁ボ磝" -893 "圊”" -894 "楙堈譫譯齪柁圊﹜箾恊麷倛﹞" -895 "嚌蠹”" -896 "ョ齪А唫⻏斕蠹蘋圊﹜汃珜隞柁譫譯齪﹞" -897 "伝崽”" -898 "伝崽げ虳藞抻柁譫譯齪﹞" -899 "䨣彶”" -900 "䨣彶藞抻柁譫譯齪﹜髓酈旃罐げ虳齪А唫⻏" -901 "柁蠡晥﹞" -902 "隓恄瞅絒磣蝚坯 sieve 藣罐欄え﹞\n" -903 "Tts_string_list”雰ぇ昋ⅰ媢桾 - 芩靬 \n" +874 " TT_INOUT:這個引數是由寄件人及處理器及任何觀察者所" +875 " 寫入及讀取。" +876 "類型:" +877 "指出類型的字串。一般的值是 \"string\" 與 \"int\"," +878 "雖然發展人員可以自行建立。" +879 "值:" +880 "從屬該類型的值的實際資料。" +881 "增加按鈕:" +882 "在模態、類型和值中增加一個引數。" +883 "刪除按鈕:" +884 "刪除選取的引數。" +885 "變更按鈕:" +886 "將選取的引數改為目前模態、類型與值的" +887 "現行值。" +888 "送出按鈕:" +889 "送出這個訊息。同時也在標準輸出上列出用來建立與發" +890 "送這個訊息的 ToolTalk 呼叫。" +891 "名稱:" +892 "這個上下文的名稱" +893 "值:" +894 "這個上下文的值,解釋成類型。" +895 "增加:" +896 "在文字欄位中加入值,作為新的上下文。" +897 "刪除:" +898 "刪除目前選取的上下文。" +899 "變更:" +900 "變更選取的上下文,以反映出目前文字欄位" +901 "的內容。" +902 "無法開啟管道供 sieve 輸出之用。\n" +903 "Tts_string_list:產生呼叫訊息 - 忽略 \n" $set 11 -2 "TT_OK\t衭忴衢﹞" -3 "TT_WRN_NOTFOUND\t昡スゝ揧崽⑩﹜モ珜隓恄岊怉﹞" -4 "TT_WRN_STALE_OBJID\t媢桾斕柁昡ス㪫迒儸揧葎隞﹞霘彶隞蘀抻昡ス id 柁⻏殦﹞" -5 "TT_WRN_STOPPED\t栯緧揧蝝孋蟟嶂囥斕欐﹞" -6 "TT_WRN_SAME_OBJID\t揧傶棬柁昡ス砉フ穔柁 objid﹞" -7 "TT_WRN_START_MESSAGE\t媢桾渿絒棬嶂囥﹞伒囷⼓ⅲ旂纂堈楈夼﹜羼鰹錛衭ャ鷋﹞" -8 "TT_WRN_APPFIRST\t楙堈謑⽁禕抻祤囷え﹞" -9 "TT_WRN_LAST\t楙堈謑⽁禕抻祤囷え﹞" -10 "TT_ERR_CLASS\t蒡踽柁 Tt_class 圊旂隓淩柁﹞" -11 "TT_ERR_DBAVAIL\t隓恄蘀痤⽁衭柁罶涷梬﹞楙⑴逑ⅲ旂穛渀迒柁昲鳷﹜嶉纂譯テ箹躂暐祼鞂衢﹞" -12 "TT_ERR_DBEXIST\t⽁衭柁罶涷梬攜Бョ﹞⽁禕ッ唈ゥ罶涷梬悒﹜楙堈棬汃懼逑欹⺼﹞" -13 "TT_ERR_FILE\t岊攜怉麔淰昡ス﹞" -14 "TT_ERR_MODE\tTt_mode 圊旂隓淩柁﹞" -15 "TT_ERR_ACCESS\t睎閰箹衭Б抻栲堈 ToolTalk 昡ス柁巖冈﹜旂砉៻侇嗄邴槮欐柁﹞" -16 "TT_ERR_NOMP\t扽 ttsession 搢隉ョ欹⺼﹜躂暐旂モ珜泲ゝ昋ⅰ﹞ヵ峈楙堈謑旂皕 tt_open() 蒡ャ﹜玿ざ ttsession 隓恄絒棬﹜楈琣鷥玿侇嗄扽Е稹 ToolTalk﹞" -17 "TT_ERR_NOTHANDLER\tⅲ媢桾柁搢隉蟟⑴髓欹⺼楙堈棬汃﹞" -18 "TT_ERR_NUM\t蒡踽柁謽禨旂隓淩柁﹞" -19 "TT_ERR_OBJID\t蒡踽柁 object id 扽棤嘵怉ズ隃Б柁昡ス斒眭﹞" -20 "TT_ERR_OP\t蒡踽柁謦汃ボ磝諴恄諟﹞" -21 "TT_ERR_OTYPE\t蒡踽柁昡ス麷倛呥盻儸Е稹柁昡ス麷倛﹞" -22 "TT_ERR_ADDRESS\t蒡踽柁 Tt_address 圊旂隓淩柁﹞" -23 "TT_ERR_PATH\t蒡踽柁麔淰聤梏斕柁栲堈げ蠊攜Бョ迖隓恄幺抻﹞" -24 "TT_ERR_POINTER\t蒡踽柁騿鰳冈挴簅 (祰鷁) 呥盻玿ざ纂堈懱撋麷倛柁昡ス﹞" -25 "TT_ERR_PROCID\t蒡踽柁搢隉 id 旂隓淩柁﹞" -26 "TT_ERR_PROPLEN\t蒡踽柁笱迒圊霽畈﹞" -27 "TT_ERR_PROPNAME\t蒡踽柁笱迒ボ磝諴恄諟﹞" -28 "TT_ERR_PTYPE\t蒡踽柁搢隉麷倛呥盻儸Е稹柁搢隉麷倛ボ磝﹞" -29 "TT_ERR_DISPOSITION\t蒡踽柁 Tt_disposition 圊旂隓淩柁﹞" -30 "TT_ERR_SCOPE\t蒡踽柁 Tt_scope 圊旂隓淩柁﹞" -31 "TT_ERR_SESSION\t蒡踽柁 session id 呥盻汃え斕瞃栠汃鞄柁ボ磝﹞" -32 "TT_ERR_VTYPE\t蒡踽柁圊麷倛ボ磝旂隓淩柁﹞" -33 "TT_ERR_NO_VALUE\t怞挴泂柁ボ磝縋磍謑柁笱迒圊攜Бョ﹞" -34 "TT_ERR_INTERNAL\t蠡楶蠆諟 (bug)" -35 "TT_ERR_READONLY\t㪫迒隓恄䨣彶﹞" -36 "TT_ERR_NO_MATCH\t楙堈媢桾岊攜怉搢隉蟟﹜モ搢禳呥ゝ⻗ト迖絒棬﹞" -37 "TT_ERR_UNIMP\t衢逑呥ゝ蕍汃﹞" -38 "TT_ERR_OVERFLOW\t汃え斕柁媢桾霽ロ (霘寣悒テ箹)﹞" -39 "TT_ERR_PTYPE_START\t僛晛 ptype 骳坲柁閰箹⼇絫﹞" -40 "TT_ERR_CATEGORY\tА⻌昡ス泲ゝ暋泂瞗麷﹞" -41 "TT_ERR_DBUPDATE\t罶涷梬攜纂茬”ⅱ纂堈 tt_spec_write ッ彶隞昡ス﹞" -42 "TT_ERR_DBFULL\tTooltalk 罶涷梬儸橛﹞" -43 "TT_ERR_DBCONSIST\t罶涷梬儸銧骱﹜迖Б抻罶涷攜汒謽 (霘欹⺼ ttdbck)﹞" -44 "TT_ERR_STATE\tTt_message ⻏卼髱睎閰箹柁謦汃隓淩柁 Tt_state 斕﹞" -45 "TT_ERR_NOMEM\t奡襉忟儸え潞﹞" -46 "TT_ERR_SLOTNAME\t葅簏ボ磝ⅶ恄諟﹞" -47 "TT_ERR_XDR\t蒡踽柁 XDR proc. 痤圊珜 zero len﹜迖ョ昋ⅰ渀⼇絫﹞" -48 "TT_ERR_NETFILE\t蒡踽柁 netfilename ⅶ恄諟﹞" -49 "TT_DESKTOP_UNMODIFIED\t禋謦汃攜逑鶈え卼ゝ埏庍蝝柁骳忟" -50 "TT_MEDIA_ERR_SIZE\t挴泂柁騰麵蝝騰迖蝝麵" -51 "TT_MEDIA_ERR_FORMAT\t罶涷ゝ藦皕婘ッ剚夼柁眭冈" -52 "TT_ERR_APPFIRST\t楙堈謑鶈抻祤囷え﹞" -53 "TT_ERR_LAST\t楙堈謑鶈抻祤囷え﹞" -54 "TT_STATUS_LAST\t楙堈謑鶈抻祤囷え﹞" -55 "攜咭柁 Tt_status 圊﹞" -56 "TT_DESKTOP_EPERM\t攜旂崼瞃囷え炟" -57 "TT_DESKTOP_ENOENT\t隓楙堈麔淰迖げ蠊" -58 "TT_DESKTOP_EINTR\t侇嗄昋ⅰ揧吤黫" -59 "TT_DESKTOP_EIO\tI/O 蠆諟" -60 "TT_DESKTOP_EAGAIN\t儸槴扽搢隉藹" -61 "TT_DESKTOP_ENOMEM\t洠睮攜冞" -62 "TT_DESKTOP_EACCES\tБ抻懫陃" -63 "TT_DESKTOP_EFAULT\t⻏彴蠆諟" -64 "TT_DESKTOP_EEXIST\t麔淰儸Бョ" -65 "TT_DESKTOP_ENODEV\t隓稹殦" -66 "TT_DESKTOP_ENOTDIR\t攜旂纂堈げ蠊" -67 "TT_DESKTOP_EISDIR\t旂纂堈げ蠊" -68 "TT_DESKTOP_EINVAL\t隓淩柁鰱禨" -69 "TT_DESKTOP_ENFILE\t麔淰玿⼃鬿" -70 "TT_DESKTOP_EMFILE\t瞅絒霽ロ麔淰" -71 "TT_DESKTOP_ETXTBSY\t齪А麔淰囷え斕" -72 "TT_DESKTOP_EFBIG\t麔淰霽騰" -73 "TT_DESKTOP_ENOSPC\t稹殦斕儸扽洠睮" -74 "TT_DESKTOP_EROFS\t椔幺麔淰侇嗄" -75 "TT_DESKTOP_EMLINK\t霽ロ椵廎" -76 "TT_DESKTOP_EPIPE\t磣蝚斕黫" -77 "TT_DESKTOP_ENOMSG\t扽睎錛衭柁麷倛柁媢桾" -78 "TT_DESKTOP_EDEADLK\t蝎怉廎昲扃" -79 "TT_DESKTOP_ENODATA\t隓恄抻痤罶涷" -80 "TT_DESKTOP_EPROTO\t抾泂蠆諟" -81 "TT_DESKTOP_ENOTEMPTY\tげ蠊攜旂洠柁" -82 "TT_DESKTOP_ETIMEDOUT\t椵稌蝺渀" -83 "TT_DESKTOP_EALREADY\t謦汃儸ョ瑱⺼" -84 "TT_DESKTOP_ECANCELED\t謦汃儸抻祤" -85 "TT_DESKTOP_ENOTSUP\t攜齬葰藞禋" +2 "TT_OK\t要求成功。" +3 "TT_WRN_NOTFOUND\t此物件未被除去,因為無法找到。" +4 "TT_WRN_STALE_OBJID\t訊息中的物件屬性已被換新。請更新獲取物件 id 的位置。" +5 "TT_WRN_STOPPED\t查詢被過濾器程序中止。" +6 "TT_WRN_SAME_OBJID\t被移動的物件保有同樣的 objid。" +7 "TT_WRN_START_MESSAGE\t此訊息將啟動此程序。即使它只是一個通告,仍舊需要回覆。" +8 "TT_WRN_APPFIRST\t這個碼必須取消使用。" +9 "TT_WRN_LAST\t這個碼必須取消使用。" +10 "TT_ERR_CLASS\t傳遞的 Tt_class 值是無效的。" +11 "TT_ERR_DBAVAIL\t無法獲得必要的資料庫。這可能只是暫時性的狀態,等一下再試也許就會成功。" +12 "TT_ERR_DBEXIST\t必要的資料庫不存在。必須先建立資料庫後,這個動作才能執行。" +13 "TT_ERR_FILE\t找不到檔案物件。" +14 "TT_ERR_MODE\tTt_mode 值是無效的。" +15 "TT_ERR_ACCESS\t您嘗試要存取某個 ToolTalk 物件的方式,是保護系統所禁止的。" +16 "TT_ERR_NOMP\t沒有 ttsession 處理正在執行,也許是因為尚未呼叫。如果這個碼是從 tt_open() 傳回,表示 ttsession 無法啟動,通常代表此系統沒有安裝 ToolTalk。" +17 "TT_ERR_NOTHANDLER\t只有訊息的處理器可以執行這個動作。" +18 "TT_ERR_NUM\t傳遞的整數是無效的。" +19 "TT_ERR_OBJID\t傳遞的 object id 沒有參照到任何現存的物件規格。" +20 "TT_ERR_OP\t傳遞的操作名稱語法有誤。" +21 "TT_ERR_OTYPE\t傳遞的物件類型並非已安裝的物件類型。" +22 "TT_ERR_ADDRESS\t傳遞的 Tt_address 值是無效的。" +23 "TT_ERR_PATH\t傳遞的檔案路徑中的某個目錄不存在或無法讀取。" +24 "TT_ERR_POINTER\t傳遞的隱藏式指標 (控點) 並非表示一個適當類型的物件。" +25 "TT_ERR_PROCID\t傳遞的處理 id 是無效的。" +26 "TT_ERR_PROPLEN\t傳遞的特性值太長。" +27 "TT_ERR_PROPNAME\t傳遞的特性名稱語法有誤。" +28 "TT_ERR_PTYPE\t傳遞的處理類型並非已安裝的處理類型名稱。" +29 "TT_ERR_DISPOSITION\t傳遞的 Tt_disposition 值是無效的。" +30 "TT_ERR_SCOPE\t傳遞的 Tt_scope 值是無效的。" +31 "TT_ERR_SESSION\t傳遞的 session id 並非作用中階段作業的名稱。" +32 "TT_ERR_VTYPE\t傳遞的值類型名稱是無效的。" +33 "TT_ERR_NO_VALUE\t具有指定的名稱與號碼的特性值不存在。" +34 "TT_ERR_INTERNAL\t內部錯誤 (bug)" +35 "TT_ERR_READONLY\t屬性無法變更。" +36 "TT_ERR_NO_MATCH\t這個訊息找不到處理器,因此處分並未佇列或啟動。" +37 "TT_ERR_UNIMP\t此功能並未製作。" +38 "TT_ERR_OVERFLOW\t作用中的訊息太多 (請稍後再試)。" +39 "TT_ERR_PTYPE_START\t發射 ptype 實例的嘗試失敗。" +40 "TT_ERR_CATEGORY\t字串物件尚未設定種類。" +41 "TT_ERR_DBUPDATE\t資料庫不一致:另一個 tt_spec_write 先更新物件。" +42 "TT_ERR_DBFULL\tTooltalk 資料庫已滿。" +43 "TT_ERR_DBCONSIST\t資料庫已損毀,或存取資料不完整 (請執行 ttdbck)。" +44 "TT_ERR_STATE\tTt_message 位於對您嘗試的操作無效的 Tt_state 中。" +45 "TT_ERR_NOMEM\t記憶體已用盡。" +46 "TT_ERR_SLOTNAME\t插槽名稱句法有誤。" +47 "TT_ERR_XDR\t傳遞的 XDR proc. 得值為 zero len,或在呼叫時失敗。" +48 "TT_ERR_NETFILE\t傳遞的 netfilename 句法有誤。" +49 "TT_DESKTOP_UNMODIFIED\t此項操作不能應用於未修改過的實體" +50 "TT_MEDIA_ERR_SIZE\t指定的大小過大或過小" +51 "TT_MEDIA_ERR_FORMAT\t資料未遵從原先宣告的格式" +52 "TT_ERR_APPFIRST\t這個碼應取消使用。" +53 "TT_ERR_LAST\t這個碼應取消使用。" +54 "TT_STATUS_LAST\t這個碼應取消使用。" +55 "不明的 Tt_status 值。" +56 "TT_DESKTOP_EPERM\t不是高階使用者" +57 "TT_DESKTOP_ENOENT\t無此這個檔案或目錄" +58 "TT_DESKTOP_EINTR\t系統呼叫被岔斷" +59 "TT_DESKTOP_EIO\tI/O 錯誤" +60 "TT_DESKTOP_EAGAIN\t已經沒有處理了" +61 "TT_DESKTOP_ENOMEM\t空間不足" +62 "TT_DESKTOP_EACCES\t存取遭拒" +63 "TT_DESKTOP_EFAULT\t位址錯誤" +64 "TT_DESKTOP_EEXIST\t檔案已存在" +65 "TT_DESKTOP_ENODEV\t無此裝置" +66 "TT_DESKTOP_ENOTDIR\t不是一個目錄" +67 "TT_DESKTOP_EISDIR\t是一個目錄" +68 "TT_DESKTOP_EINVAL\t無效的引數" +69 "TT_DESKTOP_ENFILE\t檔案表外溢" +70 "TT_DESKTOP_EMFILE\t開啟太多檔案" +71 "TT_DESKTOP_ETXTBSY\t文字檔案使用中" +72 "TT_DESKTOP_EFBIG\t檔案太大" +73 "TT_DESKTOP_ENOSPC\t裝置中已沒有空間" +74 "TT_DESKTOP_EROFS\t唯讀檔案系統" +75 "TT_DESKTOP_EMLINK\t太多連結" +76 "TT_DESKTOP_EPIPE\t管道中斷" +77 "TT_DESKTOP_ENOMSG\t沒有您需要的類型的訊息" +78 "TT_DESKTOP_EDEADLK\t遇到死結狀況" +79 "TT_DESKTOP_ENODATA\t無法取得資料" +80 "TT_DESKTOP_EPROTO\t協定錯誤" +81 "TT_DESKTOP_ENOTEMPTY\t目錄不是空的" +82 "TT_DESKTOP_ETIMEDOUT\t連接逾時" +83 "TT_DESKTOP_EALREADY\t操作已在進行" +84 "TT_DESKTOP_ECANCELED\t操作已取消" +85 "TT_DESKTOP_ENOTSUP\t不支援此選項" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dt.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dt.msg index 7fb415a29..ef9b63708 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dt.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dt.msg @@ -66,36 +66,36 @@ $ _DtMessage 5 is a prompt stating that the user must supply information $ for the action. Execute the "TERM_PROMPT" action for an example. 1 %1$s%2$s%3$s 2 %1$s%2$s -3 棬汃” -4 [蠆諟] -5 霘藣蘋譯ト罶媢” -6 睎菙坯柁棤禨霽ロ﹜熅蝝藞抻柁棬汃邴錛﹞ \n\n藞抻>薚泂=⑴芩靬籧⼃柁棤禨﹞\n\n藞抻>抻祤=衧⑴嗈欐楙堈棬汃﹞ +3 動作: +4 [錯誤] +5 請輸入下列資訊: +6 您提供的參數太多,超過選取的動作所需。 \n\n選取「確定」可忽略額外的參數。\n\n選取「取消」則可終止這個動作。 $ NOTE: trailing spaces ARE important in message 7! -7 譯ト饜鞥隓恄Б抻”\n\n -8 \n\n霘黀栯砫踸磞罶涷Б抻旂匢\n懱撋椵稌﹞\n\n +7 下列主機無法存取:\n\n +8 \n\n請檢查看遠端資料存取是否\n有適當連接。\n\n $ ** The arguments for message #9 are: , , . -9 ⑴逑旂棬汃 "%1$s" 隓恄岊怉迖\n楙堈棬汃隓恄鶈え怉麔淰”\n "%2$s"\n怬罶涷㪫迒珜” "%3$s"\n\n +9 可能是動作 "%1$s" 無法找到或\n這個動作無法應用到檔案:\n "%2$s"\n其資料屬性為: "%3$s"\n\n $ ** The argument for message #10 is: -10 棬汃 "%s" 隓恄岊怉﹞\n +10 動作 "%s" 無法找到。\n $ ** Message number 11 is difficult to generate without an internal error. -11 譯ト麔淰隓恄岊怉”\n\n +11 下列檔案無法找到:\n\n $ Do NOT localize the word "MAP". -12 楙堈棬汃隓恄欹⺼﹜モ珜⼓讓屼霽\n\ -ロ嬬 MAP﹜迖炟髱鶈囟 "踽媝" 昲鳷﹞ -13 隓恄鞜え衭忴柁棬汃﹞\n\n譯ト饜鞥⑴Б抻蓇?\n\t(%s)\n髱鶈柁嶂冈Бョ蓇?\n(霘欹⺼ /usr/dt/bin/dttypes 坭襯崷棬汃縋嶂冈﹞)\n\n睎柁侇嗄旂匢儸槴扽洠睮⑴髓欹⺼隞柁搢隉? -14 蜌楙堈棬汃峇棜柁衭忴⼇絫﹞ -15 蜌楙堈棬汃峇棜柁衭忴⼇絫﹞\n隓恄唈ゥ ToolTalk 椵稌﹞ -16 蜌楙堈棬汃峇棜柁衭忴⼇絫﹞ -17 蜌楙堈棬汃峇棜柁衭忴⼇絫﹜婘モヵ譯”\n\n %s﹞ -18 閰箹髱鶈麔淰鰱禨欄纂渀﹜\n蠆諟僛ぇ﹞ +12 這個動作無法執行,因為它包含太\n\ +多層 MAP,或者對應呈 "遞迴" 狀態。 +13 無法調用要求的動作。\n\n下列主機可存取嗎?\n\t(%s)\n對應的程式存在嗎?\n(請執行 /usr/dt/bin/dttypes 來匹配動作與程式。)\n\n您的系統是否已經沒有空間可以執行新的處理? +14 替這個動作服務的要求失敗。 +15 替這個動作服務的要求失敗。\n無法建立 ToolTalk 連接。 +16 替這個動作服務的要求失敗。 +17 替這個動作服務的要求失敗,原因如下:\n\n %s。 +18 嘗試對應檔案引數之一時,\n有錯誤發生。 $ ** The arguments for message #19 are: , . -19 ⑴逑旂棬汃 "%1$s" 隓恄岊怉﹜迖旂\n楙堈棬汃隓恄鶈え怉髓譯麷伀柁邅鍙棷”\n\n"%2$s" +19 可能是動作 "%1$s" 無法找到,或是\n這個動作無法應用到以下類別的緩衝區:\n\n"%2$s" $ ** MESSAGE NUMBER 20 IS OBSOLETE. -20 隓恄珜棬汃”"%2$s"\n唈ゥ穛渀麔淰”"%1$s" -21 棬汃”"%s"\nゝ齬葰髓譯藣蘋昡ス麷伀”"%d"﹞ -22 隓恄唈ゥ纂堈穛Б麔卼げ蠊: "%s"\n彃ボ珜: "%s" 欄棬汃. -23 隓恄瞅絒纂堈穛Б麔: "%s"\n彃ボ珜: "%s" 欄棬汃. -24 隓恄嬣蘋纂堈穛Б麔: "%s"\n彃ボ珜: "%s" 欄棬汃. +20 無法為動作:"%2$s"\n建立暫時檔案:"%1$s" +21 動作:"%s"\n未支援以下輸入物件類別:"%d"。 +22 無法建立一個暫存檔於目錄: "%s"\n給名為: "%s" 之動作. +23 無法開啟一個暫存檔: "%s"\n給名為: "%s" 之動作. +24 無法寫入一個暫存檔: "%s"\n給名為: "%s" 之動作. $set 3 @@ -103,32 +103,32 @@ $ **** Module: CmdMain.c **** $ These messages are generated by the command invocation library. $ Note that set 3, messages 1, 3, 4, 12, 13, 16 have been obsoleted. -2 閰箹皕饜鞥 "%2$s" \n\n\ -庍䨣譯トげ蠊”\n\n\ - %1$s\n\n\⼇絫﹞\n\n\ -霘黀栯捋А縋暐⑴ḷ旂匢薚﹜髓轡げ蠊旂匢Бョ﹞ +2 嘗試從主機 "%2$s" \n\n\ +改變下列目錄:\n\n\ + %1$s\n\n\失敗。\n\n\ +請檢查拼字與許可權是否正確,以及目錄是否存在。 $ Do NOT remove the leading spaces from any of the lines of the following message. -5 閰箹欹⺼譯ト杬麟ョ饜鞥\n\ -"%1$s" ⼇絫”\n\n\ +5 嘗試執行下列命令在主機\n\ +"%1$s" 失敗:\n\n\ %2$s\n\n\ -霘黀栯嶂冈旂匢Бョ﹝Б抻ḷ旂匢薚﹝\n\ -髓轡旂匢⑴髓欹⺼﹞ +請檢查程式是否存在、存取權是否正確、\n\ +以及是否可以執行。 $ Do NOT remove the leading spaces from any of the lines of the following message. -6 閰箹欹⺼譯ト杬麟⼇絫”\n\n\ +6 嘗試執行下列命令失敗:\n\n\ %s\n\n\ -霘黀栯嶂冈旂匢Бョ﹝Б抻ḷ旂匢薚﹝\n\ -髓轡旂匢⑴髓欹⺼﹞ +請檢查程式是否存在、存取權是否正確、\n\ +以及是否可以執行。 $ Do NOT remove the leading spaces from any of the lines of the following message. $ Do NOT localize the word "PATH". -7 隓恄絒沓棬汃﹜モ珜譯ト嗈磞鞥篲鶅蟟\n\ -隓恄欹⺼”\n\n\ +7 無法啟始此動作,因為下列終端機模擬器\n\ +無法執行:\n\n\ %s\n\n\ -霘黀栯嶂冈旂匢Бョ﹝Б抻ḷ旂匢薚﹝髓轡旂\n\ -匢⑴髓欹⺼﹞楙堈棯纕柁婘モ⑴逑旂嶂冈ゝ⻏卼\n\ -睎柁 "PATH" 譫﹞ +請檢查程式是否存在、存取權是否正確、以及是\n\ +否可以執行。這個問題的原因可能是程式未位於\n\ +您的 "PATH" 上。 $ Message number 8 is OBSOLETE. $ 8 This action is missing one or more of the following:\n\n\ @@ -136,96 +136,96 @@ $ execution parameters, execution string or execution host.\n\n\ $ Check that the action has an appropriate number of parameters. $ Do NOT remove the leading spaces from any of the lines of the following message. -9 楙堈棬汃柁А蠣鐠禨熅罐 "%d" 堈А蠣柁瑊騰迻戔﹞\n\n\ -睎⑴逑衭渿⼓剄纂堈髓譫柁棬汃﹞ +9 這個動作的字元總數超出 "%d" 個字元的最大限制。\n\n\ +您可能要將它拆成一個以上的動作。 $ Message number 10 is OBSOLETE. $ 10 The shell program "%s" cannot be started.\n\n\ $ Check that the program has the correct permissions and\n\ $ is executable. -11 ョ饜鞥 "%s" 譫閰箹絒棬纂堈隞柁搢隉⼇絫﹞\n\n\ -蚍裱凭㶴﹜⑴逑衭皕楙楶饜鞥譫彘欐纂堈攜錛衭柁搢隉﹞ +11 在主機 "%s" 上嘗試啟動一個新的處理失敗。\n\n\ +若想繼續,可能要從這部主機上停止一個不需要的處理。 $ Message number 14 is OBSOLETE. $ 14 An attempt to log the output from a remote host failed.\n\n\ $ To continue, you may need to stop an existing process. -15 閰箹漶癱踸磞饜鞥柁藣罐戀諲⼇絫﹞\n\n\ -蚍裱凭㶴﹜⑴逑衭彘欐纂堈隃Б柁搢隉﹞ +15 嘗試註冊遠端主機的輸出日誌失敗。\n\n\ +若想繼續,可能要停止一個現存的處理。 $ Do NOT remove the leading spaces from any of the lines of the following message. $ Do NOT localize the words "WINDOW_TYPE". -17 楙堈棬汃柁 WINDOW_TYPE "%1$s" 隓恄藑籫﹞\n\ -WINDOW-TYPE 鶈珜譯ト欄纂”\n\n\ +17 這個動作的 WINDOW_TYPE "%1$s" 無法辨識。\n\ +WINDOW-TYPE 應為下列之一:\n\n\ %2$s, %3$s, %4$s,\n\ - %5$s, %6$s 迖 %7$s + %5$s, %6$s 或 %7$s $ Do NOT remove the leading spaces from any of the lines of the following message. -18 楙堈棬汃隓恄絒棬﹜モ珜 DT 騵搢隉嶂冈\n\ +18 這個動作無法啟動,因為 DT 子處理程式\n\ %s\n\n\ -隓恄欹⺼﹞霘黀栯嶂冈柁暐⑴ḷ旂匢薚靨\n\ -麔淰⑴欹⺼﹞ +無法執行。請檢查程式的許可權是否正確且\n\ +此檔案可執行。 $ MESSAGE 19 IN SET 3 WILL ONLY APPEAR IN THE DT ERRORLOG FILE $ MESSAGE 19 IN SET 3 IS OBSOLETE $ Do NOT remove the leading spaces from any of the lines of the following message. -19 閰箹ョ X ɵ峇蟟饜鞥 "%s" 譫欹⺼ 'xhost' ⼇絫﹞\n\n\ -ヵ峈攜囧菗楙堈媢桾罐隃﹜呥抻祤⺌棬欹⺼ xhost﹜霘欹⺼\n\ -"EditResources" 棬汃﹜呥蠹蘋髓譯罶鳲”\n\n\ +19 嘗試在 X 伺服器主機 "%s" 上執行 'xhost' 失敗。\n\n\ +如果不希望這個訊息出現,並取消自動執行 xhost,請執行\n\ +"EditResources" 動作,並加入以下資源:\n\n\ *autoXhosting: False\n $ Do NOT remove the leading spaces from any lines in the following message. -20 楙堈棬汃隓恄ョ饜鞥 "%1$s" 譫欹⺼﹜\n\ -モ珜譯ト⽁衭柁嶂冈攜Бョ迖\n\ -隓恄欹⺼”\n\n\ +20 這個動作無法在主機 "%1$s" 上執行,\n\ +因為下列必要的程式不存在或\n\ +無法執行:\n\n\ %2$s\n $ MESSAGE 21 IN SET 3 WILL ONLY APPEAR IN THE DT ERRORLOG FILE -21 棬汃 "%1$s" 衢ユョ饜鞥 "%2$s" 譫欹⺼﹞ +21 動作 "%1$s" 成功地在主機 "%2$s" 上執行。 $ MESSAGE 22 IN SET 3 WILL ONLY APPEAR IN THE DT ERRORLOG FILE -22 饜鞥 "%2$s" 譫柁げ蠊 "%1$s"\n\ -隓恄鼲葎篚聤聤梏﹞\n\ +22 主機 "%2$s" 上的目錄 "%1$s"\n\ +無法轉換成網路路徑。\n\ (%3$s) $ MESSAGE 23 IN SET 3 WILL ONLY APPEAR IN THE DT ERRORLOG FILE -23 饜鞥 "%2$s" 譫柁 stderr 戀諲麔淰 "%1$s"\n\ -隓恄鼲葎篚聤聤梏﹞\n\ +23 主機 "%2$s" 上的 stderr 日誌檔案 "%1$s"\n\ +無法轉換成網路路徑。\n\ (%3$s) -24 楙堈棬汃隓恄欹⺼﹜モ珜\n\ -隓恄囷え饜鞥 "%s"﹞ +24 這個動作無法執行,因為\n\ +無法使用主機 "%s"。 -25 楙堈棬汃隓恄ョ饜鞥 "%1$s" 譫欹⺼﹜モ珜\n\ -楙楶饜鞥譫柁 "%2$s" 峇棜崷殦棯纕﹞ +25 這個動作無法在主機 "%1$s" 上執行,因為\n\ +這部主機上的 "%2$s" 服務配置有問題。 -26 楙堈棬汃隓恄欹⺼﹜モ珜饜鞥 "%2$s" 譫\n\ -扽崷殦 "%1$s" 峇棜﹞ +26 這個動作無法執行,因為主機 "%2$s" 上\n\ +沒有配置 "%1$s" 服務。 -27 楙堈棬汃隓恄ョ饜鞥 "%1$s" 譫欹⺼﹜モ珜囷え炟\n\ -"%2$s" 柁囷え炟 id 珜 "%3$d" ョ饜鞥 "%4$s"﹜楙縋\n\ -鞜え棬汃柁饜鞥 "%5$s" 柁囷え炟ボ磝昑囷え炟 id\n\ -攜嗃﹞ +27 這個動作無法在主機 "%1$s" 上執行,因為使用者\n\ +"%2$s" 的使用者 id 為 "%3$d" 在主機 "%4$s",這與\n\ +調用此動作的主機 "%5$s" 的使用者名稱和使用者 id\n\ +不符。 -28 楙堈棬汃隓恄ョ饜鞥 "%1$s" 譫欹⺼﹜モ珜\n\ -囷え炟 "%2$s" ョ楙楶饜鞥譫扽鷓韝﹞ +28 這個動作無法在主機 "%1$s" 上執行,因為\n\ +使用者 "%2$s" 在這部主機上沒有戶頭。 -29 楙堈棬汃隓恄ョ饜鞥 "%1$s" 譫欹⺼﹜モ珜\n\ -隓恄唈ゥ楈芼薚諝麔淰柁聤梏﹞ +29 這個動作無法在主機 "%1$s" 上執行,因為\n\ +無法建立通往確認檔案的路徑。 -30 楙堈棬汃隓恄ョ饜鞥 "%s" 譫欹⺼﹜モ珜\n\ -楙楶饜鞥譫柁薚諝麔淰隓恄瞅絒﹞\n\n\ -⑴逑柁婘モ旂睎柁篚聤柁媊沓げ蠊\n\ -崷殦棯纕﹞ +30 這個動作無法在主機 "%s" 上執行,因為\n\ +這部主機上的確認檔案無法開啟。\n\n\ +可能的原因是您的網路的起始目錄\n\ +配置有問題。 -31 楙堈棬汃隓恄ョ饜鞥 "%1$s" 譫欹⺼﹜モ珜\n\ -蘄頨熅蝝 "%2$d" ⻏蠣柁迻戔﹞ +31 這個動作無法在主機 "%1$s" 上執行,因為\n\ +環境超過 "%2$d" 位元的限制。 -32 楙堈棬汃隓恄ョ饜鞥 "%1$s" 譫欹⺼﹜モ珜\n\ -饜鞥 "%2$s" 扽ḷ襤囷え "%3$s" 峇棜﹞\n\n\ -衭庍楙堈棯纕﹜霘ョ饜鞥 "%7$s" 柁 "%6$s"\n\ - 麔淰柁 "%5$s" 峇棜斕蠹蘋饜鞥 "%4$s" 禋げ﹞ +32 這個動作無法在主機 "%1$s" 上執行,因為\n\ +主機 "%2$s" 沒有權力使用 "%3$s" 服務。\n\n\ +要改正這個問題,請在主機 "%7$s" 的 "%6$s"\n\ + 檔案的 "%5$s" 服務中加入主機 "%4$s" 項目。 $set 4 @@ -234,49 +234,49 @@ $ $ MESSAGES 1-11 IN SET 4 WILL ONLY APPEAR IN THE DT ERRORLOG FILE $ $ Do NOT remove the leading spaces from any of the lines of the following message. -1 "%s" 泂氂ョ麔淰”\n\ +1 "%s" 定義在檔案:\n\ "%s"\n\ -谹韁藹纂堈ボ磝﹞霘ョ泂氂斕\n蠹蘋ボ磝﹞\n +缺少了一個名稱。請在定義中\n加入名稱。\n $ Do NOT remove the leading spaces from any of the lines of the following message. $ Do NOT localize the word "END". $ THIS MESSAGE IS OBSOLETE -2 泂氂 "%s" ョ麔淰\n\ +2 定義 "%s" 在檔案\n\ "%s"\n\ -攜汒ツ﹞楙堈泂氂⑴逑谹韁\n\ - "END" 唫⻏﹞\n +不完全。這個定義可能缺少\n\ + "END" 欄位。\n $ Do NOT remove the leading spaces from any of the lines of the following message. -3 ロ⺼唫⻏ョ泂氂 "%s"\n\ -ョ麔淰\n\ +3 多行欄位在定義 "%s"\n\ +在檔案\n\ "%s"\n\ -攜汒謽﹞楙堈ロ⺼唫⻏⑴逑\n\ -谹韁纂堈 "\\" А蠣﹞\n +不完整。這個多行欄位可能\n\ +缺少一個 "\\" 字元。\n $ Do NOT remove the leading spaces from any of the lines of the following message. -4 泂氂 "%s" ョ麔淰\n\ +4 定義 "%s" 在檔案\n\ "%s"\n\ -怞蝝ロ柁唫⻏﹞\n +具有過多的欄位。\n $ Do NOT localize the word "Dt.TypesDirs". -5 閰箹幺抻棬汃縋麔淰麷倛罶涷梬⼇絫﹞\n\ -⑴逑柁婘モ旂罶鳲 "Dt.TypesDirs" 暋泂蠆諟﹞\n +5 嘗試讀取動作與檔案類型資料庫失敗。\n\ +可能的原因是資源 "Dt.TypesDirs" 設定錯誤。\n $ Do NOT localize the strings "'{'" or "'}'". -6 泂氂 "%s" ョ麔淰\n "%s"\n 廎忒嗃磍 '}'﹜ɪ扽媊沓嗃磍 '{'﹞\n +6 定義 "%s" 在檔案\n "%s"\n 有結束符號 '}',但沒有起始符號 '{'。\n $ Do NOT localize the strings "'{'" or "'}'". -7 泂氂 "%s" ョ麔淰\n "%s"\n 蠆諟柁媊沓嗃磍 '{'﹞\n +7 定義 "%s" 在檔案\n "%s"\n 有錯誤的起始符號 '{'。\n $ Do NOT localize the strings "'{'" or "'}'". -8 泂氂 "%s" ョ麔淰\n "%s"\n 攜汒謽﹞泂氂斕⑴逑谹韁\n"}" 唫⻏﹞\n +8 定義 "%s" 在檔案\n "%s"\n 不完整。定義中可能缺少\n"}" 欄位。\n $ Do NOT localize the strings "'{'" or "'}'". -9 泂氂 "%s" ョ麔淰\n "%s"\n 谹韁纂堈媊沓嗃磍 '{'﹞\n +9 定義 "%s" 在檔案\n "%s"\n 缺少一個起始符號 '{'。\n -10 DtDbVersion 䨣禨ⅲ逑ョ麔淰瞅韝\n暋泂﹞麔淰 '%s' 柁怬瀦楶ソ揧芩靬﹞\n +10 DtDbVersion 變數只能在檔案開頭\n設定。檔案 '%s' 的其餘部份被忽略。\n -11 麔淰 '%s'\n屼隓淩柁 DtDbVersion 籫伀А﹞\n +11 檔案 '%s'\n含有無效的 DtDbVersion 識別字。\n $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ @@ -292,14 +292,14 @@ $ $ MESSAGES 1-11 IN SET 6 WILL ONLY APPEAR IN THE DT ERRORLOG FILE $ $ Do NOT remove the leading spaces from any of the lines of the following message. -1 棬汃泂氂 "%s" ョ麔淰”\n\ +1 動作定義 "%s" 在檔案:\n\ "%s"\n\ -扽ズ唫⻏﹞\n +沒有任何欄位。\n $ Do NOT remove the leading spaces from any of the lines of the following message. -2 棬汃泂氂 "%s" ョ麔淰”\n\ +2 動作定義 "%s" 在檔案:\n\ "%s"\n\ -屼譯ト隓恄藑籫柁唫⻏ボ磝昑圊”\n\ +含有下列無法辨識的欄位名稱和值:\n\ "%s"\n $ Message number 3 is OBSOLETE. @@ -307,16 +307,16 @@ $ 3 The action definition "%s" in the file\n\ $ "%s"\n\ $ does not have the required field "%s".\n -4 "%s" 唫⻏ョ棬汃泂氂 "%s"\n\ -ョ麔淰 "%s"\n\ -怞隓恄藑籫柁棬汃麷倛﹞\n +4 "%s" 欄位在動作定義 "%s"\n\ +在檔案 "%s"\n\ +具有無法辨識的動作類型。\n $ Do NOT remove the leading spaces from any of the lines of the following message. $ Do NOT localize the words "TYPE MAP". -5 棬汃泂氂 "%s" ョ麔淰”\n\ +5 動作定義 "%s" 在檔案:\n\ "%s"\n\ -隓恄薚ユ髱鶈﹞"%s" 唫⻏\n\ -鶈珜”TYPE MAP action_mapped_to﹞\n +無法正確地對應。"%s" 欄位\n\ +應為:TYPE MAP action_mapped_to。\n $ Message number 6 is OBSOLETE. $ 6 The action definition "%s" in the file\n\ @@ -330,10 +330,10 @@ $ has the unrecognized value "%s".\n $ Do NOT remove the leading spaces from any of the lines of the following message. $ Do NOT localize the word "COMMAND". -8 棬汃泂氂 "%s" ョ麔淰”\n\ +8 動作定義 "%s" 在檔案:\n\ "%s"\n\ -旂纂堈 "COMMAND" 棬汃麷倛﹜ɪ谹韁\n\ -⽁衭唫⻏ "%s"﹞\n +是一個 "COMMAND" 動作類型,但缺少\n\ +必要欄位 "%s"。\n $ Message number 9 is OBSOLETE. $ 9 The action definition "%s" in the file\n\ @@ -348,30 +348,30 @@ $ is a "MESSAGE" action type but lacks the\n\ $ required field "%s".\n $ Do NOT remove the leading spaces from any of the lines of the following message. -11 棬汃泂氂 "%s" ョ麔淰”\n\ +11 動作定義 "%s" 在檔案:\n\ "%s"\n\ -纂堈攜ポ恄柁圊 "%s" ョ "%s" 唫⻏﹞\n" +有一個不合法的值 "%s" 在 "%s" 欄位。\n" -12 棬汃泂氂 "%s" ョ麔淰”\n\ +12 動作定義 "%s" 在檔案:\n\ "%s"\n\ -讓屼适闀柁唫⻏ボ磝”\n "%s"﹞ +包含重複的欄位名稱:\n "%s"。 -13 棬汃泂氂 "%s" ョ麔淰”\n\ +13 動作定義 "%s" 在檔案:\n\ "%s"\n\ -讓屼 "%s" 麷倛棬汃柁隓淩唫⻏﹞\n +包含 "%s" 類型動作的無效欄位。\n -14 棬汃泂氂 "%s" ョ麔淰”\n\ +14 動作定義 "%s" 在檔案:\n\ "%s"\n\ -谹韁⽁衭唫⻏﹜ "%s"\n 髱卼 "%s" 麷倛柁棬汃﹞\n +缺少必要欄位, "%s"\n 對於 "%s" 類型的動作。\n $ Message number 15 is OBSOLETE. $ 15 The action definition "%s" in the file\n\ $ "%s"\n\ $ contains a NULL field value, for the "%s" field.\n -16 棬汃泂氂 "%s" ョ麔淰\n\ +16 動作定義 "%s" 在檔案\n\ "%s"\n\ -纂堈攜ポ恄柁圊 "%s" ョ "%s%s%s" 唫⻏﹞\n" +有一個不合法的值 "%s" 在 "%s%s%s" 欄位。\n" $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ @@ -384,11 +384,11 @@ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $set 28 $ ***** Module: DtUtil.c ***** $ The following are button labels. -1 薚泂 -2 抻祤 -3 赮伢諰咭 -4 鶈え -5 驨椲 +1 確定 +2 取消 +3 輔助說明 +4 應用 +5 關閉 $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtact.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtact.msg index 20d26b274..11a77025f 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtact.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtact.msg @@ -54,40 +54,40 @@ $ file /usr/adm/sulog; it is written to the sulog file anytime the '-user' $ option is used. The fields are: $ / : $ The only fields which need to be customized are the date and time fields. -1 dtaction %1$﹜2d/%2$﹜2d %3$﹜2d”%4$﹜2d %5$1﹜1s %6$s %7$s--%8$s\n +1 dtaction %1$,2d/%2$,2d %3$,2d:%4$,2d %5$1,1s %6$s %7$s--%8$s\n $ This is the label for the Ok button in the dialogs which collect $ the user's password, the invalid password dialog, and the unknown user $ error dialog. -2 薚泂 +2 確定 $ This is the label for the error dialog which occurs when the user enters $ and invalid password into the password dialog. -3 睎耰蘋柁湅謑縋囷え炟柁湅謑攜砨嗃﹞%s.\n\n霘适隞耰蘋湅謑﹜迖藞謥\n"抻祤"耰髓廎忒謦汃﹞ +3 您鍵入的密碼與使用者的密碼不相符。%s.\n\n請重新鍵入密碼,或選擇\n"取消"鍵以結束操作。 $ This is the title for the password error dialog -4 棬汃鞜え蟟 -- 湅謑蠆諟 +4 動作調用器 -- 密碼錯誤 $ This is the label displayed in the prompt dialog, used to collect the $ user's password. -5 霘耰蘋囷え炟湅謑 %s” +5 請鍵入使用者密碼 %s: $ This is the title for the prompt dialog collecting the user's password. -6 棬汃鞜え蟟 -- 湅謑 +6 動作調用器 -- 密碼 $ This is the label for the Cancel button in the dialog which is used to $ collect the user's password. -7 抻祤 +7 取消 $ This is the message displayed in the 'unknown user' dialog -8 囷え炟 '%s' 珜纂堈攜咭柁囷え炟ボ磝﹞\n\n揧衭忴柁棬汃渿攜鞂揧欹⺼﹞ +8 使用者 '%s' 為一個不明的使用者名稱。\n\n被要求的動作將不會被執行。 $ This is the title for the 'unknown user' dialog -9 棬汃鞜え蟟 -- 攜咭柁囷え炟 +9 動作調用器 -- 不明的使用者 $ This is for when the user has failed to supply an action name -10 ゝ挴泂棬汃ボ磝﹞\n +10 未指定動作名稱。\n $ This is for when we are unable to open the display -11 隓恄瞅絒䬷ざ蟟﹞ +11 無法開啟顯示器。 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtbuilder.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtbuilder.msg index 38e7a16c1..3d8743239 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtbuilder.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtbuilder.msg @@ -20,208 +20,208 @@ $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. 2 "ToolTalk" -3 "瞃栠麔淰磣隉" -4 "棝鍺襲" -6 "瞃栠麔淰鬊Б椵稌..." -7 "瞃栠麔淰ャ艀椵稌..." -8 "巖恄”" -9 "瑱瞃ToolTalk椵稌..." -10 "鶈え嶂冈" -11 "絒棬”" -12 "雰ぇ謑" -14 "坯鶈椓ボ磝”" -15 "隓ボ磝" -16 "斿ヾ”" +3 "階段檔案管理" +4 "國際化" +6 "階段檔案儲存連接..." +7 "階段檔案回復連接..." +8 "方法:" +9 "進階ToolTalk連接..." +10 "應用程式" +11 "啟動:" +12 "產生碼" +14 "供應商名稱:" +15 "無名稱" +16 "版本:" 17 "1.0" -18 "㪫迒嬣蘋" -19 "⺍罶鳲麔淰”" -20 "痐郖媢桾" -21 "搢隉斕”" -22 "薚泂" -23 "伒怮鶈え" -24 "适暋" -25 "抻祤" -26 "赮伢諰咭" -27 "隓" -28 "杬麟ト" -29 "瞃栠麔淰" -30 "怚炟眙藞" -31 "椕ヾ" -32 "瑱瞃" +18 "屬性寫入" +19 "至資源檔案:" +20 "桌面訊息" +21 "處理中:" +22 "確定" +23 "即刻應用" +24 "重設" +25 "取消" +26 "輔助說明" +27 "無" +28 "命令列" +29 "階段檔案" +30 "兩者皆選" +31 "基本" +32 "進階" 33 " " -34 "籦⺪" -35 "簅圝А⻌" -36 "媊沓圊" -37 "稢" -38 "怬鱗А⻌" -39 "怬鱗" -43 "隓 " -45 "鶈え嶂冈齡汃巖涺蹌藟蟟" -47 "饜衭饜槉嵺”" +34 "顏色" +35 "標籤字串" +36 "起始值" +37 "幾何" +38 "其他字串" +39 "其他" +43 "無 " +45 "應用程式工作方框編輯器" +47 "主要主視窗:" $set 3 DTBMS_brws $ ** Generated messages for 'brws'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -2 "篲嗢”" +2 "模組:" 3 " " -4 "蹌藟" -5 "黀槉" -6 "赮伢諰咭" -7 "籔婘" -8 "椌抻" -9 "闀蕍" -10 "䔝舅漜" -11 "伝崽" -12 "纓⼳柁" -16 "儚巗" -17 "鶭晜" -19 "篲嗢" -20 "硻岊..." +4 "編輯" +5 "檢視" +6 "輔助說明" +7 "還原" +8 "剪取" +9 "複製" +10 "粘貼" +11 "刪除" +12 "水平的" +16 "摺疊" +17 "擴展" +19 "模組" +20 "尋找..." 23 "Hide Object Glyph" -24 "䬷ざ昡ス嶉觕" -25 "騿鰳昡スボ磝" -26 "ツ楶鶭晜" -27 "颮羏..." -28 "齡汃..." -29 "棤℡罶涷..." -30 "驨卼頝踛" -31 "囷え赮伢諰咭..." -32 " 驨卼 Application Builder..." -33 "麜抻廲ៜ嶂冈..." -34 "篲嗢廲ៜ嶂冈" +24 "顯示物件等級" +25 "隱藏物件名稱" +26 "全部擴展" +27 "概觀..." +28 "工作..." +29 "參考資料..." +30 "關於圖像" +31 "使用輔助說明..." +32 " 關於 Application Builder..." +33 "擷取瀏覽程式..." +34 "模組瀏覽程式" $set 4 DTBMS_color_chooser $ ** Generated messages for 'color_chooser'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -2 "籦⺪ボ磝”" -3 "**籦⺪**" -4 "薚泂" -5 "抻祤" -6 "赮伢諰咭" -7 "籦⺪藞謥嶂冈" -9 "籦⺪藞謥嶂冈隓恄崷殦邴柁簅僾籦⺪﹞\n\n楙⑴逑旂睎ョ欹⺼怬鱗柁\n儸衭忴囷え睎柁齡汃袘欄\n籦⺪髱嘵玿蠡柁⑴え嗏荌柁鶈え嶂冈﹞\n蚍衭ョ籦⺪藞謥嶂冈斕砫怉彶ロ籦⺪﹜霘ざ摽廎忒囷え\n纂咍譫訒柁鶈え嶂冈﹞" +2 "顏色名稱:" +3 "**顏色**" +4 "確定" +5 "取消" +6 "輔助說明" +7 "顏色選擇程式" +9 "顏色選擇程式無法配置所有的標準顏色。\n\n這可能是您正在執行其他的\n已要求使用您的工作站之\n顏色對照表內的可用細胞的應用程式。\n若要在顏色選擇程式中看到更多顏色,請示著結束使用\n一些上述的應用程式。" $set 5 DTBMS_conn $ ** Generated messages for 'conn'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -4 "鰱禨”" +4 "引數:" 13 "Application Builder" -14 "ゝ髱昋ⅰ怐禨椵稌\n挴泂怐禨ボ磝﹞" -15 "薚泂" -17 "Application Builder - 欹⺼謑蹌藟蟟" -18 "黀槉”" -19 "坭鳲”" -20 "げ簅”" -21 "渀”" -24 "棬汃麷伀”" -25 "諅ッ泂氂" -26 "昋ⅰ怐禨" -27 "欹⺼謑" -28 "椵稌" -29 "彶庍" -30 "抻祤" -31 "伝崽" -32 "赮伢諰咭" -33 "椵稌蹌藟蟟" -34 "絒棬驨卼頝踛赮伢諰咭" -35 "Б抻赮伢諰咭晥忟" -36 "晥忟”" -37 "⻏殦”" -38 "伒怮鶈え" +14 "未對呼叫函數連接\n指定函數名稱。" +15 "確定" +17 "Application Builder - 執行碼編輯器" +18 "檢視:" +19 "來源:" +20 "目標:" +21 "何時:" +24 "動作類別:" +25 "預先定義" +26 "呼叫函數" +27 "執行碼" +28 "連接" +29 "更改" +30 "取消" +31 "刪除" +32 "輔助說明" +33 "連接編輯器" +34 "啟動關於圖像輔助說明" +35 "存取輔助說明容體" +36 "容體:" +37 "位置:" +38 "即刻應用" $set 6 DTBMS_palette $ ** Generated messages for 'palette'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. 1 "Application Builder" -2 "睎ゝ鬊Б柁蹌藟齪ス﹞廎忒囷えAppBuilder\n鞂俉蛫睎邴惉柁彶庍﹞霘薚諝﹞" -3 "俉蛫邴惉柁彶庍" -4 "唈ゥ珜祰戔嵺眭柁騵嶂囥\n籔旂\n禳嬬嵺眭柁騵嶂囥?" -5 "騵嶂囥" -6 "禳嬬" -7 "唈ゥ蜚禳嬬嵺眭..." -8 "凭㶴" -9 "唈ゥ珜禳嬬嵺眭\n籔旂\n禳瑒槉嵺斕柁隞嵺眭?" -10 "嵺眭" -11 "唈ゥ珜祰戔嵺眭柁騵嶂囥\n迖\n禳嬬嵺眭\n籔旂\n禳瑒槉嵺斕柁隞嵺眭?" -12 "薚泂" -13 "瞅絒" -14 "鰱蘋" -15 "睎⑴髓棤℡罶涷柁巖冈迖闀蕍柁巖冈鰱蘋﹞\n鰱蘋巖冈”" -16 "闀蕍" -17 "棤℡罶涷" -18 "髱泂⻏柁罶涷唈ゥ穛渀迒麔淰渀\n僛ぇ蠆諟﹞" -19 "睎攜逑驨椲ヾ槉嵺﹞" -20 "麔淰" -21 "蹌藟" -22 "黀槉" -23 "肊汔" -24 "蹌藟蟟" -25 "赮伢諰咭" -26 "隞衶鋡..." -27 "瞅絒衶鋡..." -28 "鬊Б衶鋡" -29 "渿衶鋡鬊Б珜..." -30 "隞篲嗢..." -31 "藣罐篲嗢" -32 "嶂冈雰ぇ蟟..." -33 "衶鋡嗢籚嶂冈..." -34 "驨椲衶鋡" -38 "籔婘" -39 "椌抻" -40 "䔝舅漜" -41 "伝崽" -43 "髱錔..." -45 "笱迒..." -46 "眃㪫昡..." -47 "赮伢諰咭..." -48 "衢逑玿..." -49 "漦嗢..." -50 "媢桾..." -51 "椵稌..." -52 "侹呥泂⻏..." -53 "颮羏..." -54 "棤℡罶涷..." -55 "驨卼頝踛" -56 "囷え赮伢諰咭..." -57 "驨卼Application Builder..." +2 "您有未儲存的編輯文件。結束使用AppBuilder\n會拋棄您所做的更改。請確認。" +3 "拋棄所做的更改" +4 "建立為控制窗格的子程序\n還是\n分層窗格的子程序?" +5 "子程序" +6 "分層" +7 "建立微分層窗格..." +8 "繼續" +9 "建立為分層窗格\n還是\n分割視窗中的新窗格?" +10 "窗格" +11 "建立為控制窗格的子程序\n或\n分層窗格\n還是\n分割視窗中的新窗格?" +12 "確定" +13 "開啟" +14 "引入" +15 "您可以參考資料的方式或複製的方式引入。\n引入方式:" +16 "複製" +17 "參考資料" +18 "對定位的資料建立暫時性檔案時\n發生錯誤。" +19 "您不能關閉本視窗。" +20 "檔案" +21 "編輯" +22 "檢視" +23 "佈局" +24 "編輯器" +25 "輔助說明" +26 "新計劃..." +27 "開啟計劃..." +28 "儲存計劃" +29 "將計劃儲存為..." +30 "新模組..." +31 "輸出模組" +32 "程式產生器..." +33 "計劃組織程式..." +34 "關閉計劃" +38 "還原" +39 "剪取" +40 "粘貼" +41 "刪除" +43 "對齊..." +45 "特性..." +46 "附屬物..." +47 "輔助說明..." +48 "功能表..." +49 "群組..." +50 "訊息..." +51 "連接..." +52 "拖曳並定位..." +53 "概觀..." +54 "參考資料..." +55 "關於圖像" +56 "使用輔助說明..." +57 "關於Application Builder..." 58 "Build " -59 "鉡箹䬷ざ篲嗢 " -60 "鉡箹衶鋡" -61 "嵺眭" -62 "槉嵺" -63 "藞禋A" -64 "麔淰 蹌藟 赮伢諰咭" -65 "挹耰" -66 "衢逑玿挹耰" -67 "ヾ齪”" +59 "測試顯示模組 " +60 "測試計劃" +61 "窗格" +62 "視窗" +63 "選項A" +64 "檔案 編輯 輔助說明" +65 "按鍵" +66 "功能表按鍵" +67 "本文:" 68 "abc" -69 "簅圝" -70 "頝踛A" -71 "頝踛B" -72 "祰戔" +69 "標籤" +70 "圖像A" +71 "圖像B" +72 "控制" 73 "A" 74 "B" -75 "淭髱巖涺" -76 "⻏殦”" +75 "核對方框" +76 "位置:" 77 " " -78 "騰麵”" -79 "酮簅⻏殦”" +78 "大小:" +79 "游標位置:" 80 " " -81 "蹌藟篲嗢”" +81 "編輯模組:" 82 " " -83 "昡ス麷伀”" -84 "昡スボ磝”" -91 "鶈え嶂冈齡汃巖涺..." -104 "齡汃..." -105 "鰱蘋篲嗢..." -106 "篲嗢廲ៜ嶂冈..." +83 "物件類別:" +84 "物件名稱:" +91 "應用程式工作方框..." +104 "工作..." +105 "引入模組..." +106 "模組瀏覽程式..." 107 "Ctrl+N" 108 "Ctrl+S" -109 "廎忒" +109 "結束" 110 "Alt+F4" 111 "Ctrl+Z" 112 "Ctrl+X" @@ -235,1286 +235,1286 @@ $ ** Generated messages for 'help_ed'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -2 "昡ス”" -3 "昡ス麷伀”" -4 "赮伢諰咭ヾ齪”" -5 "凭㶴... ”" -6 "晥忟ボ磝”" -7 "⻏殦ID”" -8 "薚泂" -9 "伒怮鶈え" -10 "适暋" -11 "抻祤" -12 "赮伢諰咭" -13 "楙旂睎⑴髓髱欄唈ゥ迖蹌藟赮伢諰咭ヾ齪柁昡ス柁ト玿﹞" -14 "霘囷えヾ棷棦坭藣蘋袺珜邴藞抻柁昡ス欄齪蜑裧鶈冈赮伢諰咭柁ヾ齪﹞" +2 "物件:" +3 "物件類別:" +4 "輔助說明本文:" +5 "繼續... :" +6 "容體名稱:" +7 "位置ID:" +8 "確定" +9 "即刻應用" +10 "重設" +11 "取消" +12 "輔助說明" +13 "這是您可以對之建立或編輯輔助說明本文的物件的列表。" +14 "請使用本區域來輸入欲成為所選取的物件之文意感應式輔助說明的本文。" 15 "Application Builder" -16 "伒怮鶈え邴惉柁彶庍" -17 "赮伢諰咭蹌藟蟟" -18 "** 昡ス麷伀 **" +16 "即刻應用所做的更改" +17 "輔助說明編輯器" +18 "** 物件類別 **" $set 9 DTBMS_attch_ed $ ** Generated messages for 'attch_ed'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "眃㪫昡蹌藟蟟" -3 "昡ス麷伀”" -4 "昡ス”" -5 "騵嶂囥”" -6 "臢嶂囥”" -7 "臢昡ス" -8 "昡ス1" -9 "⑴适泂騰麵”" -10 "眃㪫⺍”" -11 "煻欏”" -12 "禳籤”" -13 "伒怮鶈え" -14 "适暋" -15 "赮伢諰咭" -16 "薚泂" -17 "抻祤" -20 "挹耰" -21 "嬥唄" -22 "崼唄" +1 "附屬物編輯器" +3 "物件類別:" +4 "物件:" +5 "子程序:" +6 "父程序:" +7 "父物件" +8 "物件1" +9 "可重定大小:" +10 "附屬至:" +11 "距離:" +12 "百分比:" +13 "即刻應用" +14 "重設" +15 "輔助說明" +16 "確定" +17 "取消" +20 "按鍵" +21 "寬度" +22 "高度" 23 "Application Builder" -24 "伒怮鶈え邴惉柁彶庍" -25 "臢嶂囥眃㪫昡..." -26 "騵嶂囥斕柁眃㪫昡..." +24 "即刻應用所做的更改" +25 "父程序附屬物..." +26 "子程序中的附屬物..." $set 10 DTBMS_proj $ ** Generated messages for 'proj'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "衶鋡嗢籚嶂冈" -2 "衶鋡聤梏”" +1 "計劃組織程式" +2 "計劃路徑:" 3 " " -4 "篲嗢聤梏”" +4 "模組路徑:" 5 "Application Builder" -6 "ゝ髱篎篲嗢耰蘋ボ磝﹞" -7 "薚泂" -8 "ゝ髱篎衶鋡耰蘋ボ磝﹞" -9 "ボ磝⽁禕かА々﹜禨А﹜迖譯簅轃(_)嗢﹞\n剼纂堈А蠣⽁禕珜А魦迖譯簅轃﹞" -10 "ゝ耰蘋麔淰ボ磝﹞" -11 "篲嗢⽁禕ョ廲ៜ虳䬷ざ﹞" -12 "睎ゝ鬊Б柁蹌藟齪ス﹞傶崽篎篲嗢\n鞂俉蛫睎邴惉柁彶庍﹞\n霘薚諝﹞" -13 "俉蛫邴惉柁彶庍﹞" -15 "睎ゝ鬊Б柁蹌藟齪ス﹞驨椲篎衶鋡\n鞂俉蛫睎邴惉柁彶庍﹞\n霘薚諝﹞" -16 "隓⑴え柁奡襉忟洠睮﹞" -17 "适嬣" -18 "隞瞅..." -19 "鬊Б" -20 "鬊Б珜..." -21 "䬷ざ" -22 "騿鰳" -23 "廲ៜ..." -25 "傶崽" -26 "睎ゝ鬊Б柁蹌藟齪ス﹞唈ゥ隞柁衶鋡\n鞂俉蛫睎邴惉柁彶庍﹞霘薚諝﹞" -27 "衶鋡" -28 "篲嗢" -29 "赮伢諰咭" -30 "瞅絒..." -31 "驨椲" -37 "衶鋡ボ磝か椕芚ボ磝縋\n棓麔ボ(.bip)嗢﹞ 椕芚ボ磝\n旂え坭雰ぇ嶂冈謑﹜\nモ怬⽁禕纂堈淩柁C籫伀А﹞楙堈蜑悃旂\n椕芚ボ磝⽁禕かА々﹜\n禨А﹜迖譯簅轃(_)嗢﹜゛靨怬鶈\n髓А々迖譯簅轃瞅沓﹞" -38 "篲嗢麔淰ボ磝旂か椕芚ボ磝縋\n芛œ麔ボ(.bil)邴嗢﹞麔淰ボ磝柁椕芚\n旂えョ雰ぇ謑斕﹜モ\n怬⽁禕纂淩柁C籫伀А﹞楙玿ざ\n椕芚⽁禕かА々﹜\n禨А﹜迖譯簅(_)邴嗢﹜呥靨怬鶈髓\nА々迖譯簅瞅沓﹞" -39 "颮羏..." -40 "齡汃..." -41 "棤℡罶涷..." -42 "驨卼頝踛" -43 "囷え赮伢諰咭..." -44 "驨卼 Application Builder..." -45 "鰱蘋..." -46 "藣罐..." +6 "未對該模組鍵入名稱。" +7 "確定" +8 "未對該計劃鍵入名稱。" +9 "名稱必須由字母,數字,或下標線(_)組成。\n第一個字元必須為字幕或下標線。" +10 "未鍵入檔案名稱。" +11 "模組必須在瀏覽前顯示。" +12 "您有未儲存的編輯文件。移除該模組\n會拋棄您所做的更改。\n請確認。" +13 "拋棄所做的更改。" +15 "您有未儲存的編輯文件。關閉該計劃\n會拋棄您所做的更改。\n請確認。" +16 "無可用的記憶體空間。" +17 "重寫" +18 "新開..." +19 "儲存" +20 "儲存為..." +21 "顯示" +22 "隱藏" +23 "瀏覽..." +25 "移除" +26 "您有未儲存的編輯文件。建立新的計劃\n會拋棄您所做的更改。請確認。" +27 "計劃" +28 "模組" +29 "輔助說明" +30 "開啟..." +31 "關閉" +37 "計劃名稱由基底名稱與\n副檔名(.bip)組成。 基底名稱\n是用來產生程式碼,\n因此其必須有一個有效的C識別字。這個意思是\n基底名稱必須由字母,\n數字,或下標線(_)組成,而且其應\n以字母或下標線開始。" +38 "模組檔案名稱是由基底名稱與\n延伸檔名(.bil)所組成。檔案名稱的基底\n是用在產生碼中,因此\n其必須有一有效的C識別字。這表示\n基底必須由字母,\n數字,或下標(_)所組成,並且其應以\n字母或下標開始。" +39 "概觀..." +40 "工作..." +41 "參考資料..." +42 "關於圖像" +43 "使用輔助說明..." +44 "關於 Application Builder..." +45 "引入..." +46 "輸出..." $set 11 DTBMS_revolv $ ** Generated messages for 'revolv'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "菕鼲冈笱迒蹌藟蟟" -2 "昡ス”" -3 "昡ス麷伀”" -4 "麜抻..." -5 "薚泂" -6 "伒怮鶈え" -7 "适暋" -8 "抻祤" -9 "赮伢諰咭" +1 "旋轉式特性編輯器" +2 "物件:" +3 "物件類別:" +4 "擷取..." +5 "確定" +6 "即刻應用" +7 "重設" +8 "取消" +9 "輔助說明" 10 "Application Builder" -11 "伒怮鶈え邴惉柁彶庍" -12 "** 昡ス麷伀 **" +11 "即刻應用所做的更改" +12 "** 物件類別 **" $set 12 DTBMS_button $ ** Generated messages for 'button'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "挹耰笱迒蹌藟蟟" -3 "籦⺪”" -4 "虳葔" -5 " ﹛ -6 "眃㪫昡..." -7 "赮伢諰咭ヾ齪..." -8 "椵稌..." -9 "茯葔" -10 "譯邳冈衢逑玿”" -11 "衢逑玿" -12 "騰麵嶈靬”" -13 "珫沓昲鳷”" -14 "稢”" -15 "X”" -16 "Y”" -17 "W”" -18 "H”" -19 "昡スボ磝”" -20 "挹耰麷伀”" -21 "簅圝麷伀”" -22 "簅圝髱錔”" -23 "謆韝襓ホ”" -24 "頝夆麔淰ボ磝”" -26 "薚泂" -27 "伒怮鶈え" -28 "适暋" -29 "抻祤" -30 "赮伢諰咭" +1 "按鍵特性編輯器" +3 "顏色:" +4 "前景" +5 "   +6 "附屬物..." +7 "輔助說明本文..." +8 "連接..." +9 "背景" +10 "下拉式功能表:" +11 "功能表" +12 "大小策略:" +13 "初始狀態:" +14 "幾何:" +15 "X:" +16 "Y:" +17 "W:" +18 "H:" +19 "物件名稱:" +20 "按鍵類別:" +21 "標籤類別:" +22 "標籤對齊:" +23 "箭頭導向:" +24 "圖形檔案名稱:" +26 "確定" +27 "即刻應用" +28 "重設" +29 "取消" +30 "輔助說明" 31 ".pm/.bm" -32 "隓" -33 "籦⺪藞謥嶂冈..." -34 "簅圝騰麵" -35 "枒泂柁" -36 "⑴侐柁" -37 "汃え斕柁" -38 "筀蘋" -39 "揧跖鰱" -40 "衢逑玿" -41 "А⻌" -42 "頝夆柁" -43 "謆韝" -44 "ホ⼢" -45 "ホ⑶" -46 "斕⼅" -47 "ホ譫" -48 "ホ譯" -49 "挹耰\n昡ス”" +32 "無" +33 "顏色選擇程式..." +34 "標籤大小" +35 "固定的" +36 "可見的" +37 "作用中的" +38 "推入" +39 "被牽引" +40 "功能表" +41 "字串" +42 "圖形的" +43 "箭頭" +44 "向左" +45 "向右" +46 "中央" +47 "向上" +48 "向下" +49 "按鍵\n物件:" $set 13 DTBMS_choice $ ** Generated messages for 'choice'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "藞謥笱迒蹌藟蟟" -3 "禋げ”" -4 "禋げ昲鳷”" -5 "茯葔" -6 " ﹛ -7 "虳葔" -8 "眃㪫昡..." -9 "赮伢諰咭ヾ齪..." -10 "椵稌..." -11 "昡スボ磝”" -12 "藞謥麷伀”" -13 "簅圝麷伀”" -16 "媊沓昲鳷”" -17 "⻏殦”" -18 "X”" -19 "Y”" -20 "ト/⺼”" -22 "蠹蘋禋げ" -23 "蹌藟" -24 "薚泂" -25 "伒怮鶈え" -26 "适暋" -27 "抻祤" -28 "赮伢諰咭" -30 "籦⺪”" -31 "頝夆麔淰ボ磝”" +1 "選擇特性編輯器" +3 "項目:" +4 "項目狀態:" +5 "背景" +6 "   +7 "前景" +8 "附屬物..." +9 "輔助說明本文..." +10 "連接..." +11 "物件名稱:" +12 "選擇類別:" +13 "標籤類別:" +16 "起始狀態:" +17 "位置:" +18 "X:" +19 "Y:" +20 "列/行:" +22 "加入項目" +23 "編輯" +24 "確定" +25 "即刻應用" +26 "重設" +27 "取消" +28 "輔助說明" +30 "顏色:" +31 "圖形檔案名稱:" 32 ".pm/.bm" -33 "禋げ簅圝麷伀”" -34 "隓" -35 "籦⺪藞謥嶂冈..." -36 "ョ欄虳蠹蘋" -37 "ョ欄悒蠹蘋" -38 "彶庍" -39 "椌抻" -40 "闀蕍" -41 "䔝舅漜" -42 "伝崽" -43 "痼藞巖涺" -44 "栯淭巖涺" -45 "藞禋衢逑玿" -46 "А⻌" -47 "頝夆柁" -48 "ホ⼢" -49 "欄譫" -50 "ト" -51 "⺼" -52 "⑴侐柁" -53 "汃え斕柁" -54 "汃え斕柁 " -55 "揧藞抻柁" -56 "藞謥\n昡ス”" +33 "項目標籤類別:" +34 "無" +35 "顏色選擇程式..." +36 "在之前加入" +37 "在之後加入" +38 "更改" +39 "剪取" +40 "複製" +41 "粘貼" +42 "刪除" +43 "單選方框" +44 "查核方框" +45 "選項功能表" +46 "字串" +47 "圖形的" +48 "向左" +49 "之上" +50 "列" +51 "行" +52 "可見的" +53 "作用中的" +54 "作用中的 " +55 "被選取的" +56 "選擇\n物件:" $set 14 DTBMS_combobox $ ** Generated messages for 'combobox'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "篞ポ巖涺蹌藟蟟" -3 "禋げ”" -4 "媊沓昲鳷”" -5 "籦⺪”" -6 "眃㪫昡..." -7 "赮伢諰咭ヾ齪..." -8 "椵稌..." -10 "X”" -11 "Y”" -12 "W”" -14 "禋げ簅圝”" -15 "蠹蘋禋げ" -16 "蹌藟" -17 "茯葔" -18 " ﹛ -19 "虳葔" -20 "昡スボ磝”" -21 "簅圝麷伀”" -24 "篞ポ巖涺麷伀”" -25 "薚泂" -26 "伒怮鶈え" -27 "适暋" -28 "抻祤" -29 "赮伢諰咭" -30 "⻏殦”" -31 "頝夆麔淰ボ磝”" +1 "綜合方框編輯器" +3 "項目:" +4 "起始狀態:" +5 "顏色:" +6 "附屬物..." +7 "輔助說明本文..." +8 "連接..." +10 "X:" +11 "Y:" +12 "W:" +14 "項目標籤:" +15 "加入項目" +16 "編輯" +17 "背景" +18 "   +19 "前景" +20 "物件名稱:" +21 "標籤類別:" +24 "綜合方框類別:" +25 "確定" +26 "即刻應用" +27 "重設" +28 "取消" +29 "輔助說明" +30 "位置:" +31 "圖形檔案名稱:" 32 ".pm/.bm" -33 "嬥唄”" -34 "揧藞抻柁" -35 "ョ欄悒蠹蘋" -36 "ョ欄虳蠹蘋" -37 "彶庍" -38 "椌抻" -39 "闀蕍" -40 "䔝舅漜" -41 "伝崽" -42 "隓" -43 "籦⺪藞謥嶂冈..." -44 "譖鳷柁" -45 "⑴蹌藟柁" -46 "А⻌" -47 "頝夆柁" -48 "ホ⼢" -49 "欄譫" -50 "⑴侐柁" -51 "汃え斕柁" -52 "瑊畈柁禋げ" -53 "枒泂柁" -54 "篞ポ巖涺\n昡ス”" +33 "寬度:" +34 "被選取的" +35 "在之後加入" +36 "在之前加入" +37 "更改" +38 "剪取" +39 "複製" +40 "粘貼" +41 "刪除" +42 "無" +43 "顏色選擇程式..." +44 "靜態的" +45 "可編輯的" +46 "字串" +47 "圖形的" +48 "向左" +49 "之上" +50 "可見的" +51 "作用中的" +52 "最長的項目" +53 "固定的" +54 "綜合方框\n物件:" $set 15 DTBMS_cpanel $ ** Generated messages for 'cpanel'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -4 "籦⺪”" -5 "茯葔" -6 " ﹛ -8 "眃㪫昡..." -9 "赮伢諰咭ヾ齪..." -10 "椵稌..." -11 "昡スボ磝”" -12 "槉嵺騰麵饡涺”" -13 "媊沓昲鳷”" -14 "稢”" -15 "X”" -16 "Y”" -17 "W”" -18 "H”" -19 "薚泂" -20 "伒怮鶈え" -21 "适暋" -22 "抻祤" -23 "赮伢諰咭" -24 "衢逑玿" -25 "伒隃冈衢逑玿”" -26 "騰麵嶈靬”" -27 "衢逑玿簅纕”" -28 "隓" -29 "歆憵䬷卼⼃" -30 "歆憵䬷卼蠡" -31 "膧怮罐" -32 "膧怮蘋" -33 "懱ポ蠡晥" -34 "枒泂柁" -35 "⑴侐柁" -36 "汃え斕柁" -37 "籦⺪藞謥嶂冈..." -38 "祰戔嵺眭笱迒蹌藟蟟" -39 "祰戔嵺眭\n昡ス”" +4 "顏色:" +5 "背景" +6 "   +8 "附屬物..." +9 "輔助說明本文..." +10 "連接..." +11 "物件名稱:" +12 "視窗大小邊框:" +13 "起始狀態:" +14 "幾何:" +15 "X:" +16 "Y:" +17 "W:" +18 "H:" +19 "確定" +20 "即刻應用" +21 "重設" +22 "取消" +23 "輔助說明" +24 "功能表" +25 "即現式功能表:" +26 "大小策略:" +27 "功能表標題:" +28 "無" +29 "陰影顯於外" +30 "陰影顯於內" +31 "蝕刻出" +32 "蝕刻入" +33 "適合內容" +34 "固定的" +35 "可見的" +36 "作用中的" +37 "顏色選擇程式..." +38 "控制窗格特性編輯器" +39 "控制窗格\n物件:" $set 16 DTBMS_custdlg $ ** Generated messages for 'custdlg'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "⺌衲髱緷笱迒蹌藟蟟" -3 "椵稌..." -4 "籦⺪”" -5 "茯葔" -6 " ﹛ -7 "虳葔" -8 "昡スボ磝”" -9 "髱緷簅纕”" -10 "々槉嵺”" -11 "囷え炟适衲騰麵篲冈”" -12 "媊沓昲鳷”" -13 "稢”" -14 "X”" -15 "Y”" -16 "W”" -17 "H”" -18 "髱緷棷棦”" -19 "蠡暋挹耰”" -20 "薚泂" -21 "伒怮鶈え" -22 "适暋" -23 "抻祤" -24 "赮伢諰咭" +1 "自訂對話特性編輯器" +3 "連接..." +4 "顏色:" +5 "背景" +6 "   +7 "前景" +8 "物件名稱:" +9 "對話標題:" +10 "母視窗:" +11 "使用者重訂大小模式:" +12 "起始狀態:" +13 "幾何:" +14 "X:" +15 "Y:" +16 "W:" +17 "H:" +18 "對話區域:" +19 "內設按鍵:" +20 "確定" +21 "即刻應用" +22 "重設" +23 "取消" +24 "輔助說明" 25 "Application Builder" -26 "傶崽挹耰郖帣鞂囷痤邴柁\n騵挹耰郖帣揧伝崽﹞" -27 "傶崽" -28 "傶崽郟璁鞂囷痤邴柁\n騵郟璁揧伝崽﹞" -29 "騰麵嶈靬”" -30 "隓" -31 "籦⺪藞謥嶂冈..." -32 "挹耰郖帣" -33 "郟璁" -34 "隓 " -35 "隓 " -36 "枒泂柁" -37 "⑴鞜謽柁" -38 "懱ポ蠡晥" -39 "⑴侐柁" -40 "⺌衲髱緷\n昡ス”" -41 "赮伢諰咭挹耰”" -42 "赮伢諰咭ヾ齪..." +26 "移除按鍵面板會使得所有的\n子按鍵面板被刪除。" +27 "移除" +28 "移除頁腳會使得所有的\n子頁腳被刪除。" +29 "大小策略:" +30 "無" +31 "顏色選擇程式..." +32 "按鍵面板" +33 "頁腳" +34 "無 " +35 "無 " +36 "固定的" +37 "可調整的" +38 "適合內容" +39 "可見的" +40 "自訂對話\n物件:" +41 "輔助說明按鍵:" +42 "輔助說明本文..." $set 17 DTBMS_drawp $ ** Generated messages for 'drawp'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -4 "籦⺪”" -5 "茯葔" -6 " ﹛ -7 "虳葔" -9 "眃㪫昡..." -10 "赮伢諰咭ヾ齪..." -11 "椵稌..." -12 "媊沓昲鳷”" -13 "稢”" -14 "X”" -15 "Y”" -16 "W”" -17 "H”" -18 "鐠鳪魦騰麵”" -19 "昡スボ磝”" -20 "稂棬犓”" -21 "槉嵺饡涺”" -22 "薚泂" -23 "伒怮鶈え" -24 "适暋" -25 "抻祤" -26 "赮伢諰咭" -28 "衢逑玿" -29 "衢逑玿簅纕”" -30 "皕ゝ" -31 "渀錛衭" -32 "鐠旂" -33 "隓" -34 "歆憵䬷卼⼃" -35 "歆憵䬷卼蠡" -36 "膧怮罐" -37 "膧怮蘋" -38 "⑴侐柁" -39 "汃え斕柁" -40 "籦⺪藞謥嶂冈..." -41 "伒隃衢逑玿”" -42 "汃鳪棷棦嵺眭笱迒蹌藟蟟" -43 "汃鳪棷棦嵺眭\n昡ス”" +4 "顏色:" +5 "背景" +6 "   +7 "前景" +9 "附屬物..." +10 "輔助說明本文..." +11 "連接..." +12 "起始狀態:" +13 "幾何:" +14 "X:" +15 "Y:" +16 "W:" +17 "H:" +18 "總畫幕大小:" +19 "物件名稱:" +20 "捲動軸:" +21 "視窗邊框:" +22 "確定" +23 "即刻應用" +24 "重設" +25 "取消" +26 "輔助說明" +28 "功能表" +29 "功能表標題:" +30 "從未" +31 "何時需要" +32 "總是" +33 "無" +34 "陰影顯於外" +35 "陰影顯於內" +36 "蝕刻出" +37 "蝕刻入" +38 "可見的" +39 "作用中的" +40 "顏色選擇程式..." +41 "即現功能表:" +42 "作畫區域窗格特性編輯器" +43 "作畫區域窗格\n物件:" $set 18 DTBMS_group $ ** Generated messages for 'group'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "漦嗢笱迒蹌藟蟟" -2 "漦嗢" -3 "昡ス”" -4 "漦嗢ボ磝”" -5 "肊汔麷伀”" -6 "倰枺髱錔”" -7 "纓⼳髱錔”" -8 "槉嵺饡涺”" -9 "媊沓昲鳷”" -10 "⻏殦”" -11 "X”" -12 "Y”" +1 "群組特性編輯器" +2 "群組" +3 "物件:" +4 "群組名稱:" +5 "佈局類別:" +6 "垂直對齊:" +7 "水平對齊:" +8 "視窗邊框:" +9 "起始狀態:" +10 "位置:" +11 "X:" +12 "Y:" 14 "1" -15 "睮觰”" +15 "間隔:" 16 "10" -17 "眃㪫昡..." -18 "赮伢諰咭ヾ齪..." -19 "椵稌..." -20 "薚泂" -21 "伒怮鶈え" -22 "适暋" -23 "抻祤" -24 "赮伢諰咭" -25 "ト" -26 "⺼" -27 "籤柁" -28 "扻泂柁" -29 "⑴侐柁" -30 "汃え斕柁" -31 "隓" -32 "歆憵䬷卼⼃" -33 "歆憵䬷卼蠡" -34 "膧怮罐" -35 "膧怮蘋" -36 "饡蹇”" +17 "附屬物..." +18 "輔助說明本文..." +19 "連接..." +20 "確定" +21 "即刻應用" +22 "重設" +23 "取消" +24 "輔助說明" +25 "列" +26 "行" +27 "成正比的" +28 "決定的" +29 "可見的" +30 "作用中的" +31 "無" +32 "陰影顯於外" +33 "陰影顯於內" +34 "蝕刻出" +35 "蝕刻入" +36 "邊緣:" 37 "0" -38 "昡ス騰麵”" -39 "砨フ柁嬥唄" -40 "砨フ柁崼唄" -41 "适衲昡ス騰麵”" -42 "絒棬" -43 "驨椲" +38 "物件大小:" +39 "相同的寬度" +40 "相同的高度" +41 "重訂物件大小:" +42 "啟動" +43 "關閉" $set 19 DTBMS_label $ ** Generated messages for 'label'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "簅圝笱迒蹌藟蟟" -3 "籦⺪”" -4 "騰麵嶈靬”" -5 "媊沓昲鳷”" -6 "昡スボ磝”" -7 "簅圝麷伀”" -8 "簅圝髱錔”" -9 "頝夆麔淰ボ磝”" -11 "茯葔" -12 " ﹛ -13 "虳葔" -14 "眃㪫昡..." -15 "赮伢諰咭ヾ齪..." -16 "椵稌..." -17 "稢”" -18 "X”" -19 "Y”" -20 "W”" -21 "H”" -22 "薚泂" -23 "伒怮鶈え" -24 "适暋" -25 "抻祤" -26 "赮伢諰咭" +1 "標籤特性編輯器" +3 "顏色:" +4 "大小策略:" +5 "起始狀態:" +6 "物件名稱:" +7 "標籤類別:" +8 "標籤對齊:" +9 "圖形檔案名稱:" +11 "背景" +12 "   +13 "前景" +14 "附屬物..." +15 "輔助說明本文..." +16 "連接..." +17 "幾何:" +18 "X:" +19 "Y:" +20 "W:" +21 "H:" +22 "確定" +23 "即刻應用" +24 "重設" +25 "取消" +26 "輔助說明" 27 ".pm/.bm" -28 "隓" -29 "籦⺪藞謥嶂冈..." -30 "А⻌" -31 "頝夆柁" -32 "ホ⼢" -33 "ホ⑶" -34 "斕⼅" -35 "簅圝騰麵" -36 "枒泂柁" -37 "⑴侐柁" -38 "汃え斕柁" -39 "簅圝\n昡ス”" +28 "無" +29 "顏色選擇程式..." +30 "字串" +31 "圖形的" +32 "向左" +33 "向右" +34 "中央" +35 "標籤大小" +36 "固定的" +37 "可見的" +38 "作用中的" +39 "標籤\n物件:" $set 20 DTBMS_list $ ** Generated messages for 'list'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "ト玿笱迒蹌藟蟟" -4 "禋げ”" -5 "伒隃冈衢逑玿”" -6 "籦⺪”" -7 "禋げ簅圝”" -8 "昡スボ磝”" -9 "藞抻篲冈”" -10 "茯葔" -11 " ﹛ -12 "虳葔" -14 "眃㪫昡..." -15 "赮伢諰咭ヾ齪..." -16 "椵稌..." -17 "蠹蘋禋げ" -18 "蹌藟" -19 "簅圝麷伀”" -20 "⻏殦”" -21 "頝夆麔淰ボ磝”" -23 "媊沓昲鳷”" -24 "X”" -25 "Y”" -26 "嬥唄”" -27 "W”" -28 "崼唄”" -29 "H”" -30 "薚泂" -31 "伒怮鶈え" -32 "适暋" -33 "抻祤" -34 "赮伢諰咭" -35 "衢逑玿" +1 "列表特性編輯器" +4 "項目:" +5 "即現式功能表:" +6 "顏色:" +7 "項目標籤:" +8 "物件名稱:" +9 "選取模式:" +10 "背景" +11 "   +12 "前景" +14 "附屬物..." +15 "輔助說明本文..." +16 "連接..." +17 "加入項目" +18 "編輯" +19 "標籤類別:" +20 "位置:" +21 "圖形檔案名稱:" +23 "起始狀態:" +24 "X:" +25 "Y:" +26 "寬度:" +27 "W:" +28 "高度:" +29 "H:" +30 "確定" +31 "即刻應用" +32 "重設" +33 "取消" +34 "輔助說明" +35 "功能表" 36 ".pm/.bm" -37 " 衢逑玿簅纕”" -38 " 揧藞抻" -39 " ョ欄悒蠹蘋" -40 " ョ欄虳蠹蘋" -41 " 彶庍" -42 " 椌抻" -43 "闀蕍" -44 "䔝舅漜" -45 "伝崽" -46 "痼纂藞抻" -47 "廲ៜ藞抻" -48 "ロ适藞抻" -49 "廲ៜロ适藞抻" -50 "А⻌" -51 "頝夆柁" -52 "ホ⼢" -53 "欄譫" -54 "⑴侐柁" -55 "汃え斕柁" -56 "瑊畈柁禋げ" -57 "枒泂柁" -58 "А蠣" -59 "頝踛痼蠣" -60 "隓" -61 "籦⺪藞謥嶂冈..." -62 "ト玿\n昡ス”" +37 " 功能表標題:" +38 " 被選取" +39 " 在之後加入" +40 " 在之前加入" +41 " 更改" +42 " 剪取" +43 "複製" +44 "粘貼" +45 "刪除" +46 "單一選取" +47 "瀏覽選取" +48 "多重選取" +49 "瀏覽多重選取" +50 "字串" +51 "圖形的" +52 "向左" +53 "之上" +54 "可見的" +55 "作用中的" +56 "最長的項目" +57 "固定的" +58 "字元" +59 "圖像單元" +60 "無" +61 "顏色選擇程式..." +62 "列表\n物件:" $set 21 DTBMS_mainwin $ ** Generated messages for 'mainwin'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "饜槉嵺笱迒蹌藟蟟" -3 "椵稌..." -4 "籦⺪”" -5 "槉嵺棷棦”" -6 "虳葔" -7 " ﹛ -8 "茯葔" -9 "昡スボ磝”" -10 "槉嵺簅纕”" -11 "頝踛簅圝”" -12 "囷え炟适衲騰麵篲冈”" -15 "媊沓昲鳷”" -16 "稢”" -17 "X”" -18 "Y”" -19 "W”" -20 "H”" -21 "薚泂" -22 "伒怮鶈え" -23 "适暋" -24 "抻祤" -25 "赮伢諰咭" +1 "主視窗特性編輯器" +3 "連接..." +4 "顏色:" +5 "視窗區域:" +6 "前景" +7 "   +8 "背景" +9 "物件名稱:" +10 "視窗標題:" +11 "圖像標籤:" +12 "使用者重訂大小模式:" +15 "起始狀態:" +16 "幾何:" +17 "X:" +18 "Y:" +19 "W:" +20 "H:" +21 "確定" +22 "即刻應用" +23 "重設" +24 "取消" +25 "輔助說明" 26 ".pm/.bm" 27 "Application Builder" -28 "傶崽衢逑犓鞂邴柁囷\n騵衢逑犓揧伝崽﹞" -29 "傶崽" -30 "傶崽齡怞犓鞂囷邴柁\n騵敓ⅶ犓揧伝崽﹞" -31 "傶崽郟璁鞂囷邴柁\n騵郟璁揧伝崽﹞" -32 "騰麵嶈靬”" -33 "饜槉嵺 \n昡ス”" -34 "衢逑犓" -35 "齡怞犓" -36 "郟璁" -37 "隓" -38 "籦⺪藞謥嶂冈..." -39 "懱ポ蠡晥" -40 "枒泂柁" -41 "頝踛冈柁" -42 "⑴侐柁" -43 "⑴鞜謽柁" -44 "頝踛麔淰”" -45 "頝踛懪嘵麔淰”" -46 "赮伢諰咭ヾ齪..." +28 "移除功能軸會所有的使\n子功能軸被刪除。" +29 "移除" +30 "移除工具軸會使所有的\n子宮句軸被刪除。" +31 "移除頁腳會使所有的\n子頁腳被刪除。" +32 "大小策略:" +33 "主視窗 \n物件:" +34 "功能軸" +35 "工具軸" +36 "頁腳" +37 "無" +38 "顏色選擇程式..." +39 "適合內容" +40 "固定的" +41 "圖像式的" +42 "可見的" +43 "可調整的" +44 "圖像檔案:" +45 "圖像遮照檔案:" +46 "輔助說明本文..." $set 22 DTBMS_menu $ ** Generated messages for 'menu'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "衢逑玿笱迒蹌藟蟟" -3 "蠹蘋隞衢逑玿 " -4 "蹌藟" -5 "禋げ”" -6 "禋げ昲鳷”" -7 "昡スボ磝”" -9 "麜抻”" -10 "虳葔" -11 " ﹛ -12 "茯葔" -13 "赮伢諰咭ヾ齪..." -14 "椵稌..." -15 "禋げ簅圝”" -16 "禋げ伢襉ボ磝”" -17 "蠹楬蟟”" -19 "蠹蘋禋げ" -20 "薚泂" -21 "伒怮鶈え" -22 "适暋" -23 "抻祤" -24 "赮伢諰咭" -27 "⺼麷倛”" +1 "功能表特性編輯器" +3 "加入新功能表 " +4 "編輯" +5 "項目:" +6 "項目狀態:" +7 "物件名稱:" +9 "擷取:" +10 "前景" +11 "   +12 "背景" +13 "輔助說明本文..." +14 "連接..." +15 "項目標籤:" +16 "項目助憶名稱:" +17 "加速器:" +19 "加入項目" +20 "確定" +21 "即刻應用" +22 "重設" +23 "取消" +24 "輔助說明" +27 "行類型:" 28 ".pm/.bm" -29 "禋げ衢逑玿”" -30 "衢逑玿" -31 "籦⺪”" -32 "隓" -33 "籦⺪藞謥嶂冈..." -34 " ョ欄悒蠹蘋" -35 " ョ欄虳蠹蘋" -36 " 彶庍" -37 " 椌抻" -38 "闀蕍" -39 "䔝舅漜" -40 "伝崽" -41 "絒棬" -42 "驨椲" -43 "禋げ簅圝麷伀”" -44 "А⻌" -45 "頝夆柁" -46 "禳觰嶂冈" -47 "膧怮蘋" -48 "膧怮罐" -49 "膧怮蘋摫轃" -50 "痼纂⺼" -51 "灛⺼" -52 "膧怮罐摫轃" -53 "痼纂摫轃" -54 "灛适摫轃" -55 "汃え斕柁" -56 "衢逑玿 \n昡ス”" +29 "項目次功能表:" +30 "功能表" +31 "顏色:" +32 "無" +33 "顏色選擇程式..." +34 " 在之後加入" +35 " 在之前加入" +36 " 更改" +37 " 剪取" +38 "複製" +39 "粘貼" +40 "刪除" +41 "啟動" +42 "關閉" +43 "項目標籤類別:" +44 "字串" +45 "圖形的" +46 "分隔程式" +47 "蝕刻入" +48 "蝕刻出" +49 "蝕刻入虛線" +50 "單一行" +51 "雙行" +52 "蝕刻出虛線" +53 "單一虛線" +54 "雙重虛線" +55 "作用中的" +56 "功能表 \n物件:" $set 23 DTBMS_menubar $ ** Generated messages for 'menubar'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "衢逑犓笱迒蹌藟蟟" -3 "禋げ”" -4 "禋げ伢襉ボ磝”" -5 "禋げ昲鳷”" -6 "昡スボ磝”" -7 "媊沓昲鳷”" -8 "茯葔" -9 " ﹛ -10 "虳葔" -11 "赮伢諰咭ヾ齪..." -12 "椵稌..." -13 "禋げ簅圝”" -15 "蠹蘋禋げ" -16 "蹌藟" -17 "薚泂" -18 "伒怮鶈え" -19 "适暋" -20 "抻祤" -21 "赮伢諰咭" -22 "⑴侐柁" -23 "汃え斕柁" -24 "籦⺪”" -25 "隓" -26 "籦⺪藞謥嶂冈..." -27 " ョ欄悒蠹蘋" -28 " ョ欄虳蠹蘋" -29 " 彶庍" -30 " 椌抻" -31 "闀蕍" -32 "䔝舅漜" -33 "伝崽" -34 "禋げ簅圝麷伀”" -35 "А⻌" -36 "頝夆柁" -37 "旂赮伢諰咭禋げ" +1 "功能軸特性編輯器" +3 "項目:" +4 "項目助憶名稱:" +5 "項目狀態:" +6 "物件名稱:" +7 "起始狀態:" +8 "背景" +9 "   +10 "前景" +11 "輔助說明本文..." +12 "連接..." +13 "項目標籤:" +15 "加入項目" +16 "編輯" +17 "確定" +18 "即刻應用" +19 "重設" +20 "取消" +21 "輔助說明" +22 "可見的" +23 "作用中的" +24 "顏色:" +25 "無" +26 "顏色選擇程式..." +27 " 在之後加入" +28 " 在之前加入" +29 " 更改" +30 " 剪取" +31 "複製" +32 "粘貼" +33 "刪除" +34 "項目標籤類別:" +35 "字串" +36 "圖形的" +37 "是輔助說明項目" 38 ".pm/.bm" -39 "譯邳冈衢逑玿”" -40 "衢逑玿" -41 "衢逑犓\n昡ス”" +39 "下拉式功能表:" +40 "功能表" +41 "功能軸\n物件:" $set 24 DTBMS_scale $ ** Generated messages for 'scale'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "籤坲饕笱迒蹌藟蟟" -3 "媊沓昲鳷”" -4 "籦⺪”" -5 "茯葔" -6 " ﹛ -7 "虳葔" -8 "眃㪫昡..." -9 "赮伢諰咭ヾ齪..." -10 "椵稌..." -11 "稢”" -12 "X”" -13 "Y”" -14 "W”" -15 "H”" -16 "昡スボ磝”" -18 "籤坲饕麷伀”" -19 "襓ホ”" -20 "巖ホ”" -21 "簅圝麷伀”" -22 "⻏殦”" -23 "禨圊謓睕”" -24 "瑊麵圊”" -25 "瑊騰圊”" -27 "觸瑱⻏鷁”" -28 "媊沓圊”" -29 "薚泂" -30 "伒怮鶈え" -31 "适暋" -32 "抻祤" -33 "赮伢諰咭" -34 "頝夆麔淰ボ磝”" +1 "比例尺特性編輯器" +3 "起始狀態:" +4 "顏色:" +5 "背景" +6 "   +7 "前景" +8 "附屬物..." +9 "輔助說明本文..." +10 "連接..." +11 "幾何:" +12 "X:" +13 "Y:" +14 "W:" +15 "H:" +16 "物件名稱:" +18 "比例尺類別:" +19 "導向:" +20 "方向:" +21 "標籤類別:" +22 "位置:" +23 "數值範圍:" +24 "最小值:" +25 "最大值:" +27 "十進位點:" +28 "起始值:" +29 "確定" +30 "即刻應用" +31 "重設" +32 "取消" +33 "輔助說明" +34 "圖形檔案名稱:" 35 ".pm/.bm" -36 "Incr”" -37 "隓" -38 "籦⺪藞謥嶂冈..." -39 "籤坲饕" -40 "衶畽挴簅" -41 "纓⼳柁" -42 "倰枺柁" -43 "А⻌" -44 "頝夆柁" -45 "ホ⼢" -46 "欄譫" -47 "か⼢⺍⑶" -48 "か⑶⺍⼢" -49 "か譫⺍譯" -50 "か譯⺍譫" -51 "䬷ざ禨圊" -52 "⑴侐柁" -53 "汃え斕柁" -54 "籤坲饕\n昡ス”" +36 "Incr:" +37 "無" +38 "顏色選擇程式..." +39 "比例尺" +40 "計量指標" +41 "水平的" +42 "垂直的" +43 "字串" +44 "圖形的" +45 "向左" +46 "之上" +47 "由左至右" +48 "由右至左" +49 "由上至下" +50 "由下至上" +51 "顯示數值" +52 "可見的" +53 "作用中的" +54 "比例尺\n物件:" $set 25 DTBMS_sep $ ** Generated messages for 'sep'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "禳觰嶂冈笱迒蹌藟蟟" -3 "籦⺪”" -4 "媊沓昲鳷”" -5 "茯葔" -6 " ﹛ -7 "虳葔" -8 "眃㪫昡..." -9 "赮伢諰咭ヾ齪..." -10 "椵稌..." -11 "昡スボ磝”" -12 "襓ホ”" -13 "⺼ト麷倛”" -14 "稢”" -15 "X”" -16 "Y”" -17 "W”" -18 "H”" -19 "薚泂" -20 "伒怮鶈え" -21 "适暋" -22 "抻祤" -23 "赮伢諰咭" -24 "⑴侐柁" -25 "隓" -26 "籦⺪藞謥嶂冈..." -27 "纓⼳柁" -28 "倰枺柁" -29 "膧怮蘋" -30 "膧怮罐" -31 "膧怮蘋摫轃" -32 "膧怮罐摫轃" -33 "痼纂轃蛨" -34 "灛适轃蛨" -35 "痼纂摫轃" -36 "灛适摫轃" -37 "禳觰嶂冈\n昡ス”" +1 "分隔程式特性編輯器" +3 "顏色:" +4 "起始狀態:" +5 "背景" +6 "   +7 "前景" +8 "附屬物..." +9 "輔助說明本文..." +10 "連接..." +11 "物件名稱:" +12 "導向:" +13 "行列類型:" +14 "幾何:" +15 "X:" +16 "Y:" +17 "W:" +18 "H:" +19 "確定" +20 "即刻應用" +21 "重設" +22 "取消" +23 "輔助說明" +24 "可見的" +25 "無" +26 "顏色選擇程式..." +27 "水平的" +28 "垂直的" +29 "蝕刻入" +30 "蝕刻出" +31 "蝕刻入虛線" +32 "蝕刻出虛線" +33 "單一線條" +34 "雙重線條" +35 "單一虛線" +36 "雙重虛線" +37 "分隔程式\n物件:" $set 26 DTBMS_spinbox $ ** Generated messages for 'spinbox'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "藞禋巖涺笱迒蹌藟蟟" -3 "禋げ”" -4 "媊沓昲鳷”" -5 "籦⺪”" -6 "眃㪫昡..." -7 "赮伢諰咭ヾ齪..." -8 "椵稌..." -9 "蠹蘋禋げ" -10 "蹌藟" -11 "稢”" -12 "X”" -13 "Y”" -14 "W”" -16 "茯葔" -17 " ﹛ -18 "虳葔" -19 "禋げ簅圝”" -20 "昡スボ磝”" -21 "藞禋巖涺麷伀”" -22 "謆韝麷倛”" -23 "簅圝麷伀”" -24 "⻏殦”" +1 "選項方框特性編輯器" +3 "項目:" +4 "起始狀態:" +5 "顏色:" +6 "附屬物..." +7 "輔助說明本文..." +8 "連接..." +9 "加入項目" +10 "編輯" +11 "幾何:" +12 "X:" +13 "Y:" +14 "W:" +16 "背景" +17 "   +18 "前景" +19 "項目標籤:" +20 "物件名稱:" +21 "選項方框類別:" +22 "箭頭類型:" +23 "標籤類別:" +24 "位置:" 26 ".pm/.bm" -27 "媊沓圊”" -28 "禨圊謓睕”" -29 "瑊麵圊”" -30 "瑊騰圊”" -32 "觸瑱⻏鷁”" -33 "薚泂" -34 "伒怮鶈え" -35 "适暋" -36 "抻祤" -37 "赮伢諰咭" -38 "頝夆麔淰ボ磝”" -39 "Incr”" +27 "起始值:" +28 "數值範圍:" +29 "最小值:" +30 "最大值:" +32 "十進位點:" +33 "確定" +34 "即刻應用" +35 "重設" +36 "取消" +37 "輔助說明" +38 "圖形檔案名稱:" +39 "Incr:" 40 "Application Builder" -42 " 彶庍" -43 "渿藞禋巖涺麷伀彶庍珜\"禨圊柁\" 鞂\n囷痤 \"А⻌ト玿\" 禋げ揧伝崽﹞" -44 "⑴侐柁" -45 "汃え斕柁" -46 " 揧藞抻" -47 " ョ欄悒蠹蘋" -48 " ョ欄虳蠹蘋" -49 " 椌抻" -50 "闀蕍" -51 "䔝舅漜" -52 "伝崽" -53 "隓" -54 "籦⺪藞謥嶂冈..." -55 "禨圊柁" -56 "А⻌ト玿" -57 "⼳袲柁瞅沓" -58 "⼳袲柁廎忒" -59 "瞅沓" -60 "廎忒" -61 "禳瞅" -62 "А⻌" -63 "頝夆柁" -64 "ホ⼢" -65 "欄譫" -66 "藞禋巖涺\n昡ス”" +42 " 更改" +43 "將選項方框類別更改為\"數值的\" 會\n使得 \"字串列表\" 項目被刪除。" +44 "可見的" +45 "作用中的" +46 " 被選取" +47 " 在之後加入" +48 " 在之前加入" +49 " 剪取" +50 "複製" +51 "粘貼" +52 "刪除" +53 "無" +54 "顏色選擇程式..." +55 "數值的" +56 "字串列表" +57 "平淡的開始" +58 "平淡的結束" +59 "開始" +60 "結束" +61 "分開" +62 "字串" +63 "圖形的" +64 "向左" +65 "之上" +66 "選項方框\n物件:" $set 27 DTBMS_termp $ ** Generated messages for 'termp'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "ボ滮嵺觰笱迒蹌藟蟟" -3 "搢隉А⻌”" -4 "籦⺪”" -5 "茯葔" -6 " ﹛ -7 "虳葔" -9 "眃㪫昡..." -10 "赮伢諰咭ヾ齪..." -11 "椵稌..." -12 "媊沓昲鳷”" -13 "⻏殦”" -14 "X”" -15 "Y”" -16 "騰麵”" -17 "W”" -18 "H”" -19 "昡スボ磝”" -20 "稂犓”" -21 "槉嵺饡涺”" -22 "薚泂" -23 "伒怮鶈え" -24 "适暋" -25 "抻祤" -26 "赮伢諰咭" -28 "衢逑玿" -29 " 衢逑玿簅纕”" -30 "皕ゝ" -31 "鐠旂" -32 "隓" -33 "歆憵䬷卼⼃" -34 "歆憵䬷卼蠡" -35 "膧怮罐" -36 "膧怮蘋" -37 "⑴侐柁" -38 "汃え斕柁" -39 "А蠣" -40 "頝踛痼蠣" -41 "籦⺪藞謥嶂冈..." -42 "伒隃冈衢逑玿”" -43 "ボ滮嵺眭\n昡ス”" +1 "名詞窗隔特性編輯器" +3 "處理字串:" +4 "顏色:" +5 "背景" +6 "   +7 "前景" +9 "附屬物..." +10 "輔助說明本文..." +11 "連接..." +12 "起始狀態:" +13 "位置:" +14 "X:" +15 "Y:" +16 "大小:" +17 "W:" +18 "H:" +19 "物件名稱:" +20 "捲軸:" +21 "視窗邊框:" +22 "確定" +23 "即刻應用" +24 "重設" +25 "取消" +26 "輔助說明" +28 "功能表" +29 " 功能表標題:" +30 "從未" +31 "總是" +32 "無" +33 "陰影顯於外" +34 "陰影顯於內" +35 "蝕刻出" +36 "蝕刻入" +37 "可見的" +38 "作用中的" +39 "字元" +40 "圖像單元" +41 "顏色選擇程式..." +42 "即現式功能表:" +43 "名詞窗格\n物件:" $set 28 DTBMS_textf $ ** Generated messages for 'textf'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "齪А唫⻏笱迒蹌藟蟟" -3 "籦⺪”" -4 "眃㪫昡..." -5 "赮伢諰咭ヾ齪..." -6 "椵稌..." -7 "茯葔" -8 " ﹛ -9 "虳葔" -11 "媊沓昲鳷”" -12 "⻏殦”" -13 "X”" -14 "Y”" -15 "嬥唄”" -16 "W”" -17 "襓ホ”" -18 "瑊騰 Chars”" -19 "媊沓禨圊”" -20 "昡スボ磝”" -21 "簅圝麷伀”" -22 "頝夆麔淰ボ磝”" -24 "薚泂" -25 "伒怮鶈え" -26 "适暋" -27 "抻祤" -28 "赮伢諰咭" +1 "文字欄位特性編輯器" +3 "顏色:" +4 "附屬物..." +5 "輔助說明本文..." +6 "連接..." +7 "背景" +8 "   +9 "前景" +11 "起始狀態:" +12 "位置:" +13 "X:" +14 "Y:" +15 "寬度:" +16 "W:" +17 "導向:" +18 "最大 Chars:" +19 "起始數值:" +20 "物件名稱:" +21 "標籤類別:" +22 "圖形檔案名稱:" +24 "確定" +25 "即刻應用" +26 "重設" +27 "取消" +28 "輔助說明" 31 ".pm/.bm" -32 "隓" -33 "籦⺪藞謥嶂冈..." -34 "⑴侐柁" -35 "汃え斕柁" -36 "А蠣" -37 "頝踛痼蠣" -38 "⑴蹌藟柁" -39 "椔幺" -40 "А⻌" -41 "頝夆柁" -42 "ホ⼢" -43 "欄譫" -44 "齪А唫⻏\n昡ス”" +32 "無" +33 "顏色選擇程式..." +34 "可見的" +35 "作用中的" +36 "字元" +37 "圖像單元" +38 "可編輯的" +39 "唯讀" +40 "字串" +41 "圖形的" +42 "向左" +43 "之上" +44 "文字欄位\n物件:" $set 29 DTBMS_textp $ ** Generated messages for 'textp'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "齪А嵺眭笱迒蹌藟蟟" -4 "籦⺪”" -5 "茯葔" -6 " ﹛ -7 "虳葔" -9 "眃㪫昡..." -10 "赮伢諰咭ヾ齪..." -11 "椵稌..." -12 "媊沓禨圊”" -13 "昡スボ磝”" -14 "稂犓”" -15 "槉嵺饡涺”" -16 "汃鞄”" -17 "⺌棬葎⺼”" -18 "媊沓昲鳷”" -19 "⻏殦”" -20 "X”" -21 "Y”" -22 "騰麵”" -23 "W”" -24 "H”" -25 "薚泂" -26 "伒怮鶈え" -27 "适暋" -28 "抻祤" -29 "赮伢諰咭" -31 "衢逑玿" -32 " 衢逑玿簅纕”" +1 "文字窗格特性編輯器" +4 "顏色:" +5 "背景" +6 "   +7 "前景" +9 "附屬物..." +10 "輔助說明本文..." +11 "連接..." +12 "起始數值:" +13 "物件名稱:" +14 "捲軸:" +15 "視窗邊框:" +16 "作業:" +17 "自動換行:" +18 "起始狀態:" +19 "位置:" +20 "X:" +21 "Y:" +22 "大小:" +23 "W:" +24 "H:" +25 "確定" +26 "即刻應用" +27 "重設" +28 "取消" +29 "輔助說明" +31 "功能表" +32 " 功能表標題:" 33 " " -34 "皕ゝ" -35 "鐠旂" -36 "隓" -37 "歆憵䬷卼⼃" -38 "歆憵䬷卼蠡" -39 "膧怮罐" -40 "膧怮蘋" -41 "⑴蹌藟柁" -42 "椔幺" -43 "⑴侐柁" -44 "汃え斕柁" -45 "А蠣" -46 "頝踛痼蠣" -47 "籦⺪藞謥嶂冈..." -48 "伒隃冈衢逑玿”" -49 "齪А嵺眭\n昡ス”" +34 "從未" +35 "總是" +36 "無" +37 "陰影顯於外" +38 "陰影顯於內" +39 "蝕刻出" +40 "蝕刻入" +41 "可編輯的" +42 "唯讀" +43 "可見的" +44 "作用中的" +45 "字元" +46 "圖像單元" +47 "顏色選擇程式..." +48 "即現式功能表:" +49 "文字窗格\n物件:" $set 30 DTBMS_cgen_win $ ** Generated messages for 'cgen_win'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "謑雰ぇ蟟" +1 "碼產生器" 2 "/bin/cat" 3 "/bin/csh" -4 "藣罐嵺眭”" -5 "聤梏”" -6 " ﹛ " -7 "雰ぇ謑" +4 "輸出窗格:" +5 "路徑:" +6 "   " +7 "產生碼" 8 "Make" -9 "欹⺼" -10 "Build茧un" -11 "斕黫" -12 "ボ滮嵺眭”" -13 "麔淰" -14 "赮伢諰咭" -15 "藞禋" -16 "驨椲" -17 "謑雰ぇ蟟" -18 "蘄頨" -19 "睎泲ゝ鬊Б柁蹌藟齪ス﹞\n\n睎⑴髓鬊Б睎邴汃柁彶庍迖抻祤﹞" -20 "鬊Б" -21 "睎泲ゝ鬊Б柁蹌藟齪ス﹞\n\n睎⑴髓鬊Б邴汃柁彶庍迖\n髱瑊珆鬊Б柁麔淰斿ヾ雰ぇ謑﹞" -22 "雰ぇ鰹柁" +9 "執行" +10 "Build苧un" +11 "中斷" +12 "名詞窗格:" +13 "檔案" +14 "輔助說明" +15 "選項" +16 "關閉" +17 "碼產生器" +18 "環境" +19 "您有尚未儲存的編輯文件。\n\n您可以儲存您所作的更改或取消。" +20 "儲存" +21 "您有尚未儲存的編輯文件。\n\n您可以儲存所作的更改或\n對最近儲存的檔案版本產生碼。" +22 "產生舊的" 23 "\n" -24 "旂" -25 "匢" -26 "扽makefileБョ﹞\n\n睎衭唈ゥ纂堈蓇?\n\n" -27 "ョヾげ蠊斕柁Makefileʊ驗攜\n睎儸蟡蘋柁衶鋡﹞\n\n睎衭曚骱隃Б柁Makefile\n呥唈ゥ纂堈隞柁蓇?\n\n" -28 "皕ゝ" -29 "ヾ衶鋡柁⑴欹⺼麔呥攜Бョ﹞\n\n睎衭唈ゥ蓇?" -30 "唈ゥ" +24 "是" +25 "否" +26 "沒有makefile存在。\n\n您要建立一個嗎?\n\n" +27 "在本目錄中的Makefile似乎不\n您已載入的計劃。\n\n您要銷毀現存的Makefile\n並建立一個新的嗎?\n\n" +28 "從未" +29 "本計劃的可執行檔並不存在。\n\n您要建立嗎?" +30 "建立" $set 31 DTBMS_cgen_props $ ** Generated messages for 'cgen_props'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "謑雰ぇ蟟藞禋" -2 "衶鋡”" -3 " ﹛ " -4 "Make 鰱禨”" -5 "欹⺼渀睮鰱訒”" -6 "雰ぇ謑欄髱滽”" -7 "謑渀雰ぇ”" -8 "伒怮鶈え" -9 "适暋" -10 "抻祤" +1 "碼產生器選項" +2 "計劃:" +3 "   " +4 "Make 引數:" +5 "執行時間引述:" +6 "產生碼之對象:" +7 "碼何時產生:" +8 "即刻應用" +9 "重設" +10 "取消" 11 "Application Builder" -12 "扽篲嗢揧藞抻." -13 "薚泂" -14 "謽堈衶鋡" -15 "蒟饜篲嗢" -16 "蒟笱泂柁篲嗢" -17 "笱泂柁篲嗢縋饜篲嗢" -18 "睩夼琣柁媢桾" -19 "霘Е譖" -20 "霘檇⑺" -21 "霘臟ポ坰" +12 "沒有模組被選取." +13 "確定" +14 "整個計劃" +15 "僅有主模組" +16 "僅有特定的模組" +17 "特定的模組與主模組" +18 "報告正常的訊息" +19 "請安靜" +20 "請撈叨" +21 "請勿合併" $set 32 DTBMS_cgen_env $ ** Generated messages for 'cgen_env'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "蘄頨⻏殦" -2 "ボ磝”" -3 "禨圊”" -4 "抻痤" -5 "暋泂" -6 "抻祤" +1 "環境位置" +2 "名稱:" +3 "數值:" +4 "取得" +5 "設定" +6 "取消" $set 33 DTBMS_fchooser $ ** Generated messages for 'fchooser'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -3 "椵稌..." -4 "赮伢諰咭﹛ext..." -5 "虳葔" -6 " ﹛ -7 "茯葔" -8 "昡スボ磝”" -9 "々槉嵺”" -10 "髱緷簅纕”" -12 "媊沓昲鳷”" -13 "媊沓げ蠊”" -14 "銌硻夆鳷”" -15 "薚泂 挹耰簅圝”" -16 "伒隃⺼珜”" -17 "薚泂" -18 "伒怮鶈え" -19 "适暋" -20 "抻祤" -21 "赮伢諰咭" -22 "籦⺪”" -23 "銌硻" -24 "夆鳷麷伀”" -25 "⑴侐柁" -26 "麔淰" -27 "げ蠊" -28 "怚炟眙藞" -29 "隓" -30 "籦⺪藞謥嶂冈..." -31 "⺌棬箾葇" -32 "麔淰藞抻髱緷笱迒蹌藟蟟" -33 "麔淰藞抻\n髱緷昡ス”" +3 "連接..." +4 "輔助說明 ext..." +5 "前景" +6 "   +7 "背景" +8 "物件名稱:" +9 "母視窗:" +10 "對話標題:" +12 "起始狀態:" +13 "起始目錄:" +14 "搜尋形態:" +15 "確定 按鍵標籤:" +16 "即現行為:" +17 "確定" +18 "即刻應用" +19 "重設" +20 "取消" +21 "輔助說明" +22 "顏色:" +23 "搜尋" +24 "形態類別:" +25 "可見的" +26 "檔案" +27 "目錄" +28 "兩者皆選" +29 "無" +30 "顏色選擇程式..." +31 "自動解散" +32 "檔案選取對話特性編輯器" +33 "檔案選取\n對話物件:" $set 34 DTBMS_message_ed $ ** Generated messages for 'message_ed'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "媢桾蹌藟蟟" -2 "蠹蘋媢桾" -3 "伝崽媢桾" -4 "媢桾”" -5 "ボ磝”" -6 "髱緷渀睮”" -7 "蠡暋挹耰”" -8 "椵稌..." -9 "赮伢諰咭ヾ齪..." -10 "䬷ざ髱緷..." -11 "麷伀”" -12 "蠆諟媢桾”" -13 "抻祤”" -14 "赮伢諰咭”" -15 "棬汃1”" -16 "棬汃2”" -17 "适箹" -18 "伒怮鶈え" -19 "适暋" -20 "赮伢諰咭" +1 "訊息編輯器" +2 "加入訊息" +3 "刪除訊息" +4 "訊息:" +5 "名稱:" +6 "對話時間:" +7 "內設按鍵:" +8 "連接..." +9 "輔助說明本文..." +10 "顯示對話..." +11 "類別:" +12 "錯誤訊息:" +13 "取消:" +14 "輔助說明:" +15 "動作1:" +16 "動作2:" +17 "重試" +18 "即刻應用" +19 "重設" +20 "輔助說明" 21 "Application Builder" -22 "棬汃1挹耰揧挴泂椔\n蠡暋挹耰﹜ɪ怬呥ゝ揧挴泂珜\n蟡媢桾髱緷斕Бョ﹞" -23 "薚泂" -24 "棬汃2挹耰揧挴泂珜\n蠡暋挹耰﹜ɪ怬呥ゝ揧挴泂珜\n蟡媢桾髱緷斕Бョ﹞" -25 "抻祤挹耰揧挴泂珜\n蠡暋挹耰﹜ɪ怬呥ゝ揧挴泂珜\nБョ卼媢桾髱緷斕﹞" -26 "⽁禕髱棬汃丐挹耰藣蘋纂А⻌﹞" -27 "⽁禕髱棬汃不挹耰藣蘋纂А⻌﹞" -29 "棬汃1" -30 "棬汃2" -31 "抻祤" -32 "隓" +22 "動作1按鍵被指定唯\n內設按鍵,但其並未被指定為\n載訊息對話中存在。" +23 "確定" +24 "動作2按鍵被指定為\n內設按鍵,但其並未被指定為\n載訊息對話中存在。" +25 "取消按鍵被指定為\n內設按鍵,但其並未被指定為\n存在於訊息對話中。" +26 "必須對動作1按鍵輸入一字串。" +27 "必須對動作2按鍵輸入一字串。" +29 "動作1" +30 "動作2" +31 "取消" +32 "無" 33 " " -34 "棬汃中挹耰揧挴泂珜\n蠡暋挹耰﹜ɪ怬呥ゝ揧挴泂珜\n蟡媢桾髱緷斕Бョ﹞" -35 "⽁禕髱棬汃中挹耰藣蘋纂А⻌﹞" -36 "伒怮鶈え邴汃柁彶庍﹞" -37 "扽挹耰揧挴泂Бョ卼\n媢桾髱緷斕﹞ ⽁禕⺍韁\n纂堈挹耰蟡媢桾斕﹞" -38 "扽篲嗢" -39 "棬汃3" -40 "棬汃3”" +34 "動作3按鍵被指定為\n內設按鍵,但其並未被指定為\n載訊息對話中存在。" +35 "必須對動作3按鍵輸入一字串。" +36 "即刻應用所作的更改。" +37 "沒有按鍵被指定存在於\n訊息對話中。 必須至少有\n一個按鍵載訊息中。" +38 "沒有模組" +39 "動作3" +40 "動作3:" $set 35 DTBMS_panedwin_ed $ ** Generated messages for 'panedwin_ed'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "嵺眭冈槉嵺蹌藟蟟" -3 "赮伢諰咭ヾ齪..." -4 "椵稌..." -5 "昡スボ磝”" -6 "嵺眭崼唄”" -7 "瑊麵圊”" -8 "瑊騰圊”" -9 "嵺眭”" -10 "W”" -11 "H”" -12 "嵺眭稢”" -13 "薚泂" -14 "伒怮鶈え" -15 "适暋" -16 "抻祤" -17 "赮伢諰咭" +1 "窗格式視窗編輯器" +3 "輔助說明本文..." +4 "連接..." +5 "物件名稱:" +6 "窗格高度:" +7 "最小值:" +8 "最大值:" +9 "窗格:" +10 "W:" +11 "H:" +12 "窗格幾何:" +13 "確定" +14 "即刻應用" +15 "重設" +16 "取消" +17 "輔助說明" 18 "Application Builder" -19 "嵺眭冈槉嵺柁騵槉嵺攜フ柁\n峏眃㪫昡﹞ 嵺眭冈槉嵺柁峏\n眃㪫昡旂暋珜縋瑊⑶柁騵槉嵺\n柁眃㪫昡砨フ﹞蚍嵺眭冈槉嵺柁峏\n眃㪫昡呥攜旂邴衭柁﹜睎⑴髓囷え\n眃㪫昡蹌藟蟟坭埏⼓﹞" -20 "嵺眭冈槉嵺柁騵槉嵺攜フ柁\n⻆眃㪫昡﹞ 嵺眭冈槉嵺柁⻆\n眃㪫昡旂暋珜縋瑊⑶柁騵槉嵺\n柁眃㪫昡砨フ﹞蚍嵺眭冈槉嵺柁⻆\n眃㪫昡呥攜旂邴衭柁﹜睎⑴髓囷え\n眃㪫昡蹌藟蟟坭埏⼓﹞" -21 "嵺眭冈槉嵺\n昡ス”" +19 "窗格式視窗的子視窗有不同的\n東附屬物。 窗格式視窗的東\n附屬物是設為與最右的子視窗\n的附屬物相同。若窗格式視窗的東\n附屬物並不是所要的,您可以使用\n附屬物編輯器來修正它。" +20 "窗格式視窗的子視窗有不同的\n西附屬物。 窗格式視窗的西\n附屬物是設為與最右的子視窗\n的附屬物相同。若窗格式視窗的西\n附屬物並不是所要的,您可以使用\n附屬物編輯器來修正它。" +21 "窗格式視窗\n物件:" $set 36 DTBMS_about_box $ ** Generated messages for 'about_box'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -2 "凭㶴..." -14 "驨卼Application Builder" -15 "⺌衲髱緷" -16 "斿ヾ0.9" -17 "斿ḷ (c) 1993, 1994”" +2 "繼續..." +14 "關於Application Builder" +15 "自訂對話" +16 "版本0.9" +17 "版權 (c) 1993, 1994:" 18 "Application Builder" -19 "穔ヾ骳惉帣" -20 "丐云云丰龰丐丑攫" +19 "樣本實做板" +20 "1994年10月" 21 "Hewlett-Packard Company" 22 "International Business Machines Corp." 23 "Novell, Inc." 24 "Sun Microsystems, Inc." 25 "dtbuilder" -26 "驨椲" -27 "ヾ鶈え嶂冈柁菙坯炟珜”" +26 "關閉" +27 "本應用程式的提供者為:" $set 100 Dynamically created message dialog text -1 "隓恄鰱蘋篲嗢 %s" -2 "岊攜怉麔淰” %s" -3 "麔淰\"%s\" Бョ\n靨旂椔幺麔﹞睎⑴髓渿睎柁\n齡汃髓攜フ柁麔淰ボ磝鬊Б﹞" -4 "麔淰\"%s\"Бョ﹞ 睎⑴髓”" -5 "衶鋡 %s旂⺌鯦醷麔(%s)蟡蘋﹞\n⼓鞂揧鬊Б珜琣柁衶鋡﹜怀堈篲嗢纂堈衶鋡﹞" -6 "%s攜旂篎篲嗢柁椔纂ボ磝﹞" -7 "%s旂纂堈椔幺麔淰﹞" -8 "麔淰%s攜Бョ﹞" -9 "%s扽幺抻暐⑴ḷ﹞" -10 "麔淰%s旂纂堈椔幺麔淰﹞\n隓恄鬊Б蹌藟﹞" -11 "ヾ槉嵺儸衢逑犓﹞" -12 "鬊Б棷⽁禕揧泂⻏ョ\n饜槉嵺迖⺌衲髱緷譫﹞" -13 "嵺眭⽁禕揧泂⻏ョ饜槉嵺﹜\n⺌衲髱緷﹜迖ⅱ纂嵺眭譫﹞" -14 "祰戔⽁禕揧泂⻏ョ\n祰戔嵺眭迖漦蚼譫﹞" -15 "衢逑犓⽁禕揧泂⻏ョ饜槉嵺譫﹞" -16 "⻏欄柁昡ス麷伀﹞﹞" -17 "麔淰%s旂纂堈椔幺麔淰﹞\n睎⑴髓瞅絒衶鋡\n迖抻祤汃鞄﹞" -18 "%s攜旂淩柁衶鋡麔淰﹞" -19 "隓恄瞅絒%s." -20 "%s扽幺抻暐⑴ḷ﹞" -21 "麔淰%s旂纂堈椔幺麔淰﹞\n睎⑴髓鰱蘋篲嗢迖\n抻祤汃鞄﹞" -22 "%s攜旂ポ恄柁篲嗢麔淰﹞" -23 "%s”ョ蘋藹洠柁衶鋡麔淰﹞" -24 "攜逑渿饜槉嵺䔝舅漜ョ饜槉嵺譫﹞" -25 "攜逑渿饜槉嵺䔝舅漜ョ髱緷譫﹞" -26 "攜逑渿髱緷䔝舅漜ョ髱緷譫﹞" -27 "藞抻柁槉嵺儸衢逑犓﹞" -28 "鬊Б棷⽁禕揧䔝舅漜ョ\n饜槉嵺迖⺌衲髱緷譫﹞" -29 "嵺眭⽁禕揧䔝舅漜ョ\n饜槉嵺﹜⺌衲髱緷迖鬊Б棷譫﹞" -30 "祰戔⽁禕揧䔝舅漜ョ\n祰戔嵺眭迖漦蚼譫﹞" -31 "\"%s\"柁赮伢諰咭汃鞄\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓髱\"%s\"伒怮鶈え邴惉柁彶庍\n迖抻祤蟡蘋汃鞄﹞." -32 "\"%s\"柁赮伢諰咭汃鞄\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓伒怮鶈え邴惉柁彶庍\n迖抻祤驨椲汃鞄﹞." -33 "\"%s\"柁赮伢諰咭汃鞄\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓伒怮鶈え邴惉柁彶庍\n迖抻祤彶庍昡ス麷伀汃鞄﹞." -34 "\"%s\"柁赮伢諰咭汃鞄\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓伒怮鶈え邴惉柁彶庍\n迖抻祤彶庍昡ス麷伀汃鞄﹞." -35 "\"%s\"柁赮伢諰咭汃鞄\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓伒怮鶈え邴惉柁彶庍\n迖抻祤驨椲汃鞄﹞." -36 "\"%s\"柁赮伢諰咭汃鞄\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓髱\"%s\"伒怮鶈え邴惉柁彶庍\n迖抻祤蟡蘋汃鞄﹞." -37 "衢逑犓蒟逑揧䔝舅漜ョ饜槉嵺譫﹞" -38 "譯ト篲嗢旂椔幺柁﹞\n蚍睎蹌藟楙咍篲嗢﹜\n睎渿隓恄鬊Б睎柁蹌藟﹞" -39 "\"%s\"柁赮伢諰咭汃鞄\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓伒怮鶈え邴惉柁彶庍\n迖抻祤蠹蘋媢桾汃鞄﹞." +1 "無法引入模組 %s" +2 "找不到檔案: %s" +3 "檔案\"%s\" 存在\n且是唯讀檔。您可以將您的\n工作以不同的檔案名稱儲存。" +4 "檔案\"%s\"存在。 您可以:" +5 "計劃 %s是自壓縮檔(%s)載入。\n它會被儲存為正常的計劃,每個模組一個計劃。" +6 "%s不是該模組的唯一名稱。" +7 "%s是一個唯讀檔案。" +8 "檔案%s不存在。" +9 "%s沒有讀取許可權。" +10 "檔案%s是一個唯讀檔案。\n無法儲存編輯。" +11 "本視窗已有功能軸。" +12 "儲存區必須被定位在\n主視窗或自訂對話上。" +13 "窗格必須被定位在主視窗,\n自訂對話,或另一窗格上。" +14 "控制必須被定位在\n控制窗格或群祖上。" +15 "功能軸必須被定位在主視窗上。" +16 "位之的物件類別。。" +17 "檔案%s是一個唯讀檔案。\n您可以開啟計劃\n或取消作業。" +18 "%s不是有效的計劃檔案。" +19 "無法開啟%s." +20 "%s沒有讀取許可權。" +21 "檔案%s是一個唯讀檔案。\n您可以引入模組或\n取消作業。" +22 "%s不是合法的模組檔案。" +23 "%s:在入了空的計劃檔案。" +24 "不能將主視窗粘貼在主視窗上。" +25 "不能將主視窗粘貼在對話上。" +26 "不能將對話粘貼在對話上。" +27 "選取的視窗已有功能軸。" +28 "儲存區必須被粘貼在\n主視窗或自訂對話上。" +29 "窗格必須被粘貼在\n主視窗,自訂對話或儲存區上。" +30 "控制必須被粘貼在\n控制窗格或群祖上。" +31 "\"%s\"的輔助說明作業\n已被修改但未被即刻應用。\n\n您可以對\"%s\"即刻應用所做的更改\n或取消載入作業。." +32 "\"%s\"的輔助說明作業\n已被修改但未被即刻應用。\n\n您可以即刻應用所做的更改\n或取消關閉作業。." +33 "\"%s\"的輔助說明作業\n已被修改但未被即刻應用。\n\n您可以即刻應用所做的更改\n或取消更改物件類別作業。." +34 "\"%s\"的輔助說明作業\n已被修改但未被即刻應用。\n\n您可以即刻應用所做的更改\n或取消更改物件類別作業。." +35 "\"%s\"的輔助說明作業\n已被修改但未被即刻應用。\n\n您可以即刻應用所做的更改\n或取消關閉作業。." +36 "\"%s\"的輔助說明作業\n已被修改但未被即刻應用。\n\n您可以對\"%s\"即刻應用所做的更改\n或取消載入作業。." +37 "功能軸僅能被粘貼在主視窗上。" +38 "下列模組是唯讀的。\n若您編輯這些模組,\n您將無法儲存您的編輯。" +39 "\"%s\"的輔助說明作業\n已被修改但未被即刻應用。\n\n您可以即刻應用所做的更改\n或取消加入訊息作業。." 40 "Application Builder" -41 "霘髱隞篲嗢耰蘋纂ボ磝﹞ 淩柁ボ磝\n⑴かА々﹜譯簅(_)﹜縋禨А邴嗢﹜\n隑゛篎ボ磝⽁禕かА々迖\n譯簅瞅沓﹞" -42 "霘髱隞衶鋡耰蘋纂ボ磝﹞ 淩柁ボ磝\n⑴かА々﹜譯簅(_)﹜縋禨А邴嗢﹜\n隑゛篎ボ磝⽁禕かА々迖\n譯簅瞅沓﹞" -43 "\"%s\"柁眃㪫昡\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓髱\"%s\"伒怮鶈え邴惉柁彶庍\n迖抻祤蟡蘋汃鞄﹞." -44 "\"%s\"柁眃㪫昡\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓髱\"%s\"伒怮鶈え邴惉柁彶庍\n迖抻祤彶庍昡ス麷伀汃鞄﹞." -45 "\"%s\"柁眃㪫昡\n儸揧埏庍ɪゝ揧伒怮鶈え﹞\n\n睎⑴髓髱\"%s\"伒怮鶈え邴惉柁彶庍\n迖抻祤驨椲汃鞄﹞." -46 "鰱蘋眭冈”" +41 "請對新模組鍵入一名稱。 有效的名稱\n可由字母,下標(_),與數字所組成,\n然而該名稱必須由字母或\n下標開始。" +42 "請對新計劃鍵入一名稱。 有效的名稱\n可由字母,下標(_),與數字所組成,\n然而該名稱必須由字母或\n下標開始。" +43 "\"%s\"的附屬物\n已被修改但未被即刻應用。\n\n您可以對\"%s\"即刻應用所做的更改\n或取消載入作業。." +44 "\"%s\"的附屬物\n已被修改但未被即刻應用。\n\n您可以對\"%s\"即刻應用所做的更改\n或取消更改物件類別作業。." +45 "\"%s\"的附屬物\n已被修改但未被即刻應用。\n\n您可以對\"%s\"即刻應用所做的更改\n或取消關閉作業。." +46 "引入格式:" 47 "BIL" 48 "UIL" -49 "髓鰱蘋”" -50 "闀蕍" -51 "棤℡罶涷" -52 "睎柁聤梏扽讓屼杬麟%s.\n珜藹Б抻篎杬麟﹜宎⑴髓渿楙堈げ蠊\n蠹蘋睎柁聤梏斕蓇?”\n\n%s\n" -53 "麔淰\"%s\" Бョ靨旂纂堈\n椔幺麔﹞蚍衭鬊Б揧鯦醷柁麔淰﹜\n睎⽁禕渿怬髓攜フ柁麔淰ボ磝鬊Б﹞" -54 "鰱禨”" -55 "怐禨”" -56 "謑”" -57 "漦嗢⽁禕揧痧漜ョ\n漦嗢迖祰戔郖帣譫﹞" +49 "以何引入:" +50 "複製" +51 "參考資料" +52 "您的路徑沒有包含命令%s.\n為了存取該命令,我可以將這個目錄\n加入您的路徑中嗎?:\n\n%s\n" +53 "檔案\"%s\" 存在且是一個\n唯讀檔。若要儲存被壓縮的檔案,\n您必須將其以不同的檔案名稱儲存。" +54 "引數:" +55 "函數:" +56 "碼:" +57 "群組必須被張貼在\n群組或控制面板上。" $set 101 DTBMS_dnd_ed $ ** Generated messages for 'dnd_ed'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "侹呥泂⻏蹌藟蟟" -2 "昡ス”" -3 "昡ス麷伀”" -4 "** 昡ス麷伀 **" -5 "侹椵稌..." -6 "泂⻏椵稌..." -7 "侹汃鞄”" -8 "闀蕍" -9 "傶棬" -10 "椵廎" -12 "罶涷麷伀”" -13 "ヾ齪" -15 "麔淰ボ磝" -18 "泂氂柁囷え炟" -19 "泂⻏汃鞄”" -20 "ズ怬鱗柁麷伀" -21 "泂⻏ョ騵嶂囥譫”" +1 "拖曳並定位編輯器" +2 "物件:" +3 "物件類別:" +4 "** 物件類別 **" +5 "拖曳連接..." +6 "定位連接..." +7 "拖曳作業:" +8 "複製" +9 "移動" +10 "連結" +12 "資料類別:" +13 "本文" +15 "檔案名稱" +18 "定義的使用者" +19 "定位作業:" +20 "任何其他的類別" +21 "定位在子程序上:" 22 " " -23 "薚泂" -24 "伒怮鶈え" -25 "适暋" -26 "抻祤" -27 "赮伢諰咭" -28 "酮簅麔淰ボ磝”" -29 "酮簅懪氁麔淰ボ磝”" +23 "確定" +24 "即刻應用" +25 "重設" +26 "取消" +27 "輔助說明" +28 "游標檔案名稱:" +29 "游標遮罩檔案名稱:" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtcalc.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtcalc.msg index 81b037cb5..2e75067b9 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtcalc.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtcalc.msg @@ -68,31 +68,31 @@ $ Messages 1 - 4 are used by the "numeric base" option button. Bin is $ short for Binary, Oct is short for Octal, Dec is short for Decimal and $ Hex is short for Hexidecimal. Keep these to 3 to 4 characters! $ -1 蘑瑱⻏ -2 蘇瑱⻏ -3 觸瑱⻏ -4 觸蠟瑱⻏ +1 二進位 +2 八進位 +3 十進位 +4 十六進位 $ $ Messages 5 - 7 are used by the "display mode" option button. Eng is an $ abbreviation for Engineering, Fix is an abbreviation for Fixed, and $ Sci is an abbreviation for Scientific. Keep these to 3 characters. $ -5 齡嶂冈 -6 枒泂冈 -7 秠蟨冈 +5 工程式 +6 固定式 +7 科學式 $ $ NOTE: no message 8 $ $ Messages 9 - 11 refer to the three modes the Calculator can operate in. $ They are listed in the "Mode" option button. $ -9 娷棜篲冈 -10 敭藟篲冈 -11 秠蟨篲冈 +9 財務模式 +10 邏輯模式 +11 科學模式 $ $ Message 12 - This is the title to the Calculator. $ -12 衶磭鞥 +12 計算機 $ $ Messages 13 - 30 are the labels in the menubar pulldown menus and the $ mnemonic's (the letter that gets underlined for keyboard access) that @@ -101,73 +101,73 @@ $ $ Message 13 is the mnemonic for Message 14 $ 13 O -14 藞禋(O) -15 奡襉穛Б蟟(R) -16 ASCII 鼲葎(A) +14 選項(O) +15 記憶暫存器(R) +16 ASCII 轉換(A) $ $ Message 17 is the mnemonic for Message 18 $ 17 H -18 赮伢諰咭(H) +18 輔助說明(H) $ $ Message 19 is the mnemonic for Message 20 $ 19 v -20 颮羏(v) +20 概觀(v) $ $ Message 21 is the mnemonic for Message 22 $ 21 T -22 齡汃(T) +22 工作(T) $ $ Message 23 is the mnemonic for Message 24 $ 23 R -24 棤℡罶涷(R) +24 參考資料(R) $ $ Message 25 is the mnemonic for Message 26 $ 25 O -26 驨卼禋げ(O) +26 關於項目(O) $ $ Message 27 is the mnemonic for Message 28 $ 27 U -28 囷え赮伢諰咭(U) +28 使用輔助說明(U) $ $ Message 29 is the mnemonic for Message 30 $ 29 A -30 驨卼衶磭鞥(A) +30 關於計算機(A) $ $ Message 31 is an simple error message. $ -31 隓恄瞅絒䬷ざ蟟﹞\n +31 無法開啟顯示器。\n $ $ Messages 32 and 33 are button labels for dialog boxes. $ -32 驨椲 -33 伒怮鶈え +32 關閉 +33 即刻應用 $ $ Message 34 is an simple error message. $ -34 隓恄瞅絒瞃栠汃鞄麔淰 +34 無法開啟階段作業檔案 $ $ Message 35 - Gets put in the "Functions" popup when no functions have been $ defined by the users. $ -35 ゝ泂氂怐禨 +35 未定義函數 $ $ Message 36 and 37 are titles to two types of dialogs. $ -36 凭㶴謦汃楈夼 -37 薚諝楈夼 +36 繼續操作通告 +37 確認通告 $ $ Message 38 and 39 are another label for the Help pulldown menu. $ Message 38 is the mnemonic for Message 39 $ 38 C -39 蠡晥玿眭(C) +39 內容表格(C) $ $ 40 - This is the mnemonic for the 'Memory Registers...' option on $ the Option menu pulldown. (message 15 set 2) @@ -201,12 +201,12 @@ $ $ $ 46 - This is the title for the popup menu. $ -46 伒怮䬷ざ衶磭鞥 +46 即刻顯示計算機 $ $ Used as the title, In Asian languages labels need to be different $ from the menu label. $ -47 赮伢諰咭 +47 輔助說明 $ $set 3 $ ****** Module: text.c ****(developer comment only)******** @@ -215,29 +215,29 @@ $ NOTE: there is no Message 1 - 4. $ $ Messages 5-47 are what gets displayed on each of the calculator keys. $ -5 怐禨 -6 琣禨 -7 挹耰 +5 函數 +6 常數 +7 按鍵 $ $ Message 8 - Int is short for integer. $ -8 謽禨 +8 整數 $ $ Message 9 - Frac is short for fraction. $ -9 麵禨 +9 小數 $ $ Message 10 - Abs is short for absolute value. $ -10 廕髱圊 +10 絕對值 $ $ Message 11 - Exp is short for exponent. $ -11 挴禨 -12 窵薚圊 -13 鬊Б -14 痻ャ -15 ガ葎 +11 指數 +12 精確值 +13 儲存 +14 喚回 +15 交換 16 1/x 17 x^2 18 % @@ -292,19 +292,19 @@ $ key. These are the keyboard keys which provide the given function. These are $ also known as keyboard accelerators. These keys directly correspond to $ Messages 5-47. (i.e 5 maps to 52, 6 maps to 53, etc.). $ -52 F - 怐禨 -53 # - 琣禨 -54 k - 挹耰 -55 I - 謽禨 +52 F - 函數 +53 # - 常數 +54 k - 按鍵 +55 I - 整數 $ Message 56 is "Control f" -56 ^f - 麵禨 +56 ^f - 小數 $ Message 57 is "Control u" -57 ^u 廕髱圊 -58 E - 挴禨 -59 A - 窵薚圊 -60 S - 鬊Б -61 R - 痻ャ -62 X - ガ葎 +57 ^u 絕對值 +58 E - 指數 +59 A - 精確值 +60 S - 儲存 +61 R - 喚回 +62 X - 交換 63 r - 1/x 64 @ - x^2 65 % @@ -342,7 +342,7 @@ $ 91 0 92 . 93 = -94 q - 廎忒 +94 q - 結束 $ Messages 95-98 are keyboard acclerators for Messages 48-51 95 B 96 D @@ -353,46 +353,46 @@ $ NOTE: Messages 99 - 106 aren't used. $ $ Messages 107-118 are dialog/popup titles. $ -107 窵薚圊 -108 禨圊椕禨 -109 琣禨 -110 ガ葎 -111 怐禨 -113 篲冈 -114 䬷ざ麷伀 -115 抻ャ -116 ⑶傶 -117 鬊Б -118 警侜怐禨倛鳷 +107 精確值 +108 數值基數 +109 常數 +110 交換 +111 函數 +113 模式 +114 顯示類別 +115 取回 +116 右移 +117 儲存 +118 三角函數型態 $ $ Messages 119-128 are the messages describing the Constants listed when the $ Constant popup is brought up. NOTE: don't translate <=> $ -119 襬咑/麵渀 <=> 蚆婗/麵渀﹞ -120 2 柁⼳巖淂﹞ -121 e﹞ -122 pi﹞ -123 襬禳 <=> 蚆ベ﹞ -124 芧唄﹞ -125 2 ^ 20﹞ -126 襬优 <=> 翊⑼﹞ -127 霰閛⺀ <=> 蚆戔逑畽痼⻏(BTU)﹞ -128 ゥ巖襬禳 <=> ゥ巖蚆ベ﹞ +119 公里/小時 <=> 英哩/小時。 +120 2 的平方根。 +121 e。 +122 pi。 +123 公分 <=> 英吋。 +124 弧度。 +125 2 ^ 20。 +126 公克 <=> 盎司。 +127 千焦耳 <=> 英制能量單位(BTU)。 +128 立方公分 <=> 立方英吋。 $ $ Messages 132-143 are labels in the dialogs. $ -132 琣禨蹌磍” -133 怐禨蹌磍” -134 衶磭鞥 -135 隞琣禨 -136 隞怐禨 -137 奡襉穛Б蟟 -138 娷棜穛Б蟟(g) -139 衶磭鞥笱迒 -140 絩訒” -141 禨圊” -142 耰蘋琣禨(C) -143 耰蘋怐禨(F) +132 常數編號: +133 函數編號: +134 計算機 +135 新常數 +136 新函數 +137 記憶暫存器 +138 財務暫存器(g) +139 計算機特性 +140 敘述: +141 數值: +142 鍵入常數(C) +143 鍵入函數(F) $ $ NOTE: Message 144 - 147 aren't used. $ @@ -406,105 +406,105 @@ $ word "Constant" and %1d is a number 0-9. This message gets put in a $ dialog when the user defines a new Function or Constant that already $ exists and the dialog asks the user wheither to overwrite it. (Message 380) $ -149 %s %1d 儸槴Бョ +149 %s %1d 已經存在 $ $ Messages 153-162 are in the accuracy popup menu for the level of accuracy. $ -153 0 ⻏窵薚禨А -154 1 ⻏窵薚禨А -155 2 ⻏窵薚禨А -156 3 ⻏窵薚禨А -157 4 ⻏窵薚禨А -158 5 ⻏窵薚禨А -159 6 ⻏窵薚禨А -160 7 ⻏窵薚禨А -161 8 ⻏窵薚禨А -162 9 ⻏窵薚禨А +153 0 位精確數字 +154 1 位精確數字 +155 2 位精確數字 +156 3 位精確數字 +157 4 位精確數字 +158 5 位精確數字 +159 6 位精確數字 +160 7 位精確數字 +161 8 位精確數字 +162 9 位精確數字 $ $ Messages 163-172 are in the Sto, Rcl, Exch popup menu's listing the registers. $ -163 穛Б蟟 0 -164 穛Б蟟 1 -165 穛Б蟟 2 -166 穛Б蟟 3 -167 穛Б蟟 4 -168 穛Б蟟 5 -169 穛Б蟟 6 -170 穛Б蟟 7 -171 穛Б蟟 8 -172 穛Б蟟 9 +163 暫存器 0 +164 暫存器 1 +165 暫存器 2 +166 暫存器 3 +167 暫存器 4 +168 暫存器 5 +169 暫存器 6 +170 暫存器 7 +171 暫存器 8 +172 暫存器 9 $ $ Messages 188-191 are the numeric base types of operation. $ -188 蘑瑱⻏ -189 蘇瑱⻏ -190 觸瑱⻏ -191 觸蠟瑱⻏ +188 二進位 +189 八進位 +190 十進位 +191 十六進位 $ $ Messages 192-194 are the display types. $ -192 齡嶂冈 -193 枒泂冈 -194 秠蟨冈 +192 工程式 +193 固定式 +194 科學式 $ $ Messages 195-197 are the trig. types. $ -195 唄 -196 侜唄 -197 芧唄 +195 度 +196 角度 +197 弧度 $ $ Messages 198-201 are the modes of operation of the calculator. $ -198 椕ヾ篲冈 -199 娷棜篲冈 -200 敭藟篲冈 -201 秠蟨篲冈 +198 基本模式 +199 財務模式 +200 邏輯模式 +201 科學模式 $ $ Messages 203-207 are the labels in the Financial Registers dialog. $ -203 蛺禨: -204 龰伈跅 %: -205 隃圊: -206 蛺體畇籧: -207 嗈圊: +203 期數: +204 年利率 %: +205 現值: +206 期付金額: +207 終值: $ $ Messages 208-217 are the button labels of the financial portion of the $ Calculator when it is in Financial mode. $ -208 蛺禨(Term) -209 龰伈跅,%(i%Yr) +208 期數(Term) +209 年利率,%(i%Yr) $ $ Message 210 - Pv stands for Present Value. $ -210 隃圊(Pv) +210 現值(Pv) $ $ Message 211 - Pmt stands for Payment $ -211 蛺體畇籧(Pmt) +211 期付金額(Pmt) $ $ Message 212 - Fv stands for Future Value. $ -212 嗈圊(Fv) +212 終值(Fv) $ $ Message 213 means clear financial registers $ -213 覗崽娷棜穛Б蟟 +213 清除財務暫存器 $ $ Message 214 means Compounding term $ -214 闀伈蛺禨(Ctrm) +214 複利期數(Ctrm) $ $ Message 215 means double-declining depreciation $ -215 灛唲蠹楬帊鰹恄(Ddb) +215 雙倍加速折舊法(Ddb) $ $ Message 216 means Straight-line depreciation $ -216 枺轃帊鰹恄(Sln) +216 直線折舊法(Sln) $ $ Message 217 means Sum-of-the-years-digits depreciation $ -217 龰禨ポ衶帊鰹恄(Syd) +217 年數合計折舊法(Syd) $ $ Messages 218-226 are the button labels of the logical portion of the $ Calculator when it is in Logical mode. @@ -574,21 +574,21 @@ $ Messages 239-248 are the button labels of the financial portion of the $ Calculator when it is in Financial mode when in "keys" mode. (i.e. button $ acclerators). $ -239 T - 蛺禨(Term) +239 T - 期數(Term) $ Message 240 is 'Control r' -240 ^r - 龰伈跅,%(i%Yr) -241 p - 隃圊(Pv) -242 P - 蛺體畇籧(Pmt) -243 v - 嗈圊(Fv) -244 L - 覗崽娷棜穛Б蟟 +240 ^r - 年利率,%(i%Yr) +241 p - 現值(Pv) +242 P - 期付金額(Pmt) +243 v - 終值(Fv) +244 L - 清除財務暫存器 $ Message 245 is 'Control t' -245 ^t - 闀伈蛺禨(Ctrm) +245 ^t - 複利期數(Ctrm) $ Message 246 is 'Control d' -246 ^d - 灛唲蠹楬帊鰹恄(Ddb) +246 ^d - 雙倍加速折舊法(Ddb) $ Message 247 is 'Control s' -247 ^s - 枺轃帊鰹恄(Sln) +247 ^s - 直線折舊法(Sln) $ Message 248 is 'Control y' -248 ^y - 龰禨ポ衶帊鰹恄(Syd) +248 ^y - 年數合計折舊法(Syd) $ $ Messages 249-257 are the button labels of the logical portion of the $ Calculator when it is in Logical mode when in "keys" mode. (i.e. button @@ -626,9 +626,9 @@ $ Message 266 is 'Control t' $ $ Messages 270-272 are capitalized versions of the calculator MODES. $ -270 娷棜篲冈 -271 敭藟篲冈 -272 秠蟨篲冈 +270 財務模式 +271 邏輯模式 +272 科學模式 $ $ Messages 273-336 are error messages which will go into $HOME/.errorlog. They $ are all math errors. Localization of these are optional. @@ -698,61 +698,61 @@ $ $ Messages 337-343 are error messages from the command line options. $ They also will only show up in the errorlog. $ -337 衶磭鞥” -a 錛衭 0-9 欄窵薚圊﹞\n +337 計算機: -a 需要 0-9 之精確值。\n $ $ Message 338 only goes to the errorlog file $ -338 衶磭鞥” 窵薚圊鶈ョ 0-9 欄謓睕蠡\n窵薚唄渿暋珜蠡暋圊” 2﹞\n -339 衶磭鞥” 椕禨鶈珜蘑瑱⻏﹜蘇瑱⻏﹜觸瑱⻏迖觸蠟瑱⻏﹞\n椕禨渿暋珜蠡暋圊”觸瑱⻏﹞\n +338 計算機: 精確值應在 0-9 之範圍內\n精確度將設為內設值: 2。\n +339 計算機: 基數應為二進位,八進位,十進位或十六進位。\n基數將設為內設值:十進位。\n $ $ Message 340 - %s is the invalid display mode the user supplied. $ This goes to $HOME/.dt/errorlog only. $ -340 衶磭鞥”䬷ざ篲冈 [%s] 攜髱\n +340 計算機:顯示模式 [%s] 不對\n $ $ Message 341 - %s is the invalid mode the user supplied. $ This goes to $HOME/.dt/errorlog only. $ -341 衶磭鞥”篲冈 [%s] 攜髱\n篲冈渿暋泂蠡泂圊”秠蟨篲冈\n +341 計算機:模式 [%s] 不對\n模式將設定成內定值:科學模式\n $ $ Message 342 - %s is the invalid trig. mode the user supplied. $ This goes to $HOME/.dt/errorlog only. $ -342 衶磭鞥”警侜怐禨篲冈 [%s] 攜髱﹞\n -343 衶磭鞥”瞃栠麔淰攜髱﹞\n +342 計算機:三角函數模式 [%s] 不對。\n +343 計算機:階段檔案不對。\n $ $ NOTE: no Messages 344 through 350 $ $ Message 351 is a label in the ASCII convert dialog. $ -351 А蠣” +351 字元: $ $ Message 352 is the title of the ASCII convert dialog. $ -352 抻痤 ASCII А謑 +352 取得 ASCII 字碼 $ $ Messages 353-355 are the Trigonometric types (abbreviations). $ -353 唄 -354 侜唄 -355 芧唄 +353 度 +354 角度 +355 弧度 $ $ Messages 356-358 are the usage messages. $ Don't translate dtcalc, -a, -m, -b, -no_menu_bar -? -notation -trig or $ -session. $ -356 衶磭鞥 (dtcalc) 斿ヾ丐﹞%1d\n\n -357 え恄”dtcalc [-a accuracy] [-m mode] [-b base] [-no_menu_bar] [-?]\n +356 計算機 (dtcalc) 版本1。%1d\n\n +357 用法:dtcalc [-a accuracy] [-m mode] [-b base] [-no_menu_bar] [-?]\n 358 \t [-notation display_notation] [-trig trignometric_type] [-session session_file]\n $ $ Messages 359 and 360 not used $ $ Messages 361 - 363 are button labels $ -361 抻祤 -362 薚諝 -363 凭㶴 -364 蠆諟 +361 取消 +362 確認 +363 繼續 +364 錯誤 $ $ Message 365 - 369 not used $ @@ -763,27 +763,27 @@ $ 370 CLR 371 HYP 372 INV -373 琣禨圊攜髱﹞ -374 琣禨蹌磍攜髱﹞ -375 怐禨蹌磍攜髱﹞ +373 常數值不對。 +374 常數編號不對。 +375 函數編號不對。 $ $ Message 376 not used. $ -377 琣禨ゝ庍䨣﹞ -378 禨圊椆巗蠆諟﹞ -379 蝒磭蠣椆巗蠆諟﹞ -380 薚泂衭适嬣蓇? -381 ⽁禕ョ 0-9 柁謓睕蠡﹞ +377 常數未改變。 +378 數值堆疊錯誤。 +379 運算元堆疊錯誤。 +380 確定要重寫嗎? +381 必須在 0-9 的範圍內。 $ $ Message 382 not used. $ -383 琣禨 -384 怐禨 -385 隓恄鬊Б蠡泂圊﹞\n +383 常數 +384 函數 +385 無法儲存內定值。\n $ $ NOTE: Messages 386 - 402 are not used. $ -403 廎忒(x) +403 結束(x) $ $ Messages 452-478 are the actual characters that the keyboard accelerators $ map to. These are the keyboard keys which provide the given function. @@ -1052,7 +1052,7 @@ $ $ added now capability to Financial regs: change the payment per year $ The following messages (514 - 517) refect this new button. $ -514 體遄畇籧/龰: +514 付款金額/年: 515 P/YR 516 y - P/YR 517 y @@ -1060,26 +1060,26 @@ $ $ Used as the title, In Asian languages the dialog title needs to be different $ from the menu label. $ -518 娷棜穛Б蟟 +518 財務暫存器 $ $set 4 $ ****** Module: help.c ****(developer comment only)******** $ Message 1 is the title for the calculator help dialogs. -1 衶磭鞥--赮伢諰咭 -2 睎⽁禕ョ"衶磭鞥"斕藞謥纂堈禋げ﹞ -3 蠆諟 -4 薚泂 +1 計算機--輔助說明 +2 您必須在"計算機"中選擇一個項目。 +3 錯誤 +4 確定 $set 5 $ ****** Module: functions.c ****(developer comment only)******** $ -1 蠆諟”衶磭⼇絫 -2 蠆諟”隓箾 -3 蠆諟”ロ适箾 -4 蠆諟”Term<= 0 -5 蠆諟”痼瑢蛺圊攜髱 -6 蠆諟”禨げ霽騰 -7 隓恄髓盻誻欄伈跅﹜\n盻誻欄隃圊﹜\n縋盻誻欄嗈圊\n衶磭 "闀伈蛺禨"﹞\n +1 錯誤:計算失敗 +2 錯誤:無解 +3 錯誤:多重解 +4 錯誤:Term<= 0 +5 錯誤:單週期值不對 +6 錯誤:數目太大 +7 無法以非零之利率,\n非零之現值,\n與非零之終值\n計算 "複利期數"。\n $set 99 $ ****** Version Information ******** diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtcm.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtcm.msg index 38e35b197..567fc1196 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtcm.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtcm.msg @@ -3,705 +3,705 @@ $ $XConsortium: dtcm.msg /main/3 1995/12/08 09:49:39 rswiston $ $quote " $set 1 -1 "dtcm”瑧ス猻妘蠊斕柁ス藺唫⻏旂洠柁\n" -2 "猻妘蠊 - %s" +1 "dtcm:郵件備忘錄中的收件人欄位是空的\n" +2 "備忘錄 - %s" 3 "pm" 4 "am" 5 "pm" 6 "am" -7 "\n\n\t** ⺼呦謺諅窇 **\n\n\t戀蛺”\t%s\n\t瞅沓渀睮”\t%s\n\t廎忒渀睮”\t%s\n\t呦か”\t%s" -8 "⺌ %2d:%02d" +7 "\n\n\t** 行事曆預約 **\n\n\t日期:\t%s\n\t開始時間:\t%s\n\t結束時間:\t%s\n\t事由:\t%s" +8 "自 %2d:%02d" 9 "am" 10 "pm" 11 "am" 12 "pm" -13 "⺌ %02d%02d ⺍ %02d%02d" -16 "睎攜逑崽⑩蠡泂⺼呦謺" -17 "藞抻袺崽⑩柁ボ磝" -20 "虳芼唫⻏斕柁戀蛺隓淩" -21 "蹌藟ト玿..." -22 "廲ៜ衢逑玿禋げ" -23 "譫瑢" -24 "ヾ瑢" -25 "譯瑢" -26 "譫堈攫" -27 "譯堈攫" -28 "虳芼”" -29 "⺼嶂玿..." -30 "瑧ス..." -31 "䬷ざ柁⺼呦謺" -32 "䬷ざ柁⺼呦謺" -33 "戀" -34 "晊蛺" -35 "攫" -36 "龰" -37 "渀棷..." -38 "諅窇ト玿..." -40 "黀槉" -41 "硻岊..." -42 "虳芼戀蛺..." -65 "麔淰" -68 "トパげ虳槉棷" -69 "トパ..." -72 "藞禋..." -73 "廎忒" -74 "諅窇..." -76 "蹌藟" -77 "赮伢諰咭" -79 "齡汃..." -80 "棤℡罶涷..." -82 "囷え赮伢諰咭..." -84 "䬷ざ怬鱗⺼呦謺..." -85 "籤蝷⺼呦謺..." -86 "衢逑玿蹌藟蟟..." -87 "廲ៜ" -88 "蘗鑑" -89 "ョ quit_handler\n" -90 "蠆諟瞅絒⺼呦謺麔淰" -91 "rpc.cmsd 扽ャ鶈睎柁囷え炟ボ磝﹞\n霘薚泂 inetd 嶂囥ョ欹⺼靨\n inetd.conf 斕 rpc.cmsd 柁瑱蘋唫⻏旂薚柁﹞" -92 "囷え炟ボ磝" -93 "饜鞥" -94 "⺼呦謺蠆諟" -95 "凭㶴" -96 "⺼呦謺麔淰攜Бョ﹜髱" -97 "⺼呦謺麔淰攜Бョ﹜髱" -98 "⺼呦謺蠆諟" -99 "凭㶴" -100 "扽ボ磝" -101 "rpc.cmsd 扽ャ鶈﹜髱" -102 "rpc.cmsd 扽ャ鶈睎柁囷え炟ボ磝﹞\n霘薚泂 inetd 嶂囥ョ欹⺼ 靨\n inetd.conf 斕 rpc.cmsd 柁瑱蘋唫⻏旂薚柁﹞" -103 "囷え炟ボ磝" -104 "饜鞥" -105 "⺼呦謺 : 蠆諟" -106 "凭㶴" -107 "%s: 扽ボ磝" -108 "⺼呦謺⻏殦扽挴泂﹜髱" -109 "⻏殦扽挴泂“ 霘渿饜鞥ボ磝蠹蘋\n[笱迒Q䬷ざ] 暋泂斕柁 [媊沓⺼呦謺槉棷]﹞\n蚍睎髓 -c 藞禋欹⺼⺼呦謺 (dtcm)﹜霘薚泂睎儸挴泂藹饜鞥﹞" -110 "⺼呦謺蠆諟" -111 "凭㶴" -112 "dtcm 轡 rpc.cmsd 斿ヾ攜フ﹞" -113 "⺼呦謺" -114 "纂攫" -115 "蘑攫" -116 "警攫" -117 "ⅹ攫" -118 "瓖攫" -119 "蠟攫" -120 "臚攫" -121 "蘇攫" -122 "藻攫" -123 "觸攫" -124 "觸纂攫" -125 "觸蘑攫" -126 "纂攫" -127 "蘑攫" -128 "警攫" -129 "ⅹ攫" -130 "瓖攫" -131 "蠟攫" -132 "臚攫" -133 "蘇攫" -134 "藻攫" -135 "觸攫" -136 "觸纂攫" -137 "觸蘑攫" -138 "晊蛺戀" -139 "晊蛺纂" -140 "晊蛺蘑" -141 "晊蛺警" -142 "晊蛺ⅹ" -143 "晊蛺瓖" -144 "晊蛺蠟" -145 "晊蛺戀" -146 "晊蛺戀" -147 "晊蛺纂" -148 "晊蛺蘑" -149 "晊蛺警" -150 "晊蛺ⅹ" -151 "晊蛺瓖" -152 "晊蛺蠟" -153 "晊蛺戀" -154 "戀" -155 "纂" -156 "蘑" -157 "警" -158 "ⅹ" -159 "瓖" -160 "蠟" -161 "戀" -162 "戀" -163 "纂" -164 "蘑" -165 "警" -166 "ⅹ" -167 "瓖" -168 "蠟" -169 "戀" -170 "晊蛺戀" -171 "晊蛺纂" -172 "晊蛺蘑" -173 "晊蛺警" -174 "晊蛺ⅹ" -175 "晊蛺瓖" -176 "晊蛺蠟" -177 "晊蛺戀" -178 "睎儸ョ廲ៜ %s" -186 "dtcm 縋 rpc.cmsd 斿ヾ攜フ" -187 "え恄”\n\tdtcm_delete [-c calendar] [-d ] [-v view]\n" -188 "\n隓恄瞅絒⺼呦謺 %s\n" -189 "攜咭" -190 "袺伝崽禋げ (磍謑)? " -191 "え恄”\n\tdtcm_insert [ -c calendar ] [-d ] [ -v view ]\n" +13 "自 %02d%02d 至 %02d%02d" +16 "您不能除去內定行事曆" +17 "選取欲除去的名稱" +20 "前往欄位中的日期無效" +21 "編輯列表..." +22 "瀏覽功能表項目" +23 "上週" +24 "本週" +25 "下週" +26 "上個月" +27 "下個月" +28 "前往:" +29 "行程表..." +30 "郵件..." +31 "顯示的行事曆" +32 "顯示的行事曆" +33 "日" +34 "星期" +35 "月" +36 "年" +37 "時區..." +38 "預約列表..." +40 "檢視" +41 "尋找..." +42 "前往日期..." +65 "檔案" +68 "列印目前視區" +69 "列印..." +72 "選項..." +73 "結束" +74 "預約..." +76 "編輯" +77 "輔助說明" +79 "工作..." +80 "參考資料..." +82 "使用輔助說明..." +84 "顯示其他行事曆..." +85 "比較行事曆..." +86 "功能表編輯器..." +87 "瀏覽" +88 "今天" +89 "在 quit_handler\n" +90 "錯誤開啟行事曆檔案" +91 "rpc.cmsd 沒有回應您的使用者名稱。\n請確定 inetd 程序正在執行且\n inetd.conf 中 rpc.cmsd 的進入欄位是正確的。" +92 "使用者名稱" +93 "主機" +94 "行事曆錯誤" +95 "繼續" +96 "行事曆檔案不存在,對" +97 "行事曆檔案不存在,對" +98 "行事曆錯誤" +99 "繼續" +100 "沒有名稱" +101 "rpc.cmsd 沒有回應,對" +102 "rpc.cmsd 沒有回應您的使用者名稱。\n請確定 inetd 程序正在執行 且\n inetd.conf 中 rpc.cmsd 的進入欄位是正確的。" +103 "使用者名稱" +104 "主機" +105 "行事曆 : 錯誤" +106 "繼續" +107 "%s: 沒有名稱" +108 "行事曆位置沒有指定,對" +109 "位置沒有指定; 請將主機名稱加入\n[特性/顯示] 設定中的 [起始行事曆視區]。\n若您以 -c 選項執行行事曆 (dtcm),請確定您已指定了主機。" +110 "行事曆錯誤" +111 "繼續" +112 "dtcm 及 rpc.cmsd 版本不同。" +113 "行事曆" +114 "一月" +115 "二月" +116 "三月" +117 "四月" +118 "五月" +119 "六月" +120 "七月" +121 "八月" +122 "九月" +123 "十月" +124 "十一月" +125 "十二月" +126 "一月" +127 "二月" +128 "三月" +129 "四月" +130 "五月" +131 "六月" +132 "七月" +133 "八月" +134 "九月" +135 "十月" +136 "十一月" +137 "十二月" +138 "星期日" +139 "星期一" +140 "星期二" +141 "星期三" +142 "星期四" +143 "星期五" +144 "星期六" +145 "星期日" +146 "星期日" +147 "星期一" +148 "星期二" +149 "星期三" +150 "星期四" +151 "星期五" +152 "星期六" +153 "星期日" +154 "日" +155 "一" +156 "二" +157 "三" +158 "四" +159 "五" +160 "六" +161 "日" +162 "日" +163 "一" +164 "二" +165 "三" +166 "四" +167 "五" +168 "六" +169 "日" +170 "星期日" +171 "星期一" +172 "星期二" +173 "星期三" +174 "星期四" +175 "星期五" +176 "星期六" +177 "星期日" +178 "您已在瀏覽 %s" +186 "dtcm 與 rpc.cmsd 版本不同" +187 "用法:\n\tdtcm_delete [-c calendar] [-d ] [-v view]\n" +188 "\n無法開啟行事曆 %s\n" +189 "不明" +190 "欲刪除項目 (號碼)? " +191 "用法:\n\tdtcm_insert [ -c calendar ] [-d ] [ -v view ]\n" 192 " [-w what string] [-s ] [-e ]\n" -193 "霘耰蘋睎衭蠹蘋柁諅窇罶媢﹞\n蠡泂圊鞂䬷ざョ挭磍斕﹞\n" -194 "⺼呦謺 (%s): " -195 "戀蛺 (%s): " -196 "瞅沓渀睮 (%s): " -197 "睎耰蘋藹隓淩柁渀睮﹞霘テ箹纂”\n" -198 "廎忒渀睮 (%s): " -199 "廎忒渀睮 (%s): " -200 "纂" -201 "适闀 (%s): " -202 "纂" -203 "隓蠡泂圊" -204 "髱卼 (%s): " -205 "呦か (睎瑊ロ⑴藣蘋瓖⺼﹜霘囷え ^D 廎忒)”\n" -206 "\n隓恄瞅絒⺼呦謺 %s\n" -207 "え恄”\n\tdtcm_lookup [ -c calendar ][ -d ] [ -v view ]\n" -208 "\n隓恄瞅絒⺼呦謺 \"%s\"\n" -209 "攜咭" -210 "諅窇鞂粡蘋睎ョ廲ៜ柁⺼呦謺斕﹞\n 睎衭渿怬粡蘋蓇?" -211 "粡蘋" -212 "粡蘋諅窇" -214 "袺粡蘋柁諅窇” %s\n" -218 "挴泂隓淩柁戀蛺" -219 "挴泂隓淩柁瞅沓渀睮" -220 "挴泂隓淩柁廎忒渀睮" -221 "戀蛺唫⻏洠く迖曬谹" -222 "瞅沓渀睮唫⻏洠く迖曬谹" -223 "呦か唫⻏洠く迖曬谹" -224 "适闀轡髱卼唫⻏攜嗃ポ" -225 "粡蘋諅窇抻祤”" -226 "粡蘋諅窇渀僛ぇ蠡楶蠆諟" -227 "粡蘋諅窇抻祤" -228 "蟡蘋諅窇" -229 "凭㶴" -230 "侹諅窇" -231 "藞抻諅窇隑悒テ侹" -232 "凭㶴" -234 "侹諅窇" -235 "凭㶴" +193 "請鍵入您要加入的預約資訊。\n內定值會顯示在括號中。\n" +194 "行事曆 (%s): " +195 "日期 (%s): " +196 "開始時間 (%s): " +197 "您鍵入了無效的時間。請再試一次:\n" +198 "結束時間 (%s): " +199 "結束時間 (%s): " +200 "一次" +201 "重複 (%s): " +202 "一次" +203 "無內定值" +204 "對於 (%s): " +205 "事由 (您最多可輸入五行,請使用 ^D 結束):\n" +206 "\n無法開啟行事曆 %s\n" +207 "用法:\n\tdtcm_lookup [ -c calendar ][ -d ] [ -v view ]\n" +208 "\n無法開啟行事曆 \"%s\"\n" +209 "不明" +210 "預約會排入您正在瀏覽的行事曆中。\n 您要將其排入嗎?" +211 "排入" +212 "排入預約" +214 "欲排入的預約: %s\n" +218 "指定無效的日期" +219 "指定無效的開始時間" +220 "指定無效的結束時間" +221 "日期欄位空白或欠缺" +222 "開始時間欄位空白或欠缺" +223 "事由欄位空白或欠缺" +224 "重複及對於欄位不符合" +225 "排入預約取消:" +226 "排入預約時發生內部錯誤" +227 "排入預約取消" +228 "載入預約" +229 "繼續" +230 "拖曳預約" +231 "選取預約然後再拖曳" +232 "繼續" +234 "拖曳預約" +235 "繼續" 236 "CalendarAppointment" -237 "XCreateBitmapFromData() ⻏蠣旃晛⼇絫﹞\n" -238 "XCreateBitmapFromData() 懪氁⼇絫﹞\n" -239 "DragStart 蒡ャ NULL﹞\n" +237 "XCreateBitmapFromData() 位元映射失敗。\n" +238 "XCreateBitmapFromData() 遮罩失敗。\n" +239 "DragStart 傳回 NULL。\n" 242 "am" 243 "pm" 244 "%s 3:41am" 245 "am" 246 "pm" -247 "諅窇柁廎忒渀睮籤瞅沓渀睮﹞\n睎衭渿怬粡ョ\n譯纂鑑蓇?" -248 "諅窇蹌粡" -250 "譯纂鑑" -251 "汃炟" -252 "伝崽諅窇" -253 "霘藞抻諅窇隑悒テ伝崽﹞" -254 "凭㶴" -255 "伝崽諅窇" -256 "藞抻諅窇渀僛ぇ蠡楶蠆諟﹞\n諅窇ゝ抻祤﹞" -257 "凭㶴" -258 "彶庍諅窇" -259 "霘藞抻諅窇隑悒テ彶庍﹞" -260 "凭㶴" -261 "彶庍諅窇" -262 "藞抻諅窇渀僛ぇ蠡楶蠆諟﹞\n諅窇ゝ彶庍﹞" -263 "凭㶴" -267 "彶庍諅窇" -268 "楙堈諅窇旂纂侇ト适闀諅窇柁纂楶ソ﹞\n睎衭彶庍蓇...?" -270 "蒟纂堈" -271 "芼譯" -272 "ツ楶" -273 "伝崽諅窇" -274 "楙堈諅窇旂纂侇ト适闀諅窇柁纂楶ソ﹞\n睎衭伝崽蓇...?" -276 "蒟纂堈" -277 "芼譯" -278 "ツ楶" -279 "⺼呦謺諅窇蹌藟蟟" -280 "黀槉諅窇ト玿" -281 "侺暽﹜扽諅窇⑴ト玿!" -282 "凭㶴" -283 "⺼呦謺 -- 硻岊蟟" -284 "硻岊”" -285 "硻岊" -289 "赮伢諰咭" -290 "霘挴泂袺銌硻柁諅窇А⻌" -291 "ゝ僛隃諅窇﹞" -292 "岊怉 %d 堈縋銌硻簅僾砨嗃炟" -293 "戀蛺”" -294 "虳芼" -296 "赮伢諰咭" -297 "霘耰蘋戀蛺" -298 "睎儸ョ黀槉 %s" -299 "隓淩柁戀蛺" -300 "汃炟" -304 "瑧ス..." -305 "葅蘋漦嗢諅窇" -306 "霘藞抻⺼呦謺テ葅蘋﹞" -307 "凭㶴" -308 "伝崽諅窇" -309 "霘藞謥纂堈諅窇﹜隑悒テ伝崽纂﹞" -310 "凭㶴" -311 "伝崽諅窇" -312 "藞抻諅窇渀僛ぇ蠡楶蠆諟﹞\n諅窇ゝ伝崽﹞" -313 "凭㶴" -314 "伝崽漦嗢諅窇" -315 "霘藞謥⺼呦謺テ伝崽﹞" -316 "凭㶴" -317 "伝崽諅窇" -318 "楙堈諅窇旂纂侇ト适闀諅窇柁纂楶ソ﹞\n睎衭伝崽蓇...?" -320 "蒟纂堈" -321 "芼譯" -322 "ツ楶" -323 "彶庍諅窇" -324 "霘藞謥諅窇テ伝崽﹞" -325 "凭㶴" -326 "彶庍諅窇" -327 "藞謥諅窇渀僛ぇ蠡楶蠆諟﹞\n諅窇ゝ彶庍﹞" -328 "凭㶴" -329 "彶庍漦嗢諅窇" -330 "霘藞抻⺼呦謺テ彶庍﹞" -331 "凭㶴" -332 "彶庍諅窇" -333 "楙堈諅窇旂纂侇ト适闀諅窇柁纂楶ソ﹞\n睎衭彶庍蓇...?" -335 "蒟纂堈" -336 "芼譯" -337 "ツ楶" -340 "⺼呦謺" -341 "Б抻" -342 "葅蘋" -343 "彶庍" -348 "葅蘋暐⑴ḷ" -349 "⺼呦謺漦嗢諅窇蹌藟蟟" -350 "藞抻頝踛蠆諟﹜隓恄凭㶴﹞\n" -351 "藞抻揧囷え炟斕黫﹞\n" -352 "睎⽁禕ョ鶈え嶂冈斕藞抻纂堈蠣ス﹞" -353 "扽渀睮" -354 "ツ鑑" -355 "隓恄瞅絒 callog 麔淰﹞\n汃鞄抻祤﹞ ⺼呦謺" -356 "鶈囷え炟衭忴﹜汃鞄抻祤﹞\n⺼呦謺" -357 "戀蛺唫⻏斕隓淩圊﹞\n汃鞄抻祤﹞ ⺼呦謺" -358 "瞅沓渀睮唫⻏斕隓淩圊﹞\n汃鞄抻祤﹞ ⺼呦謺" -359 "廎忒渀睮唫⻏斕隓淩圊﹞\n汃鞄抻祤﹞ ⺼呦謺" -360 "睎⽁禕菙坯戀蛺圊﹞\n汃鞄抻祤﹞ ⺼呦謺" -361 "睎⽁禕菙坯瞅沓渀睮圊﹞\n汃鞄抻祤﹞ ⺼呦謺" -362 "睎⽁禕菙坯[呦か]﹞\n汃鞄抻祤﹞ ⺼呦謺" -363 "隓淩迖攜嗃ポ柁适闀迖髱卼圊﹞\n汃鞄抻祤﹞ ⺼呦謺" -364 "蹌藟蟟汃鞄⼇絫" -365 "凭㶴" -367 "⺼呦謺儸Бョ﹞\n汃鞄抻祤﹞ ⺼呦謺" -368 "⺼呦謺攜Бョ﹞\n汃鞄抻祤﹞ ⺼呦謺" -370 "筅ḷ蠆諟﹞ 暐⑴ḷ陃廕﹞\n汃鞄抻祤﹞ ⺼呦謺" -378 "奡襉忟崷殦蠆諟 -- 奡襉忟攜冞﹞\n汃鞄抻祤﹞ ⺼呦謺" -383 "攜咭柁蠆諟﹞\n汃鞄抻祤﹞ ⺼呦謺" -386 "篎諅窇柁廎忒渀睮籤瞅沓渀睮﹞\n睎衭渿⼓粡怉剼蘑鑑蓇?" -387 "粡蘋諅窇" -389 "剼蘑鑑" -390 "佼湅迒”" -391 "囷え炟⺼呦謺⻏殦”" -392 "戀盉轃”" -393 "瞅沓渀睮”" -394 "廎忒渀睮”" -395 "麵渀䬷ざ巖冈”" -396 "12 麵渀戔" -397 "24 麵渀戔" -398 "蠡泂䬷ざ巖冈”" -399 "龰" -400 "攫" -401 "晊蛺" -402 "戀" -403 "媊沓⺼呦謺黀槉" -404 "囷え炟Б抻" -405 "霘⺍韁藞抻纂堈暐⑴ḷ﹞" -406 "凭㶴" -407 "⺼呦謺漦嗢Б抻暋泂圊 -- 崽⑩" -408 "霘ッ藞抻纂堈ボ磝﹞" -409 "凭㶴" -410 "囷え炟ボ磝”" -411 "嚌蠹ボ磝" -412 "暐⑴ḷ" -413 "暐⑴ḷ" -414 "崽⑩ボ磝" -415 "B = 廲ៜ I = 葅蘋 D = 伝崽" -416 "暐⑴ḷ”" -417 "廲ៜ" -418 "葅蘋" -419 "伝崽" -420 "げ簅”" -421 "パ玿鞥" -422 "麔淰" -423 "パ玿鞥”" -424 "げ蠊”" -425 "藞禋”" -426 "麔淰”" -427 "嬥唄”" -428 "崼唄”" -429 "⻏殦”" -430 "煻⼢饡蹇蚆ベ禨" -431 "煻譯饡蹇蚆ベ禨" -432 "痼⻏”" -433 "ソ禨”" -434 "屼挭”" -435 "䬷ざ渀睮縋齪А諅窇" -436 "蒟䬷ざ渀睮諅窇" -437 "攜䬷ざ諅窇" -438 "戀蛺禖囥”" +247 "預約的結束時間比開始時間早。\n您要將其排在\n下一天嗎?" +248 "預約編排" +250 "下一天" +251 "作者" +252 "刪除預約" +253 "請選取預約然後再刪除。" +254 "繼續" +255 "刪除預約" +256 "選取預約時發生內部錯誤。\n預約未取消。" +257 "繼續" +258 "更改預約" +259 "請選取預約然後再更改。" +260 "繼續" +261 "更改預約" +262 "選取預約時發生內部錯誤。\n預約未更改。" +263 "繼續" +267 "更改預約" +268 "這個預約是一系列重複預約的一部份。\n您要更改嗎...?" +270 "僅此一個" +271 "往下" +272 "全部" +273 "刪除預約" +274 "這個預約是一系列重複預約的一部份。\n您要刪除嗎...?" +276 "僅此一個" +277 "往下" +278 "全部" +279 "行事曆預約編輯器" +280 "檢視預約列表" +281 "抱歉,沒有預約可列表!" +282 "繼續" +283 "行事曆 -- 尋找器" +284 "尋找:" +285 "尋找" +289 "輔助說明" +290 "請指定欲搜尋的預約字串" +291 "未發現預約。" +292 "找到 %d 個與搜尋標準相符者" +293 "日期:" +294 "前往" +296 "輔助說明" +297 "請鍵入日期" +298 "您已在檢視 %s" +299 "無效的日期" +300 "作者" +304 "郵件..." +305 "插入群組預約" +306 "請選取行事曆再插入。" +307 "繼續" +308 "刪除預約" +309 "請選擇一個預約,然後再刪除一次。" +310 "繼續" +311 "刪除預約" +312 "選取預約時發生內部錯誤。\n預約未刪除。" +313 "繼續" +314 "刪除群組預約" +315 "請選擇行事曆再刪除。" +316 "繼續" +317 "刪除預約" +318 "這個預約是一系列重複預約的一部份。\n您要刪除嗎...?" +320 "僅此一個" +321 "往下" +322 "全部" +323 "更改預約" +324 "請選擇預約再刪除。" +325 "繼續" +326 "更改預約" +327 "選擇預約時發生內部錯誤。\n預約未更改。" +328 "繼續" +329 "更改群組預約" +330 "請選取行事曆再更改。" +331 "繼續" +332 "更改預約" +333 "這個預約是一系列重複預約的一部份。\n您要更改嗎...?" +335 "僅此一個" +336 "往下" +337 "全部" +340 "行事曆" +341 "存取" +342 "插入" +343 "更改" +348 "插入許可權" +349 "行事曆群組預約編輯器" +350 "選取圖像錯誤,無法繼續。\n" +351 "選取被使用者中斷。\n" +352 "您必須在應用程式中選取一個元件。" +353 "沒有時間" +354 "全天" +355 "無法開啟 callog 檔案。\n作業取消。 行事曆" +356 "應使用者要求,作業取消。\n行事曆" +357 "日期欄位中有無效值。\n作業取消。 行事曆" +358 "開始時間欄位中有無效值。\n作業取消。 行事曆" +359 "結束時間欄位中有無效值。\n作業取消。 行事曆" +360 "您必須提供日期值。\n作業取消。 行事曆" +361 "您必須提供開始時間值。\n作業取消。 行事曆" +362 "您必須提供[事由]。\n作業取消。 行事曆" +363 "無效或不符合的重複或對於值。\n作業取消。 行事曆" +364 "編輯器作業失敗" +365 "繼續" +367 "行事曆已存在。\n作業取消。 行事曆" +368 "行事曆不存在。\n作業取消。 行事曆" +370 "授權錯誤。 許可權拒絕。\n作業取消。 行事曆" +378 "記憶體配置錯誤 -- 記憶體不足。\n作業取消。 行事曆" +383 "不明的錯誤。\n作業取消。 行事曆" +386 "該預約的結束時間比開始時間早。\n您要將它排到第二天嗎?" +387 "排入預約" +389 "第二天" +390 "私密性:" +391 "使用者行事曆位置:" +392 "日界線:" +393 "開始時間:" +394 "結束時間:" +395 "小時顯示方式:" +396 "12 小時制" +397 "24 小時制" +398 "內定顯示方式:" +399 "年" +400 "月" +401 "星期" +402 "日" +403 "起始行事曆檢視" +404 "使用者存取" +405 "請至少選取一個許可權。" +406 "繼續" +407 "行事曆群組存取設定值 -- 除去" +408 "請先選取一個名稱。" +409 "繼續" +410 "使用者名稱:" +411 "增加名稱" +412 "許可權" +413 "許可權" +414 "除去名稱" +415 "B = 瀏覽 I = 插入 D = 刪除" +416 "許可權:" +417 "瀏覽" +418 "插入" +419 "刪除" +420 "目標:" +421 "印表機" +422 "檔案" +423 "印表機:" +424 "目錄:" +425 "選項:" +426 "檔案:" +427 "寬度:" +428 "高度:" +429 "位置:" +430 "距左邊緣英吋數" +431 "距下邊緣英吋數" +432 "單位:" +433 "份數:" +434 "含括:" +435 "顯示時間與文字預約" +436 "僅顯示時間預約" +437 "不顯示預約" +438 "日期順序:" 439 "MM | DD | YY" 440 "DD | MM | YY" 441 "YY | MM | DD" -442 "戀蛺禳觰蠣”" -443 "洠く" -444 "鬊Б⺼呦謺藞禋" -445 "嬣蘋 ~/.desksetdefaults 渀僛ぇ蠆諟﹞\n霘薚泂睎嬣蘋麔淰柁暐⑴ḷ﹞" -446 "凭㶴" -447 "幺抻⺼呦謺藞禋" -448 "⺌ ~/.desksetdefaults 幺抻渀僛ぇ蠆諟﹞\n霘薚泂睎幺抻麔淰柁暐⑴ḷ﹞" -449 "凭㶴" -450 "⺼呦謺藞禋赮伢諰咭" -451 "睎泲ゝ鬊Б柁彶庍﹞\n睎⑴髓藞謥鬊Б彶庍楶禳﹝勂蛫埏庍﹝\n迖炟珃ャッ虳ョ髱緷斕柁⻏殦﹞" -452 "鬊Б" -453 "廎忒" -454 "鬊Б⺼呦謺藞禋" -456 "凭㶴" -457 "⺼呦謺藞禋" -458 "⺼呦謺 -- 藞禋" -459 "瞗麷”" -460 "伒怮鶈え" -463 "赮伢諰咭" -464 "ps_open_file(): 禕挴泂げ蠊迖麔淰\n" -465 "ps_open_file(): 隓淩柁げ蠊 %s\n" +442 "日期分隔元:" +443 "空白" +444 "儲存行事曆選項" +445 "寫入 ~/.desksetdefaults 時發生錯誤。\n請確定您有寫入此檔案的許可權。" +446 "繼續" +447 "讀取行事曆選項" +448 "自 ~/.desksetdefaults 讀取時發生錯誤。\n請確定您有讀取此檔案的許可權。" +449 "繼續" +450 "行事曆選項輔助說明" +451 "您有尚未儲存的更改。\n您可以選擇儲存更改部分、放棄修改、\n或者返回先前在對話中的位置。" +452 "儲存" +453 "結束" +454 "儲存行事曆選項" +456 "繼續" +457 "行事曆選項" +458 "行事曆 -- 選項" +459 "種類:" +460 "即刻應用" +463 "輔助說明" +464 "ps_open_file(): 須指定目錄或檔案\n" +465 "ps_open_file(): 無效的目錄 %s\n" 466 "w+" -467 "ps_open_file(): 隓恄瞅絒麔淰 %s\n" -468 "郟禨" -469 "か⺼呦謺磣隉婝惉戀黀槉" -470 "譫觼" -471 "譯觼" +467 "ps_open_file(): 無法開啟檔案 %s\n" +468 "頁數" +469 "由行事曆管理員做日檢視" +470 "上午" +471 "下午" 472 "pm" -473 "⺼呦謺磣隉婝トざ恁藰呦禋" -474 "⺼呦謺磣隉婝トざ諅窇" -475 "郟禨" -476 "欄" -477 "⺼呦謺磣隉婝欄攫ソ黀槉" -478 "欄" -479 "郟禨" -480 "晊蛺戀" -481 "晊蛺纂" -482 "晊蛺蘑" -483 "晊蛺警" -484 "晊蛺ⅹ" -485 "晊蛺瓖" -486 "晊蛺蠟" -487 "ps_init_printer(): 隓恄瞅絒 postscript prolog 麔”%s\n" -488 "欄" -489 " 郟" -490 "⺼呦謺磣隉婝惉纂瑢黀槉" -491 "纂" -492 "蘑" -493 "警" -494 "ⅹ" -495 "瓖" -496 "蠟" -497 "戀" -505 "晊蛺蠟" -506 "晊蛺戀" -507 "⺼呦謺磣隉婝惉龰黀槉" -508 "⺼呦謺磣隉婝惉龰黀槉" -523 "恁藰呦禋”%d 柁龰" -524 "諅窇ト玿”%d 柁龰" -525 "恁藰呦禋”%s" -526 "諅窇ト玿”%s" -527 "恁藰呦禋”剼 %s 瑢" -528 "諅窇ト玿”剼 %s 瑢" -529 "恁藰呦禋”%s" -530 "諅窇ト玿”%s" -531 "怀堈 %d %s" -532 "⺼呦謺 : 适闀瑢蛺" -533 "适闀瑢蛺”" -534 "僛ぇ卼”" -535 "髱卼”" -536 "佼湅迒”" -537 "諅窇⺼嶂玿" -538 "睎衭渿諅窇粡ョ篎攫柁剼ⅹ瑢\n迖瑊悒纂瑢蓇?" -540 "譫晊蛺" -541 "剼ⅹ瑢" -542 "怀 %d %s" -543 "怀 %d %s" -544 "怀 %d %s" -559 "廲ៜ %s..." -560 "⺼呦謺 -- 䬷ざ怬鱗⺼呦謺" -561 "囷え炟ボ磝”" -562 "䬷ざ" -564 "赮伢諰咭" -565 "汃炟" -566 "伝崽恁藰呦禋" -567 "霘藞抻恁藰呦禋テ伝崽﹞" -568 "凭㶴" -569 "伝崽恁藰呦禋" -570 "藞抻恁藰呦禋渀僛ぇ蠡楶蠆諟﹞\n恁藰呦禋ゝ伝崽﹞" -571 "凭㶴" -572 "伝崽恁藰呦禋" -573 "恁藰呦禋旂适闀侇ト柁纂楶ソ﹞\n睎衭伝崽蓇 ...?" -575 "蒟纂堈" -576 "芼譯" -577 "ツ楶" -578 "彶庍恁藰呦禋" -579 "恁藰呦禋旂适闀侇ト柁纂楶ソ﹞\n睎衭彶庍蓇 ...?" -581 "蒟纂堈" -582 "芼譯" -583 "ツ楶" -584 "彶庍恁藰呦禋" -585 "霘藞謥恁藰呦禋テ彶庍﹞" -586 "凭㶴" -587 "彶庍恁藰呦禋" -588 "藞抻恁藰呦禋渀僛ぇ蠡楶蠆諟﹞\n恁藰呦禋ゝ彶庍﹞" -589 "凭㶴" -590 "麃欐戀蛺”" -591 "⺼呦謺恁藰呦禋蹌藟蟟" -595 "%s 瞅沓柁咇纂瑢" -596 "晊蛺纂 %d" -597 "晊蛺蘑 %d" -598 "晊蛺警 %d" -599 "晊蛺ⅹ %d" -600 "晊蛺瓖 %d" -601 "晊蛺蠟 %d" -602 "晊蛺戀 %d" -603 "藞謥袺蠹蘋囷え炟ボ磝唫⻏柁ボ磝" -604 "儸ョト玿斕" -605 "赮伢諰咭" -606 "⺼呦謺蠆諟" -607 "蠡楶蠆諟漶癱⺼呦謺ボ磝" -608 "凭㶴" -609 "⺼呦謺蠆諟" -610 "抻痤⺼呦謺ボ磝渀僛ぇ蠡楶蠆諟" -611 "凭㶴" -612 "颮羏..." -613 "驨卼⺼呦謺..." -617 "蘗鑑" -618 " -session 鰱禨錛衭纂堈棤禨\n" -619 "霘ョ眭冈斕耰蘋⺼呦謺ボ磝” @" -620 "攜咭⺼呦謺﹞錛衭⺼呦謺ボ磝” %s" -621 "霘ョ眭冈斕耰蘋⺼呦謺ボ磝” @" -622 "攜咭饜鞥ボ﹞錛衭饜鞥ボ %s@" -623 "⺼呦謺隓恄䬷ざ1970龰1攫1戀虳柁戀蛺" -624 "⺼呦謺隓恄䬷ざ2037龰12攫31戀悒柁戀蛺" -625 "蝷韁" -626 "蝷ロ" -627 "諅窇" -628 "渀睮 呦か" -629 "泲" -631 "%d 蛨嗃ポА⻌僛隃" -632 "霘⺌ト玿斕藞抻諅窇髓䬷ざ" -633 "藞抻柁⺼呦謺" -634 "藞抻柁⺼呦謺" -635 "蝷韁" -636 "蝷ロ" -637 "テ坭" -641 "ɵ峇蟟隓恄珜挴泂柁⻏殦抻痤\n篚聤⻏彴” 隓淩柁饜鞥ボ磝﹞" -642 "rpc.cmsd daemon ゝ漶癱﹞\n霘薚諝 rpc.cmsd 儸薚Е稹ョ睎柁侇嗄斕﹞" -643 "隓恄Б抻⺼呦謺. ⺼呦謺" -644 "諅窇禨”" -645 "挼㶴渀睮" -646 "禳㺪" -647 "栯櫇 %s..." +473 "行事曆管理員列示待辦事項" +474 "行事曆管理員列示預約" +475 "頁數" +476 "之" +477 "行事曆管理員之月份檢視" +478 "之" +479 "頁數" +480 "星期日" +481 "星期一" +482 "星期二" +483 "星期三" +484 "星期四" +485 "星期五" +486 "星期六" +487 "ps_init_printer(): 無法開啟 postscript prolog 檔:%s\n" +488 "之" +489 " 頁" +490 "行事曆管理員做一週檢視" +491 "一" +492 "二" +493 "三" +494 "四" +495 "五" +496 "六" +497 "日" +505 "星期六" +506 "星期日" +507 "行事曆管理員做年檢視" +508 "行事曆管理員做年檢視" +523 "待辦事項:%d 的年" +524 "預約列表:%d 的年" +525 "待辦事項:%s" +526 "預約列表:%s" +527 "待辦事項:第 %s 週" +528 "預約列表:第 %s 週" +529 "待辦事項:%s" +530 "預約列表:%s" +531 "每個 %d %s" +532 "行事曆 : 重複週期" +533 "重複週期:" +534 "發生於:" +535 "對於:" +536 "私密性:" +537 "預約行程表" +538 "您要將此預約排在該月的第四週\n或最後一週嗎?" +540 "上星期" +541 "第四週" +542 "每 %d %s" +543 "每 %d %s" +544 "每 %d %s" +559 "瀏覽 %s..." +560 "行事曆 -- 顯示其他行事曆" +561 "使用者名稱:" +562 "顯示" +564 "輔助說明" +565 "作者" +566 "刪除待辦事項" +567 "請選取待辦事項再刪除。" +568 "繼續" +569 "刪除待辦事項" +570 "選取待辦事項時發生內部錯誤。\n待辦事項未刪除。" +571 "繼續" +572 "刪除待辦事項" +573 "此待辦事項是重複系列的一部份。\n您要刪除嗎 ...?" +575 "僅此一個" +576 "往下" +577 "全部" +578 "更改待辦事項" +579 "此待辦事項是重複系列的一部份。\n您要更改嗎 ...?" +581 "僅此一個" +582 "往下" +583 "全部" +584 "更改待辦事項" +585 "請選擇待辦事項再更改。" +586 "繼續" +587 "更改待辦事項" +588 "選取待辦事項時發生內部錯誤。\n待辦事項未更改。" +589 "繼續" +590 "截止日期:" +591 "行事曆待辦事項編輯器" +595 "%s 開始的那一週" +596 "星期一 %d" +597 "星期二 %d" +598 "星期三 %d" +599 "星期四 %d" +600 "星期五 %d" +601 "星期六 %d" +602 "星期日 %d" +603 "選擇欲加入使用者名稱欄位的名稱" +604 "已在列表中" +605 "輔助說明" +606 "行事曆錯誤" +607 "內部錯誤註冊行事曆名稱" +608 "繼續" +609 "行事曆錯誤" +610 "取得行事曆名稱時發生內部錯誤" +611 "繼續" +612 "概觀..." +613 "關於行事曆..." +617 "今天" +618 " -session 引數需要一個參數\n" +619 "請在格式中鍵入行事曆名稱: @" +620 "不明行事曆。需要行事曆名稱: %s" +621 "請在格式中鍵入行事曆名稱: @" +622 "不明主機名。需要主機名 %s@" +623 "行事曆無法顯示1970年1月1日前的日期" +624 "行事曆無法顯示2037年12月31日後的日期" +625 "較少" +626 "較多" +627 "預約" +628 "時間 事由" +629 "尚有" +631 "%d 條符合字串發現" +632 "請自列表中選取預約以顯示" +633 "選取的行事曆" +634 "選取的行事曆" +635 "較少" +636 "較多" +637 "再來" +641 "伺服器無法為指定的位置取得\n網路位址: 無效的主機名稱。" +642 "rpc.cmsd daemon 未註冊。\n請確認 rpc.cmsd 已正確安裝在您的系統中。" +643 "無法存取行事曆. 行事曆" +644 "預約次數:" +645 "持續時間" +646 "分鐘" +647 "查閱 %s..." 648 "SunDex" -649 "⺼呦謺 - 渀棷" -650 "宎柁渀睮" -652 "塤鳹渀睮" +649 "行事曆 - 時區" +650 "我的時間" +652 "習慣時間" 653 "GMT" -654 "麵渀" -655 "薚泂" -656 "伒怮鶈え" -658 "赮伢諰咭" -659 "渀棷”" -660 "渀棷”" -662 "渀棷”" -663 "蝷韁" -664 "蝷ロ" -666 "彶ロ" -667 "⺼呦謺攜鞂䬷ざ 1970 龰 1 攫 1 戀虳柁戀蛺﹞" -668 "⺼呦謺攜鞂䬷ざ 2037 龰 12 攫 31 戀悒柁戀蛺﹞" +654 "小時" +655 "確定" +656 "即刻應用" +658 "輔助說明" +659 "時區:" +660 "時區:" +662 "時區:" +663 "較少" +664 "較多" +666 "更多" +667 "行事曆不會顯示 1970 年 1 月 1 日前的日期。" +668 "行事曆不會顯示 2037 年 12 月 31 日後的日期。" 670 "Dtcm" -671 "斿ヾ" -672 "埏衲斿ヾ" -674 "斿ḷ (c) 1993, 1994:" +671 "版本" +672 "修訂版本" +674 "版權 (c) 1993, 1994:" 675 "Hewlett-Packard Company" 676 "International Business Machines Corp." 677 "Novell, Inc." 678 "Sun Microsystems, Inc." -679 "彶ロ..." -680 "驨椲" -681 "⺼呦謺蠾伢炟" -682 "楙堈⺼呦謺柁菙坯炟”" -683 "驨椲" -684 "囷え炟ボ磝攜逑讓屼洠眭迖聧眭А蠣" -685 "囷え炟ボ磝”" -686 "嚌蠹ボ磝" -687 "崽⑩ボ磝" -688 "廲ៜ衢逑玿禋げ" -689 "薚泂" -690 "鶈え" -691 "适暋" -693 "赮伢諰咭" -696 "え恄”\n\tdtcm_admin [ -d ] [ -a action ] [ -c calendar ][ -s %s -隓恄傶崽 %s -隓恄唈ゥ⺍ %s柁椵廎 -%s”%s -%s”渿 %s 猻ソ⺍ %s +%s:一個以上的計劃包含了指定的模組 +無法配置 cgen 資料 +將下列程式碼自第 %d 行加入: +%s:主() 自殘渣檔案中漏失。 + 請參考檔案 %s 已取得新的主() 含數之資訊。 +主() 自舊的殘渣檔案中漏失。 + 下列主() 並未加入新的殘渣檔案: +自%s的最後一次執行後,殘渣檔案就未作任何更改。 +=== 結束 === +無法開啟舊檔:無記憶體可使用 +無法開啟新檔:無記憶體可使用 +無法開啟暫時輸出檔 +無法開啟記錄檔案 +%s:%s 自第%d行後即無法解析 +%s:%s 之原始內容保留 + 在第%d行更改物件初始化: +在第%d行加入物件初始化: +寫入 +** 因錯誤而中斷 ** +%s:模阻檔案名稱必須僅包含字母 +與數字。 %s 會根據模組 +檔案名稱產生 C 變數。 請重新命名 %s +%s:將 %s 之資源寫入 %s +(其產生%s),這是因模組內有了更動 +%s:略過使用者定義的 %s +無法決定本機器的作業系統類別 +略過使用者定義的 %s +連結 %s => %s +無法移除 %s +無法建立至 %s的連結 +%s:%s +%s:將 %s 備份至 %s %s %s -靬蝝 (扽庍䨣) %s -靬蝝 (儸彶隞) %s -モ蠆諟゛靬蝝 %s -渿ッ虳柁 %s 鬊Б⺍ %s -隓恄雰ぇ %s﹞ 麔淰モ諴恄蠆諟゛ポ坰⼇絫﹞ -ゝ洁柁漦嗢麷伀 -芩靬ゝ揧齬葰柁 WHEN - obj”<ゝ杬ボ> when”%s -芩靬ゝ揧齬葰柁 WHEN - obj”%s when”%s -ゝ洁柁棬汃ボ磝﹜ %s -ゝ洁柁棬汃ボ磝﹜ %d -髱坭⺌昡ス柁棬汃柁ゝ洁柁怐禨麷伀﹜ %s -%s#%d”硻岊 '%s', 僛隃藹 '%s'. 玿ざ冈⺌剼 %d⺼瞅沓 -%s#%d”'%s' ゛扽 '%s' -%s”'%s' 攜嗃ポ剼 %d ⺼! -%s#%d”攜蠢暐琤昲漶箾 -calloc”隓奡襉忟 -malloc”隓奡襉忟 -realloc”隓奡襉忟 +略過 (沒有改變) %s +略過 (已更新) %s +因錯誤而略過 %s +將先前的 %s 儲存至 %s +無法產生 %s。 檔案因語法錯誤而合併失敗。 +未知的群組類別 +忽略未被支援的 WHEN - obj:<未命名> when:%s +忽略未被支援的 WHEN - obj:%s when:%s +未知的動作名稱, %s +未知的動作名稱, %d +對來自物件的動作的未知的函數類別, %s +%s#%d:尋找 '%s', 發現了 '%s'. 表示式自第 %d行開始 +%s#%d:'%s' 而沒有 '%s' +%s:'%s' 不符合第 %d 行! +%s#%d:不允許巢狀註解 +calloc:無記憶體 +malloc:無記憶體 +realloc:無記憶體 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtconfig.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtconfig.msg index 762e81837..56c7ca3ff 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtconfig.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtconfig.msg @@ -19,33 +19,33 @@ $ ** Message set 10: For IBM platforms $ ***************************************************************************** $set 10 -1 ⅲ逑か崼瞃囷え炟(superuser)欹⺼﹞\n +1 只能由高階使用者(superuser)執行。\n $ -2 CDE 隃儸暋泂蠡泂囷え炟蘭郖﹞ 蘭郖\n\ -ョ侇嗄譫怀纂堈囷え炟柁僳蘋渀砅鞂䬷ざ﹞\n\ -衭砫⼓旂匢僛ぇ淩え﹜睎⽁禕驨鞥悒テ适隞瞅絒侇嗄﹞\n +2 CDE 現已設定成內定使用者介面。 此介面\n\ +在系統上每一個使用者的登入時便會顯示。\n\ +要看它是否發生效用,您必須關機後再重新開啟系統。\n $ -3 杬麟⺼隃儸暋泂蠡泂囷え炟蘭郖﹞ 蘭郖\n\ -ョ侇嗄譫怀纂堈囷え炟柁僳蘋渀砅鞂䬷ざ﹞\n\ -衭砫⼓旂匢僛ぇ淩え﹜睎⽁禕驨鞥悒テ适隞瞅絒侇嗄﹞\n -4 CDE 儸槴暋泂蠡泂囷え炟蘭郖﹞ +3 命令行現已設定成內定使用者介面。 此介面\n\ +在系統上每一個使用者的登入時便會顯示。\n\ +要看它是否發生效用,您必須關機後再重新開啟系統。\n +4 CDE 已經設定成內定使用者介面。 $ -5 杬麟⺼儸槴暋泂蠡泂囷え炟蘭郖﹞\n +5 命令行已經設定成內定使用者介面。\n $ -6 え恄: %s\n\ - -e (絒え dtlogin 柁 auto-start 衢逑)\n\ - -d (抻祤 dtlogin 柁 auto-start 衢逑)\n\ - -kill (裗筄 dtlogin)\n\ - -reset (适暋 dtlogin - 适隞幺抻崷殦麔)\n +6 用法: %s\n\ + -e (啟用 dtlogin 的 auto-start 功能)\n\ + -d (取消 dtlogin 的 auto-start 功能)\n\ + -kill (殺掉 dtlogin)\n\ + -reset (重設 dtlogin - 重新讀取配置檔)\n $ -7 霽ロ鰱禨 \n +7 太多引數 \n $ -8 錛衭纂堈鰱禨 \n +8 需要一個引數 \n $ -9 隓恄抻祤 xdm﹜霘棤櫇 xdm 轃譫葰伢郟髓抻祤\n\ -xdm 呥テ箹纂﹞ \n +9 無法取消 xdm,請參閱 xdm 線上援助頁以取消\n\ +xdm 並再試一次。 \n $ -10 Dtlogin 呥ゝ欹⺼ \n +10 Dtlogin 並未執行 \n $ ***************************************************************************** $ ** Message set 20: For Sun Platforms @@ -53,32 +53,32 @@ $ ***************************************************************************** $set 20 $ -1 CDE 崷殦襬え嶂冈 +1 CDE 配置公用程式 $ -2 %s -d (抻祤 auto-start) -3 %s -e (絒え auto-start) -4 %s -kill (裗筄 dtlogin) -5 %s -reset (适暋 dtlogin) -6 %s -p (パ玿鞥棬汃彶隞) +2 %s -d (取消 auto-start) +3 %s -e (啟用 auto-start) +4 %s -kill (殺掉 dtlogin) +5 %s -reset (重設 dtlogin) +6 %s -p (印表機動作更新) $ $ In above messages 2 through 6, only translate words between $ left "(" and right "). $ -7 %s: 篎 script ⽁禕髓 root 欹⺼ -8 え恄: 霽ロ鰱禨 -9 え恄: 錛衭纂堈鰱禨 -10 藞禋⼇絫 -11 隓恄欹⺼ %s -12 抻祤⼇絫 -13 隓恄崽⑩ %s -14 汒 -15 痐譫磣隉侇嗄 auto-start 儸抻祤﹞ -16 絒え⼇絫 -17 岊攜怉 %s -18 隓恄唈ゥ %s -19 隓恄唈ゥ %s -20 痐譫磣隉侇嗄 auto-start 儸絒え﹞ -21 裗筄 dtlogin 汒﹞ -22 dtlogin 崷殦罶鳲儸适隞蟡蘋﹞ -23 パ玿鞥棬汃彶隞儸汒 -24 え恄: +7 %s: 該 script 必須以 root 執行 +8 用法: 太多引數 +9 用法: 需要一個引數 +10 選項失敗 +11 無法執行 %s +12 取消失敗 +13 無法除去 %s +14 完成 +15 桌上管理系統 auto-start 已取消。 +16 啟用失敗 +17 找不到 %s +18 無法建立 %s +19 無法建立 %s +20 桌上管理系統 auto-start 已啟用。 +21 殺掉 dtlogin 完成。 +22 dtlogin 配置資源已重新載入。 +23 印表機動作更新已完成 +24 用法: diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtcopy.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtcopy.msg index 21d4418b4..5cb848c6f 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtcopy.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtcopy.msg @@ -9,71 +9,71 @@ $ ***************************************************************************** $set 2 $ ****** Module: main_dtcopy.c ****** -3 麔淰 -4 麔淰 -5 騵麔淰扢 -6 騵麔淰扢 -7 蠆諟” 隓 -8 蠆諟” %d -10 え恄” %s [藞禋 ...] 坭鳲げ簅\n -11 麔淰磣隉婝 -- 麔淰扢傶棬 -12 麔淰磣隉婝 -- 麔淰扢闀蕍 -13 モ珜蠆諟﹜%s ゝ崽⑩﹞ -14 汒﹞ -15 抻祤卼 +3 檔案 +4 檔案 +5 子檔案夾 +6 子檔案夾 +7 錯誤: 無 +8 錯誤: %d +10 用法: %s [選項 ...] 來源目標\n +11 檔案管理員 -- 檔案夾移動 +12 檔案管理員 -- 檔案夾複製 +13 因為錯誤,%s 未除去。 +14 完成。 +15 取消於 $ ** Message 20 - 32 $ ** LongFileOpNames ... message number = op + 20. -20 搢隉斕 -21 瞅絒斕 -22 瞅絒斕 -23 瞅絒斕 -24 幺抻椵廎 -25 伝崽斕 -26 闀蕍斕 -27 唈ゥげ蠊 -28 闀蕍椵廎 -29 唈ゥ椵廎 -30 齡汃斕 -31 旂纂堈闀蕍 -32 旂纂堈椵廎 -33 瑀瀦 +20 處理中 +21 開啟中 +22 開啟中 +23 開啟中 +24 讀取連結 +25 刪除中 +26 複製中 +27 建立目錄 +28 複製連結 +29 建立連結 +30 工作中 +31 是一個複製 +32 是一個連結 +33 剩餘 $set 3 $ ****** Module: copydialog.c ****** -1 凭㶴 -2 穛彘 -3 傶棬斕” -4 闀蕍斕” -5 ⺍麔淰扢” -7 楙穔渿彘欐闀蕍嶂囥﹞ ズ儸闀蕍柁\n\ -麔淰渿絅ョげ簅麔淰扢斕﹞ -10 楙穔渿彘欐傶棬嶂囥﹞ ズ儸傶棬柁\n\ -麔淰渿絅ョげ簅麔淰扢斕﹞ -11 麔淰扢闀蕍 -- 滙夼 -12 麔淰扢傶棬 -- 滙夼 -13 抻祤闀蕍 -14 凭㶴闀蕍 -15 抻祤傶棬 -16 凭㶴傶棬 -17 儸傶棬 -18 儸闀蕍 +1 繼續 +2 暫停 +3 移動中: +4 複製中: +5 至檔案夾: +7 這樣將停止複製程序。 任何已複製的\n\ +檔案將留在目標檔案夾中。 +10 這樣將停止移動程序。 任何已移動的\n\ +檔案將留在目標檔案夾中。 +11 檔案夾複製 -- 警告 +12 檔案夾移動 -- 警告 +13 取消複製 +14 繼續複製 +15 取消移動 +16 繼續移動 +17 已移動 +18 已複製 $set 4 $ ****** Module: errordialog.c ****** -1 蠆諟 %s\n%s -2 モ蠆諟゛穛彘 -3 麔淰扢闀蕍 -- 蠆諟 -4 麔淰扢傶棬 -- 蠆諟 +1 錯誤 %s\n%s +2 因錯誤而暫停 +3 檔案夾複製 -- 錯誤 +4 檔案夾移動 -- 錯誤 -5 "昡ス傶棬 - 蠆諟" +5 "物件移動 - 錯誤" -6 "昡ス闀蕍 - 蠆諟" +6 "物件複製 - 錯誤" -7 "昡ス杶扜麔 - 蠆諟" +7 "物件垃圾檔 - 錯誤" -8 "攜蠢暐睎渿昡ス \n\n\ +8 "不允許您將物件 \n\n\ %s\n\n\ -勂蘋杶扜麔.\n\n\ +放入垃圾檔.\n\n\ Use the Change Permissions choice from the object's\n\ popup menu or from the Selected menu to turn on your\n\ Read permission on the object.\n\n\n\ @@ -84,27 +84,27 @@ folder before you can put the folder in the trash." $set 5 $ ****** Module: overwrtdialog.c ****** -1 ボ磝珜\n%s\n柁麔淰儸Бョ麔淰扢斕\n%s -2 麔淰扢傶棬 -- 麔淰适嬣 -3 抻鷥Бョ柁麔淰 -4 渿Бョ柁麔淰适隞杬ボ珜” -5 渿隞昡ス适隞杬ボ珜” -6 靬蝝楙堈麔淰 -7 伒怮渿棬汃鶈え卼稌㶴柁ボ磝鍙秜斕﹞ -8 袺粞抻柁棬汃” -9 麔淰扢闀蕍 -- 麔淰适嬣 -10 %s\n儸Бョ”霘藞謥ⅱ⼃柁ボ磝﹞ -11 麔淰适嬣 -- 蠆諟 -12 %s\n隓恄适隞杬ボ珜\n%s\n%s +1 名稱為\n%s\n的檔案已存在檔案夾中\n%s +2 檔案夾移動 -- 檔案重寫 +3 取代存在的檔案 +4 將存在的檔案重新命名為: +5 將新物件重新命名為: +6 略過這個檔案 +7 即刻將此動作應用於接續的名稱衝突中。 +8 欲採取的動作: +9 檔案夾複製 -- 檔案重寫 +10 %s\n已存在:請選擇另外的名稱。 +11 檔案重寫 -- 錯誤 +12 %s\n無法重新命名為\n%s\n%s $set 6 $ ****** Module: utils.c ****** $ ** Button labels. -1 薚泂 -2 穛彘 -3 抻祤 -4 赮伢諰咭 -5 げ蠊闀蕍赮伢諰咭 -6 凭㶴 -7 抻祤闀蕍 -8 抻祤傶棬 +1 確定 +2 暫停 +3 取消 +4 輔助說明 +5 目錄複製輔助說明 +6 繼續 +7 取消複製 +8 取消移動 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtcreate.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtcreate.msg index bee62d16a..ccc24061e 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtcreate.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtcreate.msg @@ -24,41 +24,41 @@ $ ** $ ** Message set for menu options on main window $ ** $ ***************************************************************************** -10 麔淰(F) +10 檔案(F) 11 F -15 瞅絒(O)... +15 開啟(O)... 16 O -20 覗崽(N) +20 清除(N) 21 N -25 鬊Б(S) +25 儲存(S) 26 S -30 廎忒(x) +30 結束(x) 31 x -35 藞禋(O) +35 選項(O) 36 O -40 䬷ざ瑱瞃衢逑(A) +40 顯示進階功能(A) 41 A -42 頝踛黀槉(I) +42 圖像檢視(I) 43 I -44 ⺪痝(C) +44 色彩(C) 46 C -47 痼⺪(M) +47 單色(M) 48 M -49 䬷ざ痼⺪頝踛(M) +49 顯示單色圖像(M) 50 M -53 赮伢諰咭(H) +53 輔助說明(H) 54 H -60 颮羏(v) +60 概觀(v) 61 v -65 げ蠊(C) +65 目錄(C) 66 C -70 齡汃(T) +70 工作(T) 71 T -75 棤℡罶涷(R) +75 參考資料(R) 76 R -80 囷え赮伢諰咭(U) +80 使用輔助說明(U) 81 U -85 驨卼唈ゥ棬汃(A) +85 關於建立動作(A) 86 A $set 3 @@ -67,20 +67,20 @@ $ ** $ ** Message set for main Create Action window $ ** $ ***************************************************************************** -10 唈ゥ棬汃 -12 棬汃ボ磝 (頝踛簅圝)” -13 棬汃頝踛” -20 撋挹怚譯棬汃頝踛渀柁杬麟” -21 挹怚譯渀袺欹⺼柁杬麟” -22 棬汃瞅絒渀柁杬麟 (挹怚譯)” -30 棬汃頝踛欄赮伢諰咭ヾ齪” -32 槉嵺麷伀” -34 頝夆 (X-Window) -36 嗈磞鞥 (⺌棬驨椲) -38 嗈磞鞥 (鷗棬驨椲) -40 隓藣罐 -50 崼瞃 -52 椕ヾ +10 建立動作 +12 動作名稱 (圖像標籤): +13 動作圖像: +20 當按兩下動作圖像時的命令: +21 按兩下時欲執行的命令: +22 動作開啟時的命令 (按兩下): +30 動作圖像之輔助說明本文: +32 視窗類別: +34 圖形 (X-Window) +36 終端機 (自動關閉) +38 終端機 (手動關閉) +40 無輸出 +50 高階 +52 基本 $set 4 $ ***************************************************************************** @@ -88,15 +88,15 @@ $ ** $ ** Message set for main Create Action window advanced function area $ ** $ ***************************************************************************** -10 藞謥迒 -11 撋棬汃瞅絒﹜衭忴囷え炟” -12 囷えヾ棬汃欄罶涷麷伀” -13 嚌蠹... -14 伝崽 -15 蹌藟... -16 ⑴泂⻏柁罶涷麷伀” -17 邴罶涷麷伀 -18 ⅲト玿譫柁 +10 選擇性 +11 當動作開啟,要求使用者: +12 使用本動作之資料類別: +13 增加... +14 刪除 +15 編輯... +16 可定位的資料類別: +17 所有資料類別 +18 只有列表上的 $set 5 $ ***************************************************************************** @@ -104,102 +104,102 @@ $ ** $ ** Error and Information message set for main Create Action window $ ** $ ***************************************************************************** -10 曬谹棬汃ボ磝﹞\n\ -霘ョ棬汃ボ磝唫⻏斕耰蘋ボ磝﹞ +10 欠缺動作名稱。\n\ +請在動作名稱欄位中鍵入名稱。 $ -15 曬谹欹⺼杬麟﹞\n\ -霘ョ"棬汃瞅絒渀柁杬麟 (挹怚譯)"唫⻏斕\n\ -耰蘋杬麟ボ磝﹞ +15 欠缺執行命令。\n\ +請在"動作開啟時的命令 (按兩下)"欄位中\n\ +鍵入命令名稱。 $ -20 "囷えヾ棬汃欄罶涷麷伀" ト玿旂洠柁﹞\n\ -睎儸ョ "⑴泂⻏柁罶涷麷伀" 唫⻏斕\n\ -藞藹 "ⅲト玿譫柁"﹞\n\ -霘渿篎藞謥庍珜 "邴罶涷麷伀"\n\ -迖ョト玿譫嚌蠹⺍韁纂堈罶涷麷伀﹞ +20 "使用本動作之資料類別" 列表是空的。\n\ +您已在 "可定位的資料類別" 欄位中\n\ +選了 "只有列表上的"。\n\ +請將該選擇改為 "所有資料類別"\n\ +或在列表上增加至少一個資料類別。 $ -25 纂堈棬汃縋罶涷麷伀泂氂麔淰\n\ -儸槴髓棬汃ボ磝Бョ﹞\n\ -睎⑴髓抻祤鬊Б呥彶庍睎柁棬汃ボ磝\n\ -迖旂适嬣儸Бョ柁泂氂麔淰﹞\n\ -睎衭适嬣儸Бョ柁泂氂麔淰蓇? +25 一個動作與資料類別定義檔案\n\ +已經以此動作名稱存在。\n\ +您可以取消儲存並更改您的動作名稱\n\ +或是重寫已存在的定義檔案。\n\ +您要重寫已存在的定義檔案嗎? $ -30 "棬汃瞅絒渀柁杬麟 (挹怚譯)"唫⻏斕\n\ -曬谹纂堈䨣禨ボ磝﹞\n\ -霘珜睎儸ョ"撋棬汃瞅絒﹜衭忴囷え炟"唫⻏斕\n\ -耰蘋柁簅圝嚌蠹纂䨣禨ボ磝﹞\n\ -淩柁䨣禨ボ磝旂 $*, $1, $2, ..., $9. +30 "動作開啟時的命令 (按兩下)"欄位中\n\ +欠缺一個變數名稱。\n\ +請為您已在"當動作開啟,要求使用者"欄位中\n\ +鍵入的標籤增加一變數名稱。\n\ +有效的變數名稱是 $*, $1, $2, ..., $9. $ -35 楙咍庍䨣泲ゝ揧鬊Б﹞\n\ -睎衭ョ廎忒虳鬊Б楙咍庍䨣蓇? +35 這些改變尚未被儲存。\n\ +您要在結束前儲存這些改變嗎? $ -40 げ虳柁庍䨣泲ゝ揧鬊Б﹞\n\ -睎衭ョ覗崽唫⻏虳\n\ -鬊Б楙堈棬汃蓇? +40 目前的改變尚未被儲存。\n\ +您要在清除欄位前\n\ +儲存這個動作嗎? $ -45 げ虳柁庍䨣泲ゝ揧鬊Б﹞\n\ -睎衭ョ蟡蘋ⅱ纂堈棬汃泂氂麔淰虳\n\ -鬊Б楙咍庍䨣蓇? +45 目前的改變尚未被儲存。\n\ +您要在載入另一個動作定義檔案前\n\ +儲存這些改變嗎? $ -50 棬汃ボ磝讓屼纂堈迖\n\ -ロ堈盻恄А蠣﹞\n\ -譯トА蠣攜⑴髓囷え卼ボ磝蠡”\n\ +50 動作名稱包含一個或\n\ +多個非法字元。\n\ +下列字元不可以使用於名稱內:\n\ / \\ " ' ; ( ) ~ ! $ { } < > # @ | & $ -55 隓恄瞅絒譯ト麔淰” +55 無法開啟下列檔案: $ -60 隓恄瞅絒譯ト麔淰” +60 無法開啟下列檔案: $ -65 隓恄蟡蘋髓譯麔淰﹜モ珜⼓旂か\n\ -"唈ゥ棬汃"齡怞唈ゥ柁” +65 無法載入以下檔案,因為它是由\n\ +"建立動作"工具建立的: $ -66 隓恄蟡蘋篎麔淰﹜モ珜⼓儸\n\ -揧怬鱗齡怞彶庍﹞ 婘モ⑴逑旂睎え\n\ -齪А蹌藟蟟迖怬鱗齡怞埏庍藹篎麔淰﹞ +66 無法載入該檔案,因為它已\n\ +被其他工具更改。 原因可能是您用\n\ +文字編輯器或其他工具修改了該檔案。 $ -67 "唈ゥ棬汃"蒟⑴髓蹌藟か"唈ゥ棬汃"\n\ -唈ゥ柁麔淰﹞ +67 "建立動作"僅可以編輯由"建立動作"\n\ +建立的檔案。 $ -68 隓恄蟡蘋譯ト麔淰” +68 無法載入下列檔案: $ -$ 譯ト媢桾ツ楁旂砨フ柁媢桾髱緷涺柁楶ソ﹞ -70 隞棬汃 -71 儸勂ョ睎柁婘沓麔淰扢斕﹞ -73 唈ゥ柁棬汃泂氂麔淰ⅰ惉” +$ 下列訊息全都是相同的訊息對話框的部份。 +70 新動作 +71 已放在您的原始檔案夾中。 +73 建立的動作定義檔案叫做: $ -80 隓恄岊罐睎藞抻頝踛柁\n\ -騰麵﹞ +80 無法找出您選取圖像的\n\ +大小。 $ -85 隓恄絒棬頝踛蹌藟蟟﹞ +85 無法啟動圖像編輯器。 $ -90 隓恄箾庰髓譯柁麔淰” +90 無法解析以下的檔案: $ -95 隓恄ョ頝踛銌硻聤梏斕僛隃\n\ -頝踛麔淰﹞ +95 無法在圖像搜尋路徑中發現\n\ +圖像檔案。 $ -98 睎藞抻柁頝踛攜テ頝踛銌硻聤梏斕﹞\n\ -睎⽁禕渿頝踛纂怉頝踛銌硻聤梏譫柁纂堈げ蠊斕﹜\n\ -ヵ頝踛祼鞂䬷ざョ痐郖蘄頨斕﹞\n\ -ヵ峈睎衭囷え篎頝踛﹜霘藞謥"薚泂"﹞\n\ -ヵ峈睎衭藞抻攜フ柁頝踛﹜霘藞謥 "抻祤"﹞ +98 您選取的圖像不再圖像搜尋路徑中。\n\ +您必須將圖像一到圖像搜尋路徑上的一個目錄中,\n\ +如此圖像就會顯示在桌面環境中。\n\ +如果您要使用該圖像,請選擇"確定"。\n\ +如果您要選取不同的圖像,請選擇 "取消"。 $ $ ONLY TRANSLATE "Usage" and "filename" -110 え恄” dtcreate [] [-?] +110 用法: dtcreate [] [-?] $ -120 睎泲ゝ⺌ "囷えヾ棬汃柁罶涷麷伀" ト玿\n\ -藞抻罶涷麷伀﹞ -125 霘藞謥睎衭伝崽柁罶涷麷伀﹞ -130 霘藞謥睎衭蹌藟柁罶涷麷伀﹞ +120 您尚未自 "使用本動作的資料類別" 列表\n\ +選取資料類別。 +125 請選擇您要刪除的資料類別。 +130 請選擇您要編輯的資料類別。 $ -150 睎げ虳柁齡汃泲ゝ鬊Б﹞ -152 攜鬊Б -154 抻祤驨椲 +150 您目前的工作尚未儲存。 +152 不儲存 +154 取消關閉 $ -160 隓恄鬊Б瞃栠汃鞄⺍麔淰” -162 隓恄皕髓譯麔淰ャ艀瞃栠汃鞄” +160 無法儲存階段作業至檔案: +162 無法從以下檔案回復階段作業: $ $ TRANSLATORS: DO NOT TRANSLATE the word "HOME" in the following message -170 ゝ暋泂 HOME 蘄頨䨣禨﹞\n\ -睎⽁禕暋泂 HOME 蘄頨䨣禨﹜楙堈棬汃懼逑揧鬊Б﹞ +170 未設定 HOME 環境變數。\n\ +您必須設定 HOME 環境變數,這個動作才能被儲存。 $set 6 $ ***************************************************************************** @@ -207,18 +207,18 @@ $ ** $ ** General message set for dialogs $ ** $ ***************************************************************************** -10 薚泂 -11 伒怮鶈え -12 抻祤 -13 赮伢諰咭 -14 覗崽 -18 硻岊暋泂圊 -19 硻岊暋泂圊... -20 蹌藟頝踛... -31 唈ゥ棬汃 -- 蠆諟 -41 唈ゥ棬汃 -- 崷殦 -46 唈ゥ棬汃 -- 罶媢 -51 唈ゥ棬汃 -- 棯纕 +10 確定 +11 即刻應用 +12 取消 +13 輔助說明 +14 清除 +18 尋找設定值 +19 尋找設定值... +20 編輯圖像... +31 建立動作 -- 錯誤 +41 建立動作 -- 配置 +46 建立動作 -- 資訊 +51 建立動作 -- 問題 $set 7 $ ***************************************************************************** @@ -226,18 +226,18 @@ $ ** $ ** Message set for Add Datatype and Edit Datatype dialogs $ ** $ ***************************************************************************** -10 嚌蠹罶涷麷伀 -11 蹌藟罶涷麷伀 -14 罶涷麷伀侇トボ磝 -15 籫伀笱迒” -16 蹌藟... -17 ヾ罶涷麷伀頝踛欄赮伢諰咭ヾ齪 -18 罶涷麷伀頝踛” -21 杬麟 -22 瞅絒ヾ罶涷麷伀欄杬麟” -23 トパヾ罶涷麷伀欄杬麟” -30 瞅絒 -31 トパ +10 增加資料類別 +11 編輯資料類別 +14 資料類別系列名稱 +15 識別特性: +16 編輯... +17 本資料類別圖像之輔助說明本文 +18 資料類別圖像: +21 命令 +22 開啟本資料類別之命令: +23 列印本資料類別之命令: +30 開啟 +31 列印 $set 8 $ ***************************************************************************** @@ -246,22 +246,22 @@ $ ** Error and Information message set for $ ** Add Datatype and Edit Datatype dialogs $ ** $ ***************************************************************************** -10 曬谹罶涷麷伀侇トボ磝﹞\n\ -霘ョ "罶涷麷伀侇トボ磝" 斕耰蘋ボ磝﹞ +10 欠缺資料類別系列名稱。\n\ +請在 "資料類別系列名稱" 中鍵入名稱。 $ -15 曬谹籫伀笱迒﹞\n\ -睎⽁禕ョ罶涷麷伀唈ゥ虳挴泂笱迒﹞\n\ -霘藞謥 "蹌藟" 挹耰\n\ -坭挴泂笱迒﹞ +15 欠缺識別特性。\n\ +您必須在資料類別建立前指定特性。\n\ +請選擇 "編輯" 按鍵\n\ +來指定特性。 $ -20 "罶涷麷伀侇トボ磝" 唫⻏讓屼\n\ -纂堈迖ロ堈盻恄А蠣﹞\n\ -譯トА蠣攜⑴髓囷え卼ボ磝斕”\n\ +20 "資料類別系列名稱" 欄位包含\n\ +一個或多個非法字元。\n\ +下列字元不可以使用於名稱中:\n\ / \\ " ' ; ( ) ~ ! $ { } < > # @ | & $ -25 儸纂罶涷麷伀侇ト髓ボ磝Бョ﹞\n\ -霘ョ "罶涷麷伀侇トボ磝" 唫⻏斕\n\ -彶庍ボ磝﹞ +25 已有一資料類別系列以此名稱存在。\n\ +請在 "資料類別系列名稱" 欄位中\n\ +更改名稱。 $set 9 $ ***************************************************************************** @@ -269,31 +269,31 @@ $ ** $ ** Message set for Identifying Characteristics dialog $ ** $ ***************************************************************************** -10 籫伀笱迒 -11 讓挭ツ楶 -12 麔淰 -13 麔淰扢 -14 嗃ポ髓譯ペ禋” -20 ボ磝倛鳷” -21 暐⑴ḷ倛鳷” -22 ⑴幺 -24 ⑴嬣 -25 ⑴欹⺼ -27 昑 -28 蠡晥” -29 倛鳷” -30 麷伀” -31 А⻌ -32 ⻏蠣嗢 (觸蠟瑱⻏) -33 僰冈 (觸瑱⻏) -34 畈冈 (觸瑱⻏) -35 絒棬⻏蠣嗢” -40 幺抻” -41 嬣蘋” -42 欹⺼” -43 瞅絒 -44 驨椲 -45 蘑炟欄纂 +10 識別特性 +11 包括全部 +12 檔案 +13 檔案夾 +14 符合以下各項: +20 名稱型態: +21 許可權型態: +22 可讀 +24 可寫 +25 可執行 +27 和 +28 內容: +29 型態: +30 類別: +31 字串 +32 位元組 (十六進位) +33 短式 (十進位) +34 長式 (十進位) +35 啟動位元組: +40 讀取: +41 寫入: +42 執行: +43 開啟 +44 關閉 +45 二者之一 $set 10 $ ***************************************************************************** @@ -301,48 +301,48 @@ $ ** $ ** Error and Information message set for Identifying Characteristics dialog $ ** $ ***************************************************************************** -10 曬谹ボ磝倛鳷﹞\n\ -If "ボ磝倛鳷" 儸藞抻﹜⽁禕藣蘋\n\ -纂ボ磝倛鳷﹞ +10 欠缺名稱型態。\n\ +If "名稱型態" 已選取,必須輸入\n\ +一名稱型態。 $ -15 曬谹暐⑴ḷ藞謥﹞\n\ -If "暐⑴ḷ倛鳷" 儸藞抻﹜⽁禕藞謥\n\ -纂堈迖ロ堈暐⑴ḷ倛鳷﹞\n\ +15 欠缺許可權選擇。\n\ +If "許可權型態" 已選取,必須選擇\n\ +一個或多個許可權型態。\n\ $ -20 曬谹蠡晥倛鳷﹞\n\ -If 蠡晥儸藞抻﹜⽁禕蝫蘋\n\ -倛鳷唫⻏﹞ +20 欠缺內容型態。\n\ +If 內容已選取,必須填入\n\ +型態欄位。 $ -25 曬谹絒棬⻏蠣嗢圊﹞\n\ -If 蠡晥儸藞抻﹜絒棬⻏蠣嗢唫⻏\n\ -禕蝫蘋纂禨А﹞ +25 欠缺啟動位元組值。\n\ +If 內容已選取,啟動位元組欄位\n\ +須填入一數字。 $ -30 籫伀笱迒ゝ藞抻﹞\n\ -霘藞謥纂堈迖ロ堈笱迒\n\ -(ボ磝倛鳷﹜暐⑴ḷ倛鳷﹜迖蠡晥)﹞ +30 識別特性未選取。\n\ +請選擇一個或多個特性\n\ +(名稱型態,許可權型態,或內容)。 $ -45 ボ磝倛鳷讓屼纂堈迖ロ堈\n\ -盻恄А蠣﹞\n\ -譯トА蠣攜痤囷え卼\n\ -ボ磝倛鳷斕”\n\ +45 名稱型態包含一個或多個\n\ +非法字元。\n\ +下列字元不得使用於\n\ +名稱型態中:\n\ / \\ " ' ; ( ) ~ ! $ { } < > # @ | & $ -46 蠡晥倛鳷攜嗃ポ睎藞抻柁\n\ -蠡晥麷伀柁斒眭﹞\n\ -霘髓薚柁倛鳷适隞ス晥倛鳷\n\ -迖彶庍麷伀囷怬嗃ポ蠡晥倛鳷﹞ +46 內容型態不符合您選取的\n\ +內容類別的規格。\n\ +請以正確的型態重新件容型態\n\ +或更改類別使其符合內容型態。 $ -47 絒棬⻏蠣嗢唫⻏讓屼盻恄А蠣﹞\n\ -ヾ唫⻏蒟稌抰觸瑱⻏禨А﹞ +47 啟動位元組欄位包含非法字元。\n\ +本欄位僅接受十進位數字。 $ -48 囷え蠡晥倛鳷鞂騰騰ユ迶犮\n\ -睎柁麔淰磣隉婝柁淩逑﹞\n\ -撋囷え蠡晥倛鳷渀﹜麔淰磣隉婝⽁禕\n\ -ョ瞅絒麔淰扢虳ッ銌硻篎麔淰扢蠡\n\ -邴麔淰柁蠡晥﹞ 楙玿ざ麔淰扢渿籤蝷\n\ -鴀瞅絒﹞\n\ -モ﹜宎埢唈諞睎ⅲ囷えボ磝\n\ -縋暐⑴ḷ倛鳷﹞ +48 使用內容型態會大大地降低\n\ +您的檔案管理員的效能。\n\ +當使用內容型態時,檔案管理員必須\n\ +在開啟檔案夾前先搜尋該檔案夾內\n\ +所有檔案的內容。 這表示檔案夾將比較\n\ +慢開啟。\n\ +因此,我們建議您只使用名稱\n\ +與許可權型態。 $set 11 $ ***************************************************************************** @@ -350,16 +350,16 @@ $ ** $ ** Message set for Icon Selection Dialog $ ** $ ***************************************************************************** -10 げ蠊 -11 頝踛麔淰 -12 耰蘋頝踛麔淰ボ磝 -20 頝踛蟡蘋斕﹜霘寣埸﹞ -30 頝踛麔淰扢 -50 耰蘋柁頝踛麔淰ボ磝旂隓淩柁﹞\n\ -霘ョ耰蘋頝踛麔淰ボ磝唫⻏斕耰蘋\n\ -淩柁頝踛麔淰ボ磝﹞ +10 目錄 +11 圖像檔案 +12 鍵入圖像檔案名稱 +20 圖像載入中,請稍候。 +30 圖像檔案夾 +50 鍵入的圖像檔案名稱是無效的。\n\ +請在鍵入圖像檔案名稱欄位中鍵入\n\ +有效的圖像檔案名稱。 $ ONLY TRANSLATE "Empty". Do not translate the brackets "[" and "]". -60 [洠柁] +60 [空的] $set 12 $ ***************************************************************************** @@ -367,10 +367,10 @@ $ ** $ ** Message set for Open File Dialog $ ** $ ***************************************************************************** -10 蝝孋蟟 -11 げ蠊 -12 麔淰 -13 藞抻禋げ -20 瞅絒麔淰 -25 唈ゥ棬汃 -- 瞅絒 +10 過濾器 +11 目錄 +12 檔案 +13 選取項目 +20 開啟檔案 +25 建立動作 -- 開啟 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtfile.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtfile.msg index 65e104050..e43ab6d4f 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtfile.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtfile.msg @@ -78,37 +78,37 @@ $ Messages 2 and 4 are labels for the Change Folder dialog $ Message 1 is the title for Change Folder errors $ Messages 7, 8, 9, 11, and 12 are Change Folder error messages -1 彶葎麔淰扢蠆諟 -2 瞅隞麔淰扢” -3 彶葎麔淰扢 -4 饜鞥” -7 譯ト麔淰扢ボ磝隓淩﹞\n\n%s:%s -8 睎攜逑鼲⺍麔淰扢﹞ 睎蒟⑴髓\n\ -黀槉ョ睎げ虳柁麔淰扢欄譯柁\n\ -麔淰扢﹞ 睎攜逑挴泂⺍隞柁麔淰扢柁\n\ -廕髱聤梏﹞ -9 ヾ槉棷旂ョ抰迻篲鳷﹞睎攜逑鼲⺍\n\ -挴泂柁麔淰扢﹜モ珜⼓攜ョ抰迻柁麔淰扢\n\ -柁砨髱聤梏譫﹞\n -10 麔淰磣隉炟 -- 䨣彶麔淰扢 -11 隓恄抻痤隞麔淰扢ボ磝﹞ -12 霘耰蘋麔淰扢ボ磝﹞ +1 更換檔案夾錯誤 +2 開新檔案夾: +3 更換檔案夾 +4 主機: +7 下列檔案夾名稱無效。\n\n%s:%s +8 您不能轉至此檔案夾。 您僅可以\n\ +檢視在您目前的檔案夾之下的\n\ +檔案夾。 您不能指定至新的檔案夾的\n\ +絕對路徑。 +9 本視區是在受限模態。您不能轉至\n\ +指定的檔案夾,因為它不在受限的檔案夾\n\ +的相對路徑上。\n +10 檔案管理者 -- 變更檔案夾 +11 無法取得新檔案夾名稱。 +12 請鍵入檔案夾名稱。 -13 虳芼蠆諟 -14 げ簅麔淰扢” -15 虳芼 -16 侇嗄ボ磝” -17 麔淰磣隉炟 -- 虳芼 -18 橝⼇げ簅麔淰扢ボ磝﹞\n\ - 霘耰蘋麔淰扢ボ磝﹜迖⺌ト玿斕藞謥麔淰扢﹞ +13 前往錯誤 +14 目標檔案夾: +15 前往 +16 系統名稱: +17 檔案管理者 -- 前往 +18 漏失目標檔案夾名稱。\n\ + 請鍵入檔案夾名稱,或自列表中選擇檔案夾。 -19 "譯ト麔淰扢ボ磝攜ポ恄﹞\n\n\ +19 "下列檔案夾名稱不合法。\n\n\ %s" -20 "睎隓恄籠葎怉麔淰扢\n\n\ +20 "您無法切換到檔案夾\n\n\ %s\n\n\ -モ珜旂揧迻戔柁麔淰扢\n\ -邴髓攜蠢暐髲砫麔淰扢﹞" +因為是被限制的檔案夾\n\ +所以不允許察看此檔案夾。" $set 3 $ ****** Module: ChangeDirP.c ****(developer comment only)******** @@ -117,21 +117,21 @@ $ Messages 2-6 are labels for the folder Status Line $ Message 3 is required for SUN systems $ Message 2-9 are obsolete -2 %d 堈麔淰 %d 堈騿鰳 -3 %1$d 堈麔淰 %2$d 堈騿鰳 -4 %3d 堈麔淰 ... -5 幺抻 ... -6 %d 堈騿鰳 +2 %d 個檔案 %d 個隱藏 +3 %1$d 個檔案 %2$d 個隱藏 +4 %3d 個檔案 ... +5 讀取 ... +6 %d 個隱藏 -7 %d 堈禋げ %d 堈騿鰳 -8 %1$d 堈禋げ %2$d 堈騿鰳 -9 %3d 堈禋げ ... +7 %d 個項目 %d 個隱藏 +8 %1$d 個項目 %2$d 個隱藏 +9 %3d 個項目 ... -10 %d 堈禋げ -11 %d 堈禋げ... -12 %d 堈禋げ %d 堈騿鰳 +10 %d 個項目 +11 %d 個項目... +12 %d 個項目 %d 個隱藏 @@ -152,413 +152,413 @@ $ Messages 11-19 are the title and text for warning messages displayed $ when an object/set of objects is moved/copied/linked to a folder $ containing object(s) with the same name -6 棬汃蠆諟 -7 呥隓珜 %s 邴泂氂柁棬汃﹞\n +6 動作錯誤 +7 並無為 %s 所定義的動作。\n -8 儸槴麔淰髓麔淰ボ磝Бョ齡汃洠睮斕﹞\n\ -霘藞謥攜フ柁麔淰ボ磝﹞ -9 儸槴麔淰髓ボ磝Бョ﹞\n\ -霘藞謥攜フ柁麔淰ボ磝﹞ +8 已經有檔案以此檔案名稱存在工作空間中。\n\ +請選擇不同的檔案名稱。 +9 已經有檔案以此名稱存在。\n\ +請選擇不同的檔案名稱。 -11 麔淰磣隉炟 -- 傶棬/闀蕍/椵廎 滙夼 +11 檔案管理者 -- 移動/複製/連結 警告 $ Messages 12-15 deal with multiple files/folders -12 髓譯麔淰 (迖麔淰扢)\n\ -儸槴Бョ卼\n\ +12 以下檔案 (或檔案夾)\n\ +已經存在於\n\ %s: -13 \n闀蕍汃鞄渿鞂适嬣楙咍麔淰﹞\n\ - 睎衭凭㶴瑱⺼蓇?\n -14 \n傶棬汃鞄渿鞂适嬣楙咍麔淰﹞\n\ - 睎衭凭㶴瑱⺼蓇?\n -15 \n椵廎汃鞄渿鞂适嬣楙咍麔淰﹞\n\ - 睎衭凭㶴瑱⺼蓇?\n +13 \n複製作業將會重寫這些檔案。\n\ + 您要繼續進行嗎?\n +14 \n移動作業將會重寫這些檔案。\n\ + 您要繼續進行嗎?\n +15 \n連結作業將會重寫這些檔案。\n\ + 您要繼續進行嗎?\n $ Messages 16&17 deal with a single file/folder -16 ボ磝珜\n%s\n欄昡ス儸Бョ麔淰扢斕﹞\n%s -17 ボ磝珜\n%s\n欄麔淰扢儸Бョ麔淰扢斕﹞\n%s +16 名稱為\n%s\n之物件已存在此檔案夾中。\n%s +17 名稱為\n%s\n之檔案夾已存在此檔案夾中。\n%s $ Labels in rename/replace and merge/replace dialogs -20 睎衭惉矓錵? -21 抻鷥儸Бョ柁昡ス﹞ -22 渿儸Бョ柁昡ス适隞杬ボ珜” -24 渿怚堈麔淰扢柁蠡晥ポ坰﹞ -25 抻鷥儸Бョ柁麔淰扢﹞ +20 您要做什麼? +21 取代已存在的物件。 +22 將已存在的物件重新命名為: +24 將兩個檔案夾的內容合併。 +25 取代已存在的檔案夾。 -27 薚泂 -28 抻祤 -29 赮伢諰咭 -30 抻祤傶棬 -31 抻祤闀蕍 -32 抻祤椵廎 +27 確定 +28 取消 +29 輔助說明 +30 取消移動 +31 取消複製 +32 取消連結 $ Window title for overwrite dialogs -33 麔淰磣隉炟 -- 傶棬/闀蕍/椵廎 滙夼 -34 麔淰磣隉炟 -- 傶棬滙夼 -35 麔淰磣隉炟 -- 闀蕍滙夼 -36 麔淰磣隉炟 -- 椵廎滙夼 +33 檔案管理者 -- 移動/複製/連結 警告 +34 檔案管理者 -- 移動警告 +35 檔案管理者 -- 複製警告 +36 檔案管理者 -- 連結警告 -37 昡ス适隞杬ボ -- 蠆諟 -38 %s\n儸槴Бョ”霘藞謥ⅱ⼃柁ボ磝﹞ -39 %s\n隓恄适隞杬ボ珜\n%s\n%s -40 昡ス抻鷥 -- 蠆諟 -41 楙堈麔淰麷伀薚柁頝踛儸槴䬷ざ﹞ +37 物件重新命名 -- 錯誤 +38 %s\n已經存在:請選擇另外的名稱。 +39 %s\n無法重新命名為\n%s\n%s +40 物件取代 -- 錯誤 +41 這個檔案類別正確的圖像已經顯示。 -51 闀蕍斕 -52 傶棬斕 -53 椵廎斕 -54 彶葎斕 -56 抻鷥儸Бョ柁昡ス -57 髓眃蠹蹌磍柁巖冈适隞杬ボ昡ス -58 儸闀蕍 -59 儸傶棬 -60 儸椵廎 -61 儸䨣彶 -68 昡ス %s﹞ -69 %d 昡ス %s﹞ -70 %s\n%d 昡ス縋麔淰扢斕柁昡スフボ\n%s -71 %s\n1 昡ス縋麔淰扢斕柁昡スフボ\n%s -72 闀蕍 -73 傶棬 -74 椵廎 -75 汃鞄 -76 闀蕍 -77 傶棬 -78 椵廎 -79 汃鞄 -80 %s 抻祤 -- 麔淰扢ゝ揧 %s.\n\n睎衭抻鷥柁麔淰扢攜逑揧伝崽\nモ珜篎麔淰扢斕柁昡ス隓恄伝崽﹞\n篎麔淰斕柁怬鱗昡ス⑴逑ョ%s 嶂囥彘欐欄虳祼髓揧伝崽藹﹞ -81 %s\n\n楙堈棯纕瑊⑴逑柁婘モ旂睎扽嵁髱篎隓恄崽⑩柁昡ス柁嬣蘋ḷ暐⑴﹞\n睎⑴髓䨣彶嬣蘋ḷ迖适隞杬ボ睎ョ %s 柁麔淰扢欄ボ磝﹜\nヵ⼓埢祼攜鞂テ砨フ柁ボ磝藹﹞ -82 %s 儸伝崽\n\n%s\n隓恄崽⑩﹞\n\n楙堈棯纕瑊⑴逑柁婘モ旂睎扽篎麔淰柁嬣蘋ḷ暐⑴﹞\n睎⑴髓䨣彶嬣蘋ḷ迖适隞杬ボ睎邴ョ柁麔淰欄ボ磝﹜\nヵ⼓埢祼攜鞂テ砨フ柁ボ磝藹﹞ -83 %s 儸抻祤 -- 昡スゝ揧 %s.\n\n稌㶴柁昡ス隓恄⺌棬揧适隞杬ボ\n%s\n\n%d 昡スョ %s 嶂囥彘欐虳祼揧适隞杬ボ藹﹞ -84 %s\n\n楙堈棯纕瑊⑴逑柁婘モ旂睎髱篎昡ス扽嬣蘋ḷ暐⑴﹞睎⑴髓䨣彶嬣蘋ḷ暐⑴﹜\n迖旂髱ョ %s 柁昡ス适隞杬ボ﹜ヵ⼓祼攜テ砨フ柁ボ磝藹﹞ -85 %s 儸抻祤 -- 昡スゝ揧 %s.\n\n稌㶴柁昡ス隓恄⺌棬揧适隞杬ボ\n%s\n\n1 昡スョ %s 嶂囥彘欐虳祼揧适隞杬ボ藹﹞ -86 %s 儸抻祤 -- 昡スゝ揧 %s﹞\n\n睎衭抻鷥柁麔淰扢隓恄揧伝崽﹞\n 麔淰扢” %s\n\n麔淰扢斕柁栲咍昡ス⑴逑ョ\n%s 嶂囥彘欐虳祼揧伝崽藹﹞\n\n1 堈怬鱗昡ス儸揧伝崽﹞\n\n楙堈棯纕瑊⑴逑柁婘モ旂\n睎髱篎麔淰扢扽嬣蘋ḷ暐⑴﹞睎⑴髓䨣彶嬣蘋ḷ暐⑴﹜\n迖旂渿睎ョ %s 柁麔淰扢适隞杬ボ﹜ヵ⼓祼攜テ砨フ柁ボ磝藹﹞ -87 %s 儸抻祤 -- 昡スゝ揧 %s.\n\n睎衭抻鷥柁麔淰扢隓恄揧伝崽﹞\n 麔淰扢”%s\n\n麔淰扢斕柁栲咍昡ス⑴逑ョ\n%s 嶂囥彘欐虳祼揧伝崽藹﹞\n\n1 堈怬鱗柁昡ス儸揧伝崽﹞\n\n楙堈棯纕瑊⑴逑柁婘モ旂\n睎髱篎麔淰扢扽嬣蘋ḷ暐⑴﹞睎⑴髓䨣彶嬣蘋ḷ暐⑴﹜\n迖旂髱睎ョ %s 柁麔淰扢适隞杬ボ﹜ヵ⼓祼攜鞂テ砨フ柁ボ磝藹﹞ -88 %s 儸抻祤 -- 昡スゝ揧 %s.\n\n睎衭抻鷥柁麔淰隓恄揧伝崽﹞\n 麔淰”%s\n\n%d 堈怬鱗昡ス儸揧伝崽﹞\n\n楙堈棯纕瑊⑴逑柁婘モ旂\n睎髱篎麔淰扽嬣蘋ḷ暐⑴﹞睎⑴髓䨣彶嬣蘋ḷ暐⑴﹜\n迖旂髱睎ョ %s 柁麔淰适隞杬ボ﹜ヵ⼓祼攜鞂テ砨フ柁ボ磝藹﹞ -89 %s 儸抻祤 -- 昡スゝ揧 %s.\n\n睎衭抻鷥柁麔淰隓恄揧伝崽﹞\n 麔淰”%s\n\n%1 堈怬鱗昡ス儸揧伝崽﹞\n\n楙堈棯纕瑊⑴逑柁婘モ旂\n睎髱篎麔淰扽嬣蘋ḷ暐⑴﹞睎⑴髓䨣彶嬣蘋ḷ暐⑴﹜\n迖旂髱睎ョ %s 柁麔淰适隞杬ボ﹜ヵ⼓祼攜鞂テ砨フ柁ボ磝藹﹞ -90 ボ磝鍙秜﹞\n\ - 昡スョ齡汃洠睮茯葔泂⻏譫﹞\n\ - ョ茯葔泂⻏譫柁栲堈昡ス欄ボ磝\n\ - 縋睎邴耰蘋柁砨フ﹞\n\ - 霘藞謥攜フ柁ボ磝﹞ +51 複製中 +52 移動中 +53 連結中 +54 更換中 +56 取代已存在的物件 +57 以附加編號的方式重新命名物件 +58 已複製 +59 已移動 +60 已連結 +61 已變更 +68 物件 %s。 +69 %d 物件 %s。 +70 %s\n%d 物件與檔案夾中的物件同名\n%s +71 %s\n1 物件與檔案夾中的物件同名\n%s +72 複製 +73 移動 +74 連結 +75 作業 +76 複製 +77 移動 +78 連結 +79 作業 +80 %s 取消 -- 此檔案夾未被 %s.\n\n您要取代的檔案夾不能被刪除\n因為該檔案夾中的物件無法刪除。\n該檔案中的其他物件可能在%s 程序停止之前就以被刪除了。 +81 %s\n\n這個問題最可能的原因是您沒有針對該無法除去的物件的寫入權許可。\n您可以變更寫入權或重新命名您正在 %s 的檔案夾之名稱,\n如此它們就不會再有相同的名稱了。 +82 %s 已刪除\n\n%s\n無法除去。\n\n這個問題最可能的原因是您沒有該檔案的寫入權許可。\n您可以變更寫入權或重新命名您所在的檔案之名稱,\n如此它們就不會再有相同的名稱了。 +83 %s 已取消 -- 物件未被 %s.\n\n接續的物件無法自動被重新命名\n%s\n\n%d 物件在 %s 程序停止前就被重新命名了。 +84 %s\n\n這個問題最可能的原因是您對該物件沒有寫入權許可。您可以變更寫入權許可,\n或是對正在 %s 的物件重新命名,如此它就不再有相同的名稱了。 +85 %s 已取消 -- 物件未被 %s.\n\n接續的物件無法自動被重新命名\n%s\n\n1 物件在 %s 程序停止前就被重新命名了。 +86 %s 已取消 -- 物件未被 %s。\n\n您要取代的檔案夾無法被刪除。\n 檔案夾: %s\n\n此檔案夾中的某些物件可能在\n%s 程序停止前就被刪除了。\n\n1 個其他物件已被刪除。\n\n這個問題最可能的原因是\n您對該檔案夾沒有寫入權許可。您可以變更寫入權許可,\n或是將您正在 %s 的檔案夾重新命名,如此它就不再有相同的名稱了。 +87 %s 已取消 -- 物件未被 %s.\n\n您要取代的檔案夾無法被刪除。\n 檔案夾:%s\n\n檔案夾中的某些物件可能在\n%s 程序停止前就被刪除了。\n\n1 個其他的物件已被刪除。\n\n這個問題最可能的原因是\n您對該檔案夾沒有寫入權許可。您可以變更寫入權許可,\n或是對您正在 %s 的檔案夾重新命名,如此它就不會再有相同的名稱了。 +88 %s 已取消 -- 物件未被 %s.\n\n您要取代的檔案無法被刪除。\n 檔案:%s\n\n%d 個其他物件已被刪除。\n\n這個問題最可能的原因是\n您對該檔案沒有寫入權許可。您可以變更寫入權許可,\n或是對您正在 %s 的檔案重新命名,如此它就不會再有相同的名稱了。 +89 %s 已取消 -- 物件未被 %s.\n\n您要取代的檔案無法被刪除。\n 檔案:%s\n\n%1 個其他物件已被刪除。\n\n這個問題最可能的原因是\n您對該檔案沒有寫入權許可。您可以變更寫入權許可,\n或是對您正在 %s 的檔案重新命名,如此它就不會再有相同的名稱了。 +90 名稱衝突。\n\ + 物件在工作空間背景定位上。\n\ + 在背景定位上的某個物件之名稱\n\ + 與您所鍵入的相同。\n\ + 請選擇不同的名稱。 -91 彘欐闀蕍 -92 彘欐椵廎 -93 彘欐傶棬 +91 停止複製 +92 停止連結 +93 停止移動 -94 "蠆諟" +94 "錯誤" -95 "抻祤傶棬 - 攜テ傶棬麔淰扢﹞\n\n\ -モ珜麔淰扢蠡柁昡ス隓恄伝崽\n\ -邴髓隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ -麔淰扢蠡柁栲咍昡ス⑴逑ョ傶棬嶂囥\n\ -彘欐虳祼伝崽藹﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼隓恄\n\ -伝崽柁昡ス谹韁嬣蘋ḷ﹞彶庍\n\ -嬣蘋ḷ迖鷗棬彶庍衭傶棬柁\n\ -麔淰扢ボ磝﹞" +95 "取消移動 - 不再移動檔案夾。\n\n\ +因為檔案夾內的物件無法刪除\n\ +所以無法刪除您要取代的檔案夾。\n\ +檔案夾內的某些物件可能在移動程序\n\ +停止前就刪除了。\n\n\ +造成此問題的原因可能是對於無法\n\ +刪除的物件缺少寫入權。更改\n\ +寫入權或手動更改要移動的\n\ +檔案夾名稱。" -96 "抻祤闀蕍 - 攜テ闀蕍麔淰扢﹞\n\n\ -モ珜麔淰扢蠡柁昡ス隓恄伝崽\n\ -邴髓隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ -麔淰扢蠡柁栲咍昡ス⑴逑ョ闀蕍嶂囥\n\ -彘欐虳祼伝崽藹﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼隓恄\n\ -伝崽柁昡ス谹韁嬣蘋ḷ﹞彶庍\n\ -嬣蘋ḷ迖鷗棬彶庍衭闀蕍柁\n\ -麔淰扢ボ磝﹞" +96 "取消複製 - 不再複製檔案夾。\n\n\ +因為檔案夾內的物件無法刪除\n\ +所以無法刪除您要取代的檔案夾。\n\ +檔案夾內的某些物件可能在複製程序\n\ +停止前就刪除了。\n\n\ +造成此問題的原因可能是對於無法\n\ +刪除的物件缺少寫入權。更改\n\ +寫入權或手動更改要複製的\n\ +檔案夾名稱。" -97 "抻祤椵廎 - 攜テ椵廎麔淰扢﹞\n\n\ -モ珜麔淰扢蠡柁昡ス隓恄伝崽\n\ -邴髓隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ -麔淰扢蠡柁栲咍昡ス⑴逑ョ椵廎嶂囥\n\ -彘欐虳祼伝崽藹﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼隓恄\n\ -伝崽柁昡ス谹韁嬣蘋ḷ﹞彶庍\n\ -嬣蘋ḷ迖鷗棬彶庍衭椵廎柁\n\ -麔淰扢ボ磝﹞" +97 "取消連結 - 不再連結檔案夾。\n\n\ +因為檔案夾內的物件無法刪除\n\ +所以無法刪除您要取代的檔案夾。\n\ +檔案夾內的某些物件可能在連結程序\n\ +停止前就刪除了。\n\n\ +造成此問題的原因可能是對於無法\n\ +刪除的物件缺少寫入權。更改\n\ +寫入權或手動更改要連結的\n\ +檔案夾名稱。" -98 "抻祤汃鞄 - 攜彶庍麔淰扢﹞\n\n\ -モ珜麔淰扢蠡柁昡ス隓恄伝崽\n\ -邴髓隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ -麔淰扢蠡柁栲咍昡ス⑴逑ョ嶂囥\n\ -彘欐虳祼伝崽藹﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼隓恄\n\ -伝崽柁昡ス谹韁嬣蘋ḷ﹞彶庍 \n\ -嬣蘋ḷ迖鷗棬彶ボ衭彶庍柁\n\ -麔淰扢﹞" +98 "取消作業 - 不更改檔案夾。\n\n\ +因為檔案夾內的物件無法刪除\n\ +所以無法刪除您要取代的檔案夾。\n\ +檔案夾內的某些物件可能在程序\n\ +停止前就刪除了。\n\n\ +造成此問題的原因可能是對於無法\n\ +刪除的物件缺少寫入權。更改 \n\ +寫入權或手動更名要更改的\n\ +檔案夾。" -99 "抻祤傶棬\n\n\ +99 "取消移動\n\n\ %s\n\ -隓恄伝崽﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼\n\ -麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶庍\n\ -衭傶棬柁麔淰ボ磝﹞" +無法刪除。\n\n\ +造成此問題的原因可能是對於\n\ +此檔案缺少寫入權。\n\ +更改寫入權或手動更改\n\ +要移動的檔案名稱。" -100 "抻祤闀蕍\n\n\ +100 "取消複製\n\n\ %s\n\ -隓恄伝崽﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼\n\ -麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶庍\n\ -衭闀蕍柁麔淰ボ磝﹞" +無法刪除。\n\n\ +造成此問題的原因可能是對於\n\ +此檔案缺少寫入權。\n\ +更改寫入權或手動更改\n\ +要複製的檔案名稱。" -101 "抻祤椵廎\n\n\ +101 "取消連結\n\n\ %s\n\ -隓恄伝崽﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼\n\ -麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶庍\n\ -衭椵廎柁麔淰ボ磝﹞" +無法刪除。\n\n\ +造成此問題的原因可能是對於\n\ +此檔案缺少寫入權。\n\ +更改寫入權或手動更改\n\ +要連結的檔案名稱。" -102 "抻祤汃鞄\n\n\ +102 "取消作業\n\n\ %s\n\ -隓恄伝崽﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼\n\ -麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭彶庍柁麔淰﹞" +無法刪除。\n\n\ +造成此問題的原因可能是對於\n\ +此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要更改的檔案。" -103 "抻祤傶棬 - 扽傶棬ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +103 "取消移動 - 沒有移動任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -傶棬嶂囥彘欐虳彶ボ %d 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭傶棬柁昡ス﹞" +移動程序停止前更名 %d 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要移動的物件。" -104 "抻祤闀蕍 - 扽闀蕍ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +104 "取消複製 - 沒有複製任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -闀蕍嶂囥彘欐虳彶ボ %d 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭闀蕍柁昡ス﹞" +複製程序停止前更名 %d 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要複製的物件。" -105 "抻祤椵廎 - 扽椵廎ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +105 "取消連結 - 沒有連結任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -椵廎嶂囥彘欐虳彶ボ %d 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭椵廎柁昡ス﹞" +連結程序停止前更名 %d 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要連結的物件。" -106 "抻祤汃鞄 -扽彶庍ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +106 "取消作業 -沒有更改任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -嶂囥彘欐虳彶ボ %d 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭彶庍柁昡ス﹞" +程序停止前更名 %d 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要更改的物件。" -107 "抻祤傶棬 - 扽傶棬ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +107 "取消移動 - 沒有移動任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -傶棬嶂囥彘欐虳彶ボ 1 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭傶棬柁昡ス﹞" +移動程序停止前更名 1 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要移動的物件。" -108 "抻祤闀蕍 - 扽闀蕍ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +108 "取消複製 - 沒有複製任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -闀蕍嶂囥彘欐虳彶ボ 1 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭闀蕍柁昡ス﹞" +複製程序停止前更名 1 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要複製的物件。" -109 "抻祤椵廎 - 扽椵廎ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +109 "取消連結 - 沒有連結任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -椵廎嶂囥彘欐虳彶ボ 1 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭椵廎柁昡ス﹞" +連結程序停止前更名 1 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要連結的物件。" -110 "抻祤汃鞄 - 扽彶庍ズ昡ス﹞\n\n\ -譯ト昡ス隓恄⺌棬彶ボ\n\ +110 "取消作業 - 沒有更改任何物件。\n\n\ +下列物件無法自動更名\n\ %s\n\n\ -嶂囥彘欐虳彶ボ 1 堈昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼昡ス谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭彶庍柁昡ス﹞" +程序停止前更名 1 個物件。\n\n\ +造成此問題的原因可能是對於此物件缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要更改的物件。" -111 "抻祤傶棬 - 扽傶棬ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -傶棬嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭傶棬柁麔淰扢﹞" +111 "取消移動 - 沒有移動任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +移動程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要移動的檔案夾。" -112 "抻祤闀蕍 - 扽闀蕍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -闀蕍嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭闀蕍柁麔淰扢﹞" +112 "取消複製 - 沒有複製任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +複製程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要複製的檔案夾。" -113 "抻祤椵廎 - 扽椵廎ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -椵廎嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭椵廎柁麔淰扢﹞" +113 "取消連結 - 沒有連結任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +連結程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要連結的檔案夾。" -114 "抻祤汃鞄 - 扽彶庍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭彶庍柁麔淰扢﹞" +114 "取消作業 - 沒有更改任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要更改的檔案夾。" -115 "抻祤傶棬 - 扽傶棬ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -傶棬嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭傶棬柁麔淰扢﹞" +115 "取消移動 - 沒有移動任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +移動程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要移動的檔案夾。" -116 "抻祤闀蕍 - 扽闀蕍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -闀蕍嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭闀蕍柁麔淰扢﹞" +116 "取消複製 - 沒有複製任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +複製程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要複製的檔案夾。" -117 "抻祤椵廎 - 扽椵廎ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -椵廎嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭椵廎柁麔淰扢﹞" +117 "取消連結 - 沒有連結任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +連結程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要連結的檔案夾。" -118 "抻祤汃鞄 - 扽彶庍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰扢﹞\n\ - 麔淰扢: %s\n\n\ -嶂囥彘欐虳⑴逑儸伝崽\n\ -麔淰扢斕柁栲咍昡ス﹞\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰扢谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭彶庍柁麔淰扢﹞" +118 "取消作業 - 沒有更改任何物件。\n\n\ +無法刪除您要取代的檔案夾。\n\ + 檔案夾: %s\n\n\ +程序停止前可能已刪除\n\ +檔案夾中的某些物件。\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案夾缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要更改的檔案夾。" -119 "抻祤傶棬 - 扽傶棬ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ - 麔淰: %s\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭傶棬柁麔淰﹞" +119 "取消移動 - 沒有移動任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ + 檔案: %s\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要移動的檔案。" -120 "抻祤闀蕍 - 扽闀蕍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ - 麔淰: %s\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭闀蕍柁麔淰﹞" +120 "取消複製 - 沒有複製任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ + 檔案: %s\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要複製的檔案。" -121 "抻祤椵廎 - 扽椵廎ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ - 麔淰: %s\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭椵廎柁麔淰﹞" +121 "取消連結 - 沒有連結任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ + 檔案: %s\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要連結的檔案。" -122 "抻祤汃鞄 - 扽彶庍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ - 麔淰: %s\n\n\ -儸伝崽 %d 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭彶庍柁麔淰﹞" +122 "取消作業 - 沒有更改任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ + 檔案: %s\n\n\ +已刪除 %d 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要更改的檔案。" -123 "抻祤傶棬 - 扽傶棬ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ -\ 麔淰: %s\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭傶棬柁麔淰﹞" +123 "取消移動 - 沒有移動任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ +\ 檔案: %s\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要移動的檔案。" -124 "抻祤闀蕍 - 扽闀蕍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ -\ 麔淰: %s\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭闀蕍柁麔淰﹞" +124 "取消複製 - 沒有複製任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ +\ 檔案: %s\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要複製的檔案。" -125 "抻祤椵廎 - 扽椵廎ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ -\ 麔淰: %s\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭椵廎柁麔淰﹞" +125 "取消連結 - 沒有連結任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ +\ 檔案: %s\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要連結的檔案。" -126 "抻祤汃鞄 - 扽彶庍ズ昡ス﹞\n\n\ -隓恄伝崽睎衭抻鷥柁麔淰﹞\n\ -\ 麔淰: %s\n\n\ -儸伝崽 1 堈怬鱗昡ス﹞\n\n\ -楸棯纕柁婘モ⑴逑旂髱卼麔淰谹韁嬣蘋ḷ﹞\n\ -彶庍嬣蘋ḷ迖鷗棬彶ボ\n\ -衭彶庍柁麔淰﹞" +126 "取消作業 - 沒有更改任何物件。\n\n\ +無法刪除您要取代的檔案。\n\ +\ 檔案: %s\n\n\ +已刪除 1 個其他物件。\n\n\ +造成此問題的原因可能是對於此檔案缺少寫入權。\n\ +更改寫入權或手動更名\n\ +要更改的檔案。" -127 "儸傶棬 1 堈昡ス﹞" +127 "已移動 1 個物件。" -128 "儸傶棬 %d 堈昡ス﹞" +128 "已移動 %d 個物件。" -129 "儸闀蕍 1 堈昡ス﹞" +129 "已複製 1 個物件。" -130 "儸闀蕍 %d 堈昡ス﹞" +130 "已複製 %d 個物件。" -131 "儸椵廎 1 堈昡ス﹞" +131 "已連結 1 個物件。" -132 "儸椵廎 %d 堈昡ス﹞" +132 "已連結 %d 個物件。" -133 "儸彶庍 1 堈昡ス﹞" +133 "已更改 1 個物件。" -134 "儸彶庍 %d 堈昡ス﹞" +134 "已更改 %d 個物件。" -135 "隓恄渿昡ス %s 傶棬怉⼓ヾ冼﹞ " +135 "無法將物件 %s 移動到它本身。 " -136 "隓恄渿昡ス %s 闀蕍怉⼓ヾ冼﹞ " +136 "無法將物件 %s 複製到它本身。 " -137 "隓恄渿昡ス %s 椵廎怉⼓ヾ冼﹞ " +137 "無法將物件 %s 連結到它本身。 " -138 "譯ト昡ス彶ボ⼇絫\n\n\ +138 "下列物件更名失敗\n\n\ %s\n\n\ -⑴逑モ珜扽\n\ -彶庍昡スボ磝柁ḷ迻﹞" +可能因為沒有\n\ +更改物件名稱的權限。" -139 "譯ト昡ス抻鷥⼇絫\n\n\ +139 "下列物件取代失敗\n\n\ %s\n\n\ -⑴逑モ珜扽\n\ -抻鷥昡ス柁ḷ迻﹞" +可能因為沒有\n\ +取代物件的權限。" $ "NEW-" 140 Rename new object to: @@ -587,75 +587,75 @@ $ when the user has specified a title for dtfile windows $ Messages 32 and 33 are titles for the Link File dialog, Message 32 is used $ when the user has specified a title for dtfile windows -1 麔淰适隞杬ボ蠆諟 -2 麔淰闀蕍蠆諟 +1 檔案重新命名錯誤 +2 檔案複製錯誤 -3 麔淰迖麔淰扢ボ磝斕攜蠢暐洠眭 +3 檔案或檔案夾名稱中不允許有空格 -5 闀蕍麔淰 +5 複製檔案 -6 げ虳柁麔淰ボ磝” -7 隞柁麔淰ボ磝” -8 麔淰麷倛 -9 䬷ざ麔淰麷倛 +6 目前的檔案名稱: +7 新的檔案名稱: +8 檔案類型 +9 顯示檔案類型 -10 婘ッ藞謥柁麔淰攜テБョ﹞ -11 麔淰迖麔淰扢攜⑴洠く柁ボ磝﹞ -13 隓淩柁麔淰迖麔淰扢ボ磝﹞ +10 原先選擇的檔案不再存在。 +11 檔案或檔案夾不可有空白的名稱。 +13 無效的檔案或檔案夾名稱。 -14 瞅隞麔淰扢 +14 開新檔案夾 -16 隞麔淰扢ボ磝” +16 新檔案夾名稱: -20 唈ゥ麔淰扢蠆諟 -21 唈ゥ麔淰蠆諟 +20 建立檔案夾錯誤 +21 建立檔案錯誤 -22 隓恄唈ゥ髓洠く珜ボ磝柁麔淰迖麔淰扢﹞ -23 隓淩柁麔淰扢ボ磝﹞ -24 隓淩柁麔淰ボ磝﹞ +22 無法建立以空白為名稱的檔案或檔案夾。 +23 無效的檔案夾名稱。 +24 無效的檔案名稱。 -25 睎攜逑囷え闀蕍杬麟渿麔淰\n\ -闀蕍⺍齡汃洠睮﹞睎⽁禕囷え\n\ -"麔淰"衢逑玿斕柁`勂蘋齡汃洠睮` 杬麟﹜迖旂\n\ -渿麔淰泂⻏卼齡惉洠睮斕﹞ +25 您不能使用複製命令將檔案\n\ +複製至工作空間。您必須使用\n\ +"檔案"功能表中的`放入工作空間` 命令,或是\n\ +將檔案定位於工做空間中。 -26 瞅隞麔淰 +26 開新檔案 -27 麔淰磣隉炟 -- 闀蕍麔淰 -28 麔淰磣隉炟 -- 瞅隞麔淰扢 -29 麔淰磣隉炟 -- 瞅隞麔淰 +27 檔案管理者 -- 複製檔案 +28 檔案管理者 -- 開新檔案夾 +29 檔案管理者 -- 開新檔案 -30 傶棬麔淰 -31 麔淰磣隉炟 -- 傶棬麔淰 +30 移動檔案 +31 檔案管理者 -- 移動檔案 -32 椵廎麔淰 -33 麔淰磣隉炟 -- 椵廎麔淰 -34 げ簅麔淰扢” -35 昡スボ磝” -36 䬷ざ頝踛 +32 連結檔案 +33 檔案管理者 -- 連結檔案 +34 目標檔案夾: +35 物件名稱: +36 顯示圖像 -37 藞泂柁昡ス” -38 闀ヾボ磝” +37 選定的物件: +38 複本名稱: -39 庍ボ蠆諟 -40 楙堈昡ス旂纂堈棬汃﹞\n\ - 棬汃頝踛簅圝攜逑枺稌庍ボ﹞ +39 改名錯誤 +40 這個物件是一個動作。\n\ + 動作圖像標籤不能直接改名。 -41 薚柁罶涷麷伀頝踛儸䬷ざ. +41 正確的資料類別圖像已顯示. -42 "傶棬昡ス" +42 "移動物件" -43 "麔淰磣隉炟 - 傶棬昡ス" +43 "檔案管理者 - 移動物件" -44 "闀蕍昡ス" +44 "複製物件" -45 "麔淰磣隉炟 - 闀蕍昡ス" +45 "檔案管理者 - 複製物件" -46 "椵廎昡ス" +46 "連結物件" -47 "麔淰磣隉炟 - 椵廎昡ス" +47 "檔案管理者 - 連結物件" -48 "隞昡スボ磝:" +48 "新物件名稱:" $set 11 @@ -664,104 +664,104 @@ $ ****** Module: FileManip.c ****(developer comment only)******** $ Message 6 is the title for an error dialog $ Messages 9, 14, 16, 28, and 30-36 are file manipulation error messages -6 麔淰搢隉蠆諟 +6 檔案處理錯誤 -9 睎隓恄渿麔淰⺌\n\ -麔淰杶扜麔泂⻏⺍齡汃洠睮斕﹞ +9 您無法將檔案自\n\ +檔案垃圾檔定位至工作空間中。 -14 隓恄岊怉麔淰扢柁⻏殦﹞ -16 麔淰扢隓恄傶⺍ヾ冼欄斕﹞\n%s -28 隓恄岊怉 %s﹞ -30 隓恄傶棬迖适隞杬ボ麔淰扢 %s﹞\n\ -邴珜麔淰扢迖怬騵麔淰扢䬷ざ柁麔淰磣隉炟槉棷\n\ -眙⽁禕ョ麔淰扢揧傶棬迖适隞杬ボ虳驨椲﹞ -31 幺抻%s渀僛ぇ蠆諟﹞ -32 隓恄适隞杬ボ %s -33 隓恄瞅絒 %s -34 睎扽傶棬 %s 柁暐⑴﹞\n\ -隑゛﹜睎⑴髓闀蕍篎麔淰 (霘ョ\n\ -侹篎麔淰渀囷え )﹞ -35 隓恄闀蕍麔淰扢⺍ヾ冼. -36 隓恄唈ゥ騵嶂囥﹞ +14 無法找到檔案夾的位置。 +16 檔案夾無法移至本身之中。\n%s +28 無法找到 %s。 +30 無法移動或重新命名檔案夾 %s。\n\ +所有為檔案夾或其子檔案夾顯示的檔案管理者視區\n\ +皆必須在檔案夾被移動或重新命名前關閉。 +31 讀取%s時發生錯誤。 +32 無法重新命名 %s +33 無法開啟 %s +34 您沒有移動 %s 的許可。\n\ +然而,您可以複製該檔案 (請在\n\ +拖曳該檔案時使用 )。 +35 無法複製檔案夾至本身. +36 無法建立子程序。 -37 睎攜逑渿麔淰⺌\n\ -麔淰杶扜麔斕侹⺍齡汃洠睮﹞\n\ -蚍衭⺌麔淰杶扜麔斕崽⑩昡ス﹜\n\ - --霘藞謥篎昡ス﹜隑悒\n\ - -霘藞謥 '勂ャ'\n\ -髓譫棬汃旂ョ"麔淰"衢逑玿迖篎昡ス柁伒隃衢逑玿斕汒﹞\n\ -隑悒睎⑴髓渿篎昡ス⺌麔淰衢逑玿斕侹⺍\n\ -齡汃洠睮茯葔泂⻏譫勂殦﹞ +37 您不能將檔案自\n\ +檔案垃圾檔中拖曳至工作空間。\n\ +若要自檔案垃圾檔中除去物件,\n\ + --請選擇該物件,然後\n\ + -請選擇 '放回'\n\ +以上動作是在"檔案"功能表或該物件的即現功能表中完成。\n\ +然後您可以將該物件自檔案功能表中拖曳至\n\ +工作空間背景定位上放置。 -38 睎扽傶棬%s柁暐⑴﹞\n\ -隑゛﹜睎⑴髓傶棬篎昡ス﹞\n\ -蚍衭闀蕍昡ス”\n\ - -- 霘挹⻖ 耰﹜隑悒\n\ - -- 髓睎柁僶趡侹篎昡ス﹞\n\ -迖旂\n\ - -- 囷え衢逑犓斕"藞抻"伒隃衢逑玿斕柁"闀蕍怉"杬麟﹞ +38 您沒有移動%s的許可。\n\ +然而,您可以移動該物件。\n\ +若要複製物件:\n\ + -- 請按住 鍵,然後\n\ + -- 以您的滑鼠拖曳該物件。\n\ +或是\n\ + -- 使用功能軸中"選取"即現功能表中的"複製到"命令。 -39 隓恄唈ゥ騵嶂囥﹞\n\ - 侇嗄斕嶂囥欄禨げ儸蝞瑊騰畽﹞\n\ - 霘彘欐げ虳ョ欹⺼柁栲咍嶂囥迖嶂冈﹜\n\ - 隑悒适隞箹篎衢逑﹞ +39 無法建立子程序。\n\ + 系統中程序之數目已達最大量。\n\ + 請停止目前正在執行的某些程序或程式,\n\ + 然後重新試該功能。 -40 坭鳲昡ス縋げ簅昡ス砨フ﹞\n%s -41 麔淰扢\n%s\n攜Бョ﹞ -42 睎衭闀蕍柁げ柁ユ扽\n\ - 洠睮⑴え﹞ -43 睎衭傶棬柁げ柁ユ扽\n\ - 洠睮⑴え﹞ -44 扽髱昡ス %s 欹⺼銊傶棬汃﹞\n\ - 攜逑銊傶篎昡ス⺍儸篎昡ス欄麔淰扢﹞\n\ - 睎⽁禕藣蘋纂堈攜フ柁げ柁ユ麔淰扢\n\ - ボ磝懼逑銊傶篎昡ス﹞ -45 扽髱昡ス %s 欹⺼闀蕍棬汃﹞\n\ - ⽁禕彶庍げ柁麔淰扢ボ磝迖闀\n\ - ヾボ磝﹜懼逑唈ゥ闀ヾ -46 扽髱昡ス %s 欹⺼椵廎棬汃﹞\n\ - ⽁禕彶庍げ柁麔淰扢ボ磝迖闀\n\ - ヾボ磝﹜懼逑唈ゥ闀ヾ﹞ +40 來源物件與目標物件相同。\n%s +41 檔案夾\n%s\n不存在。 +42 您要複製的目的地沒有\n\ + 空間可用。 +43 您要移動的目的地沒有\n\ + 空間可用。 +44 沒有對物件 %s 執行搬移動作。\n\ + 不能搬移該物件至已有該物件之檔案夾。\n\ + 您必須輸入一個不同的目的地檔案夾\n\ + 名稱才能搬移該物件。 +45 沒有對物件 %s 執行複製動作。\n\ + 必須更改目的檔案夾名稱或複\n\ + 本名稱,才能建立複本 +46 沒有對物件 %s 執行連結動作。\n\ + 必須更改目的檔案夾名稱或複\n\ + 本名稱,才能建立複本。 -47 隓恄銊傶麔淰扢⺍ヾ冼﹞ +47 無法搬移檔案夾至本身。 -48 "隓恄渿譯ト昡ス闀蕍怉麔淰扢 "%s"\n\n\ +48 "無法將下列物件複製到檔案夾 "%s"\n\n\ %s\n\n\ -⑴逑モ珜扽嬣蘋げ簅麔淰扢\n\ -柁ḷ迻﹞" +可能因為沒有寫入目標檔案夾\n\ +的權限。" -49 "隓恄渿譯ト昡ス傶棬怉麔淰扢 "%s"\n\n\ +49 "無法將下列物件移動到檔案夾 "%s"\n\n\ %s\n\n\ -⑴逑モ珜扽嬣蘋げ簅麔淰扢\n\ -柁ḷ迻﹞" +可能因為沒有寫入目標檔案夾\n\ +的權限。" -50 "隓恄渿譯ト昡ス傶棬怉麔淰扢 "%s"\n\n\ +50 "無法將下列物件移動到檔案夾 "%s"\n\n\ %s\n\n\ -⑴逑モ珜扽傶棬坭鳲昡ス\n\ -柁ḷ迻﹞" +可能因為沒有移動來源物件\n\ +的權限。" $ $ Messages 51 - 56 are new since CDE/SI. $ -51 "モ珜渿熅蝝闀蕍げ柁\n\ -柁瀄澥洠睮﹜邴髓攜逑闀蕍\n\ -麔淰迖麔淰扢﹞" +51 "因為將超過複製目的\n\ +的磁碟空間,所以不能複製\n\ +此檔案或檔案夾。" -52 "モ珜渿熅蝝傶棬げ柁\n\ -柁瀄澥洠睮﹜邴髓攜逑傶棬\n\ -麔淰迖麔淰扢﹞" +52 "因為將超過移動目的\n\ +的磁碟空間,所以不能移動\n\ +此檔案或檔案夾。" -53 "モ珜栲咍蠡楶蠆諟゛襓茬\n\ -闀蕍麔淰迖麔淰扢⼇絫﹞\n\ -蠡楶蠆諟旂:" +53 "因為某些內部錯誤而導致\n\ +複製檔案或檔案夾失敗。\n\ +內部錯誤是:" -54 "モ珜栲咍蠡楶蠆諟゛襓茬\n\ -傶棬麔淰迖麔淰扢⼇絫﹞\n\ -蠡楶蠆諟旂:" +54 "因為某些內部錯誤而導致\n\ +移動檔案或檔案夾失敗。\n\ +內部錯誤是:" -55 "霘棤℡侇嗄磣隉炟" +55 "請參考系統管理者" -56 "(ゝ洁柁):" +56 "(未知的):" 58 Process Create Error 59 Cannot create a child process to delete the dropped files. @@ -773,22 +773,22 @@ $ Message 3 is a dialog title $ Messages 4-6 are movement warning or error messages $ Message 7 is the title for the folder popup menus -3 傶棬麔淰 +3 移動檔案 -4 昡ス %s げ虳ョ麔淰扢 %s 斕﹞\n\ -睎げ虳渿昡ス傶芼麔淰扢 %s﹞\n\ -睎衭楙穔惉蓇? -5 昡ス %1$s げ虳ョ麔淰扢 %2$s 斕﹞\n\ -睎げ虳渿昡ス傶芼麔淰扢 %3$s﹞\n\ -睎衭楙穔惉蓇? -6 睎儸泂⻏柁麔淰斕茬韁纂堈旂坭⺌攜フ柁麔淰扢﹞\n\ -睎ョ渿邴柁楙咍麔淰傶芼 %s﹞\n\ -睎衭楙穔惉蓇? +4 物件 %s 目前在檔案夾 %s 中。\n\ +您目前正將物件移往檔案夾 %s。\n\ +您要這樣做嗎? +5 物件 %1$s 目前在檔案夾 %2$s 中。\n\ +您目前正將物件移往檔案夾 %3$s。\n\ +您要這樣做嗎? +6 您已定位的檔案中致少有一個是來自不同的檔案夾。\n\ +您正在將所有的這些檔案移往 %s。\n\ +您要這樣做嗎? -7 麔淰磣隉炟 +7 檔案管理者 -18 麔淰扢 %s 旂洠柁. -19 麔淰扢 %s 斕扽騵げ蠊. +18 檔案夾 %s 是空的. +19 檔案夾 %s 中沒有子目錄. $set 13 @@ -800,30 +800,30 @@ $ when the user has specified a title for dtfile windows $ Message 23 is a text field label for the Modify Filter List dialog $ Message 25 is a label for the Modify Filter List dialog -11 蠡泂圊 +11 內定值 -19 暋泂蝝孋蟟藞禋 +19 設定過濾器選項 -21 ツ楶藞抻 -22 抻祤邴藞抻 +21 全部選取 +22 取消所有選取 -23 蝝孋蟟А⻌ (藞謥迒)” +23 過濾器字串 (選擇性): -24 麔淰磣隉炟 -- 暋泂蝝孋蟟藞禋 +24 檔案管理者 -- 設定過濾器選項 -25 藞抻袺騿鰳欄麔淰麷伀” +25 選取欲隱藏之檔案類別: -26 キ騿鰳 (藞謥迒) +26 亦隱藏 (選擇性) -27 儸䬷ざ +27 已顯示 -28 儸騿鰳 +28 已隱藏 -29 フ渀䬷ざ (藞謥迒)” +29 同時顯示 (選擇性): -30 藞抻衭騿鰳柁罶涷麷伀: +30 選取要隱藏的資料類別: -31 "藞抻罶涷䔝錂倛旂:" +31 "選取資料纇型是:" $set 14 @@ -840,57 +840,57 @@ $ Messages 29 and 41 are titles for the Find Files dialog, Message 29 is used $ when the user has specified a title for dtfile windows $ Messages 30-40 and 42 are labels for the Find Files dialog -1 硻岊麔淰蠆諟 +1 尋找檔案錯誤 -14 絒棬 -15 彘欐 +14 啟動 +15 停止 -23 隓淩柁硻岊罶媢﹞\n\n\ -禕挴泂袺銌硻柁麔淰扢﹞ -26 隓淩柁硻岊罶媢﹞\n\n\ -藞抻柁麔淰儸攜Бョ﹞ -27 扽麔淰嗃ポ銌硻罶涷﹞ +23 無效的尋找資訊。\n\n\ +須指定欲搜尋的檔案夾。 +26 無效的尋找資訊。\n\n\ +選取的檔案已不存在。 +27 沒有檔案符合搜尋資料。 -29 硻岊麔淰迖麔淰扢 +29 尋找檔案或檔案夾 -30 霘蝫蘋纂堈迖ロ堈唫⻏髓挴泂袺硻岊柁麔淰” -31 麔淰迖麔淰扢ボ磝” -32 麔淰蠡晥” +30 請填入一個或多個欄位以指定欲尋找的檔案: +31 檔案或檔案夾名稱: +32 檔案內容: $ Messages 33-35 are used on hpux systems -33 瞅絒 -34 驨椲 -35 翦襙椵廎” +33 開啟 +34 關閉 +35 跟隨連結: -36 瞅絒隞槉棷 -37 勂蘋齡汃洠睮 -38 岊怉柁麔淰 (淂謾蠡晥)” -39 岊怉柁麔淰 (淂謾ボ磝縋蠡晥)” -40 岊怉柁麔淰 (淂謾ボ磝)” +36 開啟新視區 +37 放入工作空間 +38 找到的檔案 (根據內容): +39 找到的檔案 (根據名稱與內容): +40 找到的檔案 (根據名稱): -41 麔淰磣隉炟 -- 硻岊麔淰迖麔淰扢 +41 檔案管理者 -- 尋找檔案或檔案夾 -42 銌硻麔淰扢” +42 搜尋檔案夾: -43 硻岊蠆諟 +43 尋找錯誤 -44 谹韁"銌硻麔淰扢"ボ磝鰱禨﹞\n\ -霘耰蘋睎袺瞅沓銌硻柁麔淰扢ボ磝” +44 缺少"搜尋檔案夾"名稱引數。\n\ +請鍵入您欲開始搜尋的檔案夾名稱: -45 藞抻柁麔淰儸攜Бョ﹞\n\n\ -麔淰ョ銌硻嶂囥汒悒儸揧栲藺伝崽﹞ +45 選取的檔案已不存在。\n\n\ +檔案在搜尋程序完成後已被某人刪除。 -46 硻岊 +46 尋找 -47 霘蝫蘋纂堈迖ロ堈唫⻏髓挴泂袺硻岊柁禋げ” +47 請填入一個或多個欄位以指定欲尋找的項目: -48 瞅絒麔淰扢 +48 開啟檔案夾 -49 麔淰磣隉炟 -- 硻岊 +49 檔案管理者 -- 尋找 -50 谹韁"銌硻麔淰扢"ボ磝迖"麔淰蠡晥"鰱禨\n\ -霘耰蘋睎袺瞅沓銌硻柁麔淰扢ボ磝\n\ -迖耰蘋睎袺銌硻柁А⻌﹞ +50 缺少"搜尋檔案夾"名稱或"檔案內容"引數\n\ +請鍵入您欲開始搜尋的檔案夾名稱\n\ +或鍵入您欲搜尋的字串。 $set 16 @@ -918,119 +918,119 @@ $quote " $quote $ MESSAGE 2 WILL ONLY APPEAR IN THE DT ERRORLOG FILE -2 隓恄唈ゥ .dt 麔淰扢迖騵麔淰扢﹞ +2 無法建立 .dt 檔案夾或子檔案夾。 $ MESSAGE 6 WILL ONLY APPEAR IN THE DT ERRORLOG FILE, and stderr -6 僛ぇ X Toolkit 蠆諟... 廎忒﹞\n +6 發生 X Toolkit 錯誤... 結束。\n -16 鬊Б珜蠡泂圊藞禋 +16 儲存為內定值選項 $ MESSSAGES 17-18 WILL ONLY APPEAR IN THE DT ERRORLOG FILE -17 隓恄唈ゥ鬊Б蠡泂圊藞禋柁麔淰﹞ -18 隓恄瞅絒瞃栠麔淰﹞ +17 無法建立儲存內定值選項的檔案。 +18 無法開啟階段檔案。 -19 麔淰扢斒眭﹜\n\ +19 檔案夾規格,\n\ %s\n\ -攜旂纂堈麔淰扢﹞ -20 麔淰扢斒眭﹜\n\ +不是一個檔案夾。 +20 檔案夾規格,\n\ %s\n\ -攜Бョ﹞ -21 隓淩柁麔淰扢斒眭﹜ %s”%s﹞ +不存在。 +21 無效的檔案夾規格, %s:%s。 -22 侹蠆諟 +22 拖曳錯誤 -23 \nえ恄” %s...\n\n\ +23 \n用法: %s...\n\n\ -noview\n\n\ -\tDtfile ョɵ峇蟟篲冈譯欹⺼﹜\n\n\ - -session "瞃栠麔淰"\n\n\ -\tDtfile 欹⺼ョ"瞃栠麔淰"斕挴泂柁瞃栠麔淰\n\ -\t棤禨﹞\n\n\ - -folder 麔淰扢[麔淰扢﹜麔淰扢]\n\ - -dir 麔淰扢[﹜麔淰扢﹜麔淰扢]\n\n\ -\tDtfile 珜怀堈ョ"麔淰扢"棤禨斕挴泂柁麔淰扢\n\ -\t䬷ざ纂堈槉嵺﹞ "麔淰扢"棤禨⑴讓屼暐ロ\n\ -\t髓楉磍觰瞅柁麔淰扢﹞麔淰扢⑴逑ョ\n\ -\t'聤梏'斕﹞\n\n\ - -title "簅纕"\n\n\ -\tDtfile 囷えョ"簅纕"棤禨斕欐泂柁А⻌\n\ -\t汃珜槉嵺柁簅纕﹞\n\n\ - -help_volume "赮伢諰咭晥忟"\n\n\ -\tDtfile 囷えョ"赮伢諰咭晥忟"棤禨斕挴泂柁赮伢諰咭晥忟﹞\n\n\ +\tDtfile 在伺服器模式下執行,\n\n\ + -session "階段檔案"\n\n\ +\tDtfile 執行在"階段檔案"中指定的階段檔案\n\ +\t參數。\n\n\ + -folder 檔案夾[檔案夾,檔案夾]\n\ + -dir 檔案夾[,檔案夾,檔案夾]\n\n\ +\tDtfile 為每個在"檔案夾"參數中指定的檔案夾\n\ +\t顯示一個視窗。 "檔案夾"參數可包含許多\n\ +\t以逗號隔開的檔案夾。檔案夾可能在\n\ +\t'路徑'中。\n\n\ + -title "標題"\n\n\ +\tDtfile 使用在"標題"參數中止定的字串\n\ +\t作為視窗的標題。\n\n\ + -help_volume "輔助說明容體"\n\n\ +\tDtfile 使用在"輔助說明容體"參數中指定的輔助說明容體。\n\n\ -restricted\n\n\ -\tDtfile 攜鞂䬷ざョ抰迻麔淰扢欄譫柁麔淰扢﹞\n\ -\t蚍 -dir 藞禋揧囷え﹜衧篎藞禋斕挴泂柁麔淰扢\n\ -\t祼旂抰迻麔淰扢﹞蚍 -dir 藞禋ゝ揧囷え﹜\n\ -\t囷え炟柁げ虳麔淰扢祼旂抰迻麔淰扢﹞\n\n\ - -grid 瞅絒Q驨椲\n\n\ -\t瞅絒 9 麔淰髓篚鷁倛鳷䬷ざ﹞\n\ -\t驨椲 9 麔淰髓怬揧勂殦柁倛鳷䬷ざ﹞\n\n\ - -tree 瞅絒Q驨椲\n\n\ -\t瞅絒 9 麔淰髓痼麔淰扢篲冈䬷ざ﹞\n +\tDtfile 不會顯示在受限檔案夾之上的檔案夾。\n\ +\t若 -dir 選項被使用,則該選項中指定的檔案夾\n\ +\t就是受限檔案夾。若 -dir 選項未被使用,\n\ +\t使用者的目前檔案夾就是受限檔案夾。\n\n\ + -grid 開啟/關閉\n\n\ +\t開啟 = 檔案以網點型態顯示。\n\ +\t關閉 = 檔案以其被放置的型態顯示。\n\n\ + -tree 開啟/關閉\n\n\ +\t開啟 = 檔案以單檔案夾模式顯示。\n -24 \t驨椲 9 麔淰髓麔淰扢蹠篲冈䬷ざ﹞\n\n\ +24 \t關閉 = 檔案以檔案夾樹模式顯示。\n\n\ -tree_files /never/always/choose\n\n\ -\tnever 9 蹠篲冈怚堈昲鳷”楶ソ鶭痧迖儚巗﹞\n\ -\talways 9 蹠篲冈怚堈昲鳷”汒ツ鶭痧迖儚巗﹞\n\ -\tchoose 9 蹠篲冈警堈昲鳷”楶ソ鶭痧﹜汒ツ\n\ -\t鶭痧﹜迖儚巗﹞\n\n\ - -order А々禖囥Q麔淰麷伀Q戀蛺Q騰麵\n\n\ -\t麔淰髓挴泂柁禖囥䬷ざ”淂謾А々禖囥﹜淂謾\n\ -\t麔淰麷伀﹜淂謾戀蛺﹜迖淂謾騰麵﹞\n\n\ - -view 隓頝踛Q騰頝踛Q麵頝踛Q㪫迒\n\n\ -\t麔淰髓挴泂柁眭冈䬷ざ”覂齪А﹜齪А縋\n\ -\t騰頝踛﹜齪А縋麵頝踛﹜髓轡㪫迒﹞\n\n\ - -direction 讀囥Q迶囥\n\n\ -\t麔淰髓挴泂柁巖ホ䬷ざ”讀囥迖\n\ -\t迶囥﹞\n\n\ +\tnever = 樹模式有兩個狀態:部份擴張或摺疊。\n\ +\talways = 樹模式有兩個狀態:完全擴張或摺疊。\n\ +\tchoose = 樹模式有三個狀態:部份擴張,完全\n\ +\t擴張,或摺疊。\n\n\ + -order 字母順序/檔案類別/日期/大小\n\n\ +\t檔案以指定的順序顯示:根據字母順序,根據\n\ +\t檔案類別,根據日期,或根據大小。\n\n\ + -view 無圖像/大圖像/小圖像/屬性\n\n\ +\t檔案以指定的格式顯示:純文字,文字與\n\ +\t大圖像,文字與小圖像,以及屬性。\n\n\ + -direction 升序/降序\n\n\ +\t檔案以指定的方向顯示:升序或\n\ +\t降序。\n\n\ -large_icon_width \n\n\ -large_icon_height \n\n\ -small_icon_width \n\n\ -small_icon_height \n\n\ - ョ麔淰磣隉炟斕頝踛憵踛柁䬷ざ棷棦騰麵\n\ - 騰卼楙堈騰麵柁頝踛憵踛渿鞂揧朄椌楙堈騰麵\n\ - 蠡泂柁䬷ざ棷棦騰麵﹜騰柁旂 38﹜麵柁旂 24\n\n -26 \n抰迻篲冈え恄” %s...\n\n\ + 在檔案管理者中圖像影像的顯示區域大小\n\ + 大於這個大小的圖像影像將會被裁剪成這個大小\n\ + 內定的顯示區域大小,大的是 38,小的是 24\n\n +26 \n受限模式用法: %s...\n\n\ -folder Folder[,Folder,Folder]\n\ -dir Folder[,Folder,Folder]\n\n\ -\t"Folder"旂纂堈ョ囷え炟柁媊沓麔淰扢欄譯﹜靨/迖讓挭篎媊沓\n\ -\t麔淰扢﹞\n\n +\t"Folder"是一個在使用者的起始檔案夾之下,且/或包括該起始\n\ +\t檔案夾。\n\n $ MESSSAGES 27-28 WILL ONLY APPEAR IN THE DT ERRORLOG FILE -27 隓恄艀婘儸鬊Б柁蠡泂媊沓暋泂麔淰﹜渿囷え蠡泂圊﹞\n -28 隓恄艀婘儸鬊Б柁蠡泂齡怞暋泂麔淰﹜渿囷え蠡泂圊﹞\n +27 無法復原已儲存的內定起始設定檔案,將使用內定值。\n +28 無法復原已儲存的內定工具設定檔案,將使用內定值。\n $ Messages 29-30 are the strings displayed in a question dialog -29 睎衭鬊Бげ虳柁"麔淰磣隉炟槉棷"柁槉嵺騰麵﹜\n\ -騔ッḷ﹜縋蝝孋蟟暋泂蓇?\n\n\ -⼓埢鞂ョズ纂⺌"虳巖郖帣"斕絒棬柁\n\ -隞柁"麔淰磣隉炟槉棷"槉嵺斕揧囷え﹞ -30 睎衭鬊Бげ虳柁"抰迻麔淰磣隉炟槉棷"柁槉嵺騰麵﹜\n\ -騔ッḷ﹜縋蝝孋蟟暋泂蓇?\n\n\ -⼓埢鞂ョズ纂⺌"虳巖郖帣"斕絒棬柁\n\ -隞柁"抰迻麔淰磣隉炟槉棷"槉嵺斕揧囷え﹞ +29 您要儲存目前的"檔案管理者視區"的視窗大小,\n\ +優先權,與過濾器設定嗎?\n\n\ +它們會在任一自"前方面板"中啟動的\n\ +新的"檔案管理者視區"視窗中被使用。 +30 您要儲存目前的"受限檔案管理者視區"的視窗大小,\n\ +優先權,與過濾器設定嗎?\n\n\ +它們會在任一自"前方面板"中啟動的\n\ +新的"受限檔案管理者視區"視窗中被使用。 -32 麔淰磣隉炟 -- 鬊Б珜蠡泂圊藞禋 +32 檔案管理者 -- 儲存為內定值選項 -34 睎隓恄渿麔淰迖麔淰扢\n\ -闀蕍迖椵廎怉麔淰杶扜麔﹞ +34 您無法將檔案或檔案夾\n\ +複製或連結到檔案垃圾檔。 -$ 35 睎隓恄⺌麔淰杶扜麔斕闀蕍\n\ -$ 迖椵廎麔淰迖麔淰扢﹞ +$ 35 您無法自檔案垃圾檔中複製\n\ +$ 或連結檔案或檔案夾。 -35 睎衭鬊Бげ虳柁"鶈え嶂冈磣隉炟槉棷"柁槉嵺騰麵﹜\n\ -騔ッḷ﹜縋蝝孋蟟暋泂蓇?\n\n\ -⼓埢鞂ョズ纂⺌"虳巖郖帣"斕絒棬柁\n\ -隞柁"鶈え嶂冈磣隉炟槉棷"槉嵺斕揧囷え﹞ +35 您要儲存目前的"應用程式管理者視區"的視窗大小,\n\ +優先權,與過濾器設定嗎?\n\n\ +它們會在任一自"前方面板"中啟動的\n\ +新的"應用程式管理者視區"視窗中被使用。 -36 睎隓恄⺌麔淰杶扜麔斕闀蕍迖椵廎麔淰迖麔淰扢﹞\n\ -霘渿篎昡ス⺌麔淰杶扜麔斕傶罐﹜呥渿怬勂蘋"麔淰磣隉炟"﹞\n\ -睎⑴髓ョ咇怗闀蕍迖椵廎篎昡ス﹞ +36 您無法自檔案垃圾檔中複製或連結檔案或檔案夾。\n\ +請將該物件自檔案垃圾檔中移出,並將其放入"檔案管理者"。\n\ +您可以在那兒複製或連結該物件。 -37 睎隓恄⺌麔淰杶扜麔斕闀蕍迖椵廎麔淰迖麔淰扢﹞\n\ -霘渿篎昡ス⺌麔淰杶扜麔斕傶罐﹜呥渿怬勂蘋"麔淰磣隉炟"﹞\n\ -睎⑴髓ョ咇怗闀蕍迖椵廎篎昡ス﹞ +37 您無法自檔案垃圾檔中複製或連結檔案或檔案夾。\n\ +請將該物件自檔案垃圾檔中移出,並將其放入"檔案管理者"。\n\ +您可以在那兒複製或連結該物件。 -38 "挴泂麔淰扢攜ポ恄, %s" +38 "指定檔案夾不合法, %s" $set 19 @@ -1049,110 +1049,110 @@ $ Messages 46/47, 99/100, 48/51, 52/55, 101/102, 103/104, 119/120, and $ 62/63 are the text and mnemonics for the View pulldown menu $ Messages 105-116 are the text and mnemonics for the Help pulldown menu -1 麔淰(F) +1 檔案(F) 2 F -3 麔淰扢(D) +3 檔案夾(D) 4 D -5 槉棷(V) +5 視區(V) 6 V -7 藞抻(S) +7 選取(S) 8 S 9 H -10 隞嚌(N)... +10 新增(N)... 11 N -16 笱迒(P)... +16 特性(P)... 17 P -18 硻岊(F)... +18 尋找(F)... 19 F -22 䬷ざ麔淰杶扜麔(S)... +22 顯示檔案垃圾檔(S)... 23 S -30 彶隞(U) +30 更新(U) 33 U -34 彶庍珜(C)... +34 更改為(C)... 37 C -38 ャ怉媊沓搢(H) +38 回到起始處(H) 41 H $ NOTE: The mnemonic for Up is Message 94 in this set. -42 ホ譫(U) -46 隞嚌(N) +42 向上(U) +46 新增(N) 47 N -48 ツ楶藞抻(S) +48 全部選取(S) 51 S -52 抻祤邴藞抻(D) +52 取消所有選取(D) 55 D -62 鬊Бツ楶笱迒(t)... +62 儲存全部特性(t)... 63 t -84 勂蘋齡汃洠睮(W) +84 放入工作空間(W) 85 W -90 伝崽呥勂蘋杶扜麔(T) +90 刪除並放入垃圾檔(T) 91 T -92 妐楬彶庍珜(F) +92 快速更改為(F) 93 F $ NOTE: Message 94 is the mnemonic for the "Up" menu item 94 U -97 嗈磞鞥(T) +97 終端機(T) 98 T -99 覗崽(C) +99 清除(C) 100 C -101 䬷ざ騿鰳麔淰(H) +101 顯示隱藏檔案(H) 102 H -103 埏庍蝝孋蟟ト玿(F)... +103 修改過濾器列表(F)... 104 F -105 颮羏(v) +105 概觀(v) 106 v -107 齡汃(T) +107 工作(T) 108 T -109 棤℡罶涷(R) +109 參考資料(R) 110 R -111 驨卼禋げ(O) +111 關於項目(O) 112 O -113 囷え赮伢諰咭(U) +113 使用輔助說明(U) 114 U -115 驨卼麔淰磣隉炟(A) +115 關於檔案管理者(A) 116 A -117 驨椲(C) +117 關閉(C) 118 C -119 暋泂槉棷笱迒(P)... +119 設定視區特性(P)... 120 P -121 闀蕍(y)... +121 複製(y)... 122 y -123 赮伢諰咭 -124 傶棬(M)... +123 輔助說明 +124 移動(M)... 125 M -126 椵廎(L)... +126 連結(L)... 127 L -128 适隞杬ボ(R) +128 重新命名(R) 129 R -130 瞅隞麔淰扢(N)... +130 開新檔案夾(N)... 131 N -132 瞅隞麔淰(w)... +132 開新檔案(w)... 133 w -134 虳芼(G)... +134 前往(G)... 135 G -136 瞅絒杶扜麔 -137 适隞杬ボ... -138 瞅絒隞槉棷(O) +136 開啟垃圾檔 +137 重新命名... +138 開啟新視區(O) 139 O -140 闀蕍珜椵廎... -141 暋泂槉棷藞禋... -142 鬊Б珜蠡泂圊藞禋.(S).. +140 複製為連結... +141 設定視區選項... +142 儲存為內定值選項.(S).. 143 S -144 暋泂蝝孋蟟藞禋(C)... +144 設定過濾器選項(C)... 145 C -146 瞅絒嗈磞鞥(O) +146 開啟終端機(O) 147 O -148 げ蠊(C) +148 目錄(C) 149 C -150 彶庍暐⑴ḷ... -151 勂蘋杶扜麔 -152 傶棬怉... -153 闀蕍怉... -154 闀蕍珜椵廎... -155 芼虳 -156 䬷ざ騿鰳昡ス -157 瞅卼鶈え嶂冈磣隉炟 +150 更改許可權... +151 放入垃圾檔 +152 移動到... +153 複製到... +154 複製為連結... +155 往前 +156 顯示隱藏物件 +157 開於應用程式管理者 $set 21 @@ -1169,74 +1169,74 @@ $ Messages 22-28 are error messages that can be generated when dtfile $ tries to use the dtfile.config configuration file, this file is $ used to customize the File Properties dialog -1 麔淰暐⑴ḷ +1 檔案許可權 -2 麔淰ボ磝” -3 邴炟ボ磝” -4 漦嗢ボ磝” -5 暐⑴ḷ” -6 幺抻 -7 嬣蘋 -8 欹⺼ -9 邴炟 -10 漦嗢” -11 怬鱗” -12 騰麵 (⻏蠣嗢)” -13 埏庍” +2 檔案名稱: +3 所有者名稱: +4 群組名稱: +5 許可權: +6 讀取 +7 寫入 +8 執行 +9 所有者 +10 群組: +11 其他: +12 大小 (位元組): +13 修改: $ DO NOT LOCALIZE MESSAGE 14 14 %x %X -15 隓淩柁麔淰㪫迒罶媢﹞\n\n\ -挴泂柁囷え炟攜Бョ﹞ -16 隓淩柁麔淰㪫迒罶媢﹞\n\n\ -挴泂柁漦嗢攜Бョ﹞ +15 無效的檔案屬性資訊。\n\n\ +指定的使用者不存在。 +16 無效的檔案屬性資訊。\n\n\ +指定的群組不存在。 -17 笱迒蠆諟 +17 特性錯誤 -18 揧椵廎怉” +18 被連結到: -19 ゝ洁 +19 未知 -21 麔淰磣隉炟 -- 麔淰暐⑴ḷ +21 檔案管理者 -- 檔案許可權 -22 隓恄瞅絒麔淰磣隉炟崷殦麔淰” -24 麔淰磣隉炟崷殦麔淰斕ゝ洁唫⻏簅圝” -25 麔淰磣隉炟崷殦麔淰斕岊攜怉驨卼麔淰侇嗄旂伀А柁罶媢 -26 隓恄珜麔淰侇嗄髱緷涺唈ゥ嶂囥 -27 蠆諟ユ欹⺼藹麔淰侇嗄髱緷涺 -28 閰箹欹⺼” +22 無法開啟檔案管理者配置檔案: +24 檔案管理者配置檔案中有未知欄位標籤: +25 檔案管理者配置檔案中找不到關於檔案系統是別字的資訊 +26 無法為檔案系統對話框建立程序 +27 錯誤地執行了檔案系統對話框 +28 嘗試執行: $ do not localize "fsDialog" -29 dtfile 柁崷殦麔淰斕扽菙坯 fsDialog ズ圊﹞ +29 dtfile 的配置檔案中沒有提供 fsDialog 任何值。 -30 ボ磝” +30 名稱: -31 邴炟ボ磝隓淩﹞\n\ -挴泂柁囷え炟攜Бョ﹞ +31 所有者名稱無效。\n\ +指定的使用者不存在。 -32 漦嗢ボ磝隓淩﹞\n\n\ -睎柁侇嗄斕扽髓篎ボ磝唈ゥ柁囷え炟漦嗢﹞\n\ -蚍睎衭髓篎ボ磝唈ゥ囷え炟漦嗢﹜\n\ -霘囷え睎柁侇嗄磣隉楗忟﹞ +32 群組名稱無效。\n\n\ +您的系統中沒有以該名稱建立的使用者群組。\n\ +若您要以該名稱建立使用者群組,\n\ +請使用您的系統管理軟體。 -33 暐⑴ḷ蠆諟 +33 許可權錯誤 -34 麔淰磣隉炟 -- 暐⑴ḷ +34 檔案管理者 -- 許可權 -35 "昡ス柁暐⑴ḷ髱緷\n\n\ +35 "物件的許可權對話\n\n\ %s/%s\n\n\ -驨椲﹜モ珜篎昡ス儸⺌侇嗄\n\ -伝崽﹞" +關閉,因為該物件已自系統\n\ +刪除。" -36 "彶庍暐⑴ḷ滙夼" +36 "更改許可權警告" -37 "彶庍隃⺼麔淰扢柁暐⑴ḷ﹜\n\ -攜テ蠢暐髲砫麔淰扢﹞\n\ -麔淰扢渿⺌棬驨椲\n\ -靨攜⑴テ适隞瞅絒\n\ -麔淰扢﹞\n\n\ -睎衭ヵ汃蓇?" +37 "更改現行檔案夾的許可權,\n\ +不再允許察看檔案夾。\n\ +檔案夾將自動關閉\n\ +且不可再重新開啟\n\ +此檔案夾。\n\n\ +您要如此作嗎?" 38 File Manager Error @@ -1248,11 +1248,11 @@ $ ****** Module: ModAttrP.c ****(developer comment only)******** $ Messages 1 and 3 are file properties error messages $ Message 2 is the title for the properties error dialog -1 隓恄瞅絒麔淰﹜汃鞄斕黫 -2 笱迒蠆諟 -3 隓恄珜 %s 彶庍笱迒 -4 隓恄瞅絒昡ス﹞ -5 暋泂暐⑴ḷ蠆諟 +1 無法開啟檔案,作業中斷 +2 特性錯誤 +3 無法為 %s 更改特性 +4 無法開啟物件。 +5 設定許可權錯誤 @@ -1263,46 +1263,46 @@ $ Messages 1 and 22 are titles for the Set Preferences dialog, Message 1 is $ used when the user has specified a title for dtfile windows $ Messages 2-20 and 23-29 are labels for the Set Preferences dialog -1 暋泂槉棷藞禋 +1 設定視區選項 -2 瞅絒槉棷 -3 呣謾ボ磝 -4 呣謾ボ磝縋頝踛 -5 呣謾ボ磝縋麵頝踛 -6 呣謾ボ磝﹜戀蛺﹜騰麵 ... -7 䬷ざ -8 呣謾痼麔淰扢 -9 呣謾蹠昲 -10 囥 -11 呣謾麔淰麷伀 -12 呣謾А々禖囥 -13 呣謾戀蛺 -14 呣謾騰麵 -15 巖ホ -16 讀囥 -17 迶囥 -18 勂殦⻏殦 -19 粡囥悒柁篚鷁 -20 呣勂殦⻏殦 +2 開啟視區 +3 依據名稱 +4 依據名稱與圖像 +5 依據名稱與小圖像 +6 依據名稱,日期,大小 ... +7 顯示 +8 依據單檔案夾 +9 依據樹狀 +10 次序 +11 依據檔案類別 +12 依據字母順序 +13 依據日期 +14 依據大小 +15 方向 +16 升序 +17 降序 +18 放置位置 +19 排序後的網點 +20 依放置位置 -22 麔淰磣隉炟 -- 暋泂槉棷藞禋 +22 檔案管理者 -- 設定視區選項 -23 玿韝 -24 頝踛聤梏 -25 げ虳麔淰扢 -26 昲鳷⺼ -27 藈麔淰扢 -28 麔淰扢﹜隑悒麔淰 -29 麔淰扢縋麔淰 -30 蠡泂圊 +23 表頭 +24 圖像路徑 +25 目前檔案夾 +26 狀態行 +27 儘檔案夾 +28 檔案夾,然後檔案 +29 檔案夾與檔案 +30 內定值 -31 玿ざ巖冈 -32 藈淂謾ボ磝 -33 淂謾騰頝踛 -34 淂謾麵頝踛 -35 ト縋⺼ -36 齪А聤梏 -37 媢桾⺼ +31 表示方式 +32 儘根據名稱 +33 根據大圖像 +34 根據小圖像 +35 列與行 +36 文字路徑 +37 訊息行 $set 24 @@ -1322,94 +1322,94 @@ $ menu $ Message 73 is an error dialog title $ Messages 74, 75, 79, and 80 are trash warning messages -3 麔淰杶扜麔蠆諟 -4 麔淰杶扜麔滙夼 +3 檔案垃圾檔錯誤 +4 檔案垃圾檔警告 -5 譯ト麔淰迖麔淰扢隓恄揧勂ョ杶扜麔蠡” \n -6 譯ト珜盻洠麔淰扢﹜ \n \ -迖睎扽嬣蘋暐⑴ḷ柁麔淰﹞ \n \ -睎衭凭㶴蓇?\n -7 睎髱髓譯麔淰扽嬣蘋暐⑴ḷ﹜ \n \ -睎衭凭㶴蓇?\n -8 譯ト麔淰扢楁攜旂洠柁﹞ \n \ -睎衭凭㶴蓇?\n +5 下列檔案或檔案夾無法被放在垃圾檔內: \n +6 下列為非空檔案夾, \n \ +或您沒有寫入許可權的檔案。 \n \ +您要繼續嗎?\n +7 您對以下檔案沒有寫入許可權, \n \ +您要繼續嗎?\n +8 下列檔案夾都不是空的。 \n \ +您要繼續嗎?\n -9 麔淰杶扜麔 +9 檔案垃圾檔 -24 勂ャ(P) +24 放回(P) 26 P -28 覗崽杶扜麔(h) +28 清除垃圾檔(h) 30 h -56 譯ト麔淰隓恄揧勂ャ”\n +56 下列檔案無法被放回:\n $ Message 58 supplements Message 56 -58 (ⅱ蠹 %d 堈籧⼃柁麔淰) +58 (另加 %d 個額外的檔案) 73 Shred File(s) -74 髓譯麔淰キョ齡汃洠睮斕”\n\ +74 以下檔案亦在工作空間中:\n\ %s\n\ -渿篎麔淰傶⺍杶扜麔斕鞂渿怬⺌\n\ -齡汃洠睮斕崽⑩﹞ -75 譯ト麔淰キョ齡汃洠睮斕”\n\ +將該檔案移至垃圾檔中會將其自\n\ +工作空間中除去。 +75 下列檔案亦在工作空間中:\n\ %s\n\ -渿篎麔淰傶⺍杶扜麔斕鞂渿怬⺌\n\ -齡汃洠睮斕崽⑩﹞ +將該檔案移至垃圾檔中會將其自\n\ +工作空間中除去。 -78 麔淰磣隉炟攜蠢暐麔淰扢迖\n\ -麔淰柁ボ磝斕洠く﹜\n\ -邴髓宎埢攜逑伝崽鱗埢﹞\n +78 檔案管理者不允許檔案夾或\n\ +檔案的名稱中有空白,\n\ +所以我們不能刪除他們。\n -79 齡汃洠睮麔淰 %s キョ睎柁麔淰侇嗄斕﹜⼓⻏卼”\n\ +79 工作空間檔案 %s 亦在您的檔案系統中,它位於:\n\ %s\n\ -渿篎麔淰傶⺍杶扜麔斕鞂渿怬\n\ -⺌麔淰侇嗄斕崽⑩﹞ +將該檔案移至垃圾檔中會將其\n\ +自檔案系統中除去。 -80 齡汃洠睮昡スキョ睎柁麔淰侇嗄斕﹜⼓⻏卼”\n\ +80 工作空間物件亦在您的檔案系統中,它位於:\n\ %s\n\ -渿篎麔淰傶⺍杶扜麔斕鞂渿怬\n\ -⺌麔淰侇嗄斕崽⑩﹞ +將該檔案移至垃圾檔中會將其\n\ +自檔案系統中除去。 -81 Shred File/Folder 蠆諟 +81 Shred File/Folder 錯誤 -82 譯ト麔淰隓恄⺌麔淰侇嗄斕桷⑩” \n +82 下列檔案無法自檔案系統中徐去: \n -83 $HOME/.dt/Trash げ蠊斕柁 .trashinfo 麔隓恄瞅絒﹞\n\ - 睎⽁禕Б抻篎麔﹜髓囷杶扜麔逑齡汃﹞\n\ - 霘黀髲沺卼篎麔淰轡麔淰扢柁暐⑴ḷ﹞\n -84 纂^杶扜麔斕柁昡ス揧覗崽﹜鱗埢祼ー踸\n\ - ⺌睎柁侇嗄斕祤⼇藹﹞\n\n\ - 睎薚泂衭覗崽杶扜麔蓇?\n -85 睎ョ伝崽柁齡汃洠睮昡ス旂纂堈⻏卼 %s\n\ - 麔淰磣隉炟斕柁椵廎闀ヾ﹞\n\ - 蚍睎挹譯"薚泂"﹜篎椵廎縋婘囷昡ス楁鞂揧伝崽﹞\n\ - 蚍睎ⅲ衭伝崽椵廎﹜\n\ - 1) 霘ョ髱緷涺斕挹譯"抻祤"\n\ - 2) 隑悒ョ篎椵廎昡ス譫挹譯衢逑玿瘖﹜髓䬷隃'齡汃洠睮昡ス'衢逑玿﹞\n\ - 3) 隑悒藞謥"⺌齡汃洠睮斕崽⑩" -86 睎ョ伝崽柁昡ス旂椵廎怉⻏卼 %s\n\ - 柁麔淰磣隉炟斕柁婘沓昡ス﹞\n\ - 蚍睎挹譯"薚泂"﹜篎椵廎闀ヾ縋婘沓昡ス楁鞂揧伝崽﹞\n\ - 蚍睎ⅲ衭伝崽齡汃洠睮昡ス﹜\n\ - 1) 霘ョ髱緷涺斕挹譯"抻祤"\n\ - 2) 隑悒か齡汃洠睮昡ス柁伒隃冈衢逑玿斕,藞謥"⺌齡汃洠睮斕崽⑩" -87 杶扜麔斕柁昡ス隓恄瞅絒﹞\n\n\ - 蚍衭瞅絒篎昡ス﹜霘囷え"勂ャ"渿篎昡ス勂ャ麔淰磣隉炟﹜\n\ - 隑悒ョ咇怗渿欄瞅絒﹞ +83 $HOME/.dt/Trash 目錄中的 .trashinfo 檔無法開啟。\n\ + 您必須存取該檔,以使垃圾檔能工作。\n\ + 請檢察官於該檔案及檔案夾的許可權。\n +84 一旦垃圾檔中的物件被清除,他們就永遠\n\ + 自您的系統中消失了。\n\n\ + 您確定要清除垃圾檔嗎?\n +85 您正在刪除的工作空間物件是一個位於 %s\n\ + 檔案管理者中的連結複本。\n\ + 若您按下"確定",該連結與原使物件都會被刪除。\n\ + 若您只要刪除連結,\n\ + 1) 請在對話框中按下"取消"\n\ + 2) 然後在該連結物件上按下功能表鈕,以顯現'工作空間物件'功能表。\n\ + 3) 然後選擇"自工作空間中除去" +86 您正在刪除的物件是連結到位於 %s\n\ + 的檔案管理者中的原始物件。\n\ + 若您按下"確定",該連結複本與原始物件都會被刪除。\n\ + 若您只要刪除工作空間物件,\n\ + 1) 請在對話框中按下"取消"\n\ + 2) 然後由工作空間物件的即現式功能表中,選擇"自工作空間中除去" +87 垃圾檔中的物件無法開啟。\n\n\ + 若要開啟該物件,請使用"放回"將該物件放回檔案管理者,\n\ + 然後在那兒將之開啟。 -88 隓恄嬣蘋穛渀迒麔淰斕﹞\n\ - 躂暐睎柁麔淰侇嗄儸槴橛藹﹞ +88 無法寫入暫時性檔案中。\n\ + 也許您的檔案系統已經滿了。 -89 隓恄瞅絒杶扜麔げ蠊\n\ +89 無法開啟垃圾檔目錄\n\ %s\n\ - (諝糶﹜Б抻暐⑴ḷ棯纕)\n\n\ - 邴柁杶扜麔汃鞄渿攜鞂揧欹⺼﹞ + (認證,存取許可權問題)\n\n\ + 所有的垃圾檔作業將不會被執行。 -90 麔淰杶扜麔隓恄惉媊沓暋泂﹞\n\ - 霘黀栯”\n\ - 1)$HOME/.dt/Trash 髓蘀痤驨卼暐⑴ḷ柁罶媢﹞\n\ - 2)⑴え柁瀄澥洠睮﹞\n\ - 3)諝糶﹞ +90 檔案垃圾檔無法做起始設定。\n\ + 請檢查:\n\ + 1)$HOME/.dt/Trash 以獲得關於許可權的資訊。\n\ + 2)可用的磁碟空間。\n\ + 3)認證。 $ 91 is not used 91 A linked copy of the following object is on\n\ @@ -1423,102 +1423,102 @@ the Workspace backdrop:\n\ Moving the objects to the trash will remove them from\n\ both the File Manager and Workspace backdrop. -93 隓恄Б抻驨卼杶扜麔罶媢柁麔淰\n\ +93 無法存取關於垃圾檔資訊的檔案\n\ %s\n\ - 邴柁杶扜麔汃鞄渿攜鞂揧欹⺼﹞\n\ - 瑊葾蝯柁婘モ旂”\n\ - -- 篚聤諝糶棯纕﹞\n\ - -- 瀄澥洠睮攜欿﹞\n\ - -- 蠆諟柁暐⑴ḷ $HOME/.dt/Trash﹞ + 所有的垃圾檔作業將不會被執行。\n\ + 最普遍的原因是:\n\ + -- 網路認證問題。\n\ + -- 磁碟空間不夠。\n\ + -- 錯誤的許可權 $HOME/.dt/Trash。 -94 麔淰磣隉炟攜蠢暐昡ス\n\ -ボ磝斕洠く﹜\n\ -邴髓宎埢攜逑伝崽⼓埢﹞\n\ -蚍衭伝崽楙咍昡ス”\n\ - -- 霘⺌"麔淰磣隉炟"衢逑犓斕藞抻"瞅絒嗈磞鞥"\n\ - -- 霘譯崽⑩杬麟坭伝崽鱗埢﹞ +94 檔案管理者不允許物件\n\ +名稱中有空白,\n\ +所以我們不能刪除它們。\n\ +若要刪除這些物件:\n\ + -- 請自"檔案管理者"功能軸中選取"開啟終端機"\n\ + -- 請下除去命令來刪除他們。 -95 隓恄Б抻杶扜麔げ蠊”\n\ +95 無法存取垃圾檔目錄:\n\ %s\n\ - 邴柁杶扜麔汃鞄渿攜鞂揧欹⺼﹞\n\ - 瑊葾蝯柁婘モ旂”\n\ - -- 篚聤諝糶棯纕﹞\n\ - -- 瀄澥洠睮攜冞﹞\n\ - -- 暐⑴ḷ攜髱﹞ + 所有的垃圾檔作業將不會被執行。\n\ + 最普遍的原因是:\n\ + -- 網路認證問題。\n\ + -- 磁碟空間不足。\n\ + -- 許可權不對。 -96 譯ト昡ス隓恄⺌麔淰侇嗄斕崽⑩” \n +96 下列物件無法自檔案系統中除去: \n -97 譯ト昡ス隓恄勂ョ杶扜麔蠡” \n +97 下列物件無法放在垃圾檔內: \n -98 (蠹譫 %d 堈籧⼃柁昡ス) +98 (加上 %d 個額外的物件) $ message 99 is not used -99 睎髱譯ト麔淰扽嬣蘋暐⑴ḷ”\n\ -睎衭凭㶴蓇?\n +99 您對下列檔案沒有寫入許可權:\n\ +您要繼續嗎?\n -100 譯ト麔淰扢楁攜旂洠柁”\n\ -睎衭凭㶴蓇?\n +100 下列檔案夾都不是空的:\n\ +您要繼續嗎?\n -101 譯ト昡ス隓恄揧勂ャ”\n +101 下列物件無法被放回:\n -102 髓譯昡ス柁纂堈儸椵廎柁闀蕍麔旂ョ\n\ -齡汃洠睮茯葔泂⻏譫”\n\ +102 以下物件的一個已連結的複製檔是在\n\ +工作空間背景定位上:\n\ %s\n\ -渿篎昡ス傶⺍杶扜麔斕鞂渿怬\n\ -フ渀⺌麔淰磣隉炟縋齡汃洠睮茯葔泂⻏斕崽⑩﹞ +將該物件移至垃圾檔中會將其\n\ +同時自檔案管理者與工作空間背景定位中除去。 -103 譯ト昡ス柁纂堈儸椵廎柁闀蕍麔旂ョ\n\ -齡汃洠睮茯葔泂⻏譫”\n\ +103 下列物件的一個已連結的複製檔是在\n\ +工作空間背景定位上:\n\ %s\n\ -渿篎昡ス傶⺍杶扜麔斕鞂渿怬\n\ -フ渀⺌麔淰磣隉炟縋齡汃洠睮茯葔泂⻏斕崽⑩﹞ +將該物件移至垃圾檔中會將其\n\ +同時自檔案管理者與工作空間背景定位中除去。 -104 睎髱譯ト麔淰扽嬣蘋暐⑴ḷ”\n\ -睎衭凭㶴蓇?\n +104 您對下列檔案沒有寫入許可權:\n\ +您要繼續嗎?\n -105 栲堈杶扜昡ス柁蠡泂棬汃隓恄欹⺼﹜\n\n\ - 衭欹⺼楙堈杶扜昡ス柁蠡泂棬汃﹜\n\ - 霘囷え>勂ャ=⣷⼓珃ャ麔淰磣隉炟﹜\n\ - テ卼篎搢欹⺼﹞ +105 某個垃圾物件的內定動作無法執行,\n\n\ + 要執行這個垃圾物件的內定動作,\n\ + 請使用「放回」讓它返回檔案管理者,\n\ + 再於該處執行。 -106 驨卼麔淰杶扜麔 +106 關於檔案垃圾檔 -107 "譯ト麔淰扢斕⺍韁纂堈昡ス隓恄伝崽﹞\n\n\ +107 "下列檔案夾中至少有一個物件無法刪除。\n\n\ %s\n\n\ -⑴逑モ珜扽伝崽篎昡ス \n\ -柁ḷ迻﹞" +可能因為沒有刪除該物件 \n\ +的權限。" -108 "隓恄伝崽譯ト麔淰﹞\n\n\ +108 "無法刪除下列檔案。\n\n\ %s\n\n\ -⑴逑モ珜扽伝崽篎昡ス \n\ -柁ḷ迻﹞" +可能因為沒有刪除該物件 \n\ +的權限。" -109 "Put Back 滙夼" +109 "Put Back 警告" -110 "堈昡ス磝珜\n\n\ +110 "有個物件稱為\n\n\ %s\n\n\ -ヵ峈衭髓杶扜麔柁昡ス﹜\n\ -抻鷥昡ス﹜霘藞抻薚泂﹞\n\n\ -ヵ峈衭砉絅昡ス﹜霘藞抻抻祤﹞\n\ -ヵ峈衭彶庍昡スボ磝﹜渿⑴髓\n\ -适闀 Put Back 轡砉怚堈昡ス﹞" +如果要以垃圾檔的物件,\n\ +取代此物件,請選取確定。\n\n\ +如果要保留此物件,請選取取消。\n\ +如果要更改物件名稱,將可以\n\ +重複 Put Back 及保有兩個物件。" -111 "Put Back 蠆諟" +111 "Put Back 錯誤" -112 "隓恄伝崽譯ト昡ス﹞\n\ -⑴逑モ珜楙咍昡ス\n\ -儸槴揧伝崽﹞\n\n" +112 "無法刪除下列物件。\n\ +可能因為這些物件\n\ +已經被刪除。\n\n" -113 "譯ト麔淰扢⺍韁纂堈昡ス﹜迖 \n\ -麔淰扢ヾ冼隓恄伝崽﹞\n\ -⑴逑モ珜扽伝崽\n\ -昡ス柁ḷ迻﹞\n\n" +113 "下列檔案夾至少有一個物件,或 \n\ +檔案夾本身無法刪除。\n\ +可能因為沒有刪除\n\ +物件的權限。\n\n" -114 "隓恄伝崽麔淰﹞⑴逑モ珜 \n\ -扽伝崽麔淰柁ḷ迻﹞\n\n" +114 "無法刪除檔案。可能因為 \n\ +沒有刪除檔案的權限。\n\n" -115 "隓恄伝崽譯ト昡ス﹞\n\ -谹韁篎昡ス痐譫磣隉侇嗄祼隓恄蝒汃﹞\n\n" +115 "無法刪除下列物件。\n\ +缺少該物件桌上管理系統就無法運作。\n\n" $set 28 $ ****** Module: Desktop.c ****(developer comment only)******** @@ -1527,43 +1527,43 @@ $ Messages 1-3 Workspace error messages $ Message 4 is the title for the Workspace popup menus $ Messages 5-8 are the labels and mnemonics for the Workspace obj popup menu -1 儸麔淰髓ボ磝Бョ齡洠睮斕﹞\n\ -霘藞謥攜フ柁ボ磝﹞ -2 儸麔淰髓ボ磝Бョ婘沓麔淰扢斕\n\ -(篎麔淰邴坭⺌柁麔淰扢).\n\ -霘藞謥攜フ柁ボ磝﹞ -3 ボ磝珜 %s 柁麔淰儸Бョ齡汃洠睮斕﹞\n\ -睎攜逑渿フボ柁ⅱ纂堈麔淰勂蘋齡汃洠睮﹞\n\ -蚍衭ヵ﹜霘渿怬斕欄纂适隞杬ボ﹞ +1 已有檔案以此名稱存在工空間中。\n\ +請選擇不同的名稱。 +2 已有檔案以此名稱存在原始檔案夾中\n\ +(該檔案所來自的檔案夾).\n\ +請選擇不同的名稱。 +3 名稱為 %s 的檔案已存在工作空間中。\n\ +您不能將同名的另一個檔案放入工作空間。\n\ +若要如此,請將其中之一重新命名。 -4 齡汃洠睮昡ス +4 工作空間物件 -5 ⺌齡汃洠睮斕崽⑩(R) +5 自工作空間中除去(R) 6 R -7 瞅絒々麔淰扢(O) +7 開啟母檔案夾(O) 8 O -9 儸昡ス髓ボ磝Бョ齡洠睮斕﹞\n\ -霘藞謥攜フ柁ボ磝﹞ +9 已有物件以此名稱存在工空間中。\n\ +請選擇不同的名稱。 -10 儸昡ス髓ボ磝Бョ婘沓麔淰扢斕\n\ -(篎昡ス邴坭⺌柁麔淰扢).\n\ -霘藞謥攜フ柁ボ磝﹞ +10 已有物件以此名稱存在原始檔案夾中\n\ +(該物件所來自的檔案夾).\n\ +請選擇不同的名稱。 -11 ボ磝珜 %s 柁昡ス儸Бョ齡汃洠睮斕﹞\n\ -睎攜逑渿フボ柁ⅱ纂堈昡ス勂蘋齡汃洠睮﹞\n\ -蚍衭ヵ﹜霘渿怬斕欄纂适隞杬ボ﹞ +11 名稱為 %s 的物件已存在工作空間中。\n\ +您不能將同名的另一個物件放入工作空間。\n\ +若要如此,請將其中之一重新命名。 -12 "熀蝝攜ポ恄柁齡汃洠睮﹞蠡泂齡汃洠睮羼渿旂\n\ -纂瞗齡汃洠睮轡昡ス磝珜:\n\ +12 "越過不合法的工作空間。內定工作空間仍將是\n\ +一種工作空間及物件稱為:\n\ %s\n\ -儸Бョ齡汃洠睮柁茯葔泂⻏﹞\n\ -隓恄渿怬鱗フボ昡ス勂蘋齡汃洠睮﹞\n\ -蚍衭渿怚フボ昡ス勂蘋齡汃洠睮﹜霘渿怬斕纂堈彶ボ﹞" +已存在工作空間的背景定位。\n\ +無法將其他同名物件放入此工作空間。\n\ +若要將兩同名物件放入此工作空間,請將其中一個更名。" -13 "昡ス:\n\ +13 "物件:\n\ %s\n\ -攜ョ麔淰侇嗄斕﹞" +不在此檔案系統中。" $set 29 $ ****** Module: Help.c ****(developer comment only)******** @@ -1575,23 +1575,23 @@ $ Message 3 is the text for help on the "Open New View" action $ Message 4 is the text for help on the "Open In Place" action $ Messages 5-6 are help error messages -1 麔淰磣隉炟赮伢諰咭 -2 %s 赮伢諰咭 +1 檔案管理者輔助說明 +2 %s 輔助說明 -3 `%s` 棬汃珜揧衭忴柁麔淰扢瞅絒藹纂堈隞柁麔淰磣隉炟槉棷﹞ +3 `%s` 動作為被要求的檔案夾開啟了一個新的檔案管理者視區。 -4 `%s` 棬汃渿揧衭忴柁麔淰扢䬷ざ卼げ虳柁麔淰磣隉炟槉棷﹞ +4 `%s` 動作將被要求的檔案夾顯示於目前的檔案管理者視區。 -5 扽嵁髱 %s 棬汃柁赮伢諰咭 -6 扽嵁髱 %s 麔淰麷伀柁赮伢諰咭 +5 沒有針對 %s 動作的輔助說明 +6 沒有針對 %s 檔案類別的輔助說明 -7 `%s` 棬汃珜揧衭忴柁麔淰扢瞅絒藹纂堈隞柁\n\麔淰磣隉炟槉棷槉嵺﹞ +7 `%s` 動作為被要求的檔案夾開啟了一個新的\n\檔案管理者視區視窗。 -8 `%s` 棬汃渿揧衭忴柁麔淰扢䬷ざ卼げ虳柁\n\麔淰磣隉炟槉棷槉嵺﹞ +8 `%s` 動作將被要求的檔案夾顯示於目前的\n\檔案管理者視區視窗。 -9 麔淰杶扜麔赮伢諰咭 +9 檔案垃圾檔輔助說明 -10 "ロ适藞抻昡ス扽赮伢諰咭﹞" +10 "多重選取物件沒有輔助說明。" $set 30 $ ****** Module: SharedMsgs.c ****(developer comment only)******** @@ -1599,71 +1599,71 @@ $ ****** Module: SharedMsgs.c ****(developer comment only)******** $ The following messages are used in more than one place within the $ dtfile source. Unless otherwise specified, they are error messages. -1 隓恄⺌ %s 幺抻 +1 無法自 %s 讀取 $ Message 2 is used to format the file attributes in 'by attributes' mode 2 %b %d %H:%M:%S %Y -3 隓恄渿麔淰 %s ⺌饜鞥 %s 傶棬迖闀蕍﹞\n\ -饜鞥 %s ⑴逑ョ睎柁麔淰侇嗄斕稹暋痤攜悎撋﹞ -4 隓恄渿麔淰 %1$s ⺌饜鞥 %2$s 傶棬迖闀蕍﹞\n\ -饜鞥 %3$s ⑴逑ョ睎柁麔淰侇嗄斕稹暋痤攜悎撋﹞ -5 隓恄幺抻 %s -6 隓恄嬣蘋麔淰扢 %s -7 隓恄唈ゥ %s -8 隓恄伝崽 %s -9 ボ磝珜\n\ +3 無法將檔案 %s 自主機 %s 移動或複製。\n\ +主機 %s 可能在您的檔案系統中裝設得不恰當。 +4 無法將檔案 %1$s 自主機 %2$s 移動或複製。\n\ +主機 %3$s 可能在您的檔案系統中裝設得不恰當。 +5 無法讀取 %s +6 無法寫入檔案夾 %s +7 無法建立 %s +8 無法刪除 %s +9 名稱為\n\ %s\n\ - 柁麔淰迖麔淰扢儸Бョ靨攜逑揧适嬣﹞\n\ - 霘耰蘋攜フ柁ボ磝﹞ + 的檔案或檔案夾已存在且不能被重寫。\n\ + 請鍵入不同的名稱。 $ Message 10 is the help topic string for help on a file icon or action -10 麔淰麷伀/棬汃柁絩訒 +10 檔案類別/動作的敘述 -11 睎攜逑渿聤梏挴泂珜麔淰ボ磝柁纂楶ソ﹞ -12 隓淩柁硻岊罶媢﹞\n\n\ -髓譯麔淰扢攜Бョ﹜迖隓恄Б抻”\n\n\ +11 您不能將路徑指定為檔案名稱的一部份。 +12 無效的尋找資訊。\n\n\ +以下檔案夾不存在,或無法存取:\n\n\ %s\n $ Messages 13-16 are dialog titles -13 %s 颮羏 -14 %s 挴襓 -15 驨卼 %s -16 麔淰磣隉炟 +13 %s 概觀 +14 %s 指導 +15 關於 %s +16 檔案管理者 $ Message 18 is appended to ".." folders -18 (芼譫纂嬬) +18 (往上一層) $ Messages 19 and 20 are messages which appear when a user clicks item help $ outside the application. 19 is the title, while 20 is the message. -19 驨卼禋げ赮伢諰咭蠆諟 -20 睎⽁禕ョ麔淰磣隉炟斕\n\ -藞謥纂蠣ス﹞ +19 關於項目輔助說明錯誤 +20 您必須在檔案管理者中\n\ +選擇一元件。 $ Messages 21 and 22 are titles for error dialogs -21 麔淰傶棬蠆諟 -22 麔淰椵廎蠆諟 -23 隓恄唈ゥ '%s'\n\n\ -瑊葾蝯柁婘モ旂\n\ -睎髱篎砨驨麔淰迖麔淰扢\n\ -扽薚柁暐⑴ḷ﹞\n\n\ -蚍衭黀槉暐⑴ḷ﹜ 霘藞抻篎昡ス﹜\n\ -隑悒藞抻"彶庍暐⑴ḷ...' +21 檔案移動錯誤 +22 檔案連結錯誤 +23 無法建立 '%s'\n\n\ +最普遍的原因是\n\ +您對該相關檔案或檔案夾\n\ +沒有正確的許可權。\n\n\ +若要檢視許可權, 請選取該物件,\n\ +然後選取"更改許可權...' -24 睎⽁禕ョ麔淰磣隉炟斕藞抻纂堈昡ス﹞\n\ -"驨卼禋げ" 赮伢諰咭ⅲョ睎絒棬柁鶈え嶂冈斕\n\ -汃え﹞ +24 您必須在檔案管理者中選取一個物件。\n\ +"關於項目" 輔助說明只有在您啟動的應用程式中\n\ +有作用。 -25 隓恄唈ゥ '%s'\n\n\ -瑊葾蝯柁婘モ旂\n\ -睎髱篎砨驨麔淰迖麔淰扢\n\ -扽薚柁暐⑴ḷ﹞\n\n\ -蚍衭黀槉暐⑴ḷ﹜ 霘藞抻篎昡ス﹜\n\ -隑悒⺌伒隃衢逑玿斕藞抻"彶庍暐⑴ḷ...' +25 無法建立 '%s'\n\n\ +最普遍的原因是\n\ +您對該相關檔案或檔案夾\n\ +沒有正確的許可權。\n\n\ +若要檢視許可權, 請選取該物件,\n\ +然後自即現功能表中選取"更改許可權...' -26 睎⽁禕ョ鶈え嶂冈磣隉炟斕藞抻纂堈昡ス﹞\n\ -"驨卼禋げ" 赮伢諰咭ⅲョ睎絒棬柁鶈え嶂冈斕\n\ -汃え﹞ +26 您必須在應用程式管理者中選取一個物件。\n\ +"關於項目" 輔助說明只有在您啟動的應用程式中\n\ +有作用。 $set 31 @@ -1671,70 +1671,70 @@ $set 31 $set 32 $ ****** Module: dterror.src ****(developer comment only)******** $ Message 1 is a title for dterror -1 dt 蠆諟 -2 麔淰磣隉炟瞅絒げ蠊蠆諟 +1 dt 錯誤 +2 檔案管理者開啟目錄錯誤 $set 33 -1 ロ适昡ス -2 げ虳麔淰扢 +1 多重物件 +2 目前檔案夾 $quote " -3 "傶棬昡ス蠆諟" +3 "移動物件錯誤" -4 "闀蕍昡ス蠆諟" +4 "複製物件錯誤" -5 "椵廎昡ス蠆諟" +5 "連結物件錯誤" -6 "閰箹傶蘋:\n\n\ +6 "嘗試移入:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞" +不存在檔案系統中。" -7 "閰箹闀蕍怉:\n\n\ +7 "嘗試複製到:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞" +不存在檔案系統中。" -8 "閰箹椵廎怉:\n\n\ +8 "嘗試連結到:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞" +不存在檔案系統中。" -9 "閰箹傶棬怉:\n\n\ +9 "嘗試移動到:\n\n\ %s\n\n\ -攜旂麔淰扢﹞" +不是檔案夾。" -10 "閰箹闀蕍怉:\n\n\ +10 "嘗試複製到:\n\n\ %s\n\n\ -攜旂麔淰扢﹞" +不是檔案夾。" -11 "閰箹椵廎怉:\n\n\ +11 "嘗試連結到:\n\n\ %s\n\n\ -攜旂麔淰扢﹞" +不是檔案夾。" -12 "閰箹傶棬柁昡ス:\n\n\ +12 "嘗試移動的物件:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞" +不存在檔案系統中。" -13 "閰箹傶棬柁昡ス:\n\n\ +13 "嘗試移動的物件:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞\n\ -攜傶棬ズ纂堈﹞" +不存在檔案系統中。\n\ +不移動任何一個。" -14 "閰箹闀蕍柁昡ス:\n\n\ +14 "嘗試複製的物件:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞" +不存在檔案系統中。" -15 "閰箹闀蕍柁昡ス:\n\n\ +15 "嘗試複製的物件:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞\n\ -攜闀蕍ズ纂堈﹞" +不存在檔案系統中。\n\ +不複製任何一個。" -16 "閰箹椵廎柁昡ス:\n\n\ +16 "嘗試連結的物件:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞" +不存在檔案系統中。" -17 "閰箹椵廎柁昡ス:\n\n\ +17 "嘗試連結的物件:\n\n\ %s\n\n\ -攜Бョ麔淰侇嗄斕﹞\n\ -攜椵廎ズ纂堈﹞" +不存在檔案系統中。\n\ +不連結任何一個。" $set 99 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dthello.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dthello.msg index a1021568c..869ad82fe 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dthello.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dthello.msg @@ -40,39 +40,39 @@ $quote " $quote $ Message #2 is no longer used. It has been replaced with messag #3 -2 絒棬\n\ +2 啟動\n\ COSE\n\ -囷え炟蘄頨\n\n +使用者環境\n\n $ Default startup message (written before the contents $ of the default file, /etc/copyright). -3 絒棬\n\ -纂郫痐譫磣隉侇嗄蘄頨\n\n +3 啟動\n\ +一般桌上管理系統環境\n\n $set 4 $ THIS COMMENT FOR DT TEAM ONLY -- dthello.c -- $ This entire set is for error messages $ DO NOT TRANSLATE THESE MESSAGES -1 %s: 隓恄瞅絒䬷ざ\n -2 %s: 蝝渀⽁禕珜\n -3 %1$s: 蠢暐瑊騰麔淰禨珜 %2$d ﹜ 靬蝝 %3$s\n +1 %s: 無法開啟顯示\n +2 %s: 過時必須為正\n +3 %1$s: 允許最大檔案數為 %2$d , 略過 %3$s\n $ Messages 4 and 5 are both used when there is a syntax error on $ the command line invoking dthello $ -4 え恄” %s [-display <䬷ざ>] [-fg <⺪痝>] [-bg <⺪痝>]\\\n -5 [-font <А夆>] [-string <媢桾>] [-file <ボ磝>] [-timeout <秮>]\n +4 用法: %s [-display <顯示>] [-fg <色彩>] [-bg <色彩>]\\\n +5 [-font <字形>] [-string <訊息>] [-file <名稱>] [-timeout <秒>]\n $ _DtMessage 6 occurs when an font can't be loaded $ the likely causes: (1) the font was incorrectly specified $ (2) it is not available on this server -6 %1$s: 䬷ざ %2$s 攜洁蝚А夆 %3$s\n +6 %1$s: 顯示 %2$s 不知道字形 %3$s\n -7 %1$s”隓恄瞅絒麔淰 %2$s\n -8 %1$s”隓恄渿茯葔暋泂珜 %2$s﹜囷え %3$s﹞\n -9 %1$s”隓恄渿虳葔暋泂珜 %2$s=囷え %3$s﹞\n -10 %s”(禳觰柁ヾ齪⺼)\n +7 %1$s:無法開啟檔案 %2$s\n +8 %1$s:無法將背景設定為 %2$s,使用 %3$s。\n +9 %1$s:無法將前景設定為 %2$s」使用 %3$s。\n +10 %s:(分隔的本文行)\n $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -81,5 +81,5 @@ $ DO NOT LOCALIZE THESE MESSAGES $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" -2 "\n@(#)_DtMessage げ蠊坭鳲 $XConsortium: dthello.msg /main/3 1995/11/08 14:06:18 rswiston $: +2 "\n@(#)_DtMessage 目錄來源 $XConsortium: dthello.msg /main/3 1995/11/08 14:06:18 rswiston $: diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dthelpgen.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dthelpgen.msg index 974d4256c..14d4d29bc 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dthelpgen.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dthelpgen.msg @@ -38,30 +38,30 @@ $ will be placed. 'name' mean what base name to give the files placed $ in 'directory'. 'language' means which localized versions of help files $ to look for. $ -1 %s -dir <げ蠊> [-generate] [-file <ボ磝>] [-lang <諴侔>]\n +1 %s -dir <目錄> [-generate] [-file <名稱>] [-lang <語言>]\n $ $ Mesages 2-18 are error messages. $ -2 %s: %s 欄蠣袓攜旂げ蠊\n -3 %s: げ蠊 %s 欄Б抻揧陃\n衭髓崼瞃囷え炟冼禳テ箹纂蓇?\n -4 %s: %s 欄蠣袓攜Бョ\n -5 %s: 讓屼 %s 欄麔淰侇嗄儸橛\n -6 %s: 隓恄Б抻 %s 2 蠆諟昲鳷磍謑 %d\n -7 %s: 讓屼 %s 欄麔淰侇嗄ⅲ逑幺抻\n -8 %s: 錛衭淂囷え炟髓嬣蘋 %s\n -9 %s: 嬣蘋 %s 攜髱\n -10 %s: 銌硻聤梏旂洠柁\n -11 %s: 曬谹 'title' 罶鳲\n -12 %s: 曬谹 'abstract' 罶鳲\n -13 %s: 曬谹 'volumes' 罶鳲\n -14 %s: 曬谹 'character' 碬罶鳲\n -15 %s: 曬谹げ簅げ蠊\n -16 %s: ゝ僛隃侇ト麔淰\n -17 %s: ゝ僛隃晥忟麔淰\n -18 %s: 隓恄Б抻げ虳齡汃げ蠊 2 蠆諟昲鳷磍謑 %d\n -19 %s: 隓恄崷殦奡襉忟\n -20 %s: 挴泂柁侇嗄諴侔 %s 攜髱\n +2 %s: %s 之元素不是目錄\n +3 %s: 目錄 %s 之存取被拒\n要以高階使用者身分再試一次嗎?\n +4 %s: %s 之元素不存在\n +5 %s: 包含 %s 之檔案系統已滿\n +6 %s: 無法存取 %s - 錯誤狀態號碼 %d\n +7 %s: 包含 %s 之檔案系統只能讀取\n +8 %s: 需要根使用者以寫入 %s\n +9 %s: 寫入 %s 不對\n +10 %s: 搜尋路徑是空的\n +11 %s: 欠缺 'title' 資源\n +12 %s: 欠缺 'abstract' 資源\n +13 %s: 欠缺 'volumes' 資源\n +14 %s: 欠缺 'character' 集資源\n +15 %s: 欠缺目標目錄\n +16 %s: 未發現系列檔案\n +17 %s: 未發現容體檔案\n +18 %s: 無法存取目前工作目錄 - 錯誤狀態號碼 %d\n +19 %s: 無法配置記憶體\n +20 %s: 指定的系統語言 %s 不對\n $ $set 2 @@ -81,7 +81,7 @@ $ $ Specifies the title for the browser. $ It is used in the body of text displayed to the user. $ -2 崐玾囷え赮伢諰咭磣隉婝 +2 歡迎使用輔助說明管理員 $ $ Specifies the body of text displayed in the browser. @@ -90,24 +90,24 @@ $ When localizing, DO NOT alter any text between the "<" and ">" pairs. $ That is - DO NOT localize the tags such as and . $ DO localize the text between the tags. $ -3 崐玾囷え赮伢諰咭磣隉婝 \ -譯トペ禋簅纕忔鷥玿\n \ - 纂瞗儸ョ轃譫赮伢諰咭\n \ -Е稹呥漶癱柁雰陔侇ト﹞ 怀禋簅纕\n \ -(縋頝踛) 楁旂ト罐篎侇ト斕赮伢諰咭柁熅椵廎﹞ \ +3 歡迎使用輔助說明管理員 \ +下列各項標題均代表\n \ + 一種已在線上輔助說明\n \ +安裝並註冊的產品系列。 每項標題\n \ +(與圖像) 都是列出該系列中輔助說明的超連結。 \ <0xB7>"> \ -蚍衭䬷ざ雰陔侇ト斕⑴え柁赮伢諰咭柁ト玿﹜霘藞謥\n \ -怬簅纕 (譯簅齪А) 迖頝踛﹞ \ +若要顯示產品系列中可用的輔助說明的列表,請選擇\n \ +其標題 (下標文字) 或圖像。 \ <0xB7>"> \ -ョ纂雰陔侇ト斕﹜霘硻岊睎衭黀槉柁赮伢諰咭﹜隑悒\n \ -藞謥怬簅纕﹞ \ +在一產品系列中,請尋找您要檢視的輔助說明,然後\n \ +選擇其標題。 \ <0xB7>"> \ -ヵ峈睎ョ囷え赮伢諰咭槉嵺渀錛衭赮伢諰咭﹜霘挹 F1﹞ +如果您在使用輔助說明視窗時需要輔助說明,請按 F1。 $ $ Specifies the Volume Title $ -4 赮伢諰咭 2 煄嬬 +4 輔助說明 - 頂層 $ $ Specifies the preamble to the help file if no volumes or family files @@ -117,14 +117,14 @@ $ When localizing, DO NOT alter any text between the "<" and ">" pairs. $ That is - DO NOT localize the tags such as and . $ DO localize the text between the tags. $ -5 崐玾囷え赮伢諰咭磣隉婝 \ +5 歡迎使用輔助說明管理員 \ \ \ -霘恞蜑” 扽儸漶癱柁赮伢諰咭 \ +請注意: 沒有已註冊的輔助說明 \ \ \ -扽雰陔侇ト蛷漶癱怬轃譫赮伢諰咭麔淰坯廲ៜ. \ -赮伢諰咭⑴槴か纂咍鶈え嶂冈囷え﹜霘枺稌ョ鶈え嶂冈斕藞謥赮伢諰咭杬麟﹞ +沒有產品系列曾註冊其線上輔助說明檔案供瀏覽. \ +輔助說明可經由一些應用程式使用,請直接在應用程式中選擇輔助說明命令。 $ $ Specifies the title to use in the dthelpgen dtksh dialog. @@ -136,7 +136,7 @@ $ Specifies the message to display in the dthelpgen dtksh dialog. $ This message indicates that dthelpgen is building (or rebuilding) $ the browser information. $ -7 雰ぇ廲ៜ嶂冈罶涷斕﹞ 霘寣埸﹞ +7 產生瀏覽程式資料中。 請稍候。 $ $set 3 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dthelpprint.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dthelpprint.msg index 43f255023..e09f2609a 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dthelpprint.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dthelpprint.msg @@ -50,16 +50,16 @@ $set 3 $ ***** Module: PrintTopics.c ***** $ $ ** LOCALIZE THESE MESSAGES ** -1 "%s 蠆諟”赮伢諰咭麷伀旂饜纕﹜ɪゝ挴泂赮伢諰咭晥忟\n" -2 "%s 蠆諟”隓恄泂⻏赮伢諰咭晥忟 %s\n" -3 "%s 蠆諟”棯纕搢隉赮伢諰咭晥忟 %s\n" -4 "%s 蠆諟”奡襉忟崷殦⼇絫\n" -5 "%s 蠆諟”隓恄抻痤饜纕罶媢”\n晥忟 %s﹜Id ⻏殦 %s\n" -6 "%s 蠆諟”隓恄瞅絒穛渀迒麔淰 %s\n" +1 "%s 錯誤:輔助說明類別是主題,但未指定輔助說明容體\n" +2 "%s 錯誤:無法定位輔助說明容體 %s\n" +3 "%s 錯誤:問題處理輔助說明容體 %s\n" +4 "%s 錯誤:記憶體配置失敗\n" +5 "%s 錯誤:無法取得主題資訊:\n容體 %s,Id 位置 %s\n" +6 "%s 錯誤:無法開啟暫時性檔案 %s\n" $ String used to replace $SECTNUM when printing the index section -10 "袎鰱" +10 "索引" $ String used to replace $SECTNUM when printing the table of contents section -11 "蠡晥玿眭" +11 "內容表格" $ ** DO NOT LOCALIZE THESE MESSAGES ** $ index entry, page number 20 "%s, %d\n" @@ -74,11 +74,11 @@ $set 4 $ ***** Module: PrintManStrFile.c ***** $ $ ** LOCALIZE THESE MESSAGES ** -1 "%s 蠆諟”赮伢諰咭麷伀旂А⻌﹜ɪゝ挴泂А⻌罶涷﹞\n" -2 "%s 蠆諟”赮伢諰咭麷伀旂棬鳷А⻌﹜ɪゝ挴泂А⻌罶涷﹞\n" -3 "%s 蠆諟”赮伢諰咭麷伀旂轃譫葰伢郟﹜ɪゝ挴泂轃譫葰伢郟﹞\n" -4 "%s 蠆諟”赮伢諰咭旂麔淰﹜ɪゝ挴泂赮伢諰咭麔淰﹞\n" -5 "%s 蠆諟”奡襉忟崷殦⼇絫﹞\n" +1 "%s 錯誤:輔助說明類別是字串,但未指定字串資料。\n" +2 "%s 錯誤:輔助說明類別是動態字串,但未指定字串資料。\n" +3 "%s 錯誤:輔助說明類別是線上援助頁,但未指定線上援助頁。\n" +4 "%s 錯誤:輔助說明是檔案,但未指定輔助說明檔案。\n" +5 "%s 錯誤:記憶體配置失敗。\n" $set 5 $ ***** Module: Initialize.c ***** @@ -87,42 +87,42 @@ $ ** LOCALIZE THESE MESSAGES ** $ Messages 1 to 29: dthelpprint usage message $ **DO NOT LOCALIZE** the command line option names (e.g. -copies). $ **DO LOCALIZE** the option argument (e.g. number) and description. -1 "dthelpprint 2 赮伢諰咭トパ嶂冈\n\n" -2 "囷え巖恄” dthelpprint [options]\n" -3 "祰戔ヵトパ柁藞禋”\n" -4 "\t-printer printername 袺囷え欄パ玿鞥\n" -5 "\t-copies number 袺トパ欄麔淰禨げ\n" -6 "\t-outputFile filename 渿藣罐嬣蘋ヾ麔淰\n" -7 "\t-paperSize size 嵁髱禳郟蟟騰麵欄眭冈蠡晥\n" +1 "dthelpprint - 輔助說明列印程式\n\n" +2 "使用方法: dthelpprint [options]\n" +3 "控制如何列印的選項:\n" +4 "\t-printer printername 欲使用之印表機\n" +5 "\t-copies number 欲列印之檔案數目\n" +6 "\t-outputFile filename 將輸出寫入本檔案\n" +7 "\t-paperSize size 針對分頁器大小之格式內容\n" $ DO NOT LOCALIZE THE PAPER SIZE NAMES help_papersize_xxx 8 "\t\tsize = { help_papersize_letter|help_papersize_legal|\n" 9 "\t\t help_papersize_executive|help_papersize_a4|help_papersize_b5}\n" -10 "\t-display displayname 䬷ざА搢抻痤罶鳲\n" -11 "\t-name 抻痤罶鳲渀囷え柁嶂冈ボ磝\n" -12 "\t-class 抻痤罶鳲渀囷え柁嶉觕ボ磝\n" -13 "\t-xrm resourcestring 籧⼃柁罶鳲\n" -14 "祰戔袺トパ欄昡柁藞禋”\n" -15 "\t-helpType type 赮伢諰咭罶涷柁麷伀\n" +10 "\t-display displayname 顯示字何處取得資源\n" +11 "\t-name 取得資源時使用的程式名稱\n" +12 "\t-class 取得資源時使用的等級名稱\n" +13 "\t-xrm resourcestring 額外的資源\n" +14 "控制欲列印之物的選項:\n" +15 "\t-helpType type 輔助說明資料的類別\n" 16 "\t\ttype = 0 (help volume), 1 (string), 2 (man page), 3 (help file)\n" -17 "\t-helpVolume volume 赮伢諰咭晥忟麔淰柁汒謽聤梏\n" -18 "\t-locationId location 晥忟斕赮伢諰咭饜纕柁ボ磝\n" -19 "\t-all トパ赮伢諰咭晥忟斕邴饜纕﹜げ蠊﹜昑袎鰱\n" -20 "\t-sub トパ饜纕 Id ⻏殦縋ツ楶騵纕\n" -21 "\t-one トパ饜纕 Id ⻏殦\n" -22 "\t-toc トパ赮伢諰咭晥忟げ蠊\n" -23 "\t-index トパ赮伢諰咭晥忟袎鰱\n" -24 "\t-frontMatter トパ赮伢諰咭晥忟虳巖呦禋\n" -25 "\t-manPage manpagename 轃譫齬葰郟柁ボ磝\n" -26 "\t-stringData string 袺トパ柁赮伢諰咭ヾ齪\n" -27 "\t-helpFile filename 讓屼赮伢諰咭ヾ齪柁麔淰\n" -28 "\t-jobTitle title トパ齡汃欄簅纕А⻌\n" -29 "\t-topicTitle title 赮伢諰咭ヾ齪欄簅纕А⻌\n" +17 "\t-helpVolume volume 輔助說明容體檔案的完整路徑\n" +18 "\t-locationId location 容體中輔助說明主題的名稱\n" +19 "\t-all 列印輔助說明容體中所有主題,目錄,和索引\n" +20 "\t-sub 列印主題 Id 位置與全部子題\n" +21 "\t-one 列印主題 Id 位置\n" +22 "\t-toc 列印輔助說明容體目錄\n" +23 "\t-index 列印輔助說明容體索引\n" +24 "\t-frontMatter 列印輔助說明容體前方事項\n" +25 "\t-manPage manpagename 線上支援頁的名稱\n" +26 "\t-stringData string 欲列印的輔助說明本文\n" +27 "\t-helpFile filename 包含輔助說明本文的檔案\n" +28 "\t-jobTitle title 列印工作之標題字串\n" +29 "\t-topicTitle title 輔助說明本文之標題字串\n" $ Warning and error messages $ Do NOT localize the default size name help_papersize_letter -40 "%s 滙夼”攜ポ恄柁訬痧騰麵 '%s'﹞囷え help_papersize_letter﹞\n" -41 "%s 滙夼”谹韁訬痧騰麵﹝崼唄迖嬥唄圊﹞囷え help_papersize_letter﹞\n" -42 "%s 滙夼”隓恄瞅絒䬷ざ %s\n" -45 "蠆諟”隓恄珜穛渀迒麔淰崷殦奡襉忟﹞\n" +40 "%s 警告:不合法的紙張大小 '%s'。使用 help_papersize_letter。\n" +41 "%s 警告:缺少紙張大小、高度或寬度值。使用 help_papersize_letter。\n" +42 "%s 警告:無法開啟顯示 %s\n" +45 "錯誤:無法為暫時性檔案配置記憶體。\n" $ ** DO NOT LOCALIZE THESE MESSAGES ** $ arg order: directory prefix processid filecnt suffix 50 "%1$s/%2$s%3$d_%4$d%5$s" @@ -132,7 +132,7 @@ $set 6 $ ***** Module: Main.c ***** $ $ ** LOCALIZE THESE MESSAGES ** -1 "%s 蠆諟”赮伢諰咭麷伀 %d 攜髱.\n" +1 "%s 錯誤:輔助說明類別 %d 不對.\n" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dticon.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dticon.msg index 2c93c2f02..9ed068890 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dticon.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dticon.msg @@ -32,19 +32,19 @@ $ ** $ ** messages 10-16 are for the FileSelectionBox widget (default labels) $ ***************************************************************************** -2 頝踛蹌藟蟟 -- 麔淰藣蘋/藣罐 -4 頝踛蹌藟蟟 -- 麔淰藣蘋/藣罐 -6 頝踛蹌藟蟟 -- 鬊Б珜 -8 頝踛蹌藟蟟 -- 瞅絒麔淰 -10 彶隞 -12 麔淰扢 -14 麔淰 -16 藣蘋麔ボ” -17 藣蘋麔ボ” -18 彶隞 -20 ゝ泂簅纕 -22 瞅絒 -24 鬊Б +2 圖像編輯器 -- 檔案輸入/輸出 +4 圖像編輯器 -- 檔案輸入/輸出 +6 圖像編輯器 -- 儲存為 +8 圖像編輯器 -- 開啟檔案 +10 更新 +12 檔案夾 +14 檔案 +16 輸入檔名: +17 輸入檔名: +18 更新 +20 未定標題 +22 開啟 +24 儲存 $set 4 $ ***************************************************************************** @@ -52,13 +52,13 @@ $ ** _DtMessage set for newIconDialog.c $ ** $ ***************************************************************************** -2 隞頝踛髱緷涺 -4 頝踛蹌藟蟟 -- 适隞彶庍騰麵 -6 薚泂 -8 抻祤 -10 赮伢諰咭 -12 隞嬥唄” -14 隞崼唄” +2 新圖像對話框 +4 圖像編輯器 -- 重新更改大小 +6 確定 +8 取消 +10 輔助說明 +12 新寬度: +14 新高度: $set 6 $ ***************************************************************************** @@ -66,11 +66,11 @@ $ ** _DtMessage set for queryDialog.c $ ** $ ***************************************************************************** -2 頝踛蹌藟蟟 -- 滙夼 -6 薚泂 +2 圖像編輯器 -- 警告 +6 確定 $ ** DO NOT LOCALIZE - the user should never see this message 8 Do ya really wanna? -10 抻祤 +10 取消 $set 8 $ ***************************************************************************** @@ -78,8 +78,8 @@ $ ** _DtMessage set for stdErrDialog.c $ ** $ ***************************************************************************** -2 頝踛蹌藟蟟 -- 蠆諟 -4 凭㶴 +2 圖像編輯器 -- 錯誤 +4 繼續 $set 10 $ ***************************************************************************** @@ -111,16 +111,16 @@ $ ** DO NOT LOCALIZE messages 2-48, they appear in the errorlog only 46 No memory(4) 48 No memory(5) -50 隓恄珫囷襲鶈え嶂冈頝踛鬊Б蟟 -52 '-f' 棤禨欄隓淩囷え -54 '-i' 棤禨欄隓淩囷え -56 '-session' 棤禨欄隓淩囷え -58 隓淩柁騰麵斒眭 -60 糬魦憵踛庉抻⼇絫 -62 汃鞄⼇絫﹞\n⺪痝頝儸橛 -64 隓淩柁謓睕棤禨 +50 無法初使化應用程式圖像儲存器 +52 '-f' 參數之無效使用 +54 '-i' 參數之無效使用 +56 '-session' 參數之無效使用 +58 無效的大小規格 +60 螢幕影像抓取失敗 +62 作業失敗。\n色彩圖已滿 +64 無效的範圍參數 -66 (ゝ杬ボ) +66 (未命名) $set 12 @@ -129,77 +129,77 @@ $ ** _DtMessage set for dtIconShell.c $ ** $ ***************************************************************************** -1 頝踛蹌藟蟟 -2 灛⺪ -3 頝踛蹌藟蟟 -- (ゝ杬ボ) -4 崐玾囷え頝踛蹌藟蟟﹞ -6 蝫蘋骳忟 -8 譖鳷⺪痝 -10 棬鳷⺪痝 -12 譖鳷⺪ -14 虳葔 -16 茯葔 -18 煄磞歆憵 -20 芚磞歆憵 -22 藞抻 -24 椴咭 +1 圖像編輯器 +2 雙色 +3 圖像編輯器 -- (未命名) +4 歡迎使用圖像編輯器。 +6 填入實體 +8 靜態色彩 +10 動態色彩 +12 靜態灰色 +14 前景 +16 背景 +18 頂端陰影 +20 底端陰影 +22 選取 +24 透明 $ ** message 26-198 are menu items with corresponding mnemonics $ ** (for set grouping information, see the comment at the end-of-file) 26 N -28 覗崽(N)... +28 清除(N)... 30 O -32 瞅絒(O)... +32 開啟(O)... 34 S -36 鬊Б(S) +36 儲存(S) 38 A -40 鬊Б珜(A)... +40 儲存為(A)... 42 x -44 廎忒(x) +44 結束(x) 46 F -48 麔淰(F) +48 檔案(F) 50 U -52 艀婘(U) +52 復原(U) 54 t -56 椌抻棷棦(t) +56 剪取區域(t) 58 C -60 赮伢棷棦(C) +60 輔助區域(C) 62 P -64 䔝舅漜棷棦(P) +64 粘貼區域(P) 68 L -70 ⼢(L) +70 左(L) 72 R -74 ⑶(R) +74 右(R) 76 R -78 菕鼲棷棦(R) +78 旋轉區域(R) 82 V -84 倰枺(V) +84 垂直(V) 86 H -88 纓⼳(H) +88 水平(H) 90 F -92 酈鼲棷棦(F) +92 正反轉區域(F) 94 S -96 籤坲饕棷棦(S) +96 比例尺區域(S) 98 z -100 彶庍騰麵柁頝踛(z)... +100 更改大小的圖像(z)... 102 A -104 嚌蠹汃え鷁(A) +104 增加作用點(A) 106 D -108 伝崽汃え鷁(D) +108 刪除作用點(D) 110 G -112 庉抻糬魦憵踛(G) +112 抓取螢幕影像(G) 114 e -116 覗崽頝踛(e) +116 清除圖像(e) 118 E -120 蹌藟(E) +120 編輯(E) 122 V -124 ⑴侐篚鷁(V) +124 可見網點(V) 128 B 130 XBM(B) 134 P 136 XPM(P) 138 O -140 藣罐眭冈(O) +140 輸出格式(O) 144 2x 146 3x 148 4x @@ -209,38 +209,38 @@ $ ** (for set grouping information, see the comment at the end-of-file) 156 10x 158 12x 160 M -162 勂騰(M) +162 放大(M) 164 O -166 藞禋(O) +166 選項(O) 168 v -170 颮羏(v)... +170 概觀(v)... 172 T -174 齡汃(T)... +174 工作(T)... 176 R -178 棤℡罶涷(R)... +178 參考資料(R)... 180 O -182 驨卼禋げ(O) +182 關於項目(O) 188 U -190 囷え赮伢諰咭(U)... +190 使用輔助說明(U)... 192 A -194 驨卼頝踛蹌藟蟟(A)... +194 關於圖像編輯器(A)... 196 H -198 赮伢諰咭(H) +198 輔助說明(H) $ ** message 200-are used in the "instruction" line for current drawing mode -200 げ虳蹌藟篲冈 -202 (儸蝫蘋) -204 褋嵾 -206 蝫橛 -208 轃蛨 -210 ロ适轃 -212 畈巖夆 -214 ロ饡夆 -216 蓛 -218 蹖蓛 -220 祤崽 -222 藞抻 -224 隓淩 +200 目前編輯模式 +202 (已填入) +204 鉛筆 +206 填滿 +208 線條 +210 多重線 +212 長方形 +214 多邊形 +216 圓 +218 橢圓 +220 消除 +222 選取 +224 無效 $set 14 $ ***************************************************************************** @@ -248,8 +248,8 @@ $ ** _DtMessage set for help.c $ ** $ ***************************************************************************** -2 頝踛蹌藟蟟 -- 赮伢諰咭 -4 睎⽁禕ョ頝踛蹌藟蟟蠡\n藞謥纂堈禋げ﹞ +2 圖像編輯器 -- 輔助說明 +4 您必須在圖像編輯器內\n選擇一個項目。 $set 16 $ ***************************************************************************** @@ -257,17 +257,17 @@ $ ** _DtMessage set for process.c $ ** $ ***************************************************************************** -2 ヾ麔淰隓恄Б抻\n迖讓屼隓淩柁罶涷 -4 隓恄渿罶涷嬣蘋麔淰 -6 楙堈笱迒泲隓恄囷え -8 隓ッ虳柁\n憵踛⑴え -10 挴泂藹隓淩柁\n嬥唄縋/迖崼唄 -12 ゝ藞抻棷棦 -14 隓棷棦ョッ虳揧\n椌抻迖闀蕍 -16 げ虳柁頝踛泲ゝ鬊Б﹞\n\n睎惉柁彶庍鞂橝⼇﹞ -20 黀栯麔淰暐⑴ḷ -22 隓恄⺌麔淰斕ャ艀瞃栠麔淰 -24 隓恄渿瞃栠麔淰Б蘋麔淰斕 +2 本檔案無法存取\n或包含無效的資料 +4 無法將資料寫入檔案 +6 這個特性尚無法使用 +8 無先前的\n影像可用 +10 指定了無效的\n寬度與/或高度 +12 未選取區域 +14 無區域在先前被\n剪取或複製 +16 目前的圖像尚未儲存。\n\n您做的更改會漏失。 +20 檢查檔案許可權 +22 無法自檔案中回復階段檔案 +24 無法將階段檔案存入檔案中 $ ***************************************************************************** $ ** End of _DtMessage Catalog File diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtksh.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtksh.msg index 44aae293b..74c8077aa 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtksh.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtksh.msg @@ -1,187 +1,187 @@ $ $XConsortium: dtksh.msg /main/3 1996/07/24 19:02:59 drk $ $set 1 -1 DtkshCvtStringToPixel”⺪痝 '%s' ゝ泂氂 +1 DtkshCvtStringToPixel:色彩 '%s' 未定義 $set 5 -1 挴泂藹霽ロ罶鳲棤禨“聧蝝 '%s' -2 罶鳲斒眭諟“眭冈鶈珜 'name:value'”%s -3 罶鳲禳觰蠣珜 ':'﹜ɪ睎囷え '='”%s -4 齡怞嗢儸媊沓暋泂 -5 え恄”XtInitialize variable applicationName applicationClass [args ...] -6 え恄”%s variable name class parent [arg:val ...] -7 え恄”XtCreateApplicationShell variable name class [arg:val ...] -8 え恄”XtPopup widget GrabNone|GrabNonexclusive|GrabExclusive -9 隓恄藑籫庉抻麷倛 '%s'“モ囷え 'GrabNone' -10 え恄”XtIsShell widget -11 え恄”XtMapWidget widget -12 え恄”XtUnmapWidget widget -13 え恄”%s variable widget -14 え恄”XtScreen variable widget -15 え恄”XtWindow variable widget -16 え恄”XtCallCallbacks widget callbackName -17 え恄”XtHasCallbacks variable widget callbackName -18 え恄”XtAddCallback widget callbackName ksh-command -19 え恄”XtRemoveCallback widget callbackName ksh-command -20 髓譯旂隓淩柁ャⅰ搢隉蹌磍”%s -21 挴泂柁ャⅰ搢隉ゝ漶癱 -22 え恄”XtAddEventHandler widget mask nonMaskable ksh-command -23 え恄”XtRemoveEventHandler widget mask nonMaskable ksh-command -24 挴泂柁呦ス搢隉搢隉蟟ゝ蹌磍 -25 え恄”XtGetValues widget resource:variable ... -26 髓譯柁罶鳲棤禨眭冈蠆諟”%s -27 え恄”XtSetValues widget arg:val ... -28 え恄”XtAddWorkProc variable command -29 え恄”XtRemoveWorkProc workProcId -30 workProcId 棤禨⽁禕珜觸蠟瑱⻏禨”%s -31 え恄”XtAddTimeOut variable milliseconds command -32 袹秮棤禨⽁禕騰卼誻 -33 え恄”XtRemoveTimeOut intervalId -34 intervalId 棤禨⽁禕珜觸蠟瑱⻏禨”%s -35 え恄”%s widget ... -36 え恄”XBell display volume -37 え恄”%s variable screen -38 糬魦棤禨隓淩”%s -39 え恄”XDefineCursor display window cursorId -40 cursorId 棤禨隓淩”%s -41 え恄”XUndefineCursor display window -42 え恄”XtRemoveAllCallbacks widget callbackName -43 え恄”XTextWidth variable fontName string -44 え恄”%s display drawable [args ...] -45 drawable 棤禨隓淩”%s -46 destination 棤禨隓淩”%s -47 頝夆怐禨ボ磝隓恄藑籫”%s -48 轃蛨穔冈隓恄藑籫”%s -49 鸁頝藞禋隓恄藑籫”%s -50 纂咍瑀瀦柁鷁揧芩靬 -51 え恄”XCopyArea display source dest sourceX sourceY width height destX destY [args ...] -52 隓恄渿罶鳲麷倛 '%s' 鼲葎 'String' -53 隓恄渿罶鳲麷倛 'String' 鼲葎 '%s' 麷倛 -54 え恄”XtAddInput variable [-r] fileDescriptor kshCommand -56 え恄”XtRemoveInput inputId -57 inputId 棤禨⽁禕珜觸蠟瑱⻏禨”%s -59 え恄”XFlush display -60 え恄”XSync display discard -61 え恄”XRaiseWindow display window -62 え恄”%s widget [True|False] -63 え恄”%s widget translations -64 え恄”XtUninstallTranslations widget -65 え恄”XtParent variable widget -66 え恄”XtLastTimestampProcessed variable display -67 え恄”DtSessionRestorePath widget pathVariable saveFile -68 え恄”DtSessionSavePath widget pathVariable fileVariable -69 え恄”DtShellIsIconified widget -70 え恄”DtSetStartupCommand widget command -71 え恄”DtSetIconifyHint widget boolean -73 rootWindow 棤禨隓淩”%s -74 え恄”DtWsmSetCurrentWorkspace widget atom -75 齡汃洠睮蠣袓隓淩”%s -78 え恄”DtWsmSetWorkspacesOccupied display window workspaceList -79 え恄”DtGetHourGlassCursor variable display -80 え恄”DtWsmAddCurrentWorkspaceCallback variable widget ksh-command -81 え恄”DtWsmRemoveWorkspaceCallback handle -82 え恄”XtNameToWidget variable referenceWidget names -83 え恄”DtDbLoad -84 え恄”DtDbReloadNotify ksh-command -85 え恄”DtActionExists actionName -86 え恄”DtActionLabel variable actionName -87 え恄”DtActionDescription variable actionName -88 え恄”DtActionInvoke widget actionName termParms execHost contextDir useIndicator ksh-command ["FILE" fileName] ... -89 え恄”DtDtsLoadDataTypes -90 え恄”DtDtsFileToDataType variable fileName -91 え恄”DtDtsFileToAttributeValue variable fileName attrName -92 え恄”DtDtsFileToAttributeList variable fileName -93 え恄”DtDtsDataTypeToAttributeValue variable dataType attrName optName -94 え恄”DtDtsDataTypeToAttributeList variable dataType optName -95 え恄”DtDtsFindAttribute variable name value -96 え恄”DtDtsDataTypeNames variable -97 え恄”DtDtsSetDataType variable fileName dataType override -98 え恄”DtDtsDataTypeIsAction dataType -99 え恄”ttdt_open variable status variable2 toolname vendor version sendStarted -100 え恄”tttk_Xt_input_handler procId source id -101 罶鳲棤禨⽁禕珜謽禨”%s -102 id 棤禨⽁禕珜觸蠟瑱⻏禨”%s -103 え恄”ttdt_close status procId newProcId sendStopped -104 え恄”ttdt_session_join variable status sessId shellWidgetHandle join -105 え恄”ttdt_session_quit status sessId sessPatterns quit -106 sessPatterns 棤禨隓淩”%s -107 え恄”ttdt_file_event status op patterns send -108 え恄”ttdt_file_quit status patterns quit -109 え恄”ttdt_Get_Modified pathName scope timeout -110 え恄”%s status pathName scope timeout -112 え恄”tt_error_pointer variable ttStatus -113 え恄”%s status msg -114 え恄”%s status msg msgStatus msgStatusString destroy -115 え恄”ttdt_file_join variable status pathName scope join ksh-command -116 え恄”tt_file_netfile variable status filename -117 え恄”tt_netfile_file variable status netfilename -118 え恄”tt_host_file_netfile variable status host filename -119 え恄”tt_host_netfile_file variable status host netfilename -120 え恄”XtIsSubclass widget class -121 %s 攜旂淩柁 widget 麷伀ボ磝 -122 え恄”XtClass variable widget +1 指定了太多資源參數;跳過 '%s' +2 資源規格有誤;格式應為 'name:value':%s +3 資源分隔元為 ':',但您使用 '=':%s +4 工具組已起始設定 +5 用法:XtInitialize variable applicationName applicationClass [args ...] +6 用法:%s variable name class parent [arg:val ...] +7 用法:XtCreateApplicationShell variable name class [arg:val ...] +8 用法:XtPopup widget GrabNone|GrabNonexclusive|GrabExclusive +9 無法辨識抓取類型 '%s';因此使用 'GrabNone' +10 用法:XtIsShell widget +11 用法:XtMapWidget widget +12 用法:XtUnmapWidget widget +13 用法:%s variable widget +14 用法:XtScreen variable widget +15 用法:XtWindow variable widget +16 用法:XtCallCallbacks widget callbackName +17 用法:XtHasCallbacks variable widget callbackName +18 用法:XtAddCallback widget callbackName ksh-command +19 用法:XtRemoveCallback widget callbackName ksh-command +20 以下是無效的回叫處理編號:%s +21 指定的回叫處理未註冊 +22 用法:XtAddEventHandler widget mask nonMaskable ksh-command +23 用法:XtRemoveEventHandler widget mask nonMaskable ksh-command +24 指定的事件處理處理器未編號 +25 用法:XtGetValues widget resource:variable ... +26 以下的資源參數格式錯誤:%s +27 用法:XtSetValues widget arg:val ... +28 用法:XtAddWorkProc variable command +29 用法:XtRemoveWorkProc workProcId +30 workProcId 參數必須為十六進位數:%s +31 用法:XtAddTimeOut variable milliseconds command +32 毫秒參數必須大於零 +33 用法:XtRemoveTimeOut intervalId +34 intervalId 參數必須為十六進位數:%s +35 用法:%s widget ... +36 用法:XBell display volume +37 用法:%s variable screen +38 螢幕參數無效:%s +39 用法:XDefineCursor display window cursorId +40 cursorId 參數無效:%s +41 用法:XUndefineCursor display window +42 用法:XtRemoveAllCallbacks widget callbackName +43 用法:XTextWidth variable fontName string +44 用法:%s display drawable [args ...] +45 drawable 參數無效:%s +46 destination 參數無效:%s +47 圖形函數名稱無法辨識:%s +48 線條樣式無法辨識:%s +49 繪圖選項無法辨識:%s +50 有一些剩餘的點被忽略 +51 用法:XCopyArea display source dest sourceX sourceY width height destX destY [args ...] +52 無法將資源類型 '%s' 轉換成 'String' +53 無法將資源類型 'String' 轉換成 '%s' 類型 +54 用法:XtAddInput variable [-r] fileDescriptor kshCommand +56 用法:XtRemoveInput inputId +57 inputId 參數必須為十六進位數:%s +59 用法:XFlush display +60 用法:XSync display discard +61 用法:XRaiseWindow display window +62 用法:%s widget [True|False] +63 用法:%s widget translations +64 用法:XtUninstallTranslations widget +65 用法:XtParent variable widget +66 用法:XtLastTimestampProcessed variable display +67 用法:DtSessionRestorePath widget pathVariable saveFile +68 用法:DtSessionSavePath widget pathVariable fileVariable +69 用法:DtShellIsIconified widget +70 用法:DtSetStartupCommand widget command +71 用法:DtSetIconifyHint widget boolean +73 rootWindow 參數無效:%s +74 用法:DtWsmSetCurrentWorkspace widget atom +75 工作空間元素無效:%s +78 用法:DtWsmSetWorkspacesOccupied display window workspaceList +79 用法:DtGetHourGlassCursor variable display +80 用法:DtWsmAddCurrentWorkspaceCallback variable widget ksh-command +81 用法:DtWsmRemoveWorkspaceCallback handle +82 用法:XtNameToWidget variable referenceWidget names +83 用法:DtDbLoad +84 用法:DtDbReloadNotify ksh-command +85 用法:DtActionExists actionName +86 用法:DtActionLabel variable actionName +87 用法:DtActionDescription variable actionName +88 用法:DtActionInvoke widget actionName termParms execHost contextDir useIndicator ksh-command ["FILE" fileName] ... +89 用法:DtDtsLoadDataTypes +90 用法:DtDtsFileToDataType variable fileName +91 用法:DtDtsFileToAttributeValue variable fileName attrName +92 用法:DtDtsFileToAttributeList variable fileName +93 用法:DtDtsDataTypeToAttributeValue variable dataType attrName optName +94 用法:DtDtsDataTypeToAttributeList variable dataType optName +95 用法:DtDtsFindAttribute variable name value +96 用法:DtDtsDataTypeNames variable +97 用法:DtDtsSetDataType variable fileName dataType override +98 用法:DtDtsDataTypeIsAction dataType +99 用法:ttdt_open variable status variable2 toolname vendor version sendStarted +100 用法:tttk_Xt_input_handler procId source id +101 資源參數必須為整數:%s +102 id 參數必須為十六進位數:%s +103 用法:ttdt_close status procId newProcId sendStopped +104 用法:ttdt_session_join variable status sessId shellWidgetHandle join +105 用法:ttdt_session_quit status sessId sessPatterns quit +106 sessPatterns 參數無效:%s +107 用法:ttdt_file_event status op patterns send +108 用法:ttdt_file_quit status patterns quit +109 用法:ttdt_Get_Modified pathName scope timeout +110 用法:%s status pathName scope timeout +112 用法:tt_error_pointer variable ttStatus +113 用法:%s status msg +114 用法:%s status msg msgStatus msgStatusString destroy +115 用法:ttdt_file_join variable status pathName scope join ksh-command +116 用法:tt_file_netfile variable status filename +117 用法:tt_netfile_file variable status netfilename +118 用法:tt_host_file_netfile variable status host filename +119 用法:tt_host_netfile_file variable status host netfilename +120 用法:XtIsSubclass widget class +121 %s 不是有效的 widget 類別名稱 +122 用法:XtClass variable widget $set 6 -1 DtkshCvtWindowToString”'from' 圊柁騰麵隓淩 -2 DtkshCvtHexIntToString”'from' 圊柁騰麵隓淩 -3 DtkshCvtIntToString”'from' 圊柁騰麵隓淩 -4 DtkshCvtBooleanToString”'from' 圊柁騰麵隓淩 -5 DtkshCvtStringToWidget”'from' 圊柁騰麵隓淩 -6 DtkshCvtStringToWidget”Unable to find a widget named '%s' -7 DtkshCvtStringToCallback”'from' 圊柁騰麵隓淩 -8 DtkshCvtCallbackToString”'from' 圊柁騰麵隓淩 -9 DtkshCvtWidgetToString”'from' 圊柁騰麵隓淩 -10 DtkshCvtWidgetToString”隓恄岊怉 widget 柁ボ磝 -11 DtkshCvtWidgetClassToString”'from' 圊柁騰麵隓淩 -12 DtkshCvtWidgetClassToString”ゝ洁柁 widget 麷伀 -13 DtkshCvtStringToWidgetClass”ゝ洁柁 widget 麷伀ボ磝 -14 DtkshCvtScreenToString”'from' 圊柁騰麵隓淩 +1 DtkshCvtWindowToString:'from' 值的大小無效 +2 DtkshCvtHexIntToString:'from' 值的大小無效 +3 DtkshCvtIntToString:'from' 值的大小無效 +4 DtkshCvtBooleanToString:'from' 值的大小無效 +5 DtkshCvtStringToWidget:'from' 值的大小無效 +6 DtkshCvtStringToWidget:Unable to find a widget named '%s' +7 DtkshCvtStringToCallback:'from' 值的大小無效 +8 DtkshCvtCallbackToString:'from' 值的大小無效 +9 DtkshCvtWidgetToString:'from' 值的大小無效 +10 DtkshCvtWidgetToString:無法找到 widget 的名稱 +11 DtkshCvtWidgetClassToString:'from' 值的大小無效 +12 DtkshCvtWidgetClassToString:未知的 widget 類別 +13 DtkshCvtStringToWidgetClass:未知的 widget 類別名稱 +14 DtkshCvtScreenToString:'from' 值的大小無效 $set 11 -1 隓恄岊怉唫⻏ボ磝 '%s' ョ '%s' 廎擛斕 -2 DtkshCvtCallbackToString”蠡楶鼲葎邅鍙棷鬿⻏ -3 罶鳲 '%s' 捋鈺 (Hashing) ⼇絫﹜ョ widget 麷伀 '%s' 斕 -4 ゝ菙坯衢逑ボ磝 -5 杬麟隓恄欹⺼“齡怞嗢泲ゝ媊沓暋泂 -6 widget '%s' 唈ゥ⼇絫 -7 䬷ざ棤禨隓淩”%s -8 髓譯笱迒蠣袓隓淩”%s -9 widget '%s' ゝ泂氂髓譯罶鳲”%s -10 挴泂柁⻏殦隓淩”%s -11 挴泂柁А夆隓淩”%s -12 widget 搢隉蹌磍 '%s' ゝ棤嘵怉隃Б柁 widget -13 widget ⽁禕旂纂堈 'command' widget -14 widget ⽁禕旂纂堈 'mainWindow' widget -15 widget ⽁禕旂纂堈 'scale' widget -16 widget ⽁禕旂纂堈 'scrollBar' widget -17 widget ⽁禕旂纂堈 'toggleButton' widget 迖 gadget -18 槉嵺棤禨隓淩”%s -19 隓恄崷殦⽁衭柁奡襉忟﹜廎忒斕 -20 隓恄岊怉々 widget -21 隓恄岊怉嗃磍 '%s' -22 隓恄岊怉麷倛 '%s' -23 隓恄箾庰剚夼 '%s'“モ囷え 'unsigned long' -24 ゝ洁柁騵麷倛”%s -25 藞禋憿簅隓恄藑籫”%s -26 え恄”%s widget position -27 え恄”%s widget time -28 え恄”%s widget -29 dtksh 蠆諟 -30 dtksh 滙夼 -31 え恄”%s display window -32 え恄”%s display window variable -33 え恄”%s display rootWindow variable -34 timeout 棤禨隓淩”%s -35 msg 棤禨隓淩”%s -36 patterns 棤禨隓淩”%s +1 無法找到欄位名稱 '%s' 在 '%s' 結構中 +2 DtkshCvtCallbackToString:內部轉換緩衝區溢位 +3 資源 '%s' 拼湊 (Hashing) 失敗,在 widget 類別 '%s' 中 +4 未提供功能名稱 +5 命令無法執行;工具組尚未起始設定 +6 widget '%s' 建立失敗 +7 顯示參數無效:%s +8 以下特性元素無效:%s +9 widget '%s' 未定義以下資源:%s +10 指定的位置無效:%s +11 指定的字形無效:%s +12 widget 處理編號 '%s' 未參照到現存的 widget +13 widget 必須是一個 'command' widget +14 widget 必須是一個 'mainWindow' widget +15 widget 必須是一個 'scale' widget +16 widget 必須是一個 'scrollBar' widget +17 widget 必須是一個 'toggleButton' widget 或 gadget +18 視窗參數無效:%s +19 無法配置必要的記憶體,結束中 +20 無法找到母 widget +21 無法找到符號 '%s' +22 無法找到類型 '%s' +23 無法解析宣告 '%s';因此使用 'unsigned long' +24 未知的子類型:%s +25 選項旗標無法辨識:%s +26 用法:%s widget position +27 用法:%s widget time +28 用法:%s widget +29 dtksh 錯誤 +30 dtksh 警告 +31 用法:%s display window +32 用法:%s display window variable +33 用法:%s display rootWindow variable +34 timeout 參數無效:%s +35 msg 參數無效:%s +36 patterns 參數無效:%s $set 14 -1 widget 媊沓暋泂渀﹜蠡楶捋鈺玿⼇絫“廎忒斕 -2 隓恄岊怉ボ珜 '%s' 柁 widget 麷伀 -3 籫伀А '%s' 攜旂淩柁 widget 搢隉蹌磍 -4 隓恄岊怉 widget 麷伀 -5 え恄”DtLoadWidget widgetClassName widgetClassRecordName -6 隓恄岊怉ボ珜 '%s' 柁 widget 麷伀奡蠊 -7 widget 麷伀 '%s' 媊沓暋泂渀﹜蠡楶捋鈺玿⼇絫 +1 widget 起始設定時,內部拼湊表失敗;結束中 +2 無法找到名為 '%s' 的 widget 類別 +3 識別字 '%s' 不是有效的 widget 處理編號 +4 無法找到 widget 類別 +5 用法:DtLoadWidget widgetClassName widgetClassRecordName +6 無法找到名為 '%s' 的 widget 類別記錄 +7 widget 類別 '%s' 起始設定時,內部拼湊表失敗 8 \n%sRESOURCES FOR %s%s%s:\n 9 CONSTRAINT 10 R @@ -189,116 +189,116 @@ $set 14 12 S 13 %-15s %-6s %-6s %-18s %-6s %s\n 14 ENV VARIABLE HANDLE PARENT CLASS STATUS NAME\n -15 \nえ恄”\tDtWidgetInfo [widgetHandle]\n\tDtWidgetInfo -r \n\tDtWidgetInfo -R \n\tDtWidgetInfo -c [className]\n\tDtWidgetInfo -h [widgetHandle] +15 \n用法:\tDtWidgetInfo [widgetHandle]\n\tDtWidgetInfo -r \n\tDtWidgetInfo -R \n\tDtWidgetInfo -c [className]\n\tDtWidgetInfo -h [widgetHandle] $set 15 -1 隓恄媊沓暋泂 Toolkit -2 髓譯罶鳲隓恄ョ唈ゥ widget\n渀暋泂﹞霘ョ唈ゥ悒囷え XtSetValues 暋泂”%s -3 え恄”%s variable parent name [argument:value ...] -4 え恄”DtHelpReturnSelectedWidgetId variable widget variable -5 え恄”DtHelpSetCatalogName catalogName -6 え恄”DtHelpQuickDialogGetChild variable quickHelpWidget child -7 widget ⽁禕旂纂堈 'quickHelp' widget -8 widget ⽁禕旂纂堈 'list' widget -9 え恄”%s widget position item -10 え恄”%s widget position itemList -11 え恄”%s widget item -12 え恄”XmListDeleteItemsPos widget count position -13 え恄”XmListDeleteItems widget itemList -14 え恄”XmListDeletePositions widget positionList -15 え恄”XmListGetKbdItemPos variable widget -16 え恄”XmListItemExists widget item -17 え恄”XmListItemPos variable widget item -18 え恄”XmListPosSelected widget position -19 え恄”XmListPosToBounds widget position variable variable variable variable -20 え恄”%s widget position notifyFlag -21 え恄”%s widget item notifyFlag -22 え恄”XmListSetAddMode widget boolean -23 え恄”XmListSetKbdItemPos widget position -24 え恄”XmMainWindowSetAreas mainwindow menu command hscroll vscroll work -25 'mainWindow' 搢隉蹌磍旂 NULL -26 え恄”%s variable mainwindow -27 え恄”XmProcessTraversal widget direction -28 ゝ洁柁傶棬巖ホ”%s -29 え恄”XmInternAtom variable display name onlyIfExists -30 え恄”XmGetAtomName variable display atom -31 挴泂柁蠣袓隓淩”%s -32 え恄”XmGetColors widget background foreground topshadow bottomshadow select -33 茯葔頝踛痼蠣隓淩”%s -34 え恄”XmUpdateDisplay widget -35 え恄”%s widget protocol [protocol ...] -36 挴泂柁蠣袓隓淩”%s -37 え恄”XmAddWMProtocolCallback widget protocol ksh-command -38 え恄”XmRemoveWMProtocolCallback widget protocol ksh-command -39 え恄”XmMenuPosition menu event -40 挴泂柁呦ス隓淩”%s -41 え恄”XmCommandAppendValue commandWidget string -42 え恄”XmCommandError commandWidget errorMessage -43 え恄”XmCommandSetValue commandWidget command -44 え恄”XmCommandGetChild variable commandWidget child -45 え恄”XmMessageBoxGetChild variable commandWidget child -46 widget ⽁禕旂纂堈 'messageBox' widget -47 え恄”XmFileSelectionBoxGetChild variable widget child -48 widget ⽁禕旂纂堈 'file selection box' widget -49 え恄”XmSelectionBoxGetChild variable widget child -50 widget ⽁禕旂纂堈 'selection box' widget -51 え恄”XmScaleGetValue scaleWidget variable -52 え恄”XmScaleSetValue scaleWidget value -53 挴泂柁籤坲饕圊隓淩”%s -54 え恄”XmScrollBarGetValues scrollbar variable variable variable variable -55 え恄”XmScrollBarSetValues scrollbar value sliderSize increment pageIncrement notify -56 挴泂柁圊隓淩”%s -57 挴泂柁僶棬蟟騰麵隓淩”%s -58 挴泂柁嚌蠹畽隓淩”%s -59 挴泂柁郟謑嚌蠹畽隓淩”%s -60 え恄”XmScrollVisible scrolledWin widget leftRightMargin topBottomMargin -61 widget ⽁禕旂纂堈 'scrolledWindow' widget -62 衭䬷ざ柁 widget 攜Бョ﹞ -63 挴泂柁⼢/⑶饡盉隓淩”%s -64 挴泂柁譫/譯饡盉隓淩”%s -65 え恄”%s widget state notify -66 え恄”catopen variable catName -67 え恄”catclose catId -68 え恄”catgets variable catId setNum msgNum dftMsg -69 widget ⽁禕旂纂堈 'text' 迖 'textField' widget -70 え恄”%s variable widget -71 え恄”%s widget boolean -72 挴泂柁棤禨隓淩”%s -73 え恄”%s widget lines -74 え恄”%s widget maxLength -75 え恄”%s widget string -76 え恄”%s widget variable variable -77 え恄”%s widget position string -78 え恄”%s widget position variable variable -79 え恄”%s widget fromPosition toPosition string -80 挴泂柁 'from' ⻏殦隓淩”%s -81 挴泂柁 'to' ⻏殦隓淩”%s -82 え恄”%s widget firstPosition lastPosition time -83 挴泂柁剼纂堈⻏殦隓淩”%s -84 挴泂柁瑊悒纂堈⻏殦隓淩”%s -85 挴泂柁渀睮隓淩”%s -86 え恄”%s variable widget x y -87 挴泂柁 x ⻏殦隓淩”%s -88 挴泂柁 y ⻏殦隓淩”%s -89 え恄”%s widget left right mode -90 挴泂柁⼢饡⻏殦隓淩”%s -91 挴泂柁⑶饡⻏殦隓淩”%s -92 え恄”%s widget start string direction variable -93 挴泂柁媊沓⻏殦隓淩”%s -94 え恄”XmListGetSelectedPos variable widget -95 え恄”XmListGetMatchPos variable widget item -96 え恄”XmOptionLabelGadget variable widget -97 え恄”XmOptionButtonGadget variable widget -98 え恄”XmGetVisibility variable widget -99 え恄”XmGetTearOffControl variable widget -100 え恄”XmGetTabGroup variable widget -101 え恄”XmGetPostedFromWidget variable widget -102 え恄”XmGetFocusWidget variable widget -103 え恄”XmFileSelectionDoSearch widget directoryMask +1 無法起始設定 Toolkit +2 以下資源無法在建立 widget\n時設定。請在建立後使用 XtSetValues 設定:%s +3 用法:%s variable parent name [argument:value ...] +4 用法:DtHelpReturnSelectedWidgetId variable widget variable +5 用法:DtHelpSetCatalogName catalogName +6 用法:DtHelpQuickDialogGetChild variable quickHelpWidget child +7 widget 必須是一個 'quickHelp' widget +8 widget 必須是一個 'list' widget +9 用法:%s widget position item +10 用法:%s widget position itemList +11 用法:%s widget item +12 用法:XmListDeleteItemsPos widget count position +13 用法:XmListDeleteItems widget itemList +14 用法:XmListDeletePositions widget positionList +15 用法:XmListGetKbdItemPos variable widget +16 用法:XmListItemExists widget item +17 用法:XmListItemPos variable widget item +18 用法:XmListPosSelected widget position +19 用法:XmListPosToBounds widget position variable variable variable variable +20 用法:%s widget position notifyFlag +21 用法:%s widget item notifyFlag +22 用法:XmListSetAddMode widget boolean +23 用法:XmListSetKbdItemPos widget position +24 用法:XmMainWindowSetAreas mainwindow menu command hscroll vscroll work +25 'mainWindow' 處理編號是 NULL +26 用法:%s variable mainwindow +27 用法:XmProcessTraversal widget direction +28 未知的移動方向:%s +29 用法:XmInternAtom variable display name onlyIfExists +30 用法:XmGetAtomName variable display atom +31 指定的元素無效:%s +32 用法:XmGetColors widget background foreground topshadow bottomshadow select +33 背景圖像單元無效:%s +34 用法:XmUpdateDisplay widget +35 用法:%s widget protocol [protocol ...] +36 指定的元素無效:%s +37 用法:XmAddWMProtocolCallback widget protocol ksh-command +38 用法:XmRemoveWMProtocolCallback widget protocol ksh-command +39 用法:XmMenuPosition menu event +40 指定的事件無效:%s +41 用法:XmCommandAppendValue commandWidget string +42 用法:XmCommandError commandWidget errorMessage +43 用法:XmCommandSetValue commandWidget command +44 用法:XmCommandGetChild variable commandWidget child +45 用法:XmMessageBoxGetChild variable commandWidget child +46 widget 必須是一個 'messageBox' widget +47 用法:XmFileSelectionBoxGetChild variable widget child +48 widget 必須是一個 'file selection box' widget +49 用法:XmSelectionBoxGetChild variable widget child +50 widget 必須是一個 'selection box' widget +51 用法:XmScaleGetValue scaleWidget variable +52 用法:XmScaleSetValue scaleWidget value +53 指定的比例尺值無效:%s +54 用法:XmScrollBarGetValues scrollbar variable variable variable variable +55 用法:XmScrollBarSetValues scrollbar value sliderSize increment pageIncrement notify +56 指定的值無效:%s +57 指定的滑動器大小無效:%s +58 指定的增加量無效:%s +59 指定的頁碼增加量無效:%s +60 用法:XmScrollVisible scrolledWin widget leftRightMargin topBottomMargin +61 widget 必須是一個 'scrolledWindow' widget +62 要顯示的 widget 不存在。 +63 指定的左/右邊界無效:%s +64 指定的上/下邊界無效:%s +65 用法:%s widget state notify +66 用法:catopen variable catName +67 用法:catclose catId +68 用法:catgets variable catId setNum msgNum dftMsg +69 widget 必須是一個 'text' 或 'textField' widget +70 用法:%s variable widget +71 用法:%s widget boolean +72 指定的參數無效:%s +73 用法:%s widget lines +74 用法:%s widget maxLength +75 用法:%s widget string +76 用法:%s widget variable variable +77 用法:%s widget position string +78 用法:%s widget position variable variable +79 用法:%s widget fromPosition toPosition string +80 指定的 'from' 位置無效:%s +81 指定的 'to' 位置無效:%s +82 用法:%s widget firstPosition lastPosition time +83 指定的第一個位置無效:%s +84 指定的最後一個位置無效:%s +85 指定的時間無效:%s +86 用法:%s variable widget x y +87 指定的 x 位置無效:%s +88 指定的 y 位置無效:%s +89 用法:%s widget left right mode +90 指定的左邊位置無效:%s +91 指定的右邊位置無效:%s +92 用法:%s widget start string direction variable +93 指定的起始位置無效:%s +94 用法:XmListGetSelectedPos variable widget +95 用法:XmListGetMatchPos variable widget item +96 用法:XmOptionLabelGadget variable widget +97 用法:XmOptionButtonGadget variable widget +98 用法:XmGetVisibility variable widget +99 用法:XmGetTearOffControl variable widget +100 用法:XmGetTabGroup variable widget +101 用法:XmGetPostedFromWidget variable widget +102 用法:XmGetFocusWidget variable widget +103 用法:XmFileSelectionDoSearch widget directoryMask $set 16 -1 DtkshCvtNamedValueToString”岊攜怉嗃ポ炟 -2 DtkshCvtStringToNamedValue”隓恄鼲葎А⻌ '%s' +1 DtkshCvtNamedValueToString:找不到符合者 +2 DtkshCvtStringToNamedValue:無法轉換字串 '%s' $ The following messages are for ksh93 itself. The message numbers must @@ -306,8 +306,8 @@ $ match those specified in the MsgStr array allmsgs in $ ksh93/src/cmd/ksh93/sh/init.c, as must the set number. $set 25 -1 汒 -3 欹⺼斕 +1 完成 +3 執行中 4 [-n] [arg...] 5 [arg...] 6 [dir] [list] @@ -318,222 +318,222 @@ $set 25 11 [top] [base] 12 expr... 13 format [arg...] -14 旂纂堈怐禨 -15 旂纂堈驨耰А -16 旂纂堈蠡唈 shell -17 旂纂堈鼲Б怐禨 -18 旂纂堈ゝ泂氂柁怐禨 +14 是一個函數 +15 是一個關鍵字 +16 是一個內建 shell +17 是一個轉存函數 +18 是一個未定義的函數 19 name [arg...] 20 optstring name [args...] -21 秮 +21 秒 23 ${HOME:-.}/.profile -24 %c”ョ玿ざ冈斕隓淩柁А蠣 - %s -25 %c”ゝ洁柁眭冈挴泂蠣 -26 %d-%d”隓淩柁謓睕 -27 %d”隓淩柁蘑蠣杬麟碬斿ヾ -28 %s 旂纂堈伀ボ﹜㪫卼 -29 %s 旂纂堈藣罐柁伀ボ﹜㪫卼 -30 谹韁 %s -31 %s ゝ洁柁椕芚 -32 %s”'?' 蝒磭騵鶈囷え ':' -33 %s”徆氂 -34 %s”鰱禨鶈珜 %job 迖搢隉 ids -35 %s”岊攜怉伀ボ\n -36 %s”磭禨諴恄蠆諟 -37 %s”挴泂錛衭 lvalue -38 %s”麔淰痼蠣磍謑蠆諟 -39 %s”眭冈蠆諟 -40 %s”磍謑蠆諟 -41 %s”藞禋蠆諟 -42 %s”鷥葎蠆諟 -43 %s”暋歂蠆諟 -44 %s”隓恄唈ゥ -45 %s”隓恄欹⺼ -46 %s”隓恄瞅絒 -47 %s”崽禨珜誻 -48 %s”錭棦坲⼃ -49 %s”隓恄欹⺼汒 %s -50 %s”麔淰儸Бョ -51 %s”攜ポ恄柁怐禨ボ磝 -52 %s”隓淩柁伀ボ -53 %s”隓淩柁斒衧 (discipline) 怐禨 -54 %s”隓淩柁鼲Бボ磝 -55 %s”隓淩柁怐禨ボ磝 -56 %s”隓淩柁ボ磝 -57 %s”隓淩柁纂郫玿ざ冈 -58 %s”隓淩柁⺌宎棤嘵 -59 %s”隓淩柁囷え” -60 %s”隓淩柁䨣禨ボ磝 -61 %s”攜旂纂堈籫伀А -62 %s”ⅲ逑幺抻 -63 %s”簅圝泲ゝ蕍汃 -64 %s”熅罐迻戔 -65 %s”鶈彶ロ嗃奡 -66 %s”扽譫嬬樄鷁 -67 %s”扽棤嘵ボ磝 -68 %s”隓恄岊怉 -69 %s”ゝ蕍汃 -70 %s”蝒磭蠣麷倛攜砨晥 -71 %s”鬿⻏坲⼃ -72 %s”ゝ暋泂棤禨 -73 %s”棤禨洠く迖ゝ暋泂 -74 %s”踽媝霽豟 -75 %s”棤嘵䨣禨攜逑旂嵕ト -76 %s”錛衭聤梏ボ磝鰱禨 -77 %s”迻戔 -78 %s”痼禨坲⼃ -79 %s”漶簅熅罐謓睕 -80 %s”挭芧攜髱磝 -81 %s”ゝ洁柁怐禨 -82 %s”ゝ洁柁諴侔伀 -83 %s”ゝ洁柁蝒磭騵 -84 %s”ゝ洁柁媢磍ボ磝 -85 %s”渿鰱媊媝聤 -86 (瀄幰蒺罐) -87 -c 錛衭鰱禨 -88 -e - 錛衭痼纂鰱禨 +24 %c:在表示式中有無效的字元 - %s +25 %c:未知的格式指定元 +26 %d-%d:無效的範圍 +27 %d:無效的二元命令集版本 +28 %s 是一個別名,屬於 +29 %s 是一個輸出的別名,屬於 +30 缺少 %s +31 %s 未知的基底 +32 %s:'?' 運算子應使用 ':' +33 %s:有歧義 +34 %s:引數應為 %job 或處理 ids +35 %s:找不到別名\n +36 %s:算數語法錯誤 +37 %s:指定需要 lvalue +38 %s:檔案單元號碼錯誤 +39 %s:格式錯誤 +40 %s:號碼錯誤 +41 %s:選項錯誤 +42 %s:代換錯誤 +43 %s:設陷錯誤 +44 %s:無法建立 +45 %s:無法執行 +46 %s:無法開啟 +47 %s:除數為零 +48 %s:領域例外 +49 %s:無法執行完成 %s +50 %s:檔案已存在 +51 %s:不合法的函數名稱 +52 %s:無效的別名 +53 %s:無效的規則 (discipline) 函數 +54 %s:無效的轉存名稱 +55 %s:無效的函數名稱 +56 %s:無效的名稱 +57 %s:無效的一般表示式 +58 %s:無效的自我參照 +59 %s:無效的使用: +60 %s:無效的變數名稱 +61 %s:不是一個識別字 +62 %s:只能讀取 +63 %s:標籤尚未製作 +64 %s:超出限制 +65 %s:應有更多符記 +66 %s:沒有上層節點 +67 %s:沒有參照名稱 +68 %s:無法找到 +69 %s:未製作 +70 %s:運算元類型不相容 +71 %s:溢位例外 +72 %s:未設定參數 +73 %s:參數空白或未設定 +74 %s:遞迴太深 +75 %s:參照變數不能是陣列 +76 %s:需要路徑名稱引數 +77 %s:有限制 +78 %s:單數例外 +79 %s:註標超出範圍 +80 %s:括弧不對稱 +81 %s:未知的函數 +82 %s:未知的語言別 +83 %s:未知的運算子 +84 %s:未知的訊號名稱 +85 %s:將引起迴路 +86 (磁蕊傾出) +87 -c 需要引數 +88 -e - 需要單一引數 89 /vpix -90 <ゝ洁柁杬麟> +90 <未知的命令> 91 ACE#?F#?H:[name]L#?R#?Z#?fi#?[base]lnprtux [name=[value]...] 92 AE#?F#?HL#?R#?Z#?fi#?[base]lnprtux [name=[value]...] -93 斕黫 +93 中斷 94 Ad:[delim]prst#[timeout]u#[filenum] [name...] -95 滙夼昋ⅰ -96 淂樄鷁斒眭蠆諟 -97 侇嗄昋ⅰ蠆諟 -98 磣蝚斕栠 -99 蒝殈粡蠆諟 -100 隓恄絒棬齡汃祰戔 -101 隃⺼藞禋暋泂 -102 DIL 媢磍 -103 騵樄鷁彘欐蝒汃 +95 警告呼叫 +96 根節點規格錯誤 +97 系統呼叫錯誤 +98 管道中段 +99 匯流排錯誤 +100 無法啟動工作控制 +101 現行選項設定 +102 DIL 訊號 +103 子節點停止運作 104 DircabefhkmnpstuvxCI:[file]o:?[option]A:[name] [arg...] 105 DircabefhkmnpstuvxCo:?[option]A:[name] [arg...] -106 EMT 暋歂 -107 熅罐 CPU 渀睮迻戔 -108 熅峈麔淰騰麵迻戔 -109 秸棬坲⼃ +106 EMT 設陷 +107 超出 CPU 時間限制 +108 超果檔案大小限制 +109 浮動例外 110 HSacdfmnstv [limit] -111 斕欐 -112 IO 媢磍 -113 攜ポ恄柁挴麟 -114 吤黫 -115 覗崽 +111 中止 +112 IO 訊號 +113 不合法的指令 +114 岔斷 +115 清除 116 LP [dir] [change] -117 奡襉忟蠆諟 -118 傶鼲搢隉 -119 扽齡汃祰戔 -120 諔緷吤黫 -121 懘緧滙夼 -122 諔鳲斕黫 -123 渀睮滙夼晼蠊 -124 廎忒 -125 罶鳲蟺⼇ -126 ャ艀鰹柁 tty 勐棬蟟... +117 記憶體錯誤 +118 移轉處理 +119 沒有工作控制 +120 電話岔斷 +121 輪詢警告 +122 電源中斷 +123 時間警告側錄 +124 結束 +125 資源遺失 +126 回復成舊的 tty 驅動器... 127 S [mask] -129 Еツ簅圝儸庍䨣 -130 葅桵吤黫 -131 鐖郣汒 -132 彘欐 (媢磍) -133 彘欐 (tty 藣蘋) -134 儸彘欐柁搢隉隃ョ凭㶴 -135 彘欐 -136 彘欐 (tty 藣罐) -137 鼲葎隞柁 tty 勐棬蟟... -138 侇嗄伒渿撋筄 -139 嗈欐 -140 寍麶/BPT 暋歂 -141 隓恄藰籫柁斿ヾ -142 霘囷え 'exit' 坭彘欐楙堈 shell -143 囷え炟媢磍 1 -144 囷え炟媢磍 2 -145 斿ヾゝ泂氂 -146 摫鶅渀睮滙夼 -147 槉嵺騰麵庍䨣 -148 睎齡汃ョ欹⺼ -149 睎斕欐柁齡汃 +129 安全標籤已改變 +130 插座岔斷 +131 聲音完成 +132 停止 (訊號) +133 停止 (tty 輸入) +134 已停止的處理現在繼續 +135 停止 +136 停止 (tty 輸出) +137 轉換成新的 tty 驅動器... +138 系統即將當掉 +139 終止 +140 追蹤/BPT 設陷 +141 無法辦識的版本 +142 請使用 'exit' 來停止這個 shell +143 使用者訊號 1 +144 使用者訊號 2 +145 版本未定義 +146 虛擬時間警告 +147 視窗大小改變 +148 您有工作正在執行 +149 您有中止的工作 150 [_[:alpha:]]*([_[:alnum:]]) 151 \n@(#)Version 12/28/93\0\n 152 \n@(#)Version M-12/28/93\0\n -153 \n翍骳 -154 \r\n\007か卼ゝ汃え﹜shell 渿ョ 60 秮蠡蝺渀 +153 \n真實 +154 \r\n\007由於未作用,shell 將在 60 秒內逾時 155 a name... 156 a:c [command [args...] ] 157 afpv name... -158 滙夼 %s %.3f\n +158 警告 %s %.3f\n 159 alarm -r %s +%.3g\n -160 鶈鰱禨 -161 げ蠊蠆諟 -162 麔淰痼蠣磍謑蠆諟 -163 鷥葎蠆諟 -164 隓恄Б抻々げ蠊 -165 隓恄唈ゥ磣蝚 -166 隓恄唈ゥ穛渀麔淰 -167 隓恄雰ぇ騵嶂囥 -168 隓恄抻痤 %s -169 隓恄暋泂 %s -170 隓恄暋泂滙夼鐖 -171 錛衭蛨ス +160 應有引數 +161 目錄錯誤 +162 檔案單元號碼錯誤 +163 代換錯誤 +164 無法存取母目錄 +165 無法建立管道 +166 無法建立暫時檔案 +167 無法產生子程序 +168 無法取得 %s +169 無法設定 %s +170 無法設定警告聲 +171 需要條件 172 dsf:[library] [name...] 173 e:[editor]lnrsN# [first] [last] -174 麔淰廎忒 +174 檔案結束 175 f:[format]nprsu:[filenum] [arg...] 176 fnv name... 177 hist -e "${VISUAL:-${EDITOR:-vi}}" -178 奡蠊麔淰ゝ瞅絒 -179 諴恄蠆諟 -180 麷倛 %c 柁鰱禨隓淩 -181 旂纂堈 shell 蠡唈斿ヾ﹜㪫卼 -182 旂纂堈寍麶伀ボ﹜㪫卼 -183 覗崽 -184 剼 %d ⺼”$ 虳郖攜旂 \\ -185 剼 %d ⺼”${} 蠡柁 %c 鶈篎蠹鰱磍 -186 剼 %d ⺼”%s 旂ゝ洁柁簅圝 -187 剼 %d ⺼”[[...]] 斕柁 %s 隃儸寲蛫攜え﹜庍え ((...)) -188 剼 %d ⺼”'=' 隃儸寲蛫攜え﹜庍え '==' -189 剼 %d ⺼”-a 隃儸寲蛫攜え﹜庍え -e -190 剼 %d ⺼”%c 虳郖柁 \\ 砉絅髓猻渿坭囷え -191 剼 %d ⺼”`...` 隃儸寲蛫攜え﹜庍え $(...) -192 剼 %d ⺼”%c 鼲氂髓礱伬雰ぇ徆氂 -193 剼 %d ⺼”芩靬簅圝 %s -194 剼 %d ⺼”霘渿 %c 蠹譫鰱磍﹜髓礱伬雰ぇ徆氂 -195 剼 %d ⺼”set %s 隃儸寲蛫攜え -196 剼 %d ⺼”禂孲 shell 錛蠹蘋洠眭 -197 剼 %d ⺼”囷え騰挭芧挭⻖﹜髓伬 $id[...] 雰ぇ徆氂 -198 剼 %d ⺼”囷え洠眭迖聧眭坭禳觰蝒磭騵 %c 縋 %c +178 記錄檔案未開啟 +179 語法錯誤 +180 類型 %c 的引數無效 +181 是一個 shell 內建版本,屬於 +182 是一個追蹤別名,屬於 +183 清除 +184 第 %d 行:$ 前面不是 \\ +185 第 %d 行:${} 內的 %c 應該加引號 +186 第 %d 行:%s 是未知的標籤 +187 第 %d 行:[[...]] 中的 %s 現已廢棄不用,改用 ((...)) +188 第 %d 行:'=' 現已廢棄不用,改用 '==' +189 第 %d 行:-a 現已廢棄不用,改用 -e +190 第 %d 行:%c 前面的 \\ 保留以備將來使用 +191 第 %d 行:`...` 現已廢棄不用,改用 $(...) +192 第 %d 行:%c 轉義以避免產生歧義 +193 第 %d 行:忽略標籤 %s +194 第 %d 行:請將 %c 加上引號,以避免產生歧義 +195 第 %d 行:set %s 現已廢棄不用 +196 第 %d 行:嵌套次 shell 需加入空格 +197 第 %d 行:使用大括弧括住,以免 $id[...] 產生歧義 +198 第 %d 行:使用空格或跳格來分隔運算子 %c 與 %c 199 ln#[signum]s:[signame] sig... -200 槮欐僳蘋 setuid/setgid shell -201 髱鶈 -202 隞⺼ +200 禁止登入 setuid/setgid shell +201 對應 +202 新行 203 nlp [job...] -204 扽奡蠊麔 -205 扽栯緧搢隉 -206 扽楙堈齡汃 -207 扽楙堈搢隉 -208 ゝ齬葰 -209 驨椲 -210 瞅絒 -211 熅罐瞅絒麔淰迻戔 -212 奡襉忟跂潞 +204 沒有記錄檔 +205 沒有查詢處理 +206 沒有這個工作 +207 沒有這個處理 +208 未支援 +209 關閉 +210 開啟 +211 超出開啟檔案限制 +212 記憶體耗盡 213 p [action condition...] 214 p [name[=value]...] -215 棤禨ゝ暋泂 -216 攜怞暐⑴ḷ -217 搢隉儸Бョ +215 參數未設定 +216 不具許可權 +217 此處理已存在 218 ptx [name=[value]...] 219 pvV name [arg]... 220 r [varname seconds] -221 剼 %d ⺼諴恄蠆諟”`%s' %s -222 剼 %d ⺼諴恄蠆諟”簅圝 %s 适闀 -223 諴恄蠆諟”`%s' %s +221 第 %d 行語法錯誤:`%s' %s +222 第 %d 行語法錯誤:標籤 %s 重複 +223 語法錯誤:`%s' %s 224 sys -225 嶉恁藣蘋蝺渀 -226 盻蛺恁斕 -227 錭棦隓恄Б抻 -228 ゝ迻戔 -229 攜嗃ポ -230 囷え炟 -231 斿ヾ -232 嬣蘋 %d ⼇絫 -233 ョ $_ 睎柁瑧ス -234 誻⻏蠣嗢 +225 等待輸入逾時 +226 非期待中 +227 領域無法存取 +228 未限制 +229 不符合 +230 使用者 +231 版本 +232 寫入 %d 失敗 +233 在 $_ 有您的郵件 +234 零位元組 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtlogin.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtlogin.msg index a9e3f0c61..3808ed1f7 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtlogin.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtlogin.msg @@ -44,93 +44,93 @@ $ set 1 is labels $ $ messages 1 through 6 are button labels on the login screen -1 霘藣蘋睎柁囷え炟ボ磝 -2 霘藣蘋睎柁湅謑 -3 薚泂 -4 适隞瞅沓 -5 藞禋 -6 赮伢諰咭 +1 請輸入您的使用者名稱 +2 請輸入您的密碼 +3 確定 +4 重新開始 +5 選項 +6 輔助說明 $ $ messages 7 through 11 are options button menu items $ -7 适暋僳蘋糬魦 -8 杬麟⺼僳蘋 -9 斿ヾ... -10 痼槉嵺瞃栠汃鞄 -11 諴侔 +7 重設登入螢幕 +8 命令行登入 +9 版本... +10 單視窗階段作業 +11 語言 $ $ messages 12 through 14 are miscellaneous button labels $ -12 瞅沓 DT -13 抻祤 -14 赮伢諰咭 +12 開始 DT +13 取消 +14 輔助說明 $ $ message 15, 17 are more option button menu items $ message 16 is the welcome message $ -15 DT Lite 瞃栠汃鞄 -16 崐玾囷え -17 纂郫痐譫磣隉侇嗄 +15 DT Lite 階段作業 +16 歡迎使用 +17 一般桌上管理系統 $ $ message 18-24 $ -18 * 穛彘痐譫磣隉侇嗄僳蘋...\r\n*\r\n -19 * ヵ錛僳蘋菙ざ﹜霘挹 [Enter]﹞\r\n*\r\n -20 * 僳蘋﹞ョ睎僳罐欄悒攜躁﹜痐譫磣隉侇嗄僳蘋伒渿凭㶴﹞\r\n*\r\n -21 * 痐譫磣隉侇嗄僳蘋凭㶴斕...\r\n*\r\n -22 * ョ䬷ざ蟟 %1$s 譫絒棬痐譫磣隉侇嗄僳蘋...\r\n*\r\n -23 * 霘ッ嶉恁痐譫磣隉侇嗄僳蘋糬魦罐隃欄悒テ⺼僳蘋﹞\r\n*\r\n -24 * %1$s 䬷ざ蟟譫隓恄絒棬 X ɵ峇蟟...\r\n*\r\n +18 * 暫停桌上管理系統登入...\r\n*\r\n +19 * 如需登入提示,請按 [Enter]。\r\n*\r\n +20 * 登入。在您登出之後不久,桌上管理系統登入即將繼續。\r\n*\r\n +21 * 桌上管理系統登入繼續中...\r\n*\r\n +22 * 在顯示器 %1$s 上啟動桌上管理系統登入...\r\n*\r\n +23 * 請先等待桌上管理系統登入螢幕出現之後再行登入。\r\n*\r\n +24 * %1$s 顯示器上無法啟動 X 伺服器...\r\n*\r\n $ messages 25 is a options button menu item -25 瞃栠汃鞄 +25 階段作業 $ $ 26 replaces 16 as the greeting after a user name has been $ entered. The %s is replaced by the user name. $ -26 崐玾 %s +26 歡迎 %s $ $ Sun specific message catalog id numbers in MC_LABEL_SET messages. $ (Starting at a random uneven higher number, 73, to allow some room $ for some shared sample source message additions. $ -73 囷え炟譫纂痐譫磣隉侇嗄 +73 使用者上一次桌上管理系統 $set 2 $ set 2 is error messages $ -1 僳蘋攜薚﹜霘テ箹纂﹞ -2 隓恄䨣葎怉媊沓げ蠊﹞ -3 侺暽﹞げ虳僳蘋柁囷え炟藺禨儸蝞頖迻﹞ +1 登入不正確,請再試一次。 +2 無法變換到起始目錄。 +3 抱歉。目前登入的使用者人數已達極限。 $ message 4 is a lengthy message that should be localized to correspond to $ the language. 4 \n\ -睎⽁禕藞謥纂堈媊沓湅謑﹜\n\ -迖炟旂睎柁隃⺼湅謑儸蝝蛺﹞\n\ +您必須選擇一個起始密碼,\n\ +或者是您的現行密碼已過期。\n\ \n\ -暋泂ン湅謑欄悒﹜霘囷え隞湅謑\n\ -适隞僳蘋纂﹞ -5 僳蘋蠆諟﹜囷え炟 id 隓淩﹞ -6 僳蘋蠆諟﹜漦嗢 id 隓淩﹞ -7 僳蘋蠆諟﹜謒淭 id 隓淩﹞ -8 僳蘋蠆諟﹜謒淭憿簅隓淩﹞ -9 げ虳僳蘋衢逑揧抻祤﹞ -10 ⅲ淂囷え炟⑴欹⺼ %1$s\n -11 皕 %1$s 适隞唈擛蠡泂柁諴侔覗痼\n -12 适隞筈萺崷殦麔縋ɵ峇蟟麔\n -13 适隞幺抻崷殦麔 %1$s\n -14 适隞幺抻ɵ峇蟟麔 %1$s\n -15 适隞幺抻Б抻麔 %1$s\n -16 dtlogin”琣冈跂潞奡襉忟\n +設定好密碼之後,請使用新密碼\n\ +重新登入一次。 +5 登入錯誤,使用者 id 無效。 +6 登入錯誤,群組 id 無效。 +7 登入錯誤,稽核 id 無效。 +8 登入錯誤,稽核旗標無效。 +9 目前登入功能被取消。 +10 只有根使用者可執行 %1$s\n +11 從 %1$s 重新建構內定的語言清單\n +12 重新掃描配置檔與伺服器檔\n +13 重新讀取配置檔 %1$s\n +14 重新讀取伺服器檔 %1$s\n +15 重新讀取存取檔 %1$s\n +16 dtlogin:常式耗盡記憶體\n $set 3 @@ -139,92 +139,92 @@ $ $ message 1 is generated when the help button on the login screen is clicked. 1 \n\ -僳蘋赮伢諰咭”\n\ +登入輔助說明:\n\ \n\ -霘囷え僳蘋鳪郖⣷諔瑼洁蝚睎柁冼ソ﹞\n\ +請使用登入畫面讓電腦知道您的身份。\n\ \n\ -蚍衭僳蘋”\n\ - 1) 耰蘋睎柁囷え炟ボ磝﹜隑悒挹 耰迖挹纂譯 [薚泂]﹞\n\ - (ヵ峈睎泲ゝ唈ゥ纂堈囷え炟﹜霘藣蘋 "root" 惉珜\n\ - 囷え炟ボ磝\n\ - 2) 耰蘋睎柁湅謑﹜隑悒挹 耰迖挹纂譯 [薚泂]﹞\n\ +若要登入:\n\ + 1) 鍵入您的使用者名稱,然後按 鍵或按一下 [確定]。\n\ + (如果您尚未建立一個使用者,請輸入 "root" 做為\n\ + 使用者名稱\n\ + 2) 鍵入您的密碼,然後按 鍵或按一下 [確定]。\n\ \n\ -[适隞瞅沓]\n\ - 祤崽睎柁藣蘋禋﹜髓砅适隞藣蘋睎柁囷え炟ボ磝\n\ - 适箹纂﹞\n\ +[重新開始]\n\ + 消除您的輸入項,以便重新輸入您的使用者名稱\n\ + 重試一次。\n\ \n\ -[藞禋]\n\ - 逑⣷睎䨣彶瞃栠汃鞄藞禋”\n\ +[選項]\n\ + 能讓您變更階段作業選項:\n\ \n\ - 渿僶趡挴簅殦卼 [藞禋] 挹瘖欄譫﹜挹⻖ \n\ - 僶趡挹瘖 1﹞侹挴簅汃藞謥﹞\n\ - 撋挴簅⻏卼栲堈禋げ譫巖﹜勂瞅\n\ - 僶趡挹瘖伒⑴藞抻篎禋げ﹞睎⑴髓藞謥”\n\ + 將滑鼠指標置於 [選項] 按鈕之上,按住 \n\ + 滑鼠按鈕 1。拖曳指標作選擇。\n\ + 當指標位於某個項目上方,放開\n\ + 滑鼠按鈕即可選取該項目。您可以選擇:\n\ \n\ - 諴侔 - 庍䨣瞃栠汃鞄囷え柁諴侔\n\ - 瞃栠汃鞄 - 藞謥纂堈頝夆蘄頨\n\ - OpenWindows 痐譫磣隉侇嗄 - 珜 OW 痐譫磣隉侇嗄 \n\ - 纂郫痐譫磣隉侇嗄 - 珜纂郫痐譫磣隉侇嗄蘄頨 (CDE) \n\ - 囷え炟譫纂痐譫磣隉侇嗄 - 珜譫纂僳蘋 \n\ - 捗錏⺌棬砉覈瞃栠汃鞄 - 珜痼纂 X 槉嵺蘄頨\n\ - 杬麟⺼僳蘋 - 鼲葎杬麟⺼蘄頨\n\ - 适暋僳蘋糬魦 - 适隞絒棬 X ɵ峇蟟\n\ + 語言 - 改變階段作業使用的語言\n\ + 階段作業 - 選擇一個圖形環境\n\ + OpenWindows 桌上管理系統 - 為 OW 桌上管理系統 \n\ + 一般桌上管理系統 - 為一般桌上管理系統環境 (CDE) \n\ + 使用者上一次桌上管理系統 - 為上一次登入 \n\ + 故障自動保險階段作業 - 為單一 X 視窗環境\n\ + 命令行登入 - 轉換成命令行環境\n\ + 重設登入螢幕 - 重新啟動 X 伺服器\n\ \n\ -囷えズ纂僶趡挹瘖ョ茯葔ズ纂搢挹纂譯﹜伒⑴\n\ -怑隞糬魦﹞睎⑴髓ョ侇嗄媢桾う鶳怉糬魦髓茬\n\ -卼攜晥厙櫇幺渀﹜囷え衢逑﹞\n\ +使用任一滑鼠按鈕在背景任一處按一下,即可\n\ +刷新螢幕。您可以在系統訊息甘擾到螢幕以致\n\ +於不容易閱讀時,使用此功能。\n\ \n\ -ヵ錛彶ロ柁赮伢諰咭罶媢﹜霘僳蘋悒ョ虳巖郖帣柁\n\ ->赮伢諰咭磣隉炟=頝踛 (淝譫纂堈棯磍炟) 譫挹\n\ -纂譯﹜伒⑴岊怉>僳蘋磣隉炟=赮伢諰咭咇纂癱﹞\n\ +如需更多的輔助說明資訊,請登入後在前方面板的\n\ +「輔助說明管理者」圖像 (書上有一個問號者) 上按\n\ +一下,即可找到「登入管理者」輔助說明那一冊。\n\ $ message 2 is generated when you attempt to start a system whose id is $ set to unknown or if it is not configured for networking. 2 \n\ -睎柁齡汃袘ボ磝縋怬鱗齡汃袘适闀﹞モげ虳揧暋泂\n\ ->unknown=﹞唈諞睎蜌楙堈齡汃袘テ杬ボ纂﹞\n\ +您的工作站名稱與其他工作站重複。因此目前被設定\n\ +成「unknown」。建議您替這個工作站再命名一次。\n\ \n\ $ message 3 is generated when the help button on the chooser screen is clicked. 3 \n\ -藞謥嶂冈赮伢諰咭”\n\ +選擇程式輔助說明:\n\ \n\ -霘囷え藞謥嶂冈糬魦藞謥衭僳蘋柁ɵ峇蟟﹞\n\ +請使用此選擇程式螢幕選擇要登入的伺服器。\n\ \n\ -藞謥嶂冈糬魦屼纂堈ト玿﹜怀堈禋げ楁讓挭怚堈\n\ -楶禳﹞剼纂堈楶禳 (ɵ峇蟟ボ磝) 屼怀纂堈⑴えɵ\n\ -峇蟟柁篚聤ボ磝﹞剼蘑堈楶禳 (ɵ峇蟟罶媢)\n\ -衧呣怀堈ɵ峇蟟譫欹⺼柁僳蘋磣隉炟攜フ﹜\n\ -゛攜フ柁罶媢﹞ヵ峈栲堈ɵ峇蟟欹⺼\n\ -CDE 痐譫磣隉侇嗄﹜楶ソ祼鞂菙坯げ虳\n\ -ョ囷え侇嗄柁囷え炟 (迖 tty 稹殦) 柁藺禨﹜\n\ -髓轡虳 5﹝10﹝15 禳㺪柁衿蟡⼳忔圊 (CPU ⼳忔囷え畽)\n\ -嶉罶媢﹞\n\ +選擇程式螢幕含有一個列表,每個項目都包括兩個\n\ +部分。第一個部分 (伺服器名稱) 含有每一個可用伺\n\ +服器的網路名稱。第二個部分 (伺服器資訊)\n\ +則依每個伺服器上執行的登入管理者不同,\n\ +而有不同的資訊。如果某個伺服器執行\n\ +CDE 桌上管理系統,此部份就會提供目前\n\ +正在使用此系統的使用者 (或 tty 裝置) 的人數,\n\ +以及前 5、10、15 分鐘的負載平均值 (CPU 平均使用量)\n\ +等資訊。\n\ \n\ -衭藞謥纂堈ɵ峇蟟僳蘋﹜ⅲ衭ョトざ斕藞抻\n\ -睎裱僳蘋柁ɵ峇蟟ボ磝柁咇纂⺼伒⑴﹞\n\ +要選擇一個伺服器登入,只要在列示中選取有\n\ +您想登入的伺服器名稱的那一行即可。\n\ \n\ -汃ン藞謥欄悒﹜霘挹>薚泂=挹瘖﹞糬魦譫祼鞂\n\ -罐隃睎邴藞謥柁ɵ峇蟟柁僳蘋糬魦﹞\n\ +作好選擇之後,請按「確定」按鈕。螢幕上就會\n\ +出現您所選擇的伺服器的登入螢幕。\n\ \n\ -[彶隞トざ]\n\ - 楙堈藞禋鞂覗崽トざ﹜呥栯緧篚聤譫柁ɵ峇\n\ - 蟟﹜砫旂匢蠢暐僳蘋悒﹜适隞唈擛トざ﹞\n\ +[更新列示]\n\ + 這個選項會清除列示,並查詢網路上的伺服\n\ + 器,看是否允許登入後,重新建構此列示。\n\ \n\ -[藞禋]\n\ - ⣷睎䨣彶瞃栠汃鞄藞禋”\n\ +[選項]\n\ + 讓您變更階段作業選項:\n\ \n\ - 渿僶趡挴簅殦卼 [藞禋] 挹瘖欄譫﹜挹⻖ \n\ - 僶趡挹瘖 1﹞侹挴簅汃藞謥﹞\n\ - 撋挴簅⻏卼栲堈禋げ譫巖﹜勂瞅\n\ - 僶趡挹瘖伒⑴藞抻篎禋げ﹞睎⑴髓藞謥”\n\ + 將滑鼠指標置於 [選項] 按鈕之上,按住 \n\ + 滑鼠按鈕 1。拖曳指標作選擇。\n\ + 當指標位於某個項目上方,放開\n\ + 滑鼠按鈕即可選取該項目。您可以選擇:\n\ \n\ - 諴侔 - 庍䨣瞃栠汃鞄囷え柁諴侔\n\ - 适暋僳蘋糬魦 - 适隞絒棬 X ɵ峇蟟\n\ + 語言 - 改變階段作業使用的語言\n\ + 重設登入螢幕 - 重新啟動 X 伺服器\n\ \n\ -囷えズ纂僶趡挹瘖ョ茯葔ズ纂搢挹纂譯﹜伒⑴\n\ -怑隞糬魦﹞睎⑴髓ョ侇嗄媢桾囂鶳怉糬魦髓茬\n\ -卼攜晥厙櫇幺渀﹜囷え衢逑﹞\n\ +使用任一滑鼠按鈕在背景任一處按一下,即可\n\ +刷新螢幕。您可以在系統訊息干擾到螢幕以致\n\ +於不容易閱讀時,使用此功能。\n\ \n\ @@ -232,88 +232,88 @@ $set 4 $ set 4 is log error messages $ -1 Б抻麔淰 "%1$s"﹜饜鞥 "%2$s" 隓恄岊怉\n +1 存取檔案 "%1$s",主機 "%2$s" 無法找到\n 2 ReadHostEntry\n -3 Б抻麔淰 %1$2s﹜䬷ざ蟟 %1$2s 珜攜咭柁䬷ざ蟟\n -4 隓恄瞅絒Б抻祰戔麔 %1$s﹜モ隓恄嵹鶈 XDMCP 衭忴\n -5 篚棦/謦汃侇嗄薚諝蠆諟”%1$s (%2$s/%3$s) -6 隓恄瞅絒ɵ峇蟟薚諝麔 %1$s\n -7 隓恄嬣蘋ɵ峇蟟薚諝麔 %1$s\n +3 存取檔案 %1$2s,顯示器 %1$2s 為不明的顯示器\n +4 無法開啟存取控制檔 %1$s,因此無法答應 XDMCP 要求\n +5 網域/操作系統確認錯誤:%1$s (%2$s/%3$s) +6 無法開啟伺服器確認檔 %1$s\n +7 無法寫入伺服器確認檔 %1$s\n 8 saveAddr -9 蘀抻篚聤蘭郖崷殦渀棯纕 +9 獲取網路介面配置時有問題 10 setAuthNumber -11 隓恄孍泂筅ḷ麔 %1$s 迖猻ソ麔 %2$s\n -12 隓恄渿筅ḷ麔傶怉懱撋⻏殦\n -13 隓恄唈ゥ/孍泂 pid 麔淰 %1$s\n -14 隓恄孍泂 pid 麔淰 %1$s﹜モ珜ⅱ纂堈 Dtlogin ョ欹⺼ (pid %2$d)\n -15 隓恄Б抻ɵ峇蟟麔淰 %1$s\n +11 無法鎖定授權檔 %1$s 或備份檔 %2$s\n +12 無法將授權檔移到適當位置\n +13 無法建立/鎖定 pid 檔案 %1$s\n +14 無法鎖定 pid 檔案 %1$s,因為另一個 Dtlogin 正在執行 (pid %2$d)\n +15 無法存取伺服器檔案 %1$s\n 16 NewDisplay -17 隓恄瞅絒 errorLogFile %1$s\n -18 TrimErrorLog()”蠆諟戀諲麔柁麔淰騰麵迻戔瑊騰珜 200Kb﹞\n -19 ɵ峇蟟麔淰谹韁䬷ざ蟟ボ磝\n -20 %1$s 谹韁䬷ざ蟟麷倛\n -21 饜鞥ボ磝 %1$s 隓淩﹞DISPLAY 暋泂珜 ':0'\n -22 䬷ざ蟟 %2$s 柁䬷ざ蟟麷倛 %1$s 隓恄揧稌抰\n -23 摫鶅适暋蝺渀﹞\n +17 無法開啟 errorLogFile %1$s\n +18 TrimErrorLog():錯誤日誌檔的檔案大小限制最大為 200Kb。\n +19 伺服器檔案缺少顯示器名稱\n +20 %1$s 缺少顯示器類型\n +21 主機名稱 %1$s 無效。DISPLAY 設定為 ':0'\n +22 顯示器 %2$s 的顯示器類型 %1$s 無法被接受\n +23 虛擬重設逾時。\n 24 GetResource -25 扽洠睮⑴坯鰱禨适隞崷殦\n -26 隓恄瞅絒崷殦麔 %1$s\n -27 杬麟⺼ロ瀦柁鰱禨” -28 StartServer()”扽鰱禨\n -29 ɵ峇蟟 %1$s 隓恄欹⺼\n -30 StartServer() 雰ぇ騵嶂囥⼇絫﹜穛彘斕\n -31 ɵ峇蟟蜑⼃斕黫\n -32 XOpenDisplay(%1$s) 閰箹 #%2$d 斕欐﹜ョ斕黫﹞\n -33 瞅絒ɵ峇蟟閰箹 #%1$d ⼇絫﹜モ珜 %2$s﹜勂蛫テ閰箹\n -34 ╩适 IO 蠆諟 %d (%1$s)\n -35 X 蠆諟\n -36 瞃栠汃鞄絒沓蠆諟\n -37 滙夼”䬷ざ蟟 %1$s 隓恄砉錏Еツ\n -38 滙夼”䬷ざ蟟 %1$s 柁耰薏隓恄砉錏Еツ\n -39 BLS - 隓恄蘀痤鷓韝罶媢﹞\n -40 BLS - 隓恄蘀痤抰砉៻柁鷓韝罶媢﹞\n -41 BLS - 隓恄无糶絔裧嶂唄﹞\n -42 BLS - 隓恄䨣彶珜囷え炟”%1$s﹞\n -43 AFS - 絒棬瞃栠汃鞄渀 setgroups() ⼇絫\n -44 囷え炟 %s Setuid ⼇絫﹜errno = %d\n -45 囷え炟 %2$s 扽絒沓げ蠊 %1$s﹜囷え /\n -46 瞃栠汃鞄欹⺼⼇絫 %1$s\n -47 瞃栠汃鞄扽杬麟/鰱禨\n -48 隓恄絒棬 %s 柁瞃栠汃鞄﹜雰ぇ騵嶂囥⼇絫\n -49 Dtlogin 隓恄覗崽剟鷓鞥\n -50 隓恄欹⺼ %1$s\n -51 隓恄雰ぇ騵嶂囥髓欹⺼ %1$s\n -52 攜懱撋柁薚諝ボ磝 "%1$s"﹞囷え AFS﹝Kerberos 迖蠡泂ボ磝﹞\n -53 %2$s 隓恄欹⺼ Dtgreet %1$s \n -54 隓恄雰ぇ騵嶂囥髓欹⺼ Dtgreet %1$s\n -55 %1$d 棔唈ゥ葅桵⼇絫\n -56 廎ポ葅桵⻏彴 %1$d 蠆諟﹜errno = %2$d\n +25 沒有空間可供引數重新配置\n +26 無法開啟配置檔 %1$s\n +27 命令行有多餘的引數: +28 StartServer():沒有引數\n +29 伺服器 %1$s 無法執行\n +30 StartServer() 產生子程序失敗,暫停中\n +31 伺服器意外中斷\n +32 XOpenDisplay(%1$s) 嘗試 #%2$d 中止,正在中斷。\n +33 開啟伺服器嘗試 #%1$d 失敗,因為 %2$s,放棄再嘗試\n +34 嚴重 IO 錯誤 %d (%1$s)\n +35 X 錯誤\n +36 階段作業啟始錯誤\n +37 警告:顯示器 %1$s 無法保障安全\n +38 警告:顯示器 %1$s 的鍵盤無法保障安全\n +39 BLS - 無法獲得戶頭資訊。\n +40 BLS - 無法獲得受保護的戶頭資訊。\n +41 BLS - 無法驗證敏感程度。\n +42 BLS - 無法變更為使用者:%1$s。\n +43 AFS - 啟動階段作業時 setgroups() 失敗\n +44 使用者 %s Setuid 失敗,errno = %d\n +45 使用者 %2$s 沒有啟始目錄 %1$s,使用 /\n +46 階段作業執行失敗 %1$s\n +47 階段作業沒有命令/引數\n +48 無法啟動 %s 的階段作業,產生子程序失敗\n +49 Dtlogin 無法清除客戶機\n +50 無法執行 %1$s\n +51 無法產生子程序以執行 %1$s\n +52 不適當的確認名稱 "%1$s"。使用 AFS、Kerberos 或內定名稱。\n +53 %2$s 無法執行 Dtgreet %1$s \n +54 無法產生子程序以執行 Dtgreet %1$s\n +55 %1$d 埠建立插座失敗\n +56 結合插座位址 %1$d 錯誤,errno = %2$d\n 57 makeEnv 58 setEnv 59 parseArgs -60 %1$s げ蠊柁筈萺渀睮熅蝝 %2$d 秮﹞廎忒筈萺斕...\n -61 %s 㪫卼 %1$d 堈髓譫柁漦嗢﹜%2$s 鞂揧芩靬\n -62 audwrite() 蠆諟”昋ⅰ炟呥盻崼瞃囷え炟\n -63 audwrite() 蠆諟”謒淭奡蠊斕隓淩柁呦ス磍謑﹞\n -64 audwrite() 蠆諟”errno = %1$d\n -65 AFS 薚諝⼇絫”%1$s\n -66 %1$s 柁鷓韝儸怉蛺﹞霘縋睎柁侇嗄磣隉婝椵彄﹞\n -67 ɵ峇蟟斕欐 %1$s\n -68 隓恄瞅絒簅諲⻏蠣旃晛麔”%1$s\n -69 隓恄幺抻 "%1$s" 媢桾げ蠊﹞囷え蠡泂諴侔﹞ -70 䬷ざ蟟 %1$s 隓恄絒沓暋泂﹜ɵ峇蟟⑴逑揧庉抻﹞\n -71 (%1$s)”僳蘋 matte 嬥唄熅蝝䬷ざ蟟嬥唄﹜囷え蠡泂圊﹞matte 柁痼⻏珜頝踛痼蠣﹞\n -72 (%1$s) 僳蘋 matte 崼唄熅蝝䬷ざ蟟崼唄﹜囷え蠡泂圊﹞matte 柁痼⻏珜頝踛痼蠣﹞\n +60 %1$s 目錄的掃描時間超過 %2$d 秒。結束掃描中...\n +61 %s 屬於 %1$d 個以上的群組,%2$s 會被忽略\n +62 audwrite() 錯誤:呼叫者並非高階使用者\n +63 audwrite() 錯誤:稽核記錄中有無效的事件號碼。\n +64 audwrite() 錯誤:errno = %1$d\n +65 AFS 確認失敗:%1$s\n +66 %1$s 的戶頭已到期。請與您的系統管理員連絡。\n +67 伺服器中止 %1$s\n +68 無法開啟標誌位元映射檔:%1$s\n +69 無法讀取 "%1$s" 訊息目錄。使用內定語言。 +70 顯示器 %1$s 無法啟始設定,伺服器可能被抓取。\n +71 (%1$s):登入 matte 寬度超過顯示器寬度,使用內定值。matte 的單位為圖像單元。\n +72 (%1$s) 登入 matte 高度超過顯示器高度,使用內定值。matte 的單位為圖像單元。\n $set 5 $ set 5 is for other stuff specific to chooser. -1 霘藞謥纂堈ɵ峇蟟僳蘋” +1 請選擇一個伺服器登入: $ 1 is the title/instructions for the chooser dialog -2 ɵ峇蟟ボ磝 ɵ峇蟟罶媢 +2 伺服器名稱 伺服器資訊 $ ^ $ | This needs to start in this column $ 2 is the headings for the list -3 彶隞トざ +3 更新列示 $set 99 $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtlp.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtlp.msg index 0e804bac1..4c9cc8b11 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtlp.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtlp.msg @@ -49,45 +49,45 @@ $ $ This is the message that appears in the "Printer:" field when no $ printer name has been specified. -10 "蠡泂パ玿鞥" +10 "內定印表機" $ This is the label that appears in the title bar of the print dialog. -20 "トパ" +20 "列印" $ This is the label for the field indicating the file that will be printed. -30 "麔淰”" +30 "檔案:" $ This is the label for the field indicating the name of the printer. -40 "パ玿鞥”" +40 "印表機:" $ This is the message that will appear in the "Printer:" field if no printer $ has been specified. -50 "蠡泂パ玿鞥" +50 "內定印表機" $ This is the label for the field indicating the number of copies to print. -60 "ソ禨”" +60 "份數:" $ This is the label for the field indicating the title for the banner page. -70 "玿韝簅纕郟簅纕”" +70 "表頭標題頁標題:" $ This is the label for the field indicating if page numbers are to be added. -80 "トパ郟謑" +80 "列印頁碼" $ This is thef label for the field indicating additional options for the $ "lp" command. -90 "トパ杬麟藞禋”" +90 "列印命令選項:" $ This is the label on the left button. Pushing this button causes the $ dialog to disappear and the print operation to start. -100 "トパ" +100 "列印" $ This is the label on the center button. Pushing this button causes the $ dialog to disappear and cancels the print operation. -110 "抻祤" +110 "取消" $ This is the label on the right button. Pushing this button causes a $ help dialog to be posted. -120 "赮伢諰咭" +120 "輔助說明" $ $ -- The following are error messages. -- @@ -97,22 +97,22 @@ $ This message is posted when there is a problem with the file specified. $ The file name will be appended to the message. One additional message $ from the list below will also be included in the dialog to provide $ more details. -130 "侺暽--隓恄トパ”" +130 "抱歉--無法列印:" $ This message is added to the error dialog when the file is not printable $ or does not exist. -132 "楙旂纂堈隓恄トパ柁麔淰﹜迖麔淰攜Бョ﹞" +132 "這是一個無法列印的檔案,或此檔案不存在。" $ This message is added to the error dialog when the file is not readable $ by the user invoking dtlp. -134 "睎扽幺抻篎麔淰柁暐⑴ḷ﹞" +134 "您沒有讀取該檔案的許可權。" $ This message is added to the error dialog when there is a general failure $ in setting up to print. -136 "霘黀栯楙堈麔淰旂匢Бョ﹞" +136 "請檢查這個檔案是否存在。" $ This is the label that appears in the title bar of the error dialog. -160 "トパ罶媢" +160 "列印資訊" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtmailopts.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtmailopts.msg index 2f9bffa9f..bb4e91de7 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtmailopts.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtmailopts.msg @@ -17,84 +17,84 @@ $ ** Generated messages for 'options'. $ ** DO NOT EDIT MESSAGES OR THE $set LINE ABOVE. $ ** DO NOT USE THESE MESSAGES IN YOUR APPLICATION CODE. $ ** You can edit this comment and add comments below each message. -1 "Mailer - 瑧ス藞禋" -2 "瞗麷”" -3 "媢桾簅纕ト玿" -4 "媢桾髲砫" -5 "ャ砆槉嵺" -6 "媢桾囆麔" -7 "⺌棬ャ砆" -8 "篲帣" -9 "伀ボ" -10 "瑱瞃" -11 "䬷ざ彃”ス藺﹜撋瑧スか宎溈罐渀" -12 "䬷ざ媢桾磍謑" -13 "黀栯隞瑧ス睮觰”" -14 "秮" -15 "隞瑧ス菙蟶媢磍”" -16 "韏鐖" -17 "嵑棬" -18 "䬷ざ" -19 "玿韝" -20 "曚骱儸伝崽柁媢桾”" -21 "撋宎驨椲瑧謜渀" -22 "䬷ざ薚諝楈夼" -23 "玿韝醷嬣渿屼挭”" -24 "玿韝唫⻏”" -25 "x ⺼" -26 "email 斿ヾ" -27 "淩蛺⺍" -28 "騿鰳唫⻏”" -29 "嚌蠹" -30 "伝崽" -31 "䨣彶" -33 "ト" -34 "А蠣嬥唄" -36 "䬷ざ眃ストざ" +1 "Mailer - 郵件選項" +2 "種類:" +3 "訊息標題列表" +4 "訊息察看" +5 "回信視窗" +6 "訊息歸檔" +7 "自動回信" +8 "模板" +9 "別名" +10 "進階" +11 "顯示給:收件人,當郵件由我寄出時" +12 "顯示訊息號碼" +13 "檢查新郵件間隔:" +14 "秒" +15 "新郵件提醒訊號:" +16 "嗶聲" +17 "閃動" +18 "顯示" +19 "表頭" +20 "銷毀已刪除的訊息:" +21 "當我關閉郵箱時" +22 "顯示確認通告" +23 "表頭縮寫將含括:" +24 "表頭欄位:" +25 "x 行" +26 "email 版本" +27 "有效期至" +28 "隱藏欄位:" +29 "增加" +30 "刪除" +31 "變更" +33 "列" +34 "字元寬度" +36 "顯示附件列示" 37 ">" -38 "隓恄庋踽柁瑧ス麔淰扢”" -39 "眭冈衢逑玿⺌衲唫⻏" -40 "騿冈棓ヾ" -41 "ャ砆謾" -42 "衢逑玿簅圝”" -50 "玿韝唫⻏”" -51 "蠡泂圊”" -52 "醷粡А⻌" -53 "ャ砆屼挭”" -54 "聤梏/麔ボ”" -55 "瞅沓硻岊⻏殦”" -57 ">傶棬=衢逑玿" -58 "縋>闀蕍怉=衢逑玿”" -59 "瑊ロ䬷ざ”" -60 "瑊珆え蝝柁瑧謜" -61 "婽罐媢桾柁瑧謜”" -62 "僳蠊邴婽罐柁媢桾" -63 "⺌棬ャ砆”" -64 "瞅絒" -65 "驨椲" -66 "⺌棬ャ砆騔ッ禖囥 = junk" -67 "饜纕”" -68 "攜ョ藰襬剞" -69 "媢桾”" -71 "衢逑玿簅圝”" -72 "篲帣”" -73 "伀ボ”" -74 "⻏彴”" -75 "伀ボ”" -76 "彶隞瑧謜昲鳷”" -77 "槴琣" -78 "攜琣" -79 "蠡泂圊”" -80 "䬷ざ薚泂楈夼" -81 "囷え╩眭 MIME А蠣蹌謑" -82 "囷え篚聤恞蜑瑧ス麔淰孍泂" -83 "芩靬⻏彴斕柁饜鞥ボ磝 (allnet)" -84 "撋宎囷え\"ャ鷋邴藺\" 渀屼挭宎(metoo)" -85 "囷えヾ磞ボ磝”ussername =" -86 "薚泂" -87 "适暋" -88 "抻祤" -89 "鶈え" -90 "赮伢諰咭" +38 "無法投遞的郵件檔案夾:" +39 "格式功能表自訂欄位" +40 "隱式副本" +41 "回信收據" +42 "功能表標籤:" +50 "表頭欄位:" +51 "內定值:" +52 "縮排字串" +53 "回信含括:" +54 "路徑/檔名:" +55 "開始尋找位置:" +57 "「移動」功能表" +58 "與「複製到」功能表:" +59 "最多顯示:" +60 "最近用過的郵箱" +61 "送出訊息的郵箱:" +62 "登錄所有送出的訊息" +63 "自動回信:" +64 "開啟" +65 "關閉" +66 "自動回信優先順序 = junk" +67 "主題:" +68 "不在辦公室" +69 "訊息:" +71 "功能表標籤:" +72 "模板:" +73 "別名:" +74 "位址:" +75 "別名:" +76 "更新郵箱狀態:" +77 "經常" +78 "不常" +79 "內定值:" +80 "顯示確定通告" +81 "使用嚴格 MIME 字元編碼" +82 "使用網路注意郵件檔案鎖定" +83 "忽略位址中的主機名稱 (allnet)" +84 "當我使用\"回覆所有人\" 時含括我(metoo)" +85 "使用本端名稱:ussername =" +86 "確定" +87 "重設" +88 "取消" +89 "應用" +90 "輔助說明" 91 " " diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtprintinfo.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtprintinfo.msg index 557d69780..0d7360601 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtprintinfo.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtprintinfo.msg @@ -3,224 +3,224 @@ $quote " $set DTPRINTER_SET $ ----- These are the titles that appear on dialogs and the main window ----- -ApplicationName1L "トパ磣隉炟" -ApplicationName2L "パ玿鞥齡汃" +ApplicationName1L "列印管理者" +ApplicationName2L "印表機工作" $ Do not translate ApplicationName3L for this release -ApplicationName3L "痐郖パ玿鞥" +ApplicationName3L "桌面印表機" $ ----- Common Dialog Buttons ----- -YesL "旂" -NoL "匢" -OKL "薚泂" -ApplyL "伒怮鶈え" -CancelL "抻祤" -HelpL "赮伢諰咭" +YesL "是" +NoL "否" +OKL "確定" +ApplyL "即刻應用" +CancelL "取消" +HelpL "輔助說明" $ ----- Find dialog ----- -FindTitleL "%s - 硻岊トパ齡汃" -MyJobNameL "宎柁齡汃柁ボ磝" -OnlyRootJobsL "蒟淂齡汃" -IgnoreCaseL "芩靬淰坲" -ExactMatchL "薚柁嗃ポ" -GotoL "虳芼" -CancelPrintJobsL "抻祤トパ齡汃" -PositionL "⻏殦" -CloseL "驨椲" -StartFindL "絒棬硻岊" -StopFindL "彘欐硻岊" +FindTitleL "%s - 尋找列印工作" +MyJobNameL "我的工作的名稱" +OnlyRootJobsL "僅有根工作" +IgnoreCaseL "忽略案例" +ExactMatchL "正確的符合" +GotoL "前往" +CancelPrintJobsL "取消列印工作" +PositionL "位置" +CloseL "關閉" +StartFindL "啟動尋找" +StopFindL "停止尋找" SearchL "\ -銌硻 %s...\n\ +搜尋 %s...\n\ \n\ -霘挹>彘欐=坭斕黫" +請按「停止」來中斷" $ Find Information dialog messages -NoMatchesL "隓トパ齡汃嗃ポ" +NoMatchesL "無列印工作符合" NotFoundMessageL "\ -トパ齡汃攜ョБョ﹜迖\n\ -パ玿鞥揧驨椲﹞" +列印工作不在存在,或\n\ +印表機被關閉。" $ ----- Modify Show Dialog ----- -ModifyShowTitleL "%s - 埏庍䬷ざト玿" -SelectPrintersToBeShowL "藞抻袺䬷ざ柁パ玿鞥" -SelectAllL "ツ楶藞抻" -DeselectAllL "抻祤ツ楶藞抻" +ModifyShowTitleL "%s - 修改顯示列表" +SelectPrintersToBeShowL "選取欲顯示的印表機" +SelectAllL "全部選取" +DeselectAllL "取消全部選取" $ ----- Set Options Dialog ----- -SetOptionsTitleL "%s - 暋泂藞禋" -RepresentationL "玿隃巖冈" -LargeIconL "騰頝踛" -SmallIconL "麵頝踛" -NameOnlyL "蒟ボ磝" -DetailsL "嗏樄" -ShowLabelsL "䬷ざ簅圝" -JobsToShowL "袺䬷ざ柁齡汃" -OnlyMineL "蒟宎柁" -EveryoneL "怀堈藺柁" -StatusL "昲鳷" -ProblemFlagL "棯纕憿簅" -InformationLineL "媢桾ト" -UpdateIntervalL "彶隞" -IntervalL "渀睮睮觰(秮)" +SetOptionsTitleL "%s - 設定選項" +RepresentationL "表現方式" +LargeIconL "大圖像" +SmallIconL "小圖像" +NameOnlyL "僅有名稱" +DetailsL "細節" +ShowLabelsL "顯示標籤" +JobsToShowL "欲顯示的工作" +OnlyMineL "僅有我的" +EveryoneL "每個人的" +StatusL "狀態" +ProblemFlagL "問題旗標" +InformationLineL "訊息列" +UpdateIntervalL "更新" +IntervalL "時間間隔(秒)" $ ----- Print Job Properties Dialog ----- -PrintJobPropsTitleL "%s - トパ齡汃笱迒" -PrinterL "パ玿鞥" -JobName1L "齡汃ボ磝" -SubmittedL "儸婽罐" -BytesL "⻏蠣嗢" +PrintJobPropsTitleL "%s - 列印工作特性" +PrinterL "印表機" +JobName1L "工作名稱" +SubmittedL "已送出" +BytesL "位元組" -Position1L "⻏殦”" -JobNameL "齡汃ボ磝”" -JobNumberL "齡汃磍謑”" -OwnerL "謵炟”" -DateL "戀蛺”" -TimeL "渀睮”" -SizeL "騰麵”" +Position1L "位置:" +JobNameL "工作名稱:" +JobNumberL "工作號碼:" +OwnerL "擁有者:" +DateL "日期:" +TimeL "時間:" +SizeL "大小:" $ ----- Printer Properties Dialog ----- -PrinterPropsTitleL "%s - パ玿鞥笱迒" -IconLabelL "頝踛簅圝”" -IconGroupTitleL "頝踛”" -FindSetL "硻岊碬ポ..." -DescriptionL "諰咭”" -PrinterStatusL "昲鳷”" -PrintQueueL "パ玿鞥⻗ト”" -DeviceL "稹殦ボ磝”" -DeviceNL "稹殦 %d”" -UpL "ホ譫 - 峇棜斕" -DownL "ホ譯 - 廎忒峇棜" +PrinterPropsTitleL "%s - 印表機特性" +IconLabelL "圖像標籤:" +IconGroupTitleL "圖像:" +FindSetL "尋找集合..." +DescriptionL "說明:" +PrinterStatusL "狀態:" +PrintQueueL "印表機佇列:" +DeviceL "裝置名稱:" +DeviceNL "裝置 %d:" +UpL "向上 - 服務中" +DownL "向下 - 結束服務" PrinterOnServerL "%1$s on %2$s" -DefaultDescriptionL "楙旂 %s パ玿鞥⻗ト﹞" -$ %1 is the printer name and %2 is the server name, ex” "lp0 on warpspeed" +DefaultDescriptionL "這是 %s 印表機佇列。" +$ %1 is the printer name and %2 is the server name, ex: "lp0 on warpspeed" $ This is the value of the device field when the printer is on a remote system $ ----- Find Set Dialog ----- -FindSetTitleL "%s - 硻岊碬ポ" -IconFoldersL "頝踛麔淰扢”" -IconTitleL "頝踛" -LoadingIconsL "蟡蘋%2$d堈斕柁 %1$d堈頝踛..." +FindSetTitleL "%s - 尋找集合" +IconFoldersL "圖像檔案夾:" +IconTitleL "圖像" +LoadingIconsL "載入%2$d個中的 %1$d個圖像..." $ %1 is a counter and %2 is the total number of icons $ ----- "Cancel" Print Job Confirmation Dialog ----- -CancelTitleL "%s - 抻祤 %s" -CancelQuestionL "睎薚泂衭抻祤%s蓇?" +CancelTitleL "%s - 取消 %s" +CancelQuestionL "您確定要取消%s嗎?" $ ----- Printer "Status" Dialog ----- -PrinterStatusTitleL "%s - パ玿鞥昲鳷" -PrinterDownL "%sパ玿鞥廎忒峇棜﹞" -DeviceDownL "%s稹殦廎忒峇棜﹞" +PrinterStatusTitleL "%s - 印表機狀態" +PrinterDownL "%s印表機結束服務。" +DeviceDownL "%s裝置結束服務。" $ ----- Failed Action Dialog ----- -FailedActionTitleL "%s - %s ⼇絫" -FailedMessageL "隓恄伒怮鶈え'%s'棬汃⺍\n\ - %s. 霘棤櫇髓譯婘モ﹞\n\n%s" +FailedActionTitleL "%s - %s 失敗" +FailedMessageL "無法即刻應用'%s'動作至\n\ + %s. 請參閱以下原因。\n\n%s" $ ----- Main Window Information Line Messages ----- -GettingHelpL "抻痤轃譫赮伢諰咭..." -SearchingL "銌硻パ玿鞥..." -ShowingMyJobsL "蒟䬷ざ宎柁齡汃" -PrintersHiddenL "%d 楶パ玿鞥斕 %d楶揧騿鰳" -JobsL "%d堈齡汃" -UpdatingActionsL "彶隞棬汃罶涷梬..." -UpdatingL "彶隞%s..." +GettingHelpL "取得線上輔助說明..." +SearchingL "搜尋印表機..." +ShowingMyJobsL "僅顯示我的工作" +PrintersHiddenL "%d 部印表機中有 %d部被隱藏" +JobsL "%d個工作" +UpdatingActionsL "更新動作資料庫..." +UpdatingL "更新%s..." $ Do not translate EditLangL for this release -EditLangL "蹌藟卼/etc/dt/appconfig/麷伀/%s" +EditLangL "編輯於/etc/dt/appconfig/類別/%s" $ %s is the name of the printer $ ----- Printer Menu Messages ----- -PrinterMenuL "パ玿鞥" +PrinterMenuL "印表機" PrinterAcceleratorL "P" -FindChoiceL "硻岊..." +FindChoiceL "尋找..." FindMnemonicL "F" FindAcceleratorL "Ctrl+F" -ExitChoiceL "廎忒" +ExitChoiceL "結束" ExitMnemonicL "x" ExitAcceleratorL "Alt+F4" $ ----- Selected Menu Messages ----- -SelectedMenuL "儸藞抻" +SelectedMenuL "已選取" SelectedAcceleratorL "S" $ For Print Jobs Only - "Cancel" means to remove a print job from the printer. $ This choice pops up the "Cancel" Print Job Confirmation $ Dialog. -CancelChoiceL "抻祤" +CancelChoiceL "取消" CancelMnemonicL "C" CancelAcceleratorL "Del" $ For Printers Only -OpenChoiceL "瞅絒" +OpenChoiceL "開啟" OpenMnemonicL "O" -CloseChoiceL "驨椲" +CloseChoiceL "關閉" CloseMnemonicL "C" -HideChoiceL "騿鰳" +HideChoiceL "隱藏" HideMnemonicL "e" $ Do not translate RenameChoiceL for this release -RenameChoiceL "适隞杬ボ" +RenameChoiceL "重新命名" $ Do not translate RenameMnemonicL for this release RenameMnemonicL "R" $ Do not translate StartChoiceL for this release -StartChoiceL "瞅沓粡睾" +StartChoiceL "開始排隊" $ Do not translate StartMnemonicL for this release StartMnemonicL "S" $ Do not translate StopChoiceL for this release -StopChoiceL "廎忒粡睾" +StopChoiceL "結束排隊" $ Do not translate StopMnemonicL for this release StopMnemonicL "t" $ Do not translate EnableChoiceL for this release -EnableChoiceL "絒棬トパ" +EnableChoiceL "啟動列印" $ Do not translate EnableMnemonicL for this release EnableMnemonicL "E" $ Do not translate DisableChoiceL for this release -DisableChoiceL "驨椲トパ" +DisableChoiceL "關閉列印" $ Do not translate DisableMnemonicL for this release DisableMnemonicL "D" $ For Both Printers and Print Jobs -PropertiesChoiceL "笱迒..." +PropertiesChoiceL "特性..." PropertiesMnemonicL "P" PropertiesAcceleratorL "Ctrl+Backspace" -HelpChoiceL "赮伢諰咭" +HelpChoiceL "輔助說明" HelpMnemonicL "H" $ ----- View Menu Messages ----- -ViewMenuL "黀槉" +ViewMenuL "檢視" ViewAcceleratorL "V" -SetOptionsChoiceL "暋泂藞禋..." +SetOptionsChoiceL "設定選項..." SetOptionsMnemonicL "O" -ModifyShowChoiceL "埏庍䬷ざト玿..." +ModifyShowChoiceL "修改顯示列表..." ModifyShowMnemonicL "M" $ ----- Help Menu Messages ----- $ "Help" Menu uses the "HelpChoiceL" message $ "Help" Accelerator uses the "HelpMnemonicL" message -OverviewChoiceL "颮羏" +OverviewChoiceL "概觀" OverviewMnemonicL "v" -TaskChoiceL "齡汃" +TaskChoiceL "工作" TaskMnemonicL "T" -ReferenceChoiceL "棤℡罶涷" +ReferenceChoiceL "參考資料" ReferenceMnemonicL "R" -OnItemChoiceL "崼卼禋げ" +OnItemChoiceL "高於項目" OnItemMnemonicL "O" -UsingHelpChoiceL "囷え赮伢諰咭" +UsingHelpChoiceL "使用輔助說明" UsingHelpMnemonicL "U" -AboutChoice1L "驨卼トパ磣隉炟" -AboutChoice2L "驨卼トパ齡汃" +AboutChoice1L "關於列印管理者" +AboutChoice2L "關於列印工作" $ Do not translate AboutChoice3L for this release -AboutChoice3L "驨卼痐郖パ玿鞥" +AboutChoice3L "關於桌面印表機" AboutMnemonicL "A" $ ----- Misc Messages ----- -EmptyL "[ 洠柁 ]" -FoundNoPrintersL "扽岊怉パ玿鞥﹞" -NotAvailableL "攜⑴え" -NoDefaultPrinter1L "扽侇嗄蠡暋パ玿鞥﹞" +EmptyL "[ 空的 ]" +FoundNoPrintersL "沒有找到印表機。" +NotAvailableL "不可用" +NoDefaultPrinter1L "沒有系統內設印表機。" NoDefaultPrinter2L "\ -霘棤櫇囷え炟鰱襓諰咭儸蘀痤ヵ\n\ -暋泂蠡暋パ玿鞥LPDEST蘄頨柁罶媢﹞" +請參閱使用者引導說明已獲得如何\n\ +設定內設印表機LPDEST環境的資訊。" $ %1 is the name of the program, and %2 is either '-edit' or '-populate'. -RootUserL "%1$s” 睎⽁禕旂淂囷え炟懼逑囷え%2$s藞禋﹞" +RootUserL "%1$s: 您必須是根使用者才能使用%2$s選項。" $ ----- Command Line Help ----- @@ -230,23 +230,23 @@ $ on the command line. The %s is a printer list generated by the program. CommandLineHelpL "\ dtprintinfo\n\ \n\ - 攜棤嘵ズ藞禋゛絒棬dtprintinfo﹜䬷ざLPDEST\n\ - パ玿鞥迖ョLPDESTゝ暋泂渀䬷ざ侇嗄蠡暋﹞\n\ + 不參照任何選項而啟動dtprintinfo,顯示LPDEST\n\ + 印表機或在LPDEST未設定時顯示系統內設。\n\ \n\ dtprintinfo -p \n\ \n\ - 蚍衭砫笱泂柁パ玿鞥﹜霘囷え -p 藞禋髓轡\n\ - 譯トトパ⻗トボ磝欄纂”\n\ + 若要看特定的印表機,請使用 -p 選項以及\n\ + 下列列印佇列名稱之一:\n\ \n\ %s\ \n\ dtprintinfo -all\n\ \n\ - 蚍衭砫邴パ玿鞥﹜霘囷え -all 藞禋﹞\n\ + 若要看所有印表機,請使用 -all 選項。\n\ \n\ dtprintinfo -populate\n\ \n\ - -populate 藞禋蒟坯淂囷え炟囷え﹞\n\ - 篎藞禋髱/etc/dt/appconfig/types/LANG\n\ -斕柁邴パ玿鞥唈ゥ蠡暋パ玿鞥棬汃﹞ 蚍LANGゝ泂氂﹜\n\ - 棬汃鞂唈ゥョ/etc/dt/appconfig/types/C斕﹞" + -populate 選項僅供根使用者使用。\n\ + 該選項對/etc/dt/appconfig/types/LANG\n\ +中的所有印表機建立內設印表機動作。 若LANG未定義,\n\ + 動作會建立在/etc/dt/appconfig/types/C中。" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtscreen.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtscreen.msg index ab0cb273c..a4e33fc16 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtscreen.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtscreen.msg @@ -20,27 +20,27 @@ $quote " $set 2 $ message file created 1993 -1 "1386-101 %s”杬麟⺼藞禋蠆諟 \"%s\"\n\n" -2 "1386-102 \n耰蘋 %s -help 伒⑴痤怉汒謽柁諰咭﹞\n\n" +1 "1386-101 %s:命令行選項錯誤 \"%s\"\n\n" +2 "1386-102 \n鍵入 %s -help 即可得到完整的說明。\n\n" -3 "1386-103 え恄”\n %s [-options ...]\n\n\ - 藞禋讓挭”\n" -5 "1386-105 %-28s %s\n\t 篲鳷珜髓譯欄纂”\n\", \"-mode mode\", \"animation mode" +3 "1386-103 用法:\n %s [-options ...]\n\n\ + 選項包括:\n" +5 "1386-105 %-28s %s\n\t 模態為以下之一:\n\", \"-mode mode\", \"animation mode" -7 "1386-107 ゝ洁柁篲鳷”" -10 "1386-110 隓恄崷殦”%s\n" -11 "1386-111 崷殦 %d 堈頝踛痼蠣\n" +7 "1386-107 未知的模態:" +10 "1386-110 無法配置:%s\n" +11 "1386-111 配置 %d 個圖像單元\n" -17 "1386-117 %s”隓恄瞅絒䬷ざ蟟 %s﹞\n" -18 "1386-118 %s”GetResource - 隓恄崷殦奡襉忟" -19 "1386-119 %s”-display 鰱禨眭冈蠆諟﹜\"%s\"\n" +17 "1386-117 %s:無法開啟顯示器 %s。\n" +18 "1386-118 %s:GetResource - 無法配置記憶體" +19 "1386-119 %s:-display 引數格式錯誤,\"%s\"\n" -20 "1386-120 -batchcount 鰱禨禕珜禨﹞" -21 "1386-121 -saturation 鰱禨⽁禕蘭卼 0.0 縋 1.0 欄睮﹞" +20 "1386-120 -batchcount 引數須為正數。" +21 "1386-121 -saturation 引數必須介於 0.0 與 1.0 之間。" -25 "1386-125 %s”ⅲ逑齬葰 %d 堈糬魦﹞\n" -30 "1386-130 -delay 鰱禨禕珜禨﹞" -35 "1386-135 隓恄崷殦”%s﹜髓 %s 抻鷥\n" -40 "%s”隓恄岊怉槉嵺坭鸁頝﹞囷え -create\n\ - 藞禋⑴⣷ %s 唈ゥ⼓⺌儷柁槉嵺﹞\n" +25 "1386-125 %s:只能支援 %d 個螢幕。\n" +30 "1386-130 -delay 引數須為正數。" +35 "1386-135 無法配置:%s,以 %s 取代\n" +40 "%s:無法找到視窗來繪圖。使用 -create\n\ + 選項可讓 %s 建立它自己的視窗。\n" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtsession.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtsession.msg index f1ae68bc2..355d5037e 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtsession.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtsession.msg @@ -198,7 +198,7 @@ keyboard grabbed. $ The next message is added to the error log if a required temporary $ file can not be created by the session manager. $ The insert is the name of the temporary file. -11 "隓恄唈ゥ穛Б麔: %s. 霘薚泂髱麔淰嬣蘋ḷ﹞⺌瞃栠汃鞄磣隉炟廎忒﹞" +11 "無法建立暫存檔: %s. 請確定對此檔案有寫入權。自階段作業管理者結束。" $set 6 $ THIS COMMENT FOR DTSESSION TEAM ONLY -- SmMsgSrv.c -- @@ -266,45 +266,45 @@ $ Deleted Messages: 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, $ 29, 30, 31, 32, 33 $ _DtMessage 1 tells the user who currently has the display locked. -1 䬷ざ蟟揧囷え炟 %s 孍泂﹞ +1 顯示器被使用者 %s 鎖定。 $ _DtMessage 2 tells the user to enter the password for the above user to unlock $ the display. -2 霘藣蘋湅謑髓箾崽孍泂﹞ +2 請輸入密碼以解除鎖定。 $ _DtMessage 3 is a prompt for the user to enter a password. -3 湅謑” +3 密碼: $ _DtMessage 4 is the logout message that appears when dtsession is going $ to save the current session information. $ Access this message by pressing the logout button. -4 瞅沓僳罐搢隉...\n\n\ -邴ゝ鬊Б柁隞罶涷⑴逑楁鞂蟺⼇﹞\n\n\ -睎げ虳柁瞃栠汃鞄鞂揧鬊Б“隑゛咍鶈え嶂冈\n\n\ -⑴逑錛衭ョ譯僳蘋渀テ适隞絒棬﹞ +4 開始登出處理...\n\n\ +所有未儲存的新資料可能都會遺失。\n\n\ +您目前的階段作業會被儲存;然而有些應用程式\n\n\ +可能需要在下次登入時再重新啟動。 $ _DtMessage 5,6 is the logout message that appears when dtsession is not going $ to save the current session information - but return to the home session info -5 瞅沓僳罐搢隉...\n\n\ -邴ゝ鬊Б柁隞罶涷⑴逑楁鞂蟺⼇﹞\n\n\ -楙堈瞃栠汃鞄攜鞂揧鬊Б﹞ɪ睎柁媊沓瞃栠汃鞄\n\n\ -ョ睎譯僳蘋渀鞂ャ艀﹞ +5 開始登出處理...\n\n\ +所有未儲存的新資料可能都會遺失。\n\n\ +這個階段作業不會被儲存。但您的起始階段作業\n\n\ +在您下次登入時會回復。 $ _DtMessage 6 is the title of the logout dialog box. -6 僳罐薚諝 +6 登出確認 $ _DtMessage 7,8,9,10 are all part of the logout dialog that appears when $ the user has requested to have the choice $ to either save the current session or return to the home session. -7 瞅沓僳罐搢隉...\n\n\ -譯睎僳蘋渀﹜怚堈藞謥⑴髓粡ト痐譫磣隉侇嗄”\n\n\ -睎⑴髓鬊Б隃⺼瞃栠汃鞄﹜譯伒⑴髓婘穔适隞絒棬﹞\n\n\ -迖炟or\n\n\ -睎⑴髓勂蛫隃⺼瞃栠汃鞄﹜ヵ睎柁媊沓瞃栠汃鞄祼⑴髓ャ艀﹞\n\n\ -ɪ攜磣囷え瞗巖冈﹜ゝ鬊Б柁隞罶涷楁鞂蟺⼇﹞ -8 僳罐”\n鬊Б隃⺼瞃栠汃鞄 -9 僳罐”\nャ艀媊沓瞃栠汃鞄 +7 開始登出處理...\n\n\ +下次您登入時,有兩個選擇可以排列桌上管理系統:\n\n\ +您可以儲存現行階段作業,下次即可以原樣重新啟動。\n\n\ +或者or\n\n\ +您可以放棄現行階段作業,如此您的起始階段作業就可以回復。\n\n\ +但不管使用何種方式,未儲存的新資料都會遺失。 +8 登出:\n儲存現行階段作業 +9 登出:\n回復起始階段作業 $ _DtMessage 10 is the title of the logout dialog box. -10 僳罐薚諝 +10 登出確認 $ _DtMessage 11,12 are part of the error dialog that appears when the DT $ messaging system dies. @@ -321,58 +321,58 @@ $ Note: The current session will not be saved.\n\n\ $ When you are ready to begin the restart process, click [OK] and\n\ $ proceed to save your files. -12 _DtMessage ⼇絫 +12 _DtMessage 失敗 $ Messages 15, 16, 17 are used for identical purpose as messages 1, 2,3 $ in this set. -15 䬷ざ蟟揧囷え炟 %s 孍泂﹞ -16 霘藣蘋湅謑髓箾崽孍泂﹞ -17 湅謑” +15 顯示器被使用者 %s 鎖定。 +16 請輸入密碼以解除鎖定。 +17 密碼: $ _DtMessage 34, 35 are messages that appear when the user started up in $ compatibility mode, and tries to log out. You can only exit out of $ compatibility mode by using the reset key sequence. $ To generate this message, start in x11 (not DT) and then run dtsession. $ Refer to the dtsession manpage. Then try to log out. -34 楙堈瞃栠汃鞄旂髓纂堈 X 槉嵺侇嗄絒棬杬麟碬邴絒棬﹞\n\n\ -攜鞂鬊Бズ瞃栠汃鞄罶媢﹞\n\n霘囷え适暋挹耰囥ト僳罐﹞ -35 僳罐 _DtMessage +34 這個階段作業是以一個 X 視窗系統啟動命令集所啟動。\n\n\ +不會儲存任何階段作業資訊。\n\n請使用重設按鍵序列登出。 +35 登出 _DtMessage $ Messages 36,37 are part of the error dialog that appears when dtsession is $ unable to start the DT messaging system, and therefore not able to bring $ up the system at all. $ To generate this, move the message server from $ /usr/softbench/bin/softmsgsrv to some other directory, then start Dt. -36 DT 媢桾侇嗄隓恄絒棬﹞\n\n\ -衭箾扻楙堈棯纕”\n\n\ -1. 霘藞謥 [薚泂] 珃ャ僳蘋糬魦﹞\n\n\ -2. 皕僳蘋糬魦柁藞禋衢逑玿斕藞抻>瞃栠汃鞄\n\ -捗錏⺌棬砉覈=欄悒僳蘋﹞\n\n\ -3. 黀栯髓譯⻏殦柁饜鞥ボ磝旂匢薚”\n\ +36 DT 訊息系統無法啟動。\n\n\ +要解決這個問題:\n\n\ +1. 請選擇 [確定] 返回登入螢幕。\n\n\ +2. 從登入螢幕的選項功能表中選取「階段作業\n\ +故障自動保險」之後登入。\n\n\ +3. 檢查以下位置的主機名稱是否正確:\n\ /etc/src.sh\n\ /etc/hosts\n\ /usr/adm/inetd.sec\n\n\ -ヵ錛籧⼃柁罶媢﹜霘棤櫇>DT 囷え鷗癱=﹞ -37 ⽁衭柁棬汃 +如需額外的資訊,請參閱「DT 使用手冊」。 +37 必要的動作 $ _DtMessage 38 is part of the error dialog that appears when the DT $ messaging system dies. $ This messages are generated when you kill the BMS (broadcast _DtMessage $ Server), which is /usr/softbench/bin/softmsgsrv. -38 媢桾侇嗄隓恄囷え\n\n\ -蚍衭适隞絒棬”\n\n\ -1) 鬊Б邴儸瞅絒柁罶涷麔﹞\n\ -2) 僳罐﹞\n\ -3) 适隞僳蘋﹞\n\n\ -恞蜑”隃⺼瞃栠汃鞄攜鞂揧鬊Б﹞\n\n\ -撋睎僾猻ン衭适隞絒棬搢隉渀﹜霘挹纂譯 [薚泂] 隑悒\n\ -鬊Б睎柁麔淰﹞ +38 訊息系統無法使用\n\n\ +若要重新啟動:\n\n\ +1) 儲存所有已開啟的資料檔。\n\ +2) 登出。\n\ +3) 重新登入。\n\n\ +注意:現行階段作業不會被儲存。\n\n\ +當您準備好要重新啟動處理時,請按一下 [確定] 然後\n\ +儲存您的檔案。 $ Messages 39 and 40 are displayed on the logout confirmation dialogs -39 凭㶴僳罐 -40 抻祤僳罐 +39 繼續登出 +40 取消登出 $set 20 $ THIS COMMENT FOR DTSESSION TEAM ONLY -- SmWindow.c -- @@ -431,7 +431,7 @@ a palette.\n $set 29 $ THIS COMMENT FOR DTSESSION TEAM ONLY -- SmHelp.c -- $ LOCALIZE Set 29 -1 瞃栠汃鞄磣隉炟赮伢諰咭 +1 階段作業管理者輔助說明 $set 99 $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtstyle.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtstyle.msg index e29ee80ed..c67be572c 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtstyle.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtstyle.msg @@ -63,9 +63,9 @@ $set 2 $ Message 1 from set 2 was deleted from the message catalog $ _DtMessage 2 is the title of all Information dialog boxes -2 楈夼 +2 通告 $ _DtMessage 3 is the title of all Error dialog boxes -3 蠆諟 +3 錯誤 $ _DtMessage 4 WILL ONLY APPEAR IN THE DT ERRORLOG FILE 4 Cannot communicate with the session\n\ manager... Exiting. @@ -77,12 +77,12 @@ second attempt aborted. Exiting. $ _DtMessage 7 is the title of all Help dialog boxes -7 ⼃倛冈穔磣隉炟 - 赮伢諰咭 +7 外型式樣管理者 - 輔助說明 $ _DtMessage 8 is an error message that appears when you are using Itemh Help $ and select on something outside of the Style Manager -8 睎⽁禕ョ⼃倛冈穔磣隉炟\n\ -斕藞謥纂堈禋げ﹞ +8 您必須在外型式樣管理者\n\ +中選擇一個項目。 $ _DtMessage 9 WILL ONLY APPEAR IN THE DT ERRORLOG FILE 9 Could not obtain screen saver information\n\ @@ -95,37 +95,37 @@ $ _DtMessage set 4 is for the Style Manager main window $ Messages 6,8-26,34,39 from set 4 were deleted from the message catalog $ _DtMessage 1 is the title of the main dtstyle window -1 ⼃倛冈穔磣隉炟 +1 外型式樣管理者 $ mnemonic and label for the File menubar item. 2 F -3 麔淰(F) +3 檔案(F) $ mnemonic and label for the Help menubar item. 4 H -5 赮伢諰咭(H) +5 輔助說明(H) $ _DtMessage 7 is the label for the Exit button in the File pulldown $ the mnenomic for the Exit button is set 4 _DtMessage 40 -7 廎忒 +7 結束 $ Messages 27-33,35 are the labels on the buttons in the dtstyle main window. -27 籦⺪ -28 А夆 -29 茯葔泂⻏ -30 耰薏 -31 僶趡 -32 韏鐖 -33 糬魦 -35 絒棬 +27 顏色 +28 字形 +29 背景定位 +30 鍵盤 +31 滑鼠 +32 嗶聲 +33 螢幕 +35 啟動 $ MESSAGE 36 IN SET 4 WILL ONLY APPEAR IN THE DT ERRORLOG FILE 36 No Dtstyle restore information available for current session $ _DtMessage 37 is the label on the dtstyle icon -37 ⼃倛冈穔 +37 外型式樣 $ Message 38 is the label on the Window button in the dtstyle main window. -38 槉嵺 +38 視窗 $ _DtMessage 40 is replaced with message 53 $ 40 E @@ -152,7 +152,7 @@ $ 46 Reference... $ On Item menu item $ Keybaord menu item 47 O -48 驨卼禋げ(O) +48 關於項目(O) $ Using Help... menu item 49 U @@ -169,40 +169,40 @@ $ Message 53 is replaced with message 40 $ Messages 54-55 are replacements for messages 41-42 54 v -55 颮羏(v) +55 概觀(v) $ Message 56 is a replacement for messages 44 -56 齡汃(T) +56 工作(T) $ Message 57 is a replacement for messages 46 -57 棤℡(R) +57 參考(R) $ Message 58 is a replacement for messages 50 -58 囷え赮伢諰咭(U) +58 使用輔助說明(U) $ Messages 59-60 are replacements for messages 51-52 59 A -60 驨卼⼃倛冈穔磣隉炟(A) +60 關於外型式樣管理者(A) $set 5 $ _DtMessage set 5 is for the Font dialog $ Messages 1-6, 7-16 from set 5 were deleted from the message catalog $ _DtMessage 17 is the label of the titlebox of the preview font area -17 諅ៜ +17 預覽 $ _DtMessage 18 appears in a Notice dialog after the user selects a new font $ and presses Ok - when the resource *WriteXrdbImmediate is True -18 А夆柁庍䨣ョ譯絒棬栲咍鶈え嶂\n\ -冈渀鞂䬷隃罐坭﹞怬瀦柁鶈え嶂冈﹜\n\ -坲ヵ麔淰磣隉炟昑鶈え嶂冈磣隉炟﹜\n\ -崽盻睎廎忒痐譫磣隉侇嗄呥テ适隞僳\n\ -蘋﹜匢衧攜鞂ゥ伒酈旃罐坭﹞ +18 字形的改變在下次啟動某些應用程\n\ +式時會顯現出來。其餘的應用程式,\n\ +例如檔案管理者和應用程式管理者,\n\ +除非您結束桌上管理系統並再重新登\n\ +入,否則不會立即反映出來。 $ _DtMessage 19 appears in a Notice dialog after the user selects a new font $ and presses Ok - when the resource *WriteXrdbImmediate is False -19 适隞絒棬楙堈瞃栠汃鞄欄悒﹜\n\ -藞泂柁А夆祼鞂揧囷え﹞ +19 重新啟動這個階段作業之後,\n\ +選定的字形就會被使用。 $ _DtMessage 20 and 21 is the text that initially appears in the Font Preview $ area displaying sample user and system fonts. @@ -210,30 +210,30 @@ $ area displaying sample user and system fonts. 21 AaBbCcDdEeFfGg0123456789 $ _DtMessage 22 is the label of the titlebox containing the list of font sizes -22 騰麵 +22 大小 $ _DtMessage 23 is the title of the Fonts dialog -23 ⼃倛冈穔磣隉炟 - А夆 +23 外型式樣管理者 - 字形 $ _DtMessage 24 is an informative message used by the Fonts dialog -24 騰麵ト玿斕扽睎げ虳痐郖譫囷え\n\ -柁А倛. ヵ峈藞抻呥鶈え隞А倛,\n\ -伒囷え⼃倛冈穔磣隉炟 - А倛髱緷,\n\ -躂隓恄ャ怉げ虳柁А倛. +24 大小列表中沒有您目前桌面上使用\n\ +的字型. 如果選取並應用新字型,\n\ +即使用外型式樣管理者 - 字型對話,\n\ +也無法回到目前的字型. $set 6 $ _DtMessage set 6 is for the Beep dialog $ _DtMessage 1,6 from set 6 have been deleted from the message catalog $ Messages 2 through 5 are the default buttons and labels of the scales. -2 蠡泂圊 -3 郣畽 -4 郣鞜 -5 蛺睮 +2 內定值 +3 音量 +4 音調 +5 期間 $ _DtMessage 7 is the title of the Beep dialog box -7 ⼃倛冈穔磣隉炟 - 韏鐖 +7 外型式樣管理者 - 嗶聲 $set 7 @@ -242,36 +242,36 @@ $ Messages 1-2 from set 7 have been deleted from the message catalog $ Messages 3 through 9 are labels of the buttons and text visible in the $ Session Startup dialog box. -3 ョ僳蘋渀” -4 凭㶴隃⺼瞃栠汃鞄 -5 珃ャ媊沓瞃栠汃鞄 -6 僳罐渀緧棯 -7 僳罐薚諝髱緷” -8 瞅絒 -9 驨椲 -10 暋泂媊沓瞃栠汃鞄... +3 在登入時: +4 繼續現行階段作業 +5 返回起始階段作業 +6 登出時詢問 +7 登出確認對話: +8 開啟 +9 關閉 +10 設定起始階段作業... $ _DtMessage 11 is a warning message when the user pushes Set Home Session... $ Notice the spaces before Continue .. the spaces make it centered. -11 ヵ睎柁媊沓瞃栠汃鞄渿鞂髓\n\ -隃⺼瞃栠汃鞄抻鷥﹞\n\n\ - 衭凭㶴蓇? +11 如此您的起始階段作業將會以\n\ +現行階段作業取代。\n\n\ + 要繼續嗎? $ _DtMessage 12 is the title of the warning dialog box when Set Home Session is $ pushed. -12 滙夼 +12 警告 $ _DtMessage 13 is an error message -13 楙堈瞃栠汃鞄旂か纂堈 X 槉嵺侇嗄\n\ -絒棬杬麟碬邴絒棬﹞ɪ絒棬暋泂隓淩﹜\n\ -モ珜楙堈瞃栠汃鞄隓恄ャ艀﹞ +13 這個階段作業是由一個 X 視窗系統\n\ +啟動命令集所啟動。但啟動設定無效,\n\ +因為這個階段作業無法回復。 $ _DtMessage 14 is the title of the Session Startup dialog box. -14 ⼃倛冈穔磣隉炟 - 絒棬 +14 外型式樣管理者 - 啟動 $ _DtMessage 15 is an error message -15 瞃栠汃鞄磣隉炟扽ョ欹⺼﹞\n\ -絒棬暋泂隓淩﹞ +15 階段作業管理者沒有在執行。\n\ +啟動設定無效。 $set 8 @@ -283,59 +283,59 @@ $ _DtMessage set 9 is for the Mouse dialog $ Message 7 from set 9 have been deleted from the message catalog $ Messages 1-4 are labels of toggle buttons in the Mouse Dialog. -1 ⼢ -2 ⑶ -3 え鷗塤鳹” -4 挹瘖 2” +1 左 +2 右 +3 用手習慣: +4 按鈕 2: $ _DtMessage 5 is the label of default button. -5 蠡泂圊 +5 內定值 $ Messages 6,8,9 are labels of the scales. -6 椵挹怚譯 -8 蠹楬 -9 鶚盉圊 +6 連按兩下 +8 加速 +9 臨界值 $ MESSAGE 10 IN SET 9 WILL ONLY APPEAR IN THE DT ERRORLOG FILE -10 蠆諟”暋泂挴簅髱鶈\n +10 錯誤:設定指標對應\n -11 蒡婽 -12 鞜謽 +11 傳送 +12 調整 $ _DtMessage 13 appears in a Notice dialog after the user selects the $ left-handed or right-handed toggle -13 睎挹纂譯>薚泂=欄悒﹜⑶饡縋⼢饡\n\ -僶㪫挹瘖柁衢逑ゥ伒ガ葎﹞皕僶趡槉嵺\n\ ->鉡箹椵挹怚譯=頝夆柁挹瘖 1 縋挹瘖 3\n\ -柁⻏殦﹜伒⑴痤洁げ虳え鷗塤鳹柁暋泂﹞\n\ +13 您按一下「確定」之後,右邊與左邊\n\ +滑屬按鈕的功能立即交換。從滑鼠視窗\n\ +「測試連按兩下」圖形的按鈕 1 與按鈕 3\n\ +的位置,即可得知目前用手習慣的設定。\n\ $ _DtMessage 14 appears in a Notice dialog after the user selects the $ transfer toggle to change the function of the middle mouse button. -14 ヵ峈睎挹纂譯>薚泂=﹜ョ譯纂堈瞃栠汃鞄斕﹜\n\ -僶趡挹瘖 2 祼鞂揧暋泂>鼲葎=(侹)﹞ +14 如果您按一下「確定」,在下一個階段作業中,\n\ +滑鼠按鈕 2 就會被設定成「轉換」(拖曳)。 $ double-click time and presses Ok (and the resource $ *WriteXrdbImmediate is True) -15 鶈え嶂冈适隞絒棬欄悒﹜隞柁椵挹\n\ -怚譯楬唄祼鞂ぇ淩﹞ +15 應用程式重新啟動之後,新的連按\n\ +兩下速度就會生效。 $ _DtMessage 16 appears in a Notice dialog after the user selects a new $ double-click time and presses Ok (and the resource $ *WriteXrdbImmediate is False) -16 ョ譯纂堈瞃栠汃鞄斕﹜隞柁椵挹怚譯楬唄\n\ -伒⑴ぇ淩﹞ +16 在下一個階段作業中,新的連按兩下速度\n\ +即可生效。 $ _DtMessage 17 is the text below the mouse icon. Notice the two lines. -17 鉡箹\n椵挹怚譯 +17 測試\n連按兩下 $ _DtMessage 18 is the Mouse Dialog title -18 ⼃倛冈穔磣隉炟 - 僶趡 +18 外型式樣管理者 - 滑鼠 $ _DtMessage 19 appears in a Notice dialog after the user selects the $ adjust toggle to change the function of the middle mouse button. -19 ヵ峈睎挹纂譯>薚泂=﹜ョ譯纂堈瞃栠汃\n\ -鞄斕﹜僶趡挹瘖 2 祼鞂揧暋泂>鞜謽=﹞\n\ -挹瘖 2 ⑴髓え坭鞜謽齪А縋トざ藞謥﹞齪А\n\ -縋トざ柁柁蒡婽棬汃 (侹) 衧禕囷え挹瘖 1﹞\n\ +19 如果您按一下「確定」,在下一個階段作\n\ +業中,滑鼠按鈕 2 就會被設定成「調整」。\n\ +按鈕 2 可以用來調整文字與列示選擇。文字\n\ +與列示的的傳送動作 (拖曳) 則須使用按鈕 1。\n\ $set 10 $ _DtMessage set 10 is for the SaveRestore functionality @@ -344,8 +344,8 @@ $ Messages 2,4 from set 10 have been deleted from the message catalog $ MESSAGE 1,3 IN SET 10 WILL ONLY APPEAR IN THE DT ERRORLOG FILE $ Messages 1,3 make up one error message. Put together, they say $ " <_DtMessage 2> <_DtMessage 1> -1 黀栯麔淰暐⑴ḷ﹞ -3 %s 旂え坭鬊Б睎柁瞃栠汃鞄柁麔淰\n +1 檢查檔案許可權。 +3 %s 是用來儲存您的階段作業的檔案\n $set 11 @@ -354,15 +354,15 @@ $ _DtMessage set 11 is for the Backdrop dialog $ MESSAGE 1 IN SET 11 WILL ONLY APPEAR IN THE DT ERRORLOG FILE $ _DtMessage 1 - could not open a backdrop directory -1 隓恄瞅絒げ蠊 %s﹞ +1 無法開啟目錄 %s。 $ _DtMessage 2 - error opening the backdrop files -2 ⼃倛冈穔磣隉炟柁茯葔泂⻏楶禳\n\ -隓恄蝒汃﹜モ珜扽茯葔泂⻏麔⑴\n\ -え﹞霘黀栯 $HOME/.dt/errorlog﹞ +2 外型式樣管理者的背景定位部分\n\ +無法運作,因為沒有背景定位檔可\n\ +用。請檢查 $HOME/.dt/errorlog。 $ _DtMessage 12 is the title of the Backdrop dialog box -12 ⼃倛冈穔磣隉炟 - 茯葔泂⻏ +12 外型式樣管理者 - 背景定位 $set 12 @@ -370,31 +370,31 @@ $ _DtMessage set 12 is for the Screen dialog $ Message 2 from set 12 has been deleted from the message catalog $ _DtMessage 1 is the title of the Screen dialog box. -1 ⼃倛冈穔磣隉炟 - 糬魦 +1 外型式樣管理者 - 螢幕 $ Messages 3-14 are the labels and buttons for the Screen dialog -3 蠡泂圊 -4 糬魦砵諔稹殦 -5 絒棬砵諔稹殦 -6 ペ伀砵諔稹殦渀睮暋泂 -7 禳㺪 -8 糬魦孍泂 +3 內定值 +4 螢幕省電裝置 +5 啟動省電裝置 +6 各別省電裝置時間設定 +7 分鐘 +8 螢幕鎖定 $ Message 9 has been removed -10 瞅絒 -11 驨椲 -12 糬魦砵諔稹殦” -13 糬魦孍泂” -14 絒棬孍泂 -15 糬懞⺌棬彘馽 -16 糬懞⺌棬彘馽嶂冈 -17 絒棬糬懞彘馽嶂冈 -18 虳巖郖帣孍泂 +10 開啟 +11 關閉 +12 螢幕省電裝置: +13 螢幕鎖定: +14 啟動鎖定 +15 螢慕自動停歇 +16 螢慕自動停歇程式 +17 啟動螢慕停歇程式 +18 前方面板鎖定 $ Message 19 has been replaced by message 21 -19 囷え孍泂茯葔 -20 ペ伀茯葔渀睮暋泂 +19 使用鎖定背景 +20 各別背景時間設定 $ Message 21 is a replacement for message 19 -21 囷え茯葔孍泂 -22 椴咭孍泂 +21 使用背景鎖定 +22 透明鎖定 $set 13 $ _DtMessage set 13 is for the Keyboard dialog @@ -402,12 +402,12 @@ $ _DtMessage 1,5 from set 13 have been deleted from the message catalog $ _DtMessage 2 through 4 are labels of scales, buttons, and text visible in the $ Keyboard dialog box. -2 蠡泂圊 -3 ⺌棬适闀 -4 挹耰郣畽 +2 內定值 +3 自動重複 +4 按鍵音量 $ _DtMessage 6 is the title of the Keyboard dialog box -6 ⼃倛冈穔磣隉炟 - 耰薏 +6 外型式樣管理者 - 鍵盤 $set 14 @@ -415,71 +415,71 @@ $ _DtMessage set 14 is for the Color dialog $ _DtMessage 1-4,9,14-15,17,19,20,22,24 from set 14 have been deleted from the message catalog $ Messages 5 through 8 are labels and buttons visible in the Color dialog -5 鞜⺪薏 -6 嚌蠹... -7 伝崽... -8 埏庍... +5 調色盤 +6 增加... +7 刪除... +8 修改... $ _DtMessage 10 is the title above the text area in the Add Palette dialog box -10 隞柁鞜⺪薏ボ磝” +10 新的調色盤名稱: $ _DtMessage 11 is the title of the Add Palette dialog box. -11 嚌蠹鞜⺪薏 +11 增加調色盤 $ Messages 12 through 14 are error messages. -12 鞜⺪薏ボ磝攜逑讓屼\n\ -譯トА蠣”\n\n\ +12 調色盤名稱不能包含\n\ +下列字元:\n\n\ * : ( ) [ ] { } < > ! | " / \\ $ LOCALIZERS: FOR 8 AND 16 BIT LANGUAGES YOU MAY WANT TO CHANGE THE MESSAGE $ TO SAY THE PALETTE NAME MUST BE 10 BYTES OR LESS -13 鞜⺪薏ボ磝⽁禕ョ 10 堈А蠣髓蠡﹞\n +13 調色盤名稱必須在 10 個字元以內。\n $ _DtMessage 16 is the title of the Delete Palette dialog box. See screen 4a (2). -16 伝崽鞜⺪薏 +16 刪除調色盤 $ _DtMessage 18 appears in an information dialog. -18 隓恄伝崽瑊悒纂堈鞜⺪薏﹞\n +18 無法刪除最後一個調色盤。\n $ _DtMessage 21 is an error message -21 滙夼 +21 警告 $ _DtMessage 23 appears in an information dialog -23 衭伝崽鞜⺪薏 '%s' 蓇?\n +23 要刪除調色盤 '%s' 嗎?\n $ _DtMessage 25 is an error message that appears when you press the color $ button and the color server is not running for some reason. -25 ⼃倛冈穔磣隉炟柁籦⺪楶禳隓恄\n\ -蝒汃﹜モ珜籦⺪ɵ峇蟟扽ョ欹⺼﹞\n\ -霘黀栯 $HOME/.dt/errorlog﹞ +25 外型式樣管理者的顏色部分無法\n\ +運作,因為顏色伺服器沒有在執行。\n\ +請檢查 $HOME/.dt/errorlog。 $ _DtMessage 26 can be caused by setting the resource *useColorObj to False $ and then running dtstyle and trying to post the Color Dialog. -26 ⼃倛冈穔磣隉炟柁籦⺪楶禳隓恄\n\ -蝒汃﹜モ珜罶鳲 'useColorObj' 暋泂珜\n\ -False﹞ +26 外型式樣管理者的顏色部分無法\n\ +運作,因為資源 'useColorObj' 設定為\n\ +False。 $ _DtMessage 27 is for the new ColorUse dialog when you press ok. -27 隞柁>籦⺪囷え=圊ョ睎譯纂堈瞃栠\n\ -汃鞄渀伒鞂ぇ淩﹞ +27 新的「顏色使用」值在您下一個階段\n\ +作業時即會生效。 $ _DtMessage 28 is a warning message that appears on Black and White systems -28 藞抻柁鞜⺪帣ョ睎譯纂堈瞃栠\n\ -汃鞄渀伒鞂ぇ淩﹞ +28 選取的調色板在您下一個階段\n\ +作業時即會生效。 $ _DtMessage 29 appears in a warning dialog -29 ボ珜 '%s' 柁鞜⺪薏儸槴Бョ﹞\n\ -楙堈隞鞜⺪薏渿鞂适嬣鰹鞜⺪薏﹞\n\ -睎裱楙穔惉蓇? +29 名為 '%s' 的調色盤已經存在。\n\ +這個新調色盤將會重寫舊調色盤。\n\ +您想這樣做嗎? $ _DtMessage 30 is the title of the Color dialog box. -30 ⼃倛冈穔磣隉炟 - 籦⺪ +30 外型式樣管理者 - 顏色 $ _DtMessage 31-33 are the ColorUse options $ 31 High Color $ 32 Medium Color $ 33 Low Color -34 膌く -35 蠡泂圊 +34 黑白 +35 內定值 $ Dt Message 36 has been replaced by message 39 $ _DtMessage 36 is the title of the Color Use dialog @@ -491,23 +491,23 @@ $ 37 DT Color Use... $ _DtMessage 38 is an error message that appears when you press the color $ button and there are no palette files to be found -38 ⼃倛冈穔磣隉炟柁籦⺪楶禳隓恄\n\ -蝒汃﹜モ珜扽鞜⺪薏麔淰⑴え﹞\n\ -霘黀栯 $HOME/.dt/errorlog﹞ +38 外型式樣管理者的顏色部分無法\n\ +運作,因為沒有調色盤檔案可用。\n\ +請檢查 $HOME/.dt/errorlog。 $ DtMessage 39 is a replacement for DtMessage 36 $ DtMessage 39 is the title of the Color Use dialog -39 衭囷え柁籦⺪禨げ” +39 要使用的顏色數目: $ DtMessage 40 is a replacement for DtMessage 37 $ DtMessage 40 is the title of the Color Use dialog -40 籦⺪禨げ... +40 顏色數目... $ _DtMessages 41-43 are replacements for Dtmessages 31-33 $ _DtMessage 41-43 are the ColorUse options -41 彶ロ柁痐譫磣隉侇嗄籦⺪ -42 彶ロ柁鶈え嶂冈籦⺪ -43 彶ロ柁鶈え嶂冈籦⺪ +41 更多的桌上管理系統顏色 +42 更多的應用程式顏色 +43 更多的應用程式顏色 $set 15 $ All of the messages from set 15 have been deleted from the message catalog @@ -518,8 +518,8 @@ $ _DtMessage set 16 is for the Color dialog $ _DtMessage 1-10,13-17 from set 16 have been deleted from the message catalog $ _DtMessage 11-12 form one error message that appears in an error dialog -11 隓恄伝崽 '%s'﹞\n -12 霘黀栯 $HOME/.dt/errorlog﹜睎⑴皕斕痤怉菙ざ﹞ +11 無法刪除 '%s'。\n +12 請檢查 $HOME/.dt/errorlog,您可從中得到提示。 $ MESSAGE 18-21 IN SET 16 WILL ONLY APPEAR IN THE DT ERRORLOG FILE 18 Warning, Too many directories listed in the resource paletteDirectories,\n\ @@ -538,52 +538,52 @@ $ Messages 1-3,13,16 from set 17 have been deleted from the message catalog $ Messages 4 through 12 are labels, buttons, and text visible in the $ Modify Color dialog box -4 籦⺪謓坲 -5 鰹 -6 隞 -7 庉抻籦⺪ -8 籦⺪蹌藟蟟 -9 ⺪唄 +4 顏色範例 +5 舊 +6 新 +7 抓取顏色 +8 顏色編輯器 +9 色度 $ We recommend that you don't translate R,G,B which stands for Red, Green, $ Blue unless there are standard single letter acronyms in your language. -10 窅 -11 篝 -12 鰼 +10 紅 +11 綠 +12 藍 $ MESSAGE 14-15 IN SET 17 WILL ONLY APPEAR IN THE DT ERRORLOG FILE 14 Warning, couldn't grab pointer.\n 15 Warning, couldn't grab Keyboard.\n $ _DtMessage 16 is the title of the Modify Color dialog box. -16 ⼃倛冈穔磣隉炟 - 埏庍籦⺪ +16 外型式樣管理者 - 修改顏色 $set 18 $ _DtMessage set 18 is for the Window dialog $ _DtMessage 1 is the title of the Window dialog box -1 ⼃倛冈穔磣隉炟 - 槉嵺 +1 外型式樣管理者 - 視窗 $ Messages 2 through 5 are labels on the Window dialog. -2 蠡泂圊 -3 槉嵺⺼珜 -4 槉嵺頝踛 +2 內定值 +3 視窗行為 +4 視窗圖像 $ Messages 5-8 have been replaced by messages 13-16 $ 5 Focus Follows Mouse $ 6 Click In Window For Focus $ 7 Raise Window With Focus $ 8 Opaque Move -9 囷え頝踛巖涺 -10 殦卼齡汃洠睮斕 -11 蠢暐饜衭槉嵺殦卼煄嬬 -12 齡汃洠睮磣隉炟⽁禕适隞絒棬﹜睎\n\ -邴汃柁䨣彶懼鞂ぇ淩﹞挹>薚泂=⑴髓\n\ -适隞絒棬齡汃洠睮磣隉炟﹜挹>抻祤=\n\ -衧⑴适暋楙咍䨣彶﹞ +9 使用圖像方框 +10 置於工作空間中 +11 允許主要視窗置於頂層 +12 工作空間管理者必須重新啟動,您\n\ +所作的變更才會生效。按「確定」可以\n\ +重新啟動工作空間管理者,按「取消」\n\ +則可重設這些變更。 $ Messages 13-16 are replacements for messages 5-8 -13 霘挴怉槉嵺斕囷怬珜隃⺼槉嵺 -14 霘挹纂譯槉嵺囷怬珜隃⺼槉嵺 -15 珜隃⺼槉嵺悒菙⺍虳磞 -16 傶棬渀䬷ざ蠡晥 +13 請指到視窗中使其成為現行視窗 +14 請按一下視窗使其成為現行視窗 +15 成為現行視窗後提至前端 +16 移動時顯示內容 $set 99 $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtterm.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtterm.msg index 1217e7494..071619019 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtterm.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtterm.msg @@ -75,88 +75,88 @@ $ Message 2 is an error message 1 \ Sep f.separator\n\ - 籠葎\\衢逑\\犓 f.send_msg %d\ + 切換\\功能\\軸 f.send_msg %d\ -2 %s”-S 藞禋攜逑昑 -server 迖 -serverid 藞禋崷ポ囷え\n -3 嗈磞鞥 +2 %s:-S 選項不能和 -server 或 -serverid 選項配合使用\n +3 終端機 $set 2 $ ****** Module: DtTermSyntax.c $ These are the usage messages. $ DO NOT TRANSLATE Messages 37 or 41 ("End-of-list") -1 -/+132 絒棬/抻祤 80<->132 ⺼鼲葎 -2 -/+aw 絒棬/抻祤⺌棬葎⺼ -3 -bg color 茯葔籦⺪ -4 -/+bs 驨椲/瞅絒嗈磞鞥茯葔藞抻柁籦⺪ -5 -display displayname 衭椵稌柁 X ɵ峇蟟 -6 -e command args 衭欹⺼柁杬麟 -7 -fb fontset 嗊忟А夆 -8 -fg color 虳葔籦⺪ -9 -fn fontset 琣А夆 -10 -geometry geom 槉嵺柁騰麵 (髓А蠣珜痼⻏) 縋⻏殦 -11 -help 䬷ざヾ衧媢桾 -12 -/+iconic 絒棬/攜絒棬頝踛 -13 -/+j 絒棬/抻祤聧葎稂棬鳪郖 -14 -/+kshMode 絒棬/抻祤 ksh 篲鳷 -15 -/+l 絒棬/抻祤戀諲 -16 -lf filename 戀諲麔ボ -17 -/+ls 絒棬/抻祤僳蘋 shell -18 -/+map 絒棬/抻祤 pty 藣罐柁髱鶈槉嵺 -19 -/+mb 絒棬/抻祤饡盉褆 -20 -ms color 挴簅籦⺪ -21 -n string 挴泂頝踛ボ磝 -22 -name string 剟鷓鞥骳坲﹝頝踛縋簅纕А⻌ -23 -nb distance 挴泂⑶饡盉褆柁煻欏 -24 -/+rw 絒棬/抻祤酈ホ葎⺼ -25 -/+sb 絒棬/抻祤稂棬犓 -26 -/+sf 絒棬/抻祤 SUN 衢逑耰 -27 -sl number[s] 衭鬊Б柁稂棬⺼禨[糬魦禨] -28 -ti name 汃珜嶂冈籫伀え柁А⻌ -29 -title string 槉嵺柁簅纕А⻌ -30 -tm string 嗈磞鞥篲鳷驨耰А縋А蠣 -31 -tn name TERM 蘄頨䨣禨ボ磝 -32 -/+vb 絒棬/抻祤槉欓褆 -33 -xrm resourcestring 怬鱗柁罶鳲斒眭 -34 -C 饜祰ⅵ篲鳷 -35 -Sxxd ョ皕㪫篲鳷 "ttyxx" 柁麔淰萺訒蠣 "d" -36 -Sxxx.d ョ皕㪫篲鳷 "ttyxxx" 柁麔淰萺訒蠣 "d" +1 -/+132 啟動/取消 80<->132 行轉換 +2 -/+aw 啟動/取消自動換行 +3 -bg color 背景顏色 +4 -/+bs 關閉/開啟終端機背景成選取的顏色 +5 -display displayname 要連接的 X 伺服器 +6 -e command args 要執行的命令 +7 -fb fontset 粗體字形 +8 -fg color 前景顏色 +9 -fn fontset 正常字形 +10 -geometry geom 視窗的大小 (以字元為單位) 與位置 +11 -help 顯示本則訊息 +12 -/+iconic 啟動/不啟動圖像 +13 -/+j 啟動/取消跳換捲動畫面 +14 -/+kshMode 啟動/取消 ksh 模態 +15 -/+l 啟動/取消日誌 +16 -lf filename 日誌檔名 +17 -/+ls 啟動/取消登入 shell +18 -/+map 啟動/取消 pty 輸出的對應視窗 +19 -/+mb 啟動/取消邊界鈴 +20 -ms color 指標顏色 +21 -n string 指定圖像名稱 +22 -name string 客戶機實例、圖像與標題字串 +23 -nb distance 指定右邊界鈴的距離 +24 -/+rw 啟動/取消反向換行 +25 -/+sb 啟動/取消捲動軸 +26 -/+sf 啟動/取消 SUN 功能鍵 +27 -sl number[s] 要儲存的捲動行數[螢幕數] +28 -ti name 作為程式識別用的字串 +29 -title string 視窗的標題字串 +30 -tm string 終端機模態關鍵字與字元 +31 -tn name TERM 環境變數名稱 +32 -/+vb 啟動/取消視覺鈴 +33 -xrm resourcestring 其他的資源規格 +34 -C 主控台模態 +35 -Sxxd 在從屬模態 "ttyxx" 的檔案描述元 "d" +36 -Sxxx.d 在從屬模態 "ttyxxx" 的檔案描述元 "d" 37 End-Of-List -38 ヵ峈衭挴泂 -e 藞禋﹜⼓⽁禕罐隃ョ杬麟⺼廎呏﹜ -39 匢衧囷え炟蠡泂柁 shell 鞂絒棬﹞虳郖蠹蠹磍 (+) -40 柁藞禋﹜⑴髓ャ艀蠡泂圊﹞ +38 如果要指定 -e 選項,它必須出現在命令行結尾, +39 否則使用者內定的 shell 會啟動。前面加有加號 (+) +40 的選項,可以回復內定值。 41 End-Of-List -47 %s”杬麟⺼藞禋蠆諟 "%s"\r\n\n -48 え恄”%s +47 %s:命令行選項錯誤 "%s"\r\n\n +48 用法:%s 49 \r\n 50 [%s] -51 \r\n\n耰蘋 "%s -help" 伒⑴痤怉汒謽柁諰咭﹞\r\n\n -52 え恄”\n +51 \r\n\n鍵入 "%s -help" 即可得到完整的說明。\r\n\n +52 用法:\n 53 \t%s [-options ...] [-e command args]\n\n -54 藞禋讓挭”\n +54 選項包括:\n $set 3 $ ****** Module: TermFunction.c $ This is a warning message dialog box -1 奡襉忟儸橛\n挹>薚泂=伒⑴覗崽 +1 記憶體已滿\n按「確定」即可清除 $set 4 $ ****** Module: TermPrim.c $ This is the title of a dialog box -2 嗈磞鞥 - 滙夼 +2 終端機 - 警告 $set 5 $ ****** Module: TermFunction.c $ This is a warning message dialog box -1 奡襉忟儸橛\n挹>薚泂=伒⑴覗崽 +1 記憶體已滿\n按「確定」即可清除 $set 6 $ ****** Module: TermView.c $ DO NOT TRANSLATE Message 1 $ Messages 2 and 3 are titles for dialog boxes. 1 80x24 132x24 -4 嗈磞鞥 - Man Page -5 嗈磞鞥 - 赮伢諰咭 +4 終端機 - Man Page +5 終端機 - 輔助說明 $set 7 $ ****** Module: TermViewGlobalDialog.c @@ -167,39 +167,39 @@ $ documentation for full specs. $ $ DO NOT TRANSLATE MESSAGE 15 $ -2 薚泂 -3 抻祤 -4 赮伢諰咭 -5 謽忟 -6 酮簅祰戔 -7 巖蜞 -8 芚轃 -9 酮簅穔冈 -10 絒棬 -11 抻祤 -12 嵑醽酮簅 -13 嵑醽跅 (袹秮) -14 騿鰳 +2 確定 +3 取消 +4 輔助說明 +5 整體 +6 游標控制 +7 方塊 +8 底線 +9 游標樣式 +10 啟動 +11 取消 +12 閃爍游標 +13 閃爍率 (毫秒) +14 隱藏 15 blinkRate -16 籦⺪祰戔 -17 酈く -18 琣 -19 槉嵺茯葔 -20 稂棬巖冈 -21 抻祤 -22 絒棬 -23 ⼳僶稂棬 -24 褆鐖祰戔 -25 鐖郣 -26 槉欓 -27 褆鐖麷倛 -28 絒棬 -29 抻祤 -30 饡盉滙夼 -31 饡盉煻欏 -32 伒怮鶈え -33 适暋 -34 嗈磞鞥 - 謽忟柁藞禋 +16 顏色控制 +17 反白 +18 正常 +19 視窗背景 +20 捲動方式 +21 取消 +22 啟動 +23 平滑捲動 +24 鈴聲控制 +25 聲音 +26 視覺 +27 鈴聲類型 +28 啟動 +29 取消 +30 邊界警告 +31 邊界距離 +32 即刻應用 +33 重設 +34 終端機 - 整體的選項 $set 8 $ ****** Module: TermViewMenu.c $ These are the menu bar entries and menu pane choices. @@ -210,75 +210,75 @@ $ The items with a "+" in them are the accellerators for an item. $ The single-character items are the mnemonics for a menu item, where the $ text of the menu item is specified in the previous message $ Do not translate messages 24 and 28. -1 蠡泂圊 -2 槉嵺騰麵(W) +1 內定值 +2 視窗大小(W) 3 W 4 -iso8859-1 -5 %d 鷁 -6 %.1f 鷁 -7 %.1f 鷁 -8 %.2f 鷁 -9 蠡泂圊 -10 А夆騰麵(F) +5 %d 點 +6 %.1f 點 +7 %.1f 點 +8 %.2f 點 +9 內定值 +10 字形大小(F) 11 F $ Window menu -12 瞅隞槉嵺(N) +12 開新視窗(N) 13 N -14 トパ(P) +14 列印(P) 15 P -16 トパ(r)... +16 列印(r)... 17 r -18 驨椲(C) +18 關閉(C) 19 C -20 槉嵺(W) +20 視窗(W) 21 W $ Edit menu -22 闀蕍(C) +22 複製(C) 23 C 24 Ctrl osfInsert 25 Ctrl+Insert -26 鶼漜(P) +26 黏貼(P) 27 P 28 Shift osfInsert 29 Shift+Insert -30 蹌藟(E) +30 編輯(E) 31 E $ Option menu -32 衢逑犓(M) +32 功能軸(M) 33 M -34 稂棬犓(S) +34 捲動軸(S) 35 S -36 謽忟(G)... +36 整體(G)... 37 G -38 嗈磞鞥(T)... +38 終端機(T)... 39 T -40 楗冈适暋(S) +40 軟式重設(S) 41 S -42 僣冈适暋(H) +42 硬式重設(H) 43 H -44 适暋(R) +44 重設(R) 45 R -46 藞禋(O) +46 選項(O) 47 O $ Old Help menu (no longer used for CDE) -48 颮羏(O) +48 概觀(O) 49 O -50 齡汃(T) +50 工作(T) 51 T -52 棤℡罶涷(R) +52 參考資料(R) 53 R -54 驨卼禋げ(O) +54 關於項目(O) 55 O -56 囷え赮伢諰咭(U) +56 使用輔助說明(U) 57 U 59 A -60 赮伢諰咭(H) +60 輔助說明(H) 61 H 62 Alt+F4 @@ -287,51 +287,51 @@ $ Old Help menu (no longer used for CDE) $ Current CDE Help menu -64 颮羏(v) +64 概觀(v) 65 v -66 袎鰱(I) +66 索引(I) 67 I -68 げ蠊(C) +68 目錄(C) 69 C -70 齡汃(T) +70 工作(T) 71 T -72 棤℡罶涷(R) +72 參考資料(R) 73 R -74 耰薏(K) +74 鍵盤(K) 75 K -76 囷え赮伢諰咭(U) +76 使用輔助說明(U) 77 U 79 A -80 赮伢諰咭(H) +80 輔助說明(H) 81 H -82 驨卼嗈磞鞥 -83 驨卼嗈磞鞥 +82 關於終端機 +83 關於終端機 $set 9 $ ****** Module: TermTerminalDialog.c $ These are the messages for the terminal options dialog -2 薚泂 -3 抻祤 -4 赮伢諰咭 -5 耰薏祰戔 -6 琣 -7 鶈え嶂冈 -8 酮簅耰篲鳷 -9 禨圊 -10 鶈え嶂冈 -11 赮伢耰嗢篲鳷 -12 囆⻏ -13 囆⻏/葎⺼ -14 葎⺼禖囥 -15 孍泂 -16 箾崽孍泂 -17 囷え炟衢逑耰 -18 糬魦祰戔 -19 絒棬 -20 抻祤 -21 鼲葎 132 ⺼ -22 ⺼廎呏葎⺼ -23 酈ホ⺼廎呏葎⺼ -24 伒怮鶈え -25 适暋 -26 嗈磞鞥 - 嗈磞鞥藞禋 +2 確定 +3 取消 +4 輔助說明 +5 鍵盤控制 +6 正常 +7 應用程式 +8 游標鍵模態 +9 數值 +10 應用程式 +11 輔助鍵組模態 +12 歸位 +13 歸位/換行 +14 換行順序 +15 鎖定 +16 解除鎖定 +17 使用者功能鍵 +18 螢幕控制 +19 啟動 +20 取消 +21 轉換成 132 行 +22 行結尾換行 +23 反向行結尾換行 +24 即刻應用 +25 重設 +26 終端機 - 終端機選項 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dttypes.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dttypes.msg index 9639c9562..33f5c957f 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dttypes.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dttypes.msg @@ -8,8 +8,8 @@ $set 1 $ Do not Translate 2 "Dttype" $ Do not Translate -3 "隓恄渿ズ昡ス媊沓暋泂\n" -4 "洠А⻌" +3 "無法將任何物件起始設定\n" +4 "空字串" $ this should mean a "Empty string". 5 "=============== %s ===============\n" $ Do not Translate @@ -19,13 +19,13 @@ $ Do not Translate $ Do not Translate 8 "" $ Do not Translate -9 "⺌ %s蟡蘋\n" -10 "攜咭柁" +9 "自 %s載入\n" +10 "不明的" 11 "\t%s" $ Do not Translate 12 "\0" $ Do not Translate -13 " ”\t%s" +13 " :\t%s" $ Do not Translate 14 "\0" $ Do not Translate @@ -47,25 +47,25 @@ $ Do not Translate $ Do not Translate 23 "all" $ Do not Translate -24 "蠆諟 = %o, %s\n" +24 "錯誤 = %o, %s\n" $ Translate "error" only -25 "え恄: dttypes [-help]\n\tdttypes [-type filename]\n\tdttypes [-db database] [-w [rec_name regexp] [fld_name regexp]\n\t\t\t[fld_value regexp]]\n\t\t[-l [rec_name] [rec_info] [fld_name regexp] [fld_value]]\n" -$ Translate only the following” "filename" "database" "regexp" +25 "用法: dttypes [-help]\n\tdttypes [-type filename]\n\tdttypes [-db database] [-w [rec_name regexp] [fld_name regexp]\n\t\t\t[fld_value regexp]]\n\t\t[-l [rec_name] [rec_info] [fld_name regexp] [fld_value]]\n" +$ Translate only the following: "filename" "database" "regexp" 26 "-type" $ Do not Translate -27 "%s 柁麷伀旂 %s\n" +27 "%s 的類別是 %s\n" 28 "$" $ Do not Translate 29 "--------------------- %s ----------------\n" $ Do not Translate -30 "隓淩柁罶涷梬\n" -31 "攜旂淩柁鰱禨\n" -32 "隓淩柁 rec_info 唫⻏ョ -w 藞禋斕\n" +30 "無效的資料庫\n" +31 "不是有效的引數\n" +32 "無效的 rec_info 欄位在 -w 選項中\n" $ do not translate "rec_info" or "-w" -33 "攜ョ -w 迖 -l 藞禋斕\n" +33 "不在 -w 或 -l 選項中\n" $ do not translate "-w" or "-l" -34 "攜咭柁藞禋\n" +34 "不明的選項\n" 35 "-help" $ Do not Translate -36 "纂郫玿ざ冈 %s 斕蠆諟\n" +36 "一般表示式 %s 中有錯誤\n" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg index 6735dc751..06ff9dc3d 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg @@ -86,7 +86,7 @@ $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE $ This is the message in the confirm dialog for restarting mwm $ Do not localize "Mwm" -3 衭适隞絒棬 Mwm 蓇? +3 要重新啟動 Mwm 嗎? $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE @@ -94,7 +94,7 @@ $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE $ This is the message in the confirm dialog for quitting mwm $ Do not localize "Mwm" -6 衭廎忒 Mwm 蓇? +6 要結束 Mwm 嗎? $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE @@ -102,21 +102,21 @@ $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE $ This is the message in the confirm dialog for logging out of DT Lite $ You'll see it when pressing the Exit button from DT lite -9 衭僳罐蓇? +9 要登出嗎? $ This is the message in the confirm dialog for restarting dtwm -10 衭适隞絒棬齡汃洠睮磣隉炟蓇? +10 要重新啟動工作空間管理者嗎? $ This is the message in the confirm dialog for quitting dtwm -11 衭廎忒齡汃洠睮磣隉炟蓇? +11 要結束工作空間管理者嗎? $ This is the message in the confirm dialog for toggling to standard $ PM (Presentation Manager) behavior from custom behavior -12 衭鼲葎蠡泂柁槉嵺⺼珜蓇? +12 要轉換成內定的視窗行為嗎? $ This is the message in the confirm dialog for toggling back from $ PM (Presentation Manager) behavior to custom behavior -13 衭鼲葎⺌衲柁槉嵺⺼珜蓇? +13 要轉換成自訂的視窗行為嗎? $set 26 @@ -146,12 +146,12 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 1-2 $ Message 3 is an error message that appears when you are using Item Help $ and select on something outside of the Workspace Manager -3 睎⽁禕藞抻纂堈齡汃洠睮磣隉炟髱緷﹝\n\ -ョ>虳巖郖帣=斕藞謥纂堈禋げ﹝迖ョ\n\ -郖帣斕藞謥纂堈禋げ﹞ +3 您必須選取一個工作空間管理者對話、\n\ +在「前方面板」中選擇一個項目、或在\n\ +次面板中選擇一個項目。 $ Message 4 is the title of the Help On Item Error dialog -4 齡汃洠睮磣隉炟 - 驨卼禋げ赮伢諰咭蠆諟 +4 工作空間管理者 - 關於項目輔助說明錯誤 $set 30 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmIDecor.c -- @@ -208,7 +208,7 @@ $ $ The mnemonic should also be chosen such such that it does not $ conflict with another mnemonic in the menu. -3 "适粡頝踛(P)" _P Alt ShiftF7 f.pack_icons\n +3 "重排圖像(P)" _P Alt ShiftF7 f.pack_icons\n $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE @@ -252,7 +252,7 @@ $ DO NOT LOCALIZE MESSAGES 1 THROUGH 13. 13 Insufficient memory for screen names $ This is the default title for the icon box -14 頝踛 +14 圖像 $ Message 15 goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE @@ -275,13 +275,13 @@ $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE 21 %1$s: %2$s on line %3$d of specification string\n $ This is the default title for the version dialog -22 驨卼齡汃洠睮磣隉炟 +22 關於工作空間管理者 $ This is the default title for the Dtwm help dialog -23 齡汃洠睮磣隉炟 - 赮伢諰咭 +23 工作空間管理者 - 輔助說明 $ This is the default title for the Generic help dialog -24 齡汃洠睮磣隉炟 - 赮伢諰咭 +24 工作空間管理者 - 輔助說明 $set 44 @@ -322,21 +322,21 @@ $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. 1 Unable to create Occupy Workspace dialog. $ This tells what window the occupy workspace dialog is operating on. -2 槉嵺” +2 視窗: $ This is the label for the workspace list in the occupy workspace dialog -3 齡汃洠睮” +3 工作空間: $ This is the label for the button to put a window in all workspaces $ from the occupy workspace dialog -4 邴柁齡汃洠睮 +4 所有的工作空間 $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. 5 Insufficient memory to create occupy workspace dialog. $ This tells what window the occupy workspace dialog is operating on. -6 頝踛” +6 圖像: @@ -518,7 +518,7 @@ $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. 31 Insufficient memory for local message string $ This is the default title of the "Rename Workspace" dialog -32 齡汃洠睮庍ボ +32 工作空間改名 $ Messages 33 to 38 go to an error file. $ YOU DON'T NEED TO LOCALIZE MESSAGES 33 TO 38. @@ -548,55 +548,55 @@ $ The name of the function (e.g. f.normalize) should not change $ This item will "close" the window. This usually results in the $ window being withdrawn. -48 驨椲(C) _C AltF4 f.kill +48 關閉(C) _C AltF4 f.kill $ This item normalizes a window -49 ャ艀(R) _R f.restore +49 回復(R) _R f.restore $ This item moves a window -50 傶棬(M) _M f.move +50 移動(M) _M f.move $ This item resizes a window -51 騰麵(S) _S f.resize +51 大小(S) _S f.resize $ This item changes a window into an icon -52 醷⺍瑊麵(n) _n f.minimize +52 縮至最小(n) _n f.minimize $ This item makes a window as large as allowed (determined by a number $ of factors) -53 勂⺍瑊騰(x) _x f.maximize +53 放至最大(x) _x f.maximize $ This item lowers a window below other windows -54 傶⺍芚嬬(L) _L f.lower +54 移至底層(L) _L f.lower $ This item brings up the occupy workspace dialog. The character $ sequence "\\.\\.\\." will appear as "..." in the menu . DO NOT CHANGE $ THE "\\.\\.\\." CHARACTERS -55 ŋ謾\\齡汃洠睮(O)\\.\\.\\. _O f.workspace_presence +55 佔據\\工作空間(O)\\.\\.\\. _O f.workspace_presence $ This item puts a window into all workspaces. The character sequence $ "\\" provides a space between "Occupy" and "all" Use this sequence $ to provide spaces in item titles. -56 ŋ謾\\邴\\齡汃洠睮(A) _A f.occupy_all +56 佔據\\所有\\工作空間(A) _A f.occupy_all $ This item removes a window from a workspace. This item will appear in $ in the menu as "Unoccupy Workspace" with the first e in the title underlined $ to indicate this is a mnemonic for this item. -57 抻祤ŋ謾\\齡汃洠睮(U) _U f.remove +57 取消佔據\\工作空間(U) _U f.remove $ This is the default title of the "occupy workspace" dialog -59 ŋ謾齡汃洠睮 +59 佔據工作空間 $ The following 6 items are Sun-specific. The only difference being $ that these items have accelerators. They should be localized $ similarly to their corresponding item above. -60 ャ艀(R) _R AltF5 f.restore -61 傶棬(M) _M AltF7 f.move -62 騰麵(S) _S AltF8 f.resize -63 瑊麵襲(n) _n AltF9 f.minimize -64 瑊騰襲(x) _x AltF10 f.maximize -65 傶⺍芚嬬(L)_L AltF3 f.lower +60 回復(R) _R AltF5 f.restore +61 移動(M) _M AltF7 f.move +62 大小(S) _S AltF8 f.resize +63 最小化(n) _n AltF9 f.minimize +64 最大化(x) _x AltF10 f.maximize +65 移至底層(L)_L AltF3 f.lower $ Messages 66 to 68 go to an error file. $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. @@ -643,33 +643,33 @@ $ THIS COMMENT FOR DTWM TEAM ONLY -- PopupMenu.c -- $ This entire set should be localized. $ Message 1 is the title of the Delete Locked Control Error dialog -1 齡汃洠睮磣隉炟 - 伝崽孍泂祰戔蠆諟 +1 工作空間管理者 - 刪除鎖定控制錯誤 $ Message 2 is the title of the Delete Control dialog -2 齡汃洠睮磣隉炟 - 伝崽祰戔 +2 工作空間管理者 - 刪除控制 $ Message 3 is the title of the Delete Locked Subpanel Error dialog -3 齡汃洠睮磣隉炟 - 伝崽孍泂郖帣蠆諟 +3 工作空間管理者 - 刪除鎖定次面板錯誤 $ Message 4 is the title of the Delete Subpanel dialog -4 齡汃洠睮磣隉炟 - 伝崽郖帣 +4 工作空間管理者 - 刪除次面板 $ Message 5 is the message in the Delete Locked Control Error dialog -5 隓恄伝崽楙堈祰戔﹜モ珜⼓儸揧孍泂﹞ +5 無法刪除這個控制,因為它已被鎖定。 $ Message 6 is the message in the Delete Control dialog -6 睎薚泂衭伝崽楙堈祰戔蓇? +6 您確定要刪除這個控制嗎? $ Message 7 is the message in the Delete Locked Subpanel Error dialog -7 隓恄伝崽楙堈郖帣﹜モ珜⼓儸揧孍泂﹞ +7 無法刪除這個次面板,因為它已被鎖定。 $ Message 8 is the message in the Delete Control dialog when more than $ exits in the subpanel to be deleted. -8 楙堈郖帣讓屼纂堈髓譫柁祰戔﹞\n睎薚泂衭伝崽楙堈郖帣蓇? +8 這個次面板包含一個以上的控制。\n您確定要刪除這個次面板嗎? $ Message 9 is the message in the Delete Control dialog when only the $ copy of the main panel control exists in the subpanel. -9 睎薚泂衭伝崽楙堈郖帣蓇? +9 您確定要刪除這個次面板嗎? $ Message 10 - 19 are the menu title, menu items, and mnemonics in the $ Main/Subpanel Menu. @@ -681,22 +681,22 @@ $ $ The mnemonic must be a character in the label. Each mnemonic must be $ unique within this particular menu. $ -10 嚌蠹郖帣(A) +10 增加次面板(A) 11 A -12 伝崽郖帣(D) +12 刪除次面板(D) 13 D -14 闀蕍怉饜郖帣(C) +14 複製到主面板(C) 15 C -16 伝崽(D) +16 刪除(D) 17 D -18 赮伢諰咭(H) +18 輔助說明(H) 19 H $ Message 20 - 21 are used in the menu title for the workspace button $ menus. 20 is used for the format "Workspace ". 21 is the first $ arg in the format. 20 %1$s %2$s -21 齡汃洠睮 +21 工作空間 $ Message 22 - 30 are the menu title, menu items, and mnemonics in the $ Switch Menu. @@ -708,27 +708,27 @@ $ $ The mnemonic must be a character in the label. Each mnemonic must be $ unique within this particular menu. $ -22 籠葎棷棦 -23 嚌蠹齡汃洠睮(A) +22 切換區域 +23 增加工作空間(A) 24 A -25 伝崽(D) +25 刪除(D) 26 D -27 庍ボ(R) +27 改名(R) 28 R -29 赮伢諰咭(H) +29 輔助說明(H) 30 H $ Message 31 - 40 are the pieces for the deletion dialogs -31 伝崽祰戔” -32 ヵ峈睎伝崽藹楙堈祰戔﹜祼隓恄髓\>Е稹頝踛\=\n泂⻏棷ャ艀﹞\n\n睎寣悒⑴髓囷え鶈え嶂冈磣隉炟柁\>ャ艀郖帣\=\n坭ャ艀祰戔﹞\n\n睎薚泂衭伝崽楙堈祰戔蓇? -33 伝崽郖帣” -34 ヵ峈睎伝崽藹楙堈郖帣﹜祼隓恄囷え\n\>Е稹頝踛\=泂⻏棷ャ艀楙堈郖帣邴讓屼柁\n邴祰戔﹞\n\n睎寣悒⑴髓囷え鶈え嶂冈磣隉炟柁\>ャ艀郖帣\=\n坭ャ艀楙堈郖帣昑怬祰戔﹞\n\n睎薚泂衭伝崽楙堈郖帣蓇? +31 刪除控制: +32 如果您刪除了這個控制,就無法以\「安裝圖像\」\n定位區回復。\n\n您稍後可以使用應用程式管理者的\「回復面板\」\n來回復控制。\n\n您確定要刪除這個控制嗎? +33 刪除次面板: +34 如果您刪除了這個次面板,就無法使用\n\「安裝圖像\」定位區回復這個次面板所包含的\n所有控制。\n\n您稍後可以使用應用程式管理者的\「回復面板\」\n來回復這個次面板和其控制。\n\n您確定要刪除這個次面板嗎? $ Used for the name of a newly created workspace. -35 隞齡汃洠睮 +35 新工作空間 $ Used for Install Icon title in Install Icon popup menu. -36 Е稹頝踛 +36 安裝圖像 $set 84 @@ -736,7 +736,7 @@ $ THIS COMMENT FOR DTWM TEAM ONLY -- UI.c -- $ This entire set should be localized. $ $ Message used for the label of the dynamic install area. -1 Е稹頝踛 +1 安裝圖像 $set 86 @@ -744,20 +744,20 @@ $ THIS COMMENT FOR DTWM TEAM ONLY -- Callback.c -- $ This entire set should be localized. $ The next two messages are used for workspace naming errors -1 齡汃洠睮磣隉炟 - 庍ボ蠆諟 -2 齡汃洠睮ボ磝隓淩迖适闀 +1 工作空間管理者 - 改名錯誤 +2 工作空間名稱無效或重複 $ The next three messages are used for the dynamical install error dialog. -3 齡汃洠睮磣隉炟 - Е稹頝踛蠆諟 -4 Е稹頝踛” +3 工作空間管理者 - 安裝圖像錯誤 +4 安裝圖像: $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 5 There is already a icon of this name. 6 Control Action Error -7 隓恄岊怉篎麔淰 -8 儸頝踛囷え篎ボ磝﹞ -9 齡汃洠睮磣隉炟 - 頝踛棬汃蠆諟 +7 無法找到該檔案 +8 已有圖像使用該名稱。 +9 工作空間管理者 - 圖像動作錯誤 $set 99 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/fmt_tbl.msg b/cde/programs/localized/zh_TW.UTF-8/msg/fmt_tbl.msg index 34cbb64e9..9f8f4cf49 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/fmt_tbl.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/fmt_tbl.msg @@ -17,13 +17,13 @@ $ $ message #1 indicates the list of 2byte punctuation, special characters $ and double consonants that cannot start a line. $ -1 ﹛渿ト玿殦卼搢> +1  將列表置於此處> $ $ message #2 indicates the list of 2byte punctuation, special characters $ and double consonants that cannot end a line. $ -2 ﹛渿ト玿殦卼搢> +2  將列表置於此處> $ $ message #3 indicates whether the language wants all end-of-lines in diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/libABil.msg b/cde/programs/localized/zh_TW.UTF-8/msg/libABil.msg index 77dceb21d..174cfe9d0 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/libABil.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/libABil.msg @@ -9,48 +9,48 @@ $quote " $ The set number set below must be syncronized with the #define in bilP.h $set 204 -1 "隓恄岊怉泂羻鷁昡ス\n" -2 "ヾ昡ス扽楙穔柁㪫迒\n" -3 "攜旂淩柁 C 籫伀А\n" -4 "ゝ揧蛺恁柁麔淰廎忒\n" -5 "ゝ洁柁麔淰斒眭\n" -6 "げ虳ゝ揧骳汃\n" -7 "げ虳ゝ揧骳汃 - 芩靬昡ス轡怬㪫迒\n" -8 "儸隓奡襉忟\n" -9 "ゝ洁柁禨圊\n" -10 "ゝ洁柁㪫迒\n" -11 "ゝ洁柁衢逑玿麷伀 - 蠡暋珜杬麟衢逑玿\n" -12 "隓恄岊怉昡ス\n" -13 "ゝ洁柁昡ス\n" -14 "灡柁禨圊 - 芩靬楙堈 '椵稌'\n" -15 "隓恄岊怉怐冈柁鰱訒\n" -16 "隓恄岊怉⼮⺀鷥禨\n" -17 "攜薚柁ボ磝諴恄\n" -18 "隓恄岊怉謽禨\n" -19 "隓恄岊怉驨耰А\n" -20 "隓恄岊怉ト玿柁瞅磞\n" -21 "隓恄岊怉衢逑玿迖挹耰\n" -22 "隓恄岊怉ボ磝柁瞅磞\n" -23 "隓恄岊怉昡ス柁瞅磞\n" -24 "隓恄岊怉А⻌\n" -25 "滙夼” 攜旂 C 籫伀А﹜芩靬\n" -26 "滙夼” 洠柁漦嗢 靬蝝...\n" -27 "麔淰” %s" -28 "﹜⺼” %d" -29 "﹜昡ス” %s" -30 "﹜㪫迒” %s" -31 "棬汃㪫迒” %s" -32 "﹜ " -33 "諴恄蠆諟" +1 "無法找到定錨點物件\n" +2 "本物件沒有這樣的屬性\n" +3 "不是有效的 C 識別字\n" +4 "未被期待的檔案結束\n" +5 "未知的檔案規格\n" +6 "目前未被實作\n" +7 "目前未被實作 - 忽略物件及其屬性\n" +8 "已無記憶體\n" +9 "未知的數值\n" +10 "未知的屬性\n" +11 "未知的功能表類別 - 內設為命令功能表\n" +12 "無法找到物件\n" +13 "未知的物件\n" +14 "壞的數值 - 忽略這個 '連接'\n" +15 "無法找到函式的引述\n" +16 "無法找到布耳代數\n" +17 "不正確的名稱語法\n" +18 "無法找到整數\n" +19 "無法找到關鍵字\n" +20 "無法找到列表的開端\n" +21 "無法找到功能表或按鍵\n" +22 "無法找到名稱的開端\n" +23 "無法找到物件的開端\n" +24 "無法找到字串\n" +25 "警告: 不是 C 識別字,忽略\n" +26 "警告: 空的群組 略過...\n" +27 "檔案: %s" +28 ",行: %d" +29 ",物件: %s" +30 ",屬性: %s" +31 "動作屬性: %s" +32 ", " +33 "語法錯誤" 34 "\n" -35 "ゝ洁柁驨耰А - %s" -36 "适闀柁ボ磝﹞彶庍珜 %s.\n\t(楙⑴逑縋蘭郖迖衶鋡ボ磝砨鍙秜)\n" -37 "﹜氋珆 '%s'" -38 "%s.\n隓恄蟡蘋衶鋡﹞\n" -39 "隓恄蟡蘋衶鋡\n." -40 "譯ト篲嗢旂椔幺柁﹞\n蚍睎蹌藟藹楙咍篲嗢﹜\n睎渿隓恄鬊Б睎柁蹌藟﹞" -41 "适粡棬汃ゝ泂氂\n" -42 "衢逑玿麷伀ゝ泂氂\n" -43 "棤℡鷁ゝ泂氂\n" -44 "ゝ挴泂麔淰ボ磝" -45 "隓恄鬊Б衶鋡“⑴逑旂扽峏⻆⑴鬊Б迖麔淰ボ磝旂洠А⻌" +35 "未知的關鍵字 - %s" +36 "重複的名稱。更改為 %s.\n\t(這可能與介面或計劃名稱相衝突)\n" +37 ",靠近 '%s'" +38 "%s.\n無法載入計劃。\n" +39 "無法載入計劃\n." +40 "下列模組是唯讀的。\n若您編輯了這些模組,\n您將無法儲存您的編輯。" +41 "重排動作未定義\n" +42 "功能表類別未定義\n" +43 "參考點未定義\n" +44 "未指定檔案名稱" +45 "無法儲存計劃;可能是沒有東西可儲存或檔案名稱是空字串" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/libABobjXm.msg b/cde/programs/localized/zh_TW.UTF-8/msg/libABobjXm.msg index 44ad61b9e..764d72528 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/libABobjXm.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/libABobjXm.msg @@ -9,16 +9,16 @@ $quote " $ The set number set below must be syncronized with the #define in objxmP.h $set 203 -1 "滙夼”%s ”隓恄渿麔淰ボ磝[%s]鼲葎頝踛旃\n" -2 "滙夼”%s ”ゝ挴泂麔淰ボ磝\n" -3 "蠆諟”%s”扽昡ス眃摽昡\n" -4 "怞忟襲蠆諟”%s”々嶂囥欄widget-ID 旂洠く柁\n" -5 "怞忟襲蠆諟”%s”隓恄渿衢逑玿怞忟襲\n" -6 "怞忟襲蠆諟”昡ス⽁禕淩柁ボ磝\n" -7 "怞忟襲蠆諟”%s”昡ス⽁禕 widget 嶉觕\n" -8 "蠡楶蠆諟”衶禨攜嗃ポ\n" -9 "蠆諟”objxm_comp_get_subobj - 昡スゝ xmconfigured”%s\n" -10 "麔淰扢" -11 "蝝孋蟟" -12 "耰蘋麔ボ" -13 "彶隞" +1 "警告:%s :無法將檔案名稱[%s]轉換成圖像映\n" +2 "警告:%s :未指定檔案名稱\n" +3 "錯誤:%s:沒有物件附著物\n" +4 "具體化錯誤:%s:母程序之widget-ID 是空白的\n" +5 "具體化錯誤:%s:無法將功能表具體化\n" +6 "具體化錯誤:物件必須有有效的名稱\n" +7 "具體化錯誤:%s:物件必須有 widget 等級\n" +8 "內部錯誤:計數不符合\n" +9 "錯誤:objxm_comp_get_subobj - 物件未 xmconfigured:%s\n" +10 "檔案夾" +11 "過濾器" +12 "鍵入檔名" +13 "更新" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/libAButil.msg b/cde/programs/localized/zh_TW.UTF-8/msg/libAButil.msg index 337b7f3bc..711a12800 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/libAButil.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/libAButil.msg @@ -9,10 +9,10 @@ $quote " $ The set number set below must be syncronized with the #define in utilP.h $set 202 -1 "ISTR”崷殦怉謽禨嵕ト渀僛ぇ蠆諟\n" -2 "ISTR”珜А⻌崷殦洠睮渀僛ぇ蠆諟\n" -3 "ISTR”崷殦奡襉忟渀僛ぇ蠆諟" -4 "蠡楶蠆諟" -5 "踽媝冈怐冈昋ⅰ" -6 "攜揧暐⑴" -7 "隓恄瞅絒" +1 "ISTR:配置到整數陣列時發生錯誤\n" +2 "ISTR:為字串配置空間時發生錯誤\n" +3 "ISTR:配置記憶體時發生錯誤" +4 "內部錯誤" +5 "遞迴式函式呼叫" +6 "不被許可" +7 "無法開啟" diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/libDtMail.msg b/cde/programs/localized/zh_TW.UTF-8/msg/libDtMail.msg index 7f7181907..a8e245e04 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/libDtMail.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/libDtMail.msg @@ -17,38 +17,38 @@ $ $ +ENOTICE $ @(#)libDtMail.msg 1.8 03 Nov 1994 $set 1 libDtMail API set -1 ゝ僛ぇズ蠆諟﹞ -2 栲堈攜怞淩 Bento 昡ス柁媢桾揧Б抻﹞ -3 栲堈唈ゥ渀棯纕柁昡ス揧Б抻﹞ -4 昡ス隓恄唈ゥ﹞ -5 昡ス岊攜怉圊﹞ -6 侇嗄奡襉忟攜冞﹜隓恄欹⺼謦汃﹞ -7 禋謦汃稌怉纂堈蠆諟柁鰱禨﹞ -8 睎閰箹媊沓暋泂纂堈儸媊沓暋泂蝝柁昡ス﹞ -9 衭忴柁麔淰攜Бョ﹞ -10 衭忴柁麔淰呥盻怞斿⑴藑籫眭冈柁瑧謜﹞ -11 DtMail 攜Бョ媢桾げ蠊﹞ -12 蠆諟廎擛隓淩﹞ -13 楙堈圊旂纂堈蠡屼柁鬊Б﹜⽁禕ッ瞅絒懼逑幺抻﹞ -14 ⅱ纂堈瑧ス嶂冈怞麔淰扢柁嬣蘋暐⑴﹞ -15 栲堈 ToolTalk 媢桾隓恄搢隉﹞ -16 睎柁衭忴揧謦汃ɵ峇蟟陃廕﹞ -17 囷え炟斕黫禋謦汃﹞ -18 栲堈昡ス隓恄Б抻﹞ -19 衭忴柁麔淰隓恄唈ゥ﹞ -20 欹⺼禋謦汃渀僛ぇ蠡楶蠆諟﹞ -21 隃⺼昡ス呥攜齬葰睎邴衭忴柁謦汃﹞s -22 扽罶涷麷倛縋蝒婽麷倛砨嗃﹞ -23 囷え炟吤黫鼲葎﹞ -24 瑧ス嶂冈梬扽儸蕍汃汒炟﹞ -25 挴泂柁嶂冈蕍汃攜Бョ﹞ -26 挴泂柁嶂冈蕍汃隓恄欹⺼衭忴柁謦汃﹞ -27 隃⺼柁嶂冈蕍汃ゝ齬葰禋謦汃﹞ -28 嶂冈梬攜諝痤罶涷麷倛﹞ -29 挴泂柁瑧踽⻏彴隓恄搢隉﹞ -30 瑧ス蒡踽⼇絫﹞ -31 MD5 麷伀奡磍縋媢桾蠡晥攜砨嗃﹞ -32 淩柁欹⺼漦嗢呥盻 "mail" +1 未發生任何錯誤。 +2 某個不具有效 Bento 物件的訊息被存取。 +3 某個建立時有問題的物件被存取。 +4 有物件無法建立。 +5 物件找不到值。 +6 系統記憶體不足,無法執行此操作。 +7 此項操作接收到一個錯誤的引數。 +8 您嘗試起始設定一個已起始設定過的物件。 +9 要求的檔案不存在。 +10 要求的檔案並非具此版可辨識格式的郵箱。 +11 DtMail 不存在訊息目錄。 +12 錯誤結構無效。 +13 這個值是一個內含的儲存,必須先開啟才能讀取。 +14 另一個郵件程式具有此檔案夾的寫入許可。 +15 某個 ToolTalk 訊息無法處理。 +16 您的要求被操作伺服器拒絕。 +17 使用者中斷此項操作。 +18 某個物件無法存取。 +19 要求的檔案無法建立。 +20 執行此項操作時發生內部錯誤。 +21 現行物件並不支援您所要求的操作。s +22 沒有資料類型與運送類型相符。 +23 使用者岔斷轉換。 +24 郵件程式庫沒有已製作完成者。 +25 指定的程式製作不存在。 +26 指定的程式製作無法執行要求的操作。 +27 現行的程式製作未支援此項操作。 +28 程式庫不認得此資料類型。 +29 指定的郵遞位址無法處理。 +30 郵件傳遞失敗。 +31 MD5 類別記號與訊息內容不相符。 +32 有效的執行群組並非 "mail" $ $ Strings from libDtMail/Common/DtMailValuesBuiltin.C diff --git a/cde/programs/localized/zh_TW.UTF-8/types/_common.dt.tmsg b/cde/programs/localized/zh_TW.UTF-8/types/_common.dt.tmsg index d5f54c57d..17fe13058 100644 --- a/cde/programs/localized/zh_TW.UTF-8/types/_common.dt.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/types/_common.dt.tmsg @@ -36,19 +36,19 @@ $ ---------------------------------------------------------------------------- $ $ * ACTIONS of FILETYPE $ -1 瞅絒 +1 開啟 $ -2 トパ +2 列印 $ -3 欹⺼ +3 執行 $ -4 (隓) +4 (無) $ -5 唈ゥ +5 建立 $ $ Message 6 is a common button label for many dialogs. $ -6 薚泂 +6 確定 $ $ Message 7 is used by many actions after all the output has been supplied $ to the user. It tells the user how to get rid of the window which has @@ -57,11 +57,11 @@ $ $ Translate 'Select Close or Exit from the window menu to close this window' $ only. $ -7 \\\\n*** 霘皕>槉嵺=衢逑玿斕藞謥>驨椲=迖>廎忒=髓驨椲槉嵺 *** +7 \\\\n*** 請從「視窗」功能表中選擇「關閉」或「結束」以關閉此視窗 *** $ -8 殦卼隃⺼槉嵺 +8 置於現行視窗 $ -9 瞅絒隞槉棷 +9 開啟新視區 $ $ Message 10: $ This Message is a header to every *.dt file. @@ -70,9 +70,9 @@ $ that it is a comment. Also, keep the \n\ at the end of each $ line. $ Don't translate /etc/dt/types. $ -10 # 麔淰⑴逑鞂揧鷋翯蝝⑩﹞ モ謽堈侇嗄錛惉䨣彶渀﹜\n\ -# 霘彶庍ョ麷ʊ柁 /etc/dt/types 罶涷梬麔淰斕﹜\n\ -# ゛攜衭彶庍ョ麔淰﹞ +10 # 此檔案可能會被覆蓋過去。 因此整個系統需做變更時,\n\ +# 請更改在類似的 /etc/dt/types 資料庫檔案中,\n\ +# 而不要更改在此檔案。 $ $ Message 11 and 12: $ These Messages are headers in every *.dt file used to break up @@ -80,15 +80,15 @@ $ the File into ACTIONS and DATATYPES. $ NOTE: make sure each line begins with a "# ". This indicates $ that it is a comment. $ -11 # 罶涷㪫迒 -12 # 棬汃 +11 # 資料屬性 +12 # 動作 $ $ Message 13: $ This is a title of a dialog invoked when an error occurs. Many actions $ invoke an information dialog when something the action needs is $ not present. $ -13 罶媢 +13 資訊 $ $ ---------------------------------------------------------------------------- $ Do not translate message 14. @@ -103,11 +103,11 @@ $ Message 15 is another commonly used message. $ ---------------------------------------------------------------------------- $ Message 15 - translate into 1 word with no blanks. $ -15 蹌藟 +15 編輯 $ -16 蠆諟 -17 か泂⻏昡ス怉罶涷麷倛邴鞜え柁棬汃, \\\n\ -髱篎罶涷麷倛隓恄伒怮鶈え﹞ +16 錯誤 +17 由定位物件到資料類型所調用的動作, \\\n\ +對該資料類型無法即刻應用。 $ $ $ ************************************************************************** @@ -125,12 +125,12 @@ $ Do not translate XXX in the messages "The XXX action ...". It is a $ defined Action name. Use \\\ at the end of the line if the message $ continues to the next line. $ ---------------------------------------------------------------------------- -1001 InvokeFILEMGR 棬汃絒棬麔淰\\\n\ - 磣隉炟 (dtfile 剟鷓嶂冈)﹞ -1002 InvokeDTPAD 棬汃絒棬痐譫磣隉侇嗄柁\\\n\ - 齪А蹌藟蟟 (dtpad 剟鷓嶂冈)﹞ -1003 InvokeMAILER 棬汃絒棬痐譫磣隉侇嗄柁\\\n\ - 瑧ス嶂冈 (dtmail 剟鷓嶂冈)﹞ +1001 InvokeFILEMGR 動作啟動檔案\\\n\ + 管理者 (dtfile 客戶程式)。 +1002 InvokeDTPAD 動作啟動桌上管理系統的\\\n\ + 文字編輯器 (dtpad 客戶程式)。 +1003 InvokeMAILER 動作啟動桌上管理系統的\\\n\ + 郵件程式 (dtmail 客戶程式)。 $ $ ************************************************************************** $ ************************************************************************** @@ -149,17 +149,17 @@ $ 2001 - Do not translate DT or '.dt' in the message. DT is a $ defined datatype name and it doesn't get translated and '.dt' $ is the filename pattern which matches this datatype. $ -2001 楙旂痐譫磣隉侇嗄罶涷梬麔淰﹜怞棬汃 \\\n\ - 昑罶涷麷倛柁泂氂﹞ 怬罶涷麷倛 \\\n\ - 磝珜 DT﹞ DT 麔淰柁眃麔ボ珜 '.dt'﹞ +2001 這是桌上管理系統資料庫檔案,具有動作 \\\n\ + 和資料類型的定義。 其資料類型 \\\n\ + 稱為 DT。 DT 檔案的附檔名為 '.dt'。 $ $ Messages 2002 - 2003 refer to the Reload Actions action which get used $ by the 'DT' datatype. $ -2002 适隞蟡蘋棬汃 +2002 重新載入動作 $ -2003 >适隞蟡蘋棬汃=鞂适隞蟡蘋棬汃﹝罶涷麷倛\\\n\ - 昑虳巖郖帣泂氂柁罶涷梬﹞ +2003 「重新載入動作」會重新載入動作、資料類型\\\n\ + 和前方面板定義的資料庫。 $ $ ---------------------------------------------------------------------------- $ Message 2004 refers to the FP (*.fp) datatype. @@ -168,9 +168,9 @@ $ 2004 - Do not translate FP or '.fp' in the message. FP is a $ defined datatype name and it doesn't get translated and '.fp' $ is the filename pattern which matches this datatype. $ -2004 楙旂痐譫磣隉侇嗄罶涷梬麔淰﹜怞虳巖郖帣\\\n\ - 崷殦柁泂氂﹞怬罶涷麷倛\\\n\ - ボ磝珜 FP﹞FP 麔淰柁棓麔ボ珜 '.fp'﹞ +2004 這是桌上管理系統資料庫檔案,具有前方面板\\\n\ + 配置的定義。其資料類型\\\n\ + 名稱為 FP。FP 檔案的副檔名為 '.fp'。 $ $ ---------------------------------------------------------------------------- $ Message 2005 refers to the DTFILE_FILE (file which starts with a .!) @@ -179,9 +179,9 @@ $ $ 2005 - Do not translate 'DTFILE_FILE' in the message. $ It is a defined datatype name and it doesn't get translated. $ -2005 楙旂麔淰磣隉炟囷え柁騿鰳麔淰﹜え髓砉Б栲咍\\\n\ - 崷殦罶媢﹞怬罶涷麷倛\\\n\ - ボ磝珜 DTFILE_FILE﹞ +2005 這是檔案管理者使用的隱藏檔案,用以保存某些\\\n\ + 配置資訊。其資料類型\\\n\ + 名稱為 DTFILE_FILE。 $ $ ---------------------------------------------------------------------------- $ Message 2006 refers to the DTKSH_SCRIPT (*.ds) datatype. @@ -190,8 +190,8 @@ $ 2006 - Do not translate 'DTKSH_SCRIPT' in the message. $ It is a defined datatype name and it $ doesn't get translated. Also, don't translate the word 'dtksh'. $ -2006 楙旂欹⺼麔﹜怞 'dtksh' \\\n\ - 杬麟碬﹞怬罶涷麷倛ボ磝珜 DTKSH_SCRIPT﹞ +2006 這是執行檔,具有 'dtksh' \\\n\ + 命令集。其資料類型名稱為 DTKSH_SCRIPT。 $ $ ---------------------------------------------------------------------------- $ Message 2007 refers to the DTKSH_CONV (*.dtsh) datatype. @@ -201,18 +201,18 @@ $ It is a defined datatype name and it doesn't get translated. $ Also, don't translate the word 'dtksh'. $ $ -2007 楙堈麔淰怞 'dtksh' 杬麟碬⑴囷え柁砅伈衢逑﹞ \\\n\ - 怬罶涷麷倛ボ磝珜 \\\n\ - DTKSH_CONV﹞ +2007 這個檔案具有 'dtksh' 命令集可使用的便利功能。 \\\n\ + 其資料類型名稱為 \\\n\ + DTKSH_CONV。 $ ---------------------------------------------------------------------------- $ Messages 2008 - 2009 refer to the Style Manager (Dtstyle) action $ -2008 ⼃倛冈穔磣隉炟 +2008 外型式樣管理者 $ $ 2009 - do not translate '(Dtstyle)' $ -2009 >⼃倛冈穔磣隉炟=(Dtstyle) 棬汃絒棬\\\n\ - 痐譫磣隉侇嗄柁⼃倛冈穔磣隉炟﹞ +2009 「外型式樣管理者」(Dtstyle) 動作啟動\\\n\ + 桌上管理系統的外型式樣管理者。 $ $ ---------------------------------------------------------------------------- $ Messages 2010 - 2011 refer to the DtHelpManager action @@ -223,18 +223,18 @@ $ $ $ 2011 - use the same word as Message 2010 to translate 'DtHelpManager' $ -2011 DtHelpManager 棬汃瞅絒煄嬬\\\n\ - 赮伢諰咭磣隉炟槉嵺﹞ +2011 DtHelpManager 動作開啟頂層\\\n\ + 輔助說明管理者視窗。 $ ---------------------------------------------------------------------------- $ Messages 2012 - 2013 refer to the OpenDtInto action $ -2012 痐譫磣隉侇嗄籙蘭 +2012 桌上管理系統簡介 $ $ 2013 - use the same word as Message 2012 to translate 'OpenDtIntro' $ -2013 痐譫磣隉侇嗄籙蘭棬汃䬷ざ柁赮伢諰咭晥忟﹜\\\n\ - 讓挭驨痐譫磣隉侇嗄柁籙痼蘭喿\\\n\ - 昑椕ヾ岍⼛柁諰咭﹞ +2013 桌上管理系統簡介動作顯示的輔助說明容體,\\\n\ + 包括有關桌上管理系統的簡單介紹\\\n\ + 和基本技巧的說明。 $ $ ---------------------------------------------------------------------------- $ Messages 2014 - 2015 refer to the FPHelp action @@ -245,8 +245,8 @@ $ $ $ 2015 - use the same word as Message 2014 to translate 'FPHelp' $ -2015 FPHELP 棬汃頝踛䬷ざ虳巖郖帣\\\n\ - 赮伢諰咭晥忟﹞ +2015 FPHELP 動作圖像顯示前方面板\\\n\ + 輔助說明容體。 $ $ ---------------------------------------------------------------------------- $ Messages 2016 - 2017 refer to the LockDisplay action @@ -257,9 +257,9 @@ $ $ $ 2017 - use the same word as Message 2016 to translate 'LockDisplay' $ -2017 LockDisplay 棬汃孍泂齡汃袘﹞\\\n\ - ⽁禕囷え炟迖淂湅謑\\\n\ - 懼⑴箾崽齡汃袘柁孍泂﹞ +2017 LockDisplay 動作鎖定工作站。\\\n\ + 必須有使用者或根密碼\\\n\ + 才可解除工作站的鎖定。 $ $ ---------------------------------------------------------------------------- $ Messages 2018 - 2019 refer to the ExitSession action @@ -270,102 +270,102 @@ $ $ $ 2019 - use the same word as Message 2018 to translate 'ExitSession' $ -2019 ExitSession 棬汃廎忒囷え炟柁痐譫磣隉侇嗄\\\n\ - 瞃栠汃鞄﹜呥䬷ざ僳蘋糬魦﹞\\\n\ - ヵ峈衭瞅沓ⅱ纂堈瞃栠汃鞄﹜囷え炟⽁禕テ僳蘋﹞ +2019 ExitSession 動作結束使用者的桌上管理系統\\\n\ + 階段作業,並顯示登入螢幕。\\\n\ + 如果要開始另一個階段作業,使用者必須再登入。 $ $ ---------------------------------------------------------------------------- $ Messages 2020 - 2021 refer to the ReloadApps action. Reload apps executes $ the action 'ReloadActions' then runs the clients dtappgather and $ dthelpgen. $ -2020 适隞蟡蘋鶈え嶂冈 +2020 重新載入應用程式 $ -2021 >适隞蟡蘋鶈え嶂冈=棬汃适隞蟡蘋棬汃﹝\\\n\ - 罶涷麷倛昑虳巖郖帣泂氂柁\\\n\ - 罶涷梬 ﹞ +2021 「重新載入應用程式」動作重新載入動作、\\\n\ + 資料類型和前方面板定義的\\\n\ + 資料庫 。 $ $ ---------------------------------------------------------------------------- $ Messages 2022 - 2023 refer to the Create Action (Dtcreate) action. $ -2022 唈ゥ棬汃 +2022 建立動作 $ $ 2023 - do not translate '(Dtcreate)'. $ -2023 >唈ゥ棬汃= (Dtcreate) 欹⺼唈ゥ棬汃鶈え嶂冈﹞\\\n\ - 囷え唈ゥ棬汃髓唈ゥ鶈え嶂冈柁\\\n\ - 棬汃昑罶涷麷倛泂氂﹞ +2023 「建立動作」 (Dtcreate) 執行建立動作應用程式。\\\n\ + 使用建立動作以建立應用程式的\\\n\ + 動作和資料類型定義。 $ $ ---------------------------------------------------------------------------- $ Messages 2024 - 2025 refer to the Edit Dtwmrc (DtwmrcEdit) action. $ -2024 蹌藟 Dtwmrc +2024 編輯 Dtwmrc $ $ 2025 - Don't translate '\$HOME/.dt/dtwmrc', 'EDITOR', or (DtwmrcEdit). $ -2025 >蹌藟 Dtwmrc=(DtwmrcEdit) 棬汃鞂ョ睎柁侇嗄蹌藟蟟\\\n\ - (EDITOR 蘄頨䨣禨挴泂柁蹌藟蟟)\\\n\ - 斕瞅絒 $HOME/.dt/dtwmrc 麔淰﹞\\\n\ - ヵ峈 $HOME/.dt/dtwmrc 攜Бョ﹜\\\n\ - 棬汃鞂髓闀蕍 /usr/dt/config//sys.dtwmrc \\\n\ - 柁巖冈唈ゥ篎麔淰﹞撋睎鬊Б\\\n\ - 麔淰呥欏瞅蹌藟蟟悒﹜⽁禕\\\n\ - 皕齡汃洠睮衢逑玿藞謥适隞絒棬齡汃洠睮磣隉炟﹜\\\n\ - 髓テ絒棬⼓﹞ +2025 「編輯 Dtwmrc」(DtwmrcEdit) 動作會在您的系統編輯器\\\n\ + (EDITOR 環境變數指定的編輯器)\\\n\ + 中開啟 $HOME/.dt/dtwmrc 檔案。\\\n\ + 如果 $HOME/.dt/dtwmrc 不存在,此\\\n\ + 動作會以複製 /usr/dt/config//sys.dtwmrc \\\n\ + 的方式建立該檔案。當您儲存\\\n\ + 檔案並離開編輯器後,必須\\\n\ + 從工作空間功能表選擇重新啟動工作空間管理者,\\\n\ + 以再次啟動它。 $ $ ---------------------------------------------------------------------------- $ Messages 2026 - 2027 refer to the Mailer (Dtmail) action. $ $ 2026 - translate into 1 word with no blanks. $ -2026 瑧ス嶂冈 +2026 郵件程式 $ $ 2027 - do not translate '(Dtmail)'. $ -2027 >瑧ス嶂冈=(Dtmail) 棬汃欹⺼痐譫磣隉侇嗄柁\\\n\ - 瑧ス嶂冈鶈え嶂冈﹞ +2027 「郵件程式」(Dtmail) 動作執行桌上管理系統的\\\n\ + 郵件程式應用程式。 $ $ ---------------------------------------------------------------------------- $ Messages 2028 - 2029 refer to the 'Dtcalc' action. $ $ 2028 - translate into 1 word with no blanks. $ -2028 衶磭鞥 +2028 計算機 $ $ 2029 - Don't translate '(Dtcalc)' $ -2029 >衶磭鞥=(Dtcalc) 棬汃欹⺼痐譫磣隉侇嗄柁\\\n\ - 衶磭鞥鶈え嶂冈﹞ +2029 「計算機」(Dtcalc) 動作執行桌上管理系統的\\\n\ + 計算機應用程式。 $ $ ---------------------------------------------------------------------------- $ Messages 2030 - 2031 refer to the Terminal (Dtterm) action. $ $ 2030 - translate into 1 word with no blanks. $ -2030 嗈磞鞥 +2030 終端機 $ $ 2031 - do not translate '(Dtterm)'. $ -2031 >嗈磞鞥=(Dtterm) 棬汃欹⺼痐譫磣隉侇嗄柁嗈磞鞥\\\n\ - 篲鶅鶈え嶂冈﹞ +2031 「終端機」(Dtterm) 動作執行桌上管理系統的終端機\\\n\ + 模擬應用程式。 $ $ ---------------------------------------------------------------------------- $ Messages 2032 - 2034 refer to the Icon Editor (Dticon) action. $ -2032 頝踛蹌藟蟟 +2032 圖像編輯器 $ $ ---------------------------------------------------------------------------- $ Message 2033. Do not remove the ':'. $ This message prompts the user for which file to edit when invoking $ the IconEdit action. $ ---------------------------------------------------------------------------- -2033 袺蹌藟柁頝踛麔淰: +2033 欲編輯的圖像檔案: $ $ 2034 - do not translate '(Dticon)'. $ -2034 >頝踛蹌藟蟟=(Dticon) 棬汃欹⺼痐譫磣隉侇嗄柁頝踛\\\n\ - 蹌藟蟟﹞ 囷え頝踛蹌藟蟟髓唈ゥ轡蹌藟\\\n\ - ⻏蠣旃晛昑頝袓旃晛柁憵踛麔淰﹞ +2034 「圖像編輯器」(Dticon) 動作執行桌上管理系統的圖像\\\n\ + 編輯器。 使用圖像編輯器以建立及編輯\\\n\ + 位元映射和圖素映射的影像檔案。 $ $ ---------------------------------------------------------------------------- $ Messages 2035 - 2037 refer to the '(None)' action. @@ -375,44 +375,44 @@ $ (i.e. runs) the (None) action. Message 2034 is the text of the message, $ and Message 2036 is the title of the dialog. NOTE: the '\\\\n' inserts $ a newline into the message. Put the newline where you feel appropriate. $ -2035 篎麷倛柁麔淰隓恄棬汃﹞ -2036 隓恄棬汃﹞ +2035 該類型的檔案無法動作。 +2036 無法動作。 $ $ 2037 - use the same word as Message 4 to translate '(None)'. $ -2037 (隓) 棬汃旂纂笱伀柁棬汃﹜え髓\\\n\ - 夼洁栲纂笱眻柁罶涷麷倛\\\n\ - 隓恄棬汃﹞ +2037 (無) 動作是一特別的動作,用以\\\n\ + 告知某一特殊的資料類型\\\n\ + 無法動作。 $ $ ---------------------------------------------------------------------------- $ Messages 2038 - 2040 refer to the Watch Errors (DttermErrorlog)action. $ -2038 愔鉡蠆諟 +2038 偵測錯誤 $ $ Message 2039. This is the title of the terminal window which displays the $ contents of the errorlog. Blanks are ok. $ -2039 愔鉡蠆諟 +2039 偵測錯誤 $ $ 2040 - use the same word as Message 2038 to translate 'WatchErrors'. Also, $ don't translate the string '\$HOME/.dt/errorlog'. $ -2040 >愔鉡蠆諟=棬汃瞅絒纂堈嗈磞鞥槉嵺﹜挼㶴䬷ざ蠆諟\\\n\ - 僳蠊麔 $HOME/.dt/errorlog 柁蠡晥﹞\\\n\ - ヵ峈渿槉嵺醷麵﹜\\\n\ - 撋⼓稌怉蠆諟渀﹜\\\n\ - 鞂⺌棬ャ艀琣槉嵺﹞ +2040 「偵測錯誤」動作開啟一個終端機視窗,持續顯示錯誤\\\n\ + 登錄檔 $HOME/.dt/errorlog 的內容。\\\n\ + 如果將視窗縮小,\\\n\ + 當它接收到錯誤時,\\\n\ + 會自動回復成正常視窗。 $ $ ---------------------------------------------------------------------------- $ Messages 2041 - 2042 refer to the Types and Actions (Dttypes) action(s). $ -2041 麷倛昑棬汃 +2041 類型和動作 $ $ 2042 - do not translate dttypes or '(Dttypes)'. $ -2042 >麷倛昑棬汃=(Dttypes) 欹⺼ \\\n\ - 'dttypes' 襬え嶂冈﹜⑴菙坯棬汃昑罶涷\\\n\ - 麷倛罶涷梬柁棯纕粡箾罶媢﹞ +2042 「類型和動作」(Dttypes) 執行 \\\n\ + 'dttypes' 公用程式,可提供動作和資料\\\n\ + 類型資料庫的問題排解資訊。 $ $ ---------------------------------------------------------------------------- $ Messages 2043 - 2047 refer to the 'NoPrint' action. @@ -422,25 +422,25 @@ $ This Message is a header which points out the default NoPrint $ Action. Don't translate the word 'NoPrint'. $ NOTE: make sure the line begins with a "# ". This indicates $ that it is a comment. -2043 # 楙旂蠡泂柁 'NoPrint' 棬汃﹞ +2043 # 這是內定的 'NoPrint' 動作。 $ $ 2044 - translate into 1 word with no blanks. $ -2044 隓トパ +2044 無列印 $ $ Messages 2045 - 2046 are in the dialog that gets posted when a user selects $ (i.e. runs) the NoPrint action. Message 2045 is the text of the message, $ and Message 2046 is the title of the dialog. $ -2045 隓恄トパ篎麔淰麷倛﹞ -2046 隓恄トパ +2045 無法列印該檔案類型。 +2046 無法列印 $ $ 2047 - use the same word as Message 2044 to translate 'NoPrint'. $ -2047 NoPrint 棬汃罐隃蠆諟髱緷涺﹜\\\n\ - 玿ざ囷え炟裱トパ柁麔淰\\\n\ - 珜隓泂氂トパ棬汃柁\\\n\ - 罶涷麷倛﹞ +2047 NoPrint 動作出現錯誤對話框,\\\n\ + 表示使用者想列印的檔案\\\n\ + 為無定義列印動作的\\\n\ + 資料類型。 $ $ ---------------------------------------------------------------------------- $ Message 2048 @@ -448,15 +448,15 @@ $ This Message is a header which points out the default Open $ Action. Translate the word 'Open' to what message number 1 is. $ NOTE: make sure the line begins with a "# ". This indicates $ that it is a comment. -2048 # 楙旂蠡泂柁瞅絒棬汃﹞ +2048 # 這是內定的開啟動作。 $ $ ---------------------------------------------------------------------------- $ Messages 2049 - 2050 refer to the 'RestorePanel' action. $ -2049 ャ艀虳巖郖帣 +2049 回復前方面板 $ -2050 >ャ艀虳巖郖帣=棬汃ャ艀\\\n\ - 虳巖郖帣蠡泂昲鳷﹞ +2050 「回復前方面板」動作回復\\\n\ + 前方面板成內定狀態。 $ $ Messages 2051 - 2052 refer to the Save Session action. 2051 is the $ action definition's LABEL and 2052 is the action's DESCRIPTION. @@ -485,9 +485,9 @@ $ 3001 - Do not translate BM, '.xbm', or '.bm' in the message. BM is a $ defined datatype name and it doesn't get translated and '.bm' $ and '.xbm' are the filename patterns which match this datatype. $ -3001 篎麔淰柁罶涷珜 X11 ⻏蠣旃晛\\\n\ - 眭冈﹞怬罶涷麷倛ボ磝珜 BM﹞ BM 麔淰\\\n\ - 柁棓麔ボ珜 '.bm' 迖 '.xbm'﹞ +3001 該檔案的資料為 X11 位元映射\\\n\ + 格式。其資料類型名稱為 BM。 BM 檔案\\\n\ + 的副檔名為 '.bm' 或 '.xbm'。 $ ---------------------------------------------------------------------------- $ Message 3002 is the description of the PM (PixMap) datatype. $ 3002 - Do not translate PM, '.pm', '.xpm' or "! XPM2" in the message. @@ -495,10 +495,10 @@ $ PM is a defined datatype name and it doesn't get translated $ and '.pm', '.xpm', and "! XPM2" are the filename and CONTENT patterns $ used to match this datatype. $ -3002 楙旂怞ロ瞗⺪痝憵踛柁頝袓旃晛麔淰﹞\\\n\ - 怬罶涷麷倛ボ磝珜 PM﹞ PM 麔淰\\\n\ - 柁棓麔ボ珜 '.pm' 迖 '.xpm'﹜迖ョ蠡晥斕 \\\n\ - "! XPM2" А蠣﹞ +3002 這是具有多種色彩影像的圖素映射檔案。\\\n\ + 其資料類型名稱為 PM。 PM 檔案\\\n\ + 的副檔名為 '.pm' 或 '.xpm',或在內容中有 \\\n\ + "! XPM2" 字元。 $ $ ---------------------------------------------------------------------------- $ Message 3003 is the description of the PCL (Printer Control Language) @@ -507,22 +507,22 @@ $ 3003 - Do not translate PCL, or '.pcl' in the message. $ PCL is a defined datatype name and it doesn't get translated $ and '.pcl' is the filename patterns used to match this datatype. $ -3003 篎麔淰柁罶涷眭冈珜\\\n\ - パ玿鞥祰戔諴侔 (PCL)﹞怬罶涷麷倛\\\n\ - ボ磝珜 PCL. PCL 麔淰柁棓麔ボ珜 '.pcl'﹞ +3003 該檔案的資料格式為\\\n\ + 印表機控制語言 (PCL)。其資料類型\\\n\ + 名稱為 PCL. PCL 檔案的副檔名為 '.pcl'。 $ $ Message 3004 is the description of the PCL (Printer Control Language) $ 'Open' action. $ 3004 - Do not translate PCL in the message. $ -3004 睎柁侇嗄隓恄栯砫 PCL 麔淰﹞\\\n\ - 蚍衭瞅絒楙堈麔淰衧鞂罐隃\\\n\ - 蠆諟髱緷涺﹞ +3004 您的系統無法查看 PCL 檔案。\\\n\ + 若要開啟這個檔案則會出現\\\n\ + 錯誤對話框。 $ $ 3005 - This message is used by the PCL datatype. It puts out this error $ message when a user tries to "Open" a PCL file. $ -3005 隓恄瞅絒 - 扽 PCL 髲砫蟟﹞ +3005 無法開啟 - 沒有 PCL 察看器。 $ $ ---------------------------------------------------------------------------- $ Message 3006 is the description of the PS (PostScript) datatype. @@ -531,21 +531,21 @@ $ PS is a defined datatype name and it doesn't get translated $ and '.ps', '.PS', and "%!" are the filename and CONTENT patterns $ used to match this datatype. $ -3006 篎麔淰珜 postscript 罶涷﹞怬罶涷麷倛\\\n\ - ボ磝珜 PS﹞PS 麔淰柁棓麔ボ珜 '.ps' \\\n\ - 迖 '.PS'﹜迖屼 "%!" А蠣﹞ +3006 該檔案為 postscript 資料。其資料類型\\\n\ + 名稱為 PS。PS 檔案的副檔名為 '.ps' \\\n\ + 或 '.PS',或含有 "%!" 字元。 $ $ Message 3007 is obsolete. $ Message 3007 is the description of the PS (PostScript) 'Open' action. $ -3007 睎柁侇嗄隓恄栯砫 postscript 麔淰﹞\\\n\ - 蚍衭瞅絒楙堈麔淰衧鞂罐隃\\\n\ - 蠆諟髱緷涺﹞ +3007 您的系統無法查看 postscript 檔案。\\\n\ + 若要開啟這個檔案則會出現\\\n\ + 錯誤對話框。 $ $ 3008 - This message is used by the Postscript datatype. It puts out an error $ message when a user tries to "Open" a postscript file. $ -3008 隓恄瞅絒 - 扽 Postscript 髲砫蟟﹞ +3008 無法開啟 - 沒有 Postscript 察看器。 $ $ ---------------------------------------------------------------------------- $ Message 3009 is the description of the AUDIO datatype. @@ -555,27 +555,27 @@ $ translated and '.snd', '.wav', '.au', '.l16', '.lo8', '.al', $ '.u' and '.snd' are the filename $ and CONTENT patterns used to match this datatype. $ -3009 楙堈麔淰珜鐖郣罶涷﹞ 怬罶涷麷倛\\\n\ - 磝珜 AUDIO﹞ AUDIO 麔淰柁眃麔ボ\\\n\ - 珜 '.snd'﹝'.wav' 迖 '.au'﹜迖屼\\\n\ - ".snd" А蠣﹞ +3009 這個檔案為聲音資料。 其資料類型\\\n\ + 稱為 AUDIO。 AUDIO 檔案的附檔名\\\n\ + 為 '.snd'、'.wav' 或 '.au',或含有\\\n\ + ".snd" 字元。 $ $ Message 3010 is the description of the AUDIO 'Open' action. $ -3010 篎棬汃鞂礂勂纂堈鐖郣麔淰﹞ +3010 該動作會播放一個聲音檔案。 $ $ Message 3011 is the description of the AUDIO 'Play' action. $ -3011 篎棬汃鞂礂勂纂堈鐖郣麔淰﹞ +3011 該動作會播放一個聲音檔案。 $ $ 3012 - translate into 1 word with no blanks. This is the AUDIO 'Play' action. $ -3012 礂勂 +3012 播放 $ $ 3013 - This message is used by the AUDIO datatype. It is the error $ message when a user tries to "Open" or "Play" an AUDIO file. $ -3013 隓恄瞅絒迖礂勂 - 扽郣簎礂勂嶂冈﹞ +3013 無法開啟或播放 - 沒有音樂播放程式。 $ $ AUDIO Messages continued below starting with Message 3031 $ @@ -586,21 +586,21 @@ $ message. TIFF is a defined datatype name and it doesn't get $ translated and '.TIFF', '.TIF', '.tiff', and '.tif' are the filename $ patterns used to match this datatype. $ -3014 篎麔淰珜 TIFF 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 TIFF﹞ TIFF 麔淰柁\\\n\ - 棓麔ボ珜 '.TIFF'﹝'.TIF'﹝'.tiff' 迖 '.tif'﹞ +3014 該檔案為 TIFF 格式的圖形影像。\\\n\ + 其資料類型名稱為 TIFF。 TIFF 檔案的\\\n\ + 副檔名為 '.TIFF'、'.TIF'、'.tiff' 或 '.tif'。 $ $ Message 3015 is obsolete. $ Message 3015 is the description of the TIFF 'Open' action. $ -3015 睎柁侇嗄扽菙坯 TIFF 髲砫蟟﹞\\\n\ - 蚍衭瞅絒楙堈麔淰衧鞂罐隃\\\n\ - 蠆諟髱緷涺﹞ +3015 您的系統沒有提供 TIFF 察看器。\\\n\ + 若要開啟這個檔案則會出現\\\n\ + 錯誤對話框。 $ $ 3016 - This message is used by the TIFF datatype. It is the error $ message when a user tries to "Open" a TIFF file. $ -3016 隓恄瞅絒 - 扽 TIFF 麔淰髲砫蟟﹞ +3016 無法開啟 - 沒有 TIFF 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Message 3017 is the description of the JPEG datatype. @@ -609,22 +609,22 @@ $ message. JPEG is a defined datatype name and it doesn't get $ translated and '.JPEG', '.jpg', '.jpeg', and '.JPG' are the filename $ patterns used to match this datatype. $ -3017 篎麔淰珜 JPEG 犧葎麔淰眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 \\\n\ - JPEG﹞ JPEG 麔淰柁棓麔ボ珜 '.JPEG'﹝\\\n\ - '.jpg'﹝'.jpeg' 迖 '.JPG'﹞ +3017 該檔案為 JPEG 互換檔案格式的圖形影像。\\\n\ + 其資料類型名稱為 \\\n\ + JPEG。 JPEG 檔案的副檔名為 '.JPEG'、\\\n\ + '.jpg'、'.jpeg' 或 '.JPG'。 $ $ Message 3018 is obsolete. $ Message 3018 is the description of the JPEG 'Open' action. $ -3018 睎柁侇嗄扽菙坯 JPEG 髲砫蟟﹞\\\n\ - 惉衭瞅絒楙堈麔淰衧鞂罐隃\\\n\ - 蠆諟髱緷涺﹞ +3018 您的系統沒有提供 JPEG 察看器。\\\n\ + 做要開啟這個檔案則會出現\\\n\ + 錯誤對話框。 $ $ 3019 - This message is used by the JPEG datatype. It is the error $ message when a user tries to "Open" a JPEG file. $ -3019 隓恄瞅絒 - 扽 JPEG 麔淰髲砫蟟﹞ +3019 無法開啟 - 沒有 JPEG 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Message 3020 is the description of the MPEG datatype. @@ -633,21 +633,21 @@ $ message. MPEG is a defined datatype name and it doesn't get $ translated and '.MPEG', '.mpg', '.mpeg', and '.MPG' are the filename $ patterns used to match this datatype. $ -3020 篎麔淰屼 MPEG 犧葎麔淰眭冈柁頝夆憵踛諔憵﹞\\\n\ - 怬罶涷麷倛ボ磝珜 \\\n\ - MPEG﹞ MPEG 麔淰柁棓麔ボ珜 \\\n\ - '.MPEG'﹝'.mpg'﹝'.mpeg' 迖 '.MPG'﹞ +3020 該檔案含 MPEG 互換檔案格式的圖形影像電影。\\\n\ + 其資料類型名稱為 \\\n\ + MPEG。 MPEG 檔案的副檔名為 \\\n\ + '.MPEG'、'.mpg'、'.mpeg' 或 '.MPG'。 $ $ Message 3021 is the description of the MPEG 'Open' action. $ -3021 睎柁侇嗄扽菙坯 MPEG 髲砫蟟﹞\\\n\ - 蚍衭瞅絒楙堈麔淰衧鞂罐隃\\\n\ - 蠆諟髱緷涺﹞ +3021 您的系統沒有提供 MPEG 察看器。\\\n\ + 若要開啟這個檔案則會出現\\\n\ + 錯誤對話框。 $ 3022 - This message is used by the MPEG datatype. It is the error $ message when a user tries to "Open" a MPEG file. $ -3022 隓恄瞅絒 - 扽 MPEG 礂勂嶂冈﹞ +3022 無法開啟 - 沒有 MPEG 播放程式。 $ $ ---------------------------------------------------------------------------- $ Message 3023 is the description of the GIF datatype. @@ -656,22 +656,22 @@ $ message. GIF is a defined datatype name and it doesn't get $ translated and '.GIF', '.gif', "GIF87a", and "GIF89a" are the filename $ or CONTENT patterns used to match this datatype. $ -3023 篎麔淰珜 GIF 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 GIF﹞ GIF 麔淰柁\\\n\ - 棓麔ボ珜 .gif 迖 .GIF 迖屼 \\\n\ - "GIF87a" 迖 "GIF89a" А蠣﹞ +3023 該檔案為 GIF 格式的圖形影像。\\\n\ + 其資料類型名稱為 GIF。 GIF 檔案的\\\n\ + 副檔名為 .gif 或 .GIF 或含有 \\\n\ + "GIF87a" 或 "GIF89a" 字元。 $ $ Message 3024 is obsolete. $ Message 3024 is the description of the GIF 'Open' action. $ -3024 睎柁侇嗄扽菙坯 GIF 髲砫蟟﹞\\\n\ - 蚍衭瞅絒楙堈麔淰衧鞂罐隃\\\n\ - 蠆諟髱緷涺﹞ +3024 您的系統沒有提供 GIF 察看器。\\\n\ + 若要開啟這個檔案則會出現\\\n\ + 錯誤對話框。 $ $ 3025 - This message is used by the GIF datatype. It is the error $ message when a user tries to "Open" a GIF file. $ -3025 隓恄瞅絒 - 扽 GIF 麔淰髲砫蟟﹞ +3025 無法開啟 - 沒有 GIF 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Message 3026 is the description of the README datatype. @@ -680,12 +680,12 @@ $ message. README is a defined datatype name and it doesn't get $ translated and READ and ME are the parts of the filename $ pattern used to match this datatype. $ -3026 麔淰珜驨げ虳麔淰扢蠡麔淰 \\\n\ - 罶媢柁齪А麔﹞ 怬罶涷麷倛\\\n\ - 磝珜 README﹞ README 麔淰\\\n\ - 柁瞅韝珜 READ﹝眃麔ボ珜 ME﹜\\\n\ - 斕睮躂暐躂暐扽А蠣﹜\\\n\ - 騰麵嬣攜俀﹞ +3026 此檔案為有關目前檔案夾內檔案 \\\n\ + 資訊的文字檔。 其資料類型\\\n\ + 稱為 README。 README 檔案\\\n\ + 的開頭為 READ、附檔名為 ME,\\\n\ + 中間也許有也許沒有字元,\\\n\ + 大小寫不拘。 $ $ ---------------------------------------------------------------------------- $ Message 3027 is the description of the HTML datatype. @@ -694,11 +694,11 @@ $ message. HTML is a defined datatype name and it doesn't get $ translated '.html', "", or "" are used as filename $ and CONTENT patterns which match this data type. $ -3027 篎麔淰珜齪А麔﹜屼 World Wide Web 柁 \\\n\ - Hyper-Text Markup 諴侔﹞怬罶涷\\\n\ - 麷倛ボ磝珜 HTML﹞ HTML 麔淰柁棓麔ボ\\\n\ - 珜 '.html'﹜迖屼 "" \\\n\ - 迖 "" А蠣﹞ +3027 該檔案為文字檔,含 World Wide Web 的 \\\n\ + Hyper-Text Markup 語言。其資料\\\n\ + 類型名稱為 HTML。 HTML 檔案的副檔名\\\n\ + 為 '.html',或含 "" \\\n\ + 或 "" 字元。 $ $ ---------------------------------------------------------------------------- $ Message 3028 is the description of the RICHTEXT datatype. @@ -707,10 +707,10 @@ $ message. RICHTEXT is a defined datatype name and it doesn't get $ translated '.rt' is used as filename pattern which matches $ this data type. $ -3028 麔淰珜齪А麔﹜屼ロ瞗А倛\\\n\ - 泂氂轡覂齪А﹞ 怬罶涷\\\n\ - 麷倛磝珜 RICHTEXT﹞ RICHTEXT 麔淰柁眃麔ボ\\\n\ - 珜 '.rt'﹞ +3028 此檔案為文字檔,含多種字型\\\n\ + 定義及純文字。 其資料\\\n\ + 類型稱為 RICHTEXT。 RICHTEXT 檔案的附檔名\\\n\ + 為 '.rt'。 $ $ ---------------------------------------------------------------------------- $ Message 3029 is the description of the MSDOS_EXE datatype. @@ -719,10 +719,10 @@ $ message. MSDOS_EXE is a defined datatype name and it doesn't get $ translated and '.exe' and '.EXE' are the parts of the filename $ pattern used to match this datatype. $ -3029 篎麔淰珜欹⺼麔﹜⑴ョ MSDOS 砨晥\\\n\ - 柁堈藺諔瑼譫欹⺼﹞ 怬罶涷\\\n\ - 麷倛ボ磝珜 MSDOS_EXE﹞ MSDOS_EXE 麔淰\\\n\ - 柁棓麔ボ珜 '.exe' 迖 '.EXE'﹞ +3029 該檔案為執行檔,可在 MSDOS 相容\\\n\ + 的個人電腦上執行。 其資料\\\n\ + 類型名稱為 MSDOS_EXE。 MSDOS_EXE 檔案\\\n\ + 的副檔名為 '.exe' 或 '.EXE'。 $ $ ---------------------------------------------------------------------------- $ Message 3030 is the description of the UIL datatype. @@ -731,91 +731,91 @@ $ message. UIL is a defined datatype name and it doesn't get $ translated and '.uil' and '.UIL' are the parts of the filename $ pattern used to match this datatype. $ -3030 楙旂纂堈齪А麔﹜蠡屼 UIL 箾㾀蟟⑴\\\n\ - え坭唈ゥ纂堈 Motif 囷え炟蘭郖柁婘沓\\\n\ - 嶂冈謑﹞ UIL 麔淰柁棓麔ボ珜 '.uil' 迖 \\\n\ - '.UIL'﹞ +3030 這是一個文字檔,內含 UIL 解譯器可\\\n\ + 用來建立一個 Motif 使用者介面的原始\\\n\ + 程式碼。 UIL 檔案的副檔名為 '.uil' 或 \\\n\ + '.UIL'。 $ $ ---------------------------------------------------------------------------- $ Message 3031 is the description of the 'Audio Editor' action. $ -3031 篎棬汃鞂絒棬鐖媢蹌藟蟟﹞ +3031 該動作會啟動聲訊編輯器。 $ $ 3032 - This is the 'Audio Editor' action label. $ -3032 鐖媢蹌藟蟟 +3032 聲訊編輯器 $ $ 3033 - This message is used by the AUDIO datatype. It is the error $ message when a user tries to "Edit" an AUDIO file. $ -3033 隓恄 '蹌藟' - 湄肌鐖媢蹌藟蟟⑴え﹞ +3033 無法 '編輯' - 没有聲訊編輯器可用。 $ $ Message 3034 is the description of the 'Audio' action. $ -3034 篎棬汃鞂絒棬鐖媢祰戔郖帣﹞ +3034 該動作會啟動聲訊控制面板。 $ $ 3035 - This is the 'Audio' action label. $ -3035 鐖媢 +3035 聲訊 $ $ 3036 - This message is used by the 'Audio' action. It is the error $ message when a user tries to start the audio control panel. $ -3036 睎柁侇嗄湄肌菙坯鐖媢祰戔郖帣﹞ +3036 您的系統没有提供聲訊控制面板。 $ $ ---------------------------------------------------------------------------- $ Message 3037 is the description of the 'ImageView' action. $ -3037 篎棬汃鞂絒棬憵踛髲砫嶂冈﹞ +3037 該動作會啟動影像察看程式。 $ $ 3038 - This is the 'ImageView' action label. $ -3038 憵踛髲砫 +3038 影像察看 $ $ 3039 - This message is used by ImageView 'Audio' action. It is the error $ message when a user tries to start the image viewer. $ -3039 睎柁侇嗄湄肌菙坯憵踛髲砫嶂冈﹞ +3039 您的系統没有提供影像察看程式。 $ $ ---------------------------------------------------------------------------- $ Message 3040 is the description of the EPS (Encapsulated PostScript) datatype. $ 3040 - Do not translate 'PS', 'EPS' or'.eps' in the message. $ -3040 篎麔淰蠡屼髓 Encapsulated PS 眭冈鬊Б\\\n\ - 柁詗ポ齪А昑頝夆﹞ 怬罶涷麷倛ボ磝珜 EPS﹞\\\n\ - EPS 麔淰柁棓麔ボ珜 '.eps'﹞ +3040 該檔案內含以 Encapsulated PS 格式儲存\\\n\ + 的混合文字和圖形。 其資料類型名稱為 EPS。\\\n\ + EPS 檔案的副檔名為 '.eps'。 $ $ ---------------------------------------------------------------------------- $ Message 3041 is the description of the IMG datatype. $ 3041 - Do not translate 'IMG', '.img', '.IMG' or '.Img' in the message. $ -3041 篎麔淰蠡屼髓 IMG 眭冈鬊Б柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 IMG﹞ IMG 麔淰\\\n\ - 柁棓麔ボ珜 '.img'﹝ '.IMG' 迖 '.Img'﹞ +3041 該檔案內含以 IMG 格式儲存的圖形\\\n\ + 影像。 其資料類型名稱為 IMG。 IMG 檔案\\\n\ + 的副檔名為 '.img'、 '.IMG' 或 '.Img'。 $ $ ---------------------------------------------------------------------------- $ Message 3042 is the description of the PCX datatype. $ 3042 - Do not translate 'PCX', '.pcx', '.PCX' or '.Pcx' in the message. $ -3042 篎麔淰蠡屼髓 PCX 眭冈鬊Б柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 PCX﹞ PCX 麔淰\\\n\ - 柁棓麔ボ珜 '.pcx'﹝ '.PCX' 迖 '.Pcx'﹞ +3042 該檔案內含以 PCX 格式儲存的圖形\\\n\ + 影像。 其資料類型名稱為 PCX。 PCX 檔案\\\n\ + 的副檔名為 '.pcx'、 '.PCX' 或 '.Pcx'。 $ $ ---------------------------------------------------------------------------- $ Message 3043 is the description of the BMP datatype. $ 3043 - Do not translate 'BMP', '.bmp', '.BMP' or '.Bmp' in the message. $ -3043 篎麔淰蠡屼髓 BMP 眭冈鬊Б柁\\\n\ - 頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 BMP﹞ BMP 麔\\\n\ - 淰柁棓麔ボ珜 '.bmp'﹝ '.BMP' 迖 '.Bmp'﹞ +3043 該檔案內含以 BMP 格式儲存的\\\n\ + 圖形影像。 其資料類型名稱為 BMP。 BMP 檔\\\n\ + 案的副檔名為 '.bmp'、 '.BMP' 或 '.Bmp'。 $ $ ---------------------------------------------------------------------------- $ Message 3044 is the description of the BMF datatype. $ 3044 - Do not translate 'BMF' or '.bmf' in the message. $ -3044 篎麔淰蠡屼髓 Starbase 眭冈鬊Б\\\n\ - 柁頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 BMF﹞\\\n\ - BMF 麔淰柁棓麔ボ珜 '.bmf'﹞ +3044 該檔案內含以 Starbase 格式儲存\\\n\ + 的圖形影像。 其資料類型名稱為 BMF。\\\n\ + BMF 檔案的副檔名為 '.bmf'。 $ $ ************************************************************************** $ ************************************************************************** @@ -833,111 +833,111 @@ $ into ACTIONS and DATATYPES. $ NOTE: make sure each line begins with a "# ". This indicates $ that it is a comment. $ -4001 # 罶涷㪫迒 - 饜衭珜麔淰磣隉炟邴え -4002 # 麔淰扢 +4001 # 資料屬性 - 主要為檔案管理者所用 +4002 # 檔案夾 $ $ ---------------------------------------------------------------------------- $ Message 4003 is the description of the TRASH_FOLDER datatype. $ -4003 篎麔淰扢珜杶扜蛦穛勂棷﹞ +4003 該檔案夾為垃圾桶暫放區。 $ $ ---------------------------------------------------------------------------- $ Message 4004 is the description of the PARENT_FOLDER datatype. $ 4004 - Do not translate PARENT_FOLDER in the message. PARENT_FOLDER is a $ defined datatype name that doesn't get translated. $ -4004 '..' 頝踛鷥玿隃⺼麔淰扢柁々麔淰扢﹞\\\n\ - 瞅絒⼓⑴皕麔淰扢蹠芼譫\\\n\ - 傶纂嬬﹞怬罶涷麷倛ボ磝珜 \\\n\ - PARENT_FOLDER﹞ +4004 '..' 圖像代表現行檔案夾的母檔案夾。\\\n\ + 開啟它可從檔案夾樹往上\\\n\ + 移一層。其資料類型名稱為 \\\n\ + PARENT_FOLDER。 $ $ ---------------------------------------------------------------------------- $ Message 4005 is the description of the CURRENT_FOLDER datatype. $ 4005 - Do not translate CURRENT_FOLDER in the message. CURRENT_FOLDER $ is a defined datatype name that doesn't get translated. $ -4005 '.' 頝踛鷥玿隃⺼柁麔淰扢﹞\\\n\ - 怬罶涷麷倛ボ磝珜 CURRENT_FOLDER﹞ +4005 '.' 圖像代表現行的檔案夾。\\\n\ + 其資料類型名稱為 CURRENT_FOLDER。 $ $ ---------------------------------------------------------------------------- $ Message 4006 is the description of the DOT_FOLDER datatype. $ 4006 - Do not translate DOT_FOLDER in the message. DOT_FOLDER $ is a defined datatype name that doesn't get translated. $ -4006 篎麔淰扢柁罶涷麷倛ボ磝珜 DOT_FOLDER﹞\\\n\ - DOT_FOLDER 麔淰扢ボ磝瞅韝珜\\\n\ - 纂鷁 (.)﹞ DOT_FOLDER 楈琣旂騿鰳柁﹞ +4006 該檔案夾的資料類型名稱為 DOT_FOLDER。\\\n\ + DOT_FOLDER 檔案夾名稱開頭為\\\n\ + 一點 (.)。 DOT_FOLDER 通常是隱藏的。 $ $ ---------------------------------------------------------------------------- $ Message 4007 is the description of the FOLDER_LOCK datatype. $ 4007 - Do not translate FOLDER_LOCK in the message. FOLDER_LOCK $ is a defined datatype name that doesn't get translated. $ -4007 睎扽篎麔淰扢柁嬣蘋暐⑴ḷ﹞\\\n\ - 睎隓恄嚌蠹迖覗崽麔淰﹞\\\n\ - 怬罶涷麷倛ボ磝珜 FOLDER_LOCK﹞ +4007 您沒有該檔案夾的寫入許可權。\\\n\ + 您無法增加或清除檔案。\\\n\ + 其資料類型名稱為 FOLDER_LOCK。 $ $ ---------------------------------------------------------------------------- $ Message 4008 is the description of the FOLDER datatype. $ 4008 - Do not translate FOLDER in the message. FOLDER $ is a defined datatype name that doesn't get translated. $ -4008 楙旂麔淰扢﹞ 麔淰扢珜鬊Б\\\n\ - 麔淰迖怬鱗麔淰扢柁ユ巖﹞ \\\n\ - 怬罶涷麷倛ボ磝珜 FOLDER﹞ +4008 這是檔案夾。 檔案夾為儲存\\\n\ + 檔案或其他檔案夾的地方。 \\\n\ + 其資料類型名稱為 FOLDER。 $ $ ---------------------------------------------------------------------------- $ Message 4009 is the description of the RECURSIVE-LINK datatype. $ 4009 - Do not translate RECURSIVE-LINK in the message. RECURSIVE-LINK $ is a defined datatype name that doesn't get translated. $ -4009 篎頝踛鷥玿挴ホ⺌儷柁滽懧迒椵廎﹜\\\n\ - ⑴逑旂麔淰扢迖椴蝝纂椵⻌柁\\\n\ - 斕睮滽懧迒椵廎﹞ 怬麔淰麷倛磝珜\\\n\ - RECURSIVE_LINK﹞ +4009 該圖像代表指向自己的象徵性連結,\\\n\ + 可能是檔案夾或透過一連串的\\\n\ + 中間象徵性連結。 其檔案類型稱為\\\n\ + RECURSIVE_LINK。 $ $ ---------------------------------------------------------------------------- $ Message 4010 is the description of the BROKEN_LINK datatype. $ 4010 - Do not translate BROKEN_LINK in the message. BROKEN_LINK $ is a defined datatype name that doesn't get translated. $ -4010 篎頝踛鷥玿挴ホ攜Бョ麔淰柁滽懧迒\\\n\ - 椵廎﹞怬罶涷麷倛ボ磝珜 \\\n\ - BROKEN_LINK﹞ +4010 該圖像代表指向不存在檔案的象徵性\\\n\ + 連結。其資料類型名稱為 \\\n\ + BROKEN_LINK。 $ $ ---------------------------------------------------------------------------- $ Message 4011 is the description of the DOT_FILE datatype. $ 4011 - Do not translate DOT_FILE in the message. DOT_FILE $ is a defined datatype name that doesn't get translated. $ -4011 篎麔淰柁罶涷麷倛ボ磝珜 DOT_FILE﹞\\\n\ - DOT_FILE 麔淰ボ磝瞅韝珜\\\n\ - 纂鷁 (.)﹞ DOT_FILE 楈琣旂騿鰳柁﹞ +4011 該檔案的資料類型名稱為 DOT_FILE。\\\n\ + DOT_FILE 檔案名稱開頭為\\\n\ + 一點 (.)。 DOT_FILE 通常是隱藏的。 $ $ ---------------------------------------------------------------------------- $ Message 4012 is the description of the EXECUTABLE datatype. $ 4012 - Do not translate EXECUTABLE in the message. EXECUTABLE $ is a defined datatype name that doesn't get translated. $ -4012 篎麔淰珜⑴欹⺼柁 shell 杬麟碬迖\\\n\ - 蹌㾀蝝柁嶂冈﹞怬罶涷麷倛\\\n\ - ボ磝珜 EXECUTABLE﹞ +4012 該檔案為可執行的 shell 命令集或\\\n\ + 編譯過的程式。其資料類型\\\n\ + 名稱為 EXECUTABLE。 $ $ ---------------------------------------------------------------------------- $ Message 4013 is the description of the UNKNOWN datatype. $ 4013 - Do not translate UNKNOWN in the message. UNKNOWN $ is a defined datatype name that doesn't get translated. $ -4013 篎麔淰攜嗃ポズ罶涷麷倛﹜\\\n\ - モ挴泂怬罶涷麷倛ボ磝珜 UNKNOWN﹞ +4013 該檔案不符合任何資料類型,\\\n\ + 因此指定其資料類型名稱為 UNKNOWN。 $ $ ---------------------------------------------------------------------------- $ Message 4014 is the description of the DATA datatype. $ 4014 - Do not translate DATA in the message. DATA $ is a defined datatype name that doesn't get translated. $ -4014 篎麔淰攜嗃ポズ罶涷麷倛﹜\\\n\ - モ挴泂怬罶涷麷倛ボ磝珜 DATA﹞ +4014 該檔案不符合任何資料類型,\\\n\ + 因此指定其資料類型名稱為 DATA。 $ $ ---------------------------------------------------------------------------- $ Message 4015: @@ -946,83 +946,83 @@ $ into its ACTIONS portion. $ NOTE: make sure each line begins with a "# ". This indicates $ that it is a comment. $ -4015 # 纂郫痐譫磣隉侇嗄蘄頨麔淰磣隉炟菙坯柁棬汃﹞ +4015 # 一般桌上管理系統環境檔案管理者提供的動作。 $ $ ---------------------------------------------------------------------------- $ Messages 4016 - 4017 refer to the File Manager Home 'DtfileHome' action. $ -4016 麔淰磣隉炟 - 媊沓げ蠊 +4016 檔案管理者 - 起始目錄 $ $ 4017 - do not translate (DtfileHome). $ -4017 >麔淰磣隉炟 - 媊沓げ蠊=(DtfileHome) 棬汃瞅絒\\\n\ - 麔淰磣隉炟髓栯砫囷え炟柁媊沓麔淰扢﹞ +4017 「檔案管理者 - 起始目錄」(DtfileHome) 動作開啟\\\n\ + 檔案管理者以查看使用者的起始檔案夾。 $ $ ---------------------------------------------------------------------------- $ Messages 4018 - 4020 refer to the File Manager (Dtfile) action. $ -4018 麔淰磣隉炟 +4018 檔案管理者 $ $ Message 4019 - Requests which folder to open when no folder is $ is provided to the 'Dtfile' action. Do not remove the ':'. $ -4019 袺瞅絒柁げ蠊: +4019 欲開啟的目錄: $ $ 4020 - do not translate '(Dtfile)'. $ -4020 >麔淰磣隉炟=(Dtfile) 棬汃瞅絒麔淰磣隉炟\\\n\ - 髓栯砫挴泂柁麔淰扢﹞ +4020 「檔案管理者」(Dtfile) 動作開啟檔案管理者\\\n\ + 以查看指定的檔案夾。 $ $ ---------------------------------------------------------------------------- $ Messages 4021 - 4023 refer to the Application Manager (Dtappmgr) action. $ -4021 鶈え嶂冈磣隉炟 +4021 應用程式管理者 $ $ $ Message 4022 - The title of the Application Manager. $ -4022 鶈え嶂冈磣隉炟 +4022 應用程式管理者 $ $ 4023 - do not translate '(Dtappmgr)'. $ -4023 >鶈え嶂冈磣隉炟=(Dtappmgr) 棬汃瞅絒\\\n\ - 麔淰磣隉炟髓栯砫鶈え嶂冈磣隉炟﹞ +4023 「應用程式管理者」(Dtappmgr) 動作開啟\\\n\ + 檔案管理者以查看應用程式管理者。 $ $ ---------------------------------------------------------------------------- $ Messages 4024 - 4026 refer to the 'TrashFile' action. $ $ 4024 - translate into 1 word with no blanks. $ -4024 杶扜蛦 +4024 垃圾桶 $ $ Message 4025 - Requests which file to trash when no file/folder is $ is provided to the 'TrashFile' action. Do not remove the ':'. $ -4025 袺ェ蘋杶扜蛦柁麔淰: +4025 欲丟入垃圾桶的檔案: $ $ 4026 - use the same word as Message 4024 to translate 'TrashFile'. $ -4026 >杶扜蛦=棬汃渿麔淰勂蘋\\\n\ - 痐譫磣隉侇嗄柁麔淰杶扜蛦﹞ +4026 「垃圾桶」動作將檔案放入\\\n\ + 桌上管理系統的檔案垃圾桶。 $ $ ---------------------------------------------------------------------------- $ Messages 4027 - 4028 refer to the Trash Can (Dttrash) action. $ -4027 麔淰杶扜蛦 +4027 檔案垃圾桶 $ $ 4028 - do not translate (Dttrash). $ -4028 椵挹怚譯棬汃頝踛渀﹜>麔淰杶扜蛦=(Dttrash) 棬汃鞂\\\n\ - 瞅絒痐譫磣隉侇嗄柁杶扜蛦槉嵺﹞\\\n\ - 渿麔淰侹泂⻏怉篎頝踛悒﹜麔淰\\\n\ - 伒揧銊傶怉杶扜蛦﹞ +4028 連按兩下動作圖像時,「檔案垃圾桶」(Dttrash) 動作會\\\n\ + 開啟桌上管理系統的垃圾桶視窗。\\\n\ + 將檔案拖曳定位到該圖像後,檔案\\\n\ + 即被搬移到垃圾桶。 $ $ ---------------------------------------------------------------------------- $ Message 4029 refers to the 'Open New View' action. $ -4029 >瞅絒隞槉棷=棬汃䬷ざ麔淰磣隉炟﹜\\\n\ - 髓砅ョ隞麔淰磣隉炟槉嵺栯砫\\\n\ - 挴泂柁麔淰扢﹞ +4029 「開啟新視區」動作顯示檔案管理者,\\\n\ + 以便在新檔案管理者視窗查看\\\n\ + 指定的檔案夾。 $ $ ---------------------------------------------------------------------------- $ Messages 4030 - 4031 refer to the 'PrintFolderList' action. @@ -1034,8 +1034,8 @@ $ $ $ 4031 - use the same word as Message 4030 to translate 'PrintFolderList'. $ -4031 PrintFolderList 棬汃渿麔淰扢柁蠡晥トパ\\\n\ - 怉蠡泂柁パ玿鞥譫﹞ +4031 PrintFolderList 動作將檔案夾的內容列印\\\n\ + 到內定的印表機上。 $ $ Messages 4032 through 4041 are new messages since the CDE/Sample. $ Messges 4032 and 4033 are @@ -1044,17 +1044,17 @@ $ which tells the File Manager to put an object on the desktop. $ $ 4032 is the Label of the action $ -4032 勂蘋齡汃洠睮 +4032 放入工作空間 $ $ 4033 is the Description of what that action does. $ Don't translate 'PutOnWorkspace -workspace wsX' $ -4033 勂蘋齡汃洠睮 (PutOnWorkspace) 蠢暐\\\n\ - 纂郫痐譫磣隉侇嗄蘄頨崷ポ鶈え嶂冈\\\n\ - 欹⺼棬汃﹜勂殦纂堈昡ス卼痐譫磣隉侇嗄﹞\\\n\ - 篎棬汃柁眭冈珜: \\\n\ +4033 放入工作空間 (PutOnWorkspace) 允許\\\n\ + 一般桌上管理系統環境配合應用程式\\\n\ + 執行動作,放置一個物件於桌上管理系統。\\\n\ + 該動作的格式為: \\\n\ 'PutOnWorkspace -workspace wsX ' \\\n\ - X 旂髓 0 瞅沓柁齡汃洠睮禨げ﹞ + X 是以 0 開始的工作空間數目。 $ $ Messges 4034 and 4035 are $ for a new action (FILESYSTEM_MOVE). This an action used by other clients @@ -1062,17 +1062,17 @@ $ to tell the file Manager to move a file. $ $ 4034 is the Label of the action $ -4034 傶棬怉纂堈麔淰扢 +4034 移動到一個檔案夾 $ $ 4035 is the Description of what that action does. $ Don't translate FILESYSTEM_MOVE $ -4035 FILESYSTEM_MOVE 棬汃蠢暐\\\n\ - 纂郫痐譫磣隉侇嗄蘄頨崷ポ鶈え嶂冈\\\n\ - 欹⺼棬汃, ⣷麔淰磣隉炟欹⺼麔淰柁銊傶﹞ \\\n\ - 篎棬汃柁眭冈珜: \\\n\ +4035 FILESYSTEM_MOVE 動作允許\\\n\ + 一般桌上管理系統環境配合應用程式\\\n\ + 執行動作, 讓檔案管理者執行檔案的搬移。 \\\n\ + 該動作的格式為: \\\n\ 'FILESYSTEM_MOVE ' \\\n\ - files 旂麔淰汒謽柁聤梏ボ磝トざ, 髓洠眭觰瞅﹞ + files 是檔案完整的路徑名稱列示, 以空格隔開。 $ $ Messges 4036 and 4037 are $ for a new action (FILESYSTEM_COPY). This an action used by other clients @@ -1080,17 +1080,17 @@ $ to tell the file Manager to copy a file. $ $ 4036 is the Label of the action $ -4036 闀蕍怉纂堈麔淰扢 +4036 複製到一個檔案夾 $ $ 4037 is the Description of what that action does. $ Don't translate FILESYSTEM_COPY $ -4037 FILESYSTEM_COPY 棬汃蠢暐\\\n\ - 纂郫痐譫磣隉侇嗄蘄頨崷ポ鶈え嶂冈\\\n\ - 欹⺼棬汃⣷麔淰磣隉炟欹⺼麔淰柁闀蕍﹞ \\\n\ - 篎棬汃柁眭冈珜: \\\n\ +4037 FILESYSTEM_COPY 動作允許\\\n\ + 一般桌上管理系統環境配合應用程式\\\n\ + 執行動作讓檔案管理者執行檔案的複製。 \\\n\ + 該動作的格式為: \\\n\ 'FILESYSTEM_COPY ' \\\n\ - files 旂麔淰汒謽柁聤梏ボ磝トざ, 髓洠眭觰瞅﹞ + files 是檔案完整的路徑名稱列示, 以空格隔開。 $ $ Messges 4038 and 4039 are $ for a new action (FILESYSTEM_LINK). This an action used by other clients @@ -1098,17 +1098,17 @@ $ to tell the file Manager to link a file. $ $ 4038 is the Label of the action $ -4038 椵廎怉纂堈麔淰扢 +4038 連結到一個檔案夾 $ $ 4039 is the Description of what that action does. $ Don't translate FILESYSTEM_LINK $ -4039 FILESYSTEM_LINK 棬汃蠢暐\\\n\ - 纂郫痐譫磣隉侇嗄蘄頨崷ポ鶈え嶂冈\\\n\ - 欹⺼棬汃⣷麔淰磣隉炟欹⺼麔淰柁椵廎﹞ \\\n\ - 篎棬汃柁眭冈珜: \\\n\ +4039 FILESYSTEM_LINK 動作允許\\\n\ + 一般桌上管理系統環境配合應用程式\\\n\ + 執行動作讓檔案管理者執行檔案的連結。 \\\n\ + 該動作的格式為: \\\n\ 'FILESYSTEM_LINK ' \\\n\ - files 旂麔淰汒謽柁聤梏ボ磝トざ, 髓洠眭觰瞅﹞ + files 是檔案完整的路徑名稱列示, 以空格隔開。 $ $ Messges 4040 and 4041 are $ for a new action DtEmptyTrash. This an action used by other clients @@ -1116,14 +1116,14 @@ $ to tell the file Manager to empty the trash can. $ $ 4040 is the Label of the action $ -4040 覗洠杶扜蛦 +4040 清空垃圾桶 $ $ 4041 is the Description of what that action does. $ Don't translate DtEmptyTrash $ -4041 覗洠杶扜蛦 (DtEmptyTrash) 棬汃\\\n\ - 覗洠杶扜蛦﹞ 纂^覗洠衭崽⑩柁昡ス\\n\ - 祼攜逑テャ艀藹﹞ +4041 清空垃圾桶 (DtEmptyTrash) 動作\\\n\ + 清空垃圾桶。 一旦清空要除去的物件\\n\ + 就不能再回復了。 $ $ ************************************************************************** $ ************************************************************************** @@ -1142,17 +1142,17 @@ $ 5001 - Do not translate TEXTFILE or '.txt' in the message. TEXTFILE is a $ defined datatype name and it doesn't get translated and '.txt' $ is the filename pattern which matches this datatype. $ -5001 篎麔淰珜覂齪А罶涷﹞\\\n\ - 怬罶涷麷倛ボ磝珜 TEXTFILE﹞ TEXTFILE 柁棓麔ボ\\\n\ - ⽁禕旂 '.txt'﹞ +5001 該檔案為純文字資料。\\\n\ + 其資料類型名稱為 TEXTFILE。 TEXTFILE 的副檔名\\\n\ + 必須是 '.txt'。 $ $ Messages 5002 - 5006 are comments. NOTE: make sure each new line $ begins with a "#". This indicates that it is a comment. $ Also, keep the \n\ at the end of each line where used. $ -5002 # トパ棬汃 -5003 # 蹌藟棬汃 -5004 # 譯ト棬汃柁絒棬渀睮蝷齪А蹌藟蟟棬汃妐﹞ +5002 # 列印動作 +5003 # 編輯動作 +5004 # 下列動作的啟動時間較文字編輯器動作快。 $ $ Message 5005 - is a header in dtpad.dt. It is actually a comment $ but it explains how the print action for dtpad works so it @@ -1160,9 +1160,9 @@ $ should localized. Don't translate PRINT_DTPAD and translate $ "Print" as it is translated in message 2. Don't translate $ 'dtpad'. Make sure each line ends with a \n\. $ -5005 # PRINT_DTPAD 棬汃篲鶅蠡泂トパ棬汃﹜\n\ -# 崽欄⼃, ⼓鞂覗崽ョトパ柁穛Б麔﹞ 篎棬汃\n\ -# 珜剟鷓嶂冈 'dtpad' 邴囷え﹞ +5005 # PRINT_DTPAD 動作模擬內定列印動作,\n\ +# 除此之外, 它會清除正在列印的暫存檔。 該動作\n\ +# 為客戶程式 'dtpad' 所使用。 $ $ Message 5006 - is a header in dtpad.dt. It is actually a warning comment $ that explains how the follow DATA_CRITERIA rule is used @@ -1171,32 +1171,32 @@ $ effected. Don't translate DATA_CRITERIA, dtmail, TEXTFILE, and $ DATA_ATTRIBUTE. Keep the WARNING in all capitals. $ Make sure each line ends with a \n\ except the last. $ -5006 # 滙夼 滙夼 滙夼 \n\ +5006 # 警告 警告 警告 \n\ #\n\ -# dtmail 囷え譯ト柁 DATA_CRITERIA 斒衧坭藑籫\n\ -# 侇嗄柁 TEXTFILE DATA_ATTRIBUTE﹞ ヵ峈睎伝崽\n\ -# 迖埏庍斒衧﹜dtmail ⑴逑隓恄薚䬷ざ齪А\n\ -# 媢桾﹞ +# dtmail 使用下列的 DATA_CRITERIA 規則來辨識\n\ +# 系統的 TEXTFILE DATA_ATTRIBUTE。 如果您刪除\n\ +# 或修改此規則,dtmail 可能無法正確顯示文字\n\ +# 訊息。 $ $ ---------------------------------------------------------------------------- $ Messages 5007 - 5008 refer to the Text Editor (Dtpad) action. $ -5007 齪А蹌藟蟟 +5007 文字編輯器 $ $ 5008 - do not translate '(Dtpad)'. $ -5008 >齪А蹌藟蟟=(Dtpad) 棬汃ョ痐譫磣隉侇嗄齪А蹌藟蟟槉嵺\\\n\ - 瞅絒挴泂柁麔淰﹞ +5008 「文字編輯器」(Dtpad) 動作在桌上管理系統文字編輯器視窗\\\n\ + 開啟指定的檔案。 $ $ ---------------------------------------------------------------------------- $ Messages 5009 - 5010 refer to the Text Editor Quick (DtpadQ) action. $ -5009 妐楬齪А蹌藟蟟 +5009 快速文字編輯器 $ $ 5010 - do not translate '(DtpadQ)'. $ -5010 >妐楬齪А蹌藟蟟=(DtpadQ) 棬汃ョ痐譫磣隉侇嗄齪А蹌藟蟟\\\n\ - 瞅絒挴泂柁麔淰﹞ +5010 「快速文字編輯器」(DtpadQ) 動作在桌上管理系統文字編輯器\\\n\ + 開啟指定的檔案。 $ $ ************************************************************************** $ ************************************************************************** @@ -1212,9 +1212,9 @@ $ Message 6001 is the description of the CORE (core) datatype. $ 6001 - Do not translate CORE in the message. CORE is a $ defined datatype name and it doesn't get translated. $ -6001 篎麔淰屼攜琣廎忒搢隉柁淭鰾憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 \\\n\ - CORE﹞ +6001 該檔案含不正常結束處理的核心影像。\\\n\ + 其資料類型名稱為 \\\n\ + CORE。 $ $ ---------------------------------------------------------------------------- $ Message 6002 is the description of the OBJECT (*.o) datatype. @@ -1222,9 +1222,9 @@ $ 6002 - Do not translate OBJECT or '.o' in the message. OBJECT is a $ defined datatype name and it doesn't get translated and '.o' $ is the filename pattern which matches this datatype. $ -6002 楙堈麔淰讓屼蹌㾀蟟皕坭鳲麔淰邴雰ぇ柁蘑瑱戔罶涷﹞\\\n\ - 怬罶涷麷倛ボ磝珜 OBJECT﹞ OBJECT 麔\\\n\ - 淰柁棓麔ボ珜 '.o'﹞ +6002 這個檔案包含編譯器從來源檔案所產生的二進制資料。\\\n\ + 其資料類型名稱為 OBJECT。 OBJECT 檔\\\n\ + 案的副檔名為 '.o'。 $ $ ---------------------------------------------------------------------------- @@ -1233,9 +1233,9 @@ $ 6003 - Do not translate ASSEMBLER or '.s' in the message. ASSEMBLER is a $ defined datatype name and it doesn't get translated and '.s' $ is the filename pattern which matches this datatype. $ -6003 楙堈麔淰讓屼纂堈儸洁栻擛柁 assembler 嶂冈謑﹞\\\n\ - 怬罶涷麷倛ボ磝珜 ASSEMBLER﹞\\\n\ - ASSEMBLER 麔淰柁棓麔ボ珜 '.s'﹞ +6003 這個檔案包含一個已知架構的 assembler 程式碼。\\\n\ + 其資料類型名稱為 ASSEMBLER。\\\n\ + ASSEMBLER 檔案的副檔名為 '.s'。 $ $ ---------------------------------------------------------------------------- $ Message 6004 is the description of the ARCH_LIB datatype. @@ -1243,9 +1243,9 @@ $ 6004 - Do not translate ARCH_LIB or '.a' in the message. ARCH_LIB is a $ defined datatype name and it doesn't get translated and '.a' $ is the filename pattern which matches this datatype. $ -6004 楙堈麔淰讓屼纂堈砉Б昡ス麔淰柁蘑瑱戔嶂冈梬﹞\\\n\ - 怬罶涷麷倛ボ磝珜 ARCH_LIB﹞\\\n\ - ARCH_LIB 麔淰柁棓麔ボ珜 '.a'﹞ +6004 這個檔案包含一個保存物件檔案的二進制程式庫。\\\n\ + 其資料類型名稱為 ARCH_LIB。\\\n\ + ARCH_LIB 檔案的副檔名為 '.a'。 $ $ Leaving 6005 free, may need a different definition for ARCH_LIB for IBM. $ @@ -1257,9 +1257,9 @@ $ 6006 - Do not translate SHARED_LIB or '.sl' in the message. SHARED_LIB is a $ defined datatype name and it doesn't get translated and '.sl' $ is the filename pattern which matches this datatype. $ -6006 楙堈麔淰讓屼纂堈ヅえ昡ス麔淰柁蘑瑱戔嶂冈梬﹞\\\n\ - 怬罶涷麷倛ボ磝珜 SHARED_LIB﹞\\\n\ - SHARD_LIB 麔淰柁棓麔ボ珜 '.sl' 迖 '.so'﹞ +6006 這個檔案包含一個共用物件檔案的二進制程式庫。\\\n\ + 其資料類型名稱為 SHARED_LIB。\\\n\ + SHARD_LIB 檔案的副檔名為 '.sl' 或 '.so'。 $ $ Leaving 6007 free, may need a different definition for SHARED_LIB for IBM. $ @@ -1271,9 +1271,9 @@ $ 6008 - Do not translate C_SRC or '.c' in the message. C_SRC is a $ defined datatype name and it doesn't get translated and '.c' $ is the filename pattern which matches this datatype. $ -6008 楙堈麔淰旂纂堈髓 C 嶂冈諴侔邴檎嬣柁坭鳲麔淰﹞\\\n\ - 怬罶涷麷倛ボ磝珜 C_SRC﹞\\\n\ - C_SRC 麔淰柁棓麔ボ珜 '.c'﹞ +6008 這個檔案是一個以 C 程式語言所撰寫的來源檔案。\\\n\ + 其資料類型名稱為 C_SRC。\\\n\ + C_SRC 檔案的副檔名為 '.c'。 $ $ ---------------------------------------------------------------------------- $ Message 6009 is the description of the Make action associated with the @@ -1281,8 +1281,8 @@ $ C_SRC datatype. $ 6009 - Do not translate C_SRC or 'make' in the message. $ Translate Make the same as message 5. $ -6009 C_SRC 麔淰柁 Make 杬麟囷え Unix 柁 \\\n\ - 'make' 杬麟坭蕍汃砨驨昡ス麔淰﹞ +6009 C_SRC 檔案的 Make 命令使用 Unix 的 \\\n\ + 'make' 命令來製作相關物件檔案。 $ $ ---------------------------------------------------------------------------- $ Message 6010 is the description of the CPLUSPLUS_SRC datatype. @@ -1291,10 +1291,10 @@ $ CPLUSPLUS_SRC is a defined datatype name and it doesn't get $ translated and '.cc' and '.C'is the filename pattern which $ matches this datatype. $ -6010 楙旂纂堈髓 C++ 嶂冈諴侔檎嬣柁坭鳲麔淰﹞\\\n\ - 怬罶涷麷倛ボ磝珜 CPLUSPLUS_SRC﹞\\\n\ - CPLUSPLUS_SRC 麔淰柁棓麔ボ珜 '.C' \\\n\ - 迖 '.cc'﹞ +6010 這是一個以 C++ 程式語言撰寫的來源檔案。\\\n\ + 其資料類型名稱為 CPLUSPLUS_SRC。\\\n\ + CPLUSPLUS_SRC 檔案的副檔名為 '.C' \\\n\ + 或 '.cc'。 $ $ ---------------------------------------------------------------------------- $ Message 6011 is the description of the Make action associated with the @@ -1302,8 +1302,8 @@ $ CPLUSPLUS_SRC datatype. $ 6011 - Do not translate CPLUSPLUS_SRC or 'make' in the message. $ Translate Make the same as message 5. $ -6011 CPLUSPLUS_SRC 麔淰柁 Make 杬麟囷え Unix 柁 \\\n\ - 'make' 杬麟坭蕍汃砨驨昡ス麔淰﹞ +6011 CPLUSPLUS_SRC 檔案的 Make 命令使用 Unix 的 \\\n\ + 'make' 命令來製作相關物件檔案。 $ $ ---------------------------------------------------------------------------- $ Message 6012 is the description of the H_SRC datatype. @@ -1311,8 +1311,8 @@ $ 6012 - Do not translate H_SRC or '.h' in the message. H_SRC is a $ defined datatype name and it doesn't get translated and '.h' $ is the filename pattern which matches this datatype. $ -6012 楙旂纂堈 C 諴侔嶂冈柁媊沓麔﹞怬罶涷麷倛ボ磝珜 \\\n\ - H_SRC﹞H_SRC 麔淰柁棓麔ボ珜 *.h﹞ +6012 這是一個 C 語言程式的起始檔。其資料類型名稱為 \\\n\ + H_SRC。H_SRC 檔案的副檔名為 *.h。 $ $ ---------------------------------------------------------------------------- $ Message 6013 is the description of the MAKEFILE datatype. @@ -1321,27 +1321,27 @@ $ message. MAKEFILE is a defined datatype name and it doesn't get $ translated and Makefile, makefile, and '.mk' are the filename $ patterns which match this datatype. $ -6013 楙旂纂堈 Makefile﹞ Makefile 諰咭ヵ皕纂嗢坭鳲\\\n\ - 麔斕雰ぇ⑴欹⺼麔﹞怬罶涷麷倛ボ磝珜 MAKEFILE﹞\\\n\ - MAKEFILE 麔淰柁ボ磝⽁禕旂 Makefile 迖 makefile﹜\\\n\ - 迖髓 Makefile 迖 makefile 瞅韝﹜迖炟渿棓麔ボ泂珜 \\\n\ - '.mk'﹞ +6013 這是一個 Makefile。 Makefile 說明如何從一組來源\\\n\ + 檔中產生可執行檔。其資料類型名稱為 MAKEFILE。\\\n\ + MAKEFILE 檔案的名稱必須是 Makefile 或 makefile,\\\n\ + 或以 Makefile 或 makefile 開頭,或者將副檔名定為 \\\n\ + '.mk'。 $ $ Message 6014 - Requests which "target" (i.e. file) to make when no $ file/folder is is provided to the 'Make' action for the MAKEFILE $ datatype. Do not remove the ':'. $ -6014 衭 Make 柁げ簅麔: +6014 要 Make 的目標檔: $ $ Message 6015 is the description of the Make action associated with the $ MAKEFILE datatype. $ 6015 - Do not translate Makefiles, or 'make' in the message. $ Translate Make the same as message 5. $ -6015 Makefiles 柁 Make 棬汃衭忴囷え炟藣蘋げ簅麔﹜\\\n\ - 隑悒囷え Unix 柁 'make' 杬麟坭搢隉﹞ヵ\\\n\ - 峈攜挴泂げ簅麔﹜楙堈杬麟祼鞂髱隃⺼\\\n\ - 麔淰扢蠡柁邴麔淰欹⺼﹞ +6015 Makefiles 的 Make 動作要求使用者輸入目標檔,\\\n\ + 然後使用 Unix 的 'make' 命令來處理。如\\\n\ + 果不指定目標檔,這個命令就會對現行\\\n\ + 檔案夾內的所有檔案執行。 $ $ ---------------------------------------------------------------------------- $ Message 6016 is the description of the IMAKEFILE datatype. @@ -1350,46 +1350,46 @@ $ message. IMAKEFILE is a defined datatype name and it doesn't get $ translated and Imakefile, and imakefile are the filename $ patterns which match this datatype. $ -6016 楙旂纂堈 Imakefile﹞ Imakefile 萺訒ヵ\\\n\ - 皕纂嗢坭鳲麔斕雰ぇ纂堈⑴欹⺼麔﹞\\\n\ - ⼓鞂揧 make 杬麟邴囷え﹞怬罶涷麷倛ボ磝珜 \\\n\ - IMAKEFILE﹞ IMAKEFILE 麔淰柁麔ボ珜 \\\n\ - imakefile 迖 Imakefile﹜迖炟髓 imakefile \\\n\ - 迖 Imakefile 瞅韝﹞ +6016 這是一個 Imakefile。 Imakefile 描述如何\\\n\ + 從一組來源檔中產生一個可執行檔。\\\n\ + 它會被 make 命令所使用。其資料類型名稱為 \\\n\ + IMAKEFILE。 IMAKEFILE 檔案的檔名為 \\\n\ + imakefile 或 Imakefile,或者以 imakefile \\\n\ + 或 Imakefile 開頭。 $ $ Message 6017 is the description of the Make action associated with the $ IMAKEFILE datatype. $ 6017 - Do not translate Imakefiles, Makefile, or 'make' in the message. $ Translate Make the same as message 5. $ -6017 Imakefile 柁 Make 杬麟囷え Unix 柁 \\\n\ - 'make' 杬麟坭蕍汃砨驨柁 Makefile﹞ +6017 Imakefile 的 Make 命令使用 Unix 的 \\\n\ + 'make' 命令來製作相關的 Makefile。 $ $ ---------------------------------------------------------------------------- $ Messages 6018 - 6020 refer to the Symbols List (Nm) action. $ -6018 嗃磍トざ +6018 符號列示 $ $ 6019 - Is a prompt to the user for the filename to list the symbols $ for if not file is supplied. Do not remove the ':'. $ -6019 麔ボ: +6019 檔名: $ $ 6020 - do not translate 'nm' or '(Nm)'. $ -6020 >嗃磍トざ=(Nm) 棬汃ト罐纂堈昡ス麔淰\\\n\ - 迖嶂冈梬麔淰柁嗃磍玿﹞⼓囷え柁旂 \\\n\ - 'nm' 杬麟﹞ +6020 「符號列示」(Nm) 動作列出一個物件檔案\\\n\ + 或程式庫檔案的符號表。它使用的是 \\\n\ + 'nm' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 6021 - 6022 refer to the Print Symbol List (PrintNm) action. $ -6021 トパ嗃磍トざ +6021 列印符號列示 $ $ 6022 - do not translate 'nm' or '(PrintNm)'. $ -6022 >トパ嗃磍トざ=(PrintNm) 棬汃囷え蠡泂\\\n\ - パ玿鞥トパ 'nm' 杬麟柁藣罐﹞ +6022 「列印符號列示」(PrintNm) 動作使用內定\\\n\ + 印表機列印 'nm' 命令的輸出。 $ $ ---------------------------------------------------------------------------- $ Messages 6023 - 6024 refer to the 'Make' action. @@ -1404,9 +1404,9 @@ $ any particular type. $ 6024 - Do not translate Makefile, or 'make' in the message. $ Translate Make the same as message 5. $ -6024 扽鰱禨柁 Make 棬汃衭忴囷え炟藣蘋\\\n\ - 纂堈 Makefile 轡げ簅麔﹜隑悒囷え Unix 柁 \\\n\ - 'make' 杬麟坭搢隉﹞ +6024 沒有引數的 Make 動作要求使用者輸入\\\n\ + 一個 Makefile 及目標檔,然後使用 Unix 的 \\\n\ + 'make' 命令來處理。 $ $ ************************************************************************** $ ************************************************************************** @@ -1424,45 +1424,45 @@ $ Actions and Datatypes are used for within the print.dt file. $ NOTE: make sure each new line begins with a "# ". This indicates $ that it is a comment. Make sure each line ends with a \n\. $ -7001 # CDE 柁パ玿鞥鞥倛碬斕卼>トパ=棬汃斕﹞\n\ +7001 # CDE 的印表機機型集中於「列印」動作中。\n\ #\n\ -# 睎⑴髓泂氂ロ堈>トパ=棬汃﹜纂堈棬汃怞纂瞗罶涷麷倛﹞\n\ -# ヵ峈>トパ=棬汃ゝ菙坯鰱禨﹜咇錵祼鞂鞜え dtprintinfo \n\ -# 杬麟坭䬷ざパ玿鞥縋齡汃昲鳷﹞#\n\ +# 您可以定義多個「列印」動作,一個動作具有一種資料類型。\n\ +# 如果「列印」動作未提供引數,那麼就會調用 dtprintinfo \n\ +# 命令來顯示印表機與工作狀態。#\n\ #\n\ -# 'dtprintinfo' 旂纂堈磣隉齡怞﹜え坭唈ゥ眭冈珜 \n\ -# '_Print' 柁蠡泂パ玿鞥棬汃﹞\n\ +# 'dtprintinfo' 是一個管理工具,用來建立格式為 \n\ +# '_Print' 的內定印表機動作。\n\ #\n\ -# ヵ峈侇嗄斕嚌蠹隞柁麷倛﹜祼鞂唈ゥ纂堈麔淰麷倛\n\ -# 笱泂柁>トパ=棬汃﹜゛痐譫磣隉侇嗄棬汃鰱鵽祼\n\ -# 鞂⺌棬囷え楙堈棬汃﹜髓抻鷥蠡泂棬汃﹞ 隞柁棬汃\n\ -# ⑴逑囷え 'dtlp'﹜迖呣謾怬トパ衢逑邴痤怉欄鶈え\n\ -# 嶂冈笱泂柁鰱禨﹞ -7002 # 蠡泂柁パ玿鞥棬汃﹜鞜えフ㪫 ARG_TYPE“キ伒ゝ泂\n\ -# 氂怬鱗トパ棬汃柁麔淰﹞ -7003 # ヵ峈ゝ菙坯ズ鰱禨﹜衧鞜え Dtprintinfo 棬汃﹞ -7004 # >トパ齡汃=(Dtprintinfo) 棬汃鞜え dtprintinfo \n\ -# 杬麟迖 'dtprintinfo -p printer' 杬麟﹞ -7005 # 蠡泂パ玿鞥柁棬汃﹞ -7006 # 蚍菙坯纂堈麔淰鰱禨﹜衧鞜え>トパ=棬汃﹞ -7007 # 蚍ゝ菙坯麔淰鰱禨﹜衧鞜え Dtprintinfo 棬汃﹞ -7008 # 搢旂ゝ洁縋ゝ暋泂崷殦柁パ玿鞥昡ス柁棬汃縋\n\ -# 罶涷麷倛﹞ +# 如果系統中增加新的類型,就會建立一個檔案類型\n\ +# 特定的「列印」動作,而桌上管理系統動作引擎就\n\ +# 會自動使用這個動作,以取代內定動作。 新的動作\n\ +# 可能使用 'dtlp',或依據其列印功能所得到之應用\n\ +# 程式特定的引數。 +7002 # 內定的印表機動作,調用同屬 ARG_TYPE;亦即未定\n\ +# 義其他列印動作的檔案。 +7003 # 如果未提供任何引數,則調用 Dtprintinfo 動作。 +7004 # 「列印工作」(Dtprintinfo) 動作調用 dtprintinfo \n\ +# 命令或 'dtprintinfo -p printer' 命令。 +7005 # 內定印表機的動作。 +7006 # 若提供一個檔案引數,則調用「列印」動作。 +7007 # 若未提供檔案引數,則調用 Dtprintinfo 動作。 +7008 # 此處是未知與未設定配置的印表機物件的動作與\n\ +# 資料類型。 $ $ ---------------------------------------------------------------------------- $ Message 7009 is the description of the PRINTER_UNKNOWN datatype. $ -7009 楙堈頝踛鷥玿ゝョ睎柁痐譫磣隉侇嗄漶癱柁パ玿鞥﹞ +7009 這個圖像代表未在您的桌上管理系統註冊的印表機。 $ $ ---------------------------------------------------------------------------- $ Message 7010 refers to the 'Print' action. $ $ 7010 - description for the default print action. $ -7010 楙旂蠡泂柁トパ棬汃﹞ ヵ峈欹⺼渀蠹譫纂堈麔淰\\\n\ - 鰱禨﹜⼓鞂碬パ玿鞥笱泂柁藞禋﹜隑\\\n\ - 悒トパ篎麔淰﹞ヵ峈欹⺼渀扽鰱禨﹜\\\n\ - ⼓鞂䬷ざ>パ玿鞥齡汃=槉嵺﹞ +7010 這是內定的列印動作。 如果執行時加上一個檔案\\\n\ + 引數,它會收集印表機特定的選項,然\\\n\ + 後列印該檔案。如果執行時沒有引數,\\\n\ + 它會顯示「印表機工作」視窗。 $ $ ---------------------------------------------------------------------------- @@ -1470,18 +1470,18 @@ $ Messages 7011 - 7012 refer to the Print Job 'Dtprintinfo' action. $ $ 7011 - translate into 1 word with no blanks. $ -7011 トパ齡汃 +7011 列印工作 $ $ 7012 - do not translate '(Dtprintinfo)'. $ -7012 >トパ齡汃=(Dtprintinfo) 棬汃⣷睎⑴髓扻\\\n\ - 泂パ玿鞥昲鳷呥髲砫トパ齡汃﹞ +7012 「列印工作」(Dtprintinfo) 動作讓您可以決\\\n\ + 定印表機狀態並察看列印工作。 $ $ ---------------------------------------------------------------------------- $ Message 7013 refer to the 'DtPrint' action. It uses the Description $ of message 7010 or 7012 depending if there is a file or not. $ -7013 蠡泂パ玿鞥 +7013 內定印表機 $ $ ---------------------------------------------------------------------------- $ Messages 7014 - 7017 refer to the 'PrinterUnconfigured' action. @@ -1496,14 +1496,14 @@ $ Message 7015 is the message, 7016 is the title of the dialog. $ NOTE: The '\\\\n' inserts a newline at that location, insert this $ where you feel it's appropriate. $ -7015 パ玿鞥祰戔ゝ崷殦﹞\\\\n蚍衭崷殦パ玿鞥祰戔﹜\\\n\ - 霘挹>赮伢諰咭=隑悒呣怬斕柁\\\\n挴ざ瑱⺼﹞ -7016 パ玿鞥ゝ崷殦 +7015 印表機控制未配置。\\\\n若要配置印表機控制,\\\n\ + 請按「輔助說明」然後依其中的\\\\n指示進行。 +7016 印表機未配置 $ $ 7017 - use the same word as Message 7014 to translate 'PrinterUnconfigured'. $ -7017 PrinterUnconfigured 棬汃䬷ざ纂堈髱緷﹜諰咭\\\n\ - パ玿鞥泲ゝ崷殦﹞ +7017 PrinterUnconfigured 動作顯示一個對話,說明\\\n\ + 印表機尚未配置。 $ $ Messages 7018 and 7019 are the message and the title of the message $ dialog that pop's up when the user tries to drop a printer in the @@ -1512,28 +1512,28 @@ $ Message 7018 is the message, 7019 is the title of the dialog. $ NOTE: The '\\\\n' inserts a newline at that location, insert this $ where you feel it's appropriate. $ -7018 渿纂楶パ玿鞥勂蘋杶扜蛦呥攜鞂\\\\n\\\n\ - 渿⼓皕侇嗄斕伝崽﹞ 衭渿パ玿鞥皕侇嗄斕伝崽﹜\\\\n\\\n\ - 霘栯櫇侇嗄磣隉齪ス﹞ -7019 伝崽パ玿鞥 -7020 Printer_Trash 棬汃鞂䬷ざ纂堈髱緷﹜\\\n\ - 夼漇睎渿纂楶パ玿鞥勂蘋杶扜蛦呥攜鞂\\\n\ - 渿⼓皕侇嗄斕伝崽﹞ +7018 將一部印表機放入垃圾桶並不會\\\\n\\\n\ + 將它從系統中刪除。 要將印表機從系統中刪除,\\\\n\\\n\ + 請查閱系統管理文件。 +7019 刪除印表機 +7020 Printer_Trash 動作會顯示一個對話,\\\n\ + 告訴您將一部印表機放入垃圾桶並不會\\\n\ + 將它從系統中刪除。 $ $ ---------------------------------------------------------------------------- $ Messages 7022 - 7024 refer to the Print Manager 'DtPrintManager' action. $ $ 7022 - translate into 1 word with no blanks. $ -7022 トパ磣隉炟 +7022 列印管理者 $ $ 7023 - do not translate '(DtPrintManager)'. $ -7023 # >トパ磣隉炟=(DtPrintManager) 棬汃鞂鞜え \n\ -# 'dtprintinfo -all' 杬麟﹞ -7024 >トパ磣隉炟=(DtPrintManager) 棬汃逑⣷睎扻泂禨楶パ玿鞥\\\n\ - 柁昲鳷呥髲砫トパ齡汃﹞ ⼓躂逑⣷睎渿パ玿鞥\\\n\ - 侹怉郖帣譫柁>Е稹頝踛=祰戔﹞ +7023 # 「列印管理者」(DtPrintManager) 動作會調用 \n\ +# 'dtprintinfo -all' 命令。 +7024 「列印管理者」(DtPrintManager) 動作能讓您決定數部印表機\\\n\ + 的狀態並察看列印工作。 它也能讓您將印表機\\\n\ + 拖曳到次面板上的「安裝圖像」控制。 $ $ ************************************************************************** $ ************************************************************************** @@ -1554,10 +1554,10 @@ $ translated and '_phlp' is the filename pattern which matches $ this datatype. $ $ -8001 楙堈麔淰旂ョ睎トパ赮伢諰咭侇嗄渀\\\n\ - 邴雰ぇ柁﹞怬罶涷麷倛ボ磝珜 \\\n\ - DTHELP_PRINT_FILE﹞DTHELP_PRINT_FILE 麔淰\\\n\ - 柁麔ボ禕髓 '_phlp' 瞅韝﹞ +8001 這個檔案是在您列印輔助說明系統時\\\n\ + 所產生的。其資料類型名稱為 \\\n\ + DTHELP_PRINT_FILE。DTHELP_PRINT_FILE 檔案\\\n\ + 的檔名須以 '_phlp' 開頭。 $ ************************************************************************** $ ************************************************************************** $ * uxstd.dt @@ -1573,8 +1573,8 @@ $ $ 10001 - Do not translate MAN_PAGE in the message. MAN_PAGE is a $ defined datatype name and it doesn't get translated. $ -10001 楙堈麔淰讓屼纂堈葰伢諰咭郟﹞怬罶涷\\\n\ - 麷倛ボ磝珜 MAN_PAGE﹞ +10001 這個檔案包含一個援助說明頁。其資料\\\n\ + 類型名稱為 MAN_PAGE。 $ $ ---------------------------------------------------------------------------- $ Messages 10002 - 10009 refer to the TAR (*.tar) datatype. @@ -1583,19 +1583,19 @@ $ 10002 - Do not translate TAR or '.tar' in the message. TAR is a $ defined datatype name and it doesn't get translated and '.tar' $ is the filename pattern which matches this datatype. $ -10002 楙堈麔淰旂纂堈砉Б麔淰﹜怬斕讓屼\\\n\ - 暐ロ堈伀柁麔淰﹞怬罶涷麷倛ボ磝珜 \\\n\ - TAR﹞ TAR 麔淰柁棓麔ボ珜 '.tar'﹞ +10002 這個檔案是一個保存檔案,其中包含\\\n\ + 許多個別的檔案。其資料類型名稱為 \\\n\ + TAR。 TAR 檔案的副檔名為 '.tar'。 $ $ Messages 10003 and 10004 refer to the TarList action associated with the $ TAR datatype. $ -10003 砉Б麔淰トざ蠡晥 +10003 保存檔案列示內容 $ $ 10004 - Do not translate TAR and (TarList) in the message. $ -10004 >砉Б麔淰トざ蠡晥=(TarList) 棬汃ト罐 \\\n\ - TAR 砉Б麔淰斕邴屼柁麔淰﹞ +10004 「保存檔案列示內容」(TarList) 動作列出 \\\n\ + TAR 保存檔案中所含的檔案。 $ $ Messages 10005 and 10006 refer to the PrintTarList action associated with the $ TAR datatype. @@ -1606,24 +1606,24 @@ $ $ 10006 - Do not translate TAR in the message. Translate PrintTarList the same $ as message 10005. $ -10006 PrintTarList 棬汃鞂ョ蠡泂パ玿鞥譫パ罐 TAR \\\n\ - 砉Б麔淰蠡邴屼麔淰柁トざ﹞ +10006 PrintTarList 動作會在內定印表機上印出 TAR \\\n\ + 保存檔案內所含檔案的列示。 $ $ Messages 10007, 10008, and 10009 refer to the TarUnpack action associated $ with the TAR datatype. $ -10007 箾瞅砉Б麔淰 +10007 解開保存檔案 $ $ 10008 - Is a prompt to the user for the filename of the TAR file $ if no file is supplied. Do not remove the ':'. $ -10008 麔淰ボ磝: +10008 檔案名稱: $ $ 10009 - Do not translate TAR and (TarUnpack) in the message. $ -10009 >箾瞅砉Б麔淰=(TarUnpack) 棬汃稌抰 \\\n\ - TAR 麔淰汃珜鰱禨﹜呥渿砉Б麔淰\\\n\ - 箾瞅珜禨堈ペ伀柁麔淰﹞ +10009 「解開保存檔案」(TarUnpack) 動作接受 \\\n\ + TAR 檔案作為引數,並將保存檔案\\\n\ + 解開成為數個各別的檔案。 $ $ ---------------------------------------------------------------------------- $ Messages 10010 - 10012 refer to the COMPRESSED (*.Z) datatype. @@ -1632,23 +1632,23 @@ $ 10010 - Do not translate COMPRESSED or '.Z' in the message. COMPRESSED is a $ defined datatype name and it doesn't get translated and '.Z' $ is the filename pattern which matches this datatype. $ -10010 楙堈麔淰儸揧 compress 杬麟鯦醷﹜\\\n\ - 髓樄砵洠睮﹞ 怬罶涷麷倛ボ磝珜 \\\n\ - COMPRESSED﹞ COMPRESSED 麔淰\\\n\ - 柁棓麔ボ珜 '.Z'﹞ +10010 這個檔案已被 compress 命令壓縮,\\\n\ + 以節省空間。 其資料類型名稱為 \\\n\ + COMPRESSED。 COMPRESSED 檔案\\\n\ + 的副檔名為 '.Z'。 $ $ Messages 10011 and 10012 refer to the Uncompress action associated $ with the COMPRESSED datatype. $ 10011 - translate into 1 word with no blanks. $ -10011 麔淰箾鯦醷 +10011 檔案解壓縮 $ $ 10012 - Do not translate 'compress' and 'uncompress'. $ -10012 >麔淰箾鯦醷=棬汃稌抰纂堈迖ロ堈\\\n\ - 揧 'compress' 杬麟邴鯦醷柁麔淰汃珜\\\n\ - 鰱禨﹜呥渿怬箾鯦醷﹞ ⼓囷え柁旂 'uncompress' \\\n\ - 杬麟﹞ +10012 「檔案解壓縮」動作接受一個或多個\\\n\ + 被 'compress' 命令所壓縮的檔案作為\\\n\ + 引數,並將其解壓縮。 它使用的是 'uncompress' \\\n\ + 命令。 $ $ ---------------------------------------------------------------------------- $ Message 10013 refers to the SHELL (*.sh) datatype. @@ -1659,10 +1659,10 @@ $ get translated. BOURNE is the name of type of shell which is named $ after a person, and '.sh', "#!/bin/sh", or "#! /bin/sh", are used as $ filename and CONTENT patterns which match this datatype. $ -10013 楙堈麔淰讓屼纂堈髓 BOURNE shell 杬麟碬諴侔\\\n\ - 邴檎嬣柁⑴欹⺼杬麟碬﹞怬罶涷麷倛ボ磝珜 \\\n\ - SHELL﹞ SHELL 柁棓麔ボ珜 '.sh'﹜迖麔\\\n\ - 淰蠡讓屼А蠣 "#!/bin/sh" 迖 "#! /bin/sh"﹞ +10013 這個檔案包含一個以 BOURNE shell 命令集語言\\\n\ + 所撰寫的可執行命令集。其資料類型名稱為 \\\n\ + SHELL。 SHELL 的副檔名為 '.sh',或檔\\\n\ + 案內包含字元 "#!/bin/sh" 或 "#! /bin/sh"。 $ $ ---------------------------------------------------------------------------- $ Message 10014 refers to the CSHELL (*.csh) datatype. @@ -1673,10 +1673,10 @@ $ name and it doesn't get translated. '.csh', "#!/bin/csh", or $ "#! /bin/csh" are used as filename and CONTENT patterns which $ match this datatype. $ -10014 楙堈麔淰讓屼纂堈髓 C-SHELL 杬麟碬諴侔\\\n\ - 邴檎嬣柁⑴欹⺼杬麟碬﹞怬罶涷麷倛ボ磝珜 \\\n\ - CSHELL﹞ CSHELL 柁棓麔ボ珜 '.csh'﹜迖麔\\\n\ - 淰蠡讓屼А蠣 "#!/bin/csh" 迖 "#! /bin/csh"﹞ +10014 這個檔案包含一個以 C-SHELL 命令集語言\\\n\ + 所撰寫的可執行命令集。其資料類型名稱為 \\\n\ + CSHELL。 CSHELL 的副檔名為 '.csh',或檔\\\n\ + 案內包含字元 "#!/bin/csh" 或 "#! /bin/csh"。 $ $ ---------------------------------------------------------------------------- $ Message 10015 refers to the KSHELL (*.ksh) datatype. @@ -1687,10 +1687,10 @@ $ name and it doesn't get translated. '.ksh', "#!/bin/ksh", or $ "#! /bin/ksh" are used as filename and CONTENT patterns which $ match this datatype. $ -10015 楙堈麔淰讓屼纂堈髓 K-SHELL 杬麟碬諴侔\\\n\ - 邴檎嬣柁⑴欹⺼杬麟碬﹞怬罶涷麷倛ボ磝珜 \\\n\ - KSHELL﹞ KSHELL 柁棓麔ボ珜 '.csh'﹜迖麔\\\n\ - 淰蠡讓屼А蠣 "#!/bin/ksh" 迖 "#! /bin/ksh"﹞ +10015 這個檔案包含一個以 K-SHELL 命令集語言\\\n\ + 所撰寫的可執行命令集。其資料類型名稱為 \\\n\ + KSHELL。 KSHELL 的副檔名為 '.csh',或檔\\\n\ + 案內包含字元 "#!/bin/ksh" 或 "#! /bin/ksh"。 $ ---------------------------------------------------------------------------- $ Messages 10016 - 10018 refer to the SHAR (*.shar) datatype. $ @@ -1698,10 +1698,10 @@ $ 10016 - Do not translate SHAR or '.shar' in the message. SHAR is a $ defined datatype name and it doesn't get translated and '.shar' $ is the filename pattern which matches this datatype. $ -10016 楙堈麔淰旂纂堈 shell 砉Б剢讓﹞\\\n\ - Shell 砉Б剢讓楈琣揧え坭瑧踽麔淰﹞\\\n\ - 怬罶涷麷倛珜 SHAR﹞ SHAR 麔淰\\\n\ - 柁棓麔ボ珜 '.shar'﹞s +10016 這個檔案是一個 shell 保存封包。\\\n\ + Shell 保存封包通常被用來郵遞檔案。\\\n\ + 其資料類型為 SHAR。 SHAR 檔案\\\n\ + 的副檔名為 '.shar'。s $ $ Messages 10017 and 10018 refer to the Unshar action associated $ with the SHAR datatype. @@ -1711,8 +1711,8 @@ $ $ $ 10018 - Translate Unshar the same as message 10017. $ -10018 Unshar 棬汃稌抰伈え shar 杬麟搢隉柁麔淰\\\n\ - 汃珜鰱禨﹜呥髱⼓欹⺼ unshar 杬麟﹞ +10018 Unshar 動作接受利用 shar 命令處理的檔案\\\n\ + 作為引數,並對它執行 unshar 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 10019 - 10021 refer to the UUENCODE (*.uu) datatype. @@ -1721,9 +1721,9 @@ $ 10019 - Do not translate UUENCODE or '.uu' in the message. UUENCODE is a $ defined datatype name and it doesn't get translated and '.uu' $ is the filename pattern which matches this datatype. $ -10019 楙旂纂堈蘑瑱戔麔淰﹜椴蝝瑧ス嶂冈坭瑱⺼蒡藣﹞\\\n\ - 怬罶涷麷倛ボ磝珜 UUENCODE﹞ UUENCODE \\\n\ - 麔淰柁棓麔ボ珜 '.uu'﹞ +10019 這是一個二進制檔案,透過郵件程式來進行傳輸。\\\n\ + 其資料類型名稱為 UUENCODE。 UUENCODE \\\n\ + 檔案的副檔名為 '.uu'。 $ $ Messages 10020 and 10021 refer to the Uudecode action associated $ with the UUENCODE datatype. @@ -1733,8 +1733,8 @@ $ $ $ 10021 - Translate Uudecode the same as message 10020. $ -10021 Uudecode 棬汃稌抰囷え uuencode 杬麟蹌謑柁\\\n\ - 麔淰汃珜鰱禨﹜呥囷え uudecode 坭箾謑﹞ +10021 Uudecode 動作接受使用 uuencode 命令編碼的\\\n\ + 檔案作為引數,並使用 uudecode 來解碼。 $ $ $ ---------------------------------------------------------------------------- @@ -1744,10 +1744,10 @@ $ 10022 - Do not translate MESSAGE_CAT or '.cat' in the message. MESSAGE_CAT $ is a defined datatype name and it doesn't get translated and '.cat' $ is the filename pattern which matches this datatype. $ -10022 楙堈麔淰讓屼纂堈⑴欹⺼麔柁ヾ饑襲\\\n\ - 罶媢﹞怬罶涷麷倛ボ磝珜 MESSAGE_CAT﹞\\\n\ - MESSAGE_CAT 麔淰柁棓麔ボ珜 \\\n\ - '.cat'﹞ +10022 這個檔案包含一個可執行檔的本土化\\\n\ + 資訊。其資料類型名稱為 MESSAGE_CAT。\\\n\ + MESSAGE_CAT 檔案的副檔名為 \\\n\ + '.cat'。 $ $ Messages 10023 and 10024 refer to the DumpMessage action associated $ with the MESSAGE_CAT datatype. @@ -1757,8 +1757,8 @@ $ $ $ 10024 - Translate DumpMessage the same as message 10023. $ -10024 DumpMessage 棬汃稌抰媢桾げ蠊麔﹜呥渿\\\n\ - 怬斕鬊Б柁邴媢桾ツ楶蒺パ籔婘﹞ +10024 DumpMessage 動作接受訊息目錄檔,並將\\\n\ + 其中儲存的所有訊息全部傾印還原。 $ $ Messages 10025 and 10026 refer to the PrintDumpMsg action associated $ with the MESSAGE_CAT datatype. @@ -1768,41 +1768,41 @@ $ $ $ 10026- Translate PrintDumpMsg the same as message 10025. $ -10026 PrintDumpMsg 棬汃稌抰媢桾げ蠊麔﹜呥渿\\\n\ - 怬斕鬊Б柁邴媢桾ツ楶パ罐坭﹞ +10026 PrintDumpMsg 動作接受訊息目錄檔,並將\\\n\ + 其中儲存的所有訊息全部印出來。 $ $ Messages 10027 - 10029 are comments. NOTE: make sure each new line $ begins with a "#". This indicates that it is a comment. $ Also, keep the \n\ at the end of each line where used. $ -10027 # Unix 蹌藟蟟 -10028 # Unix 杬麟 +10027 # Unix 編輯器 +10028 # Unix 命令 $ $ Message 10029 - Is a comment which explains how the next action for $ 'TAR' works so it should localized. Don't translate $ EXEC_STRING and 'true %(File)Args%'. Make sure each $ line ends with a \n\. $ -10029 # 譯ト棬汃囷え 'true %(File)Args%' 卼 EXEC_STRING﹞\n\ -# 楙堈訒ⅶ椔纂柁汃え﹜旂⣷邴鰱禨ョ痼纂堈棬汃鞜え渀\n\ -# ツ楶揧>え=怉﹞ +10029 # 下列動作使用 'true %(File)Args%' 於 EXEC_STRING。\n\ +# 這個述句唯一的作用,是讓所有引數在單一個動作調用時\n\ +# 全部被「用」到。 $ $ ---------------------------------------------------------------------------- $ Messages 10030 - 10032 refer to the Text Editor (Vi) action. $ -10030 齪А蹌藟蟟 (Vi) +10030 文字編輯器 (Vi) $ $ Message 10031 - Requests which file to edit when no file/folder is $ is provided to the 'Vi' action. Do not remove the ':'. $ -10031 衭蹌藟柁麔淰 +10031 要編輯的檔案 $ $ 10032 - use the same word as Message 10030 to translate 'Vi'. Don't $ translate 'vi'. $ -10032 >齪А蹌藟蟟=(Vi) 棬汃ョ嗈磞鞥槉嵺譫\\\n\ - 欹⺼ 'vi' 杬麟﹜ヵ峈睎菙坯麔ボ﹜衧鞂渿\\\n\ - 篎麔淰蟡蘋﹞ +10032 「文字編輯器」(Vi) 動作在終端機視窗上\\\n\ + 執行 'vi' 命令,如果您提供檔名,則會將\\\n\ + 該檔案載入。 $ $ ---------------------------------------------------------------------------- $ Messages 10033 - 10034 refer to the 'Vedit' action. @@ -1814,14 +1814,14 @@ $ $ 10034 - use the same word as Message 10033 to translate 'Vedit'. Don't $ translate 'vi' or 'vedit'. $ -10034 Vedit 棬汃ョ嗈磞鞥槉嵺斕髓 'vedit' 篲鳷\\\n\ - 欹⺼ 'vi' 杬麟﹞ ヵ峈睎菙坯麔ボ﹜衧鞂渿\\\n\ - 篎麔淰蟡蘋﹞ +10034 Vedit 動作在終端機視窗中以 'vedit' 模態\\\n\ + 執行 'vi' 命令。 如果您提供檔名,則會將\\\n\ + 該檔案載入。 $ $ ---------------------------------------------------------------------------- $ Messages 10035 - 10043 refer to the 'Tar' action. $ -10035 砉Б麔淰 +10035 保存檔案 $ $ Messages 10036 - 10037 are error (information) messages used when the user $ 'drops' more than one file/folder onto the TAR action in the @@ -1831,312 +1831,312 @@ $ so it doesn't cover the whole screen. Put the '\\\\n' where you feel $ a new line should be in your message. $ 10037 is the title of the dialog. $ -10036 >砉Б麔淰=棬汃ⅲ稌抰痼纂鰱禨﹜靨\\\\n \\\n\ -禕珜纂堈麔淰扢﹞ -10037 鰱禨隓淩 +10036 「保存檔案」動作只接受單一引數,且\\\\n \\\n\ +須為一個檔案夾。 +10037 引數無效 $ $ 10038 - Don't translate "tar", 'tar', or (Tar). $ -10038 >砉Б麔淰=(Tar) 棬汃稌抰纂堈麔淰扢鰱禨﹜\\\n\ - 呥渿怬斕讓屼柁邴麔淰砉Б痼纂柁 \\\n\ - "tar" 麔淰﹞⼓囷え柁旂 'tar' 杬麟﹞ +10038 「保存檔案」(Tar) 動作接受一個檔案夾引數,\\\n\ + 並將其中包含的所有檔案保存成單一的 \\\n\ + "tar" 檔案。它使用的是 'tar' 命令。 $ $ Message 10039 - Requests which folder to tar when no folder is $ is provided to the 'Tar' action. Do not remove the ':'. $ -10039 衭砉Б柁麔淰扢: +10039 要保存的檔案夾: $ $ Message 10040 - an error message when the file the user provided the Tar $ action is not a folder. Don't translate %(File)Arg_1%, it will be $ the bad file name when the message is shown to the user. $ -10040 蠆諟”%(File)Arg_1% 攜旂纂堈麔淰扢﹞ +10040 錯誤:%(File)Arg_1% 不是一個檔案夾。 $ $ Messsages 10041 and 10042 are status messages for the user. These are $ shown to the user when the Tar action is creating the tarball. $ 10041 don't translate \\$FOLDER as it is the file (i.e. tarball) $ that is being created. $ 10042 Translate "Please wait" only. -10041 唈ゥ \\$FOLDER 斕﹞ -10042 [霘寣埸 ...]\\\\n +10041 建立 \\$FOLDER 中。 +10042 [請稍候 ...]\\\\n $ $ Message 10043 is displayed to the user when the tarball is completed. It $ tells the user where they can find the tarball that has been created. $ \\$FOLDER is the complete path to the file that was created. $ 10043 - Don't translate \\$FOLDER or \\\\n. $ -10043 \\\\n砉Б麔淰儸唈ゥ﹜鬊Б卼 \\$FOLDER 斕﹞ +10043 \\\\n保存檔案已建立,儲存於 \\$FOLDER 中。 $ $ ---------------------------------------------------------------------------- $ Message 10044 refer to the 'TarList' action. NOTE: most of the messages $ for TarList were defined in 10003 and 10004. 10044 is a request to $ the user for the name of the file (i.e. tarball) to list the contents of. $ -10044 衭トざ柁砉Б麔淰: +10044 要列示的保存檔案: $ $ ---------------------------------------------------------------------------- $ Message 10045 refer to the 'TarUnpack' action. NOTE: most of the messages $ for TarList were defined in 10007 through 10009. 10045 is a request to $ the user for the name of the file (i.e. tarball) to unpack. $ -10045 衭箾瞅柁砉Б麔淰: +10045 要解開的保存檔案: $ $ ---------------------------------------------------------------------------- $ Messages 10046 - 10048 refer to the Compress File (Compress) action. $ -10046 鯦醷麔淰 +10046 壓縮檔案 $ $ Message 10047 - Requests which file to compress when no file is $ is provided to the 'Compress' action. Do not remove the ':'. $ -10047 衭鯦醷柁麔淰: +10047 要壓縮的檔案: $ $ 10048 - do not translate 'compress' or '(Compress)'. $ -10048 >鯦醷麔淰=(Compress) 棬汃稌抰纂迖ロ堈\\\n\ - 麔淰﹜隑悒囷え 'compress' 杬麟鯦醷﹞ +10048 「壓縮檔案」(Compress) 動作接受一或多個\\\n\ + 檔案,然後使用 'compress' 命令壓縮。 $ $ ---------------------------------------------------------------------------- $ Message 10049 refer to the 'Uncompress' action. NOTE: most of the messages $ for Uncompress were defined in 10010 through 10012. 10049 is a request to $ the user for the name of the file to uncompress. $ -10049 衭箾鯦醷柁麔淰: +10049 要解壓縮的檔案: $ $ ---------------------------------------------------------------------------- $ Messages 10050 - 10051 refer to the Environment Variables (Env) action. $ -10050 蘄頨䨣禨 +10050 環境變數 $ $ 10051 - do not translate 'env' or '(Env)'. $ -10051 >蘄頨䨣禨=(Env) 棬汃\\\n\ - 囷え 'env' 杬麟䬷ざ囷え炟柁蘄頨䨣禨﹞ +10051 「環境變數」(Env) 動作\\\n\ + 使用 'env' 命令顯示使用者的環境變數。 $ $ ---------------------------------------------------------------------------- $ Messages 10052 - 10056 refer to the Compare Files (Diff) action. $ -10052 籤髱麔淰 +10052 比對檔案 $ $ Messages 10057 and 10058 prompt the users for the files to compare if no $ files were provided to the Compare Files action. Don't translate $ (<), (>) or the :. $ -10053 剼纂堈麔淰 (<): +10053 第一個檔案 (<): $ -10054 剼蘑堈麔淰 (>): +10054 第二個檔案 (>): $ $ Message 10055. The \\$file1 and \\$file2 represent file names that were $ being compared. Don't translate them and place them where the 2 file $ names should appear in the message. $ -10055 怚堈麔淰 \\$file1 昑 \\$file2 旂砨フ柁﹞ +10055 兩個檔案 \\$file1 和 \\$file2 是相同的。 $ $ 10056 - do not translate 'diff' or '(Diff)'. $ -10056 >籤髱麔淰=(Diff) 棬汃囷え 'diff' 杬麟\\\n\ - 籤髱怚堈麔淰﹞ +10056 「比對檔案」(Diff) 動作使用 'diff' 命令\\\n\ + 比對兩個檔案。 $ $ ---------------------------------------------------------------------------- $ Messages 10057 - 10060 refer to the Shred File (Rm) action. $ -10057 覗崽麔淰 +10057 清除檔案 $ $ Message 10059 - This gives the users a double check whether they really want $ to remove (Shred) the file. Once the file is 'shred' it can't be restored. $ Translate "Enter y to delete a file, n to leave it" only. $ -10058 [衭覗崽麔淰霘藣蘋 y﹜攜覗崽霘藣蘋 n ...]\\\\n +10058 [要清除檔案請輸入 y,不清除請輸入 n ...]\\\\n $ $ Message 10059 - Prompt the user for the file to shred if not was provided. $ Do not remove the ':'. $ -10059 衭覗崽柁麔淰: +10059 要清除的檔案: $ $ $ 10060 - Don't translate 'rm -i' or (Rm). $ Capitalize the last sentence to emphasis it. $ -10060 >覗崽麔淰=(Rm) 棬汃囷え 'rm -i' 杬麟枺稌\\\n\ - 渿麔淰覗崽﹜攜勂蘋麔淰杶扜蛦﹞⼓\\\n\ - 鞂衭忴睎藣蘋怀堈麔淰柁麔ボ﹜呥⑴\\\n\ - ⣷睎薚泂旂匢衭覗崽篎麔淰﹞揧覗崽\\\n\ - 柁麔淰祼隓恄テ艀婘﹞ +10060 「清除檔案」(Rm) 動作使用 'rm -i' 命令直接\\\n\ + 將檔案清除,不放入檔案垃圾桶。它\\\n\ + 會要求您輸入每個檔案的檔名,並可\\\n\ + 讓您確定是否要清除該檔案。被清除\\\n\ + 的檔案就無法再復原。 $ $ ---------------------------------------------------------------------------- $ Messages 10061 - 10065 refer to the Count Words (Wc) action. $ -10061 衶磭А禨 +10061 計算字數 $ $ Messages 10061 - 10062 - These messages provide a "friendly" layout to show $ the output from the count words action. This is how the unix command $ 'wc' outputs it's data. Keep this layout as close as possible. $ -10062 " ⺼禨 А禨 А蠣 麔ボ" +10062 " 行數 字數 字元 檔名" 10063 " ============================" $ $ Message 10064 - Prompt the user for the file to do a word count on if it was $ not provided to the CountWords action. Do not remove the ':'. $ -10064 衭衶磭柁麔淰: +10064 要計算的檔案: $ $ 10065 - do not translate 'wc' or '(Wc)'. $ -10065 >衶磭А禨=(Wc) 棬汃衶磭麔淰斕柁⺼禨﹝\\\n\ - А禨轡А蠣禨﹞ ⼓囷え柁旂 'wc' 杬麟﹞ +10065 「計算字數」(Wc) 動作計算檔案中的行數、\\\n\ + 字數及字元數。 它使用的是 'wc' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 10066 - 10069 refer to the Check Spelling (Spell) action. $ -10066 捋А黀栯 +10066 拼字檢查 $ $ Message 10067 - Provides a 'friendly' output to the user providing the $ list of misspelled words. $ Translate "Misspelled words" and adjust "================" to the same $ size (length) of "Misspelled words". $ -10067 捋А蠆諟\\\\n========\\\\n +10067 拼字錯誤\\\\n========\\\\n $ $ Message 10068 - Prompt the user for the file to do a spell check on if it was $ not provided to the Check Spelling action. Do not remove the ':'. $ -10068 衭黀栯捋А柁麔淰: +10068 要檢查拼字的檔案: $ $ 10069 - do not translate 'spell' or (Spell). $ -10069 >捋А黀栯=(Spell) 棬汃黀栯麔淰斕邴А柁\\\n\ - 捋А旂匢薚﹞⼓囷え柁旂 'spell' \\\n\ - 杬麟﹞ +10069 「拼字檢查」(Spell) 動作檢查檔案中所有字的\\\n\ + 拼字是否正確。它使用的是 'spell' \\\n\ + 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 10070 - 10071 refer to the Disk Usage (Df) action. $ -10070 瀄澥囷え畽 +10070 磁碟使用量 $ $ 10071 - do no translate 'df' or (Df). $ -10071 >瀄澥囷え畽=(Df) 棬汃䬷ざ\\\n\ - 邴稹暋柁瀄澥斕柁⑴え洠睮﹞\\\n\ - ⼓囷え柁旂 'df' 杬麟﹞ +10071 「磁碟使用量」(Df) 動作顯示\\\n\ + 所有裝設的磁碟中的可用空間。\\\n\ + 它使用的是 'df' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 10072 - 10076 refer to the Folder Size (DuSort) action. $ -10072 麔淰扢騰麵 +10072 檔案夾大小 $ $ Message 10073 - 10074 - Provide a 'friendly' layout for the 'du' unix $ command. Keep this layout as close as possible. $ -10073 棷栠 麔淰/げ蠊 - (纂蜞棷栠珜 512 堈⻏蠣嗢) +10073 區段 檔案/目錄 - (一塊區段為 512 個位元組) 10074 ============================================ $ $ Message 10075 - Prompt the user for the folder to do a size if one was $ not provided to the DirSize action. Do not remove the ':'. $ -10075 衭彶庍騰麵柁麔淰扢: +10075 要更改大小的檔案夾: $ $ 10076 - do not translate 'du', 'sort', or '(DuSort)'. $ -10076 >麔淰扢騰麵=(DuSort) 棬汃䬷ざ\\\n\ - 怀堈麔淰轡麔淰扢斕麔淰扢柁騰麵﹞\\\n\ - ⼓囷え 'du' 縋 'sort' 杬麟\\\n\ - 柁嗢ポ﹞ +10076 「檔案夾大小」(DuSort) 動作顯示\\\n\ + 每個檔案及檔案夾中次檔案夾的大小。\\\n\ + 它使用 'du' 與 'sort' 命令\\\n\ + 的組合。 $ $ ---------------------------------------------------------------------------- $ Messages 10077 - 10082 refer to the Search Text (Grep) action. $ -10077 銌硻齪А +10077 搜尋文字 $ $ Message 10078 - Prompt the user for the file to search if one was $ not provided to the Search Text action. Do not remove the ':'. $ -10078 衭銌硻柁麔淰: +10078 要搜尋的檔案: $ $ 10079 - is an error message which tells the user that the file provided $ \\$SEARCH_FILE is a folder and the action Search Text (Grep) does not $ for strings in folders. Don't translate \\$SEARCH_FILE and use it $ as a folder name and translate StringSearch the same as in message 10077. $ -10079 蠆諟”\\$SEARCH_FILE 旂纂堈麔淰扢﹜>銌硻齪А=\\\\n\ -隓恄銌硻麔淰扢蠡柁А⻌﹞ +10079 錯誤:\\$SEARCH_FILE 是一個檔案夾,「搜尋文字」\\\\n\ +無法搜尋檔案夾內的字串。 $ $ Message 10080 - Prompt the user for the string to search for the $ StringSearch action. Do not remove the ':'. $ -10080 銌硻А⻌: +10080 搜尋字串: $ $ 10081 - the output provided to the user if no matches were found from the $ SearchString action. $ -10081 岊攜怉嗃ポ柁А⻌﹞ +10081 找不到符合的字串。 $ $ 10082 - do not translate 'grep' or '(Grep)'. $ -10082 >銌硻齪А=(Grep) 棬汃囷え 'grep' 杬麟ョ纂嗢\\\n\ - 麔淰斕麜抻栲堈А⻌邴罐隃搢﹞ +10082 「搜尋文字」(Grep) 動作使用 'grep' 命令在一組\\\n\ + 檔案中擷取某個字串所有出現處。 $ $ ---------------------------------------------------------------------------- $ Messages 10083 - 10085 refer to the Type File (File) action. $ -10083 麔淰麷倛 +10083 檔案類型 $ $ Message 10084 - Prompt the user for the file to type for the $ TypeFile action. Do not remove the ':'. $ -10084 衭䬷ざ麷倛柁麔淰: +10084 要顯示類型的檔案: $ $ 10085 - Do not translate '(File)'. $ -10085 >麔淰麷倛=(File) 棬汃伈え file 杬麟髓扻泂麔\\\n\ - 淰柁麷倛﹞楙昑麔淰柁痐譫磣隉侇嗄罶\\\n\ - 涷麷倛攜フ﹞衭扻泂麔淰柁痐譫磣隉侇\\\n\ - 嗄罶涷麷倛﹜霘藞抻篎麔淰﹜隑悒皕麔\\\n\ - 淰磣隉炟槉棷斕﹜藞謥衢逑玿杬麟>藞抻=\\\n\ - ->>彶庍暐⑴ḷ=﹞ +10085 「檔案類型」(File) 動作利用 file 命令以決定檔\\\n\ + 案的類型。這和檔案的桌上管理系統資\\\n\ + 料類型不同。要決定檔案的桌上管理系\\\n\ + 統資料類型,請選取該檔案,然後從檔\\\n\ + 案管理者視區中,選擇功能表命令「選取」\\\n\ + ->「更改許可權」。 $ $ ---------------------------------------------------------------------------- $ Messages 10086 - 10090 refer to the 'Execute' action. $ $ 10086 - translate into 1 word with no blanks. $ -10086 欹⺼ +10086 執行 $ $ Message 10087 - Prompt the user for the file to execute (run) for the $ Execute action. Do not remove the ':'. $ -10087 衭欹⺼柁麔淰: +10087 要執行的檔案: $ $ Message 10088 - Prompt the user for the any options which may go with the $ command being run from the Execute action. Do not remove the ':'. $ -10088 藞禋: +10088 選項: $ $ Message 10089 - Prompt the user for the any arguments which may go with the $ command being run from the Execute action. Do not remove the ':'. $ -10089 鰱禨: +10089 引數: $ $ 10090 - use the same word as Message 10086 to translate 'Execute'. $ -10090 >欹⺼=棬汃欹⺼纂堈 shell 杬麟碬迖⑴欹⺼柁\\\n\ - 蘑瑱戔麔﹞⼓鞂衭忴囷え炟藣蘋藞禋縋\\\n\ - 鰱禨﹜隑悒ョ纂堈嗈磞鞥槉嵺斕欹⺼\\\n\ - 杬麟碬迖⑴欹⺼麔﹞ +10090 「執行」動作執行一個 shell 命令集或可執行的\\\n\ + 二進制檔。它會要求使用者輸入選項與\\\n\ + 引數,然後在一個終端機視窗中執行此\\\n\ + 命令集或可執行檔。 $ $ ---------------------------------------------------------------------------- $ Messages 10091 - 10093 refer to the Execute Command (ExecuteCmd) action. $ -10091 欹⺼杬麟 +10091 執行命令 $ $ Message 10092 - Prompt the user for the command to execute (run) for the $ ExecuteCmd action. Do not remove the ':'. $ -10092 杬麟: +10092 命令: $ $ 10093 - use the same word as Message 10091 to translate 'ExecuteCmd'. $ -10093 >欹⺼杬麟=(ExecuteCmd) 棬汃鞂衭忴囷え炟藣蘋纂\\\n\ - 堈杬麟﹜隑悒髱汃珜鰱禨柁麔淰欹⺼杬麟﹞ +10093 「執行命令」(ExecuteCmd) 動作會要求使用者輸入一\\\n\ + 個命令,然後對作為引數的檔案執行此命令。 $ $ ************************************************************************** $ ************************************************************************** @@ -2156,9 +2156,9 @@ $ DTHELP_VOL is a defined datatype name and it doesn't get translated $ and '.sdl' and '.hv' are the filename patterns which match this $ datatype. $ -11001 楙旂纂堈赮伢諰咭晥忟柁饜晥忟麔淰﹞⼓柁罶涷\\\n\ - 麷倛ボ磝珜 DTHELP_VOL﹞\\\n\ - DTHELP_VOL 麔淰柁棓麔ボ珜 '.sdl' 迖 '.hv'﹞ +11001 這是一個輔助說明容體的主容體檔案。它的資料\\\n\ + 類型名稱為 DTHELP_VOL。\\\n\ + DTHELP_VOL 檔案的副檔名為 '.sdl' 或 '.hv'。 $ $ ---------------------------------------------------------------------------- $ Message 11002 refers to the DTHELP_HT (*.ht) datatype. @@ -2168,11 +2168,11 @@ $ DTHELP_HT is a defined datatype name and it doesn't get translated $ and '.ht' is the filename pattern which matches this $ datatype. $ -11002 楙旂纂堈赮伢諰咭饜纕麔淰﹜㪫卼赮伢諰咭晥忟柁\\\n\ - 纂楶禳﹞衭髲砫赮伢諰咭饜纕﹜睎⽁禕ッ瞅\\\n\ - 絒饜晥忟麔淰﹞楙堈麔淰柁罶涷麷倛ボ磝珜\\\n\ - DTHELP_HT﹞ DTHELP_HT 麔淰柁棓麔ボ\\\n\ - 珜 '.ht'﹞ +11002 這是一個輔助說明主題檔案,屬於輔助說明容體的\\\n\ + 一部分。要察看輔助說明主題,您必須先開\\\n\ + 啟主容體檔案。這個檔案的資料類型名稱為\\\n\ + DTHELP_HT。 DTHELP_HT 檔案的副檔名\\\n\ + 為 '.ht'。 $ $ ---------------------------------------------------------------------------- $ Message 11003 refers to the DTHELP_HVK (*.hvk) datatype. @@ -2182,10 +2182,10 @@ $ DTHELP_HVK is a defined datatype name and it doesn't get translated $ and '.hvk' is the filename pattern which matches this $ datatype. $ -11003 楙堈麔淰縋儸蹌㾀柁赮伢諰咭晥忟驨鏺﹞衭髲\\\n\ - 砫赮伢諰咭晥忟﹜睎⽁禕ッ瞅絒饜晥忟麔\\\n\ - 淰﹞楙堈麔淰柁罶涷麷倛ボ磝珜 DTHELP_HVK﹞\\\n\ - DTHELP_HVK 麔淰柁棓麔ボ珜 'hvk'﹞ +11003 這個檔案與已編譯的輔助說明容體有關聯。要察\\\n\ + 看輔助說明容體,您必須先開啟主容體檔\\\n\ + 案。這個檔案的資料類型名稱為 DTHELP_HVK。\\\n\ + DTHELP_HVK 檔案的副檔名為 'hvk'。 $ $ ---------------------------------------------------------------------------- $ Message 11004 refers to the DTHELP_XRN (*.xrh) datatype. @@ -2194,49 +2194,49 @@ $ 11004 - Do not translate DTHELP_XRN or '.xrh' in the message. $ DTHELP_XRN is a defined datatype name and it doesn't get translated $ and '.xrh' is the filename pattern which matches this $ datatype. -11004 楙堈麔淰縋儸蹌㾀柁赮伢諰咭晥忟驨鏺﹞衭髲\\\n\ - 砫赮伢諰咭晥忟﹜睎⽁禕ッ瞅絒饜晥忟麔\\\n\ - 淰﹞楙堈麔淰柁罶涷麷倛ボ磝珜 DTHELP_XRH﹞\\\n\ - DTHELP_XRH 麔淰柁棓麔ボ珜 '.xrh'﹞ +11004 這個檔案與已編譯的輔助說明容體有關聯。要察\\\n\ + 看輔助說明容體,您必須先開啟主容體檔\\\n\ + 案。這個檔案的資料類型名稱為 DTHELP_XRH。\\\n\ + DTHELP_XRH 檔案的副檔名為 '.xrh'。 $ $ ---------------------------------------------------------------------------- $ Messages 11005 - 11007 refer to the Help Viewer (Dthelpview) action. $ -11005 赮伢諰咭髲砫蟟 +11005 輔助說明察看器 $ $ Message 11006 - Prompt the user for the help volume to open for the $ HelpView action if none is provided. Do not remove the ':'. $ -11006 赮伢諰咭晥忟: +11006 輔助說明容體: $ $ 11007 - do not translate '(Dthelpview)'. $ -11007 >赮伢諰咭髲砫蟟=(Dthelpview) 棬汃ョ椵挹怚\\\n\ - 譯篎頝踛欄悒﹜⑴䬷ざ煄嬬赮伢諰咭﹞\\\n\ - ヵ峈渿纂堈赮伢諰咭晥忟泂⻏怉篎頝踛譫﹜\\\n\ - 篎晥忟祼鞂䬷ざ﹞ +11007 「輔助說明察看器」(Dthelpview) 動作在連按兩\\\n\ + 下該圖像之後,可顯示頂層輔助說明。\\\n\ + 如果將一個輔助說明容體定位到該圖像上,\\\n\ + 該容體就會顯示。 $ $ ---------------------------------------------------------------------------- $ Messages 11008 - 11009 refer to the 'ManPages' action. $ $ 11008 - translate into 1 word with no blanks. $ -11008 轃譫葰伢郟 +11008 線上援助頁 $ $ 11009 - use the same word as Message 11008 to translate 'ManPages'. $ -11009 >轃譫葰伢郟=棬汃鞂ョ轃譫葰伢郟髲砫蟟斕䬷\\\n\ - ざ纂堈轃譫葰伢郟﹞ +11009 「線上援助頁」動作會在線上援助頁察看器中顯\\\n\ + 示一個線上援助頁。 $ $ ---------------------------------------------------------------------------- $ Messages 11010 - 11013 refer to the Man Page Viewer (Dtmanpageview) action. $ -11010 轃譫葰伢郟髲砫蟟 +11010 線上援助頁察看器 $ $ Message 11011 - Prompt the user for the man page to view for the $ OpenManPage action if none is provided. Do not remove the ':'. $ -11011 轃譫葰伢郟: +11011 線上援助頁: $ $ Message 11013 is locale dependent value. $ Dthelpview*manBox*columns = 100 for single-byte @@ -2246,28 +2246,28 @@ $ $ $ 11013 - do not translate 'Dtmanpageview'. $ -11013 >轃譫葰伢郟髲砫蟟=(Dtmanpageview) 棬汃鞂ョ纂堈\\\n\ - 籙厙赮伢諰咭髲砫蟟槉嵺斕䬷ざ轃譫葰伢郟﹞ +11013 「線上援助頁察看器」(Dtmanpageview) 動作會在一個\\\n\ + 簡易輔助說明察看器視窗中顯示線上援助頁。 $ $ ---------------------------------------------------------------------------- $ Messages 11014 - 11016 refer to the Help Generator (Dthelpgen) action. $ -11014 赮伢諰咭雰ぇ蟟 +11014 輔助說明產生器 $ $ Message 11015 - Prompt the user for the location where the user wishes to $ place the help volume generated by dthelpgen. $ Do not remove the ':'. $ -11015 雰ぇ柁赮伢諰咭麔淰柁勂殦⻏殦: +11015 產生的輔助說明檔案的放置位置: $ $ 11016 - do not translate 'Dthelpgen'. $ -11016 赮伢諰咭雰ぇ蟟 (Dthelpgen) 棬汃鞂欹⺼\\\n\ - dthelpgen﹜髓雰ぇ囷え炟⑴棤℡柁轃\\\n\ - 譫赮伢諰咭﹞ 欹⺼渀⼓躂鞂䬷ざ "雰ぇ廲\\\n\ - ៜ蟟罶媢斕﹜霘寣埸...﹞" 柁髱緷﹞\\\n\ - 撋囷え炟剼纂僳蘋纂郫痐譫磣隉侇嗄\\\n\ - 蘄頨渀﹜楙堈棬汃祼鞂欹⺼﹞ +11016 輔助說明產生器 (Dthelpgen) 動作會執行\\\n\ + dthelpgen,以產生使用者可參考的線\\\n\ + 上輔助說明。 執行時它也會顯示 "產生瀏\\\n\ + 覽器資訊中,請稍候...。" 的對話。\\\n\ + 當使用者第一次登入一般桌上管理系統\\\n\ + 環境時,這個動作就會執行。 $ $ ************************************************************************** $ @@ -2289,73 +2289,73 @@ $ '.wd' are the filename patterns which match this datatype. $ XwdCapture is the name of an action and should be translated the $ same as message 12034. $ -12001 楙堈麔淰屼纂堈 XWD 眭冈柁頝夆憵踛﹞\\\n\ - 楙咍麔淰纂郫旂髓 Xwd Capture 棬汃\\\n\ - 皕槉嵺斕妐嘵譯坭柁﹞ 怬罶涷麷倛ボ磝珜 \\\n\ - XWD﹞XWD 麔淰柁棓麔ボ珜 \\\n\ - '.xwd' 迖 '.wd'﹞ +12001 這個檔案含有一個 XWD 格式的圖形影像。\\\n\ + 這些檔案一般是以 Xwd Capture 動作\\\n\ + 從視窗中快照下來的。 其資料類型名稱為 \\\n\ + XWD。XWD 檔案的副檔名為 \\\n\ + '.xwd' 或 '.wd'。 $ $ Messages 2002 - 2003 refer to the Xwd Display (Xwud) action $ which get used by the 'XWD' datatype. $ -12002 Xwd 䬷ざ +12002 Xwd 顯示 $ $ Message 12003 - Prompts the user for the xwd file to display when the $ XwdDisplay action is invoked with no file. Do not remove the ':'. $ -12003 衭䬷ざ柁 Xwd 麔淰: +12003 要顯示的 Xwd 檔案: $ $ 12004 - Don't translate xwd, xwud, (Xwud) or (Xwd). $ -12004 >Xwd 䬷ざ=(Xwud) 棬汃䬷ざ髓 Xwd \\\n\ - 麜抻 (Xwd) 棬汃邴唈\\\n\ - ゥ柁 xwd 麔淰﹞⼓囷え柁旂 'xwud' \\\n\ - 杬麟﹞ +12004 「Xwd 顯示」(Xwud) 動作顯示以 Xwd \\\n\ + 擷取 (Xwd) 動作所建\\\n\ + 立的 xwd 檔案。它使用的是 'xwud' \\\n\ + 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12005 - 12006 refer to the Refresh Display (Xrefresh) action. $ -12005 怑隞䬷ざ蟟 +12005 刷新顯示器 $ $ 12006 - do not translate 'xrefresh' or '(Xrefresh)'. $ -12006 >怑隞䬷ざ蟟=(Xrefresh) 棬汃逑⣷謽堈糬魦\\\n\ - 怑隞﹜囷え柁旂 'xrefresh' 杬麟﹞ +12006 「刷新顯示器」(Xrefresh) 動作能讓整個螢幕\\\n\ + 刷新,使用的是 'xrefresh' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12007 - 12011 refer to the Edit Bitmap (Bitmap) action. $ -12007 蹌藟⻏蠣旃晛麔 +12007 編輯位元映射檔 $ $ Messages 12008 - 12010 - Prompt the user for input about the bitmap file. $ that is to be displayed by the Bitmap action. Do not remove the ':'. $ 12008 - Asks the user what file to open. $ -12008 衭瞅絒柁麔淰: +12008 要開啟的檔案: $ $ 12009 and 12010 - Ask the user what size via width and height the bitmap $ is going to be. These only get used if the user doesn't provide a file $ to the action. $ -12009 嬥: -12010 崼: +12009 寬: +12010 高: $ $ 12011 - do not translate 'bitmap' or '(Bitmap)'. $ -12011 >蹌藟⻏蠣旃晛麔=(Bitmap) 棬汃欹⺼ 'bitmap' \\\n\ - 剟鷓嶂冈﹞睎⑴髓菙坯纂堈麔淰鰱禨﹜\\\n\ - 匢衧⼓鞂衭忴囷え炟藣蘋隞柁⻏蠣旃晛\\\n\ - 麔柁嬥唄轡崼唄﹞ +12011 「編輯位元映射檔」(Bitmap) 動作執行 'bitmap' \\\n\ + 客戶程式。您可以提供一個檔案引數,\\\n\ + 否則它會要求使用者輸入新的位元映射\\\n\ + 檔的寬度及高度。 $ $ ---------------------------------------------------------------------------- $ Messages 12012 - 12013 refer to the Terminal Console action. $ -12012 嗈磞鞥饜祰ⅵ +12012 終端機主控台 $ $ 12013 - Don't translate 'dtterm'. $ -12013 >嗈磞鞥饜祰ⅵ=棬汃絒棬纂堈'dtterm' 嗈磞\\\n\ - 鞥篲鶅嶂冈汃珜囷え炟柁饜祰ⅵ﹞ +12013 「終端機主控台」動作啟動一個'dtterm' 終端\\\n\ + 機模擬程式作為使用者的主控台。 $ $ ---------------------------------------------------------------------------- $ Messages 12014 - 12015 refer to the Xterm action. @@ -2364,55 +2364,55 @@ $ $ $ 12015 - Do Not translate 'xterm'. $ -12015 Xterm 棬汃絒棬纂堈 \\\n\ - 'xterm' 嗈磞鞥篲鶅嶂冈﹞ +12015 Xterm 動作啟動一個 \\\n\ + 'xterm' 終端機模擬程式。 $ $ ---------------------------------------------------------------------------- $ Messages 12016 - 12018 refer to the Terminal Remote (DttermDtspcd) action. $ -12016 踸磞嗈磞鞥 +12016 遠端終端機 $ $ Message 12017 - Prompts the user for the hostname to connect to when the $ DttermDtspcd action is invoked. Do not remove the ':'. $ -12017 饜鞥ボ磝: +12017 主機名稱: $ $ 12018 - Don't translate 'dtterm'. $ -12018 >踸磞嗈磞鞥=棬汃衭忴囷え炟藣蘋纂堈侇嗄\\\n\ - ボ磝﹜隑悒ョ篎侇嗄譫絒棬纂堈 'dtterm' \\\n\ - 嗈磞鞥篲鶅嶂冈﹞侇嗄柁崷殦⽁禕薚﹜懼\\\n\ - 逑囷え踸磞欹⺼衢逑﹞ +12018 「遠端終端機」動作要求使用者輸入一個系統\\\n\ + 名稱,然後在該系統上啟動一個 'dtterm' \\\n\ + 終端機模擬程式。系統的配置必須正確,才\\\n\ + 能使用遠端執行功能。 $ $ ---------------------------------------------------------------------------- $ Messages 12019 - 12020 refer to the Xterm Remote action. $ -12019 踸磞 Xterm +12019 遠端 Xterm $ $ 12020 - Do not translate 'xterm'. $ -12020 >踸磞 Xterm=棬汃衭忴囷え炟\\\n\ - 藣蘋侇嗄ボ磝﹜隑悒ョ篎侇嗄譫絒棬纂\\\n\ - 堈 'xterm' 嗈磞鞥篲鶅嶂冈﹞侇嗄柁崷殦⽁\\\n\ - 禕薚﹜懼逑囷え踸磞欹⺼衢逑﹞ +12020 「遠端 Xterm」動作要求使用者\\\n\ + 輸入系統名稱,然後在該系統上啟動一\\\n\ + 個 'xterm' 終端機模擬程式。系統的配置必\\\n\ + 須正確,才能使用遠端執行功能。 $ $ ---------------------------------------------------------------------------- $ Messages 12021 - 12024 refer to the Terminal Rlogin (DttermRlogin) action. $ -12021 嗈磞鞥 Rlogin +12021 終端機 Rlogin $ $ In messages 12022 - 12023 the "\\$_title" should not be translated. It is $ the hostname of the foreign host the xterm or dtterm is trying to connect $ to. $ 12022 \\$_title : Dtterm -12023 閰箹縋 \\$_title 唈ゥ椵稌斕...﹜霘寣埸﹞ +12023 嘗試與 \\$_title 建立連接中...,請稍候。 $ $ 12024 - do not translate 'dtterm' or 'rlogin'. $ -12024 >嗈磞鞥 Rlogin=棬汃衭忴囷え炟藣蘋纂堈\\\n\ - 侇嗄ボ磝﹜隑悒瞅絒纂堈 'dtterm' 嗈磞鞥篲\\\n\ - 鶅槉嵺﹜テ欹⺼ 'rlogin' 僳蘋篎侇嗄﹞ +12024 「終端機 Rlogin」動作要求使用者輸入一個\\\n\ + 系統名稱,然後開啟一個 'dtterm' 終端機模\\\n\ + 擬視窗,再執行 'rlogin' 登入該系統。 $ $ ---------------------------------------------------------------------------- $ Messages 12025 - 12027 refer to the Xterm Rlogin action. @@ -2427,101 +2427,101 @@ $ $ $ 12027 - Do not translate 'rlogin' or 'xterm'. $ -12027 Xterm Rlogin 棬汃衭忴囷え炟藣蘋纂堈\\\n\ - 侇嗄ボ磝﹜隑悒瞅絒纂堈 'xterm' 嗈磞鞥篲\\\n\ - 鶅槉嵺﹜テ欹⺼ 'rlogin' 僳蘋篎侇嗄﹞ +12027 Xterm Rlogin 動作要求使用者輸入一個\\\n\ + 系統名稱,然後開啟一個 'xterm' 終端機模\\\n\ + 擬視窗,再執行 'rlogin' 登入該系統。 $ $ ---------------------------------------------------------------------------- $ Messages 12028 - 12029 refer to the 'ReloadResources' action. $ -12028 适隞蟡蘋罶鳲 +12028 重新載入資源 $ $ 12029 - use the same word as Message 12028 to translate 'ReloadResources'. $ Don't translate EDITOR. $ -12029 >适隞蟡蘋罶鳲=棬汃鞂渿睎柁 X 罶鳲罶涷梬适隞蟡蘋\\\n\ - 痐譫磣隉侇嗄罶鳲﹜呥屼挭睎僳蘋悒邴⑴逑\\\n\ - 僛ぇ柁䨣彶﹞ +12029 「重新載入資源」動作會將您的 X 資源資料庫重新載入\\\n\ + 桌上管理系統資源,並含括您登入後所有可能\\\n\ + 發生的變更。 $ $ ---------------------------------------------------------------------------- $ Messages 12030 - 12031 refer to the 'DigitalClock' action. $ -12030 禨⻏渀㺪 +12030 數位時鐘 $ $ 12031 - Don't translate 'xclock -digital' or (Xclock). $ -12031 >禨⻏渀㺪=(Xclock) 棬汃䬷ざ纂堈\\\n\ - 禨⻏渀㺪﹞ ⼓囷え柁旂 'xclock -digital' 杬麟﹞ +12031 「數位時鐘」(Xclock) 動作顯示一個\\\n\ + 數位時鐘。 它使用的是 'xclock -digital' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12032 - 12033 refer to the System Load (Xload) action. $ -12032 侇嗄蟡蘋 +12032 系統載入 $ $ 12033 - Don't translate xload or (Xload). $ -12033 >侇嗄蟡蘋=(Xload) 棬汃䬷ざ纂堈\\\n\ - 侇嗄蟡蘋柁頝夆槉棷﹞⼓囷え柁旂 \\\n\ - xload 杬麟﹞ +12033 「系統載入」(Xload) 動作顯示一個\\\n\ + 系統載入的圖形視區。它使用的是 \\\n\ + xload 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12034 - 12036 refer to the Xwd Capture (XwdCapture) action. $ -12034 Xwd 麜抻 +12034 Xwd 擷取 $ $ Message 12035 - Prompts the user for the name of the file the user wishes $ to store the captured xwd image in. Do not remove the ':'. $ -12035 藣罐麔淰 (.xwd): +12035 輸出檔案 (.xwd): $ $ 12036 - Don't translate xwd or (Xwd). $ -12036 >Xwd 麜抻=(Xwd) 棬汃鞂渿纂堈\\\n\ - 槉嵺妐嘵譯坭﹜呥渿怬鬊Б纂堈 xwd \\\n\ - 眭冈柁頝夆麔﹞撋睎欹⺼楙堈棬汃渀﹜\\\n\ - 酮簅鞂䨣觸А﹜霘ョ睎裱麜抻柁槉嵺\\\n\ - 譫挹纂譯﹞楙堈棬汃囷え柁旂 xwd 杬麟﹞\\\n\ - Xwd 鷥玿 'X 槉嵺蒺パ'﹞ +12036 「Xwd 擷取」(Xwd) 動作會將一個\\\n\ + 視窗快照下來,並將其儲存成一個 xwd \\\n\ + 格式的圖形檔。當您執行這個動作時,\\\n\ + 游標會變成十字,請在您想擷取的視窗\\\n\ + 上按一下。這個動作使用的是 xwd 命令。\\\n\ + Xwd 代表 'X 視窗傾印'。 $ $ ---------------------------------------------------------------------------- $ Messages 12037 - 12038 refer to the Clipboard Contents (Xclipboard) action. $ -12037 椌藟帣蠡晥 +12037 剪輯板內容 $ $ 12038 - Don't translate 'xclipboard' or (Xclipboard). $ -12038 >椌藟帣蠡晥=(Xclipboard) 棬汃\\\n\ - 䬷ざ睎柁椌藟帣﹞ ⼓囷え柁旂 'xclipboard' \\\n\ - 杬麟﹞ +12038 「剪輯板內容」(Xclipboard) 動作\\\n\ + 顯示您的剪輯板。 它使用的是 'xclipboard' \\\n\ + 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12039 - 12043 refer to the Font Preview (Xfd) action. $ -12039 А夆諅ៜ +12039 字形預覽 $ $ Message 12040 - Prompts the user for the name of the font the user wishes $ display. Do not remove the ':'. $ -12040 衭諅ៜ柁А夆: +12040 要預覽的字形: $ $ Messages 12041 and 12042 are information messages that are output when $ a font the user specified can't be found. $ 12041 the message. NOTE: the '\\\\n' represents a newline. Place these $ where you feel it's appropriate. $ -12041 隓恄岊怉睎邴挴泂柁А夆﹞\\\\n\\\n\ - 霘欹⺼А夆トざ棬汃坭䬷ざ\\\\n\\\n\ - ⑴えА夆ボ磝柁トざ﹞ +12041 無法找到您所指定的字形。\\\\n\\\n\ + 請執行字形列示動作來顯示\\\\n\\\n\ + 可用字形名稱的列示。 $ $ 12042 the title of the dialog. $ -12042 隓恄岊怉А夆ボ磝 +12042 無法找到字形名稱 $ $ 12043 - Don't translate 'xfd' or (Xfd). $ -12043 >А夆諅ៜ=(Xfd) 棬汃衭忴囷え炟藣蘋А夆\\\n\ - ボ磝﹜隑悒䬷ざ篎А夆柁邴А蠣﹞\\\n\ - ⼓囷え柁旂 'xfd' 杬麟﹞ +12043 「字形預覽」(Xfd) 動作要求使用者輸入字形\\\n\ + 名稱,然後顯示該字形的所有字元。\\\n\ + 它使用的是 'xfd' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12044 - 12046 refer to the Window Information (Xwininfo) action. @@ -2531,76 +2531,76 @@ $ NOTE: make sure each new line begins with a "#". This indicates $ that it is a comment. Don't translate '| ${PAGER:-more}' or $ (Xwininfo). $ -12044 # >槉嵺罶媢=(Xwininfo) 棬汃隓恄囷え\n\ -# '| ${PAGER:-more}' 泂氂﹜モ珜⼓攜⣷ 'ョ栲堈槉嵺斕\n\ -# 挹纂譯' 媢桾䬷ざ罐坭﹞ +12044 # 「視窗資訊」(Xwininfo) 動作無法使用\n\ +# '| ${PAGER:-more}' 定義,因為它不讓 '在某個視窗中\n\ +# 按一下' 訊息顯示出來。 $ -12045 槉嵺罶媢 +12045 視窗資訊 $ $ 12046 - Don't translate 'xwininfo' or (Xwininfo). $ -12046 >槉嵺罶媢=(Xwininfo) 棬汃䬷ざ\\\n\ - 驨卼栲堈槉嵺柁罶媢﹞ 撋睎欹⺼>トざ槉嵺罶媢=\\\n\ - 渀﹜酮簅鞂䨣觸А夆﹜霘ョ睎裱蘀痤罶媢柁\\\n\ - 槉嵺斕挹纂譯﹞ 楙堈棬汃囷え柁旂 'xwininfo' \\\n\ - 杬麟﹞ +12046 「視窗資訊」(Xwininfo) 動作顯示\\\n\ + 關於某個視窗的資訊。 當您執行「列示視窗資訊」\\\n\ + 時,游標會變成十字形,請在您想獲得資訊的\\\n\ + 視窗中按一下。 這個動作使用的是 'xwininfo' \\\n\ + 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12047 - 12049 refer to the Window Properties (Xprop) action. $ -12047 槉嵺笱迒 +12047 視窗特性 $ $ 12048 - Translate "When the cursor changes to a cross, click on a window" $ only. This message gets displayed when the cursor changes to a cross and $ prompts the user to click on a window $ -12048 [撋酮簅䨣觸А夆渀﹜霘ョ槉嵺斕挹纂譯 ...]\\\\n +12048 [當游標變成十字形時,請在視窗中按一下 ...]\\\\n $ $ 12049 - $ Don't translate 'xprop' or (Xprop). $ -12049 >槉嵺笱迒=(Xprop) 棬汃\\\n\ - 鞂䬷ざ槉嵺斕鬊Б柁笱迒﹞ 撋睎欹⺼>槉嵺\\\n\ - 笱迒=渀﹜酮簅鞂䨣觸А夆﹜渀霘ョ睎\\\n\ - 裱蘀痤罶媢柁槉嵺斕挹纂譯﹞楙堈棬汃囷え\\\n\ - 柁旂 'xprop' 杬麟﹞ +12049 「視窗特性」(Xprop) 動作\\\n\ + 會顯示視窗中儲存的特性。 當您執行「視窗\\\n\ + 特性」時,游標會變成十字形,此時請在您\\\n\ + 想獲得資訊的視窗中按一下。這個動作使用\\\n\ + 的是 'xprop' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12050 - 12051 refer to the X Server Information (Xdpyinfo) $ action. $ -12050 X ɵ峇蟟罶媢 +12050 X 伺服器資訊 $ $ 12051 - Don't translate 'xdpyinfo' or (Xdpyinfo). $ -12051 >X ɵ峇蟟罶媢=(Xdpyinfo) 棬汃\\\n\ - 䬷ざ驨 X ɵ峇蟟縋䬷ざ侇嗄柁罶媢﹞\\\n\ - ⼓囷え柁旂 'xdpyinfo' 杬麟﹞ +12051 「X 伺服器資訊」(Xdpyinfo) 動作\\\n\ + 顯示有關 X 伺服器與顯示系統的資訊。\\\n\ + 它使用的是 'xdpyinfo' 命令。 $ $ ---------------------------------------------------------------------------- $ Messages 12052 - 12054 refer to the Font List (Xlsfonts) action. $ -12052 А夆トざ +12052 字形列示 $ $ Message 12053 is a note to the user. $ -12053 硻岊А夆斕﹜霘寣埸......﹞\\\\n\ - 霘恞蜑”睎柁䬷ざ蟟ɵ峇蟟⑴逑鞂揧孍泂纂鞂怗﹞ +12053 尋找字形中,請稍候......。\\\\n\ + 請注意:您的顯示器伺服器可能會被鎖定一會兒。 $ $ 12054 - do not translate 'xlsfonts' or '(Xlsfonts)'. $ -12054 >А夆トざ=(Xlsfonts) 棬汃ト罐睎柁\\\n\ - 侇嗄⑴䬷ざ柁邴А夆﹞⼓囷え柁旂 \\\n\ - 'xlsfonts' 杬麟﹞ +12054 「字形列示」(Xlsfonts) 動作列出您的\\\n\ + 系統可顯示的所有字形。它使用的是 \\\n\ + 'xlsfonts' 命令。 $ $ 12055 - this message was left out of the System Load (Xload) action $ defined in messages 12032 and 12033. It is the title of the load. $ -12055 侇嗄蟡蘋 +12055 系統載入 $ $ 12056 - this message was left out of the DttermConsole action $ defined in messages 12012 and 12013. It is the title of the Terminal. $ -12056 饜祰ⅵ +12056 主控台 $ ---------------------------------------------------------------------------- $ Message 12057 refers to the 'DigitalClock' action. @@ -2628,9 +2628,9 @@ $ works on. Don't translate /var/dt/appconfig/appmanager/$LOGNAME $ NOTE: make sure each line begins with a "# ". This indicates $ that it is a comment. $ -13001 # 楙咍罶涷麷倛泂氂鶈え卼囷え炟ョ \n\ +13001 # 這些資料類型定義應用於使用者在 \n\ # /var/dt/appconfig/appmanager/$LOGNAME \n\ -# 麔淰扢斕邴唈ゥ柁昡ス﹞ +# 次檔案夾中所建立的物件。 $ $ ---------------------------------------------------------------------------- $ Messages 13002 - 13008 are descriptions for the different application groups @@ -2639,42 +2639,42 @@ $ $ 13002 - this is the description for the DtApplications icon in the top level $ of the Application Manager. $ -13002 霘椵挹怚譯楙堈頝踛﹜髓瞅絒 \\\n\ - Desktop_Apps 痐譫磣隉侇嗄鶈え嶂冈漦嗢﹞ +13002 請連按兩下這個圖像,以開啟 \\\n\ + Desktop_Apps 桌上管理系統應用程式群組。 $ $ 13003 - this is the description for the Printer icon in the top level $ of the Application Manager. $ -13003 霘椵挹怚譯楙堈頝踛﹜髓瞅絒 Printers パ玿鞥\\\n\ - 鶈え嶂冈漦嗢﹞ +13003 請連按兩下這個圖像,以開啟 Printers 印表機\\\n\ + 應用程式群組。 $ $ 13004 - this is the description for the Information icon in the top level $ of the Application Manager. $ -13004 霘椵挹怚譯楙堈頝踛﹜髓瞅絒 Information 罶媢\\\n\ - 鶈え嶂冈漦嗢﹞ +13004 請連按兩下這個圖像,以開啟 Information 資訊\\\n\ + 應用程式群組。 $ $ 13005 - this is the description for the SystemAdmin icon in the top level $ of the Application Manager. $ -13005 霘椵挹怚譯楙堈頝踛﹜髓瞅絒 System_Admin 侇嗄\\\n\ - 磣隉鶈え嶂冈漦嗢﹞ +13005 請連按兩下這個圖像,以開啟 System_Admin 系統\\\n\ + 管理應用程式群組。 $ $ 13006 - this is the description for the DtTools icon located in the $ Desktop Tools folder of the Application Manager. $ -13006 霘椵挹怚譯楙堈頝踛﹜髓瞅絒 \\\n\ - Desktop_Tools 痐譫磣隉侇嗄齡怞鶈え嶂冈漦嗢﹞ +13006 請連按兩下這個圖像,以開啟 \\\n\ + Desktop_Tools 桌上管理系統工具應用程式群組。 $ $ 13007 - this is the description for the Application Manager go up icon. $ -13007 霘椵挹怚譯楙堈頝踛﹜ョ\\\n\ - 鶈え嶂冈磣隉炟斕菙崼纂嬬﹞ +13007 請連按兩下這個圖像,在\\\n\ + 應用程式管理者中提高一層。 $ $ 13008 - this is the description for the Application Manager icon. $ -13008 霘椵挹怚譯楙堈頝踛﹜髓䬷ざ\\\n\ - 瑊譫嬬柁鶈え嶂冈磣隉炟﹞ +13008 請連按兩下這個圖像,以顯示\\\n\ + 最上層的應用程式管理者。 $ ---------------------------------------------------------------------------- $ Messages 13009 - 13014 Labels for the Application Manager Icons. $ Translate all into 1 word with no blanks. @@ -2689,8 +2689,8 @@ $ $ 13015 - this is the description for the Digital_Media icon located in the $ top level of the Application Manager. $ -13015 椵挹怚譯篎頝踛髓瞅絒 \\\n\ - Digital_Media 禨⻏碄忟鶈え嶂冈漦嗢﹞ +13015 連按兩下該圖像以開啟 \\\n\ + Digital_Media 數位媒體應用程式群組。 $ $ ************************************************************************** $ ************************************************************************** @@ -2714,10 +2714,10 @@ $ $ $ 14002 and 14003 - use the same word as Message 14001 to translate 'Smit'. $ -14002 Smit 棬汃衭忴囷え炟藣蘋淂湅謑﹜隑悒欹⺼ \\\n\ - IBM 柁 'smit' 侇嗄磣隉齡怞﹞ +14002 Smit 動作要求使用者輸入根密碼,然後執行 \\\n\ + IBM 的 'smit' 系統管理工具。 $ -14003 Smit 棬汃欹⺼ IBM 柁 'smit' 侇嗄磣隉齡怞﹞ +14003 Smit 動作執行 IBM 的 'smit' 系統管理工具。 $ $ ---------------------------------------------------------------------------- $ Messages 14004 - 14005 refer to the 'Smit' action. @@ -2727,7 +2727,7 @@ $ 14004 - translate into 1 word with no blanks. $ $ 14005 - use the same word as Message 14004 to translate 'Aixterm'. $ -14005 Aixterm 棬汃絒棬纂堈 aixterm 嗈磞鞥篲鶅嶂冈﹞ +14005 Aixterm 動作啟動一個 aixterm 終端機模擬程式。 $ $ ************************************************************************** $ ************************************************************************** @@ -2750,11 +2750,11 @@ $ $ $ 15002 and 15003 - use the same word as Message 15001 to translate 'Sam'. $ -15002 Sam 棬汃衭忴囷え炟藣蘋淂湅謑﹜隑悒\\\n\ - ョ纂堈嗈磞鞥槉嵺斕欹⺼ HP 柁 'sam' 侇嗄磣隉齡怞﹞ +15002 Sam 動作要求使用者輸入根密碼,然後\\\n\ + 在一個終端機視窗中執行 HP 的 'sam' 系統管理工具。 $ -15003 Sam 棬汃ョ纂堈嗈磞鞥槉嵺斕欹⺼ HP \\\n\ - 柁 'sam' 侇嗄磣隉齡怞﹞ +15003 Sam 動作在一個終端機視窗中執行 HP \\\n\ + 的 'sam' 系統管理工具。 $ $ ---------------------------------------------------------------------------- $ Messages 15004 - 15005 refer to the 'Hpterm' action. @@ -2764,25 +2764,25 @@ $ 15004 - translate into 1 word with no blanks. $ $ 15005 - use the same word as Message 15004 to translate 'Hpterm'. $ -15005 Hpterm 棬汃絒棬 hpterm 嗈磞鞥篲鶅嶂冈﹞ +15005 Hpterm 動作啟動 hpterm 終端機模擬程式。 $ $ ---------------------------------------------------------------------------- $ Message 15006 is obsolete $ Message 15006 refers to the BMF data type. $ -15006 BMF 麔淰屼 Starbase 眭冈柁頝夆憵踛﹞ +15006 BMF 檔案含有 Starbase 格式的圖形影像。 $ $ ---------------------------------------------------------------------------- $ Messages 15007 - 15008 refer to the Hpterm Remote action. $ -15007 踸磞 Hpterm +15007 遠端 Hpterm $ $ 15008 - Do not translate 'hpterm'. $ -15008 踸磞 Hpterm 棬汃菙ざ囷え炟\\\n\ - 耰蘋侇嗄柁ボ磝, 呥ョ篎侇嗄絒棬 \\\n\ - 'hpterm' 嗈磞鞥篲鶅嶂冈﹞ 篎侇嗄\\\n\ - ⽁禕薚崷殦⑴坯踸磞欹⺼欄え﹞ +15008 遠端 Hpterm 動作提示使用者\\\n\ + 鍵入系統的名稱, 並在該系統啟動 \\\n\ + 'hpterm' 終端機模擬程式。 該系統\\\n\ + 必須正確配置可供遠端執行之用。 $ $ ---------------------------------------------------------------------------- $ Messages 15009 - 15011 refer to the Hpterm Rlogin action. @@ -2797,17 +2797,17 @@ $ $ $ 15011 - Do not translate 'rlogin' or 'hpterm'. $ -15011 Hpterm Rlogin 棬汃菙ざ囷え炟\\\n\ - 耰蘋侇嗄柁ボ磝, 瞅絒纂堈 'hpterm' \\\n\ - 嗈磞鞥篲鶅嶂冈槉嵺, 隑悒欹⺼ \\\n\ - 'rlogin' 怉怬鱗侇嗄﹞ +15011 Hpterm Rlogin 動作提示使用者\\\n\ + 鍵入系統的名稱, 開啟一個 'hpterm' \\\n\ + 終端機模擬程式視窗, 然後執行 \\\n\ + 'rlogin' 到其他系統。 $ $ ---------------------------------------------------------------------------- $ Messages 15012 - 15013 refer to the Capture Screen action. $ -15012 麜抻糬魦 +15012 擷取螢幕 $ -15013 篎棬汃鞂絒棬麜抻糬魦襬え嶂冈 +15013 該動作會啟動擷取螢幕公用程式 $ $ *************************************************************************** $ ************************************************************************** @@ -2827,9 +2827,9 @@ $ that it is a comment. Also, keep the \n\ at the end of each $ line. $ $ -16001 # Help ⑴欹⺼麔ガ楎渀⻏卼 ../dt/bin げ蠊斕﹜楙⑴逑\n\ -# 攜ョ囷え炟柁聤梏譫﹞モ笱伀泂氂譯トА⻌﹜ョ鞜え篎\n\ -# 剟鷓嶂冈欄虳﹜渿怬蠹蘋聤梏斕﹞\n +16001 # Help 可執行檔交貨時位於 ../dt/bin 目錄中,這可能\n\ +# 不在使用者的路徑上。因此特別定義下列字串,在調用該\n\ +# 客戶程式之前,將其加入路徑中。\n $ $ ---------------------------------------------------------------------------- $ Message 16002 refers to the DTHELP_HTG (*.htg) datatype. @@ -2839,12 +2839,12 @@ $ a defined datatype name and it doesn't get translated and '.htg' $ is the filename pattern which matches this datatype. Also don't $ translate ('dthelptag'). $ -16002 楙旂痐譫磣隉侇嗄赮伢諰咭侇嗄柁饜衭 HelpTag \\\n\ - 坭鳲麔淰﹞楙堈麔淰蠡柁罶媢旂伈え \\\n\ - HelpTag 簅ざ諴侔坭暋泂眭冈﹜⽁禕髓 HelpTag \\\n\ - 楗忟 ('dthelptag') 蹌㾀欄悒懼逑髲砫﹞怬罶涷麷\\\n\ - 倛ボ磝珜 DTHELP_HTG﹞DTHELP_HTG 麔淰柁\\\n\ - 棓麔ボ珜 '.htg'﹞ +16002 這是桌上管理系統輔助說明系統的主要 HelpTag \\\n\ + 來源檔案。這個檔案內的資訊是利用 \\\n\ + HelpTag 標示語言來設定格式,必須以 HelpTag \\\n\ + 軟體 ('dthelptag') 編譯之後才能察看。其資料類\\\n\ + 型名稱為 DTHELP_HTG。DTHELP_HTG 檔案的\\\n\ + 副檔名為 '.htg'。 $ $ ---------------------------------------------------------------------------- $ Message 16003 refers to the DTHELP_CTG (*.ctg) datatype. @@ -2854,12 +2854,12 @@ $ a defined datatype name and it doesn't get translated and '.ctg' $ is the filename pattern which matches this datatype. Also don't $ translate ('dthelptag') or '-canon'. $ -16003 楙旂纂堈痐譫磣隉侇嗄赮伢諰咭侇嗄襬諝柁 SGML \\\n\ - 饜衭 HelpTag 坭鳲麔淰﹞楙堈麔淰蠡柁罶媢旂\\\n\ - 伈え襬諝柁 HelpTag 簅ざ諴侔坭暋泂眭冈﹜⽁\\\n\ - 禕髓 HelpTag 楗忟 ('dthelptag') 蹌㾀欄悒懼逑髲\\\n\ - 砫﹞ 怬罶涷麷倛ボ磝珜 DTHELP_CTG﹞\\\n\ - DTHELP_CTG 麔淰柁棓麔ボ珜 '.ctg'﹞ +16003 這是一個桌上管理系統輔助說明系統公認的 SGML \\\n\ + 主要 HelpTag 來源檔案。這個檔案內的資訊是\\\n\ + 利用公認的 HelpTag 標示語言來設定格式,必\\\n\ + 須以 HelpTag 軟體 ('dthelptag') 編譯之後才能察\\\n\ + 看。 其資料類型名稱為 DTHELP_CTG。\\\n\ + DTHELP_CTG 檔案的副檔名為 '.ctg'。 $ $ ---------------------------------------------------------------------------- $ Message 16004 refers to the DTHELP_ERR (*.ctg) datatype. @@ -2869,20 +2869,20 @@ $ a defined datatype name and it doesn't get translated and '.err' $ is the filename pattern which matches this datatype. Also don't $ translate ('dthelptag') or '-canon'. $ -16004 楙堈麔淰讓屼縋儸蹌㾀柁赮伢諰咭晥忟砨驨\\\n\ - 欄箾庰蟟蠆諟﹞楙堈麔淰ⅲョ蹌㾀赮\\\n\ - 伢諰咭晥忟﹜愔鉡怉箾庰蟟蠆諟渀﹜懼\\\n\ - 鞂か dthelptag 箾庰蟟雰ぇ﹞怬罶涷麷倛\\\n\ - ボ磝珜 DTHELP_ERR﹞ DTHELP_ERR 麔\\\n\ - 淰柁棓麔ボ珜 '.err'﹞ +16004 這個檔案包含與已編譯的輔助說明容體相關\\\n\ + 之解析器錯誤。這個檔案只有在編譯輔\\\n\ + 助說明容體,偵測到解析器錯誤時,才\\\n\ + 會由 dthelptag 解析器產生。其資料類型\\\n\ + 名稱為 DTHELP_ERR。 DTHELP_ERR 檔\\\n\ + 案的副檔名為 '.err'。 $ $ ---------------------------------------------------------------------------- $ Messages 16005 - 16007 are Labels for actions. They all get mapped $ to other actions. $ -16005 蹌㾀 -16006 蹌㾀 Canon 眭冈 -16007 覗崽 +16005 編譯 +16006 編譯 Canon 格式 +16007 清除 $ $ ---------------------------------------------------------------------------- $ Messages 16008 - 16009 refer to the 'OpenHelpTag' action. @@ -2893,8 +2893,8 @@ $ $ $ 16009 - use the same word as Message 16008 to translate 'OpenHelpTag'. $ -16009 OpenHelpTag 棬汃ョ纂堈齪А蹌藟蟟斕瞅絒纂堈饜\\\n\ - 衭柁 HelpTag 麔淰 (纂堈 '.sdl' 迖 '.hv' 麔淰)﹞ +16009 OpenHelpTag 動作在一個文字編輯器中開啟一個主\\\n\ + 要的 HelpTag 檔案 (一個 '.sdl' 或 '.hv' 檔案)。 $ $ ---------------------------------------------------------------------------- $ Messages 16010 - 16012 refer to the 'HelpTag' action. @@ -2906,15 +2906,15 @@ $ $ Message 16011 - Prompt the user for the helptag file to view for the $ HelpTag action if none is provided. Do not remove the ':'. $ -16011 HelpTag 麔淰: +16011 HelpTag 檔案: $ $ 16012 - use the same word as Message 16010 to translate 'HelpTag'. $ Don't translate 'dthelpview'. $ -16012 HelpTag 棬汃逑蹌㾀饜衭柁 HelpTag \\\n\ - 麔淰﹜髓唈ゥ欹⺼渀赮伢諰咭麔淰﹞欹⺼\\\n\ - 渀麔淰⑴髓伈え赮伢諰咭侇嗄迖 'dthelpview' \\\n\ - 嶂冈﹜か栲堈嶂冈䬷ざ﹞ +16012 HelpTag 動作能編譯主要的 HelpTag \\\n\ + 檔案,以建立執行時輔助說明檔案。執行\\\n\ + 時檔案可以利用輔助說明系統或 'dthelpview' \\\n\ + 程式,由某個程式顯示。 $ $ ---------------------------------------------------------------------------- $ Messages 16013 - 16014 refer to the 'HelpTagCanon' action. @@ -2926,11 +2926,11 @@ $ $ 16014 - use the same word as Message 16013 to translate 'HelpTagCanon'. $ Don't translate 'dthelpview'. $ -16014 HelpTagCanon 棬汃⑴蹌㾀襬諝柁 SGML \\\n\ - 饜衭 HelpTag 麔淰﹜髓唈ゥ欹⺼渀赮伢\\\n\ - 諰咭麔淰﹞欹⺼渀麔淰⑴髓伈え赮伢諰\\\n\ - 咭侇嗄か鶈え嶂冈䬷ざ迖伈え 'dthelpview' 嶂冈\\\n\ - 䬷ざ﹞ +16014 HelpTagCanon 動作可編譯公認的 SGML \\\n\ + 主要 HelpTag 檔案,以建立執行時輔助\\\n\ + 說明檔案。執行時檔案可以利用輔助說\\\n\ + 明系統由應用程式顯示或利用 'dthelpview' 程式\\\n\ + 顯示。 $ $ ---------------------------------------------------------------------------- $ Messages 16015 - 16016 refer to the 'CleanHelpTag' action. @@ -2941,8 +2941,8 @@ $ $ $ 16016 - use the same word as Message 16015 to translate 'CleanHelpTag'. $ -16016 CleanHelpTag 棬汃崽⑩か HelpTag 棬汃邴唈ゥ柁蝒⺼\\\n\ - 赮伢諰咭麔淰﹞ +16016 CleanHelpTag 動作除去由 HelpTag 動作所建立的運行\\\n\ + 輔助說明檔案。 $ $ ************************************************************************** $ ************************************************************************** @@ -2961,14 +2961,14 @@ $ 17001 - Do not translate DTMAIL_FILE in the message. $ DTMAIL_FILE is a defined datatype name and it doesn't $ get translated. Also don't translate the strings "From". $ -17001 楙旂痐譫磣隉侇嗄 mailer 邴え柁麔淰扢﹞ 怬\\\n\ - 罶涷麷倛珜 DTMAIL_FILE﹞ DMMAIL_FILE 麔淰\\\n\ - 讓屼藹А蠣 "CDE-Mail-Application-MailBox-File"\\\n\ - 迖 "From"﹞ -17002 ャ砆 -17003 楙旂纂堈 MIME 媢桾/⼃楶饜忟麔淰﹞ 怬罶涷麷倛\\\n\ - 珜 DTEXTERNALBODY﹞ DTEXTERNALBODY\\\n\ - 麔淰柁棓麔ボ珜 '.ext'﹞ +17001 這是桌上管理系統 mailer 所用的檔案夾。 其\\\n\ + 資料類型為 DTMAIL_FILE。 DMMAIL_FILE 檔案\\\n\ + 包含了字元 "CDE-Mail-Application-MailBox-File"\\\n\ + 或 "From"。 +17002 回信 +17003 這是一個 MIME 訊息/外部主體檔案。 其資料類型\\\n\ + 為 DTEXTERNALBODY。 DTEXTERNALBODY\\\n\ + 檔案的副檔名為 '.ext'。 $ $ ************************************************************************** $ ************************************************************************** @@ -2977,55 +2977,55 @@ $ ************************************************************************** $ * $ * LABEL of CONTROL $ * -18001 渀㺪 +18001 時鐘 $ -18002 ⺼呦謺 +18002 行事曆 $ -18003 媊沓麔淰扢 +18003 起始檔案夾 $ -18004 齪А蹌藟蟟 +18004 文字編輯器 $ -18005 瑧ス +18005 郵件 $ -18006 蠡泂圊 +18006 內定值 $ -18007 痐譫磣隉侇嗄⼃倛冈穔 +18007 桌上管理系統外型式樣 $ -18008 鶈え嶂冈 +18008 應用程式 $ -18009 赮伢諰咭磣隉炟 +18009 輔助說明管理者 $ -18010 杶扜蛦 +18010 垃圾桶 $ -18011 孍泂 +18011 鎖定 $ -18012 齡汃斕 +18012 工作中 $ -18013 廎忒 +18013 結束 $ -18014 嗈磞鞥 +18014 終端機 $ -18015 頝踛蹌藟蟟 +18015 圖像編輯器 $ -18016 痐譫磣隉侇嗄籙蘭 +18016 桌上管理系統簡介 $ -18017 虳巖郖帣赮伢諰咭 +18017 前方面板輔助說明 $ * $ * TITLE of SUBPANEL $ * -18018 堈藺鶈え嶂冈 +18018 個人應用程式 $ -18019 赮伢諰咭 +18019 輔助說明 $ -18020 堈藺パ玿鞥 +18020 個人印表機 $ -18021 驨卼禋げ赮伢諰咭 +18021 關於項目輔助說明 $ -18022 %b%n%e戀 +18022 %b%n%e日 $ * $ * LABEL of CONTROL $ * -18023 鐖媢祰戔 +18023 聲訊控制 $ $ ************************************************************************** $ * dtscreen.dt @@ -3051,8 +3051,8 @@ $ $ 19003 - use the same word as Message 19001 to translate 'StartDtscreenHop'. $ Long Description $ -19003 StartDtscreenHop 棬汃旂侇嗄え坭絒棬 hopalong iterated \\\n\ - fractals 糬魦砵諔稹殦邴え﹞ +19003 StartDtscreenHop 動作是系統用來啟動 hopalong iterated \\\n\ + fractals 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19004 - 19006 refer to the 'StartDtscreenQix' action. @@ -3068,8 +3068,8 @@ $ $ 19006 - use the same word as Message 19004 to translate 'StartDtscreenQix'. $ Long Description $ -19006 StartDtscreenQix 棬汃旂侇嗄え坭絒棬 \\\n\ - spinning lines 糬魦砵諔稹殦邴え﹞ +19006 StartDtscreenQix 動作是系統用來啟動 \\\n\ + spinning lines 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19007 - 19009 refer to the 'StartDtscreenImage' action. @@ -3085,8 +3085,8 @@ $ $ 19009 - use the same word as Message 19007 to translate 'StartDtscreenImage'. $ Long Description $ -19009 StartDtscreenImage 棬汃旂侇嗄え坭絒棬 \\\n\ - Random bouncing image 糬魦砵諔稹殦邴え﹞ +19009 StartDtscreenImage 動作是系統用來啟動 \\\n\ + Random bouncing image 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19010 - 19012 refer to the 'StartDtscreenLife' action. @@ -3102,8 +3102,8 @@ $ $ 19012 - use the same word as Message 19010 to translate 'StartDtscreenLife'. $ Long Description $ -19012 StartDtscreenLife 棬汃旂侇嗄え坭絒棬 \\\n\ - Conway's game of Life 糬魦砵諔稹殦邴え﹞ +19012 StartDtscreenLife 動作是系統用來啟動 \\\n\ + Conway's game of Life 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19013 - 19015 refer to the 'StartDtscreenSwarm' action. @@ -3119,8 +3119,8 @@ $ $ 19015 - use the same word as Message 19013 to translate 'StartDtscreenSwarm'. $ Long Description $ -19015 StartDtscreenSwarm 棬汃旂侇嗄え坭絒棬 \\\n\ - Swarm of bees 憵踛糬魦砵諔稹殦邴え﹞ +19015 StartDtscreenSwarm 動作是系統用來啟動 \\\n\ + Swarm of bees 影像螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19016 - 19018 refer to the 'StartDtscreenRotor' action. @@ -3136,8 +3136,8 @@ $ $ 19018 - use the same word as Message 19016 to translate 'StartDtscreenRotor'. $ Long Description $ -19018 StartDtscreenRotor 棬汃旂侇嗄え坭絒棬 \\\n\ - Rotor 糬魦砵諔稹殦邴え﹞ +19018 StartDtscreenRotor 動作是系統用來啟動 \\\n\ + Rotor 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19019 - 19021 refer to the 'StartDtscreenPyro' action. @@ -3153,8 +3153,8 @@ $ $ 19021 - use the same word as Message 19019 to translate 'StartDtscreenPyro'. $ Long Description $ -19021 StartDtscreenPyro 棬汃旂侇嗄え坭絒棬 \\\n\ - Fireworks 糬魦砵諔稹殦邴え﹞ +19021 StartDtscreenPyro 動作是系統用來啟動 \\\n\ + Fireworks 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19022 - 19024 refer to the 'StartDtscreenFlame' action. @@ -3170,8 +3170,8 @@ $ $ 19024 - use the same word as Message 19022 to translate 'StartDtscreenFlame'. $ Long Description $ -19024 StartDtscreenFlame 棬汃旂侇嗄え坭絒棬 \\\n\ - Cosmic Flame Fractals 糬魦砵諔稹殦邴え﹞ +19024 StartDtscreenFlame 動作是系統用來啟動 \\\n\ + Cosmic Flame Fractals 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19025 - 19027 refer to the 'StartDtscreenWorm' action. @@ -3187,8 +3187,8 @@ $ $ 19027 - use the same word as Message 19025 to translate 'StartDtscreenWorm'. $ Long Description $ -19027 StartDtscreenWorm 棬汃旂侇嗄え坭絒棬 \\\n\ - Wiggly Worms 糬魦砵諔稹殦邴え﹞ +19027 StartDtscreenWorm 動作是系統用來啟動 \\\n\ + Wiggly Worms 螢幕省電裝置所用。 $ $ ---------------------------------------------------------------------------- $ Messages 19028 - 19030 refer to the 'StartDtscreenBlank' action. @@ -3204,8 +3204,8 @@ $ $ 19030 - use the same word as Message 19028 to translate 'StartDtscreenBlank'. $ Long Description $ -19030 StartDtscreenBlank 棬汃旂侇嗄え坭絒棬 \\\n\ - Blank Screen 糬魦砵諔稹殦邴え﹞ +19030 StartDtscreenBlank 動作是系統用來啟動 \\\n\ + Blank Screen 螢幕省電裝置所用。 $ $ ************************************************************************** $ ************************************************************************** @@ -3225,49 +3225,49 @@ $ CalendarAppointmentAttrs is a defined datatype name and it doesn't $ get translated and '.appt' is the filename pattern which matches $ this datatype. $ -20001 楙堈麔淰蠡屼縋⺼呦謺磣隉炟砨驨柁罶媢﹞\\\n\ - 怬罶涷麷倛ボ磝珜 CalendarAppointmentAttrs﹞\\\n\ - CalendarAppointmentAttrs 麔淰柁棓麔ボ\\\n\ - 珜 '.appt'﹞ +20001 這個檔案內含與行事曆管理者相關的資訊。\\\n\ + 其資料類型名稱為 CalendarAppointmentAttrs。\\\n\ + CalendarAppointmentAttrs 檔案的副檔名\\\n\ + 為 '.appt'。 $ $ ---------------------------------------------------------------------------- $ Messages 20002 - 20003 refer to the Calendar (Dtcm) action $ $ 20002 - translate into 1 word with no blanks. $ -20002 ⺼呦謺 +20002 行事曆 $ $ 20003 - Don't translate '(Dtcm)' $ -20003 >⺼呦謺=(Dtcm) 棬汃絒棬痐譫磣隉侇嗄柁\\\n\ - ⺼呦謺磣隉炟﹞ +20003 「行事曆」(Dtcm) 動作啟動桌上管理系統的\\\n\ + 行事曆管理者。 $ $ ---------------------------------------------------------------------------- $ Messages 20004 - 20005 refer to the Calendar Insert (DtcmInsert) action $ -20004 ⺼呦謺葅蘋 +20004 行事曆插入 $ $ 20005 - Don't translate (DtcmInsert). $ -20005 >⺼呦謺葅蘋=(DtcmInsert) 棬汃ョ囷え炟\\\n\ - 蠡泂柁⺼呦謺斕葅蘋纂堈諅窇﹞ +20005 「行事曆插入」(DtcmInsert) 動作在使用者\\\n\ + 內定的行事曆中插入一個預約。 $ $ ---------------------------------------------------------------------------- $ Messages 20006 - 20007 refer to the Calendar Edit (DtcmEdit) action $ $ 20006 - translate into 1 word with no blanks. $ -20006 ⺼呦謺蹌藟 +20006 行事曆編輯 $ $ 20007 - Don't translate (DtcmEdit). $ -20007 >⺼呦謺蹌藟=(DtcmEdit) 棬汃髱栲堈\\\n\ - ⺼呦謺諅窇欹⺼痼魌柁諅窇蹌藟\\\n\ - 蟟﹞ +20007 「行事曆編輯」(DtcmEdit) 動作對某個\\\n\ + 行事曆預約執行單獨的預約編輯\\\n\ + 器。 $ $ 20008 - this is and action label $ -20008 葅蘋 +20008 插入 $ $ Messages 20009 - 20010 $ These refer to the messages that appear in the error dialog @@ -3275,16 +3275,16 @@ $ when the dtcmInsert action fails. $ 20009 NOTE: the '\\\\n' represents a newline. Place these where you $ feel it's appropriate. $ -20009 楙堈窇鞂扽揧Е粡ョ睎柁\\\n\ - 戀謺\\\\n\\\n\ - モ珜蠆諟﹞ 楙堈窇鞂⑴逑\\\n\ - 眭冈\\\\n\\\n\ - 蠆諟﹜迖睎柁戀謺⑴逑隓恄揧\\\n\ - Б抻﹞ +20009 這個約會沒有被安排在您的\\\n\ + 日曆\\\\n\\\n\ + 因為有錯誤。 這個約會可能有\\\n\ + 格式\\\\n\\\n\ + 錯誤,或您的日曆可能無法被\\\n\ + 存取。 $ $ 20010 Error dialog title $ -20010 ⺼呦謺 : 蠆諟 - Е粡窇鞂 +20010 行事曆 : 錯誤 - 安排約會 $ $ ************************************************************************** $ ************************************************************************** @@ -3304,23 +3304,23 @@ $ "#". This indicates that it is a comment. Also, keep the $ \n\ at the end of each line. $ Don't translate BM and PM or .bm and .pm. $ -22001 # 楙堈麔淰斕柁怚堈罶涷麷倛 (BM 縋 PM) ⑴絒棬⻏蠣旃晛\n\ -# 縋頝踛旃晛麔淰柁 "骳坲" 頝踛﹞ 楙玿ざ怀堈頝踛麔淰 (棓麔\n\ -# ボ珜 .bm 昑 .pm 炟) 忔⑴棤嘵怉⺌冼﹜汃珜怬頝踛﹞ 楙ョ廲ៜ\n\ -# 謽堈麔淰扢柁頝踛渀哱え﹜モ珜睎攜錛衭瞅絒怀纂堈麔淰\n\ -# 坭栯砫 -- 頝踛ヾ冼祼⑴髓鷥玿﹞\n\ +22001 # 這個檔案中的兩個資料類型 (BM 與 PM) 可啟動位元映射\n\ +# 與圖像映射檔案的 "實例" 圖像。 這表示每個圖像檔案 (副檔\n\ +# 名為 .bm 和 .pm 者) 均可參照到自身,作為其圖像。 這在瀏覽\n\ +# 整個檔案夾的圖像時很有用,因為您不需要開啟每一個檔案\n\ +# 來查看 -- 圖像本身就可以代表。\n\ #\n\ -# 衭絒棬骳坲頝踛﹜霘渿楙堈麔淰闀蕍怉睎媊沓麔淰扢柁 .dt/types/ \n\ -# 麔淰扢斕﹜隑悒适隞蟡蘋棬汃縋罶涷麷倛罶涷梬﹞(衭适隞蟡\n\ -# 蘋棬汃縋罶涷麷倛罶涷梬﹜睎⑴髓僳罐悒适隞僳蘋﹜迖旂ョ鶈\n\ -# え嶂冈磣隉炟柁 DtTools 麔淰扢斕欹⺼ ReloadApps 棬汃﹞\n\ +# 要啟動實例圖像,請將這個檔案複製到您起始檔案夾的 .dt/types/ \n\ +# 次檔案夾中,然後重新載入動作與資料類型資料庫。(要重新載\n\ +# 入動作與資料類型資料庫,您可以登出後重新登入,或是在應\n\ +# 用程式管理者的 DtTools 檔案夾中執行 ReloadApps 動作。\n\ #\n\ -# 霘恞蜑”か卼幺抻縋䬷ざ⺌衲頝踛錛衭籧⼃柁齡汃﹜モョ楙咍罶涷\n\ -# 昑麷倛絒棬柁硠扃譯﹜麔淰磣隉炟柁欹⺼楬唄⑴逑鞂䨣鴀﹞\n\ +# 請注意:由於讀取與顯示自訂圖像需要額外的工作,因此在這些資料\n\ +# 和類型啟動的情況下,檔案管理者的執行速度可能會變慢。\n\ #\n\ -# 衭⣷楙咍罶涷麷倛䨣ャ蠡泂柁頝踛﹜霘皕睎堈藺柁 .dt/types/ \n\ -# 麔淰扢斕崽⑩楙堈麔淰﹜隑悒适隞蟡蘋棬汃縋罶涷麷倛\n\ -# 罶涷梬﹞ +# 要讓這些資料類型變回內定的圖像,請從您個人的 .dt/types/ \n\ +# 次檔案夾中除去這個檔案,然後重新載入動作與資料類型\n\ +# 資料庫。 $ $ $ ************************************************************************** @@ -3340,34 +3340,34 @@ $ that it is a comment. Also, keep the \n\ at the end of each $ line. $ $ -23001 # 纂郫痐譫磣隉侇嗄蘄頨 (CDE) 棬汃罶涷梬泂氂\n\ +23001 # 一般桌上管理系統環境 (CDE) 動作資料庫定義\n\ #\n\ -# 楙堈麔淰斕邴泂氂柁棬汃﹜皕纂郫棬汃柁衭忴﹜坲\n\ -# ヵ "齪А蹌藟蟟"﹜怉笱泂柁鶈え嶂冈﹜ヵ "Vi"﹞蚍\n\ -# 衭⺌衲堈藺斿ヾ柁髱鶈﹜霘渿楙堈麔淰闀蕍怉 \n\ -# $HOME/.dt/types/user-prefs.dt﹜隑悒渿ズ MAP_ACTION \n\ -# 庍睎衭欹⺼柁棬汃﹞\n\ +# 這個檔案中所定義的動作,從一般動作的要求,例\n\ +# 如 "文字編輯器",到特定的應用程式,如 "Vi"。若\n\ +# 要自訂個人版本的對應,請將這個檔案複製到 \n\ +# $HOME/.dt/types/user-prefs.dt,然後將任何 MAP_ACTION \n\ +# 改成您要執行的動作。\n\ #\n\ -# 衭痤洁睎柁侇嗄⑴髓囷え婛咍棬汃﹜霘皕虳巖郖帣\n\ -# 瞅絒鶈え嶂冈磣隉炟坭廲ៜ﹞ -23002 # 衭囷え盻 dtmail 柁瑧ス嶂冈﹜霘珜睎柁瑧ス嶂冈泂氂\n\ -# 纂堈棬汃﹜隑悒抻鷥 Dtmail﹞\n -23003 # 衭囷え 'vi' 汃珜睎柁齪А蹌藟蟟﹜霘渿 'Dtpad' (CDE \n\ -# 柁 Motif 齪А蹌藟蟟) 庍 'Vi'﹞\n -23004 # 纂郫痐譫磣隉侇嗄蘄頨 (CDE) 蠡泂柁嗈磞鞥篲鶅嶂冈珜 Dtterm﹞\n -23005 # 衭囷え SPCD 踸磞 Dtterm﹜霘渿 'RemoteDttermRlogin' \n\ -# 庍 'RemoteDttermSpcd'﹞\n -23006 # 衭囷え SPCD 踸磞 Xterm﹜霘渿 'RemoteXtermRlogin' \n\ -# 庍 'RemoteXtermSpcd'﹞\n +# 要得知您的系統可以使用哪些動作,請從前方面板\n\ +# 開啟應用程式管理者來瀏覽。 +23002 # 要使用非 dtmail 的郵件程式,請為您的郵件程式定義\n\ +# 一個動作,然後取代 Dtmail。\n +23003 # 要使用 'vi' 作為您的文字編輯器,請將 'Dtpad' (CDE \n\ +# 的 Motif 文字編輯器) 改成 'Vi'。\n +23004 # 一般桌上管理系統環境 (CDE) 內定的終端機模擬程式為 Dtterm。\n +23005 # 要使用 SPCD 遠端 Dtterm,請將 'RemoteDttermRlogin' \n\ +# 改成 'RemoteDttermSpcd'。\n +23006 # 要使用 SPCD 遠端 Xterm,請將 'RemoteXtermRlogin' \n\ +# 改成 'RemoteXtermSpcd'。\n $ $ -------------------------------------------------------------- $ Messages 23007 - 23011 are LABEL's for actions. $ -------------------------------------------------------------- -23007 瑧ス嶂冈 +23007 郵件程式 $ -23008 齪А蹌藟蟟 +23008 文字編輯器 $ -23009 嗈磞鞥 +23009 終端機 $ 23010 RemoteDtterm $ @@ -3376,28 +3376,28 @@ $ $ -------------------------------------------------------------- $ Messages 23012 - 23016 are DESCRIPTIONS of actions $ -------------------------------------------------------------- -23012 瑧ス嶂冈棬汃欹⺼囷え炟晻ン柁\\\n\ - 瑧ス嶂冈﹞ +23012 郵件程式動作執行使用者偏好的\\\n\ + 郵件程式。 $ -23013 >齪А蹌藟蟟=棬汃欹⺼囷え炟晻ン柁\\\n\ - 齪А蹌藟蟟﹞ +23013 「文字編輯器」動作執行使用者偏好的\\\n\ + 文字編輯器。 $ -23014 >嗈磞鞥=棬汃欹⺼囷え炟晻ン柁\\\n\ - 嗈磞鞥篲鶅嶂冈﹞ +23014 「終端機」動作執行使用者偏好的\\\n\ + 終端機模擬程式。 $ -23015 RemoteDtterm 棬汃欹⺼囷え炟晻ン柁\\\n\ - ョ攜フ鞥蟟譫絒棬 dtterm 柁巖冈﹞ +23015 RemoteDtterm 動作執行使用者偏好的\\\n\ + 在不同機器上啟動 dtterm 的方式。 $ -23016 RemoteXterm 棬汃欹⺼囷え炟晻ン柁\\\n\ - ョ攜フ鞥蟟譫絒棬 xterm 柁巖冈﹞ +23016 RemoteXterm 動作執行使用者偏好的\\\n\ + 在不同機器上啟動 xterm 的方式。 $ $ New action for user-pref's - the Trash $ -23017 # 纂郫痐譫磣隉侇嗄蘄頨 (CDE) 蠡泂柁麔淰杶扜蛦旂 Dttrash﹞\n -23018 杶扜蛦 +23017 # 一般桌上管理系統環境 (CDE) 內定的檔案垃圾桶是 Dttrash。\n +23018 垃圾桶 $ -23019 >杶扜蛦=棬汃欹⺼囷え炟晻ン柁\\\n\ - 杶扜蛦剟鷓嶂冈﹞ +23019 「垃圾桶」動作執行使用者偏好的\\\n\ + 垃圾桶客戶程式。 $ $ $ ************************************************************************** @@ -3417,16 +3417,16 @@ $ 24001 - Do not translate BIP or '.bip' in the message. BIP is a defined $ datatype name and it doesn't get translated and '.bip' is the $ filename pattern which matches this datatype. $ -24001 楙堈麔淰讓屼痐譫磣隉侇嗄鶈え嶂冈唈ゥ\\\n\ - 炟柁篲嗢漦罶涷﹞怬罶涷麷倛ボ磝珜 \\\n\ - BIP﹞ BIP 麔淰柁棓麔ボ珜 '.bip'﹞ +24001 這個檔案包含桌上管理系統應用程式建立\\\n\ + 者的模組群資料。其資料類型名稱為 \\\n\ + BIP。 BIP 檔案的副檔名為 '.bip'。 $ $ Message 24002 is the description of the BIP 'Open' action. $ Don't translate (*.bip). $ -24002 楙堈棬汃髓欹⺼鶈え嶂冈唈ゥ炟﹜呥蟡蘋篎麔柁\\\n\ - 巖冈﹜瞅絒纂堈鶈え嶂冈唈ゥ炟篲嗢漦﹜\\\n\ - 麔淰 (*.bip)﹞ +24002 這個動作以執行應用程式建立者,並載入該檔的\\\n\ + 方式,開啟一個應用程式建立者模組群,\\\n\ + 檔案 (*.bip)。 $ $ ---------------------------------------------------------------------------- $ Messages 24003 - 24004 refer to the BIL (*.bil) datatype. @@ -3435,16 +3435,16 @@ $ 24003 - Do not translate BIL or '.bil' in the message. BIL is a defined $ datatype name and it doesn't get translated and '.bil' is the $ filename pattern which matches this datatype. $ -24003 楙堈麔淰讓屼痐譫磣隉侇嗄鶈え嶂冈唈ゥ炟柁\\\n\ - 篲嗢罶涷﹞ 怬罶涷麷倛珜 BIL﹞ BIL 麔\\\n\ - 淰柁棓麔ボ珜 '.bil'﹞ +24003 這個檔案包含桌上管理系統應用程式建立者的\\\n\ + 模組資料。 其資料類型為 BIL。 BIL 檔\\\n\ + 案的副檔名為 '.bil'。 $ $ Message 24004 is the description of the BIL 'Open' action. $ Don't translate (*.bil). $ -24004 楙堈棬汃髓欹⺼鶈え嶂冈唈ゥ炟﹜呥蟡蘋篎麔柁\\\n\ - 巖冈﹜瞅絒纂堈鶈え嶂冈唈ゥ炟篲嗢﹜\\\n\ - 麔淰 (*.bil)﹞ +24004 這個動作以執行應用程式建立者,並載入該檔的\\\n\ + 方式,開啟一個應用程式建立者模組,\\\n\ + 檔案 (*.bil)。 $ $ ---------------------------------------------------------------------------- $ Messages 24005 - 24006 refer to the BIX (*.bix) datatype. @@ -3454,52 +3454,52 @@ $ BIX, BIP, and BIL is a defined datatype name and it doesn't get $ translated and '.bix' is the filename pattern which matches this $ data type. $ -24005 楙堈麔淰讓屼痐譫磣隉侇嗄鶈え嶂冈唈ゥ炟柁\\\n\ - 篲嗢漦柁邴篲嗢漦 (BIP) 縋篲嗢 (BIL) \\\n\ - 麔淰罶涷﹞ 怬罶涷麷倛珜 BIX﹞ BIX 麔\\\n\ - 淰柁棓麔ボ珜 '.bix'﹞ +24005 這個檔案包含桌上管理系統應用程式建立者的\\\n\ + 模組群的所有模組群 (BIP) 與模組 (BIL) \\\n\ + 檔案資料。 其資料類型為 BIX。 BIX 檔\\\n\ + 案的副檔名為 '.bix'。 $ $ Message 24006 is the description of the BIX 'Open' action. $ Don't translate (*.bix). $ -24006 楙堈棬汃髓欹⺼鶈え嶂冈唈ゥ炟﹜呥蟡蘋篎麔柁\\\n\ - 巖冈﹜瞅絒纂堈鶈え嶂冈唈ゥ炟讓蕅柁篲\\\n\ - 嗢漦麔淰 (*.bil)﹞ +24006 這個動作以執行應用程式建立者,並載入該檔的\\\n\ + 方式,開啟一個應用程式建立者包裹的模\\\n\ + 組群檔案 (*.bil)。 $ $ ---------------------------------------------------------------------------- $ Messages 24007 - 24008 refer to the Dtappbuild action $ $ 24007 - translate into 1 word with no blanks. $ -24007 鶈え嶂冈唈ゥ炟 +24007 應用程式建立者 $ $ 24008 - Don't translate '(Dtappbuild)' $ -24008 >鶈え嶂冈唈ゥ炟=(Dtappbuild) 棬汃欹⺼\\\n\ - 痐譫磣隉侇嗄鶈え嶂冈唈ゥ炟﹞ +24008 「應用程式建立者」(Dtappbuild) 動作執行\\\n\ + 桌上管理系統應用程式建立者。 $ $ ---------------------------------------------------------------------------- $ Messages 24009 - 24012 refer to the CodeGen action $ $ 24009 - translate into 1 word with no blanks. $ -24009 謑雰ぇ蟟 +24009 碼產生器 $ $ Message 24010 - Prompt the user for the Application builder project file $ (*.bip)for which to work with. Do not remove the ':'. $ -24010 篲嗢漦麔淰 (*.bip): +24010 模組群檔案 (*.bip): $ $ For Message 24011 do not localize \\$DIR_NAME. It is an environment variable $ which contains a folder name. This is an error message that gets output $ when the user doesn't input of provide an folder to the CodeGen action. $ -24011 蠆諟”\\$DIR_NAME 攜旂纂堈麔淰扢﹞ +24011 錯誤:\\$DIR_NAME 不是一個檔案夾。 $ $ 24012 - don't translate '(CodeGen)' $ -24012 >謑雰ぇ蟟=(CodeGen) 棬汃欹⺼痐譫磣隉侇嗄鶈え嶂冈\\\n\ - 柁謑雰ぇ蟟﹞ +24012 「碼產生器」(CodeGen) 動作執行桌上管理系統應用程式\\\n\ + 的碼產生器。 $ $ ************************************************************************** $ ************************************************************************** @@ -3515,34 +3515,34 @@ $ $ ---------------------------------------------------------------------------- $ Messages 25001 - 25002 refer to the Xcalc action $ -25001 X 衶磭鞥 +25001 X 計算機 $ $ 25002 - Don't translate xcalc, TI-30, or HP-10C. $ -25002 Xcalc 棬汃鞜え X 剟鷓嶂冈﹞ \\\n\ - xcalc 剟鷓嶂冈旂纂堈⑴篲鶅 TI-30 迖 HP-10C \\\n\ - 柁秠蟨倛衶磭鞥痐譫磣隉嶂冈崷ス﹞ +25002 Xcalc 動作調用 X 客戶程式。 \\\n\ + xcalc 客戶程式是一個可模擬 TI-30 或 HP-10C \\\n\ + 的科學型計算機桌上管理程式配件。 $ $ ---------------------------------------------------------------------------- $ Messages 25003 - 25004 refer to the OvalClock (Oclock) action $ -25003 蹖蓛渀㺪 +25003 橢圓時鐘 $ $ 25004 - Don't translate (Oclock) or oclock. $ -25004 >蹖蓛渀㺪=(Oclock) 棬汃鞜え oclock \\\n\ - X 剟鷓嶂冈﹞ oclock 剟鷓嶂冈髓挴嵁巖冈\\\n\ - 䬷ざげ虳渀睮﹞ +25004 「橢圓時鐘」(Oclock) 動作調用 oclock \\\n\ + X 客戶程式。 oclock 客戶程式以指針方式\\\n\ + 顯示目前時間。 $ $ ---------------------------------------------------------------------------- $ Messages 25005 - 25006 refer to the List Atoms (Xlsatoms) action $ -25005 トざ蠣袓 +25005 列示元素 $ $ 25006 - Don't translate (Xlsatoms), xlsatoms, and Xlsatoms. $ -25006 >トざ蠣袓=(Xlsatoms) 棬汃鞜え xlsatoms \\\n\ - X 剟鷓嶂冈﹞ Xlsatoms ト罐揧暋迻柁蠣袓﹞ +25006 「列示元素」(Xlsatoms) 動作調用 xlsatoms \\\n\ + X 客戶程式。 Xlsatoms 列出被設限的元素。 $ $ ---------------------------------------------------------------------------- $ Messages 25007 - 25008 refer to the Xbiff action @@ -3551,11 +3551,11 @@ $ $ $ 25008 - Don't translate xbiff. $ -25008 Xbiff 棬汃鞜え xbiff X 剟鷓嶂冈﹞\\\n\ - xbiff 嶂冈䬷ざ纂堈麵麵柁瑧謜頝踛﹞\\\n\ - 蚍扽瑧ス﹜瑧謜譫郖柁憿騵\\\n\ - 攜鞂讀媊﹞ヵ峈瑧ス﹜衧憿騵鞂\\\n\ - 讀媊﹜瑧謜鞂僛罐韏鐖﹞ +25008 Xbiff 動作調用 xbiff X 客戶程式。\\\n\ + xbiff 程式顯示一個小小的郵箱圖像。\\\n\ + 若沒有郵件,郵箱上面的旗子\\\n\ + 不會升起。如果有郵件,則旗子會\\\n\ + 升起,郵箱會發出嗶聲。 $ $ ---------------------------------------------------------------------------- $ Messages 25009 - 25010 refer to the Xcolor action @@ -3564,26 +3564,26 @@ $ $ $ 25010 - Don't translate xcolor. $ -25010 Xcolor 棬汃鞜え xcolor X 剟鷓嶂冈﹞\\\n\ - xcolor ョ槉嵺斕䬷ざ邴柁 256 ⺪﹞\\\n\ - 撋睎渿酮簅傶怉槉嵺斕渀﹜伒鞂Е\\\n\ - 稹纂堈屼⺪唄玿 (斕纂泂\\\n\ - 柁顒唄縋矨唄) 柁⺪痝髱嘵玿﹜\\\n\ - フ渀羼砉絅膌く﹞ +25010 Xcolor 動作調用 xcolor X 客戶程式。\\\n\ + xcolor 在視窗中顯示所有的 256 色。\\\n\ + 當您將游標移到視窗中時,即會安\\\n\ + 裝一個含有色度表 (中有一定\\\n\ + 的濃度與亮度) 的色彩對照表,\\\n\ + 同時仍保留黑白。 $ $ ---------------------------------------------------------------------------- $ Messages 25011 - 25012 refer to the Cut and Select (Xcutsel) action $ -25011 椌抻縋藞抻 +25011 剪取與選取 $ $ 25012 - Don't translate (Xcutsel) and xcutsel. $ -25012 椌抻縋藞抻 (Xcutsel) 棬汃鞜え藹\\\n\ - xcutsel X 剟鷓嶂冈﹞ xcutsel 剟鷓嶂冈え坭\\\n\ - 渿げ虳藞抻楶禳柁棓ヾ闀蕍怉纂堈椌抻邅\\\n\ - 鍙棷﹜呥渿讓屼椌抻邅鍙棷蠡晥柁楶禳藞\\\n\ - 抻媊坭﹞ ⼓⑴汃珜攜菙坯藞抻衢逑縋菙坯\\\n\ - 藞抻衢逑柁鶈え嶂冈怚炟欄睮柁蹥篳﹞ +25012 剪取與選取 (Xcutsel) 動作調用了\\\n\ + xcutsel X 客戶程式。 xcutsel 客戶程式用來\\\n\ + 將目前選取部分的副本複製到一個剪取緩\\\n\ + 衝區,並將包含剪取緩衝區內容的部分選\\\n\ + 取起來。 它可作為不提供選取功能與提供\\\n\ + 選取功能的應用程式兩者之間的橋樑。 $ $ ---------------------------------------------------------------------------- $ Messages 25013 - 25014 refer to the Xditview action @@ -3592,9 +3592,9 @@ $ $ $ 25014 - Don't translate xditview or ditroff. $ -25014 Xditview 棬汃鞜え xditview X 剟鷓嶂冈﹞\\\n\ - xditview 嶂冈鞂渿 ditroff 藣罐䬷ざョ\\\n\ - 纂堈 X 䬷ざ蟟糬魦譫﹞ +25014 Xditview 動作調用 xditview X 客戶程式。\\\n\ + xditview 程式會將 ditroff 輸出顯示在\\\n\ + 一個 X 顯示器螢幕上。 $ $ ---------------------------------------------------------------------------- $ Messages 25015 - 25016 refer to the Xedit action @@ -3603,16 +3603,16 @@ $ $ $ 25016 - Don't translate xedit. $ -25016 Xedit 棬汃鞜え xedit X 剟鷓嶂冈﹞\\\n\ - xedit 剟鷓嶂冈菙坯纂堈屼ⅹ堈棷棦柁\\\n\ - 槉嵺”1. 杬麟栠”纂嗢逑⣷睎廎忒 xedit﹝\\\n\ - 鬊Б麔淰﹝迖ョ蹌藟槉嵺斕蟡蘋纂堈隞麔\\\n\ - 柁杬麟﹞ 2. 媢桾槉嵺”䬷ざ xedit 媢桾﹞ \\\n\ - ⼃﹜楙堈槉嵺籔⑴髓汃珜侇嗄穛Б棷﹞ \\\n\ - 3. 麔ボ䬷ざ蟟”䬷ざげ虳蹌藟斕柁麔淰ボ\\\n\ - 磝﹜髓轡楙堈麔淰旂匢⑴髓幺嬣﹜迖炟ⅲ\\\n\ - 逑幺抻﹞ 4. 蹌藟槉嵺”䬷ざ睎蹌藟迖唈\\\n\ - ゥ欄麔淰柁ボ磝﹞ +25016 Xedit 動作調用 xedit X 客戶程式。\\\n\ + xedit 客戶程式提供一個含有四個區域的\\\n\ + 視窗:1. 命令段:一組能讓您結束 xedit、\\\n\ + 儲存檔案、或在編輯視窗中載入一個新檔\\\n\ + 的命令。 2. 訊息視窗:顯示 xedit 訊息。 \\\n\ + 此外,這個視窗還可以作為系統暫存區。 \\\n\ + 3. 檔名顯示器:顯示目前編輯中的檔案名\\\n\ + 稱,以及這個檔案是否可以讀寫,或者只\\\n\ + 能讀取。 4. 編輯視窗:顯示您正編輯或建\\\n\ + 立之檔案的名稱。 $ $ ---------------------------------------------------------------------------- $ Messages 25017 - 25018 refer to the Xlock action @@ -3621,9 +3621,9 @@ $ $ $ 25018 - Don't translate xlock. $ -25018 Xlock 棬汃鞜え xlock X ɵ峇蟟﹞\\\n\ - xlock 剟鷓嶂冈孍泂 X 䬷ざ蟟﹜纂枺怉\\\n\ - 藣蘋湅謑悒懼逑箾崽﹞ +25018 Xlock 動作調用 xlock X 伺服器。\\\n\ + xlock 客戶程式鎖定 X 顯示器,一直到\\\n\ + 輸入密碼後才能解除。 $ $ ---------------------------------------------------------------------------- $ Messages 25019 - 25020 refer to the Xlogo action @@ -3632,26 +3632,26 @@ $ $ $ 25020 - Don't translate xlogo. $ -25020 Xlogo 棬汃鞜え xlogo X 剟鷓嶂冈﹞\\\n\ - xlogo 剟鷓嶂冈䬷ざ X 槉嵺侇嗄柁\\\n\ - 簅諲﹞ +25020 Xlogo 動作調用 xlogo X 客戶程式。\\\n\ + xlogo 客戶程式顯示 X 視窗系統的\\\n\ + 標誌。 $ $ ---------------------------------------------------------------------------- $ Messages 25021 - 25022 refer to the Magnify (Xmag) action $ -25021 勂騰 +25021 放大 $ $ 25022 - Don't translate (Xmag) or xmag. $ -25022 >勂騰=(Xmag) 棬汃鞜え xmag X 剟鷓嶂冈﹞\\\n\ - xmag 剟鷓嶂冈逑⣷睎渿 X 槉嵺汔楶勂\\\n\ - 騰﹞ ヵ峈扽咭薚ユ挴泂棷棦﹜祼鞂\\\n\ - 䬷ざ纂堈巖夆﹜挴簅⻏卼⼢譫侜﹜鷥\\\n\ - 玿衭勂騰柁棷棦﹞ 楙堈棷棦⑴髓挹⻖僶\\\n\ - 趡挹瘖 2 芼⼃邳怉錛衭柁騰麵﹞ 纂^藞\\\n\ - 抻ン棷棦﹜祼鞂聧罐纂堈槉嵺﹜䬷ざ勂\\\n\ - 騰柁穔騵﹜怬斕坭鳲憵踛柁怀堈頝踛痼\\\n\ - 蠣楁鞂髓フ⺪柁麵巖夆鷥玿﹞ +25022 「放大」(Xmag) 動作調用 xmag X 客戶程式。\\\n\ + xmag 客戶程式能讓您將 X 視窗局部放\\\n\ + 大。 如果沒有明確地指定區域,就會\\\n\ + 顯示一個正方形,指標位於左上角,代\\\n\ + 表要放大的區域。 這個區域可以按住滑\\\n\ + 鼠按鈕 2 往外拉到需要的大小。 一旦選\\\n\ + 取好區域,就會跳出一個視窗,顯示放\\\n\ + 大的樣子,其中來源影像的每個圖像單\\\n\ + 元都會以同色的小正方形代表。 $ $ ---------------------------------------------------------------------------- $ Messages 25023 - 25024 refer to the Xman action @@ -3661,59 +3661,59 @@ $ $ 25024 - use the same word as Message 20023 to translate 'Xman' $ Also, don't translate xman. $ -25024 Xman 棬汃鞜え xman X 剟鷓嶂冈﹞\\\n\ - xman 剟鷓嶂冈旂纂堈葰伢諰咭郟廲ៜ蟟﹞ +25024 Xman 動作調用 xman X 客戶程式。\\\n\ + xman 客戶程式是一個援助說明頁瀏覽器。 $ $ ---------------------------------------------------------------------------- $ Messages 25025 - 25026 refer to the X Mail Handler (Xmh) action $ -25025 X 瑧ス搢隉蟟 +25025 X 郵件處理器 $ $ 25026 - don't translate Xmh, xmh, or MH. $ -25026 X 瑧ス搢隉蟟 (Xmh) 棬汃鞜え xmh \\\n\ - X 剟鷓嶂冈﹞xmh 剟鷓嶂冈菙坯纂堈\\\n\ - 頝夆冈柁囷え炟蘭郖﹜髓囷え MH 媢桾\\\n\ - 搢隉侇嗄﹞ 翍衭髱睎柁瑧ス欹⺼棬汃\\\n\ - 渀﹜⼓鞂昋ⅰ MH 孲稹楗忟﹞ 諔騵瑧ス\\\n\ - 媢桾⑴髓檎嬣﹝婽罐﹝稌﹝ャ鷋﹝鼲\\\n\ - 婽﹝粡囥﹝髓轡鬊Бョ麔淰扢蠡﹞ xmh \\\n\ - 呥菙坯ペ瞗鞥逑﹜坯睎⺌衲囷え炟蘭郖﹞ +25026 X 郵件處理器 (Xmh) 動作調用 xmh \\\n\ + X 客戶程式。xmh 客戶程式提供一個\\\n\ + 圖形式的使用者介面,以使用 MH 訊息\\\n\ + 處理系統。 真正要對您的郵件執行動作\\\n\ + 時,它會呼叫 MH 套裝軟體。 電子郵件\\\n\ + 訊息可以撰寫、送出、接收、回覆、轉\\\n\ + 送、排序、以及儲存在檔案夾內。 xmh \\\n\ + 並提供各種機能,供您自訂使用者介面。 $ $ ---------------------------------------------------------------------------- $ Messages 25027 - 25028 refer to the Eyes (Xeyes) action $ -25027 僊斳 +25027 眼睛 $ $ 25028 - Don't translate xeyes. $ -25028 >僊斳=(Xeyes) 棬汃鞜え xeyes X 剟鷓嶂冈﹞\\\n\ - xeyes 剟鷓嶂冈䬷ざ纂灛僊斳﹜翦襙睎柁挴簅\\\n\ - ョ䬷ざ蟟譫傶棬﹞ +25028 「眼睛」(Xeyes) 動作調用 xeyes X 客戶程式。\\\n\ + xeyes 客戶程式顯示一雙眼睛,跟隨您的指標\\\n\ + 在顯示器上移動。 $ $ ---------------------------------------------------------------------------- $ Messages 25029 - 25030 refer to the X Authority (Xauth) action $ -25029 X 筅ḷ +25029 X 授權 $ $ 25030 - Don't translate (Xauth) or xauth. $ -25030 >X 筅ḷ=(Xauth) 棬汃鞜え xauth X 剟\\\n\ - 鷓嶂冈﹞ xauth 剟鷓嶂冈⑴え坭蹌藟縋䬷\\\n\ - ざ椵稌怉 X ɵ峇蟟柁筅ḷ罶媢﹞ +25030 「X 授權」(Xauth) 動作調用 xauth X 客\\\n\ + 戶程式。 xauth 客戶程式可用來編輯與顯\\\n\ + 示連接到 X 伺服器的授權資訊。 $ $ ---------------------------------------------------------------------------- $ Messages 25031 - 25032 refer to the List Clients (Xlsclients) action $ -25031 トざ剟鷓嶂冈 +25031 列示客戶程式 $ $ 25032 - Don't translate (Xlsclients) or xlsclients. $ -25032 >トざ剟鷓嶂冈=(Xlsclients) 棬汃鞜え\\\n\ - xlsclients X 剟鷓嶂冈﹞ xlsclients 剟鷓嶂冈旂\\\n\ - 纂堈襬え嶂冈﹜⑴ト罐糬魦譫欹⺼柁剟鷓\\\n\ - 嶂冈柁砨驨罶媢﹞ ⼓⑴髓え坭雰ぇ杬麟碬﹜\\\n\ - 鷥玿囷え炟げ虳瞃栠汃鞄柁妐嘵﹞ +25032 「列示客戶程式」(Xlsclients) 動作調用\\\n\ + xlsclients X 客戶程式。 xlsclients 客戶程式是\\\n\ + 一個公用程式,可列出螢幕上正執行的客戶\\\n\ + 程式的相關資訊。 它可以用來產生命令集,\\\n\ + 代表使用者目前階段作業的快照。 $ $ ---------------------------------------------------------------------------- $ Messages 25033 - 25036 refer to the Change Password (Passwd) action @@ -3725,24 +3725,24 @@ $ providing a title to where the user is to change the password. $ Translate "Changing password" and adjust "----------------" to the same $ size of "Changing password". $ -25034 彶庍湅謑 +25034 更改密碼 25035 -------- $ $ 25036 - Don't translate (Passwd). $ -25036 >彶庍湅謑=(Passwd) 棬汃囷え 'passwd' \\\n\ - 杬麟坭庍䨣囷え炟湅謑﹞ +25036 「更改密碼」(Passwd) 動作使用 'passwd' \\\n\ + 命令來改變使用者密碼。 $ $ ---------------------------------------------------------------------------- $ Messages 25037 - 25038 refer to the X Puzzle (Xpuzzle) action $ -25037 X 捋頝 +25037 X 拼圖 $ $ 25038 - Don't translate (Xpuzzle) or xpuzzle. $ -25038 >X 捋頝=(Xpuzzle) 棬汃鞜え \\\n\ - xpuzzle X 剟鷓嶂冈﹞ xpuzzle 剟鷓嶂冈旂纂堈\\\n\ - 4x4 15 蘿柁捋頝﹞ +25038 「X 拼圖」(Xpuzzle) 動作調用 \\\n\ + xpuzzle X 客戶程式。 xpuzzle 客戶程式是一個\\\n\ + 4x4 15 片的拼圖。 $ ************************************************************************** $ ************************************************************************** $ * miscImages.dt (Example image datatypes shipped in an example folder) @@ -3761,9 +3761,9 @@ $ message. Sun-raster is a defined datatype name and it doesn't get $ translated and "0x59a66a95" is the CONTENT pattern used to match $ this datatype. $ -26001 楙堈麔淰屼纂堈 Sun-raster 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝伒珜 Sun-raster﹞\\\n\ - Sun-raster 麔淰讓屼畈柁 "0x59a66a95"﹞ +26001 這個檔案含有一個 Sun-raster 格式的圖形影像。\\\n\ + 其資料類型名稱即為 Sun-raster。\\\n\ + Sun-raster 檔案包含長的 "0x59a66a95"。 $ $ ---------------------------------------------------------------------------- $ Messages 26002 is the description of the pict-file datatype. @@ -3772,15 +3772,15 @@ $ message. pict-file is a defined datatype name and it doesn't get $ translated and '.PICT' and '.pict' are the filename patterns used $ to match this datatype. $ -26002 楙堈麔淰屼纂堈 Macintosh PICT 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 pict-file﹞\\\n\ - pict-file 麔淰柁棓麔ボ珜 '.PICT' \\\n\ - 迖 '.pict'﹞ +26002 這個檔案含有一個 Macintosh PICT 格式的圖形影像。\\\n\ + 其資料類型名稱為 pict-file。\\\n\ + pict-file 檔案的副檔名為 '.PICT' \\\n\ + 或 '.pict'。 $ $ 26003 - This message is used by the pict-file datatype. It is the error $ message when a user tries to "Open" a pict-file file. $ -26003 隓恄瞅絒 - 扽 pict-file 麔淰髲砫蟟﹞ +26003 無法開啟 - 沒有 pict-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26004 is the description of the ppm-file datatype. @@ -3789,15 +3789,15 @@ $ message. ppm-file is a defined datatype name and it doesn't get $ translated and "P6", and "P3" are the CONTENT patterns used to match $ this datatype. $ -26004 楙堈麔淰屼纂堈 Poskanser Protable Pixmap 眭冈柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 ppm-file﹞\\\n\ - ppm-file 麔淰屼А蠣 "P6" \\\n\ - 迖 "P3"﹞ +26004 這個檔案含有一個 Poskanser Protable Pixmap 格式的圖形\\\n\ + 影像。 其資料類型名稱為 ppm-file。\\\n\ + ppm-file 檔案含有字元 "P6" \\\n\ + 或 "P3"。 $ $ 26005 - This message is used by the ppm-file datatype. It is the error $ message when a user tries to "Open" a ppm-file file. $ -26005 隓恄瞅絒 - 扽 ppm-file 麔淰髲砫蟟﹞ +26005 無法開啟 - 沒有 ppm-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26006 is the description of the pj-file datatype. @@ -3805,14 +3805,14 @@ $ 26006 - Do not translate pj-file, '.pj' in the message. pj-file is a $ defined datatype name and it doesn't get translated and '.pj' is $ the filename pattern used to match this datatype. $ -26006 楙堈麔淰屼纂堈 HP PaintJet 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 pj-file﹞\\\n\ - pj-file 麔淰柁棓麔ボ珜 '.pj'﹞ +26006 這個檔案含有一個 HP PaintJet 格式的圖形影像。\\\n\ + 其資料類型名稱為 pj-file。\\\n\ + pj-file 檔案的副檔名為 '.pj'。 $ $ 26007 - This message is used by the pj-file datatype. It is the error $ message when a user tries to "Open" a pj-file file. $ -26007 隓恄瞅絒 - 扽 pj-file 麔淰髲砫蟟﹞ +26007 無法開啟 - 沒有 pj-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26008 is the description of the pgm-file datatype. @@ -3821,14 +3821,14 @@ $ message. pgm-file is a defined datatype name and it doesn't get $ translated and "P5", and "P2" are the CONTENT patterns used to match $ this datatype. $ -26008 楙堈麔淰屼纂堈 Portable Graymap 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 pgm-file﹞\\\n\ - pgm-file 麔淰屼А蠣 "p5" 迖 "p2"﹞ +26008 這個檔案含有一個 Portable Graymap 格式的圖形影像。\\\n\ + 其資料類型名稱為 pgm-file。\\\n\ + pgm-file 檔案含有字元 "p5" 或 "p2"。 $ $ 26009 - This message is used by the pgm-file datatype. It is the error $ message when a user tries to "Open" a pgm-file file. $ -26009 隓恄瞅絒 - 扽 pgm-file 麔淰髲砫蟟﹞ +26009 無法開啟 - 沒有 pgm-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26010 is the description of the pbm-file datatype. @@ -3837,14 +3837,14 @@ $ message. pbm-file is a defined datatype name and it doesn't get $ translated and "P4", and "P1" are the CONTENT patterns used to match $ this datatype. $ -26010 楙堈麔淰屼纂堈 Poskanser Portable Bitmap 眭冈柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 pbm-file﹞\\\n\ - pbm-file 麔淰屼А蠣 "P4" 迖 "P1"﹞ +26010 這個檔案含有一個 Poskanser Portable Bitmap 格式的圖形\\\n\ + 影像。 其資料類型名稱為 pbm-file。\\\n\ + pbm-file 檔案含有字元 "P4" 或 "P1"。 $ $ 26011 - This message is used by the pbm-file datatype. It is the error $ message when a user tries to "Open" a pbm-file file. $ -26011 隓恄瞅絒 - 扽 pbm-file 麔淰髲砫蟟﹞ +26011 無法開啟 - 沒有 pbm-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26012 is the description of the ilbm-file datatype. @@ -3853,15 +3853,15 @@ $ message. ilbm-file is a defined datatype name and it doesn't get $ translated and '.ilbm', and "ILBM" are the filename or CONTENT $ patterns used to match this datatype. $ -26012 楙堈麔淰屼纂堈 Amiga's IFF ILBM 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 ilbm-file﹞\\\n\ - ilbm-file 麔淰柁棓麔ボ珜 '.ilbm'﹜\\\n\ - 迖屼А蠣 "ILBM"﹞ +26012 這個檔案含有一個 Amiga's IFF ILBM 格式的圖形影像。\\\n\ + 其資料類型名稱為 ilbm-file。\\\n\ + ilbm-file 檔案的副檔名為 '.ilbm',\\\n\ + 或含有字元 "ILBM"。 $ $ 26013 - This message is used by the ilbm-file datatype. It is the error $ message when a user tries to "Open" an ilbm-file file. $ -26013 隓恄瞅絒 - 扽 ilbm-file 麔淰髲砫蟟﹞ +26013 無法開啟 - 沒有 ilbm-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26014 is the description of the pi1-file datatype. @@ -3869,14 +3869,14 @@ $ 26014 - Do not translate pi1, pi1-file, '.pi1' in the message. pi1-file is a $ defined datatype name and it doesn't get translated and '.pi1' is $ the filename pattern used to match this datatype. $ -26014 楙堈麔淰屼纂堈 Atari Degas pil 眭冈柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 pil-file﹞\\\n\ - pil-file 麔淰柁棓麔ボ珜 '.pil'﹞ +26014 這個檔案含有一個 Atari Degas pil 格式的圖形\\\n\ + 影像。 其資料類型名稱為 pil-file。\\\n\ + pil-file 檔案的副檔名為 '.pil'。 $ $ 26015 - This message is used by the pi1-file datatype. It is the error $ message when a user tries to "Open" a pi1-file file. $ -26015 隓恄瞅絒 - 扽 pil-file 麔淰髲砫蟟﹞ +26015 無法開啟 - 沒有 pil-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26016 is the description of the pcx-file datatype. @@ -3884,14 +3884,14 @@ $ 26016 - Do not translate PCX, pcx-file, '.pcx' in the message. pcx-file is a $ defined datatype name and it doesn't get translated and '.pcx' is $ the filename pattern used to match this datatype. $ -26016 楙堈麔淰屼纂堈 PC Paintbrush PCX 眭冈柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 pcx-file﹞\\\n\ - pcx-file 麔淰柁棓麔ボ珜 '.pcx'﹞ +26016 這個檔案含有一個 PC Paintbrush PCX 格式的圖形\\\n\ + 影像。 其資料類型名稱為 pcx-file。\\\n\ + pcx-file 檔案的副檔名為 '.pcx'。 $ $ 26017 - This message is used by the pcx-file datatype. It is the error $ message when a user tries to "Open" a pcx-file file. $ -26017 隓恄瞅絒 - 扽 pcx-file 麔淰髲砫蟟﹞ +26017 無法開啟 - 沒有 pcx-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26018 is the description of the tga-file datatype. @@ -3899,14 +3899,14 @@ $ 26018 - Do not translate tga-file, '.tga' in the message. tga-file is a $ defined datatype name and it doesn't get translated and '.tga' is $ the filename pattern used to match this datatype. $ -26018 楙堈麔淰屼纂堈 TrueVision Targa 眭冈柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 tga-file﹞\\\n\ - pga-file 麔淰柁棓麔ボ珜 '.tga'﹞ +26018 這個檔案含有一個 TrueVision Targa 格式的圖形\\\n\ + 影像。 其資料類型名稱為 tga-file。\\\n\ + pga-file 檔案的副檔名為 '.tga'。 $ $ 26019 - This message is used by the tga-file datatype. It is the error $ message when a user tries to "Open" a tga-file file. $ -26019 隓恄瞅絒 - 扽 tga-file 麔淰髲砫蟟﹞ +26019 無法開啟 - 沒有 tga-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26020 is the description of the yuv-file datatype. @@ -3914,14 +3914,14 @@ $ 26020 - Do not translate YUV, yuv-file, '.yuv' in the message. yuv-file is a $ defined datatype name and it doesn't get translated and '.yuv' is $ the filename pattern used to match this datatype. $ -26020 楙堈麔淰屼纂堈 Abekas YUV 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 yuv-file﹞\\\n\ - yuv-file 麔淰柁棓麔ボ珜 '.yuv'﹞ +26020 這個檔案含有一個 Abekas YUV 格式的圖形影像。\\\n\ + 其資料類型名稱為 yuv-file。\\\n\ + yuv-file 檔案的副檔名為 '.yuv'。 $ $ 26021 - This message is used by the yuv-file datatype. It is the error $ message when a user tries to "Open" a yuv-file file. $ -26021 隓恄瞅絒 - 扽 yuv-file 麔淰髲砫蟟﹞ +26021 無法開啟 - 沒有 yuv-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26022 is the description of the xim-file datatype. @@ -3929,14 +3929,14 @@ $ 26022 - Do not translate xim, xim-file, '.xim' in the message. xim-file is a $ defined datatype name and it doesn't get translated and '.xim' is $ the filename pattern used to match this datatype. $ -26022 楙堈麔淰屼纂堈 xim 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 xim-file﹞\\\n\ - xim-file 麔淰柁棓麔ボ珜 '.xim'﹞ +26022 這個檔案含有一個 xim 格式的圖形影像。\\\n\ + 其資料類型名稱為 xim-file。\\\n\ + xim-file 檔案的副檔名為 '.xim'。 $ $ 26023 - This message is used by the xim-file datatype. It is the error $ message when a user tries to "Open" a xim-file file. $ -26023 隓恄瞅絒 - 扽 xim-file 麔淰髲砫蟟﹞ +26023 無法開啟 - 沒有 xim-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26024 is the description of the mtv-file datatype. @@ -3944,14 +3944,14 @@ $ 26024 - Do not translate MTV, PRT, mtv-file, '.mtv' in the message. $ mtv-file is a defined datatype name and it doesn't get translated $ and '.mtv' is the filename pattern used to match this datatype. $ -26024 楙堈麔淰屼纂堈 MTV/PRT ray-tracer 藣罐眭冈\\\n\ - 柁頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 mtv-file﹞\\\n\ - mtv-file 麔淰柁棓麔ボ珜 '.mtv'﹞ +26024 這個檔案含有一個 MTV/PRT ray-tracer 輸出格式\\\n\ + 的圖形影像。 其資料類型名稱為 mtv-file。\\\n\ + mtv-file 檔案的副檔名為 '.mtv'。 $ $ 26025 - This message is used by the mtv-file datatype. It is the error $ message when a user tries to "Open" a mtv-file file. $ -26025 隓恄瞅絒 - 扽 mtv-file 麔淰髲砫蟟﹞ +26025 無法開啟 - 沒有 mtv-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26026 is the description of the qrt-file datatype. @@ -3959,14 +3959,14 @@ $ 26026 - Do not translate QRT, qrt-file, '.qrt' in the message. qrt-file is a $ defined datatype name and it doesn't get translated and '.qrt' is $ the filename pattern used to match this datatype. $ -26026 楙堈麔淰屼纂堈 QRT ray-tracer 藣罐眭冈柁\\\n\ - 頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 qrt-file﹞\\\n\ - qrt-file 麔淰柁棓麔ボ珜 '.qrt'﹞ +26026 這個檔案含有一個 QRT ray-tracer 輸出格式的\\\n\ + 圖形影像。 其資料類型名稱為 qrt-file。\\\n\ + qrt-file 檔案的副檔名為 '.qrt'。 $ $ 26027 - This message is used by the qrt-file datatype. It is the error $ message when a user tries to "Open" a qrt-file file. $ -26027 隓恄瞅絒 - 扽 qrt-file 麔淰髲砫蟟﹞ +26027 無法開啟 - 沒有 qrt-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26028 is the description of the imgw-file datatype. @@ -3974,14 +3974,14 @@ $ 26028 - Do not translate Img-whatnot, imgw-file, '.imgw' in the message. $ imgw-file is a defined datatype name and it doesn't get translated $ and '.imgw' is the filename pattern used to match this datatype. $ -26028 楙堈麔淰屼纂堈 Img-whatnot 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 imgw-file﹞\\\n\ - imgw-file 麔淰柁棓麔ボ珜 '.imgw'﹞ +26028 這個檔案含有一個 Img-whatnot 格式的圖形影像。\\\n\ + 其資料類型名稱為 imgw-file。\\\n\ + imgw-file 檔案的副檔名為 '.imgw'。 $ $ 26029 - This message is used by the imgw-file datatype. It is the error $ message when a user tries to "Open" a imgw-file file. $ -26029 隓恄瞅絒 - 扽 imgw-file 麔淰髲砫蟟﹞ +26029 無法開啟 - 沒有 imgw-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26030 is the description of the sld-file datatype. @@ -3989,14 +3989,14 @@ $ 26030 - Do not translate sld-file, '.sld' in the message. sld-file is a $ defined datatype name and it doesn't get translated and '.sld' is $ the filename pattern used to match this datatype. $ -26030 楙堈麔淰屼纂堈 AutoCAD slide 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 sld-file﹞\\\n\ - sld-file 麔淰柁棓麔ボ珜 '.sld'﹞ +26030 這個檔案含有一個 AutoCAD slide 格式的圖形影像。\\\n\ + 其資料類型名稱為 sld-file。\\\n\ + sld-file 檔案的副檔名為 '.sld'。 $ $ 26031 - This message is used by the sld-file datatype. It is the error $ message when a user tries to "Open" a sld-file file. $ -26031 隓恄瞅絒 - 扽 sld-file 麔淰髲砫蟟﹞ +26031 無法開啟 - 沒有 sld-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26032 is the description of the spc-file datatype. @@ -4004,14 +4004,14 @@ $ 26032 - Do not translate Atari, spc-file, '.spc' in the message. spc-file $ is a defined datatype name and it doesn't get translated and '.spc' $ is the filename pattern used to match this datatype. $ -26032 楙堈麔淰屼纂堈 Atari compressed Spectrum 眭冈柁\\\n\ - 頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 spc-file﹞\\\n\ - spc-file 麔淰柁棓麔ボ珜 '.spc'﹞ +26032 這個檔案含有一個 Atari compressed Spectrum 格式的\\\n\ + 圖形影像。 其資料類型名稱為 spc-file。\\\n\ + spc-file 檔案的副檔名為 '.spc'。 $ $ 26033 - This message is used by the spc-file datatype. It is the error $ message when a user tries to "Open" a spc-file file. $ -26033 隓恄瞅絒 - 扽 spc-file 麔淰髲砫蟟﹞ +26033 無法開啟 - 沒有 spc-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26034 is the description of the spu-file datatype. @@ -4019,14 +4019,14 @@ $ 26034 - Do not translate Atari, spu-file, '.spu' in the message. spu-file $ is a defined datatype name and it doesn't get translated and '.spu' $ is the filename pattern used to match this datatype. $ -26034 楙堈麔淰屼纂堈 Atari uncompress Spectrum 眭冈柁\\\n\ - 頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 spu-file﹞\\\n\ - spu-file 麔淰柁棓麔ボ珜 '.spu'﹞ +26034 這個檔案含有一個 Atari uncompress Spectrum 格式的\\\n\ + 圖形影像。 其資料類型名稱為 spu-file。\\\n\ + spu-file 檔案的副檔名為 '.spu'。 $ $ 26035 - This message is used by the spu-file datatype. It is the error $ message when a user tries to "Open" a spu-file file. $ -26035 隓恄瞅絒 - 扽 spu-file 麔淰髲砫蟟﹞ +26035 無法開啟 - 沒有 spu-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26036 is the description of the gould-file datatype. @@ -4034,14 +4034,14 @@ $ 26036 - Do not translate Gould, gould-file, '.gould' in the message. $ gould-file is a defined datatype name and it doesn't get translated $ and '.gould' is the filename pattern used to match this datatype. $ -26036 楙堈麔淰屼纂堈 Gould scanner 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 gould-file﹞\\\n\ - gould-file 麔淰柁棓麔ボ珜 '.gould'﹞ +26036 這個檔案含有一個 Gould scanner 格式的圖形影像。\\\n\ + 其資料類型名稱為 gould-file。\\\n\ + gould-file 檔案的副檔名為 '.gould'。 $ $ 26037 - This message is used by the gould-file datatype. It is the error $ message when a user tries to "Open" a gould-file file. $ -26037 隓恄瞅絒 - 扽 gould-file 麔淰髲砫蟟﹞ +26037 無法開啟 - 沒有 gould-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26038 is the description of the raw-file datatype. @@ -4049,14 +4049,14 @@ $ 26038 - Do not translate rgb, raw-file, '.raw' in the message. raw-file a $ is a defined datatype name and it doesn't get translated and '.raw' $ is the filename pattern used to match this datatype. $ -26038 楙堈麔淰屼纂堈 raw rgb bytes 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 raw-file﹞\\\n\ - raw-file 麔淰柁棓麔ボ珜 '.raw'﹞ +26038 這個檔案含有一個 raw rgb bytes 格式的圖形影像。\\\n\ + 其資料類型名稱為 raw-file。\\\n\ + raw-file 檔案的副檔名為 '.raw'。 $ $ 26039 - This message is used by the raw-file datatype. It is the error $ message when a user tries to "Open" a raw-file file. $ -26039 隓恄瞅絒 - 扽 raw-file 麔淰髲砫蟟﹞ +26039 無法開啟 - 沒有 raw-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26040 is the description of the rgb3-file datatype. @@ -4064,14 +4064,14 @@ $ 26040 - Do not translate rgb3-file, '.rgb3' in the message. rgb3-file is a $ defined datatype name and it doesn't get translated and '.rgb3' is $ the filename pattern used to match this datatype. $ -26040 楙堈麔淰屼纂堈 three portable graymaps 眭冈柁\\\n\ - 頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 rgb3-file﹞\\\n\ - rgb3-file 麔淰柁棓麔ボ珜 '.rgb3'﹞ +26040 這個檔案含有一個 three portable graymaps 格式的\\\n\ + 圖形影像。 其資料類型名稱為 rgb3-file。\\\n\ + rgb3-file 檔案的副檔名為 '.rgb3'。 $ $ 26041 - This message is used by the rgb3-file datatype. It is the error $ message when a user tries to "Open" a rgb3-file file. $ -26041 隓恄瞅絒 - 扽 rgb3-file 麔淰髲砫蟟﹞ +26041 無法開啟 - 沒有 rgb3-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26042 is the description of the fs-file datatype. @@ -4079,14 +4079,14 @@ $ 26042 - Do not translate fs-file, '.fs' in the message. fs-file is a $ defined datatype name and it doesn't get translated and '.fs' is $ the filename pattern used to match this datatype. $ -26042 楙堈麔淰屼纂堈 Usenix FaceSaver 眭冈柁\\\n\ - 頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 fs-file﹞\\\n\ - fs-file 麔淰柁棓麔ボ珜 '.fs'﹞ +26042 這個檔案含有一個 Usenix FaceSaver 格式的\\\n\ + 圖形影像。 其資料類型名稱為 fs-file。\\\n\ + fs-file 檔案的副檔名為 '.fs'。 $ $ 26043 - This message is used by the fs-file datatype. It is the error $ message when a user tries to "Open" a fs-file file. $ -26043 隓恄瞅絒 - 扽 rs-file 麔淰髲砫蟟﹞ +26043 無法開啟 - 沒有 rs-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26044 is the description of the fits-file datatype. @@ -4094,14 +4094,14 @@ $ 26044 - Do not translate FITS, fits-file, '.fits' in the message. fits-file $ is a defined datatype name and it doesn't get translated and '.fits' $ is the filename pattern used to match this datatype. $ -26044 楙堈麔淰屼纂堈 FITS 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 fits-file﹞\\\n\ - fits-file 麔淰柁棓麔ボ珜 '.fits'﹞ +26044 這個檔案含有一個 FITS 格式的圖形影像。\\\n\ + 其資料類型名稱為 fits-file。\\\n\ + fits-file 檔案的副檔名為 '.fits'。 $ $ 26045 - This message is used by the fits-file datatype. It is the error $ message when a user tries to "Open" a fits-file file. $ -26045 隓恄瞅絒 - 扽 fits-file 麔淰髲砫蟟﹞ +26045 無法開啟 - 沒有 fits-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26046 is the description of the lispm-file datatype. @@ -4110,15 +4110,15 @@ $ in the message. lispm-file is a defined datatype name and it doesn't $ get translated and '.lispm', and "This is a BitMap file" are the $ filename or CONTENT patterns used to match this datatype. $ -26046 楙堈麔淰屼纂堈 Lisp Machine bit-array-file 眭冈柁頝夆\\\n\ - 憵踛﹞ 怬罶涷麷倛ボ磝珜 lispm-file﹞\\\n\ - lispm-file 麔淰柁棓麔ボ珜 '.lispm'﹜\\\n\ - 迖屼А蠣 "This is a BitMap file"﹞ +26046 這個檔案含有一個 Lisp Machine bit-array-file 格式的圖形\\\n\ + 影像。 其資料類型名稱為 lispm-file。\\\n\ + lispm-file 檔案的副檔名為 '.lispm',\\\n\ + 或含有字元 "This is a BitMap file"。 $ $ 26047 - This message is used by the lispm-file datatype. It is the error $ message when a user tries to "Open" an lispm-file file. $ -26047 隓恄瞅絒 - 扽 lispm-file 麔淰髲砫蟟﹞ +26047 無法開啟 - 沒有 lispm-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26048 is the description of the rawg-file datatype. @@ -4126,14 +4126,14 @@ $ 26048 - Do not translate rawg-file, '.rawg' in the message. rawg-file is a $ defined datatype name and it doesn't get translated and '.rawg' is $ the filename pattern used to match this datatype. $ -26048 楙堈麔淰屼纂堈 raw grayscale butes 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 rawg-file﹞\\\n\ - rawg-file 麔淰柁棓麔ボ珜 '.rawg'﹞ +26048 這個檔案含有一個 raw grayscale butes 格式的圖形影像。\\\n\ + 其資料類型名稱為 rawg-file。\\\n\ + rawg-file 檔案的副檔名為 '.rawg'。 $ $ 26049 - This message is used by the rawg-file datatype. It is the error $ message when a user tries to "Open" a rawg-file file. $ -26049 隓恄瞅絒 - 扽 rawg-file 麔淰髲砫蟟﹞ +26049 無法開啟 - 沒有 rawg-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ No 26050 message @@ -4143,14 +4143,14 @@ $ 26051 - Do not translate MacPaint, mac-file, '.mac' in the message. $ mac-file is a defined datatype name and it doesn't get translated $ and '.mac' is the filename pattern used to match this datatype. $ -26051 楙堈麔淰屼纂堈 MacPaint 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 mac-file﹞\\\n\ - mac-file 麔淰柁棓麔ボ珜 '.mac'﹞ +26051 這個檔案含有一個 MacPaint 格式的圖形影像。\\\n\ + 其資料類型名稱為 mac-file。\\\n\ + mac-file 檔案的副檔名為 '.mac'。 $ $ 26052 - This message is used by the mac-file datatype. It is the error $ message when a user tries to "Open" a mac-file file. $ -26052 隓恄瞅絒 - 扽 mac-file 麔淰髲砫蟟﹞ +26052 無法開啟 - 沒有 mac-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26053 is the description of the atk-file datatype. @@ -4158,14 +4158,14 @@ $ 26053 - Do not translate atk-file, '.atk' in the message. atk-file is a $ defined datatype name and it doesn't get translated and '.atk' is $ the filename pattern used to match this datatype. $ -26053 楙堈麔淰屼纂堈 Andrew Toolkit raster 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 atk-file﹞\\\n\ - atk-file 麔淰柁棓麔ボ珜 '.atk'﹞ +26053 這個檔案含有一個 Andrew Toolkit raster 格式的圖形影像。\\\n\ + 其資料類型名稱為 atk-file。\\\n\ + atk-file 檔案的副檔名為 '.atk'。 $ $ 26054 - This message is used by the atk-file datatype. It is the error $ message when a user tries to "Open" a atk-file file. $ -26054 隓恄瞅絒 - 扽 atk-file 麔淰髲砫蟟﹞ +26054 無法開啟 - 沒有 atk-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26055 is the description of the brush-file datatype. @@ -4173,14 +4173,14 @@ $ 26055 - Do not translate brush-file, '.brush' in the message. brush-file $ is a defined datatype name and it doesn't get translated and $ '.brush' is the filename pattern used to match this datatype. $ -26055 楙堈麔淰屼纂堈 doodle brush 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 brush-file﹞\\\n\ - brush-file 麔淰柁棓麔ボ珜 '.brush'﹞ +26055 這個檔案含有一個 doodle brush 格式的圖形影像。\\\n\ + 其資料類型名稱為 brush-file。\\\n\ + brush-file 檔案的副檔名為 '.brush'。 $ $ 26056 - This message is used by the brush-file datatype. It is the error $ message when a user tries to "Open" a brush-file file. $ -26056 隓恄瞅絒 - 扽 brush-file 麔淰髲砫蟟﹞ +26056 無法開啟 - 沒有 brush-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26057 is the description of the cmu-file datatype. @@ -4189,15 +4189,15 @@ $ message. cmu-file is a defined datatype name and it doesn't get $ translated and '.cmu', and "\361\0\100\273" are the filename or $ CONTENT patterns used to match this datatype. $ -26057 楙堈麔淰屼纂堈 CMU window manager bitmap 眭冈柁\\\n\ - 頝夆憵踛﹞ 怬罶涷麷倛ボ磝珜 cmu-file﹞\\\n\ - cmu-file 麔淰柁棓麔ボ珜 '.cmu'﹜\\\n\ - 迖屼А蠣 "\\361\\0\\100\\273"﹞ +26057 這個檔案含有一個 CMU window manager bitmap 格式的\\\n\ + 圖形影像。 其資料類型名稱為 cmu-file。\\\n\ + cmu-file 檔案的副檔名為 '.cmu',\\\n\ + 或含有字元 "\\361\\0\\100\\273"。 $ $ 26058 - This message is used by the cmu-file datatype. It is the error $ message when a user tries to "Open" an cmu-file file. $ -26058 隓恄瞅絒 - 扽 cmu-file 麔淰髲砫蟟﹞ +26058 無法開啟 - 沒有 cmu-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26059 is the description of the mgr-file datatype. @@ -4206,15 +4206,15 @@ $ message. mgr-file is a defined datatype name and it doesn't get $ translated and '.mgr', and "yz" are the filename or CONTENT $ patterns used to match this datatype. $ -26059 楙堈麔淰屼纂堈 MGR bitmap 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 mgr-file﹞\\\n\ - mgr-file 麔淰柁棓麔ボ珜 '.mgr'﹜\\\n\ - 迖屼А蠣 "yz"﹞ +26059 這個檔案含有一個 MGR bitmap 格式的圖形影像。\\\n\ + 其資料類型名稱為 mgr-file。\\\n\ + mgr-file 檔案的副檔名為 '.mgr',\\\n\ + 或含有字元 "yz"。 $ $ 26060 - This message is used by the mgr-file datatype. It is the error $ message when a user tries to "Open" an mgr-file file. $ -26060 隓恄瞅絒 - 扽 mgr-file 麔淰髲砫蟟﹞ +26060 無法開啟 - 沒有 mgr-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26061 is the description of the g3-file datatype. @@ -4222,14 +4222,14 @@ $ 26061 - Do not translate g3-file, '.g3' in the message. g3-file is a $ defined datatype name and it doesn't get translated and '.g3' is $ the filename pattern used to match this datatype. $ -26061 楙堈麔淰屼纂堈 Group 3 fax 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 g3-file﹞\\\n\ - g3-file 麔淰柁棓麔ボ珜 '.g3'﹞ +26061 這個檔案含有一個 Group 3 fax 格式的圖形影像。\\\n\ + 其資料類型名稱為 g3-file。\\\n\ + g3-file 檔案的副檔名為 '.g3'。 $ $ 26062 - This message is used by the g3-file datatype. It is the error $ message when a user tries to "Open" a g3-file file. $ -26062 隓恄瞅絒 - 扽 g3-file 麔淰髲砫蟟﹞ +26062 無法開啟 - 沒有 g3-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26063 is the description of the img-file datatype. @@ -4237,14 +4237,14 @@ $ 26063 - Do not translate GEM, IMG, img-file, '.img' in the message. $ img-file is a defined datatype name and it doesn't get translated $ and '.img' is the filename pattern used to match this datatype. $ -26063 楙堈麔淰屼纂堈 GEM IMG 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 img-file﹞\\\n\ - img-file 麔淰柁棓麔ボ珜 '.img'﹞ +26063 這個檔案含有一個 GEM IMG 格式的圖形影像。\\\n\ + 其資料類型名稱為 img-file。\\\n\ + img-file 檔案的副檔名為 '.img'。 $ $ 26064 - This message is used by the img-file datatype. It is the error $ message when a user tries to "Open" a img-file file. $ -26064 隓恄瞅絒 - 扽 img-file 麔淰髲砫蟟﹞ +26064 無法開啟 - 沒有 img-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26065 is the description of the pi3-file datatype. @@ -4252,14 +4252,14 @@ $ 26065 - Do not translate pi3, pi3-file, '.pi3' in the message. pi3-file is $ a defined datatype name and it doesn't get translated and '.pi3' is $ the filename pattern used to match this datatype. $ -26065 楙堈麔淰屼纂堈 Atari Degas pi3 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 pi3-file﹞\\\n\ - pi3-file 麔淰柁棓麔ボ珜 '.pi3'﹞ +26065 這個檔案含有一個 Atari Degas pi3 格式的圖形影像。\\\n\ + 其資料類型名稱為 pi3-file。\\\n\ + pi3-file 檔案的副檔名為 '.pi3'。 $ $ 26066 - This message is used by the pi3-file datatype. It is the error $ message when a user tries to "Open" a pi3-file file. $ -26066 隓恄瞅絒 - 扽 pi3-file 麔淰髲砫蟟﹞ +26066 無法開啟 - 沒有 pi3-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26067 is the description of the xbm-file datatype. @@ -4267,14 +4267,14 @@ $ 26067 - Do not translate xbm-file, '.xbm' in the message. xbm-file is a $ defined datatype name and it doesn't get translated and '.xbm' is $ the filename pattern used to match this datatype. $ -26067 楙堈麔淰屼纂堈 X Bitmap 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 xbm-file﹞\\\n\ - xbm-file 麔淰柁棓麔ボ珜 '.xbm'﹞ +26067 這個檔案含有一個 X Bitmap 格式的圖形影像。\\\n\ + 其資料類型名稱為 xbm-file。\\\n\ + xbm-file 檔案的副檔名為 '.xbm'。 $ $ 26068 - This message is used by the xbm-file datatype. It is the error $ message when a user tries to "Open" a xbm-file file. $ -26068 隓恄瞅絒 - 扽 xbm-file 麔淰髲砫蟟﹞ +26068 無法開啟 - 沒有 xbm-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26069 is the description of the ybm-file datatype. @@ -4283,31 +4283,31 @@ $ message. ybm-file is a defined datatype name and it doesn't get $ translated and '.ybm', and "!!" are the filename or CONTENT $ patterns used to match this datatype. $ -26069 楙堈麔淰屼纂堈 Benet Yee's face 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 ybm-file﹞\\\n\ - ybm-file 麔淰柁棓麔ボ珜 '.ybm'﹜\\\n\ - 迖屼А蠣 "!!"﹞ +26069 這個檔案含有一個 Benet Yee's face 格式的圖形影像。\\\n\ + 其資料類型名稱為 ybm-file。\\\n\ + ybm-file 檔案的副檔名為 '.ybm',\\\n\ + 或含有字元 "!!"。 $ $ 26070 - This message is used by the ybm-file datatype. It is the error $ message when a user tries to "Open" an ybm-file file. $ -26070 隓恄瞅絒 - 扽 ybm-file 麔淰髲砫蟟﹞ +26070 無法開啟 - 沒有 ybm-file 檔案察看器。 $ $ Messages 26071 is the description of the hips-file datatype. $ 26071 - Do not translate HIPS, hips-file, '.hips' in the message. hips-file $ is a defined datatype name and it doesn't get translated and '.hips' $ is the filename pattern used to match this datatype. $ -26071 楙堈麔淰屼纂堈 HIPS 眭冈柁頝夆憵踛﹞\\\n\ - 怬罶涷麷倛ボ磝珜 hips-file﹞\\\n\ - hips-file 麔淰柁棓麔ボ珜 '.hips'﹞ +26071 這個檔案含有一個 HIPS 格式的圖形影像。\\\n\ + 其資料類型名稱為 hips-file。\\\n\ + hips-file 檔案的副檔名為 '.hips'。 $ $ Messages 26072 is used by the hips-file datatype. It is the error $ message when a user tries to "Open" a hips-file file. $ 26072 - Do not translate hips-file in the message. hips-file is a $ defined datatype name and it doesn't get translated. $ -26072 隓恄瞅絒 - 扽 hips-file 麔淰髲砫蟟﹞ +26072 無法開啟 - 沒有 hips-file 檔案察看器。 $ $ ---------------------------------------------------------------------------- $ Messages 26073 is the description of the photocd-file datatype. @@ -4316,26 +4316,26 @@ $ photocd-file is a defined datatype name and it doesn't get translated $ and '.pcd',and '.PCD' are the filename patterns used to match $ this datatype. $ -26073 楙堈麔淰讓屼頝夆憵踛 photocd 柁眭冈﹞ \\\n\ - 怬罶涷麷倛磝珜 photocd-file﹞ \\\n\ - photocd-file 麔淰柁眃麔ボ珜 \\\n\ - '.pcd' 迖 '.PCD'. +26073 這個檔案包含圖形影像 photocd 的格式。 \\\n\ + 其資料類型稱為 photocd-file。 \\\n\ + photocd-file 檔案的附檔名為 \\\n\ + '.pcd' 或 '.PCD'. $ $ Messages 26074 is used by the photocd-file datatype. It is the error $ message when a user tries to "Open" a photocd-file file. $ 26074 - Do not translate photocd-file in the message. photocd-file is a $ defined datatype name and it doesn't get translated. $ -26074 隓恄瞅絒 - 扽 photocd-file 麔淰髲砫蟟. +26074 無法開啟 - 沒有 photocd-file 檔案察看器. $ $ ---------------------------------------------------------------------------- $ $ Datatype labels - below is a list of datatype labels that need to $ be translated. $ -27001 痐譫磣隉侇嗄鶈え嶂冈 -27002 痐譫磣隉侇嗄齡怞 -27003 侇嗄磣隉 +27001 桌上管理系統應用程式 +27002 桌上管理系統工具 +27003 系統管理 $ $ $ "NEW-" diff --git a/cde/programs/localized/zh_TW.UTF-8/types/action.tmsg b/cde/programs/localized/zh_TW.UTF-8/types/action.tmsg index 0cd9d3c6a..c4b634749 100644 --- a/cde/programs/localized/zh_TW.UTF-8/types/action.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/types/action.tmsg @@ -31,17 +31,17 @@ $ Messages 1 - 11 are 1 continuous comment, make sure you put the "#" at the $ start of each new line. Use all 1 - 11 to translate if needed. Leave $ any line empty with a '#' if the message is not needed. $ -1 # 楙堈麔淰鷥玿纂堈>纂郫痐譫磣隉侇嗄蘄頨=(CDE; -2 # Common Desktop Environment) 柁棬汃﹞楙堈麔淰柁蠡晥隓驨篕衭“ -3 # 伒囷楙堈麔淰旂洠柁﹜嶂冈楁⑴髓欹⺼﹞ヵ峈楙堈麔淰旂纂堈⑴ -4 # 欹⺼麔﹜靨麔ボ昑棬汃罶涷梬斕ズ纂禋げ (*.dt 麔淰) 柁ボ磝砨嗃﹜ -5 # CDE 麔淰磣隉炟祼鞂渿楙堈麔淰槉珜纂堈棬汃﹞ +1 # 這個檔案代表一個「一般桌上管理系統環境」(CDE; +2 # Common Desktop Environment) 的動作。這個檔案的內容無關緊要; +3 # 即使這個檔案是空的,程式都可以執行。如果這個檔案是一個可 +4 # 執行檔,且檔名和動作資料庫中任一項目 (*.dt 檔案) 的名稱相符, +5 # CDE 檔案管理者就會將這個檔案視為一個動作。 6 # -7 # ヵ錛驨棬汃柁箯嗏罶媢﹜霘棤櫇 CDE 鷗癱﹞ +7 # 如需有關動作的詳細資訊,請參閱 CDE 手冊。 8 # 9 # 10 # 11 # $ $ -12 纂郫痐譫磣隉侇嗄蘄頨 (CDE) 棬汃﹞霘囷え麔淰磣隉炟鞜え﹞ +12 一般桌上管理系統環境 (CDE) 動作。請使用檔案管理者調用。 From e201ef0a7baf66a22566c834f432b34ad2c51ffd Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Sun, 25 Dec 2022 03:30:39 +0000 Subject: [PATCH 07/47] dtwm: add a new feature -- window rename. --- cde/doc/de_DE.UTF-8/help/FPanel/Ref.sgm | 33 ++ cde/doc/en_US.UTF-8/help/FPanel/Ref.sgm | 29 ++ cde/doc/es_ES.UTF-8/help/FPanel/Ref.sgm | 35 ++ cde/doc/fr_FR.UTF-8/help/FPanel/Ref.sgm | 34 ++ cde/doc/it_IT.UTF-8/help/FPanel/Ref.sgm | 34 ++ cde/doc/ja_JP.UTF-8/help/FPanel/Ref.sgm | 29 ++ cde/programs/dtwm/Dtwm.defs.src | 6 + cde/programs/dtwm/Makefile.am | 6 +- cde/programs/dtwm/WmCDecor.c | 7 +- cde/programs/dtwm/WmFunction.c | 20 ++ cde/programs/dtwm/WmFunction.h | 1 + cde/programs/dtwm/WmGlobal.h | 19 + cde/programs/dtwm/WmHelp.h | 1 + cde/programs/dtwm/WmIDecor.c | 10 +- cde/programs/dtwm/WmInitWs.c | 1 + cde/programs/dtwm/WmInstantTitle.c | 333 ++++++++++++++++++ cde/programs/dtwm/WmInstantTitle.h | 32 ++ cde/programs/dtwm/WmManage.c | 8 + cde/programs/dtwm/WmPresence.c | 4 +- cde/programs/dtwm/WmProperty.c | 50 +++ cde/programs/dtwm/WmProperty.h | 4 +- cde/programs/dtwm/WmResNames.h | 2 + cde/programs/dtwm/WmResParse.c | 5 + cde/programs/dtwm/WmResource.c | 23 +- cde/programs/dtwm/WmWinInfo.c | 50 +-- cde/programs/dtwm/WmXSMP.c | 51 +++ cde/programs/dtwm/WmXSMP.h | 1 + cde/programs/dtwm/dtwm.msg | 12 +- .../localized/C/app-defaults/Dtwm.tmsg | 3 + .../de_DE.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/de_DE.UTF-8/msg/dtwm.msg | 12 +- .../el_GR.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/el_GR.UTF-8/msg/dtwm.msg | 11 +- .../es_ES.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/es_ES.UTF-8/msg/dtwm.msg | 12 +- .../fr_FR.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/fr_FR.UTF-8/msg/dtwm.msg | 12 +- .../it_IT.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/it_IT.UTF-8/msg/dtwm.msg | 12 +- .../ja_JP.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/ja_JP.UTF-8/msg/dtwm.msg | 12 +- .../ko_KR.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/ko_KR.UTF-8/msg/dtwm.msg | 11 +- .../sv_SE.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/sv_SE.UTF-8/msg/dtwm.msg | 12 +- .../zh_CN.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/zh_CN.UTF-8/msg/dtwm.msg | 12 +- .../zh_TW.UTF-8/app-defaults/Dtwm.tmsg | 3 + .../localized/zh_TW.UTF-8/msg/dtwm.msg | 12 +- 49 files changed, 927 insertions(+), 64 deletions(-) create mode 100644 cde/programs/dtwm/WmInstantTitle.c create mode 100644 cde/programs/dtwm/WmInstantTitle.h diff --git a/cde/doc/de_DE.UTF-8/help/FPanel/Ref.sgm b/cde/doc/de_DE.UTF-8/help/FPanel/Ref.sgm index 222f0d458..ca6257c32 100644 --- a/cde/doc/de_DE.UTF-8/help/FPanel/Ref.sgm +++ b/cde/doc/de_DE.UTF-8/help/FPanel/Ref.sgm @@ -700,6 +700,39 @@ indem im Dialogfenster 'Neustart' des Umgebungsmanagers die Option 'Standardsitz festlegen' ausgewählt wird. + +Dialogfeld zum Umbenennen von Fenstern + + + +Geben Sie den neuen Namen in das Textfeld ein (lassen Sie es leer, um +den Standardfenstertitel wiederherzustellen). + + + +OK + + +Benennen Sie das Fenster um und schließen Sie den Umbenennen Dialog. + + + + +Abbrechen + + +Brechen Sie das Umbenennen ab und schließen Sie den Umbenennen Dialog. + + + + +Hilfe + +Zeigt dieses Hilfethema an. + + + + Bestätigung der Sitzungserstellung<anchor id="ConfirmSessionCreation"> diff --git a/cde/doc/en_US.UTF-8/help/FPanel/Ref.sgm b/cde/doc/en_US.UTF-8/help/FPanel/Ref.sgm index 842388c1c..b344f69ce 100644 --- a/cde/doc/en_US.UTF-8/help/FPanel/Ref.sgm +++ b/cde/doc/en_US.UTF-8/help/FPanel/Ref.sgm @@ -814,6 +814,35 @@ to keep returning. Save a home session by choosing Set Home Session in Style Manager's Startup dialog box. + +Window Rename Dialog + + + +Type the new name in the text field (leave it blank to restore the +default window title). + + + +OK + +Rename the window and close the rename dialog. + + + +Cancel + +Cancel renaming and close the rename dialog. + + + +Help + +Displays this help topic. + + + + diff --git a/cde/doc/es_ES.UTF-8/help/FPanel/Ref.sgm b/cde/doc/es_ES.UTF-8/help/FPanel/Ref.sgm index 7c37754a0..737c5497d 100644 --- a/cde/doc/es_ES.UTF-8/help/FPanel/Ref.sgm +++ b/cde/doc/es_ES.UTF-8/help/FPanel/Ref.sgm @@ -670,6 +670,41 @@ Establecer sesión de inicio en el cuadro de diálogo Arranque del Gestor de estilos. + +Cuadro de diálogo Cambiar nombre de ventana + + + +Escriba el nuevo nombre en el campo de texto (déjalo en blanco para +restaurar el título de ventana predeterminado). + + + +OK + + +Cambie el nombre de la ventana y cierre el cuadro de diálogo de +cambio de nombre. + + + + +Cancelar + + +Cancele el cambio de nombre y cierre el cuadro de diálogo de cambio +de nombre. + + + + +Ayuda + +Muestra este tema de ayuda. + + + + Confirmación de la creación de una sesión <anchor diff --git a/cde/doc/fr_FR.UTF-8/help/FPanel/Ref.sgm b/cde/doc/fr_FR.UTF-8/help/FPanel/Ref.sgm index 8d4fd01a9..50a3fbbad 100644 --- a/cde/doc/fr_FR.UTF-8/help/FPanel/Ref.sgm +++ b/cde/doc/fr_FR.UTF-8/help/FPanel/Ref.sgm @@ -731,6 +731,40 @@ session initiale dans la boîte de dialogue Lancement du Gestionnaire de configuration.</para> <!-- MODULE SEConfirmLogoutWithChoiceDE SElogch.DEa --> </sect2> +<Sect2 Id="WMWindowRenameDialogDE"> +<Title>Boîte de dialogue Renommer la fenêtre + + + +Tapez le nouveau nom dans le champ de texte (laissez-le vide pour +restaurer le titre de fenêtre par défaut). + + + +OK + + +Renommez la fenêtre et fermez la boîte de dialogue de renommage. + + + + +Annuler + + +Annuler le changement de nom et fermez la boîte de dialogue de +changement de nom. + + + + +Aide + +Affiche l'aide. + + + + Confirmation de création de session<anchor id="ConfirmSessionCreation"> diff --git a/cde/doc/it_IT.UTF-8/help/FPanel/Ref.sgm b/cde/doc/it_IT.UTF-8/help/FPanel/Ref.sgm index 7eb6f6b41..bfde1e1e6 100644 --- a/cde/doc/it_IT.UTF-8/help/FPanel/Ref.sgm +++ b/cde/doc/it_IT.UTF-8/help/FPanel/Ref.sgm @@ -664,6 +664,40 @@ scegliere Impostare sessione iniziale nel riquadro di dialogo Avvio della Gestione degli stili. + +Finestra di dialogo Rinomina finestra + + + +Digitare il nuovo nome nel campo di testo (lasciarlo vuoto per +ripristinare il titolo predefinito della finestra). + + + +OK + + +Rinominare la finestra e chiudere la finestra di dialogo Rinomina. + + + + +Annullare + + +Annulla la ridenominazione e chiudi la finestra di dialogo per la +ridenominazione. + + + + +Aiuto + +Visualizza queste informazioni di aiuto. + + + + Conferma della creazione di una sessione<anchor id="confirmsessioncreation"> diff --git a/cde/doc/ja_JP.UTF-8/help/FPanel/Ref.sgm b/cde/doc/ja_JP.UTF-8/help/FPanel/Ref.sgm index 68258e5f4..ad155b348 100644 --- a/cde/doc/ja_JP.UTF-8/help/FPanel/Ref.sgm +++ b/cde/doc/ja_JP.UTF-8/help/FPanel/Ref.sgm @@ -764,6 +764,35 @@ [スタイル・マネージャの起動] ダイアログ・ボックスの [ホームセッションを設定] を選択して、ホーム・セッションを保存してください。 + +ウィンドウの名前の変更・ダイアログ + + + +テキストフィールドに新しい名前を入力します(空白のままにすると、 +デフォルトのウィンドウ タイトルが復元されます)。 + + + +了解 + +ウィンドウの名前を変更し、名前の変更ダイアログを閉じます。 + + + +取消し + +名前の変更をキャンセルし、名前の変更ダイアログを閉じます。 + + + +ヘルプ + +ヘルプ・トピックを表示します。 + + + + diff --git a/cde/programs/dtwm/Dtwm.defs.src b/cde/programs/dtwm/Dtwm.defs.src index b13e0a5f4..90f67c817 100644 --- a/cde/programs/dtwm/Dtwm.defs.src +++ b/cde/programs/dtwm/Dtwm.defs.src @@ -246,6 +246,12 @@ Dtwm*iconPlacement: Top Left Dtwm*iconBoxGeometry: 1x4+16+20 Dtwm*iconBoxSBDisplayPolicy: horizontal +!#### +!# +!# Specify the title for instant title dialog. +!# +!#### +Dtwm*instantTitleDialogShell.title: %|nls-21-#Rename#| !#### !# diff --git a/cde/programs/dtwm/Makefile.am b/cde/programs/dtwm/Makefile.am index caf248448..e90228492 100644 --- a/cde/programs/dtwm/Makefile.am +++ b/cde/programs/dtwm/Makefile.am @@ -34,9 +34,9 @@ dtwm_SOURCES = WmCDInfo.c WmCDecor.c WmCEvent.c \ Clock.c DataBaseLoad.c PanelS.c \ Parse.c PopupMenu.c Session.c \ UI.c WmBackdrop.c WmFP.c \ - WmHelp.c WmIPC.c WmOL.c \ - WmParse.c WmParseP.c WmPresence.c \ - WmWrkspace.c WmXSMP.c + WmHelp.c WmIPC.c WmInstantTitle.c \ + WmOL.c WmParse.c WmParseP.c \ + WmPresence.c WmWrkspace.c WmXSMP.c dtfplist_SOURCES = Print.c Parse.c DataBaseLoad.c WmParse.c Session.c diff --git a/cde/programs/dtwm/WmCDecor.c b/cde/programs/dtwm/WmCDecor.c index 956daa0ee..f76be7435 100644 --- a/cde/programs/dtwm/WmCDecor.c +++ b/cde/programs/dtwm/WmCDecor.c @@ -1159,7 +1159,7 @@ void GetTextBox (ClientData *pcd, XRectangle *pBox) fontList = CLIENT_TITLE_APPEARANCE(pcd).fontList; else fontList = CLIENT_APPEARANCE(pcd).fontList; - textWidth = XmStringWidth(fontList, pcd->clientTitle); + textWidth = XmStringWidth(fontList, CLIENT_DISPLAY_TITLE(pcd)); offset = TitleBarHeight(pcd)/2; @@ -1227,6 +1227,7 @@ void DrawWindowTitle (ClientData *pcd, Boolean eraseFirst) XRectangle textBox; Window win; XmFontList fontList; + XmString title = CLIENT_DISPLAY_TITLE(pcd); /* make sure there is a title bar first */ if (!(decoration & MWM_DECOR_TITLE)) @@ -1276,11 +1277,11 @@ void DrawWindowTitle (ClientData *pcd, Boolean eraseFirst) } #ifdef DT_LEFT_JUSTIFIED_TITLE - WmDrawXmString(DISPLAY, win, fontList, pcd->clientTitle, clientGC, + WmDrawXmString(DISPLAY, win, fontList, title, clientGC, textBox.x, textBox.y, textBox.width, &textBox, ((wmGD.frameStyle == WmSLAB) ? False : True)); #else /* DT_LEFT_JUSTIFIED_TITLE */ - WmDrawXmString(DISPLAY, win, fontList, pcd->clientTitle, clientGC, + WmDrawXmString(DISPLAY, win, fontList, title, clientGC, textBox.x, textBox.y, textBox.width, &textBox, True); #endif /* DT_LEFT_JUSTIFIED_TITLE */ diff --git a/cde/programs/dtwm/WmFunction.c b/cde/programs/dtwm/WmFunction.c index 534e006ef..fa3e88346 100644 --- a/cde/programs/dtwm/WmFunction.c +++ b/cde/programs/dtwm/WmFunction.c @@ -66,6 +66,7 @@ #include "WmIPC.h" #include "WmIPlace.h" #include "WmIconBox.h" +#include "WmInstantTitle.h" #include "WmKeyFocus.h" #include "WmMenu.h" #include "WmPresence.h" @@ -4514,6 +4515,25 @@ Boolean F_Workspace_Presence (String args, ClientData *pCD, XEvent *event) } /* END OF FUNCTION F_Workspace_Presence */ +/** +* @brief This function pops up the instant title dialog. +* +* @param args +* @param pCD +* @param event +* +* @return False +*/ +Boolean F_Rename (String args, ClientData *pCD, XEvent *event) +{ + if (pCD && (pCD->dtwmFunctions & DtWM_FUNCTION_OCCUPY_WS)) + { + InstantTitleShowDialog (pCD); + } + + return False; +} + #ifdef DEBUG void DumpWindowList () diff --git a/cde/programs/dtwm/WmFunction.h b/cde/programs/dtwm/WmFunction.h index 72dd30abf..86fe1f6f9 100644 --- a/cde/programs/dtwm/WmFunction.h +++ b/cde/programs/dtwm/WmFunction.h @@ -93,6 +93,7 @@ extern Boolean F_Next_Workspace (String args, ClientData *pCD, XEvent *event); extern Boolean F_Prev_Workspace (String args, ClientData *pCD, XEvent *event); extern Boolean F_Workspace_Presence (String args, ClientData *pCD, XEvent *event); +extern Boolean F_Rename (String args, ClientData *pCD, XEvent *event); #if defined(DEBUG) extern Boolean F_ZZ_Debug (String, ClientData *, XEvent *); #endif /* DEBUG */ diff --git a/cde/programs/dtwm/WmGlobal.h b/cde/programs/dtwm/WmGlobal.h index 339d84e35..c74b50b6e 100644 --- a/cde/programs/dtwm/WmGlobal.h +++ b/cde/programs/dtwm/WmGlobal.h @@ -1106,6 +1106,19 @@ typedef struct _FrameInfo } FrameInfo; +/** + * @brief Specific data for instant title dialog + */ +typedef struct _InstantTitleData +{ + Boolean widgetsInitialized; + struct _ClientData *pCDforClient; + Context contextForClient; + Widget dialogShellW; + Widget dialogBoxW; + Widget formW; + Widget textFieldW; +} InstantTitleData, *PtrInstantTitleData; /*************************************<->************************************* @@ -1132,6 +1145,7 @@ typedef struct _WmScreenData Widget confirmboxW[4]; Widget wPanelist; /* panel object */ WsPresenceData presence; /* workspace presence dialog*/ + InstantTitleData instantTitleData; /* instant title dialog */ Widget switcherW; /* workspace switcher */ Widget switcherShellW; /* shell for ws switcher */ Window wmWorkspaceWin; /* holds wm properties */ @@ -1310,6 +1324,8 @@ typedef struct _WmScreenData *PtrScreenData; /* #define ICON_DEFAULT_TITLE(pcd) ((pcd)->iconDefaultTitle) */ +#define ICON_DISPLAY_TITLE(pcd) \ + ((pcd)->instantTitle ? (pcd)->instantTitle : (pcd)->iconTitle) #define ICON_DECORATION(pcd) ((pcd)->pSD->iconDecoration) #define ICON_HEIGHT(pcd) ((pcd)->pSD->iconHeight) #define ICON_WIDTH(pcd) ((pcd)->pSD->iconWidth) @@ -1465,6 +1481,8 @@ typedef struct _WmWorkspaceData *PtrWorkspaceData; /* #define CLIENT_DEFAULT_TITLE(pcd) ((pcd)->pSD->clientDefaultTitle) */ +#define CLIENT_DISPLAY_TITLE(pcd) \ + ((pcd)->instantTitle ? (pcd)->instantTitle : (pcd)->clientTitle) #define MAX_MAX_SIZE(pcd) ((pcd)->pSD->maximumMaximumSize) #define SHOW_RESIZE_CURSORS(pcd) ((pcd)->pSD->resizeCursors) #define JOIN_BEVEL(pcd) ((pcd)->pSD->joinBevel) @@ -1636,6 +1654,7 @@ typedef struct _ClientData int monitorY; /* monitor Y loc */ int monitorWidth; /* monitor width */ int monitorHeight; /* monitor height */ + XmString instantTitle; /* instant title */ /* client window frame graphic data: */ diff --git a/cde/programs/dtwm/WmHelp.h b/cde/programs/dtwm/WmHelp.h index e74a426bb..f82c410aa 100644 --- a/cde/programs/dtwm/WmHelp.h +++ b/cde/programs/dtwm/WmHelp.h @@ -38,6 +38,7 @@ #define WM_DT_WSRENAMEERROR_HELP_TOPIC "WSRENAMEERROR" #define WM_DT_ICONBOX_TOPIC "ICONBOX" #define WM_DT_WSPRESENCE_TOPIC "WSPRESENCE" +#define WM_DT_WINDOWRENAME_TOPIC "WINDOWRENAME" typedef struct _WmHelpTopicData { diff --git a/cde/programs/dtwm/WmIDecor.c b/cde/programs/dtwm/WmIDecor.c index 726f7251b..59ab228bb 100644 --- a/cde/programs/dtwm/WmIDecor.c +++ b/cde/programs/dtwm/WmIDecor.c @@ -868,7 +868,7 @@ void DrawIconTitle (ClientData *pcd) /* paint the text */ WmDrawXmString(DISPLAY, ICON_FRAME_WIN(pcd), ICON_APPEARANCE(pcd).fontList, - pcd->iconTitle, iconGC, + ICON_DISPLAY_TITLE(pcd), iconGC, textBox.x, textBox.y, textBox.width, &textBox, True); } /* END OF FUNCTION DrawIconTitle */ @@ -950,7 +950,7 @@ void RedisplayIconTitle (ClientData *pcd) /* in with the new */ WmDrawXmString(DISPLAY, ICON_FRAME_WIN(pcd), ICON_APPEARANCE(pcd).fontList, - pcd->iconTitle, iconGC, + ICON_DISPLAY_TITLE(pcd), iconGC, textBox.x, textBox.y, textBox.width, &textBox, True); @@ -1768,7 +1768,7 @@ void PaintActiveIconText (ClientData *pcd, Boolean erase) WmDrawXmString(DISPLAY, pcd->pSD->activeIconTextWin, ICON_APPEARANCE(pcd).fontList, - pcd->iconTitle, iconGC, + ICON_DISPLAY_TITLE(pcd), iconGC, textBox.x, textBox.y, textBox.width, &textBox, True); @@ -1821,7 +1821,7 @@ void ShowActiveIconText (ClientData *pcd) /* set up geometry for the window */ - XmStringExtent (ICON_APPEARANCE(pcd).fontList, pcd->iconTitle, + XmStringExtent (ICON_APPEARANCE(pcd).fontList, ICON_DISPLAY_TITLE(pcd), &dWidth, &dHeight); activeIconTextHeight = (unsigned int) dHeight + @@ -2004,7 +2004,7 @@ void MoveActiveIconText (ClientData *pcd) if (pcd->pSD->activeIconTextWin && wmGD.activeIconTextDisplayed) { /* set up geometry for the window */ - XmStringExtent (ICON_APPEARANCE(pcd).fontList, pcd->iconTitle, + XmStringExtent (ICON_APPEARANCE(pcd).fontList, ICON_DISPLAY_TITLE(pcd), &dWidth, &dHeight); activeIconTextHeight = (unsigned int) dHeight + diff --git a/cde/programs/dtwm/WmInitWs.c b/cde/programs/dtwm/WmInitWs.c index 3fd1b9412..0f21cf577 100644 --- a/cde/programs/dtwm/WmInitWs.c +++ b/cde/programs/dtwm/WmInitWs.c @@ -1240,6 +1240,7 @@ InitWmScreen (WmScreenData *pSD, int sNum) pSD->presence.shellW = NULL; pSD->presence.onScreen = False; pSD->presence.userDismissed = True; + pSD->instantTitleData.widgetsInitialized = False; pSD->workspaceList = NULL; pSD->numWorkspaces = 0; pSD->numWsDataAllocated = 0; diff --git a/cde/programs/dtwm/WmInstantTitle.c b/cde/programs/dtwm/WmInstantTitle.c new file mode 100644 index 000000000..a84dd66fe --- /dev/null +++ b/cde/programs/dtwm/WmInstantTitle.c @@ -0,0 +1,333 @@ +/* + * CDE - Common Desktop Environment + * + * (c) Copyright 1993-2012 The Open Group + * (c) Copyright 2012-2022 CDE Project contributors, see + * CONTRIBUTORS for details + * + * These libraries and programs are free software; you can + * redistribute them and/or modify them under the terms of the GNU + * Lesser General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * These libraries and programs are distributed in the hope that + * they will be useful, but WITHOUT ANY WARRANTY; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with these libraries and programs; if not, write + * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth + * Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include
+#include
+ +#include "WmGlobal.h" +#include "WmCDecor.h" +#include "WmError.h" +#include "WmHelp.h" +#include "WmIDecor.h" +#include "WmInstantTitle.h" +#include "WmPanelP.h" +#include "WmProperty.h" +#include "WmWinList.h" +#include "WmWrkspace.h" + +extern XtPointer _XmStringUngenerate(XmString, XmStringTag, + XmTextType, XmTextType); + +static void InstantTitleGetTitle(PtrInstantTitleData pITD) { + String value; + Widget textFieldW = pITD->textFieldW; + ClientData *pCD = pITD->pCDforClient; + XmString title = pITD->contextForClient == F_CONTEXT_ICON ? + ICON_DISPLAY_TITLE(pCD) : CLIENT_DISPLAY_TITLE(pCD); + + if (!title) return; + + value = _XmStringUngenerate(title, NULL, XmCHARSET_TEXT, XmCHARSET_TEXT); + + if (!value) return; + + XtVaSetValues(textFieldW, XmNvalue, value, NULL); + + XtFree(value); + + XtVaSetValues(textFieldW, XmNcursorPosition, + XmTextFieldGetLastPosition(textFieldW), NULL); +} + +static void InstantTitleSetTitle(PtrInstantTitleData pITD) { + char *str = XmTextFieldGetString(pITD->textFieldW); + ClientData *pCD = pITD->pCDforClient; + Context context = pITD->contextForClient; + XmString *title = &pCD->instantTitle; + Window client = pCD->client; + Atom name = wmGD.xa__NET_WM_VISIBLE_NAME; + Atom iconName = wmGD.xa__NET_WM_VISIBLE_ICON_NAME; + + if (*title) XmStringFree(*title); + + _DtStripSpaces(str); + + if (str[0]) { + *title = XmStringCreateLocalized(str); + SetUtf8String (DISPLAY, client, name, str); + SetUtf8String (DISPLAY, client, iconName, str); + } + else { + *title = NULL; + XDeleteProperty(DISPLAY, client, name); + XDeleteProperty(DISPLAY, client, iconName); + } + + XtFree(str); + + if (context == F_CONTEXT_ICON || pCD->pSD->useIconBox) + RedisplayIconTitle(pCD); + + if (context != F_CONTEXT_ICON) DrawWindowTitle(pCD, True); +} + +/** + * @brief Hides the instant title dialog. + * + * @param pClientData + */ +void InstantTitleHideDialog(ClientData *pClientData) { + PtrInstantTitleData pITD = &pClientData->pSD->instantTitleData; + + if (pITD->widgetsInitialized && pITD->pCDforClient == pClientData) + XtUnmanageChild(pITD->dialogBoxW); +} + +static void InstantTitleButtonCB(Widget w, XtPointer client_data, + XtPointer call_data) +{ + PtrInstantTitleData pITD = client_data; + DtDialogBoxCallbackStruct *cb = call_data; + + switch (cb->button_position) { + case 1: + InstantTitleSetTitle(pITD); + + case 2: + InstantTitleHideDialog(pITD->pCDforClient); + break; + + case 3: + XtCallCallbacks(pITD->dialogBoxW, XmNhelpCallback, NULL); + break; + + default: + break; + } +} + +static void InstantTitleWorkspaceModifyCB(Widget w, Atom atom_name, int type, + XtPointer client_data) +{ + PtrInstantTitleData pITD = client_data; + ClientData *pCD = pITD->pCDforClient; + + if (type == DtWSM_REASON_CURRENT && + pITD->contextForClient == F_CONTEXT_ICON && + XtIsManaged(pITD->dialogBoxW) && ClientInWorkspace(ACTIVE_WS, pCD)) + InstantTitleShowDialog(pCD); +} + +static Boolean InstantTitleMakeDialog(PtrInstantTitleData pITD) { + Cardinal n; + Arg args[10]; + XmString buttonStrings[3]; + Widget dialogShellW, dialogBoxW, formW, cancelW, textFieldW; + Boolean *widgetsInitialized = &pITD->widgetsInitialized; + + if (*widgetsInitialized) return True; + + n = 0; + + XtSetArg(args[n], XmNallowShellResize, True); ++n; + XtSetArg(args[n], XmNmwmFunctions, + MWM_FUNC_ALL | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE); ++n; + + dialogShellW = pITD->dialogShellW = XtCreatePopupShell( + "instantTitleDialogShell", xmDialogShellWidgetClass, + pITD->pCDforClient->pSD->screenTopLevelW1, args, n); + + if (!dialogShellW) goto err; + + if (!DtWsmAddWorkspaceModifiedCallback(dialogShellW, + InstantTitleWorkspaceModifyCB, pITD)) goto err; + + buttonStrings[0] = XmStringCreateLocalized((char *)_DtOkString); + buttonStrings[1] = XmStringCreateLocalized((char *)_DtCancelString); + buttonStrings[2] = XmStringCreateLocalized((char *)_DtHelpString); + + n = 0; + + XtSetArg(args[n], XmNallowOverlap, False); ++n; + XtSetArg(args[n], XmNdefaultPosition, False); ++n; + XtSetArg(args[n], XmNbuttonCount, 3); ++n; + XtSetArg(args[n], XmNbuttonLabelStrings, buttonStrings); ++n; + + dialogBoxW = pITD->dialogBoxW = _DtCreateDialogBox(dialogShellW, + "instantTitleDialogBox", args, n); + + XmStringFree(buttonStrings[0]); + XmStringFree(buttonStrings[1]); + XmStringFree(buttonStrings[2]); + + if (!dialogBoxW) goto err; + + XtAddCallback(dialogBoxW, XmNcallback, InstantTitleButtonCB, pITD); + XtAddCallback(dialogBoxW, XmNhelpCallback, WmDtWmTopicHelpCB, + WM_DT_WINDOWRENAME_TOPIC); + + cancelW = _DtDialogBoxGetButton(dialogBoxW, 2); + + if (!cancelW) goto err; + + n = 0; + + XtSetArg(args[n], XmNautoUnmanage, False); ++n; + XtSetArg(args[n], XmNcancelButton, cancelW); ++n; + + XtSetValues (dialogBoxW, args, n); + + formW = pITD->formW = XmCreateForm(dialogBoxW, "instantTitleForm", NULL, 0); + + if (!formW) goto err; + + n = 0; + + XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); ++n; + XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n; + XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n; + XtSetArg(args[n], XmNbottomAttachment, XmATTACH_NONE); ++n; + XtSetArg(args[n], XmNmaxLength, FILENAME_MAX); ++n; + + textFieldW = pITD->textFieldW = XmCreateTextField(formW, + "instantTitleTextField", args, n); + + if (!textFieldW) goto err; + + XtManageChild(dialogShellW); + XtManageChild(dialogBoxW); + XtManageChild(formW); + XtManageChild(cancelW); + XtManageChild(textFieldW); + + DtWsmRemoveWorkspaceFunctions(DISPLAY1, XtWindow(dialogShellW)); + + *widgetsInitialized = True; + + return True; + +err: + if (dialogShellW) { + XtDestroyWidget(dialogShellW); + *widgetsInitialized = False; + } + + Warning(GETMESSAGE(88, 1, "1 Unable to create instant title dialog.")); + + return False; +} + +static void InstantTitleSetPosition(PtrInstantTitleData pITD) { + int x, y; + Dimension height; + Cardinal n; + Arg args[10]; + XFontStruct *font; + Window windowGroup; + Widget dialogShellW = pITD->dialogShellW; + Context context = pITD->contextForClient; + ClientData *pCD = pITD->pCDforClient; + WmScreenData *pSD = pCD->pSD; + + XtVaGetValues(dialogShellW, XmNheight, &height, NULL); + + if (wmGD.positionIsFrame) { + if (pSD->decoupleTitleAppearance) + font = pSD->clientTitleAppearance.font; + else + font = pSD->clientAppearance.font; + + height += TEXT_HEIGHT(font) + (2 * pSD->frameBorderWidth); + } + + GetSystemMenuPosition(pCD, &x, &y, height, context); + + if (context == F_CONTEXT_ICON) { + if (pSD->useIconBox && P_ICON_BOX(pCD)) + windowGroup = P_ICON_BOX(pCD)->pCD_iconBox->client; + else + windowGroup = XtUnspecifiedWindowGroup; + } + else { + windowGroup = pCD->client; + } + + n = 0; + + XtSetArg(args[n], XmNx, x); ++n; + XtSetArg(args[n], XmNy, y); ++n; + XtSetArg(args[n], XmNtransientFor, NULL); ++n; + XtSetArg(args[n], XmNwindowGroup, windowGroup); ++n; + + XtSetValues(dialogShellW, args, n); +} + +/** + * @brief Shows the instant title dialog. + * + * @param pClientData + * @param context + */ +void InstantTitleShowDialog(ClientData *pClientData) { + Widget dialogBoxW, textFieldW; + Context context; + ClientData *pCD = pClientData->transientLeader ? + FindTransientTreeLeader(pClientData) : pClientData; + WmScreenData *pSD = pCD->pSD; + PtrInstantTitleData pITD = &pSD->instantTitleData; + + switch (pCD->clientState) { + case MINIMIZED_STATE: + context = F_CONTEXT_ICON; + break; + case NORMAL_STATE: + case MAXIMIZED_STATE: + context = F_CONTEXT_WINDOW; + break; + default: + return; + } + + pITD->pCDforClient = pCD; + pITD->contextForClient = context; + + if (!InstantTitleMakeDialog(pITD)) return; + + InstantTitleGetTitle(pITD); + InstantTitleSetPosition(pITD); + + dialogBoxW = pITD->dialogBoxW; + XtUnmanageChild(dialogBoxW); + XtManageChild(dialogBoxW); + + textFieldW = pITD->textFieldW; + XmProcessTraversal(textFieldW, XmTRAVERSE_CURRENT); + XmTextSetSelection(textFieldW, 0, XmTextGetLastPosition(textFieldW), + CurrentTime); +} diff --git a/cde/programs/dtwm/WmInstantTitle.h b/cde/programs/dtwm/WmInstantTitle.h new file mode 100644 index 000000000..e8c91d498 --- /dev/null +++ b/cde/programs/dtwm/WmInstantTitle.h @@ -0,0 +1,32 @@ +/* + * CDE - Common Desktop Environment + * + * (c) Copyright 1993-2012 The Open Group + * (c) Copyright 2012-2022 CDE Project contributors, see + * CONTRIBUTORS for details + * + * These libraries and programs are free software; you can + * redistribute them and/or modify them under the terms of the GNU + * Lesser General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * These libraries and programs are distributed in the hope that + * they will be useful, but WITHOUT ANY WARRANTY; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with these libraries and programs; if not, write + * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth + * Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WMINSTANTTITLE_H +#define WMINSTANTTITLE_H + +void InstantTitleHideDialog(ClientData *pClientData); +void InstantTitleShowDialog(ClientData *pClientData); + +#endif diff --git a/cde/programs/dtwm/WmManage.c b/cde/programs/dtwm/WmManage.c index b627bbc3c..52bdb9e5d 100644 --- a/cde/programs/dtwm/WmManage.c +++ b/cde/programs/dtwm/WmManage.c @@ -50,6 +50,7 @@ #include "WmIDecor.h" #include "WmIconBox.h" #include "WmImage.h" +#include "WmInstantTitle.h" #include "WmKeyFocus.h" #include "WmPanelP.h" /* typedef needed in WmManage.h */ #include
@@ -957,6 +958,8 @@ void WithdrawWindow (ClientData *pCD) pCD->pSD->presence.pCDforClient = NULL; } + InstantTitleHideDialog (pCD); + /* * Check to see if the window is being unmanaged because the window * was destroyed. @@ -1136,6 +1139,11 @@ void WithdrawWindow (ClientData *pCD) XmStringFree (pCD->iconTitle); } + if (pCD->instantTitle) + { + XmStringFree (pCD->instantTitle); + } + if (pCD->clientCmapCount > 0) { for (i = 0; i < pCD->clientCmapCount; i++) diff --git a/cde/programs/dtwm/WmPresence.c b/cde/programs/dtwm/WmPresence.c index d4d3dad59..75be95f8c 100644 --- a/cde/programs/dtwm/WmPresence.c +++ b/cde/programs/dtwm/WmPresence.c @@ -323,14 +323,14 @@ wspSetWindowName( if (pPres->contextForClient == F_CONTEXT_ICON) { XtSetArg (nameArgs[nameN], XmNlabelString, - pPres->pCDforClient->iconTitle); nameN++; + ICON_DISPLAY_TITLE(pPres->pCDforClient)); nameN++; XtSetArg (labelArgs[labelN], XmNlabelString, iconLabelString); labelN++; } else { XtSetArg (nameArgs[nameN], XmNlabelString, - pPres->pCDforClient->clientTitle); nameN++; + CLIENT_DISPLAY_TITLE(pPres->pCDforClient)); nameN++; XtSetArg (labelArgs[labelN], XmNlabelString, windowLabelString); labelN++; } diff --git a/cde/programs/dtwm/WmProperty.c b/cde/programs/dtwm/WmProperty.c index eeeb21f99..c5e234d2e 100644 --- a/cde/programs/dtwm/WmProperty.c +++ b/cde/programs/dtwm/WmProperty.c @@ -36,6 +36,7 @@ #include "WmGlobal.h" #include "WmICCC.h" +#include #include #include
#include @@ -1887,6 +1888,55 @@ HasProperty ( } /* END OF FUNCTION HasProperty */ +/** + * @brief This function calls XGetWindowProperty to get the UTF8_STRING + * property. + * + * @param display + * @param w + * @param property + * + * @return A string or NULL. + */ +char *GetUtf8String (Display *display, Window w, Atom property) +{ + int actualFormat; + char *propReturn; + unsigned long nitems, leftover; + Atom actualType; + Atom reqType = wmGD.xa_UTF8_STRING; + if (XGetWindowProperty (display, w, property, 0L, USHRT_MAX, False, reqType, + &actualType, &actualFormat, &nitems, &leftover, + (unsigned char **) &propReturn) != Success) + goto err; + if (!nitems) goto err; + if (actualType != reqType) goto err; + return propReturn; + +err: + if (propReturn) XFree (propReturn); + return NULL; +} + +/** + * @brief This function calls XChangeProperty to set the UTF8_STRING property. + * + * @param display + * @param w + * @param property + * @param s + */ +void SetUtf8String (Display *display, Window w, Atom property, const char *s) +{ + size_t len; + + if (!(s && s[0])) return; + + len = strnlen (s, USHRT_MAX); + + XChangeProperty (display, w, property, wmGD.xa_UTF8_STRING, 8, + PropModeReplace, (unsigned char *)s, len); +} diff --git a/cde/programs/dtwm/WmProperty.h b/cde/programs/dtwm/WmProperty.h index 389033cdd..7e2ae362c 100644 --- a/cde/programs/dtwm/WmProperty.h +++ b/cde/programs/dtwm/WmProperty.h @@ -58,4 +58,6 @@ extern void SetCurrentWorkspaceProperty (WmScreenData *pSD); extern void SetWorkspaceInfoProperty (WmWorkspaceData *pWS); extern void DeleteWorkspaceInfoProperty (WmWorkspaceData *pWS); extern char *WorkspacePropertyName (WmWorkspaceData *pWS); - +extern char *GetUtf8String (Display *display, Window w, Atom property); +extern void SetUtf8String (Display *display, Window w, Atom property, + const char *s); diff --git a/cde/programs/dtwm/WmResNames.h b/cde/programs/dtwm/WmResNames.h index 7cb3030f8..cddc84c7b 100644 --- a/cde/programs/dtwm/WmResNames.h +++ b/cde/programs/dtwm/WmResNames.h @@ -194,6 +194,7 @@ #define WmNworkspaceController "workspaceController" #define WmNworkspacePresence "workspacePresence" #define WmNworkspaceSwitch "workspaceSwitch" +#define WmNinstantTitle "instantTitle" /* window manager client resource names: */ @@ -356,6 +357,7 @@ #define WmCWorkspaceController "WorkspaceController" #define WmCWorkspacePresence "WorkspacePresence" #define WmCWorkspaceSwitch "WorkspaceSwitch" +#define WmCInstantTitle "InstantTitle" /* window manager client resource names: */ diff --git a/cde/programs/dtwm/WmResParse.c b/cde/programs/dtwm/WmResParse.c index 99304bc2f..6fc5a5c65 100644 --- a/cde/programs/dtwm/WmResParse.c +++ b/cde/programs/dtwm/WmResParse.c @@ -492,6 +492,11 @@ FunctionTableEntry functionTable[] = { DtWM_FUNC_OCCUPY_WS, F_Remove, ParseWmFuncNoArg}, + {"f.rename", F_CONTEXT_ROOT|F_CONTEXT_ICONBOX|F_SUBCONTEXT_IB_WICON, + CRS_ANY, + DtWM_FUNC_OCCUPY_WS, + F_Rename, + ParseWmFuncNoArg}, {"f.resize", F_CONTEXT_ICON|F_CONTEXT_ROOT| F_SUBCONTEXT_IB_IICON|F_SUBCONTEXT_IB_WICON, CRS_ANY, diff --git a/cde/programs/dtwm/WmResource.c b/cde/programs/dtwm/WmResource.c index d561a7f61..15c8a8927 100644 --- a/cde/programs/dtwm/WmResource.c +++ b/cde/programs/dtwm/WmResource.c @@ -164,6 +164,7 @@ char *builtinSystemMenu = BUILTINSYSTEMMENU; Maximize _x f.maximize\n\ Lower _L f.lower\n\ no-label f.separator\n\ + \"Rename...\" _a f.rename\n\ \"Occupy Workspace...\" _O f.workspace_presence\n\ \"Occupy All Workspaces\" _A f.occupy_all\n\ \"Unoccupy Workspace\" _U f.remove\n\ @@ -180,6 +181,7 @@ void InitBuiltinSystemMenu(void) char *MinString = NULL; char *MaxString = NULL; char *LowString = NULL; + char *RenString = NULL; char *OcpString = NULL; char *OcaString = NULL; char *RemString = NULL; @@ -299,6 +301,21 @@ void InitBuiltinSystemMenu(void) if (DtwmBehavior) { + if(gotItAll) + { + tmpString = ((char *)GETMESSAGE(62, 70, "Rename\\.\\.\\. _a f.rename")); + if ((RenString = + (char *)XtMalloc ((unsigned int) + (strlen(tmpString) + 1))) == NULL) + { + Warning (((char *)GETMESSAGE(62, 14, "Insufficient memory for local default menu."))); + gotItAll = False; + } + else + { + strcpy(RenString, tmpString); + } + } if(gotItAll) { tmpString = ((char *)GETMESSAGE(62, 55, "Occupy\\ Workspace\\.\\.\\. _O f.workspace_presence")); @@ -382,8 +399,8 @@ void InitBuiltinSystemMenu(void) SizString, MinString, MaxString, LowString); if (DtwmBehavior) { - snprintf(dsmtemp, sizeof(dsmtemp), "%s%s\n%s\n%s\n no-label f.separator\n", - dsm, OcpString, OcaString, RemString); + snprintf(dsmtemp, sizeof(dsmtemp), "%s%s\n%s\n%s\n%s\n no-label f.separator\n", + dsm, RenString, OcpString, OcaString, RemString); strcpy(dsm, dsmtemp); } snprintf(dsmtemp, sizeof(dsmtemp), "%s%s\n}", dsm, CloString); @@ -422,6 +439,8 @@ void InitBuiltinSystemMenu(void) XtFree(MaxString); if (LowString != NULL) XtFree(LowString); + if (RenString != NULL) + XtFree(RenString); if (OcpString != NULL) XtFree(OcpString); if (OcaString != NULL) diff --git a/cde/programs/dtwm/WmWinInfo.c b/cde/programs/dtwm/WmWinInfo.c index f5ef8bf38..4fdc2bf05 100644 --- a/cde/programs/dtwm/WmWinInfo.c +++ b/cde/programs/dtwm/WmWinInfo.c @@ -221,6 +221,8 @@ InitClientData (Window clientWindow) pCD->fullscreen = False; pCD->monitorSizeIsSet = False; + pCD->instantTitle = NULL; + for (i = 0; i < STRETCH_COUNT; ++i) pCD->clientStretchWin[i] = (Window)0L; return (pCD); @@ -2201,11 +2203,7 @@ WmICCCMToXmString (XTextProperty *wmNameProp) void ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime) { - Atom actualType; - int actualFormat; - unsigned long nitems; - unsigned long leftover; - char *netWmNameProp; + char *netStr; XTextProperty wmNameProp; XmString title_xms = NULL; Window win = pCD->client; @@ -2216,13 +2214,10 @@ ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime) (!firstTime || hasWmName || hasNetWmName)) { if ((!firstTime || hasNetWmName) && - XGetWindowProperty (DISPLAY, win, wmGD.xa__NET_WM_NAME, 0L, - 1000000L, False, wmGD.xa_UTF8_STRING, - &actualType, &actualFormat, &nitems, &leftover, - (unsigned char **) &netWmNameProp) == Success) + (netStr = GetUtf8String (DISPLAY, win, wmGD.xa__NET_WM_NAME))) { - title_xms = XmStringCreateLocalized (netWmNameProp); - XFree (netWmNameProp); + title_xms = XmStringCreateLocalized (netStr); + XFree (netStr); } else if ((!firstTime || hasWmName) && XGetWMName(DISPLAY, win, &wmNameProp)) @@ -2275,6 +2270,14 @@ ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime) } } + if (firstTime && pCD->instantTitle == NULL && + HasProperty (pCD, wmGD.xa__NET_WM_VISIBLE_NAME) && + (netStr = GetUtf8String (DISPLAY, win, wmGD.xa__NET_WM_VISIBLE_NAME))) + { + pCD->instantTitle = XmStringCreateLocalized (netStr); + XFree (netStr); + } + /* * If this is a tear-off menu, then make sure title text is not clipped */ @@ -2295,7 +2298,7 @@ ProcessWmWindowTitle (ClientData *pCD, Boolean firstTime) /* * Calculations derived from GetTextBox() and GetFramePartInfo() */ - minWidth = XmStringWidth(fontList, pCD->clientTitle) + + minWidth = XmStringWidth(fontList, CLIENT_DISPLAY_TITLE(pCD)) + ((pCD->dtwmBehaviors & DtWM_BEHAVIOR_SUBPANEL) ? 4 : 0) + ((decor & MWM_DECOR_MENU) ? boxdim : 0) + ((decor & MWM_DECOR_MINIMIZE) ? boxdim : 0) + @@ -2434,11 +2437,7 @@ FixSubpanelEmbeddedClientGeometry (ClientData *pCD) void ProcessWmIconTitle (ClientData *pCD, Boolean firstTime) { - Atom actualType; - int actualFormat; - unsigned long nitems; - unsigned long leftover; - char *netWmIconNameProp; + char *netStr; XTextProperty wmIconNameProp; XmString icon_xms = NULL; Window win = pCD->client; @@ -2450,13 +2449,10 @@ ProcessWmIconTitle (ClientData *pCD, Boolean firstTime) (!firstTime || hasWmIconName || hasNetWmIconName)) { if ((!firstTime || hasNetWmIconName) && - XGetWindowProperty (DISPLAY, win, wmGD.xa__NET_WM_ICON_NAME, 0L, - 1000000L, False, wmGD.xa_UTF8_STRING, &actualType, - &actualFormat, &nitems, &leftover, - (unsigned char **) &netWmIconNameProp) == Success) + (netStr = GetUtf8String (DISPLAY, win, wmGD.xa__NET_WM_ICON_NAME))) { - icon_xms = XmStringCreateLocalized (netWmIconNameProp); - XFree (netWmIconNameProp); + icon_xms = XmStringCreateLocalized (netStr); + XFree (netStr); } else if ((!firstTime || hasWmIconName) && XGetWMIconName (DISPLAY, win, &wmIconNameProp)) @@ -2498,6 +2494,14 @@ ProcessWmIconTitle (ClientData *pCD, Boolean firstTime) } } + if (firstTime && pCD->instantTitle == NULL && + HasProperty (pCD, wmGD.xa__NET_WM_VISIBLE_ICON_NAME) && + (netStr = GetUtf8String (DISPLAY, win, + wmGD.xa__NET_WM_VISIBLE_ICON_NAME))) + { + pCD->instantTitle = XmStringCreateLocalized (netStr); + XFree (netStr); + } } /* END OF FUNCTION ProcessWmIconTitle */ diff --git a/cde/programs/dtwm/WmXSMP.c b/cde/programs/dtwm/WmXSMP.c index f48813de8..ee80f564d 100644 --- a/cde/programs/dtwm/WmXSMP.c +++ b/cde/programs/dtwm/WmXSMP.c @@ -44,6 +44,9 @@ #include "WmWrkspace.h" #include
+extern XtPointer _XmStringUngenerate(XmString, XmStringTag, + XmTextType, XmTextType); + typedef struct _ProxyClientInfo { int screen; @@ -72,6 +75,7 @@ static char *screenStr = "%s.screen"; static char *workspacesStr = "%s.workspaces"; static char *iconXPosStr = "%s.iconPos.x.%s"; static char *iconYPosStr = "%s.iconPos.y.%s"; +static char *instantTitleStr = "%s.instantTitle"; /* Header for private database. */ static char *dbHeader = "\ @@ -109,6 +113,9 @@ static void buildDBFileName(char [MAXPATHLEN], Boolean); /* Get string of client's workspaces. */ static char *getClientWorkspaces(ClientData *); +/* Get string of client's instant title. */ +static char *getClientInstantTitle(ClientData *); + /* List-of-clients utilities. */ static Boolean addClientToList(ClientData ***, int *, ClientData *); static int clientWorkspaceCompare(const void *, const void *); @@ -292,6 +299,15 @@ getClientWorkspaces(ClientData *pCD) return cwsP; } +static char * +getClientInstantTitle(ClientData *pCD) +{ + if (!pCD->instantTitle) return NULL; + + return _XmStringUngenerate(pCD->instantTitle, NULL, XmCHARSET_TEXT, + XmCHARSET_TEXT); +} + static Boolean addClientToList(ClientData ***cdList, int *nClients, ClientData *pCD) { @@ -421,6 +437,13 @@ findXSMPClientDBMatch(ClientData *pCD, char **workSpaceNamesP) { *workSpaceNamesP = XtNewString(resourcePtr); } + + if ((resourcePtr = getXSMPResource(pCD, WMSAVE_INSTANT_TITLE, + instantTitleStr)) + != (char *)NULL) + { + pCD->instantTitle = XmStringCreateLocalized(resourcePtr); + } } /* Always return True for XSMP clients. */ @@ -611,6 +634,13 @@ findProxyClientDBMatch(ClientData *pCD, char **workSpaceNamesP) *workSpaceNamesP = XtNewString(resourcePtr); } + if ((resourcePtr = + getClientResource(proxyClientID, instantTitleStr)) + != (char *)NULL) + { + pCD->instantTitle = XmStringCreateLocalized(resourcePtr); + } + return True; } } @@ -722,6 +752,18 @@ saveXSMPClient(FILE *fp, ClientData *pCD) } } + if (SAVE_RESOURCE(pCD, WMSAVE_INSTANT_TITLE)) + { + char *title = getClientInstantTitle(pCD); + + if (title) + { + fprintf(fp, instantTitleStr, clientID); + fprintf(fp, strArg, title); + XtFree(title); + } + } + return True; } @@ -737,6 +779,7 @@ saveProxyClient(FILE *fp, ClientData *pCD, int clientIDNum) int clientX, clientY; unsigned int clientWd, clientHt; char *clientWorkspaces; + char *instantTitle; if (!getProxyClientInfo(pCD, &proxyClientInfo)) return False; @@ -806,6 +849,14 @@ saveProxyClient(FILE *fp, ClientData *pCD, int clientIDNum) XtFree(clientWorkspaces); } + instantTitle = getClientInstantTitle(pCD); + if (instantTitle) + { + fprintf(fp, instantTitleStr, clientID); + fprintf(fp, strArg, instantTitle); + XtFree(instantTitle); + } + return True; } diff --git a/cde/programs/dtwm/WmXSMP.h b/cde/programs/dtwm/WmXSMP.h index 48ec2cafb..b35cbf2a0 100644 --- a/cde/programs/dtwm/WmXSMP.h +++ b/cde/programs/dtwm/WmXSMP.h @@ -49,6 +49,7 @@ #define WMSAVE_WORKSPACES (1L << 5) #define WMSAVE_ICON_X (1L << 6) #define WMSAVE_ICON_Y (1L << 7) +#define WMSAVE_INSTANT_TITLE (1L << 8) extern void AddSMCallbacks(void); extern void ResignFromSM(void); diff --git a/cde/programs/dtwm/dtwm.msg b/cde/programs/dtwm/dtwm.msg index c1c6acd92..921285579 100644 --- a/cde/programs/dtwm/dtwm.msg +++ b/cde/programs/dtwm/dtwm.msg @@ -1,4 +1,3 @@ - $ "$TOG: dtwm.msg /main/6 1999/09/20 15:18:52 mgreess $"; $ *************************************<+>************************************* @@ -487,7 +486,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -629,6 +628,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 Key bindings %s not found, using builtin key bindings\n 68 Button bindings %s not found, using builtin button bindings\n +$ This item renames the title of a window +70 Rename\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -784,6 +786,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 There is already an icon of this name. 9 Workspace Manager - Icon Action Error +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -793,4 +800,3 @@ $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" 2 "\n@(#)_DtMessage catalog source $TOG: dtwm.msg /main/6 1999/09/20 15:18:52 mgreess $" - diff --git a/cde/programs/localized/C/app-defaults/Dtwm.tmsg b/cde/programs/localized/C/app-defaults/Dtwm.tmsg index 75f736f45..885f9d252 100644 --- a/cde/programs/localized/C/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/C/app-defaults/Dtwm.tmsg @@ -94,3 +94,6 @@ $ Dtwm*FrontPanel*lowResFontList 19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*: $ Dtwm*icon*fontList 20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 Rename diff --git a/cde/programs/localized/de_DE.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/de_DE.UTF-8/app-defaults/Dtwm.tmsg index 3472e8a3a..af23f9c8f 100644 --- a/cde/programs/localized/de_DE.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/de_DE.UTF-8/app-defaults/Dtwm.tmsg @@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList $ Dtwm*icon*fontList 20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:" + +$ Dtwm*instantTitleDialogShell.title +21 Umbenennen diff --git a/cde/programs/localized/de_DE.UTF-8/msg/dtwm.msg b/cde/programs/localized/de_DE.UTF-8/msg/dtwm.msg index 03e3f97f2..c2fea9dcd 100644 --- a/cde/programs/localized/de_DE.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/de_DE.UTF-8/msg/dtwm.msg @@ -595,7 +595,8 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, go to $ an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. + $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -753,6 +754,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 68 "Button bindings %s not found, using builtin button bindings\n" +$ This item renames the title of a window +70 Umbenennen\\.\\.\\. _a f.rename + $set 70 Redefine set# $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- @@ -973,6 +977,12 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 9 "Arbeitsbereichssteuerung - Fehler bei Symbolaktion" +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. + $set 99 Redefine set# $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/el_GR.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/el_GR.UTF-8/app-defaults/Dtwm.tmsg index 02a79c8c0..4df4d579e 100644 --- a/cde/programs/localized/el_GR.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/el_GR.UTF-8/app-defaults/Dtwm.tmsg @@ -94,3 +94,6 @@ $ Dtwm*FrontPanel*lowResFontList 19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*: $ Dtwm*icon*fontList 20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 Μετονομασία diff --git a/cde/programs/localized/el_GR.UTF-8/msg/dtwm.msg b/cde/programs/localized/el_GR.UTF-8/msg/dtwm.msg index 204d41cb6..09466ccfe 100644 --- a/cde/programs/localized/el_GR.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/el_GR.UTF-8/msg/dtwm.msg @@ -1,4 +1,3 @@ - $ "$TOG: dtwm.msg /main/6 1999/09/20 15:18:52 mgreess $"; $ *************************************<+>************************************* @@ -483,7 +482,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -625,6 +624,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 Key bindings %s not found, using builtin key bindings\n 68 Button bindings %s not found, using builtin button bindings\n +$ This item renames the title of a window +70 Μετονομασία\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -780,6 +782,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 Υπάρχει ήδη ένα εικονίδιο με αυτό το όνομα. 9 Διαχειριστής επιφάνειας εργασίας - Σφάλμα ενέργειας εικονιδίου +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/es_ES.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/es_ES.UTF-8/app-defaults/Dtwm.tmsg index 9291f79fa..341f21988 100644 --- a/cde/programs/localized/es_ES.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/es_ES.UTF-8/app-defaults/Dtwm.tmsg @@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList $ Dtwm*icon*fontList 20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:" + +$ Dtwm*instantTitleDialogShell.title +21 Renombrar diff --git a/cde/programs/localized/es_ES.UTF-8/msg/dtwm.msg b/cde/programs/localized/es_ES.UTF-8/msg/dtwm.msg index 81b85936b..e37ee1dfa 100644 --- a/cde/programs/localized/es_ES.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/es_ES.UTF-8/msg/dtwm.msg @@ -591,7 +591,8 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. + $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -749,6 +750,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 68 "No se han encontrado las asignaciones de botones %s, se utilizan las asignaciones de botones incorporadas\n" +$ This item renames the title of a window +70 Renombrar\\.\\.\\. _a f.rename + $set 70 Redefine set# $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- @@ -967,6 +971,12 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 9 "Gestor de Espacios de Trabajos - Error Acción Icono" +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. + $set 99 Redefine set# $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/fr_FR.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/fr_FR.UTF-8/app-defaults/Dtwm.tmsg index b33328ebe..525b03099 100644 --- a/cde/programs/localized/fr_FR.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/fr_FR.UTF-8/app-defaults/Dtwm.tmsg @@ -114,3 +114,6 @@ $ Dtwm*FrontPanel*lowResFontList $ Dtwm*icon*fontList 20 "-dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*:" + +$ Dtwm*instantTitleDialogShell.title +21 Renommer diff --git a/cde/programs/localized/fr_FR.UTF-8/msg/dtwm.msg b/cde/programs/localized/fr_FR.UTF-8/msg/dtwm.msg index 3b4af8500..a95ec09de 100644 --- a/cde/programs/localized/fr_FR.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/fr_FR.UTF-8/msg/dtwm.msg @@ -591,7 +591,8 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. + $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -749,6 +750,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 68 "Button bindings %s not found, using builtin button bindings\n" +$ This item renames the title of a window +70 Renommer\\.\\.\\. _a f.rename + $set 70 Redefine set# $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- @@ -965,6 +969,12 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 9 "Gestionnaire de l'espace de travail - Erreur d'action sur icône" +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. + $set 99 Redefine set# $ DO NOT TRANSLATE THESE MESSAGES diff --git a/cde/programs/localized/it_IT.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/it_IT.UTF-8/app-defaults/Dtwm.tmsg index de8ab0465..2fa1c3e29 100644 --- a/cde/programs/localized/it_IT.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/it_IT.UTF-8/app-defaults/Dtwm.tmsg @@ -94,3 +94,6 @@ $ Dtwm*FrontPanel*lowResFontList 19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*: $ Dtwm*icon*fontList 20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 Cambiare nome diff --git a/cde/programs/localized/it_IT.UTF-8/msg/dtwm.msg b/cde/programs/localized/it_IT.UTF-8/msg/dtwm.msg index b59a1a039..d37727061 100644 --- a/cde/programs/localized/it_IT.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/it_IT.UTF-8/msg/dtwm.msg @@ -1,4 +1,3 @@ - $ "$TOG: dtwm.msg /main/6 1999/09/20 15:20:44 mgreess $"; $ *************************************<+>************************************* @@ -487,7 +486,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -629,6 +628,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 Key bindings %s not found, using builtin key bindings\n 68 Button bindings %s not found, using builtin button bindings\n +$ This item renames the title of a window +70 Cambiare\\ nome\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -784,6 +786,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 Esiste già un'icona con il nome specificato. 9 Gestione dello spazio di lavoro - Errore nell'azione sull'icona +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -793,4 +800,3 @@ $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" 2 "\n@(#)_DtMessage catalog source $TOG: dtwm.msg /main/6 1999/09/20 15:20:44 mgreess $" - diff --git a/cde/programs/localized/ja_JP.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/ja_JP.UTF-8/app-defaults/Dtwm.tmsg index 8dafa9527..94d5fd3f2 100644 --- a/cde/programs/localized/ja_JP.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/ja_JP.UTF-8/app-defaults/Dtwm.tmsg @@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList 19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*: $ Dtwm*icon*fontList 20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 名前の変更 diff --git a/cde/programs/localized/ja_JP.UTF-8/msg/dtwm.msg b/cde/programs/localized/ja_JP.UTF-8/msg/dtwm.msg index 20092a35f..56cabd045 100644 --- a/cde/programs/localized/ja_JP.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/ja_JP.UTF-8/msg/dtwm.msg @@ -1,4 +1,3 @@ - $ "$TOG: dtwm.msg /main/7 1999/09/20 15:21:12 mgreess $"; $ *************************************<+>************************************* @@ -485,7 +484,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -627,6 +626,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 Key bindings %s not found, using builtin key bindings\n 68 Button bindings %s not found, using builtin button bindings\n +$ This item renames the title of a window +70 名前の変更\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -783,6 +785,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 この名前のアイコンがすでに存在します。 9 ワークスペース・マネージャ - アイコン・アクション・エラー +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -792,4 +799,3 @@ $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" 2 "\n@(#)_DtMessage catalog source $TOG: dtwm.msg /main/7 1999/09/20 15:21:12 mgreess $" - diff --git a/cde/programs/localized/ko_KR.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/ko_KR.UTF-8/app-defaults/Dtwm.tmsg index 9b771ea76..a4b49069a 100644 --- a/cde/programs/localized/ko_KR.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/ko_KR.UTF-8/app-defaults/Dtwm.tmsg @@ -96,3 +96,6 @@ $ 19 -hp-batang-medium-r-normal--16-*-c-*: $ Dtwm*icon*fontList $ 20 -hp-batang-medium-r-normal--16-*-c-*: 20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 이름 바꾸기 diff --git a/cde/programs/localized/ko_KR.UTF-8/msg/dtwm.msg b/cde/programs/localized/ko_KR.UTF-8/msg/dtwm.msg index d6b72fa2b..d56eb7dd8 100644 --- a/cde/programs/localized/ko_KR.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/ko_KR.UTF-8/msg/dtwm.msg @@ -1,4 +1,3 @@ - $ "$XConsortium: dtwm.msg /main/3 1995/11/08 13:19:16 rswiston $"; $ *************************************<+>************************************* @@ -462,6 +461,7 @@ $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. $ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -603,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 키 묶기 %s을(를) 찾을 수 없습니다. 내장된 키 묶기를 사용합니다. 68 단추 묶기 %s을(를) 찾을 수 없습니다. 내장된 단추 묶기를 사용합니다. +$ This item renames the title of a window +70 이름\\ 바꾸기\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -758,6 +761,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 이 이름의 아이콘이 이미 있습니다. 9 작업장 관리자 - 아이콘 활동 오류 +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -767,4 +775,3 @@ $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" 2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/3 1995/11/08 13:19:16 rswiston $" - diff --git a/cde/programs/localized/sv_SE.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/sv_SE.UTF-8/app-defaults/Dtwm.tmsg index 236bc706c..88b7db655 100644 --- a/cde/programs/localized/sv_SE.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/sv_SE.UTF-8/app-defaults/Dtwm.tmsg @@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList 19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*: $ Dtwm*icon*fontList 20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 Byt namn diff --git a/cde/programs/localized/sv_SE.UTF-8/msg/dtwm.msg b/cde/programs/localized/sv_SE.UTF-8/msg/dtwm.msg index 570e6a92a..1225f0fc5 100644 --- a/cde/programs/localized/sv_SE.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/sv_SE.UTF-8/msg/dtwm.msg @@ -1,4 +1,3 @@ - $ "$XConsortium: dtwm.msg /main/4 1995/12/08 09:39:59 rswiston $"; $ *************************************<+>************************************* @@ -462,7 +461,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -604,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 Key bindings %s not found, using builtin key bindings\n 68 Button bindings %s not found, using builtin button bindings\n +$ This item renames the title of a window +70 Byt\\ namn\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -759,6 +761,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 Det finns redan en ikon med detta namn. 9 Arbetsytehanterare - fel vid ikonfunktion +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -768,4 +775,3 @@ $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" 2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/4 1995/12/08 09:39:59 rswiston $" - diff --git a/cde/programs/localized/zh_CN.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/zh_CN.UTF-8/app-defaults/Dtwm.tmsg index c41a47a41..d6329a15a 100644 --- a/cde/programs/localized/zh_CN.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/zh_CN.UTF-8/app-defaults/Dtwm.tmsg @@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList 19 -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-*-*: $ Dtwm*icon*fontList 20 -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 换名 diff --git a/cde/programs/localized/zh_CN.UTF-8/msg/dtwm.msg b/cde/programs/localized/zh_CN.UTF-8/msg/dtwm.msg index 640d0165d..e680d0d5e 100644 --- a/cde/programs/localized/zh_CN.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/zh_CN.UTF-8/msg/dtwm.msg @@ -1,4 +1,3 @@ - $ "$XConsortium: dtwm.msg /main/3 1995/11/08 13:53:27 rswiston $"; $ *************************************<+>************************************* @@ -463,7 +462,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -604,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 Key bindings %s not found, using builtin key bindings\n 68 Button bindings %s not found, using builtin button bindings\n +$ This item renames the title of a window +70 换名\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -760,6 +762,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 已经有一个此名字的图标了。 9 工作空间管理程序 - 图标动作出错 +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -769,4 +776,3 @@ $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" 2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/3 1995/11/08 13:53:27 rswiston $" - diff --git a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg index d716fc48c..db78d9f85 100644 --- a/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg +++ b/cde/programs/localized/zh_TW.UTF-8/app-defaults/Dtwm.tmsg @@ -88,3 +88,6 @@ $ Dtwm*FrontPanel*lowResFontList 19 -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-*: $ Dtwm*icon*fontList 20 -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-*: + +$ Dtwm*instantTitleDialogShell.title +21 改名 diff --git a/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg b/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg index 06ff9dc3d..2abf7df13 100644 --- a/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg +++ b/cde/programs/localized/zh_TW.UTF-8/msg/dtwm.msg @@ -1,4 +1,3 @@ - $ "$XConsortium: dtwm.msg /main/3 1995/11/08 14:09:06 rswiston $"; $ *************************************<+>************************************* @@ -462,7 +461,7 @@ $ Messages 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19 are not used. $ Messages 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 to 29, 31, 33 to 38, 66-68, $ go to an errorlog and do NOT need to be localized. $ Messages 30 and 39-47 are not used. -$ Only messages 32, 48-57 and 59 need to be localized. +$ Only messages 32, 48-57, 59 and 70 need to be localized. $ This message goes to an error file. $ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. @@ -604,6 +603,9 @@ $ YOU DON'T NEED TO LOCALIZE MESSAGES 66 TO 68. 67 Key bindings %s not found, using builtin key bindings\n 68 Button bindings %s not found, using builtin button bindings\n +$ This item renames the title of a window +70 改名\\.\\.\\. _a f.rename + $set 70 $ THIS COMMENT FOR DTWM TEAM ONLY -- WmWinInfo.c -- $ This entire set is written to an error file. @@ -759,6 +761,11 @@ $ Messages 5 and 6 are old. They are replaced by messaged 8 and 9. 8 已有圖像使用該名稱。 9 工作空間管理者 - 圖像動作錯誤 +$set 88 +$ THIS COMMENT FOR DTWM TEAM ONLY -- WmInstantTitle.c -- +$ This message goes to an error file. +$ YOU DON'T NEED TO LOCALIZE THIS MESSAGE. +1 Unable to create instant title dialog. $set 99 $ DO NOT TRANSLATE THESE MESSAGES @@ -768,4 +775,3 @@ $ These messages are used for the version information. $quote " 1 "@(#)version_goes_here" 2 "\n@(#)_DtMessage catalog source $XConsortium: dtwm.msg /main/3 1995/11/08 14:09:06 rswiston $" - From 85022e021828eb7155513caac174ead46d0e0098 Mon Sep 17 00:00:00 2001 From: Peter Howkins Date: Sun, 22 Jan 2023 23:23:53 +0000 Subject: [PATCH 08/47] (Pascal Stumpf) Makefile.am change several places where ${prefix} should be $(CDE_INSTALLATION_TOP) --- cde/programs/dtappbuilder/src/ab/Makefile.am | 2 +- cde/programs/dtfile/Makefile.am | 2 +- cde/programs/dtlogin/config/Makefile.am | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cde/programs/dtappbuilder/src/ab/Makefile.am b/cde/programs/dtappbuilder/src/ab/Makefile.am index c0dee1a6f..38302f72a 100644 --- a/cde/programs/dtappbuilder/src/ab/Makefile.am +++ b/cde/programs/dtappbuilder/src/ab/Makefile.am @@ -2,7 +2,7 @@ MAINTAINERCLEANFILES = Makefile.in .NOTPARALLEL: -appdefaultsdir = ${prefix}/app-defaults/C +appdefaultsdir = $(CDE_INSTALLATION_TOP)/app-defaults/C ABINCLUDES = -I../include -I../include/ab_private -I../libABil diff --git a/cde/programs/dtfile/Makefile.am b/cde/programs/dtfile/Makefile.am index 1c65aadfc..a24851b62 100644 --- a/cde/programs/dtfile/Makefile.am +++ b/cde/programs/dtfile/Makefile.am @@ -44,7 +44,7 @@ dtfile_SOURCES = ChangeDir.c ChangeDirP.c Command.c Common.c \ # Mind the quoting here... SCRIPTFLAGS = -DSHAPE -D_ILS_MACROS -DSUN_PERF \ - -DCDE_INSTALLATION_TOP="${prefix}" \ + -DCDE_INSTALLATION_TOP="$(CDE_CONFIGURATION_TOP)" \ -DCDE_CONFIGURATION_TOP="$(CDE_CONFIGURATION_TOP)" \ -DKORNSHELL="$(KSH)" diff --git a/cde/programs/dtlogin/config/Makefile.am b/cde/programs/dtlogin/config/Makefile.am index c488b2143..dd52791c3 100644 --- a/cde/programs/dtlogin/config/Makefile.am +++ b/cde/programs/dtlogin/config/Makefile.am @@ -1,6 +1,6 @@ AM_CPPFLAGS = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \ - -DCDE_INSTALLATION_TOP=${prefix} \ + -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \ -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP) \ -DFONTALIASESCONFDIR=$(sysconfdir)/$(PACKAGE_TARNAME)/fontaliases \ -DFONTALIASESDATADIR=$(pkgdatadir)/fontaliases \ From 3e50d92fbfd6388fccc399db9a74687c196091d8 Mon Sep 17 00:00:00 2001 From: Peter Howkins Date: Sun, 22 Jan 2023 23:27:24 +0000 Subject: [PATCH 09/47] (Pascal Stumpf) CDE doesn't provide the ksh binary, don't install the manpage for it --- cde/doc/en_US.UTF-8/man/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/doc/en_US.UTF-8/man/Makefile.am b/cde/doc/en_US.UTF-8/man/Makefile.am index d9b38a3d3..0cee74c77 100644 --- a/cde/doc/en_US.UTF-8/man/Makefile.am +++ b/cde/doc/en_US.UTF-8/man/Makefile.am @@ -8,7 +8,7 @@ DBTOMAN = $(top_srcdir)/programs/dtdocbook/doc_utils/dtdocbook2man $(LANG) # first, the man pages broken down by sections MANSEC1 = man1/tttrace.1 man1/tttar.1 man1/ttsession.1 man1/ttrmdir.1 \ man1/ttrm.1 man1/ttmv.1 man1/ttcp.1 man1/tt_type_comp.1 \ - man1/ksh.1 man1/huffcode.1 man1/dtwm.1 man1/dtudcfonted.1 \ + man1/huffcode.1 man1/dtwm.1 man1/dtudcfonted.1 \ man1/dtudcexch.1 man1/dttypes.1 man1/dtterm.1 man1/dtstyle.1 \ man1/dtsrload.1 man1/dtsrkdump.1 man1/dtsrindex.1 man1/dtsrhan.1 \ man1/dtsrdbrec.1 man1/dtsrcreate.1 man1/dtsession_res.1 \ From 8dff0e37b77591bf445504cec92fb167212a8d3c Mon Sep 17 00:00:00 2001 From: Peter Howkins Date: Sun, 22 Jan 2023 23:31:42 +0000 Subject: [PATCH 10/47] (Pascal Stumpf) dtlogin: On OpenBSD start X as root (it drops privileges later) --- cde/programs/dtlogin/config/Xservers.src | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtlogin/config/Xservers.src b/cde/programs/dtlogin/config/Xservers.src index 135fd9578..f64436723 100644 --- a/cde/programs/dtlogin/config/Xservers.src +++ b/cde/programs/dtlogin/config/Xservers.src @@ -102,7 +102,7 @@ XCOMM * Local local@console /usr/bin/X :0 #elif defined (__linux__) :0 Local local_uid@tty1 root /usr/bin/X :0 #elif defined (__OpenBSD__) - :0 Local local@console /usr/X11R6/bin/X :0 + :0 Local local_uid@console root /usr/X11R6/bin/X :0 #elif defined (__NetBSD__) :0 Local local@console /usr/X11R7/bin/X :0 #elif defined (__FreeBSD__) From 02b4302a738b1ade6428d2d1d8ed766e8b6514cc Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 4 Feb 2023 13:03:49 -0700 Subject: [PATCH 11/47] Apply various patches from Giacomo Comes This makes certain changes if you are bold enough to use a different installation prefix than /usr/dt: - fix MANDIR output from dtsearchpath - missing dtopn_* links - /usr/dt/bin is always needed - fix DTKORNSHELL output for dtlp --- cde/doc/Makefile.am | 4 ++++ cde/programs/Makefile.am | 4 ++++ cde/programs/dtopen/Makefile.am | 10 +++++----- cde/programs/dtprintegrate/Makefile.am | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/cde/doc/Makefile.am b/cde/doc/Makefile.am index 7812923ae..7b91bb241 100644 --- a/cde/doc/Makefile.am +++ b/cde/doc/Makefile.am @@ -21,3 +21,7 @@ endif if JAPANESE SUBDIRS += ja_JP.UTF-8 endif + +install-data-hook: + $(RM) $(DESTDIR)$(CDE_INSTALLATION_TOP)/man + cd $(DESTDIR)$(CDE_INSTALLATION_TOP)/ && $(LN_S) $(mandir) man diff --git a/cde/programs/Makefile.am b/cde/programs/Makefile.am index 1f5f4eb9a..77bb1d60e 100644 --- a/cde/programs/Makefile.am +++ b/cde/programs/Makefile.am @@ -7,3 +7,7 @@ SUBDIRS = backdrops icons dsdm dtmail dtpad dtfile dtwm dtlogin \ dtcreate dtprintinfo fontaliases dtdspmsg ttsnoop dtimsstart \ dtpdm dtsr dtpdmd dtinfo types tttypes util dtopen localized \ dthelp dtdocbook + +install-data-hook: + -if [ $(CDE_INSTALLATION_TOP)/bin != $(bindir) ];then \ + cd $(DESTDIR)$(CDE_INSTALLATION_TOP) && $(LN_S) $(bindir) bin ; fi diff --git a/cde/programs/dtopen/Makefile.am b/cde/programs/dtopen/Makefile.am index aefee28dc..39eef4915 100644 --- a/cde/programs/dtopen/Makefile.am +++ b/cde/programs/dtopen/Makefile.am @@ -14,8 +14,8 @@ dtopen: dtopen.src $(GENCPP) -P -DXCOMM=# $(LOCAL_CPP_DEFINES) $< > $@ install-data-hook: - $(RM) $(DESTDIR)$(CDE_INSTALLATION_TOP)/bin/dtopen_* - cd $(DESTDIR)$(CDE_INSTALLATION_TOP)/bin && $(LN_S) dtopen dtopen_video - cd $(DESTDIR)$(CDE_INSTALLATION_TOP)/bin && $(LN_S) dtopen dtopen_image - cd $(DESTDIR)$(CDE_INSTALLATION_TOP)/bin && $(LN_S) dtopen dtopen_ps - cd $(DESTDIR)$(CDE_INSTALLATION_TOP)/bin && $(LN_S) dtopen dtopen_pdf + $(RM) $(DESTDIR)$(bindir)/dtopen_* + cd $(DESTDIR)$(bindir) && $(LN_S) dtopen dtopen_video + cd $(DESTDIR)$(bindir) && $(LN_S) dtopen dtopen_image + cd $(DESTDIR)$(bindir) && $(LN_S) dtopen dtopen_ps + cd $(DESTDIR)$(bindir) && $(LN_S) dtopen dtopen_pdf diff --git a/cde/programs/dtprintegrate/Makefile.am b/cde/programs/dtprintegrate/Makefile.am index 8ebbe5a29..de01ee113 100644 --- a/cde/programs/dtprintegrate/Makefile.am +++ b/cde/programs/dtprintegrate/Makefile.am @@ -4,7 +4,7 @@ bin_SCRIPTS = dtprintegrate dtlp dtlpsetup LOCAL_CPP_DEFINES = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \ -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \ - -DDTKORNSHELL="$(CDE_INSTALLATION_TOP)/bin/dtksh" \ + -DDTKORNSHELL="$(bindir)/dtksh" \ -DKORNSHELL=$(KSH) BUILT_SOURCES = dtprintegrate dtlp dtlpsetup From 65e8cf9019b4fa20b68b85c3929b9b2264881180 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Feb 2023 13:56:39 -0700 Subject: [PATCH 12/47] Patch from Giacomo Comes: rename ksh manpage to ksh-cde The man page dtksh.1 only refers to the dt extensions. For options, operands, input files, etc, such man page points to the (k)sh.1 man page. Since the version of ksh installed with the OS is different from the one used to build dtksh, the correct documantation of dtksh can be found only in cde's ksh man page. To avoid any conflict or confusion, my patch renames cde's ksh.1 as ksh-cde.1 --- .../en_US.UTF-8/guides/man/man1_dt/ksh.sgm | 28 +++++++++---------- cde/doc/en_US.UTF-8/man/Makefile.am | 4 +-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cde/doc/en_US.UTF-8/guides/man/man1_dt/ksh.sgm b/cde/doc/en_US.UTF-8/guides/man/man1_dt/ksh.sgm index a1bc383bb..85c8443b5 100644 --- a/cde/doc/en_US.UTF-8/guides/man/man1_dt/ksh.sgm +++ b/cde/doc/en_US.UTF-8/guides/man/man1_dt/ksh.sgm @@ -32,7 +32,7 @@ Inc.--> DESCRIPTION -The dtksh utility is a version of the sh utility (defined in the &str-ZC;) ]]>extended +The dtksh utility is a version of the ksh-cde utility (defined in the &str-ZC;) ]]>extended to support: @@ -68,10 +68,10 @@ using the &str-XZ; customization tool OPTIONS -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> OPERANDS -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> RESOURCES The dtksh interpreter has no relevant resources outside @@ -80,14 +80,14 @@ a dtksh script. Refer to the manual page of the relevant widget for information on the resources that apply to that widget. STDIN -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> INPUT FILES -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> ENVIRONMENT VARIABLES The following information describes the environment variables that dtksh uses that are in addition to those documented in the manual -page for the sh command language interpreter. +page for the ksh-cde command language interpreter. Immediate Return Value (-) Many of the category 3 commands (as described in Return Values From Built-in Commands section) ]]>XtRemoveInput. Default. STDOUT -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> STDERR -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> OUTPUT FILES None. EXTENDED DESCRIPTION -The capabilities described here are extensions to those of the sh command language interpreter. See sh(1). ]]>sh in the &str-ZC;. ]]>The +The capabilities described here are extensions to those of the ksh-cde command language interpreter. See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]>The following subsections give a synopsis of each of the built-in commands added -by dtksh to sh. In general, argument +by dtksh to ksh-cde. In general, argument ordering and types are the same as for corresponding C procedures, with exceptions noted. For more detail on the functionality and arguments of a command, see the standard documentation for the corresponding X11, Xt, Motif or Desktop @@ -2970,10 +2970,10 @@ the resource name. EXIT STATUS -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> CONSEQUENCES OF ERRORS -See sh(1). ]]>sh in the &str-ZC;. ]]> +See ksh-cde(1). ]]>ksh-cde in the &str-ZC;. ]]> APPLICATION USAGE @@ -3229,7 +3229,7 @@ labelString:$(catgets $MSG_CAT_ID 1 3 "Cancel") catclose $MSG_CAT_ID The file descriptor returned by catopen must be closed -using catclose, and not using the sh exec command. +using catclose, and not using the ksh-cde exec command. Using the dtksh Utility to Access X Drawing Functions @@ -3322,6 +3322,6 @@ XtOverrideTranslations $BUTTON2 EXAMPLES None. -SEE ALSO<?Pub Caret>sh(1).]]>sh in the &str-ZC;.]]> +SEE ALSO<?Pub Caret>ksh-cde(1).]]>ksh-cde in the &str-ZC;.]]> diff --git a/cde/doc/en_US.UTF-8/man/Makefile.am b/cde/doc/en_US.UTF-8/man/Makefile.am index 0cee74c77..a3415d8b8 100644 --- a/cde/doc/en_US.UTF-8/man/Makefile.am +++ b/cde/doc/en_US.UTF-8/man/Makefile.am @@ -8,7 +8,7 @@ DBTOMAN = $(top_srcdir)/programs/dtdocbook/doc_utils/dtdocbook2man $(LANG) # first, the man pages broken down by sections MANSEC1 = man1/tttrace.1 man1/tttar.1 man1/ttsession.1 man1/ttrmdir.1 \ man1/ttrm.1 man1/ttmv.1 man1/ttcp.1 man1/tt_type_comp.1 \ - man1/huffcode.1 man1/dtwm.1 man1/dtudcfonted.1 \ + man1/ksh-cde.1 man1/huffcode.1 man1/dtwm.1 man1/dtudcfonted.1 \ man1/dtudcexch.1 man1/dttypes.1 man1/dtterm.1 man1/dtstyle.1 \ man1/dtsrload.1 man1/dtsrkdump.1 man1/dtsrindex.1 man1/dtsrhan.1 \ man1/dtsrdbrec.1 man1/dtsrcreate.1 man1/dtsession_res.1 \ @@ -523,7 +523,7 @@ man1/dtwm.1: ../guides/man/man1_dt/wm.sgm $(MANDEPS) man1/huffcode.1: ../guides/man/man1_dt/huffcode.sgm $(MANDEPS) $(DBTOMAN) cdedecl.sgm $< $@ -man1/ksh.1: ../guides/man/man1/ksh93.sgm $(MANDEPS) +man1/ksh-cde.1: ../guides/man/man1/ksh93.sgm $(MANDEPS) $(DBTOMAN) cdedecl.sgm $< $@ man1/tt_type_comp.1: ../guides/man/man1/tt_typ_c.sgm $(MANDEPS) From 8a24d70d5e0f2323243602373ab5338ced890d75 Mon Sep 17 00:00:00 2001 From: Cy Schubert Date: Wed, 15 Feb 2023 10:12:21 -0800 Subject: [PATCH 13/47] Fix build under LLVM15 Fix many -Wint-conversion errors such as the example below, including an aso atomics error. connect.c:87:12: error: incompatible pointer to integer conversion initializing 'LONG' (aka 'int') with an expression of type 'void *' [-Wint-conversion] DB_ADDR mdba = NULL; /* db address of current member record */ ^ ~~~~ --- cde/lib/DtHelp/AccessCCDF.c | 2 ++ cde/lib/DtSearch/raima/connect.c | 4 +-- cde/programs/dtappbuilder/src/ab/pal_button.c | 30 ++++++++-------- cde/programs/dtappbuilder/src/ab/pal_choice.c | 22 ++++++------ .../dtappbuilder/src/ab/pal_combobox.c | 16 ++++----- cde/programs/dtappbuilder/src/ab/pal_cpanel.c | 14 ++++---- .../dtappbuilder/src/ab/pal_custdlg.c | 14 ++++---- cde/programs/dtappbuilder/src/ab/pal_drawp.c | 16 ++++----- .../dtappbuilder/src/ab/pal_fchooser.c | 6 ++-- cde/programs/dtappbuilder/src/ab/pal_group.c | 36 +++++++++---------- cde/programs/dtappbuilder/src/ab/pal_label.c | 14 ++++---- cde/programs/dtappbuilder/src/ab/pal_list.c | 24 ++++++------- .../dtappbuilder/src/ab/pal_mainwin.c | 8 ++--- cde/programs/dtappbuilder/src/ab/pal_menu.c | 28 +++++++-------- .../dtappbuilder/src/ab/pal_menubar.c | 4 +-- cde/programs/dtappbuilder/src/ab/pal_scale.c | 24 ++++++------- cde/programs/dtappbuilder/src/ab/pal_sep.c | 22 ++++++------ .../dtappbuilder/src/ab/pal_spinbox.c | 22 ++++++------ cde/programs/dtappbuilder/src/ab/pal_termp.c | 18 +++++----- cde/programs/dtappbuilder/src/ab/pal_textf.c | 16 ++++----- cde/programs/dtappbuilder/src/ab/pal_textp.c | 22 ++++++------ .../dtksh/ksh93/src/lib/libast/aso/aso.c | 2 +- 22 files changed, 183 insertions(+), 181 deletions(-) diff --git a/cde/lib/DtHelp/AccessCCDF.c b/cde/lib/DtHelp/AccessCCDF.c index b301c67b2..9fb60eb5d 100644 --- a/cde/lib/DtHelp/AccessCCDF.c +++ b/cde/lib/DtHelp/AccessCCDF.c @@ -59,6 +59,8 @@ extern int errno; #endif +extern char *_DtHelpGetLocale(void); + /* * Canvas Engine includes */ diff --git a/cde/lib/DtSearch/raima/connect.c b/cde/lib/DtSearch/raima/connect.c index 4e5160faf..e9054dbd0 100644 --- a/cde/lib/DtSearch/raima/connect.c +++ b/cde/lib/DtSearch/raima/connect.c @@ -84,8 +84,8 @@ int dbn /* Database number */ char *orec; /* ptr to current owner record contents in cache */ char *mrec; /* ptr to current member record contents in cache */ char *nrec; /* ptr to next member record contents in cache */ - DB_ADDR mdba = NULL; /* db address of current member record */ - DB_ADDR ndba = NULL; /* db address of next member record */ + DB_ADDR mdba = 0; /* db address of current member record */ + DB_ADDR ndba = 0; /* db address of next member record */ INT ordering; /* set order control variable */ int stat, compare; /* status code & sort comparison result */ SET_ENTRY *set_ptr; diff --git a/cde/programs/dtappbuilder/src/ab/pal_button.c b/cde/programs/dtappbuilder/src/ab/pal_button.c index 9b9226b53..4123c94f2 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_button.c +++ b/cde/programs/dtappbuilder/src/ab/pal_button.c @@ -294,11 +294,11 @@ button_prop_init( /* Button Type */ n = 0; item[n] = cgen->buttontype_rbox_items.Push_item; - item_ptr[n] = AB_BUT_PUSH; n++; + item_ptr[n] = (void *) AB_BUT_PUSH; n++; item[n] = cgen->buttontype_rbox_items.Drawn_item; - item_ptr[n] = AB_BUT_DRAWN; n++; + item_ptr[n] = (void *) AB_BUT_DRAWN; n++; item[n] = cgen->buttontype_rbox_items.Menu_item; - item_ptr[n] = AB_BUT_MENU; n++; + item_ptr[n] = (void *) AB_BUT_MENU; n++; prop_radiobox_init(&(pbs->button_type), cgen->buttontype_rbox_label, cgen->buttontype_rbox, n, item, item_ptr, cgen->buttontype_cb); @@ -309,11 +309,11 @@ button_prop_init( /* Label Type */ n = 0; item[n] = cgen->labeltype_rbox_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_rbox_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; item[n] = cgen->labeltype_rbox_items.Arrow_item; - item_ptr[n] = AB_LABEL_ARROW_DOWN; n++; + item_ptr[n] = (void *) AB_LABEL_ARROW_DOWN; n++; prop_options_init(&(pbs->label_type), cgen->labeltype_rbox_label, cgen->labeltype_rbox, cgen->labeltype_rbox_menu, n, item, item_ptr, @@ -346,11 +346,11 @@ button_prop_init( /* Label Align */ n = 0; item[n] = cgen->labelalign_opmenu_items.Left_item; - item_ptr[n] = AB_ALIGN_LEFT; n++; + item_ptr[n] = (void *) AB_ALIGN_LEFT; n++; item[n] = cgen->labelalign_opmenu_items.Centered_item; - item_ptr[n] = AB_ALIGN_CENTER; n++; + item_ptr[n] = (void *) AB_ALIGN_CENTER; n++; item[n] = cgen->labelalign_opmenu_items.Right_item; - item_ptr[n] = AB_ALIGN_RIGHT; n++; + item_ptr[n] = (void *) AB_ALIGN_RIGHT; n++; prop_options_init(&(pbs->label_align), cgen->labelalign_opmenu_label, cgen->labelalign_opmenu, cgen->labelalign_opmenu_menu, n, item, item_ptr, @@ -359,13 +359,13 @@ button_prop_init( /* Arrow Direction */ n = 0; item[n] = cgen->arrowdir_opmenu_items.Up_item; - item_ptr[n] = AB_LABEL_ARROW_UP; n++; + item_ptr[n] = (void *) AB_LABEL_ARROW_UP; n++; item[n] = cgen->arrowdir_opmenu_items.Down_item; - item_ptr[n] = AB_LABEL_ARROW_DOWN; n++; + item_ptr[n] = (void *) AB_LABEL_ARROW_DOWN; n++; item[n] = cgen->arrowdir_opmenu_items.Right_item; - item_ptr[n] = AB_LABEL_ARROW_RIGHT; n++; + item_ptr[n] = (void *) AB_LABEL_ARROW_RIGHT; n++; item[n] = cgen->arrowdir_opmenu_items.Left_item; - item_ptr[n] = AB_LABEL_ARROW_LEFT; n++; + item_ptr[n] = (void *) AB_LABEL_ARROW_LEFT; n++; prop_options_init(&(pbs->arrow_dir), cgen->arrowdir_opmenu_label, cgen->arrowdir_opmenu, cgen->arrowdir_opmenu_menu, n, item, item_ptr, @@ -380,9 +380,9 @@ button_prop_init( /* Size Policy */ n = 0; item[n] = cgen->sizepolicy_rbox_items.Size_of_Label_item; - item_ptr[n] = SIZE_OF_CONTENTS_KEY; n++; + item_ptr[n] = (void *) SIZE_OF_CONTENTS_KEY; n++; item[n] = cgen->sizepolicy_rbox_items.Fixed_item; - item_ptr[n] = SIZE_FIXED_KEY; n++; + item_ptr[n] = (void *) SIZE_FIXED_KEY; n++; prop_radiobox_init(&(pbs->size_policy), cgen->sizepolicy_rbox_label, cgen->sizepolicy_rbox, n, item, item_ptr, cgen->sizepolicy_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_choice.c b/cde/programs/dtappbuilder/src/ab/pal_choice.c index 332401101..c63253800 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_choice.c +++ b/cde/programs/dtappbuilder/src/ab/pal_choice.c @@ -343,9 +343,9 @@ choice_prop_init( /* Label, Type, Position */ n = 0; item[n] = cgen->labeltype_rbox_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_rbox_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pcs->label_type), cgen->labeltype_rbox_label, cgen->labeltype_rbox, cgen->labeltype_rbox_menu, n, item, item_ptr, cgen->labeltype_cb); @@ -357,9 +357,9 @@ choice_prop_init( n = 0; item[n] = cgen->labelpos_rbox_items.Above_item; - item_ptr[n] = AB_CP_NORTH; n++; + item_ptr[n] = (void *) AB_CP_NORTH; n++; item[n] = cgen->labelpos_rbox_items.Left_item; - item_ptr[n] = AB_CP_WEST; n++; + item_ptr[n] = (void *) AB_CP_WEST; n++; prop_options_init(&(pcs->label_pos), cgen->labelpos_rbox_label, cgen->labelpos_rbox, cgen->labelpos_rbox_menu, n, item, item_ptr, cgen->labeltype_cb); @@ -368,11 +368,11 @@ choice_prop_init( /* Choice Type */ n = 0; item[n] = cgen->choicetype_rbox_items.Radio_Box_item; - item_ptr[n] = AB_CHOICE_EXCLUSIVE; n++; + item_ptr[n] = (void *) AB_CHOICE_EXCLUSIVE; n++; item[n] = cgen->choicetype_rbox_items.Check_Box_item; - item_ptr[n] = AB_CHOICE_NONEXCLUSIVE; n++; + item_ptr[n] = (void *) AB_CHOICE_NONEXCLUSIVE; n++; item[n] = cgen->choicetype_rbox_items.Option_Menu_item; - item_ptr[n] = AB_CHOICE_OPTION_MENU; n++; + item_ptr[n] = (void *) AB_CHOICE_OPTION_MENU; n++; prop_options_init(&(pcs->choice_type), cgen->choicetype_rbox_label, cgen->choicetype_rbox, cgen->choicetype_rbox_menu, n, item, item_ptr, @@ -384,9 +384,9 @@ choice_prop_init( /* Rows/Columns */ n = 0; item[n] = cgen->layout_rbox_items.Columns_item; - item_ptr[n] = AB_ORIENT_VERTICAL; n++; + item_ptr[n] = (void *) AB_ORIENT_VERTICAL; n++; item[n] = cgen->layout_rbox_items.Rows_item; - item_ptr[n] = AB_ORIENT_HORIZONTAL; n++; + item_ptr[n] = (void *) AB_ORIENT_HORIZONTAL; n++; prop_radiobox_init(&(pcs->row_col), cgen->layout_rbox_label, cgen->layout_rbox, n, item, item_ptr, @@ -428,9 +428,9 @@ choice_prop_init( /* Item Label Type */ n = 0; item[n] = cgen->itemlabel_opmenu_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->itemlabel_opmenu_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pcs->item_label_type), cgen->itemlabel_type_label, cgen->itemlabel_opmenu, cgen->itemlabel_opmenu_menu, n, item, item_ptr, cgen->itemlist_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_combobox.c b/cde/programs/dtappbuilder/src/ab/pal_combobox.c index 9cc80ba12..e44673804 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_combobox.c +++ b/cde/programs/dtappbuilder/src/ab/pal_combobox.c @@ -295,9 +295,9 @@ combo_box_prop_init( /* Label, Type, Position */ n = 0; item[n] = cgen->labeltype_rbox_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_rbox_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pcs->label_type), cgen->labeltype_rbox_label, cgen->labeltype_rbox, cgen->labeltype_rbox_menu, n, item, item_ptr, @@ -310,9 +310,9 @@ combo_box_prop_init( n = 0; item[n] = cgen->labelpos_rbox_items.Above_item; - item_ptr[n] = AB_CP_NORTH; n++; + item_ptr[n] = (void *) AB_CP_NORTH; n++; item[n] = cgen->labelpos_rbox_items.Left_item; - item_ptr[n] = AB_CP_WEST; n++; + item_ptr[n] = (void *) AB_CP_WEST; n++; prop_options_init(&(pcs->label_pos), cgen->labelpos_rbox_label, cgen->labelpos_rbox, cgen->labelpos_rbox_menu, n, item, item_ptr, @@ -321,9 +321,9 @@ combo_box_prop_init( /* Read Only */ n = 0; item[n] = cgen->comboboxtype_rbox_items.Static_item; - item_ptr[n] = True; n++; + item_ptr[n] = (void *) True; n++; item[n] = cgen->comboboxtype_rbox_items.Editable_item; - item_ptr[n] = False; n++; + item_ptr[n] = (void *) False; n++; prop_radiobox_init(&(pcs->combobox_type), cgen->comboboxtype_rbox_label, cgen->comboboxtype_rbox, n, item, item_ptr, cgen->comboboxtype_cb); @@ -339,9 +339,9 @@ combo_box_prop_init( /* Width */ n = 0; item[n] = cgen->wpolicy_rbox_items.Longest_Item_item; - item_ptr[n] = SIZE_OF_CONTENTS_KEY; n++; + item_ptr[n] = (void *) SIZE_OF_CONTENTS_KEY; n++; item[n] = cgen->wpolicy_rbox_items.Fixed_item; - item_ptr[n] = SIZE_FIXED_KEY; n++; + item_ptr[n] = (void *) SIZE_FIXED_KEY; n++; prop_radiobox_init(&(pcs->wth_policy), cgen->wpolicy_rbox_label, cgen->wpolicy_rbox, n, item, item_ptr, cgen->wpolicy_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_cpanel.c b/cde/programs/dtappbuilder/src/ab/pal_cpanel.c index 9e777ad7b..04f3faa8f 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_cpanel.c +++ b/cde/programs/dtappbuilder/src/ab/pal_cpanel.c @@ -281,15 +281,15 @@ cpanel_prop_init( /* Border Frame Setting */ n = 0; item[n] = cgen->bframe_opmenu_items.None_item; - item_ptr[n] = AB_LINE_NONE; n++; + item_ptr[n] = (void *) AB_LINE_NONE; n++; item[n] = cgen->bframe_opmenu_items.Shadow_Out_item; - item_ptr[n] = AB_LINE_SHADOW_OUT; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_OUT; n++; item[n] = cgen->bframe_opmenu_items.Shadow_In_item; - item_ptr[n] = AB_LINE_SHADOW_IN; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_IN; n++; item[n] = cgen->bframe_opmenu_items.Etched_Out_item; - item_ptr[n] = AB_LINE_ETCHED_OUT; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT; n++; item[n] = cgen->bframe_opmenu_items.Etched_In_item; - item_ptr[n] = AB_LINE_ETCHED_IN; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN; n++; prop_options_init(&(pcs->frame), cgen->bframe_opmenu_label, cgen->bframe_opmenu, cgen->bframe_opmenu_menu, n, item, item_ptr, @@ -309,9 +309,9 @@ cpanel_prop_init( /* Size Policy */ n = 0; item[n] = cgen->size_policy_rbox_items.Fit_Contents_item; - item_ptr[n] = SIZE_OF_CONTENTS_KEY; n++; + item_ptr[n] = (void *) SIZE_OF_CONTENTS_KEY; n++; item[n] = cgen->size_policy_rbox_items.Fixed_item; - item_ptr[n] = SIZE_FIXED_KEY; n++; + item_ptr[n] = (void *) SIZE_FIXED_KEY; n++; prop_radiobox_init(&(pcs->size_policy), cgen->size_policy_rbox_label, cgen->size_policy_rbox, n, item, item_ptr, cgen->size_policy_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_custdlg.c b/cde/programs/dtappbuilder/src/ab/pal_custdlg.c index 5393ac27b..a83e8eee7 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_custdlg.c +++ b/cde/programs/dtappbuilder/src/ab/pal_custdlg.c @@ -303,7 +303,7 @@ custdlg_prop_init( /* Window Parent */ n = 0; item[n] = cgen->winparent_opmenu_items.None_item; - item_ptr[n] = 0; n++; + item_ptr[n] = (void *) 0; n++; prop_obj_options_init(&(pcs->win_parent), cgen->winparent_opmenu_label, cgen->winparent_opmenu, cgen->winparent_opmenu_menu, n, item, item_ptr, @@ -317,9 +317,9 @@ custdlg_prop_init( /* Resize Mode */ n = 0; item[n] = cgen->resizemode_rbox_items.Adjustable_item; - item_ptr[n] = True; n++; + item_ptr[n] = (void *) True; n++; item[n] = cgen->resizemode_rbox_items.Fixed_item; - item_ptr[n] = False; n++; + item_ptr[n] = (void *) False; n++; prop_radiobox_init(&(pcs->resize_mode), cgen->resizemode_rbox_label, cgen->resizemode_rbox, n, item, item_ptr, cgen->resizemode_cb); @@ -338,7 +338,7 @@ custdlg_prop_init( /* Default Button */ n = 0; item[n] = cgen->defaultb_opmenu_items.None_item; - item_ptr[n] = 0; n++; + item_ptr[n] = (void *) 0; n++; prop_obj_options_init(&(pcs->default_but), cgen->defaultb_opmenu_label, cgen->defaultb_opmenu, cgen->defaultb_opmenu_menu, n, item, item_ptr, @@ -348,7 +348,7 @@ custdlg_prop_init( /* Help Button */ n = 0; item[n] = cgen->helpb_opmenu_items.None_item; - item_ptr[n] = 0; n++; + item_ptr[n] = (void *) 0; n++; prop_obj_options_init(&(pcs->help_but), cgen->helpb_opmenu_label, cgen->helpb_opmenu, cgen->helpb_opmenu_menu, n, item, item_ptr, @@ -358,9 +358,9 @@ custdlg_prop_init( /* Size Policy */ n = 0; item[n] = cgen->size_policy_rbox_items.Fit_Contents_item; - item_ptr[n] = SIZE_OF_CONTENTS_KEY; n++; + item_ptr[n] = (void *) SIZE_OF_CONTENTS_KEY; n++; item[n] = cgen->size_policy_rbox_items.Fixed_item; - item_ptr[n] = SIZE_FIXED_KEY; n++; + item_ptr[n] = (void *) SIZE_FIXED_KEY; n++; prop_radiobox_init(&(pcs->size_policy), cgen->size_policy_rbox_label, cgen->size_policy_rbox, n, item, item_ptr, cgen->size_policy_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_drawp.c b/cde/programs/dtappbuilder/src/ab/pal_drawp.c index 237db19f7..262081ec8 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_drawp.c +++ b/cde/programs/dtappbuilder/src/ab/pal_drawp.c @@ -273,11 +273,11 @@ drawp_prop_init( /* Scrolling */ n = 0; item[n] = cgen->scrolldisp_rbox_items.Never_item; - item_ptr[n] = AB_SCROLLBAR_NEVER; n++; + item_ptr[n] = (void *) AB_SCROLLBAR_NEVER; n++; item[n] = cgen->scrolldisp_rbox_items.Always_item; - item_ptr[n] = AB_SCROLLBAR_ALWAYS; n++; + item_ptr[n] = (void *) AB_SCROLLBAR_ALWAYS; n++; item[n] = cgen->scrolldisp_rbox_items.When_Needed_item; - item_ptr[n] = AB_SCROLLBAR_WHEN_NEEDED; n++; + item_ptr[n] = (void *) AB_SCROLLBAR_WHEN_NEEDED; n++; prop_radiobox_init(&(pds->scrolling), cgen->scrolldisp_rbox_label, cgen->scrolldisp_rbox, n, item, item_ptr, cgen->scroll_cb); @@ -289,15 +289,15 @@ drawp_prop_init( /* Border Frame */ n = 0; item[n] = cgen->bframe_opmenu_items.None_item; - item_ptr[n] = AB_LINE_NONE; n++; + item_ptr[n] = (void *) AB_LINE_NONE; n++; item[n] = cgen->bframe_opmenu_items.Shadow_Out_item; - item_ptr[n] = AB_LINE_SHADOW_OUT; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_OUT; n++; item[n] = cgen->bframe_opmenu_items.Shadow_In_item; - item_ptr[n] = AB_LINE_SHADOW_IN; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_IN; n++; item[n] = cgen->bframe_opmenu_items.Etched_Out_item; - item_ptr[n] = AB_LINE_ETCHED_OUT; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT; n++; item[n] = cgen->bframe_opmenu_items.Etched_In_item; - item_ptr[n] = AB_LINE_ETCHED_IN; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN; n++; prop_options_init(&(pds->frame), cgen->bframe_opmenu_label, cgen->bframe_opmenu, cgen->bframe_opmenu_menu, n, item, item_ptr, diff --git a/cde/programs/dtappbuilder/src/ab/pal_fchooser.c b/cde/programs/dtappbuilder/src/ab/pal_fchooser.c index a4a02b8f2..8fab0775d 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_fchooser.c +++ b/cde/programs/dtappbuilder/src/ab/pal_fchooser.c @@ -282,11 +282,11 @@ fchooser_prop_init( /* Search Pattern Type */ n = 0; item[n] = cgen->pattern_type_rbox_items.Files_item; - item_ptr[n] = AB_FILE_REGULAR; n++; + item_ptr[n] = (void *) AB_FILE_REGULAR; n++; item[n] = cgen->pattern_type_rbox_items.Directories_item; - item_ptr[n] = AB_FILE_DIRECTORY; n++; + item_ptr[n] = (void *) AB_FILE_DIRECTORY; n++; item[n] = cgen->pattern_type_rbox_items.Both_item; - item_ptr[n] = AB_FILE_ANY; n++; + item_ptr[n] = (void *) AB_FILE_ANY; n++; prop_radiobox_init(&(pcs->pattern_type), cgen->pattern_type_rbox_label, cgen->pattern_type_rbox, n, item, item_ptr, cgen->pattern_type_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_group.c b/cde/programs/dtappbuilder/src/ab/pal_group.c index 5da93db29..7f1d2ee1a 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_group.c +++ b/cde/programs/dtappbuilder/src/ab/pal_group.c @@ -742,15 +742,15 @@ group_prop_init( /* Border Frame Setting */ n = 0; item[n] = cgen->bframe_opmenu_items.None_item; - item_ptr[n] = AB_LINE_NONE; n++; + item_ptr[n] = (void *) AB_LINE_NONE; n++; item[n] = cgen->bframe_opmenu_items.Shadow_Out_item; - item_ptr[n] = AB_LINE_SHADOW_OUT; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_OUT; n++; item[n] = cgen->bframe_opmenu_items.Shadow_In_item; - item_ptr[n] = AB_LINE_SHADOW_IN; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_IN; n++; item[n] = cgen->bframe_opmenu_items.Etched_Out_item; - item_ptr[n] = AB_LINE_ETCHED_OUT; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT; n++; item[n] = cgen->bframe_opmenu_items.Etched_In_item; - item_ptr[n] = AB_LINE_ETCHED_IN; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN; n++; prop_options_init(&(pgs->frame), cgen->bframe_opmenu_label, cgen->bframe_opmenu, cgen->bframe_opmenu_menu, n, item, item_ptr, @@ -759,13 +759,13 @@ group_prop_init( /* Layout Type */ n = 0; item[n] = cgen->layout_rbox_items.bitmaps_ggp_as_is_xbm_item; - item_ptr[n] = AB_GROUP_IGNORE; n++; + item_ptr[n] = (void *) AB_GROUP_IGNORE; n++; item[n] = cgen->layout_rbox_items.bitmaps_ggp_col_xbm_item; - item_ptr[n] = AB_GROUP_COLUMNS; n++; + item_ptr[n] = (void *) AB_GROUP_COLUMNS; n++; item[n] = cgen->layout_rbox_items.bitmaps_ggp_row_xbm_item; - item_ptr[n] = AB_GROUP_ROWS; n++; + item_ptr[n] = (void *) AB_GROUP_ROWS; n++; item[n] = cgen->layout_rbox_items.bitmaps_ggp_rowcol_xbm_item; - item_ptr[n] = AB_GROUP_ROWSCOLUMNS; n++; + item_ptr[n] = (void *) AB_GROUP_ROWSCOLUMNS; n++; prop_radiobox_init(&(pgs->layout_type), cgen->layout_rbox_label, cgen->layout_rbox, n, item, item_ptr, cgen->layout_cb1); @@ -781,9 +781,9 @@ group_prop_init( /* Grid Row/Columns */ n = 0; item[n] = cgen->gridrowcol_rbox_items.Rows_item; - item_ptr[n] = AB_ORIENT_HORIZONTAL; n++; + item_ptr[n] = (void *) AB_ORIENT_HORIZONTAL; n++; item[n] = cgen->gridrowcol_rbox_items.Columns_item; - item_ptr[n] = AB_ORIENT_VERTICAL; n++; + item_ptr[n] = (void *) AB_ORIENT_VERTICAL; n++; prop_radiobox_init(&(pgs->grid_rowcol), NULL, cgen->gridrowcol_rbox, n, item, item_ptr, cgen->gridrowcol_cb); @@ -795,13 +795,13 @@ group_prop_init( /* Vertical Alignment */ n = 0; item[n] = cgen->valign_opmenu_items.bitmaps_align_left_xbm_item; - item_ptr[n] = AB_ALIGN_LEFT; n++; + item_ptr[n] = (void *) AB_ALIGN_LEFT; n++; item[n] = cgen->valign_opmenu_items.bitmaps_align_labels_xbm_item; - item_ptr[n] = AB_ALIGN_LABELS; n++; + item_ptr[n] = (void *) AB_ALIGN_LABELS; n++; item[n] = cgen->valign_opmenu_items.bitmaps_align_vcenter_xbm_item; - item_ptr[n] = AB_ALIGN_VCENTER; n++; + item_ptr[n] = (void *) AB_ALIGN_VCENTER; n++; item[n] = cgen->valign_opmenu_items.bitmaps_align_right_xbm_item; - item_ptr[n] = AB_ALIGN_RIGHT; n++; + item_ptr[n] = (void *) AB_ALIGN_RIGHT; n++; prop_options_init(&(pgs->valign), cgen->valign_opmenu_label, cgen->valign_opmenu, cgen->valign_opmenu_menu, n, item, item_ptr, @@ -814,11 +814,11 @@ group_prop_init( /* Horizontal Alignment */ n = 0; item[n] = cgen->halign_opmenu_items.bitmaps_align_top_xbm_item; - item_ptr[n] = AB_ALIGN_TOP; n++; + item_ptr[n] = (void *) AB_ALIGN_TOP; n++; item[n] = cgen->halign_opmenu_items.bitmaps_align_hcenter_xbm_item; - item_ptr[n] = AB_ALIGN_HCENTER; n++; + item_ptr[n] = (void *) AB_ALIGN_HCENTER; n++; item[n] = cgen->halign_opmenu_items.bitmaps_align_bottom_xbm_item; - item_ptr[n] = AB_ALIGN_BOTTOM; n++; + item_ptr[n] = (void *) AB_ALIGN_BOTTOM; n++; prop_options_init(&(pgs->halign), cgen->halign_opmenu_label, cgen->halign_opmenu, cgen->halign_opmenu_menu, n, item, item_ptr, diff --git a/cde/programs/dtappbuilder/src/ab/pal_label.c b/cde/programs/dtappbuilder/src/ab/pal_label.c index a51d14353..9cadd116f 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_label.c +++ b/cde/programs/dtappbuilder/src/ab/pal_label.c @@ -257,9 +257,9 @@ label_prop_init( /* Label Type */ n = 0; item[n] = cgen->labeltype_rbox_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_rbox_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pls->label_type), cgen->labeltype_rbox_label, cgen->labeltype_rbox, cgen->labeltype_rbox_menu, n, item, item_ptr, @@ -274,11 +274,11 @@ label_prop_init( /* Label Align */ n = 0; item[n] = cgen->labelalign_opmenu_items.Left_item; - item_ptr[n] = AB_ALIGN_LEFT; n++; + item_ptr[n] = (void *) AB_ALIGN_LEFT; n++; item[n] = cgen->labelalign_opmenu_items.Centered_item; - item_ptr[n] = AB_ALIGN_CENTER; n++; + item_ptr[n] = (void *) AB_ALIGN_CENTER; n++; item[n] = cgen->labelalign_opmenu_items.Right_item; - item_ptr[n] = AB_ALIGN_RIGHT; n++; + item_ptr[n] = (void *) AB_ALIGN_RIGHT; n++; prop_options_init(&(pls->label_align), cgen->labelalign_opmenu_label, cgen->labelalign_opmenu, cgen->labelalign_opmenu_menu, n, item, item_ptr, @@ -287,9 +287,9 @@ label_prop_init( /* Size Policy */ n = 0; item[n] = cgen->szpolicy_rbox_items.Size_of_Label_item; - item_ptr[n] = SIZE_OF_CONTENTS_KEY; n++; + item_ptr[n] = (void *) SIZE_OF_CONTENTS_KEY; n++; item[n] = cgen->szpolicy_rbox_items.Fixed_item; - item_ptr[n] = SIZE_FIXED_KEY; n++; + item_ptr[n] = (void *) SIZE_FIXED_KEY; n++; prop_radiobox_init(&(pls->size_policy), cgen->szpolicy_rbox_label, cgen->szpolicy_rbox, n, item, item_ptr, cgen->szpolicy_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_list.c b/cde/programs/dtappbuilder/src/ab/pal_list.c index 99b5b043e..2a62a78a8 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_list.c +++ b/cde/programs/dtappbuilder/src/ab/pal_list.c @@ -307,9 +307,9 @@ list_prop_init( /* Label, Type, Position */ n = 0; item[n] = cgen->labeltype_rbox_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_rbox_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pls->label_type), cgen->labeltype_rbox_label, cgen->labeltype_rbox, cgen->labeltype_rbox_menu, n, item, item_ptr, @@ -322,9 +322,9 @@ list_prop_init( n = 0; item[n] = cgen->labelpos_rbox_items.Above_item; - item_ptr[n] = AB_CP_NORTH; n++; + item_ptr[n] = (void *) AB_CP_NORTH; n++; item[n] = cgen->labelpos_rbox_items.Left_item; - item_ptr[n] = AB_CP_WEST; n++; + item_ptr[n] = (void *) AB_CP_WEST; n++; prop_options_init(&(pls->label_pos), cgen->labelpos_rbox_label, cgen->labelpos_rbox, cgen->labelpos_rbox_menu, n, item, item_ptr, @@ -333,13 +333,13 @@ list_prop_init( /* Selection Mode */ n = 0; item[n] = cgen->selmode_rbox_items.Single_Select_item; - item_ptr[n] = AB_SELECT_SINGLE; n++; + item_ptr[n] = (void *) AB_SELECT_SINGLE; n++; item[n] = cgen->selmode_rbox_items.Browse_Select_item; - item_ptr[n] = AB_SELECT_BROWSE; n++; + item_ptr[n] = (void *) AB_SELECT_BROWSE; n++; item[n] = cgen->selmode_rbox_items.Multiple_Select_item; - item_ptr[n] = AB_SELECT_MULTIPLE; n++; + item_ptr[n] = (void *) AB_SELECT_MULTIPLE; n++; item[n] = cgen->selmode_rbox_items.Browse_Multiple_Select_item; - item_ptr[n] = AB_SELECT_BROWSE_MULTIPLE; n++; + item_ptr[n] = (void *) AB_SELECT_BROWSE_MULTIPLE; n++; prop_options_init(&(pls->sel_mode), cgen->selmode_rbox_label, cgen->selmode_rbox, cgen->selmode_rbox_menu, n, item, item_ptr, @@ -355,9 +355,9 @@ list_prop_init( /* Width */ n = 0; item[n] = cgen->wpolicy_rbox_items.Longest_Item_item; - item_ptr[n] = SIZE_OF_CONTENTS_KEY; n++; + item_ptr[n] = (void *) SIZE_OF_CONTENTS_KEY; n++; item[n] = cgen->wpolicy_rbox_items.Fixed_item; - item_ptr[n] = SIZE_FIXED_KEY; n++; + item_ptr[n] = (void *) SIZE_FIXED_KEY; n++; prop_radiobox_init(&(pls->wth_policy), cgen->wpolicy_rbox_label, cgen->wpolicy_rbox, n, item, item_ptr, cgen->wpolicy_cb); @@ -381,9 +381,9 @@ list_prop_init( n = 0; item[n] = cgen->hgt_opmenu_items.Lines_item; - item_ptr[n] = SIZE_IN_CHARS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_CHARS_KEY; n++; item[n] = cgen->hgt_opmenu_items.Pixels_item; - item_ptr[n] = SIZE_IN_PIXELS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_PIXELS_KEY; n++; prop_options_init(&(pls->hgt_metric), cgen->hgt_opmenu_label, cgen->hgt_opmenu, cgen->hgt_opmenu_menu, diff --git a/cde/programs/dtappbuilder/src/ab/pal_mainwin.c b/cde/programs/dtappbuilder/src/ab/pal_mainwin.c index f4b0eefdc..60a4e06a1 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_mainwin.c +++ b/cde/programs/dtappbuilder/src/ab/pal_mainwin.c @@ -275,9 +275,9 @@ mainwin_prop_init( /* Resize Mode */ n = 0; item[n] = cgen->resizemode_rbox_items.Adjustable_item; - item_ptr[n] = True; n++; + item_ptr[n] = (void *) True; n++; item[n] = cgen->resizemode_rbox_items.Fixed_item; - item_ptr[n] = False; n++; + item_ptr[n] = (void *) False; n++; prop_radiobox_init(&(pms->resize_mode), cgen->resizemode_rbox_label, cgen->resizemode_rbox, n, item, item_ptr, cgen->resizemode_cb); @@ -309,9 +309,9 @@ mainwin_prop_init( /* Size Policy */ n = 0; item[n] = cgen->size_policy_rbox_items.Fit_Contents_item; - item_ptr[n] = SIZE_OF_CONTENTS_KEY; n++; + item_ptr[n] = (void *) SIZE_OF_CONTENTS_KEY; n++; item[n] = cgen->size_policy_rbox_items.Fixed_item; - item_ptr[n] = SIZE_FIXED_KEY; n++; + item_ptr[n] = (void *) SIZE_FIXED_KEY; n++; prop_radiobox_init(&(pms->size_policy), cgen->size_policy_rbox_label, cgen->size_policy_rbox, n, item, item_ptr, cgen->size_policy_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_menu.c b/cde/programs/dtappbuilder/src/ab/pal_menu.c index 0c70c7820..eae9ef61c 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_menu.c +++ b/cde/programs/dtappbuilder/src/ab/pal_menu.c @@ -339,9 +339,9 @@ menu_prop_init( /* Tear-off */ n = 0; item[n] = cgen->tearoff_rbox_items.Enabled_item; - item_ptr[n] = True; n++; + item_ptr[n] = (void *) True; n++; item[n] = cgen->tearoff_rbox_items.Disabled_item; - item_ptr[n] = False; n++; + item_ptr[n] = (void *) False; n++; prop_radiobox_init(&(pms->tearoff), cgen->tearoff_rbox_label, cgen->tearoff_rbox, n, item, item_ptr, cgen->tearoff_cb); @@ -368,11 +368,11 @@ menu_prop_init( cgen->itemlabel_field, cgen->itemlist_cb); n = 0; item[n] = cgen->itemlabeltype_opmenu_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->itemlabeltype_opmenu_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; item[n] = cgen->itemlabeltype_opmenu_items.Separator_item; - item_ptr[n] = AB_LABEL_SEPARATOR; n++; + item_ptr[n] = (void *) AB_LABEL_SEPARATOR; n++; prop_options_init(&(pms->item_label_type), cgen->itemlabeltype_opmenu_label, cgen->itemlabeltype_opmenu, cgen->itemlabeltype_opmenu_menu, n, item, item_ptr, cgen->itemlist_cb); @@ -392,23 +392,23 @@ menu_prop_init( /* Item Line Style */ n = 0; item[n] = cgen->linestyle_opmenu_items.None_item; - item_ptr[n] = AB_LINE_NONE; n++; + item_ptr[n] = (void *) AB_LINE_NONE; n++; item[n] = cgen->linestyle_opmenu_items.Etched_In_item; - item_ptr[n] = AB_LINE_ETCHED_IN; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN; n++; item[n] = cgen->linestyle_opmenu_items.Etched_Out_item; - item_ptr[n] = AB_LINE_ETCHED_OUT; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT; n++; item[n] = cgen->linestyle_opmenu_items.Etched_In_Dash_item; - item_ptr[n] = AB_LINE_ETCHED_IN_DASH; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN_DASH; n++; item[n] = cgen->linestyle_opmenu_items.Etched_Out_Dash_item; - item_ptr[n] = AB_LINE_ETCHED_OUT_DASH; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT_DASH; n++; item[n] = cgen->linestyle_opmenu_items.Single_Line_item; - item_ptr[n] = AB_LINE_SINGLE_LINE; n++; + item_ptr[n] = (void *) AB_LINE_SINGLE_LINE; n++; item[n] = cgen->linestyle_opmenu_items.Double_Line_item; - item_ptr[n] = AB_LINE_DOUBLE_LINE; n++; + item_ptr[n] = (void *) AB_LINE_DOUBLE_LINE; n++; item[n] = cgen->linestyle_opmenu_items.Single_Dashed_Line_item; - item_ptr[n] = AB_LINE_SINGLE_DASHED_LINE; n++; + item_ptr[n] = (void *) AB_LINE_SINGLE_DASHED_LINE; n++; item[n] = cgen->linestyle_opmenu_items.Double_Dashed_Line_item; - item_ptr[n] = AB_LINE_DOUBLE_DASHED_LINE; n++; + item_ptr[n] = (void *) AB_LINE_DOUBLE_DASHED_LINE; n++; prop_options_init(&(pms->item_line_style), cgen->linestyle_opmenu_label, cgen->linestyle_opmenu, cgen->linestyle_opmenu_menu, n, item, item_ptr, diff --git a/cde/programs/dtappbuilder/src/ab/pal_menubar.c b/cde/programs/dtappbuilder/src/ab/pal_menubar.c index a4ca52128..559b5eec2 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_menubar.c +++ b/cde/programs/dtappbuilder/src/ab/pal_menubar.c @@ -314,9 +314,9 @@ menubar_prop_init( cgen->itemlabel_field, cgen->itemlist_cb); n = 0; item[n] = cgen->itemlabel_opmenu_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->itemlabel_opmenu_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pms->item_label_type), cgen->item_labeltype_label, cgen->itemlabel_opmenu, cgen->itemlabel_opmenu_menu, n, item, item_ptr, cgen->itemlist_cb); diff --git a/cde/programs/dtappbuilder/src/ab/pal_scale.c b/cde/programs/dtappbuilder/src/ab/pal_scale.c index f60eea246..88bd765d7 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_scale.c +++ b/cde/programs/dtappbuilder/src/ab/pal_scale.c @@ -292,9 +292,9 @@ scale_prop_init( /* Label, Type, Position */ n = 0; item[n] = cgen->labeltype_opmenu_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_opmenu_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pss->label_type), cgen->labeltype_opmenu_label, cgen->labeltype_opmenu, cgen->labeltype_opmenu_menu, @@ -308,9 +308,9 @@ scale_prop_init( n = 0; item[n] = cgen->labelpos_opmenu_items.Left_item; - item_ptr[n] = AB_CP_WEST; n++; + item_ptr[n] = (void *) AB_CP_WEST; n++; item[n] = cgen->labelpos_opmenu_items.Above_item; - item_ptr[n] = AB_CP_NORTH; n++; + item_ptr[n] = (void *) AB_CP_NORTH; n++; prop_options_init(&(pss->label_pos), cgen->labelpos_opmenu_label, cgen->labelpos_opmenu, cgen->labelpos_opmenu_menu, @@ -320,9 +320,9 @@ scale_prop_init( /* Scale Type */ n = 0; item[n] = cgen->scaletype_rbox_items.Scale_item; - item_ptr[n] = False; n++; + item_ptr[n] = (void *) False; n++; item[n] = cgen->scaletype_rbox_items.Gauge_item; - item_ptr[n] = True; n++; + item_ptr[n] = (void *) True; n++; prop_radiobox_init(&(pss->scale_type), cgen->scaletype_rbox_label, cgen->scaletype_rbox, n, item, item_ptr, cgen->scaletype_cb); @@ -338,9 +338,9 @@ scale_prop_init( /* Orientation */ n = 0; item[n] = cgen->orient_rbox_items.Horizontal_item; - item_ptr[n] = AB_ORIENT_HORIZONTAL; n++; + item_ptr[n] = (void *) AB_ORIENT_HORIZONTAL; n++; item[n] = cgen->orient_rbox_items.Vertical_item; - item_ptr[n] = AB_ORIENT_VERTICAL; n++; + item_ptr[n] = (void *) AB_ORIENT_VERTICAL; n++; prop_radiobox_init(&(pss->orient), cgen->orient_rbox_label, cgen->orient_rbox, n, item, item_ptr, cgen->orient_cb); @@ -352,13 +352,13 @@ scale_prop_init( /* Direction */ n = 0; item[n] = cgen->dir_opmenu_items.Left_to_Right_item; - item_ptr[n] = AB_DIR_LEFT_TO_RIGHT; n++; + item_ptr[n] = (void *) AB_DIR_LEFT_TO_RIGHT; n++; item[n] = cgen->dir_opmenu_items.Right_to_Left_item; - item_ptr[n] = AB_DIR_RIGHT_TO_LEFT; n++; + item_ptr[n] = (void *) AB_DIR_RIGHT_TO_LEFT; n++; item[n] = cgen->dir_opmenu_items.Top_to_Bottom_item; - item_ptr[n] = AB_DIR_TOP_TO_BOTTOM; n++; + item_ptr[n] = (void *) AB_DIR_TOP_TO_BOTTOM; n++; item[n] = cgen->dir_opmenu_items.Bottom_to_Top_item; - item_ptr[n] = AB_DIR_BOTTOM_TO_TOP; n++; + item_ptr[n] = (void *) AB_DIR_BOTTOM_TO_TOP; n++; prop_options_init(&(pss->dir), cgen->dir_opmenu_label, cgen->dir_opmenu, cgen->dir_opmenu_menu, n, item, item_ptr, diff --git a/cde/programs/dtappbuilder/src/ab/pal_sep.c b/cde/programs/dtappbuilder/src/ab/pal_sep.c index 9494ca3f0..039f8659b 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_sep.c +++ b/cde/programs/dtappbuilder/src/ab/pal_sep.c @@ -255,9 +255,9 @@ separator_prop_init( /* Orientation */ n = 0; item[n] = cgen->orient_rbox_items.Horizontal_item; - item_ptr[n] = AB_ORIENT_HORIZONTAL; n++; + item_ptr[n] = (void *) AB_ORIENT_HORIZONTAL; n++; item[n] = cgen->orient_rbox_items.Vertical_item; - item_ptr[n] = AB_ORIENT_VERTICAL; n++; + item_ptr[n] = (void *) AB_ORIENT_VERTICAL; n++; prop_radiobox_init(&(pss->orient), cgen->orient_rbox_label, cgen->orient_rbox, n, item, item_ptr, cgen->orient_cb); @@ -265,23 +265,23 @@ separator_prop_init( /* Line Style */ n = 0; item[n] = cgen->linestyle_opmenu_items.None_item; - item_ptr[n] = AB_LINE_NONE; n++; + item_ptr[n] = (void *) AB_LINE_NONE; n++; item[n] = cgen->linestyle_opmenu_items.Etched_In_item; - item_ptr[n] = AB_LINE_ETCHED_IN; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN; n++; item[n] = cgen->linestyle_opmenu_items.Etched_Out_item; - item_ptr[n] = AB_LINE_ETCHED_OUT; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT; n++; item[n] = cgen->linestyle_opmenu_items.Etched_In_Dash_item; - item_ptr[n] = AB_LINE_ETCHED_IN_DASH; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN_DASH; n++; item[n] = cgen->linestyle_opmenu_items.Etched_Out_Dash_item; - item_ptr[n] = AB_LINE_ETCHED_OUT_DASH; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT_DASH; n++; item[n] = cgen->linestyle_opmenu_items.Single_Line_item; - item_ptr[n] = AB_LINE_SINGLE_LINE; n++; + item_ptr[n] = (void *) AB_LINE_SINGLE_LINE; n++; item[n] = cgen->linestyle_opmenu_items.Double_Line_item; - item_ptr[n] = AB_LINE_DOUBLE_LINE; n++; + item_ptr[n] = (void *) AB_LINE_DOUBLE_LINE; n++; item[n] = cgen->linestyle_opmenu_items.Single_Dashed_Line_item; - item_ptr[n] = AB_LINE_SINGLE_DASHED_LINE; n++; + item_ptr[n] = (void *) AB_LINE_SINGLE_DASHED_LINE; n++; item[n] = cgen->linestyle_opmenu_items.Double_Dashed_Line_item; - item_ptr[n] = AB_LINE_DOUBLE_DASHED_LINE; n++; + item_ptr[n] = (void *) AB_LINE_DOUBLE_DASHED_LINE; n++; prop_options_init(&(pss->line_style), cgen->linestyle_opmenu_label, cgen->linestyle_opmenu, cgen->linestyle_opmenu_menu, n, item, item_ptr, diff --git a/cde/programs/dtappbuilder/src/ab/pal_spinbox.c b/cde/programs/dtappbuilder/src/ab/pal_spinbox.c index 818aca210..a0582b3b9 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_spinbox.c +++ b/cde/programs/dtappbuilder/src/ab/pal_spinbox.c @@ -293,9 +293,9 @@ spinbox_prop_init( /* Spinbox Type */ n = 0; item[n] = cgen->spinboxtype_rbox_items.Numeric_item; - item_ptr[n] = AB_TEXT_NUMERIC; n++; + item_ptr[n] = (void *) AB_TEXT_NUMERIC; n++; item[n] = cgen->spinboxtype_rbox_items.String_List_item; - item_ptr[n] = AB_TEXT_DEFINED_STRING; n++; + item_ptr[n] = (void *) AB_TEXT_DEFINED_STRING; n++; prop_radiobox_init(&(pss->spinbox_type), cgen->spinboxtype_rbox_label, cgen->spinboxtype_rbox, n, item, item_ptr, cgen->spinboxtype_cb); @@ -306,9 +306,9 @@ spinbox_prop_init( /* Label, Type, Position */ n = 0; item[n] = cgen->labeltype_rbox_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_rbox_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pss->label_type), cgen->labeltype_rbox_label, cgen->labeltype_rbox, cgen->labeltype_rbox_menu, n, item, item_ptr, @@ -321,9 +321,9 @@ spinbox_prop_init( n = 0; item[n] = cgen->labelpos_rbox_items.Above_item; - item_ptr[n] = AB_CP_NORTH; n++; + item_ptr[n] = (void *) AB_CP_NORTH; n++; item[n] = cgen->labelpos_rbox_items.Left_item; - item_ptr[n] = AB_CP_WEST; n++; + item_ptr[n] = (void *) AB_CP_WEST; n++; prop_options_init(&(pss->label_pos), cgen->labeltype_rbox_label, cgen->labelpos_rbox, cgen->labelpos_rbox_menu, n, item, item_ptr, @@ -332,15 +332,15 @@ spinbox_prop_init( /* Arrow Style */ n = 0; item[n] = cgen->arrowstyle_opmenu_items.Flat_Beginning_item; - item_ptr[n] = AB_ARROW_FLAT_BEGIN; n++; + item_ptr[n] = (void *) AB_ARROW_FLAT_BEGIN; n++; item[n] = cgen->arrowstyle_opmenu_items.Flat_End_item; - item_ptr[n] = AB_ARROW_FLAT_END; n++; + item_ptr[n] = (void *) AB_ARROW_FLAT_END; n++; item[n] = cgen->arrowstyle_opmenu_items.Beginning_item; - item_ptr[n] = AB_ARROW_BEGIN; n++; + item_ptr[n] = (void *) AB_ARROW_BEGIN; n++; item[n] = cgen->arrowstyle_opmenu_items.End_item; - item_ptr[n] = AB_ARROW_END; n++; + item_ptr[n] = (void *) AB_ARROW_END; n++; item[n] = cgen->arrowstyle_opmenu_items.Split_item; - item_ptr[n] = AB_ARROW_SPLIT; n++; + item_ptr[n] = (void *) AB_ARROW_SPLIT; n++; prop_options_init(&(pss->arrow_style), cgen->arrowstyle_opmenu_label, cgen->arrowstyle_opmenu, cgen->arrowstyle_opmenu_menu, n, item, item_ptr, diff --git a/cde/programs/dtappbuilder/src/ab/pal_termp.c b/cde/programs/dtappbuilder/src/ab/pal_termp.c index ca427b1f9..873bb1606 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_termp.c +++ b/cde/programs/dtappbuilder/src/ab/pal_termp.c @@ -267,9 +267,9 @@ termp_prop_init( /* Scrolling */ n = 0; item[n] = cgen->scroll_rbox_items.Never_item; - item_ptr[n] = AB_SCROLLBAR_NEVER; n++; + item_ptr[n] = (void *) AB_SCROLLBAR_NEVER; n++; item[n] = cgen->scroll_rbox_items.Always_item; - item_ptr[n] = AB_SCROLLBAR_ALWAYS; n++; + item_ptr[n] = (void *) AB_SCROLLBAR_ALWAYS; n++; prop_radiobox_init(&(pts->scrolling), cgen->scroll_rbox_label, cgen->scroll_rbox, n, item, item_ptr, cgen->scroll_cb); @@ -277,15 +277,15 @@ termp_prop_init( /* Border Frame */ n = 0; item[n] = cgen->bframe_opmenu_items.None_item; - item_ptr[n] = AB_LINE_NONE; n++; + item_ptr[n] = (void *) AB_LINE_NONE; n++; item[n] = cgen->bframe_opmenu_items.Shadow_Out_item; - item_ptr[n] = AB_LINE_SHADOW_OUT; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_OUT; n++; item[n] = cgen->bframe_opmenu_items.Shadow_In_item; - item_ptr[n] = AB_LINE_SHADOW_IN; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_IN; n++; item[n] = cgen->bframe_opmenu_items.Etched_Out_item; - item_ptr[n] = AB_LINE_ETCHED_OUT; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT; n++; item[n] = cgen->bframe_opmenu_items.Etched_In_item; - item_ptr[n] = AB_LINE_ETCHED_IN; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN; n++; prop_options_init(&(pts->frame), cgen->bframe_opmenu_label, cgen->bframe_opmenu, cgen->bframe_opmenu_menu, n, item, item_ptr, @@ -322,9 +322,9 @@ termp_prop_init( n = 0; item[n] = cgen->size_opmenu_items.Characters_item; - item_ptr[n] = SIZE_IN_CHARS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_CHARS_KEY; n++; item[n] = cgen->size_opmenu_items.Pixels_item; - item_ptr[n] = SIZE_IN_PIXELS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_PIXELS_KEY; n++; prop_options_init(&(pts->size_metric), cgen->size_opmenu_label, cgen->size_opmenu, cgen->size_opmenu_menu, diff --git a/cde/programs/dtappbuilder/src/ab/pal_textf.c b/cde/programs/dtappbuilder/src/ab/pal_textf.c index 09368a20f..4d5fd2a5a 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_textf.c +++ b/cde/programs/dtappbuilder/src/ab/pal_textf.c @@ -259,9 +259,9 @@ textf_prop_init( /* Label, Type, Position */ n = 0; item[n] = cgen->labeltype_rbox_items.String_item; - item_ptr[n] = AB_LABEL_STRING; n++; + item_ptr[n] = (void *) AB_LABEL_STRING; n++; item[n] = cgen->labeltype_rbox_items.Graphic_item; - item_ptr[n] = AB_LABEL_GLYPH; n++; + item_ptr[n] = (void *) AB_LABEL_GLYPH; n++; prop_options_init(&(pts->label_type), cgen->labeltype_rbox_label, cgen->labeltype_rbox, cgen->labeltype_rbox_menu, n, item, item_ptr, @@ -273,9 +273,9 @@ textf_prop_init( n = 0; item[n] = cgen->labelpos_rbox_items.Left_item; - item_ptr[n] = AB_CP_WEST; n++; + item_ptr[n] = (void *) AB_CP_WEST; n++; item[n] = cgen->labelpos_rbox_items.Above_item; - item_ptr[n] = AB_CP_NORTH; n++; + item_ptr[n] = (void *) AB_CP_NORTH; n++; prop_options_init(&(pts->label_pos), cgen->labelpos_rbox_label, cgen->labelpos_rbox, cgen->labelpos_rbox_menu, n, item, item_ptr, @@ -291,9 +291,9 @@ textf_prop_init( /* Operation */ n = 0; item[n] = cgen->op_rbox_items.Editable_item; - item_ptr[n] = False; n++; + item_ptr[n] = (void *) False; n++; item[n] = cgen->op_rbox_items.Read_Only_item; - item_ptr[n] = True; n++; + item_ptr[n] = (void *) True; n++; prop_radiobox_init(&(pts->op), cgen->op_rbox_label, cgen->op_rbox, n, item, item_ptr, cgen->op_cb); @@ -322,9 +322,9 @@ textf_prop_init( n = 0; item[n] = cgen->width_opmenu_items.Characters_item; - item_ptr[n] = SIZE_IN_CHARS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_CHARS_KEY; n++; item[n] = cgen->width_opmenu_items.Pixels_item; - item_ptr[n] = SIZE_IN_PIXELS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_PIXELS_KEY; n++; prop_options_init(&(pts->size_metric), cgen->width_opmenu_label, cgen->width_opmenu, cgen->width_opmenu_menu, diff --git a/cde/programs/dtappbuilder/src/ab/pal_textp.c b/cde/programs/dtappbuilder/src/ab/pal_textp.c index 51e0034a9..e4fdf3b13 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_textp.c +++ b/cde/programs/dtappbuilder/src/ab/pal_textp.c @@ -270,9 +270,9 @@ textp_prop_init( /* Scrolling */ n = 0; item[n] = cgen->scroll_rbox_items.Never_item; - item_ptr[n] = AB_SCROLLBAR_NEVER; n++; + item_ptr[n] = (void *) AB_SCROLLBAR_NEVER; n++; item[n] = cgen->scroll_rbox_items.Always_item; - item_ptr[n] = AB_SCROLLBAR_ALWAYS; n++; + item_ptr[n] = (void *) AB_SCROLLBAR_ALWAYS; n++; prop_radiobox_init(&(pts->scrolling), cgen->scroll_rbox_label, cgen->scroll_rbox, n, item, item_ptr, cgen->scroll_cb); @@ -280,15 +280,15 @@ textp_prop_init( /* Border Frame */ n = 0; item[n] = cgen->bframe_opmenu_items.None_item; - item_ptr[n] = AB_LINE_NONE; n++; + item_ptr[n] = (void *) AB_LINE_NONE; n++; item[n] = cgen->bframe_opmenu_items.Shadow_Out_item; - item_ptr[n] = AB_LINE_SHADOW_OUT; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_OUT; n++; item[n] = cgen->bframe_opmenu_items.Shadow_In_item; - item_ptr[n] = AB_LINE_SHADOW_IN; n++; + item_ptr[n] = (void *) AB_LINE_SHADOW_IN; n++; item[n] = cgen->bframe_opmenu_items.Etched_Out_item; - item_ptr[n] = AB_LINE_ETCHED_OUT; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_OUT; n++; item[n] = cgen->bframe_opmenu_items.Etched_In_item; - item_ptr[n] = AB_LINE_ETCHED_IN; n++; + item_ptr[n] = (void *) AB_LINE_ETCHED_IN; n++; prop_options_init(&(pts->frame), cgen->bframe_opmenu_label, cgen->bframe_opmenu, cgen->bframe_opmenu_menu, n, item, item_ptr, @@ -297,9 +297,9 @@ textp_prop_init( /* Operation */ n = 0; item[n] = cgen->op_rbox_items.Editable_item; - item_ptr[n] = False; n++; + item_ptr[n] = (void *) False; n++; item[n] = cgen->op_rbox_items.Read_Only_item; - item_ptr[n] = True; n++; + item_ptr[n] = (void *) True; n++; prop_radiobox_init(&(pts->op), cgen->op_rbox_label, cgen->op_rbox, n, item, item_ptr, cgen->op_cb); @@ -343,9 +343,9 @@ textp_prop_init( n = 0; item[n] = cgen->size_opmenu_items.Characters_item; - item_ptr[n] = SIZE_IN_CHARS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_CHARS_KEY; n++; item[n] = cgen->size_opmenu_items.Pixels_item; - item_ptr[n] = SIZE_IN_PIXELS_KEY; n++; + item_ptr[n] = (void *) SIZE_IN_PIXELS_KEY; n++; prop_options_init(&(pts->size_metric), cgen->size_opmenu_label, cgen->size_opmenu, cgen->size_opmenu_menu, diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c b/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c index 27986e172..bc08508e7 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c @@ -835,7 +835,7 @@ asocasptr(void volatile* p, void* o, void* n) #if defined(_aso_casptr) if (!state.lockf) - return _aso_casptr((void**)p, o, n); + return _aso_cas64((void**)p, o, n); #endif k = lock(state.data, 0, p); if (*(void* volatile*)p == o) From e76cd50d3c3e0a3d9d4f363ef8456fba61866ec0 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Feb 2023 15:13:07 -0700 Subject: [PATCH 14/47] Add DesktopNames=CDE to cde.desktop Suggestion from Giacomo Comes : In this way, after a login, the desktop manager will set the environment variables: XDG_CURRENT_DESKTOP and XDG_SESSION_DESKTOP --- cde/contrib/desktopentry/cde.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/cde/contrib/desktopentry/cde.desktop b/cde/contrib/desktopentry/cde.desktop index 0b971132a..bf7b21a83 100644 --- a/cde/contrib/desktopentry/cde.desktop +++ b/cde/contrib/desktopentry/cde.desktop @@ -1,5 +1,6 @@ [Desktop Entry] Name=CDE +DesktopNames=CDE Comment=Use this session to boot into the Common Desktop Environment Keywords=Common Desktop Environment Exec=/usr/dt/bin/Xsession From d45a233e50e7b32b5257957c6878fe5f09c0d74f Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Feb 2023 15:16:14 -0700 Subject: [PATCH 15/47] pgadmin.dt: set icon from pgadmin to pgadmin3 --- cde/programs/types/pgadmin.dt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/types/pgadmin.dt b/cde/programs/types/pgadmin.dt index ba37a38dc..cf9303675 100644 --- a/cde/programs/types/pgadmin.dt +++ b/cde/programs/types/pgadmin.dt @@ -27,7 +27,7 @@ ACTION pgadmin LABEL pgadmin TYPE COMMAND EXEC_STRING pgadmin %Arg_1% - ICON pgadmin + ICON pgadmin3 WINDOW_TYPE NO_STDIO } From 61dbd624b20fa3ca311f3109982ae7bf315d7503 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Feb 2023 15:25:53 -0700 Subject: [PATCH 16/47] dtfile/dterror.ds: fix script defines typo --- cde/programs/dtfile/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtfile/Makefile.am b/cde/programs/dtfile/Makefile.am index a24851b62..15c10d81c 100644 --- a/cde/programs/dtfile/Makefile.am +++ b/cde/programs/dtfile/Makefile.am @@ -44,7 +44,7 @@ dtfile_SOURCES = ChangeDir.c ChangeDirP.c Command.c Common.c \ # Mind the quoting here... SCRIPTFLAGS = -DSHAPE -D_ILS_MACROS -DSUN_PERF \ - -DCDE_INSTALLATION_TOP="$(CDE_CONFIGURATION_TOP)" \ + -DCDE_INSTALLATION_TOP="$(CDE_INSTALLATION_TOP)" \ -DCDE_CONFIGURATION_TOP="$(CDE_CONFIGURATION_TOP)" \ -DKORNSHELL="$(KSH)" From b909f1a9e86a7c537e36a52f7421589871b4509e Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Feb 2023 15:33:09 -0700 Subject: [PATCH 17/47] dtksh: enable SHOPT_ECHOPRINT --- cde/programs/dtksh/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtksh/Makefile.am b/cde/programs/dtksh/Makefile.am index 5fa956579..d76b8a20f 100644 --- a/cde/programs/dtksh/Makefile.am +++ b/cde/programs/dtksh/Makefile.am @@ -25,7 +25,7 @@ KSH93_SHOPTS = -DSHOPT_DYNAMIC=1 -DSHOPT_NAMESPACE=1 -DSHOPT_MULTIBYTE=1 \ -DSHOPT_STATS=1 -DSHOPT_BGX=1 -DSHOPT_AUDIT=1 \ -DSHOPT_KIA=1 -DSHOPT_HISTEXPAND=1 -DSHOPT_EDPREDICT=1 \ -DSHOPT_ESH=1 -DSHOPT_VSH=1 -DSHOPT_FIXEDARRAY=1 -DSHOPT_SUID_EXEC=1 \ - -DSHOPT_BRACEPAT=1 + -DSHOPT_BRACEPAT=1 -DSHOPT_ECHOPRINT=1 dtksh_CPPFLAGS = -I$(KSH93SRC)/include/ast -I$(KSH93SRC)/src/cmd/ksh93/include \ -I$(KSH93SRC)/src/cmd/ksh93 -I${srcdir}/lib/DtPrint \ From 61b58271f98c938ed55109f14ee28c7fd279ea49 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Feb 2023 15:40:08 -0700 Subject: [PATCH 18/47] dticon, dtpad, dtterm: fix session save issues (sprintf bogosity) Diff supplied by: Giacomo Comes --- cde/programs/dticon/utils.c | 17 ++++++++++++----- cde/programs/dtpad/session.c | 32 ++++++++++++++++++++++---------- cde/programs/dtterm/DtTermMain.c | 28 ++++++++++++++++------------ 3 files changed, 50 insertions(+), 27 deletions(-) diff --git a/cde/programs/dticon/utils.c b/cde/programs/dticon/utils.c index d5a9aa19e..b27ce920c 100644 --- a/cde/programs/dticon/utils.c +++ b/cde/programs/dticon/utils.c @@ -2321,6 +2321,7 @@ SaveSession( void ) sprintf(bufr, "*iconic: True\n"); else sprintf(bufr, "*iconic: False\n"); + write (fd, bufr, strlen(bufr)); /*** Get and write out the geometry info for our Window ***/ @@ -2337,12 +2338,18 @@ SaveSession( void ) x -= vendorExt->vendor.xOffset; y -= vendorExt->vendor.yOffset; - snprintf(bufr, sizeof(bufr), "%s*x: %d\n", bufr, x); - snprintf(bufr, sizeof(bufr), "%s*y: %d\n", bufr, y); - snprintf(bufr, sizeof(bufr), "%s*width: %d\n", bufr, width); - snprintf(bufr, sizeof(bufr), "%s*height: %d\n", bufr, height); + snprintf(bufr, sizeof(bufr), "*x: %d\n", x); + write (fd, bufr, strlen(bufr)); + snprintf(bufr, sizeof(bufr), "*y: %d\n", y); + write (fd, bufr, strlen(bufr)); + snprintf(bufr, sizeof(bufr), "*width: %d\n", width); + write (fd, bufr, strlen(bufr)); + snprintf(bufr, sizeof(bufr), "*height: %d\n", height); if (last_fname[0] != '\0') - snprintf(bufr, sizeof(bufr), "%s*file: %s\n", bufr, last_fname); + { + write (fd, bufr, strlen(bufr)); + snprintf(bufr, sizeof(bufr), "*file: %s\n", last_fname); + } if(-1 == write (fd, bufr, strlen(bufr))) { fprintf(stderr, "write() to session failed\n"); diff --git a/cde/programs/dtpad/session.c b/cde/programs/dtpad/session.c index 4959ff725..ced90192d 100644 --- a/cde/programs/dtpad/session.c +++ b/cde/programs/dtpad/session.c @@ -113,7 +113,10 @@ SaveMain( XmWidgetExtData extData; if(XtIsRealized(pPad->mainWindow)) + { sprintf(bufr,"*mainWindow%d.ismapped: True\n", padNum); + write (fd, bufr, strlen(bufr)); + } /* Get and write out the geometry info for our Window */ x = XtX(XtParent(pPad->mainWindow)); @@ -131,10 +134,14 @@ SaveMain( width = XtWidth(XtParent(pPad->mainWindow)); height = XtHeight(XtParent(pPad->mainWindow)); - snprintf(bufr, sizeof(bufr), "%s*mainWindow%d.x: %d\n", bufr, padNum, x); - snprintf(bufr, sizeof(bufr), "%s*mainWindow%d.y: %d\n", bufr, padNum, y); - snprintf(bufr, sizeof(bufr), "%s*mainWindow%d.width: %d\n", bufr, padNum, width); - snprintf(bufr, sizeof(bufr), "%s*mainWindow%d.height: %d\n", bufr, padNum, height); + snprintf(bufr, sizeof(bufr), "*mainWindow%d.x: %d\n", padNum, x); + write (fd, bufr, strlen(bufr)); + snprintf(bufr, sizeof(bufr), "*mainWindow%d.y: %d\n", padNum, y); + write (fd, bufr, strlen(bufr)); + snprintf(bufr, sizeof(bufr), "*mainWindow%d.width: %d\n", padNum, width); + write (fd, bufr, strlen(bufr)); + snprintf(bufr, sizeof(bufr), "*mainWindow%d.height: %d\n", padNum, height); + write (fd, bufr, strlen(bufr)); wm_state_atom = XmInternAtom (XtDisplay(pPad->app_shell), "WM_STATE", False); @@ -146,27 +153,32 @@ SaveMain( &nitems, &leftover, (unsigned char **) &wm_state); /* Write out if iconified our not */ - snprintf(bufr, sizeof(bufr), "%s*mainWindow%d.iconify: ", bufr, padNum); + snprintf(bufr, sizeof(bufr), "*mainWindow%d.iconify: ", padNum); + write (fd, bufr, strlen(bufr)); if (wm_state->state == IconicState) - snprintf(bufr, sizeof(bufr), "%sTrue\n", bufr); + snprintf(bufr, sizeof(bufr), "True\n"); else - snprintf(bufr, sizeof(bufr), "%sFalse\n", bufr); + snprintf(bufr, sizeof(bufr), "False\n"); + write (fd, bufr, strlen(bufr)); if(DtWsmGetWorkspacesOccupied(XtDisplay(pPad->app_shell), XtWindow(pPad->app_shell), &pWsPresence, &numInfo) == Success) { int i; - snprintf(bufr, sizeof(bufr), "%s*mainWindow%d.workspaceList: ", bufr, padNum); + snprintf(bufr, sizeof(bufr), "*mainWindow%d.workspaceList: ", padNum); + write (fd, bufr, strlen(bufr)); for(i = 0; i < numInfo; i++) { char *name = XGetAtomName(XtDisplay(pPad->app_shell), pWsPresence[i]); - snprintf(bufr, sizeof(bufr), "%s %s", bufr, name); + snprintf(bufr, sizeof(bufr), " %s", name); + write (fd, bufr, strlen(bufr)); XtFree(name); } - snprintf(bufr, sizeof(bufr), "%s\n", bufr); + snprintf(bufr, sizeof(bufr), "\n"); + write (fd, bufr, strlen(bufr)); XtFree((char *)pWsPresence); } diff --git a/cde/programs/dtterm/DtTermMain.c b/cde/programs/dtterm/DtTermMain.c index 4a96142f0..7540b8ad3 100644 --- a/cde/programs/dtterm/DtTermMain.c +++ b/cde/programs/dtterm/DtTermMain.c @@ -1583,9 +1583,13 @@ SaveTerm( height = XtHeight(XtParent(dtvw)); sprintf(bufr, "*dtterm_%d.x: %d\n", cloneNum, x); - sprintf(bufr, "%s*dtterm_%d.y: %d\n", bufr, cloneNum, y); - sprintf(bufr, "%s*dtterm_%d.width: %d\n", bufr, cloneNum, width); - sprintf(bufr, "%s*dtterm_%d.height: %d\n", bufr, cloneNum, height); + write (fd, bufr, strlen(bufr)); + sprintf(bufr, "*dtterm_%d.y: %d\n", cloneNum, y); + write (fd, bufr, strlen(bufr)); + sprintf(bufr, "*dtterm_%d.width: %d\n", cloneNum, width); + write (fd, bufr, strlen(bufr)); + sprintf(bufr, "*dtterm_%d.height: %d\n", cloneNum, height); + write (fd, bufr, strlen(bufr)); /* Write out iconic state... */ @@ -1607,12 +1611,11 @@ SaveTerm( &bytesAfter, (unsigned char **) &prop))) { if (prop->state == IconicState) { - sprintf(bufr, "%s*dtterm_%d.iconify: %s\n", bufr, cloneNum, - "True"); + sprintf(bufr, "*dtterm_%d.iconify: %s\n", cloneNum, "True"); } else { - sprintf(bufr, "%s*dtterm_%d.iconify: %s\n", bufr, cloneNum, - "False"); + sprintf(bufr, "*dtterm_%d.iconify: %s\n", cloneNum, "False"); } + write (fd, bufr, strlen(bufr)); } if(DtWsmGetWorkspacesOccupied(XtDisplay(dtvw), @@ -1620,20 +1623,21 @@ SaveTerm( &numInfo) == Success) { int i; - sprintf(bufr, "%s*dtterm_%d.workspaceList: ", bufr, cloneNum); + sprintf(bufr, "*dtterm_%d.workspaceList: ", cloneNum); + write (fd, bufr, strlen(bufr)); for(i = 0; i < numInfo; i++) { char *name = XGetAtomName(XtDisplay(dtvw), pWsPresence[i]); - sprintf(bufr, "%s %s", bufr, name); + sprintf(bufr, " %s", name); + write (fd, bufr, strlen(bufr)); XtFree(name); } - sprintf(bufr, "%s\n", bufr); + sprintf(bufr, "\n"); + write (fd, bufr, strlen(bufr)); XtFree((char *)pWsPresence); } - write (fd, bufr, strlen(bufr)); - sprintf(bufr, "*dtterm_%d.userFontListIndex: %d\n", cloneNum, _DtTermViewGetUserFontListIndex((Widget )dtvw)); write (fd, bufr, strlen(bufr)); From 1f101d22f0ea6ff50cd9ba736a21d3fb32700331 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Feb 2023 15:50:28 -0700 Subject: [PATCH 19/47] lib/DtHelp: strmove(): return memmove() result --- cde/lib/DtHelp/FormatSDL.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/lib/DtHelp/FormatSDL.c b/cde/lib/DtHelp/FormatSDL.c index e863cd8da..a6b960e99 100644 --- a/cde/lib/DtHelp/FormatSDL.c +++ b/cde/lib/DtHelp/FormatSDL.c @@ -4366,7 +4366,7 @@ FindSnbEntry( * but safe for overlapping regions. */ static void *strmove(void *dest, const void *src) { - memmove(dest, src, strlen(src) + 1); + return memmove(dest, src, strlen(src) + 1); } /****************************************************************************** From e22fd8d84fb4109febe0b9bf6cdd934eccd3ef48 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Tue, 21 Feb 2023 10:37:27 +0000 Subject: [PATCH 20/47] dtwm: optimize EWMH processing. --- cde/programs/dtwm/WmCEvent.c | 35 +++---- cde/programs/dtwm/WmEwmh.c | 163 ++++++++++---------------------- cde/programs/dtwm/WmEwmh.h | 20 +--- cde/programs/dtwm/WmGlobal.h | 34 +++++-- cde/programs/dtwm/WmInitWs.c | 1 - cde/programs/dtwm/WmManage.c | 35 +++++++ cde/programs/dtwm/WmProperty.c | 57 +++++++++++ cde/programs/dtwm/WmProperty.h | 2 + cde/programs/dtwm/WmProtocol.c | 7 +- cde/programs/dtwm/WmWinInfo.c | 167 +++++++++++++++------------------ cde/programs/dtwm/WmWinInfo.h | 3 +- cde/programs/dtwm/WmWinState.c | 54 ++++++----- 12 files changed, 306 insertions(+), 272 deletions(-) diff --git a/cde/programs/dtwm/WmCEvent.c b/cde/programs/dtwm/WmCEvent.c index 311e443a1..2dab730dc 100644 --- a/cde/programs/dtwm/WmCEvent.c +++ b/cde/programs/dtwm/WmCEvent.c @@ -70,6 +70,17 @@ extern unsigned int buttonModifierMasks[]; + +static void AcceptPrematureClientMessage (XClientMessageEvent *clientEvent) +{ + XChangeProperty (DISPLAY, clientEvent->window, + wmGD.xa_PREMATURE_XCLIENTMESSAGEEVENT_LIST, + wmGD.xa_PREMATURE_XCLIENTMESSAGEEVENT_LIST, 8, + PropModeAppend, (unsigned char *) clientEvent, + sizeof(XClientMessageEvent)); +} + + /*************************************<->************************************* * @@ -510,7 +521,6 @@ Boolean HandleEventsOnSpecialWindows (XEvent *pEvent) { Boolean dispatchEvent = True; WmScreenData *pSD; - ClientData *pCD; /* @@ -610,21 +620,7 @@ Boolean HandleEventsOnSpecialWindows (XEvent *pEvent) case ClientMessage: { - if (pCD = InitClientData (pEvent->xclient.window)) { - XClientMessageEvent *clientEvent; - - clientEvent = (XClientMessageEvent *) pEvent; - - if (clientEvent->message_type == - wmGD.xa__NET_WM_FULLSCREEN_MONITORS) - { - ProcessNetWmFullscreenMonitors (pCD, - clientEvent->data.l[0], clientEvent->data.l[1], - clientEvent->data.l[2], clientEvent->data.l[3]); - - dispatchEvent = False; - } - } + AcceptPrematureClientMessage ((XClientMessageEvent *)pEvent); break; } } @@ -2600,6 +2596,13 @@ void HandleClientMessage (ClientData *pCD, XClientMessageEvent *clientEvent) ProcessNetWmFullscreenMonitors (pCD, clientEvent->data.l[0], clientEvent->data.l[1], clientEvent->data.l[2], clientEvent->data.l[3]); + + if (pCD->fullscreenAuto) + XDeleteProperty (DISPLAY, pCD->client, clientEvent->message_type); + else + XChangeProperty (DISPLAY, pCD->client, clientEvent->message_type, + XA_CARDINAL, 32, PropModeReplace, + (unsigned char *) clientEvent->data.l, 4); } else if (clientEvent->message_type == wmGD.xa__NET_WM_STATE) { diff --git a/cde/programs/dtwm/WmEwmh.c b/cde/programs/dtwm/WmEwmh.c index 557696682..cddc87a02 100644 --- a/cde/programs/dtwm/WmEwmh.c +++ b/cde/programs/dtwm/WmEwmh.c @@ -27,97 +27,39 @@ #include "WmGlobal.h" #include "WmEvent.h" -#include "WmEwmh.h" #include "WmMultiHead.h" #include "WmProperty.h" #include "WmWinState.h" #include "WmWrkspace.h" -static unsigned long GetWindowProperty (Window w, Atom property, Atom reqType, - unsigned char **propReturn) -{ - Atom actualType; - int actualFormat; - unsigned long nitems; - unsigned long leftover; - - if (XGetWindowProperty (DISPLAY, w, property, 0L, 1000000L, False, reqType, - &actualType, &actualFormat, &nitems, &leftover, - propReturn) != Success) goto err; - - if (actualType != reqType) goto err; - - return nitems; - -err: - XFree (*propReturn); - return 0; -} - -static void UpdateNetWmState (ClientData *pCD) -{ - unsigned long nitems; - unsigned long natoms = 0; - Atom *netWmState; - Atom *atoms; - - nitems = GetWindowProperty (pCD->client, wmGD.xa__NET_WM_STATE, XA_ATOM, - (unsigned char **) &netWmState); - - atoms = malloc ((nitems + 2) * sizeof (Atom)); if (!atoms) goto done; - - for (int i = 0; i < nitems; ++i) - if (netWmState[i] == wmGD.xa__NET_WM_STATE_FULLSCREEN || - netWmState[i] == wmGD.xa__NET_WM_STATE_MAXIMIZED_VERT || - netWmState[i] == wmGD.xa__NET_WM_STATE_MAXIMIZED_HORZ) - continue; - else - atoms[natoms++] = netWmState[i]; - - if (pCD->maxConfig) - { - if (pCD->fullscreen) - { - atoms[natoms++] = wmGD.xa__NET_WM_STATE_FULLSCREEN; - } - else - { - atoms[natoms++] = wmGD.xa__NET_WM_STATE_MAXIMIZED_VERT; - atoms[natoms++] = wmGD.xa__NET_WM_STATE_MAXIMIZED_HORZ; - } - } - - XChangeProperty (DISPLAY, pCD->client, wmGD.xa__NET_WM_STATE, XA_ATOM, 32, - PropModeReplace, (unsigned char *) atoms, natoms); - -done: - XFree (netWmState); - XFree (atoms); -} - static void ProcessNetWmStateFullscreen (ClientData *pCD, long action) { + Boolean fullscreen = pCD->fullscreen; + switch (action) { case _NET_WM_STATE_REMOVE: - if (!pCD->fullscreen) return; - pCD->fullscreen = False; + if (!fullscreen) return; + fullscreen = False; break; case _NET_WM_STATE_ADD: - if (pCD->fullscreen) return; - pCD->fullscreen = True; + if (fullscreen) return; + fullscreen = True; break; case _NET_WM_STATE_TOGGLE: - pCD->fullscreen = !pCD->fullscreen; + fullscreen = !fullscreen; break; default: return; } + pCD->fullscreen = False; SetClientState (pCD, NORMAL_STATE, GetTimestamp ()); - if (pCD->fullscreen) + if (fullscreen) { + pCD->fullscreen = True; SetClientState (pCD, MAXIMIZED_STATE, GetTimestamp ()); + } } static void ProcessNetWmStateMaximized (ClientData *pCD, long action) @@ -146,64 +88,52 @@ static void ProcessNetWmStateMaximized (ClientData *pCD, long action) } /** -* @brief Processes the _NET_WM_FULLSCREEN_MONITORS protocol. -* -* @param pCD -* @param top -* @param bottom -* @param left -* @param right -*/ + * @brief Processes the _NET_WM_FULLSCREEN_MONITORS protocol. + * + * @param pCD + * @param top + * @param bottom + * @param left + * @param right + */ void ProcessNetWmFullscreenMonitors (ClientData *pCD, - long top, long bottom, long left, long right) + int top, int bottom, int left, int right) { WmHeadInfo_t *pHeadInfo; - pCD->monitorSizeIsSet = False; + pCD->fullscreenAuto = True; - pHeadInfo = GetHeadInfoById (top); - - if (!pHeadInfo) return; - - pCD->monitorY = pHeadInfo->y_org; + if (!(pHeadInfo = GetHeadInfoById (top))) return; + pCD->fullscreenY = pHeadInfo->y_org; free(pHeadInfo); - pHeadInfo = GetHeadInfoById (bottom); - - if (!pHeadInfo) return; - - pCD->monitorHeight = top == bottom ? pHeadInfo->height : + if (!(pHeadInfo = GetHeadInfoById (bottom))) return; + pCD->fullscreenHeight = top == bottom ? pHeadInfo->height : pHeadInfo->y_org + pHeadInfo->height; free(pHeadInfo); - pHeadInfo = GetHeadInfoById (left); - - if (!pHeadInfo) return; - - pCD->monitorX = pHeadInfo->x_org; + if (!(pHeadInfo = GetHeadInfoById (left))) return; + pCD->fullscreenX = pHeadInfo->x_org; free(pHeadInfo); - pHeadInfo = GetHeadInfoById (right); - - if (!pHeadInfo) return; - - pCD->monitorWidth = left == right ? pHeadInfo->width : + if (!(pHeadInfo = GetHeadInfoById (right))) return; + pCD->fullscreenWidth = left == right ? pHeadInfo->width : pHeadInfo->x_org + pHeadInfo->width; free(pHeadInfo); - pCD->monitorSizeIsSet = True; + pCD->fullscreenAuto = False; } /** -* @brief Processes the _NET_WM_STATE client message. -* -* @param pCD -* @param action -* @param firstProperty -* @param secondProperty -*/ + * @brief Processes the _NET_WM_STATE client message. + * + * @param pCD + * @param action + * @param firstProperty + * @param secondProperty + */ void ProcessNetWmState (ClientData *pCD, long action, - long firstProperty, long secondProperty) + Atom firstProperty, Atom secondProperty) { if (pCD->clientState & UNSEEN_STATE) return; @@ -218,8 +148,6 @@ void ProcessNetWmState (ClientData *pCD, long action, if (!ClientInWorkspace (ACTIVE_WS, pCD)) SetClientState (pCD, pCD->clientState | UNSEEN_STATE, GetTimestamp ()); - - UpdateNetWmState (pCD); } /** @@ -227,6 +155,8 @@ void ProcessNetWmState (ClientData *pCD, long action, */ void SetupWmEwmh (void) { + int scr; + enum { XA_UTF8_STRING, XA__NET_SUPPORTED, @@ -257,7 +187,6 @@ void SetupWmEwmh (void) _XA__NET_WM_STATE_MAXIMIZED_HORZ }; - Window childWindow; Atom atoms[XtNumber(atom_names) + 1]; XInternAtoms(DISPLAY, atom_names, XtNumber(atom_names), False, atoms); @@ -275,10 +204,16 @@ void SetupWmEwmh (void) wmGD.xa__NET_WM_STATE_MAXIMIZED_HORZ = atoms[XA__NET_WM_STATE_MAXIMIZED_HORZ]; - for (int scr = 0; scr < wmGD.numScreens; ++scr) + for (scr = 0; scr < wmGD.numScreens; ++scr) { - childWindow = XCreateSimpleWindow(DISPLAY, wmGD.Screens[scr].rootWindow, - -1, -1, 1, 1, 0, 0, 0); + Window childWindow; + WmScreenData *pSD; + + pSD = &(wmGD.Screens[scr]); + + if (!pSD->managed) continue; + + childWindow = pSD->wmWorkspaceWin; XChangeProperty(DISPLAY, childWindow, atoms[XA__NET_WM_NAME], atoms[XA_UTF8_STRING], 8, PropModeReplace, diff --git a/cde/programs/dtwm/WmEwmh.h b/cde/programs/dtwm/WmEwmh.h index 8de670d6f..e667101e2 100644 --- a/cde/programs/dtwm/WmEwmh.h +++ b/cde/programs/dtwm/WmEwmh.h @@ -26,26 +26,10 @@ #ifndef WMEWMH_H #define WMEWMH_H -#define _NET_WM_STATE_REMOVE 0 -#define _NET_WM_STATE_ADD 1 -#define _NET_WM_STATE_TOGGLE 2 - -#define _XA__NET_SUPPORTED "_NET_SUPPORTED" -#define _XA__NET_SUPPORTING_WM_CHECK "_NET_SUPPORTING_WM_CHECK" -#define _XA__NET_WM_NAME "_NET_WM_NAME" -#define _XA__NET_WM_ICON_NAME "_NET_WM_ICON_NAME" -#define _XA__NET_WM_VISIBLE_NAME "_NET_WM_VISIBLE_NAME" -#define _XA__NET_WM_VISIBLE_ICON_NAME "_NET_WM_VISIBLE_ICON_NAME" -#define _XA__NET_WM_FULLSCREEN_MONITORS "_NET_WM_FULLSCREEN_MONITORS" -#define _XA__NET_WM_STATE "_NET_WM_STATE" -#define _XA__NET_WM_STATE_FULLSCREEN "_NET_WM_STATE_FULLSCREEN" -#define _XA__NET_WM_STATE_MAXIMIZED_VERT "_NET_WM_STATE_MAXIMIZED_VERT" -#define _XA__NET_WM_STATE_MAXIMIZED_HORZ "_NET_WM_STATE_MAXIMIZED_HORZ" - void ProcessNetWmFullscreenMonitors (ClientData *pCD, - long top, long bottom, long left, long right); + int top, int bottom, int left, int right); void ProcessNetWmState (ClientData *pCD, long action, - long firstProperty, long secondProperty); + Atom firstProperty, Atom secondProperty); void SetupWmEwmh (void); #endif diff --git a/cde/programs/dtwm/WmGlobal.h b/cde/programs/dtwm/WmGlobal.h index c74b50b6e..1a499d00b 100644 --- a/cde/programs/dtwm/WmGlobal.h +++ b/cde/programs/dtwm/WmGlobal.h @@ -109,6 +109,9 @@ extern Pixel FPselectcolor; /* ICCC atom names: */ +#define _XA_PREMATURE_XCLIENTMESSAGEEVENT_LIST \ + "PREMATURE_XCLIENTMESSAGEEVENT_LIST" + #define _XA_WM_STATE "WM_STATE" #define _XA_WM_PROTOCOLS "WM_PROTOCOLS" #define _XA_WM_CHANGE_STATE "WM_CHANGE_STATE" @@ -117,6 +120,24 @@ extern Pixel FPselectcolor; #define _XA_WM_TAKE_FOCUS "WM_TAKE_FOCUS" #define _XA_WM_COLORMAP_WINDOWS "WM_COLORMAP_WINDOWS" +/* EWMH atom names: */ + +#define _NET_WM_STATE_REMOVE 0 +#define _NET_WM_STATE_ADD 1 +#define _NET_WM_STATE_TOGGLE 2 + +#define _XA__NET_SUPPORTED "_NET_SUPPORTED" +#define _XA__NET_SUPPORTING_WM_CHECK "_NET_SUPPORTING_WM_CHECK" +#define _XA__NET_WM_NAME "_NET_WM_NAME" +#define _XA__NET_WM_ICON_NAME "_NET_WM_ICON_NAME" +#define _XA__NET_WM_VISIBLE_NAME "_NET_WM_VISIBLE_NAME" +#define _XA__NET_WM_VISIBLE_ICON_NAME "_NET_WM_VISIBLE_ICON_NAME" +#define _XA__NET_WM_FULLSCREEN_MONITORS "_NET_WM_FULLSCREEN_MONITORS" +#define _XA__NET_WM_STATE "_NET_WM_STATE" +#define _XA__NET_WM_STATE_FULLSCREEN "_NET_WM_STATE_FULLSCREEN" +#define _XA__NET_WM_STATE_MAXIMIZED_VERT "_NET_WM_STATE_MAXIMIZED_VERT" +#define _XA__NET_WM_STATE_MAXIMIZED_HORZ "_NET_WM_STATE_MAXIMIZED_HORZ" + /* window manager exit value on fatal errors: */ #define WM_ERROR_EXIT_VALUE 1 @@ -1649,11 +1670,11 @@ typedef struct _ClientData int xBorderWidth; /* original X border width */ FrameInfo frameInfo; /* frame geometry data */ Boolean fullscreen; /* fullscreen flag */ - Boolean monitorSizeIsSet; /* True => X, Y, W, H is set */ - int monitorX; /* monitor X loc */ - int monitorY; /* monitor Y loc */ - int monitorWidth; /* monitor width */ - int monitorHeight; /* monitor height */ + Boolean fullscreenAuto; /* False => set by client */ + int fullscreenX; /* fullscreen X loc */ + int fullscreenY; /* fullscreen Y loc */ + int fullscreenWidth; /* fullscreen width */ + int fullscreenHeight; /* fullscreen height */ XmString instantTitle; /* instant title */ /* client window frame graphic data: */ @@ -1853,7 +1874,6 @@ typedef struct _WmGlobalData Widget topLevelW1; /* from which WM components hang */ Boolean confirmDialogMapped; /* confirm dialog is mapped */ XtAppContext mwmAppContext; /* application context for mwm */ - XContext tmpWindowContextType; /* temporary window context */ XContext windowContextType; /* window context for XSaveContext */ XContext screenContextType; /* screen context for XSaveContext */ #ifndef IBM_169380 @@ -1937,6 +1957,8 @@ typedef struct _WmGlobalData /* atoms used in inter-client communication: */ + Atom xa_PREMATURE_XCLIENTMESSAGEEVENT_LIST; + Atom xa_WM_STATE; Atom xa_WM_PROTOCOLS; Atom xa_WM_CHANGE_STATE; diff --git a/cde/programs/dtwm/WmInitWs.c b/cde/programs/dtwm/WmInitWs.c index 0f21cf577..17974de8c 100644 --- a/cde/programs/dtwm/WmInitWs.c +++ b/cde/programs/dtwm/WmInitWs.c @@ -411,7 +411,6 @@ void InitWmGlobal (int argc, char *argv [], char *environ []) * Do (pre-toolkit) initialization: */ - wmGD.tmpWindowContextType = XUniqueContext (); wmGD.windowContextType = XUniqueContext (); wmGD.screenContextType = XUniqueContext (); #ifndef IBM_169380 diff --git a/cde/programs/dtwm/WmManage.c b/cde/programs/dtwm/WmManage.c index 52bdb9e5d..eabade922 100644 --- a/cde/programs/dtwm/WmManage.c +++ b/cde/programs/dtwm/WmManage.c @@ -98,6 +98,34 @@ static void CheckPushRecallClient (ClientData *pCD); */ +static void ApplyPrematureClientMessages (ClientData *pCD) +{ + unsigned long i, nitems, leftover; + int actualFormat; + Atom actualType; + Atom property = wmGD.xa_PREMATURE_XCLIENTMESSAGEEVENT_LIST; + XClientMessageEvent *messages = NULL; + + if (!HasProperty (pCD, property)) goto err; + + if (XGetWindowProperty (DISPLAY, pCD->client, property, 0L, 1000000L, True, + property, &actualType, &actualFormat, &nitems, + &leftover, (unsigned char **)&messages) != Success) + goto err; + + if (actualType != property) goto err; + + nitems /= sizeof (XClientMessageEvent); + + if (!nitems) goto err; + + for (i = 0; i < nitems; ++i) HandleClientMessage (pCD, &messages[i]); + +err: + if (messages) XFree (messages); +} + + /*************************************<->************************************* * @@ -415,6 +443,11 @@ ManageWindow (WmScreenData *pSD, Window clientWindow, long manageFlags) return; } + ApplyPrematureClientMessages (pCD); + + if (!HasProperty (pCD, wmGD.xa__NET_WM_STATE)) + UpdateNetWmState (pCD->client, NULL, 0, _NET_WM_STATE_REMOVE); + /* * Send config notify if the client's been moved/resized */ @@ -1012,6 +1045,8 @@ void WithdrawWindow (ClientData *pCD) } XDeleteProperty (DISPLAY, pCD->client, wmGD.xa__NET_WM_STATE); + XDeleteProperty (DISPLAY, pCD->client, + wmGD.xa_PREMATURE_XCLIENTMESSAGEEVENT_LIST); XUnmapWindow (DISPLAY, pCD->client); XReparentWindow (DISPLAY, pCD->client, ROOT_FOR_CLIENT(pCD), x, y); diff --git a/cde/programs/dtwm/WmProperty.c b/cde/programs/dtwm/WmProperty.c index c5e234d2e..dd88dffc8 100644 --- a/cde/programs/dtwm/WmProperty.c +++ b/cde/programs/dtwm/WmProperty.c @@ -1940,3 +1940,60 @@ void SetUtf8String (Display *display, Window w, Atom property, const char *s) XChangeProperty (display, w, property, wmGD.xa_UTF8_STRING, 8, PropModeReplace, (unsigned char *)s, len); } + +/** + * @brief This function updates _NET_WM_STATE property. + * + * @param window + * @param states + * @param nstates + * @param action + */ +void UpdateNetWmState (Window window, Atom *states, unsigned long nstates, + long action) +{ + int i, j, actualFormat; + unsigned long nold, leftover; + Atom actualType, *oldStates, *newStates; + unsigned long nnew = 0; + Atom type = wmGD.xa__NET_WM_STATE; + + if (!(XGetWindowProperty (DISPLAY, window, type, 0L, 1000000L, False, + XA_ATOM, &actualType, &actualFormat, &nold, + &leftover, (unsigned char **) &oldStates) + == Success && actualType == XA_ATOM)) nold = 0; + + if (!(states && nstates) && nold) goto done; + + newStates = malloc ((nstates + nold) * sizeof (Atom)); + + if (!newStates) goto done; + + for (i = 0; i < nold; ++i) + { + Atom oldState = oldStates[i]; + for (j = 0; j < nstates; ++j) if (oldState == states[j]) break; + if (j >= nstates) newStates[nnew++] = oldState; + } + + if (action == _NET_WM_STATE_ADD) + { + for (i = 0; i < nstates; ++i) newStates[nnew++] = states[i]; + } + else if (action == _NET_WM_STATE_TOGGLE) + { + for (i = 0; i < nstates; ++i) + { + Atom state = states[i]; + for (j = 0; j < nold; ++j) if (state == oldStates[j]) break; + if (j >= nold) newStates[nnew++] = state; + } + } + + XChangeProperty (DISPLAY, window, type, XA_ATOM, 32, PropModeReplace, + (unsigned char *) newStates, nnew); + +done: + if (oldStates) XFree (oldStates); + if (newStates) free (newStates); +} diff --git a/cde/programs/dtwm/WmProperty.h b/cde/programs/dtwm/WmProperty.h index 7e2ae362c..128d38c5b 100644 --- a/cde/programs/dtwm/WmProperty.h +++ b/cde/programs/dtwm/WmProperty.h @@ -61,3 +61,5 @@ extern char *WorkspacePropertyName (WmWorkspaceData *pWS); extern char *GetUtf8String (Display *display, Window w, Atom property); extern void SetUtf8String (Display *display, Window w, Atom property, const char *s); +extern void UpdateNetWmState (Window window, Atom *states, + unsigned long nstates, long action); diff --git a/cde/programs/dtwm/WmProtocol.c b/cde/programs/dtwm/WmProtocol.c index edf544b86..a13d7054b 100644 --- a/cde/programs/dtwm/WmProtocol.c +++ b/cde/programs/dtwm/WmProtocol.c @@ -99,7 +99,8 @@ int curXids = 0; void SetupWmICCC (void) { - enum { + enum { + XA_PREMATURE_XCLIENTMESSAGEEVENT_LIST, XA_WM_STATE, XA_WM_PROTOCOLS, XA_WM_CHANGE_STATE, XA_WM_SAVE_YOURSELF, XA_WM_DELETE_WINDOW, XA_WM_COLORMAP_WINDOWS, XA_WM_TAKE_FOCUS, XA_MWM_HINTS, @@ -109,6 +110,7 @@ void SetupWmICCC (void) XA_COMPOUND_TEXT, NUM_ATOMS }; static char *atom_names[] = { + _XA_PREMATURE_XCLIENTMESSAGEEVENT_LIST, _XA_WM_STATE, _XA_WM_PROTOCOLS, _XA_WM_CHANGE_STATE, _XA_WM_SAVE_YOURSELF, _XA_WM_DELETE_WINDOW, _XA_WM_COLORMAP_WINDOWS, _XA_WM_TAKE_FOCUS, _XA_MWM_HINTS, @@ -133,6 +135,9 @@ void SetupWmICCC (void) */ XInternAtoms(DISPLAY, atom_names, XtNumber(atom_names), False, atoms); + wmGD.xa_PREMATURE_XCLIENTMESSAGEEVENT_LIST = + atoms[XA_PREMATURE_XCLIENTMESSAGEEVENT_LIST]; + wmGD.xa_WM_STATE = atoms[XA_WM_STATE]; wmGD.xa_WM_PROTOCOLS = atoms[XA_WM_PROTOCOLS]; wmGD.xa_WM_CHANGE_STATE = atoms[XA_WM_CHANGE_STATE]; diff --git a/cde/programs/dtwm/WmWinInfo.c b/cde/programs/dtwm/WmWinInfo.c index 4fdc2bf05..1bbb96371 100644 --- a/cde/programs/dtwm/WmWinInfo.c +++ b/cde/programs/dtwm/WmWinInfo.c @@ -89,7 +89,7 @@ WmWorkspaceData *pIconBoxInitialWS; /*************************************<->************************************* * - * InitClientData (clientWindow) + * GetClientInfo (pSD, clientWindow, manageFlags) * * * Description: @@ -100,8 +100,12 @@ WmWorkspaceData *pIconBoxInitialWS; * * Inputs: * ------ + * pSD = pointer to screen data for screen that client lives in + * * clientWindow = window id for the client window that is to be managed * + * manageFlags = flags that indicate wm state info + * * * Outputs: * ------- @@ -111,23 +115,13 @@ WmWorkspaceData *pIconBoxInitialWS; *************************************<->***********************************/ ClientData * -InitClientData (Window clientWindow) +GetClientInfo (WmScreenData *pSD, Window clientWindow, long manageFlags) + { int i; ClientData *pCD; + XSetWindowAttributes sAttributes; - if (!XFindContext (DISPLAY, clientWindow, wmGD.windowContextType, - (caddr_t *)&pCD)) - { - XDeleteContext(DISPLAY, clientWindow, wmGD.tmpWindowContextType); - return (pCD); - } - - if (!XFindContext (DISPLAY, clientWindow, wmGD.tmpWindowContextType, - (caddr_t *)&pCD)) - { - return (pCD); - } /* * Allocate and initialize a client data structure: @@ -140,15 +134,13 @@ InitClientData (Window clientWindow) return (NULL); } - XSaveContext (DISPLAY, clientWindow, wmGD.tmpWindowContextType, - (caddr_t)pCD); - /* * Initialize the data structure: */ pCD->client = clientWindow; + pCD->clientID = ++(pSD->clientCounter); pCD->clientFlags = WM_INITIALIZATION; pCD->iconFlags = 0; pCD->thisIconBox = NULL; @@ -209,6 +201,7 @@ InitClientData (Window clientWindow) pCD->maxWidth = pCD->maxWidthLimit = BIGSIZE; pCD->maxHeight = pCD->maxHeightLimit = BIGSIZE; pCD->maxConfig = FALSE; + pCD->pSD = pSD; pCD->dataType = CLIENT_DATA_TYPE; pCD->window_status = 0L; @@ -219,61 +212,12 @@ InitClientData (Window clientWindow) pCD->smClientID = (String)NULL; pCD->fullscreen = False; - pCD->monitorSizeIsSet = False; + pCD->fullscreenAuto = True; pCD->instantTitle = NULL; for (i = 0; i < STRETCH_COUNT; ++i) pCD->clientStretchWin[i] = (Window)0L; - return (pCD); -} /* END OF FUNCTION InitClientData */ - - - -/*************************************<->************************************* - * - * GetClientInfo (pSD, clientWindow, manageFlags) - * - * - * Description: - * ----------- - * This function is used to get client window data. - * - * - * Inputs: - * ------ - * pSD = pointer to screen data for screen that client lives in - * - * clientWindow = window id for the client window that is to be managed - * - * manageFlags = flags that indicate wm state info - * - * - * Outputs: - * ------- - * Return = pointer to an initialized client data structure for the - * specified client window - * - *************************************<->***********************************/ - -ClientData * -GetClientInfo (WmScreenData *pSD, Window clientWindow, long manageFlags) - -{ - ClientData *pCD; - XSetWindowAttributes sAttributes; - - if (!(pCD = InitClientData (clientWindow))) - { - return (NULL); - } - - XDeleteContext(DISPLAY, clientWindow, wmGD.tmpWindowContextType); - - pCD->clientID = ++(pSD->clientCounter); - pCD->pSD = pSD; - - /* * Do special processing for client windows that are controlled by * the window manager. @@ -1410,7 +1354,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) { SizeHints *pNormalHints; long flags; - int diff; + int diff, maxWidth, maxHeight; unsigned long decoration; unsigned int boxdim, tmpMin; unsigned int oldWidthInc = 0, oldHeightInc = 0; @@ -1631,6 +1575,8 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) * maximumClientSize is either set to 'horizontal' or 'vertical'. */ + GetMaxInfo (pCD, NULL, NULL, &maxWidth, &maxHeight); + pCD->oldMaxWidth = pCD->maxWidth; if (pCD->maximumClientSize.width) { @@ -1638,8 +1584,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (IS_MAXIMIZE_HORIZONTAL(pCD)) { /* go to min (full screen width, max maximum width) */ - pCD->maxWidth = DisplayWidth (DISPLAY, SCREEN_FOR_CLIENT(pCD)) - - (2 * pCD->clientOffset.x); + pCD->maxWidth = maxWidth; /* * Hack to set max client to the current client height, maxHeight @@ -1661,8 +1606,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (pNormalHints->max_width < 0) { /* go to min (full screen width, max maximum width) */ - pCD->maxWidth = DisplayWidth (DISPLAY, SCREEN_FOR_CLIENT(pCD)) - - (2 * pCD->clientOffset.x); + pCD->maxWidth = maxWidth; } else { @@ -1675,9 +1619,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (firstTime) { /* go to min (full screen width, max maximum width) */ - pCD->maxWidth = DisplayWidth (DISPLAY, - SCREEN_FOR_CLIENT(pCD)) - - (2 * pCD->clientOffset.x); + pCD->maxWidth = maxWidth; } else { @@ -1724,9 +1666,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (IS_MAXIMIZE_VERTICAL(pCD)) { /* go to min (full screen height, max maximum height) */ - pCD->maxHeight = DisplayHeight (DISPLAY, SCREEN_FOR_CLIENT(pCD)) - - (pCD->clientOffset.x + - pCD->clientOffset.y); + pCD->maxHeight = maxHeight; /* * Hack to set max client to the current client width, maxWidth * will be kept up to date whenever the window is reconfigured @@ -1747,10 +1687,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (pNormalHints->max_height < 0) { /* go to min (full screen height, max maximum height) */ - pCD->maxHeight = DisplayHeight ( - DISPLAY, SCREEN_FOR_CLIENT(pCD)) - - (pCD->clientOffset.x + - pCD->clientOffset.y); + pCD->maxHeight = maxHeight; } else { @@ -1763,10 +1700,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (firstTime) { /* go to min (full screen height, max maximum height) */ - pCD->maxHeight = DisplayHeight (DISPLAY, - SCREEN_FOR_CLIENT(pCD)) - - (pCD->clientOffset.x + - pCD->clientOffset.y); + pCD->maxHeight = maxHeight; } else { @@ -1955,8 +1889,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (IS_MAXIMIZE_VERTICAL(pCD)) { /* go to min (full screen width, max maximum width) */ - pCD->maxWidthLimit = DisplayWidth (DISPLAY, SCREEN_FOR_CLIENT(pCD)) - - (2 * pCD->clientOffset.x); + pCD->maxWidthLimit = maxWidth; } else { @@ -1982,9 +1915,7 @@ ProcessWmNormalHints (ClientData *pCD, Boolean firstTime, long manageFlags) if (IS_MAXIMIZE_HORIZONTAL(pCD)) { /* go to min (full screen height, max maximum height) */ - pCD->maxHeightLimit = DisplayHeight (DISPLAY, SCREEN_FOR_CLIENT(pCD)) - - (pCD->clientOffset.x + - pCD->clientOffset.y); + pCD->maxHeightLimit = maxHeight; } else { @@ -4053,3 +3984,57 @@ ProcessMwmHints (ClientData *pCD) } /* END OF ProcessMwmHints */ + + +/** + * @brief Get the position and size for the maximized window. + * + * @param pCD + * @param pX + * @param pY + * @param pWidth + * @param pHeight + */ +void GetMaxInfo (ClientData *pCD, int *pX, int *pY, int *pWidth, int *pHeight) +{ + int x, y, width, height; + WmHeadInfo_t *WmHI; + + if (pCD->maxConfig) + { + x = pCD->maxX; + y = pCD->maxY; + width = pCD->maxWidth; + height = pCD->maxHeight; + } + else if (pCD->fullscreen && !pCD->fullscreenAuto) + { + x = pCD->fullscreenX; + y = pCD->fullscreenY; + width = pCD->fullscreenWidth; + height = pCD->fullscreenHeight; + } + else if (WmHI = GetHeadInfo (pCD)) + { + x = WmHI->x_org; + y = WmHI->y_org; + width = WmHI->width; + height = WmHI->height; + + free(WmHI); + } + else + { + x = 0; + y = 0; + width = DisplayWidth (DISPLAY, SCREEN_FOR_CLIENT (pCD)); + height = DisplayHeight (DISPLAY, SCREEN_FOR_CLIENT (pCD)); + } + + FrameToClient (pCD, &x, &y, &width, &height); + + if (pX) *pX = x; + if (pY) *pY = y; + if (pWidth) *pWidth = width; + if (pHeight) *pHeight = height; +} diff --git a/cde/programs/dtwm/WmWinInfo.h b/cde/programs/dtwm/WmWinInfo.h index e9405344f..9a812a64b 100644 --- a/cde/programs/dtwm/WmWinInfo.h +++ b/cde/programs/dtwm/WmWinInfo.h @@ -39,7 +39,6 @@ extern void FixWindowConfiguration (ClientData *pCD, unsigned int *pWidth, extern void FixWindowSize (ClientData *pCD, unsigned int *pWidth, unsigned int *pHeight, unsigned int widthInc, unsigned int heightInc); -extern ClientData *InitClientData (Window clientWindow); extern ClientData *GetClientInfo (WmScreenData *pSD, Window clientWindow, long manageFlags); extern ClientData *GetWmClientInfo (WmWorkspaceData *pWS, ClientData *pCD, @@ -63,3 +62,5 @@ extern Boolean SetupClientIconWindow (ClientData *pCD, Window window); extern Boolean WmGetWindowAttributes (Window window); extern void ProcessSmClientID (ClientData *pCD); extern void ProcessWmSaveHint (ClientData *pCD); +extern void GetMaxInfo (ClientData *pCD, int *pX, int *pY, int *pWidth, + int *pHeight); diff --git a/cde/programs/dtwm/WmWinState.c b/cde/programs/dtwm/WmWinState.c index 138671edd..051ddf4fc 100644 --- a/cde/programs/dtwm/WmWinState.c +++ b/cde/programs/dtwm/WmWinState.c @@ -604,6 +604,12 @@ static void SetupWindowStateWithEventMask (ClientData *pCD, int newState, void ConfigureNewState (ClientData *pcd) { + Atom hints[3] = { + wmGD.xa__NET_WM_STATE_FULLSCREEN, + wmGD.xa__NET_WM_STATE_MAXIMIZED_VERT, + wmGD.xa__NET_WM_STATE_MAXIMIZED_HORZ + }; + if (pcd->maxConfig && !pcd->fullscreen) { pcd->maxConfig = FALSE; @@ -615,7 +621,6 @@ void ConfigureNewState (ClientData *pcd) else { long decor = pcd->decor; - WmHeadInfo_t *WmHI; if (pcd->fullscreen) { @@ -623,29 +628,8 @@ void ConfigureNewState (ClientData *pcd) SetClientOffset (pcd); } - if (pcd->fullscreen && pcd->monitorSizeIsSet) - { - pcd->maxX = pcd->monitorX; - pcd->maxY = pcd->monitorY; - pcd->maxWidth = pcd->monitorWidth; - pcd->maxHeight = pcd->monitorHeight; - - FrameToClient(pcd, &pcd->maxX, &pcd->maxY, &pcd->maxWidth, - &pcd->maxHeight); - } - else if (WmHI = GetHeadInfo(pcd)) { - /* - * Update client config to reflect underlying head, if MultiHead is - * active - */ - FrameToClient(pcd, &WmHI->x_org, &WmHI->y_org, - &WmHI->width, &WmHI->height); - pcd->maxX = WmHI->x_org; - pcd->maxY = WmHI->y_org; - pcd->maxWidth = WmHI->width; - pcd->maxHeight = WmHI->height; - free(WmHI); - } + GetMaxInfo (pcd, &pcd->maxX, &pcd->maxY, &pcd->maxWidth, + &pcd->maxHeight); XResizeWindow (DISPLAY, pcd->client, (unsigned int) pcd->maxWidth, @@ -660,6 +644,28 @@ void ConfigureNewState (ClientData *pcd) } } + UpdateNetWmState (pcd->client, hints, sizeof(hints) / sizeof(hints[0]), + _NET_WM_STATE_REMOVE); + + if (pcd->maxConfig) + { + unsigned long offset, nhints; + + if (pcd->fullscreen) + { + offset = 0; + nhints = 1; + } + else + { + offset = 1; + nhints = 2; + } + + UpdateNetWmState (pcd->client, &hints[offset], nhints, + _NET_WM_STATE_ADD); + } + SendConfigureNotify (pcd); /* From 2351a19d7e2653d7ce30a3d01cbdb5ca4cc90986 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Fri, 24 Feb 2023 04:11:07 +0000 Subject: [PATCH 21/47] dtwm: support _NET_WM_STATE_ABOVE and _NET_WM_STATE_BELOW. --- cde/programs/dtwm/WmCEvent.c | 17 +++++++ cde/programs/dtwm/WmEwmh.c | 96 ++++++++++++++++++++++++++++------- cde/programs/dtwm/WmGlobal.h | 11 +++- cde/programs/dtwm/WmInitWs.c | 3 ++ cde/programs/dtwm/WmManage.c | 2 + cde/programs/dtwm/WmWinInfo.c | 3 +- 6 files changed, 112 insertions(+), 20 deletions(-) diff --git a/cde/programs/dtwm/WmCEvent.c b/cde/programs/dtwm/WmCEvent.c index 2dab730dc..d6a5d7abf 100644 --- a/cde/programs/dtwm/WmCEvent.c +++ b/cde/programs/dtwm/WmCEvent.c @@ -80,6 +80,17 @@ static void AcceptPrematureClientMessage (XClientMessageEvent *clientEvent) sizeof(XClientMessageEvent)); } +static void HandleVisibilityNotify (ClientData *pCD, + XVisibilityEvent *visibilityEvent) +{ + if (pCD == pCD->pSD->topClient && + visibilityEvent->state != VisibilityUnobscured) + Do_Raise (pCD, NULL, STACK_NORMAL); + else if (pCD == pCD->pSD->bottomClient && + visibilityEvent->state != VisibilityFullyObscured) + Do_Lower (pCD, NULL, STACK_NORMAL); +} + /*************************************<->************************************* @@ -699,6 +710,12 @@ Boolean HandleEventsOnClientWindow (ClientData *pCD, XEvent *pEvent) break; } + case VisibilityNotify: + { + HandleVisibilityNotify (pCD, (XVisibilityEvent *)pEvent); + doXtDispatchEvent = False; + break; + } } return (doXtDispatchEvent); diff --git a/cde/programs/dtwm/WmEwmh.c b/cde/programs/dtwm/WmEwmh.c index cddc87a02..61180175b 100644 --- a/cde/programs/dtwm/WmEwmh.c +++ b/cde/programs/dtwm/WmEwmh.c @@ -27,11 +27,40 @@ #include "WmGlobal.h" #include "WmEvent.h" +#include "WmFunction.h" #include "WmMultiHead.h" #include "WmProperty.h" #include "WmWinState.h" #include "WmWrkspace.h" +static void ProcessNetWmStateAbove (ClientData *pCD, long action); +static void ProcessNetWmStateBelow (ClientData *pCD, long action); + +static void ProcessNetWmStateMaximized (ClientData *pCD, long action) +{ + int newState; + + switch (action) + { + case _NET_WM_STATE_REMOVE: + if (pCD->clientState != MAXIMIZED_STATE) return; + newState = NORMAL_STATE; + break; + case _NET_WM_STATE_ADD: + if (pCD->clientState == MAXIMIZED_STATE) return; + newState = MAXIMIZED_STATE; + break; + case _NET_WM_STATE_TOGGLE: + newState = pCD->clientState == MAXIMIZED_STATE ? + NORMAL_STATE : MAXIMIZED_STATE; + break; + default: + return; + } + + SetClientState (pCD, newState, GetTimestamp ()); +} + static void ProcessNetWmStateFullscreen (ClientData *pCD, long action) { Boolean fullscreen = pCD->fullscreen; @@ -62,29 +91,50 @@ static void ProcessNetWmStateFullscreen (ClientData *pCD, long action) } } -static void ProcessNetWmStateMaximized (ClientData *pCD, long action) +static void ProcessNetWmStateAbove (ClientData *pCD, long action) { - int newState; + if (action == _NET_WM_STATE_TOGGLE) + action = pCD == pCD->pSD->topClient ? _NET_WM_STATE_REMOVE : + _NET_WM_STATE_ADD; switch (action) { case _NET_WM_STATE_REMOVE: - if (pCD->clientState != MAXIMIZED_STATE) return; - newState = NORMAL_STATE; + if (pCD->pSD->topClient == pCD) pCD->pSD->topClient = NULL; break; case _NET_WM_STATE_ADD: - if (pCD->clientState == MAXIMIZED_STATE) return; - newState = MAXIMIZED_STATE; - break; - case _NET_WM_STATE_TOGGLE: - newState = pCD->clientState == MAXIMIZED_STATE ? - NORMAL_STATE : MAXIMIZED_STATE; + pCD->pSD->topClient = pCD; + ProcessNetWmStateBelow (pCD, _NET_WM_STATE_REMOVE); + Do_Raise (pCD, NULL, STACK_NORMAL); break; default: return; } - SetClientState (pCD, newState, GetTimestamp ()); + UpdateNetWmState (pCD->client, &wmGD.xa__NET_WM_STATE_ABOVE, 1, action); +} + +static void ProcessNetWmStateBelow (ClientData *pCD, long action) +{ + if (action == _NET_WM_STATE_TOGGLE) + action = pCD == pCD->pSD->bottomClient ? _NET_WM_STATE_REMOVE : + _NET_WM_STATE_ADD; + + switch (action) + { + case _NET_WM_STATE_REMOVE: + if (pCD->pSD->bottomClient == pCD) pCD->pSD->bottomClient = NULL; + break; + case _NET_WM_STATE_ADD: + pCD->pSD->bottomClient = pCD; + ProcessNetWmStateAbove (pCD, _NET_WM_STATE_REMOVE); + Do_Lower (pCD, NULL, STACK_NORMAL); + break; + default: + return; + } + + UpdateNetWmState (pCD->client, &wmGD.xa__NET_WM_STATE_BELOW, 1, action); } /** @@ -145,6 +195,12 @@ void ProcessNetWmState (ClientData *pCD, long action, else if (firstProperty == wmGD.xa__NET_WM_STATE_FULLSCREEN || secondProperty == wmGD.xa__NET_WM_STATE_FULLSCREEN) ProcessNetWmStateFullscreen (pCD, action); + else if (firstProperty == wmGD.xa__NET_WM_STATE_ABOVE || + secondProperty == wmGD.xa__NET_WM_STATE_ABOVE) + ProcessNetWmStateAbove (pCD, action); + else if (firstProperty == wmGD.xa__NET_WM_STATE_BELOW || + secondProperty == wmGD.xa__NET_WM_STATE_BELOW) + ProcessNetWmStateBelow (pCD, action); if (!ClientInWorkspace (ACTIVE_WS, pCD)) SetClientState (pCD, pCD->clientState | UNSEEN_STATE, GetTimestamp ()); @@ -167,9 +223,11 @@ void SetupWmEwmh (void) XA__NET_WM_VISIBLE_ICON_NAME, XA__NET_WM_FULLSCREEN_MONITORS, XA__NET_WM_STATE, - XA__NET_WM_STATE_FULLSCREEN, XA__NET_WM_STATE_MAXIMIZED_VERT, - XA__NET_WM_STATE_MAXIMIZED_HORZ + XA__NET_WM_STATE_MAXIMIZED_HORZ, + XA__NET_WM_STATE_FULLSCREEN, + XA__NET_WM_STATE_ABOVE, + XA__NET_WM_STATE_BELOW }; static char *atom_names[] = { @@ -182,9 +240,11 @@ void SetupWmEwmh (void) _XA__NET_WM_VISIBLE_ICON_NAME, _XA__NET_WM_FULLSCREEN_MONITORS, _XA__NET_WM_STATE, - _XA__NET_WM_STATE_FULLSCREEN, _XA__NET_WM_STATE_MAXIMIZED_VERT, - _XA__NET_WM_STATE_MAXIMIZED_HORZ + _XA__NET_WM_STATE_MAXIMIZED_HORZ, + _XA__NET_WM_STATE_FULLSCREEN, + _XA__NET_WM_STATE_ABOVE, + _XA__NET_WM_STATE_BELOW }; Atom atoms[XtNumber(atom_names) + 1]; @@ -198,11 +258,13 @@ void SetupWmEwmh (void) wmGD.xa__NET_WM_VISIBLE_ICON_NAME = atoms[XA__NET_WM_VISIBLE_ICON_NAME]; wmGD.xa__NET_WM_FULLSCREEN_MONITORS = atoms[XA__NET_WM_FULLSCREEN_MONITORS]; wmGD.xa__NET_WM_STATE = atoms[XA__NET_WM_STATE]; - wmGD.xa__NET_WM_STATE_FULLSCREEN = atoms[XA__NET_WM_STATE_FULLSCREEN]; wmGD.xa__NET_WM_STATE_MAXIMIZED_VERT = atoms[XA__NET_WM_STATE_MAXIMIZED_VERT]; wmGD.xa__NET_WM_STATE_MAXIMIZED_HORZ = atoms[XA__NET_WM_STATE_MAXIMIZED_HORZ]; + wmGD.xa__NET_WM_STATE_FULLSCREEN = atoms[XA__NET_WM_STATE_FULLSCREEN]; + wmGD.xa__NET_WM_STATE_ABOVE = atoms[XA__NET_WM_STATE_ABOVE]; + wmGD.xa__NET_WM_STATE_BELOW = atoms[XA__NET_WM_STATE_BELOW]; for (scr = 0; scr < wmGD.numScreens; ++scr) { @@ -230,6 +292,6 @@ void SetupWmEwmh (void) XChangeProperty(DISPLAY, wmGD.Screens[scr].rootWindow, atoms[XA__NET_SUPPORTED], XA_ATOM, 32, PropModeReplace, (unsigned char *)&atoms[XA__NET_SUPPORTING_WM_CHECK], - 10); + 12); } } diff --git a/cde/programs/dtwm/WmGlobal.h b/cde/programs/dtwm/WmGlobal.h index 1a499d00b..5dcc6bd97 100644 --- a/cde/programs/dtwm/WmGlobal.h +++ b/cde/programs/dtwm/WmGlobal.h @@ -134,9 +134,11 @@ extern Pixel FPselectcolor; #define _XA__NET_WM_VISIBLE_ICON_NAME "_NET_WM_VISIBLE_ICON_NAME" #define _XA__NET_WM_FULLSCREEN_MONITORS "_NET_WM_FULLSCREEN_MONITORS" #define _XA__NET_WM_STATE "_NET_WM_STATE" -#define _XA__NET_WM_STATE_FULLSCREEN "_NET_WM_STATE_FULLSCREEN" #define _XA__NET_WM_STATE_MAXIMIZED_VERT "_NET_WM_STATE_MAXIMIZED_VERT" #define _XA__NET_WM_STATE_MAXIMIZED_HORZ "_NET_WM_STATE_MAXIMIZED_HORZ" +#define _XA__NET_WM_STATE_FULLSCREEN "_NET_WM_STATE_FULLSCREEN" +#define _XA__NET_WM_STATE_ABOVE "_NET_WM_STATE_ABOVE" +#define _XA__NET_WM_STATE_BELOW "_NET_WM_STATE_BELOW" /* window manager exit value on fatal errors: */ #define WM_ERROR_EXIT_VALUE 1 @@ -1325,6 +1327,9 @@ typedef struct _WmScreenData DtSvcHandle hWsm; /* WORKSPACEMGR message handle */ Boolean bMarqueeSelectionInitialized; + /* top and bottom clients */ + struct _ClientData *topClient; + struct _ClientData *bottomClient; } WmScreenData; typedef struct _WmScreenData *PtrScreenData; @@ -1984,9 +1989,11 @@ typedef struct _WmGlobalData Atom xa__NET_WM_VISIBLE_ICON_NAME; Atom xa__NET_WM_FULLSCREEN_MONITORS; Atom xa__NET_WM_STATE; - Atom xa__NET_WM_STATE_FULLSCREEN; Atom xa__NET_WM_STATE_MAXIMIZED_VERT; Atom xa__NET_WM_STATE_MAXIMIZED_HORZ; + Atom xa__NET_WM_STATE_FULLSCREEN; + Atom xa__NET_WM_STATE_ABOVE; + Atom xa__NET_WM_STATE_BELOW; /* atoms used for workspace management: */ diff --git a/cde/programs/dtwm/WmInitWs.c b/cde/programs/dtwm/WmInitWs.c index 17974de8c..4cdd01c85 100644 --- a/cde/programs/dtwm/WmInitWs.c +++ b/cde/programs/dtwm/WmInitWs.c @@ -1272,6 +1272,9 @@ InitWmScreen (WmScreenData *pSD, int sNum) pSD->iconBoxControl = False; pSD->displayResolutionType = _DtGetDisplayResolution(DISPLAY, sNum); + pSD->topClient = NULL; + pSD->bottomClient = NULL; + /* * We've got display resolution type--now, let's get color * characteristics. diff --git a/cde/programs/dtwm/WmManage.c b/cde/programs/dtwm/WmManage.c index eabade922..cfdd6d87e 100644 --- a/cde/programs/dtwm/WmManage.c +++ b/cde/programs/dtwm/WmManage.c @@ -921,6 +921,8 @@ void WithdrawWindow (ClientData *pCD) int i; XWindowChanges xwc; + if (pCD->pSD->topClient == pCD) pCD->pSD->topClient = NULL; + if (pCD->pSD->bottomClient == pCD) pCD->pSD->bottomClient = NULL; /* * Put the client window into a withdrawn state: diff --git a/cde/programs/dtwm/WmWinInfo.c b/cde/programs/dtwm/WmWinInfo.c index 1bbb96371..c931c9fc6 100644 --- a/cde/programs/dtwm/WmWinInfo.c +++ b/cde/programs/dtwm/WmWinInfo.c @@ -250,7 +250,8 @@ GetClientInfo (WmScreenData *pSD, Window clientWindow, long manageFlags) * Listen for property change events on the window so that we keep * in sync with the hints. */ - sAttributes.event_mask = (PropertyChangeMask | ColormapChangeMask); + sAttributes.event_mask = (PropertyChangeMask | ColormapChangeMask | + VisibilityChangeMask); XChangeWindowAttributes (DISPLAY, pCD->client, CWEventMask, &sAttributes); From 28277ce88ef4785ad664408cfc800da3bc56946e Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Sat, 25 Feb 2023 05:39:32 +0000 Subject: [PATCH 22/47] dtsession: change the maximum size of cover dialog to fullscreen. --- cde/programs/dtsession/SmUI.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/cde/programs/dtsession/SmUI.c b/cde/programs/dtsession/SmUI.c index eccb4665f..5ea4232a4 100644 --- a/cde/programs/dtsession/SmUI.c +++ b/cde/programs/dtsession/SmUI.c @@ -1039,15 +1039,13 @@ CreateCoverDialog( { int i; Widget tmpCover, table; - char geomString[50]; - - sprintf(geomString, "%dx%d+0+0", - DisplayWidth(smGD.display, screenNum), - DisplayHeight(smGD.display, screenNum)); + int displayHeight = DisplayHeight(smGD.display, smGD.screen); + int displayWidth = DisplayWidth(smGD.display, smGD.screen); i = 0; XtSetArg(uiArgs[i], XmNmwmDecorations, 0);i++; - XtSetArg(uiArgs[i], XmNgeometry, (String) geomString);i++; + XtSetArg(uiArgs[i], XmNmaxHeight, displayHeight);i++; + XtSetArg(uiArgs[i], XmNmaxWidth, displayWidth);i++; XtSetArg(uiArgs[i], XmNuseAsyncGeometry, True);i++; XtSetArg(uiArgs[i], XmNallowShellResize, True); i++; XtSetArg(uiArgs[i], XmNresizePolicy, XmRESIZE_NONE);i++; @@ -1064,10 +1062,8 @@ CreateCoverDialog( XtSetArg(uiArgs[i], XmNmarginWidth, 0); i++; XtSetArg(uiArgs[i], XmNmarginHeight, 0); i++; XtSetArg(uiArgs[i], XmNshadowThickness, 0); i++; - XtSetArg(uiArgs[i], XmNheight, - (Dimension) DisplayHeight(smGD.display, smGD.screen)); i++; - XtSetArg(uiArgs[i], XmNwidth, - (Dimension) DisplayWidth(smGD.display, smGD.screen)); i++; + XtSetArg(uiArgs[i], XmNheight, (Dimension) displayHeight); i++; + XtSetArg(uiArgs[i], XmNwidth, (Dimension) displayWidth ); i++; XtSetArg(uiArgs[i], XmNresizePolicy, XmRESIZE_NONE);i++; table = XmCreateDrawingArea(tmpCover, "drawArea", uiArgs, i); XtManageChild(table); From 760d36bfe9ff9b19c37aabf9f3ff9f3ba30b679f Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Mon, 27 Mar 2023 08:25:29 +0000 Subject: [PATCH 23/47] dtlogin: use sessreg to manage utmp/wtmp. --- cde/configure.ac | 57 +- cde/include/Dt/PamSvc.h | 58 -- cde/include/Dt/SvcPam.h | 36 ++ cde/include/Makefile.am | 5 +- cde/lib/DtPamSvc/Makefile.am | 17 - cde/lib/DtPamSvc/PamSvc.c | 310 ----------- cde/lib/DtSvc/DtUtil2/SvcPam.c | 243 +++++++++ cde/lib/DtSvc/Makefile.am | 5 + cde/lib/Makefile.am | 4 - cde/programs/dtlogin/Makefile.am | 14 +- cde/programs/dtlogin/account.c | 510 ------------------ cde/programs/dtlogin/config/Makefile.am | 17 +- cde/programs/dtlogin/config/Xreset.src | 14 + cde/programs/dtlogin/config/Xstartup.src | 13 +- .../dtlogin/config/{pam => }/dtlogin.src | 0 cde/programs/dtlogin/dm.c | 237 +------- cde/programs/dtlogin/fontpath.c | 5 - cde/programs/dtlogin/session.c | 60 ++- cde/programs/dtlogin/sysauth.c | 12 +- cde/programs/dtlogin/vgmain.c | 2 + cde/programs/dtsession/SmLock.c | 6 +- cde/programs/dtsession/config/Makefile.am | 4 +- .../dtsession/config/{pam => }/dtsession.src | 0 23 files changed, 452 insertions(+), 1177 deletions(-) delete mode 100644 cde/include/Dt/PamSvc.h create mode 100644 cde/include/Dt/SvcPam.h delete mode 100644 cde/lib/DtPamSvc/Makefile.am delete mode 100644 cde/lib/DtPamSvc/PamSvc.c create mode 100644 cde/lib/DtSvc/DtUtil2/SvcPam.c delete mode 100644 cde/programs/dtlogin/account.c rename cde/programs/dtlogin/config/{pam => }/dtlogin.src (100%) rename cde/programs/dtsession/config/{pam => }/dtsession.src (100%) diff --git a/cde/configure.ac b/cde/configure.ac index 6919a5b53..929ad26b2 100644 --- a/cde/configure.ac +++ b/cde/configure.ac @@ -177,11 +177,6 @@ AC_SUBST(LIBMMDB, '$(top_builddir)/lib/DtMmdb/libDtMmdb.la') AC_SUBST(LIBHELP, '$(top_builddir)/lib/DtHelp/libDtHelp.la') AC_SUBST(LIBCSA, '$(top_builddir)/lib/csa/libcsa.la') -AC_SUBST(LIBPAMSVC, '$(top_builddir)/lib/DtPamSvc/libDtPamSvc.la') - -dnl we do not inclue the DtPamSvc library here as it is not needed -dnl for everything. - AC_SUBST(DTCLIENTLIBS, '$(LIBPRINT) $(LIBHELP) $(LIBWIDGET) $(LIBSVC) \ $(LIBTT) $(LIBXIN)') @@ -245,6 +240,48 @@ AC_ARG_ENABLE([xrender], [disable_xrender="yes"], [disable_xrender=""] ) +dnl copied from xdm... + +AC_ARG_WITH(utmp_file, + AS_HELP_STRING([--with-utmp-file=], + [specify file to pass to sessreg -u for current logins]) +AS_HELP_STRING([--without-utmp-file], + [specify passing "none" to sessreg -u to not record logins in utmp]), + [UTMP_FILE="$withval"]) +if test "x$UTMP_FILE" = "xyes" ; then + UTMP_FILE="" +elif test "x$UTMP_FILE" = "xno" ; then + UTMP_FILE="none" +fi +AC_MSG_CHECKING([for path to file listing current logins for sessreg]) +if test "x$UTMP_FILE" = "x" ; then + AC_MSG_RESULT([use sessreg default]) +else + AC_MSG_RESULT([$UTMP_FILE]) +fi +AM_CONDITIONAL(SET_UTMP_FILE, test x$UTMP_FILE != x) +AC_SUBST(UTMP_FILE) + +AC_ARG_WITH(wtmp_file, + AS_HELP_STRING([--with-wtmp-file=], + [specify file to pass to sessreg -w for login history]) +AS_HELP_STRING([--without-wtmp-file], + [specify passing "none" to sessreg -w to not record logins in wtmp]), + [WTMP_FILE="$withval"]) +if test "x$WTMP_FILE" = "xyes" ; then + WTMP_FILE="" +elif test "x$WTMP_FILE" = "xno" ; then + WTMP_FILE="none" +fi +AC_MSG_CHECKING([for path to file listing login history for sessreg]) +if test "x$WTMP_FILE" = "x" ; then + AC_MSG_RESULT([use sessreg default]) +else + AC_MSG_RESULT([$WTMP_FILE]) +fi +AM_CONDITIONAL(SET_WTMP_FILE, test x$WTMP_FILE != x) +AC_SUBST(WTMP_FILE) + dnl hmmm... RM="rm -f" AC_SUBST(RM) @@ -396,6 +433,10 @@ AC_CHECK_PROGS(ONSGMLS, onsgmls) if test -z "$ac_cv_prog_ONSGMLS"; then MISSING_PROGS="ONSGMLS ${MISSING_PROGS}" fi +AC_CHECK_PROGS(SESSREG, sessreg) +if test -z "$ac_cv_prog_SESSREG"; then + MISSING_PROGS="SESSREG ${MISSING_PROGS}" +fi dnl Used to check if program 'tic' is available to install terminfo files AC_CHECK_PROGS(TIC, tic, :) @@ -494,7 +535,9 @@ dnl Right now this only works on linux and netbsd (9.2 tested) if test "$supports_pam" = "yes" then AC_CHECK_LIB(pam, pam_start, - [SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DHAS_PAM_LIBRARY"]) + [SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DHAS_PAM_LIBRARY"; + PAMLIB="-lpam"]) + AC_SUBST(PAMLIB) else AC_CHECK_LIB(pam, NOTSUPPORTED) fi @@ -565,8 +608,6 @@ lib/tt/bin/ttsession/Makefile lib/DtSvc/Makefile -lib/DtPamSvc/Makefile - lib/DtSearch/Makefile lib/DtSearch/raima/Makefile diff --git a/cde/include/Dt/PamSvc.h b/cde/include/Dt/PamSvc.h deleted file mode 100644 index d76ff3e33..000000000 --- a/cde/include/Dt/PamSvc.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: pam_svc.h /main/3 1996/10/30 11:13:40 drk $ */ -/******************************************************************************* -** -** "@(#)pam_svc.h 1.4 95/09/12 -** -** Copyright 1993, 1994, 1995 Sun Microsystems, Inc. All rights reserved. -** -** This file contains header info related to use of PAM -** (Pluggable Authentication Module) library. -** -*******************************************************************************/ -/* * - * (c) Copyright 1993, 1994 Hewlett-Packard Company * - * (c) Copyright 1993, 1994 International Business Machines Corp. * - * (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc. * - * (c) Copyright 1993, 1994 Novell, Inc. * - */ - -#ifndef _DT_PAM_SVC_H -#define _DT_PAM_SVC_H - -#include - -#define DT_BAD_GID 29 /* Invalid Group ID */ -#define DT_INITGROUP_FAIL 30 /* group IDs init failed */ -#define DT_BAD_UID 31 /* Invaid User ID */ - -/* - * External procedure declarations - */ - -extern int _DtAuthentication(char*, char*, char*, char*, char*); -extern int _DtAccounting(char*, char*, char[], char*, char*, pid_t, int, int); -extern int _DtSetCred(char*, char *, uid_t, gid_t); - -#endif /* _DT_PAM_SVC_H */ diff --git a/cde/include/Dt/SvcPam.h b/cde/include/Dt/SvcPam.h new file mode 100644 index 000000000..eeb282885 --- /dev/null +++ b/cde/include/Dt/SvcPam.h @@ -0,0 +1,36 @@ +/* + * CDE - Common Desktop Environment + * + * Copyright (c) 1993-2012, The Open Group. All rights reserved. + * + * These libraries and programs are free software; you can + * redistribute them and/or modify them under the terms of the GNU + * Lesser General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * These libraries and programs are distributed in the hope that + * they will be useful, but WITHOUT ANY WARRANTY; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with these libraries and programs; if not, write + * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth + * Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _DT_SVC_PAM_H +#define _DT_SVC_PAM_H + +int _DtSvcPamAuthenticate(const char *service_name, const char *user, + const char *display_name, const char *user_passwd); +int _DtSvcPamOpenSession(const char *service_name, const char *user, + const char *display_name); +int _DtSvcPamCloseSession(const char *service_name, const char *user, + const char *display_name); +int _DtSvcPamSetcred(const char *service_name, const char *user, + const char *display_name); + +#endif diff --git a/cde/include/Makefile.am b/cde/include/Makefile.am index 5db7f3a8b..0a1022c5f 100644 --- a/cde/include/Makefile.am +++ b/cde/include/Makefile.am @@ -28,7 +28,4 @@ nobase_include_HEADERS = Dt/Editor.h \ Dt/Search.h \ Dt/Mmdb.h \ Dt/DtXinerama.h \ - Dt/PamSvc.h - - - + Dt/SvcPam.h diff --git a/cde/lib/DtPamSvc/Makefile.am b/cde/lib/DtPamSvc/Makefile.am deleted file mode 100644 index 7c21e8d8f..000000000 --- a/cde/lib/DtPamSvc/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -lib_LTLIBRARIES = libDtPamSvc.la - -# the PamSvc.h header file is located in include/Dt/ -libDtPamSvc_la_SOURCES = PamSvc.c ${top_srcdir}/include/Dt/PamSvc.h - -libDtPamSvc_la_LIBADD = -lpam - -# in order to try to keep lib versions the same across platforms, (2.1.0) -if BSD -libDtPamSvc_la_LDFLAGS = -version-info 2:1:0 -else -libDtPamSvc_la_LDFLAGS = -version-info 3:0:1 -endif - - diff --git a/cde/lib/DtPamSvc/PamSvc.c b/cde/lib/DtPamSvc/PamSvc.c deleted file mode 100644 index 8addc6d62..000000000 --- a/cde/lib/DtPamSvc/PamSvc.c +++ /dev/null @@ -1,310 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $TOG: pam_svc.c /main/5 1997/06/04 16:30:21 samborn $ */ -/******************************************************************************* - ** - ** pam_svc.c 1.10 95/11/25 - ** - ** Copyright 1993, 1994, 1995 Sun Microsystems, Inc. All rights reserved. - ** - ** This file contains procedures specific to use of - ** PAM (Pluggable Authentication Module) security library. - ** - *******************************************************************************/ -/* * - * (c) Copyright 1993, 1994 Hewlett-Packard Company * - * (c) Copyright 1993, 1994 International Business Machines Corp. * - * (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc. * - * (c) Copyright 1993, 1994 Novell, Inc. * - */ - -/* - * Header Files - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if defined(__linux__) -#include -#endif -#include
- -/* - * Local function declarations - */ - -static int login_conv(int num_msg, const struct pam_message **msg, - struct pam_response **response, void *appdata_ptr); - -static char* create_devname(char* short_devname); - -/* - * Local structures and variables - */ - -static struct pam_conv pam_conv = {login_conv, NULL}; -static char *saved_user_passwd; -static pam_handle_t *pamh = NULL; - -/**************************************************************************** - * PamInit - * - * Initialize or Update PAM datastructures. - * - ****************************************************************************/ - -static int PamInit(char* prog_name, - char* user, - char* line_dev, - char* display_name) -{ - int status=PAM_SUCCESS; - - if (!pamh) { - /* Open PAM (Plugable Authentication module ) connection */ - status = pam_start( prog_name, user, &pam_conv, &pamh ); - if (status != PAM_SUCCESS) pamh = NULL; - } else { - if (prog_name) pam_set_item(pamh, PAM_SERVICE, prog_name); - if (user) pam_set_item(pamh, PAM_USER, user); - } - - if (status == PAM_SUCCESS) { - if (line_dev) pam_set_item(pamh, PAM_TTY, line_dev); - if (display_name) pam_set_item(pamh, PAM_RHOST, display_name); - } - - return(status); -} - -/**************************************************************************** - * _DtAuthentication - * - * Authenticate that user / password combination is legal for this system - * - ****************************************************************************/ - -int _DtAuthentication ( char* prog_name, - char* display_name, - char* user_passwd, - char* user, - char* line ) -{ - int status; - char* line_str = line ? line : "NULL"; - char* line_dev = create_devname(line_str); - - if (!user_passwd) - /* Password challenge required for dtlogin authentication */ - return(PAM_AUTH_ERR); - - status = PamInit(prog_name, user, line_dev, display_name); - - if (status == PAM_SUCCESS) { - saved_user_passwd = user_passwd; - status = pam_authenticate( pamh, 0 ); - }; - - if (status != PAM_SUCCESS) { - if (pamh) { - pam_end(pamh, PAM_ABORT); - pamh=NULL; - } - } - - return(status); -} - -/**************************************************************************** - * _DtAccounting - * - * Work related to open and close of user sessions - ****************************************************************************/ - -int _DtAccounting( char* prog_name, - char* display_name, - char* entry_id, - char* user, - char* line, - pid_t pid, - int entry_type, - int exitcode ) -{ - int session_type, status; - char *line_str = line ? line : "NULL"; - char *line_dev = create_devname(line_str); - - /* Open PAM (Plugable Authentication module ) connection */ - - status = PamInit(prog_name, user, line_dev, display_name); - - /* Session accounting */ - - if (status == PAM_SUCCESS) switch(entry_type) { - case DEAD_PROCESS: - status = pam_close_session(pamh, 0); - break; - - case USER_PROCESS: - case LOGIN_PROCESS: - default: - status = pam_open_session(pamh, 0); - break; - } - - free(line_dev); - return(status); -} - -/**************************************************************************** - * _DtSetCred - * - * Set Users login credentials: uid, gid, and group lists - ****************************************************************************/ - -int _DtSetCred(char* prog_name, char* user, uid_t uid, gid_t gid) -{ - int cred_type, status; - - status = PamInit(prog_name, user, NULL, NULL); - - /* Set users credentials */ - - if (status == PAM_SUCCESS && setgid(gid) == -1) - status = DT_BAD_GID; - - if ((status == PAM_SUCCESS && - !user) || (initgroups(user, gid) == -1)) - status = DT_INITGROUP_FAIL; - - if (status == PAM_SUCCESS) - status = pam_setcred(pamh, PAM_ESTABLISH_CRED); - - if (status == PAM_SUCCESS && (setuid(uid) == -1)) - status = DT_BAD_UID; - - return(status); -} - -/*************************************************************************** - * create_devname - * - * A utility function. Takes short device name like "console" and returns - * a long device name like "/dev/console" - ***************************************************************************/ - -static char* create_devname(char* short_devname) -{ - char* long_devname; - - if (short_devname == NULL) - short_devname = ""; - - long_devname = (char *) malloc (strlen(short_devname) + 5); - - if (long_devname == NULL) - return(NULL); - - strcpy(long_devname,"/dev/"); - strcat(long_devname, short_devname); - - return(long_devname); -} - -/***************************************************************************** - * login_conv(): - * - * This is a conv (conversation) function called from the PAM - * authentication scheme. It returns the user's password when requested by - * internal PAM authentication modules and also logs any internal PAM error - * messages. - *****************************************************************************/ - -static int login_conv(int num_msg, const struct pam_message **msg, - struct pam_response **response, void *appdata_ptr) -{ - const struct pam_message *m; - struct pam_response *r; - char *temp; - int k; - -#ifdef lint - conv_id = conv_id; -#endif - if (num_msg <= 0) - return (PAM_CONV_ERR); - - *response = (struct pam_response*) - calloc(num_msg, sizeof (struct pam_response)); - if (*response == NULL) - return (PAM_CONV_ERR); - - (void) memset(*response, 0, sizeof (struct pam_response)); - - k = num_msg; - m = *msg; - r = *response; - while (k--) { - - switch (m->msg_style) { - - case PAM_PROMPT_ECHO_OFF: - if (saved_user_passwd != NULL) { - r->resp = (char *) malloc(strlen(saved_user_passwd)+1); - if (r->resp == NULL) { - /* __pam_free_resp(num_msg, *response); */ - *response = NULL; - return (PAM_CONV_ERR); - } - (void) strcpy(r->resp, saved_user_passwd); - r->resp_retcode=0; - } - - m++; - r++; - break; - - case PAM_ERROR_MSG: - m++; - r++; - break; - - case PAM_TEXT_INFO: - m++; - r++; - break; - - default: - break; - } - } - - return (PAM_SUCCESS); -} diff --git a/cde/lib/DtSvc/DtUtil2/SvcPam.c b/cde/lib/DtSvc/DtUtil2/SvcPam.c new file mode 100644 index 000000000..a2bc76bb5 --- /dev/null +++ b/cde/lib/DtSvc/DtUtil2/SvcPam.c @@ -0,0 +1,243 @@ +/* + * CDE - Common Desktop Environment + * + * Copyright (c) 1993-2012, The Open Group. All rights reserved. + * + * These libraries and programs are free software; you can + * redistribute them and/or modify them under the terms of the GNU + * Lesser General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * These libraries and programs are distributed in the hope that + * they will be useful, but WITHOUT ANY WARRANTY; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with these libraries and programs; if not, write + * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth + * Floor, Boston, MA 02110-1301 USA + */ + +/* + * Header Files + */ + +#include +#include +#include + +/* + * Local function declarations + */ + +static int login_conv(int num_msg, const struct pam_message **msg, + struct pam_response **response, void *appdata_ptr); + +/* + * Local structures and variables + */ + +static struct pam_conv pam_conv = {login_conv, NULL}; +static char *saved_user_passwd; +static pam_handle_t *pamh; + +static int PamStart(const char *service_name, const char *user, + const char *display_name) +{ + int status; + char *colon, *hostname; + + if (pamh) { + if (service_name) + status = pam_set_item(pamh, PAM_SERVICE, service_name); + + if (status != PAM_SUCCESS && user) pam_set_item(pamh, PAM_USER, user); + } + else { + status = pam_start(service_name, user, &pam_conv, &pamh); + } + + if (status != PAM_SUCCESS) goto done; + + if (!display_name) goto done; + + if (display_name[0] == ':') { + status = pam_set_item(pamh, PAM_TTY, display_name); + goto done; + } + + if (!(hostname = strdup(display_name))) { + status = PAM_BUF_ERR; + goto done; + } + + if (colon = strrchr(hostname, ':')) *colon = '\0'; + + status = pam_set_item(pamh, PAM_RHOST, hostname); + + free(hostname); + +done: + if (status != PAM_SUCCESS && pamh && pam_end(pamh, status) == PAM_SUCCESS) + pamh = NULL; + + return status; +} + +/** + * @brief Authenticate that user / password combination is legal for this + * system. + * + * @param service_name + * @param user + * @param display_name + * @param user_passwd + * + * @return See pam_authenticate. + */ +int _DtSvcPamAuthenticate(const char *service_name, const char *user, + const char *display_name, const char *user_passwd) +{ + int status; + + if (!user_passwd) return PAM_AUTH_ERR; + + if ((status = PamStart(service_name, user, display_name)) != PAM_SUCCESS) + return status; + + saved_user_passwd = (char *) user_passwd; + + return pam_authenticate(pamh, PAM_DISALLOW_NULL_AUTHTOK); +} + +/** + * @brief Start PAM session management. + * + * @param service_name + * @param user + * @param display_name + * + * @return See pam_open_session. + */ +int _DtSvcPamOpenSession(const char *service_name, const char *user, + const char *display_name) +{ + int status; + + if ((status = PamStart(service_name, user, display_name)) != PAM_SUCCESS) + return status; + + return pam_open_session(pamh, 0); +} + +/** + * @brief Terminate PAM session management. + * + * @param service_name + * @param user + * @param display_name + * + * @return See pam_close_session. + */ +int _DtSvcPamCloseSession(const char *service_name, const char *user, + const char *display_name) +{ + int status; + + if ((status = PamStart(service_name, user, display_name)) != PAM_SUCCESS) + return status; + + return pam_close_session(pamh, 0); +} + +/** + * @brief Set Users login credentials. + * + * @param service_name + * @param user + * @param display_name + * + * @return See pam_setcred. + */ +int _DtSvcPamSetcred(const char *service_name, const char *user, + const char *display_name) +{ + int status; + + if ((status = PamStart(service_name, user, display_name)) != PAM_SUCCESS) + return status; + + return pam_setcred(pamh, PAM_ESTABLISH_CRED); +} + +/***************************************************************************** + * login_conv(): + * + * This is a conv (conversation) function called from the PAM + * authentication scheme. It returns the user's password when requested by + * internal PAM authentication modules and also logs any internal PAM error + * messages. + *****************************************************************************/ + +static int login_conv(int num_msg, const struct pam_message **msg, + struct pam_response **response, void *appdata_ptr) +{ + const struct pam_message *m; + struct pam_response *r; + char *temp; + int k; + +#ifdef lint + conv_id = conv_id; +#endif + if (num_msg <= 0) + return (PAM_CONV_ERR); + + *response = (struct pam_response*) + calloc(num_msg, sizeof (struct pam_response)); + if (*response == NULL) + return (PAM_BUF_ERR); + + k = num_msg; + m = *msg; + r = *response; + while (k--) { + + switch (m->msg_style) { + + case PAM_PROMPT_ECHO_OFF: + if (saved_user_passwd != NULL) { + r->resp = (char *) malloc(strlen(saved_user_passwd)+1); + if (r->resp == NULL) { + /* __pam_free_resp(num_msg, *response); */ + *response = NULL; + return (PAM_BUF_ERR); + } + (void) strcpy(r->resp, saved_user_passwd); + r->resp_retcode=0; + } + + m++; + r++; + break; + + case PAM_ERROR_MSG: + m++; + r++; + break; + + case PAM_TEXT_INFO: + m++; + r++; + break; + + default: + break; + } + } + + return (PAM_SUCCESS); +} diff --git a/cde/lib/DtSvc/Makefile.am b/cde/lib/DtSvc/Makefile.am index 90aa72c73..f603a781e 100644 --- a/cde/lib/DtSvc/Makefile.am +++ b/cde/lib/DtSvc/Makefile.am @@ -172,3 +172,8 @@ libDtSvc_la_SOURCES = DtCodelibs/buf.C \ DtUtil2/Utility.c \ DtUtil2/XlationSvc.c \ DtUtil2/XmWrap.c + +if HAS_PAM_LIBRARY +libDtSvc_la_SOURCES += DtUtil2/SvcPam.c +libDtSvc_la_LIBADD = $(PAMLIB) +endif diff --git a/cde/lib/Makefile.am b/cde/lib/Makefile.am index 43ff6d236..c6890ecce 100644 --- a/cde/lib/Makefile.am +++ b/cde/lib/Makefile.am @@ -2,7 +2,3 @@ MAINTAINERCLEANFILES = Makefile.in SUBDIRS = DtXinerama tt DtSvc DtSearch DtWidget DtHelp DtPrint DtTerm \ DtMrm csa DtMmdb - -if HAS_PAM_LIBRARY -SUBDIRS += DtPamSvc -endif diff --git a/cde/programs/dtlogin/Makefile.am b/cde/programs/dtlogin/Makefile.am index d4ad631f9..b6f9ae587 100644 --- a/cde/programs/dtlogin/Makefile.am +++ b/cde/programs/dtlogin/Makefile.am @@ -2,14 +2,6 @@ SUBDIRS = config bin_PROGRAMS = dtlogin dtgreet dtchooser -if HAS_PAM_LIBRARY -PAM_LIB = -lpam -DTPAMSVCLIB = $(LIBPAMSVC) -else -PAM_LIB = -DTPAMSVCLIB = -endif - XDMDIR = $(CDE_LOGFILES_TOP) DEF_SERVER = $(XBINDIR)/X @@ -26,11 +18,11 @@ AM_CFLAGS = -DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\" \ -DXDMDIR=\"$(XDMDIR)\" \ -DKORNSHELL=$(KSH) -DUNIXCONN -DTCPCONN -DXDMCP -dtlogin_SOURCES = access.c account.c auth.c genauth.c daemon.c dm.c \ +dtlogin_SOURCES = access.c auth.c genauth.c daemon.c dm.c \ dpylist.c error.c file.c mitauth.c protodpy.c policy.c \ reset.c server.c session.c socket.c util.c \ verify.c sysauth.c fontpath.c qualify.c choose.c netaddr.c \ - xdmcp.c $(PAM_SRCS) + xdmcp.c # We play a game here with resources.o (dtlogin). It needs special options. noinst_LIBRARIES = libresource.a @@ -57,7 +49,7 @@ dtchooser_SOURCES = chooser.c dtchooser.c vglogo.c vgutil.c vgcallback.c \ vglang.c dtlogin_LDADD = libresource.a $(DTCLIENTLIBS) $(XDMCPLIB) \ - $(XTOOLLIB) $(TIRPCLIB) $(DTPAMSVCLIB) $(PAM_LIB) + $(XTOOLLIB) $(TIRPCLIB) dtgreet_LDADD = $(DTCLIENTLIBS) $(XTOOLLIB) diff --git a/cde/programs/dtlogin/account.c b/cde/programs/dtlogin/account.c deleted file mode 100644 index 6014333e6..000000000 --- a/cde/programs/dtlogin/account.c +++ /dev/null @@ -1,510 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: account.c /main/6 1996/10/30 11:12:13 drk $ */ -/* * - * (c) Copyright 1993, 1994 Hewlett-Packard Company * - * (c) Copyright 1993, 1994 International Business Machines Corp. * - * (c) Copyright 1993, 1994 Sun Microsystems, Inc. * - * (c) Copyright 1993, 1994 Novell, Inc. * - */ -/* - * account.c - * - * routines for handling accounting - * - * ex. utmp/wtmp/btmp, user-license restrictions, - * - */ - - -/*************************************************************************** - * - * Includes - * - ***************************************************************************/ - -#include -#include - -#ifdef AIXV3 -#include -#endif - -#include -#if defined (__FreeBSD__) || defined(HAS_PAM_LIBRARY) -#include -#else -#include -#endif - -#include -#include "dm.h" - -#ifdef __PASSWD_ETC -#include "rgy_base.h" -#endif - -#if defined(HAS_PAM_LIBRARY) -# include -#endif - -/*************************************************************************** - * - * External declarations - * - ***************************************************************************/ -#if defined(AIXV3) && !defined(_POWER) -extern void -GetLoginInfo(struct display *d, int *loginType, char *ttyName, char **hostname); -#endif - - - -/*************************************************************************** - * - * Procedure declarations - * - ***************************************************************************/ -#if defined(AIXV3) && !defined(_POWER) -void dt_lastlogin ( char * user, struct lastlogin * llogin); -#endif - - - - -/*************************************************************************** - * - * Global variables - * - ***************************************************************************/ - -#ifdef __PASSWD_ETC -struct rtmp { - char rt_line[8]; /* tty name */ - rgy_$login_name_t rt_name; /* user id (full SID) */ - char rt_host[16]; /* hostname, if remote */ - long rt_time; /* time on */ -}; -#endif - -#ifdef AIXV3 -struct lastlogin { - time_t ftime; - time_t stime; - int fcount; - char user[32]; - char *stty; - char *ftty; - char *shost; - char *fhost; -}; - - -static struct lastlogin last_login; -#endif - - - -/*************************************************************************** - * - * Account - * - * update utmp/wtmp files. - ***************************************************************************/ -void -Account( struct display *d, char *user, char *line, pid_t pid, -#if NeedWidePrototypes - int type, -#else - short type, -#endif /* NeedWidePrototypes */ - waitType exitcode ) -{ -#if !defined(CSRG_BASED) || defined(HAS_PAM_LIBRARY) -#ifdef HAS_PAM_LIBRARY - struct utmpx utmp; /* local struct for new entry */ - struct utmpx *u; /* pointer to entry in utmp file */ -#else - struct utmp utmp; /* local struct for new entry */ - struct utmp *u; /* pointer to entry in utmp file */ -#endif - int fd; - char buf[32]; - char* user_str = user ? user : "NULL"; - char* line_str = line ? line : "NULL"; - -#ifdef __PASSWD_ETC - struct rtmp rtmp; - struct rtmp *r; - int tty_slot; - int rtmp_fd; -#endif - - if (d->utmpId == NULL) return; - - switch (type) { - - case INIT_PROCESS: strcpy(buf, "INIT_PROCESS"); break; - case LOGIN_PROCESS: strcpy(buf, "LOGIN_PROCESS"); break; - case USER_PROCESS: strcpy(buf, "USER_PROCESS"); break; - case DEAD_PROCESS: strcpy(buf, "DEAD_PROCESS"); break; - default: strcpy(buf, "UNKNOWN"); break; - } - - Debug("Account: id=%s, user=%s, line=%s, pid=%d, type=%s\n", - d->utmpId, user_str, line_str, pid, buf); - -#ifdef PAM - PamAccounting("dtlogin", d->name, d->utmpId, user, - line, pid, type, exitcode); -#elif defined(HAS_PAM_LIBRARY) - _DtAccounting("dtlogin", d->name, d->utmpId, user, - line, pid, type, exitcode); -#else -# ifdef SUNAUTH - solaris_accounting("dtlogin", d->name, d->utmpId, user, - line, pid, type, exitcode); -# endif -#endif - -#ifdef sun - return; -#else -#ifdef HAS_PAM_LIBRARY - bzero(&utmp, sizeof(struct utmpx)); -#else - bzero(&utmp, sizeof(struct utmp)); -#endif - - strncpy(utmp.ut_id, d->utmpId, sizeof(u->ut_id) - 1); - utmp.ut_type = LOGIN_PROCESS; - -#ifdef HAS_PAM_LIBRARY - setutxent(); - if ( (u = getutxid(&utmp)) == NULL ) u = &utmp; -#else - setutent(); - if ( (u = getutid(&utmp)) == NULL ) u = &utmp; -#endif - - /* - * make sure process ID's match if this is DEAD_PROCESS... - * don't update an already DEAD_PROCESS... - */ - - if ((type == DEAD_PROCESS && pid != 0 && u->ut_pid != pid) || - (type == DEAD_PROCESS && u->ut_type == DEAD_PROCESS) ) { - -#ifdef HAS_PAM_LIBRARY - endutxent(); -#else - endutent(); -#endif - return; - } - - - /* - * fill in required fields of utmp structure... - * - * Note: for USER_PRCESS the "e_exit" field is overloaded to contain - * the method for counting this user. This is used later to - * determine if restricted user licenses have been exceeded. - * Currently, an unlimited number of foreign displays can log in. - */ - - if (user) snprintf(u->ut_user, sizeof(u->ut_user), "%s", user); - if (line) { -#ifdef _AIX -/* - For AIX the Init process writes the exact mapped device name for console - to the utmp file (like hft/0), if a getty on /dev/console record exists - in the Inittab file.Hitherto, we need to have a similar logic to make - sure for having the correct entry in the utmp file in order for the correct - operation of the GettyRunning function. It should be noted that by having - the correct value in the d->gettyLine field, the utmp file eventuallly - updated by the Account function in dm.c will have the right value. And - thus the GettyRunning function returns the appropriate value. So, it - is important that the following logic be included here for AIX platform - only. - Raghu Krovvidi 07.06.93 - */ - - if (!strcmp(line,"console")) { - char *ttynm; - int fd=0; - - fd = open("/dev/console",O_RDONLY); - ttynm = ttyname(fd); - ttynm += 5; - strcpy(u->ut_line,ttynm); - close(fd); - } - else - snprintf(u->ut_line, sizeof(u->ut_line), "%s", line); - -#else - snprintf(u->ut_line, sizeof(u->ut_line), "%s", line); -#endif - } - if (pid ) u->ut_pid = pid; - if (type) { - u->ut_type = type; - if (type == DEAD_PROCESS) { -#ifndef HAS_PAM_LIBRARY - u->ut_exit.e_termination = waitSig(exitcode); - u->ut_exit.e_exit = waitCode(exitcode); -#endif -#ifndef SVR4 - (void) memset((char *) u->ut_host, '\0', sizeof(u->ut_host)); -#endif - } - - if (type == LOGIN_PROCESS && d->displayType.location != Local ) { -#ifndef SVR4 - snprintf(u->ut_host, sizeof(u->ut_host), "%s", d->name); -#endif - } - -#ifndef HAS_PAM_LIBRARY - if (type == USER_PROCESS) - u->ut_exit.e_exit = (d->displayType.location == Local ? 1 : 0 ); -#endif - } - -#ifdef HAS_PAM_LIBRARY - { - struct timeval tmp_tv; - (void) gettimeofday(&tmp_tv, NULL); - u->ut_tv.tv_sec = (int32_t)tmp_tv.tv_sec; - u->ut_tv.tv_usec = (int32_t)tmp_tv.tv_usec; - } -#else - (void) time(&u->ut_time); -#endif - - /* - * write to utmp... - * - * (Do not close utmp yet. If "u" points to the static structure, it is - * cleared upon close. This does not bode well for the following write - * to wtmp!) - */ - -#ifdef HAS_PAM_LIBRARY - pututxline(u); -#else - pututline(u); -#endif - - -#ifndef HAS_PAM_LIBRARY - /* - * write the same entry to wtmp... - */ - - if ((fd = open(WTMP_FILE, O_WRONLY | O_APPEND)) >= 0) { - if(-1 == write(fd, u, sizeof(utmp))) { - perror(strerror(errno)); - } - close(fd); - } - - - /* - * close utmp... - */ - - endutent(); -#else - endutxent(); -#endif - -#ifdef __PASSWD_ETC - /* Now fill in the "rgy utmp" struct */ - if (line) strncpy(rtmp.rt_line, u->ut_line, sizeof(u->ut_line)); - bzero(rtmp.rt_host, sizeof(rtmp.rt_host)); - rtmp.rt_time = u->ut_time; - r = &rtmp; - - /* Write entry to rtmp */ - tty_slot = ttyslot(); - - if (tty_slot > 0 && (rtmp_fd = open("/etc/rtmp", O_WRONLY|O_CREAT, 0644)) >= 0) { - lseek(rtmp_fd, (long) (tty_slot * sizeof(struct rtmp)), 0); - write(rtmp_fd, (char *) r, sizeof(struct rtmp)); - close(rtmp_fd); - } -#endif -#if defined(AIXV3) && !defined(_POWER) - /* Log the lastlogin data .. RK 09.13.93 */ - /** in AIX 4.1 this is taken care of during authentication **/ - if(type == USER_PROCESS) { - int loginType; - char tempTtyName[128]; - char *hostname; - - GetLoginInfo(d, &loginType, tempTtyName, &hostname); - time(&last_login.stime); - - if(line) { - Debug("tty_last_login is (line=%s)\n",line); - last_login.stty = (char *)malloc(strlen(line) + 1); - strcpy(last_login.stty,line); - } else { - last_login.stty = (char *)malloc(strlen(tempTtyName) + 1); - strcpy(last_login.stty,tempTtyName); - } - - last_login.shost = (char *) malloc (MAXHOSTNAMELEN); - if (hostname == NULL) { - gethostname (last_login.shost , MAXHOSTNAMELEN); - } else { - strncpy(last_login.shost, hostname, MAXHOSTNAMELEN); - last_login.shost[MAXHOSTNAMELEN -1] = '\0'; - } - - Debug("logging lastlogin entry (user=%s)\n",user); - dt_lastlogin(user,&last_login); - free(last_login.stty); - free(last_login.shost); - } -#endif - -#endif /* !sun */ -#endif /* !CSRG_BASED */ -} - - - - -/*************************************************************************** - * - * UtmpIdOpen - * - * see if a particular utmp ID is available - * - * return codes: 0 = ID is in use - * 1 = ID is open - ***************************************************************************/ - -int -UtmpIdOpen( char *utmpId ) -{ - int status = 1; /* return code */ - -#if !defined(CSRG_BASED) || defined(HAS_PAM_LIBRARY) -#ifdef HAS_PAM_LIBRARY - struct utmpx *u; /* pointer to entry in utmp file */ - - while ( (u = getutxent()) != NULL ) { -#else - struct utmp *u; /* pointer to entry in utmp file */ - - while ( (u = getutent()) != NULL ) { -#endif - - if ( (strncmp(u->ut_id, utmpId, 4) == 0 ) && - u->ut_type != DEAD_PROCESS ) { - - status = 0; - break; - } - } - -#ifdef HAS_PAM_LIBRARY - endutxent(); -#else - endutent(); -#endif -#endif - return (status); -} - - - -#if defined(AIXV3) && !defined(_POWER) -void dt_lastlogin ( user, llogin) -char * user; -struct lastlogin * llogin; -{ - char *tmp_char; - char *tmp_int; - /* - * We are loading all the lastlogin info into a struct and then dealing - * with that so if the technique of storing the values is redone it - * will be easy - */ - /* set id back to root */ - seteuid(0); - /* - * Open up the user data base - */ - setuserdb(S_READ | S_WRITE); - - /* - * setting new unsuccessful login attempts times - */ - if (llogin->ftime) { - /* - * Get the old Failure count and increment it - */ - if (getuserattr(user, S_ULOGCNT, &tmp_int, SEC_INT) != 0) - llogin->fcount = 0; - else - llogin->fcount = (int)tmp_int; - - /* - * put all the new data - */ - putuserattr(user, S_ULASTTTY, llogin->ftty, SEC_CHAR); - llogin->fcount++; - putuserattr(user, S_ULOGCNT, (void *)llogin->fcount, - SEC_INT); - putuserattr(user, S_ULASTTIME, (void *)llogin->ftime, - SEC_INT); - putuserattr(user, S_ULASTHOST, llogin->fhost, SEC_CHAR); - putuserattr(user, NULL, NULL, SEC_COMMIT); - - /* - * Close data base and zero out indicator fields - */ - llogin->ftime = 0; - llogin->fcount = 0; - } - - /* - * New Successful login data - */ - if (llogin->stime) { - putuserattr(user, S_LASTTIME, (void *)llogin->stime, - SEC_INT); - putuserattr(user, S_LASTTTY, llogin->stty, SEC_CHAR); - Debug("hostname logged is %s\n",llogin->shost); - putuserattr(user, S_LASTHOST, llogin->shost, SEC_CHAR); - putuserattr(user, S_ULOGCNT, 0, SEC_INT); - putuserattr(user, NULL, NULL, SEC_COMMIT); - } - enduserdb(); -} -#endif diff --git a/cde/programs/dtlogin/config/Makefile.am b/cde/programs/dtlogin/config/Makefile.am index dd52791c3..d13e09161 100644 --- a/cde/programs/dtlogin/config/Makefile.am +++ b/cde/programs/dtlogin/config/Makefile.am @@ -16,8 +16,8 @@ CPP_TARGETS = 0060.dtsysenv Dtlogin Xaccess Xconfig Xconfig.con \ if HAS_PAM_LIBRARY -CPP_TARGETS += pam/dtlogin -dist_pam_DATA = pam/dtlogin +CPP_TARGETS += dtlogin +dist_pam_DATA = dtlogin if FREEBSD pamdir = /usr/local/etc/pam.d PAM_AUTHENTICATION_MODULE = /usr/local/lib/security/pam_pwauth_suid.so @@ -55,6 +55,16 @@ if BSD AM_CPPFLAGS += -DCSRG_BASED endif +AM_CPPFLAGS += -DSESSREG=$(SESSREG) + +if SET_UTMP_FILE +AM_CPPFLAGS += -DUTMP_FLAG="-u\ $(UTMP_FILE)" +endif + +if SET_WTMP_FILE +AM_CPPFLAGS += -DWTMP_FLAG="-w\ $(WTMP_FILE)" +endif + BUILT_SOURCES = $(CPP_TARGETS) CLEANFILES = $(CPP_TARGETS) @@ -168,7 +178,6 @@ home.session: home.session.src $(RM) $@ $(GENCPP) -P -DXCOMM=# $(AM_CPPFLAGS) $< > $@ -pam/dtlogin: pam/dtlogin.src +dtlogin: dtlogin.src $(RM) $@ $(GENCPP) -P -DXCOMM=# $(AM_CPPFLAGS) $< > $@ - diff --git a/cde/programs/dtlogin/config/Xreset.src b/cde/programs/dtlogin/config/Xreset.src index c8e1bb6ae..f39c2e723 100644 --- a/cde/programs/dtlogin/config/Xreset.src +++ b/cde/programs/dtlogin/config/Xreset.src @@ -74,3 +74,17 @@ then /bin/rm -f $DTDBFILE fi fi + +#ifdef WTMP_FLAG +wtmp_flag=WTMP_FLAG +#else +wtmp_flag='' +#endif + +#ifdef UTMP_FLAG +utmp_flag=UTMP_FLAG +#else +utmp_flag='' +#endif + +SESSREG -d $wtmp_flag $utmp_flag -l $DISPLAY $USER diff --git a/cde/programs/dtlogin/config/Xstartup.src b/cde/programs/dtlogin/config/Xstartup.src index 3953fc94b..60fc0c36d 100644 --- a/cde/programs/dtlogin/config/Xstartup.src +++ b/cde/programs/dtlogin/config/Xstartup.src @@ -66,5 +66,16 @@ then fi fi +#ifdef WTMP_FLAG +wtmp_flag=WTMP_FLAG +#else +wtmp_flag='' +#endif - +#ifdef UTMP_FLAG +utmp_flag=UTMP_FLAG +#else +utmp_flag='' +#endif + +exec SESSREG -a $wtmp_flag $utmp_flag -l $DISPLAY $USER diff --git a/cde/programs/dtlogin/config/pam/dtlogin.src b/cde/programs/dtlogin/config/dtlogin.src similarity index 100% rename from cde/programs/dtlogin/config/pam/dtlogin.src rename to cde/programs/dtlogin/config/dtlogin.src diff --git a/cde/programs/dtlogin/dm.c b/cde/programs/dtlogin/dm.c index 45e228c3e..7e6d86eab 100644 --- a/cde/programs/dtlogin/dm.c +++ b/cde/programs/dtlogin/dm.c @@ -54,11 +54,6 @@ # include # include # include -#if defined(__FreeBSD__) -# include -#else -# include -#endif # include # include # include @@ -123,7 +118,7 @@ struct passwd puser; /* pseudo-user password entry */ int Rescan; static long ServersModTime, ConfigModTime, AccessFileModTime; int wakeupTime = -1; -char *progName; +char *progPath, *progName; char DisplayName[32]="main"; @@ -147,6 +142,7 @@ void RunChooser(struct display *d); // RunChooser.c int main( int argc, char **argv ) { + char *str; long oldpid; mode_t oldumask; struct passwd *p; /* pointer to passwd structure (pwd.h) */ @@ -166,11 +162,29 @@ main( int argc, char **argv ) /* * save program name and path... */ - - if ( (progName = malloc(strlen(argv[0]) + 1)) != NULL ) - strcpy(progName, argv[0]); - + progPath = strdup(argv[0]); + + if (str = strrchr(progPath, '/')) + { + if (strlen(str) < 2) + { + fprintf(stderr, (char *) + ReadCatalog(MC_ERROR_SET, MC_NO_MEMORY, MC_DEF_NO_MEMORY), + argv[0]); + exit (1); + } + + progName = strdup(++str); + *str = '\0'; + } + else + { + progName = progPath; + progPath = strdup("./"); + } + + /* * Step 1 - load configuration parameters */ @@ -579,14 +593,6 @@ ProcessChildDeath( int pid, waitType status ) if ( (d = FindDisplayByPid (pid)) != 0 ) { d->pid = -1; - /* - * do process accounting... - */ - -#if !defined(CSRG_BASED) - Account(d, NULL, NULL, pid, DEAD_PROCESS, status); -#endif - /* * make sure authorization file is deleted... @@ -714,14 +720,6 @@ ProcessChildDeath( int pid, waitType status ) { d->serverPid = -1; - /* - * do process accounting... - */ - -#if !defined(CSRG_BASED) - Account(d, NULL, NULL, pid, DEAD_PROCESS, status); -#endif - switch (d->status) { case zombie: @@ -894,43 +892,6 @@ StartDisplay( kill (d->serverPid, d->resetSignal); } - /* - * initialize d->utmpId. Check to see if anyone else is using - * the requested ID. Always allow the first request for "dt" to - * succeed as utmp may have become corrupted. - */ - - if (d->utmpId == NULL) { - static int firsttime = 1; - static char letters[] = "0123456789abcdefghijklmnopqrstuvwxyzz"; - char *t; - - d->utmpId = malloc(5); - strcpy(d->utmpId, UTMPREC_PREFIX); - d->utmpId[4] = '\0'; - - t = letters; - - do { - if ( firsttime || UtmpIdOpen(d->utmpId)) { - firsttime = 0; - break; - } - else { - strncpy(&(d->utmpId[strlen(d->utmpId)]), t++, 1); - } - } while (*t != '\0'); - - if (*t == '\0') { - Debug ("All DT utmp IDs already in use. Removing display %s\n", - d->name); - LogError ((unsigned char *)"All DT utmp IDs already in use. Removing display %s\n", - d->name); - RemoveDisplay(d); - return 0; - } - } - /* * set d->gettyLine to "console" for display ":0" if it is not * already set... @@ -1009,46 +970,6 @@ StartDisplay( /* this will only happen when using XDMCP */ if (d->authorizations) SaveServerAuthorizations (d, d->authorizations, d->authNum); - - /* - * Generate a utmp ID address for a foreign display. Use the last - * four characters of the DISPLAY name, shifting left if they - * are already in use... - */ - -#if !defined(CSRG_BASED) - if (d->utmpId == NULL) { - int i; - char *p, *q; - struct utmp *u; - - d->utmpId = malloc(sizeof(u->ut_id) +1); - - i = strlen (d->name); - if (i >= sizeof (u->ut_id)) - i -= sizeof (u->ut_id); - else - i = 0; - - for ( p = d->name, q = d->name + i; p <= q; q-- ) { - (void) strncpy (d->utmpId, q, sizeof (u->ut_id)); - d->utmpId[sizeof(u->ut_id)] = '\0'; - if (UtmpIdOpen(d->utmpId)) - break; - } - -#ifdef DEF_NETWORK_DEV - /* - * If "networkDev" does not start with "/dev/" then foreign - * accounting is turned off. Return utmpId to NULL. - */ - if (networkDev && strncmp(networkDev,"/dev/",5) !=0 ) { - free(d->utmpId); - d->utmpId = NULL; - } -#endif - } -#endif } if (NULL == d->authFile) @@ -1137,9 +1058,6 @@ StartDisplay( devname,line); } } -#endif -#if !defined(CSRG_BASED) - Account(d, "LOGIN", line, getpid(), LOGIN_PROCESS, status); #endif } @@ -1234,10 +1152,6 @@ StopDisplay( struct display *d ) } else if ((d->displayType.location == Local) || !dt_shutdown ) { - /* don't remove the console */ -#if !defined(CSRG_BASED) - Account(d, NULL, NULL, 0, DEAD_PROCESS, status); -#endif RemoveDisplay (d); } } @@ -1505,13 +1419,6 @@ StartGetty( struct display *d ) case 0: CleanUpChild (); - /* - * do process accounting... - */ -#if !defined(CSRG_BASED) - Account(d, "LOGIN", NULL, getpid(), LOGIN_PROCESS, status); -#endif - #ifdef _AIX /* The tty argument for getty on AIX must be of the form "/dev/any tty" @@ -1646,101 +1553,7 @@ GettyMessage( struct display *d, int msgnum ) int GettyRunning( struct display *d ) { -#if defined(__FreeBSD__) - struct utmpx utmp; /* local struct for new entry */ - struct utmpx *u; /* pointer to entry in utmp file */ -#else - struct utmp utmp; /* local struct for new entry */ - struct utmp *u; /* pointer to entry in utmp file */ -#endif - - int rvalue; /* return value (TRUE or FALSE) */ - char buf[32]; - - d->gettyState = DM_GETTY_NONE; - - /* - * check to see if we have a valid device (at least a non-null name)... - */ - - if ( d->gettyLine && - (strlen(d->gettyLine) > 0) && - (strcmp(d->gettyLine,"??") != 0) ) - ; - else - return FALSE; - - -#if defined(__FreeBSD__) - bzero(&utmp, sizeof(struct utmpx)); -#else - bzero(&utmp, sizeof(struct utmp)); -#endif - -#ifdef _AIX - if (!strcmp(d->gettyLine,"console")) { - char *ttynm; - int fd=0; - - fd = open("/dev/console",O_RDONLY); - ttynm = ttyname(fd); - ttynm += 5; - strcpy(utmp.ut_line,ttynm); - close(fd); - } - else - { - strncpy(utmp.ut_line, d->gettyLine, sizeof(utmp.ut_line) - 1); - utmp.ut_line[sizeof(utmp.ut_line) - 1] = 0; - } - -#else - strncpy(utmp.ut_line, d->gettyLine, sizeof(utmp.ut_line) - 1); - utmp.ut_line[sizeof(utmp.ut_line) - 1] = 0; -#endif - - Debug("Checking for a getty on line %s.\n", utmp.ut_line); - -#if !defined(CSRG_BASED) - setutent(); - - rvalue = FALSE; - - while ( (u = getutent()) != NULL ) { - - if ((strncmp(u->ut_line, utmp.ut_line, sizeof(u->ut_line)) != 0) || - (strncmp(u->ut_id, d->utmpId, sizeof(u->ut_id)) == 0) ) - continue; - - switch (u->ut_type) { - - case INIT_PROCESS: strcpy(buf, "INIT_PROCESS"); break; - case LOGIN_PROCESS: strcpy(buf, "LOGIN_PROCESS"); break; - case USER_PROCESS: strcpy(buf, "USER_PROCESS"); break; - case DEAD_PROCESS: strcpy(buf, "DEAD_PROCESS"); break; - default: strcpy(buf, "UNKNOWN"); break; - } - - Debug("Utmp info: id=%.4s, user=%s, line=%s, pid=%d, type=%s\n", - u->ut_id, u->ut_user, u->ut_line, u->ut_pid, buf); - - if ( u->ut_type == INIT_PROCESS || u->ut_type == LOGIN_PROCESS) { - d->gettyState = DM_GETTY_LOGIN; - } - else if (wakeupTime <= 0 && u->ut_type == USER_PROCESS) { - d->gettyState = DM_GETTY_USER; - } - - if (d->gettyState != DM_GETTY_NONE) - { - rvalue = TRUE; - break; - } - } - - endutent(); -#endif /* !CSRG_BASED */ - return rvalue; + return FALSE; } diff --git a/cde/programs/dtlogin/fontpath.c b/cde/programs/dtlogin/fontpath.c index 591c7fe6d..5be455023 100644 --- a/cde/programs/dtlogin/fontpath.c +++ b/cde/programs/dtlogin/fontpath.c @@ -39,11 +39,6 @@ # include # include # include -#if defined(__FreeBSD__) -# include -#else -# include -#endif # include "vgproto.h" /* diff --git a/cde/programs/dtlogin/session.c b/cde/programs/dtlogin/session.c index c7bb5fb4b..4dc3b7da1 100644 --- a/cde/programs/dtlogin/session.c +++ b/cde/programs/dtlogin/session.c @@ -67,11 +67,6 @@ # include # include # include -#if defined(__FreeBSD__) || defined(HAS_PAM_LIBRARY) -# include -#else -# include -#endif #include #include #include @@ -104,7 +99,8 @@ #endif #ifdef HAS_PAM_LIBRARY -#include
+#include +#include
#endif int ApplyFontPathMods(struct display *d, Display *dpy); // fontpath.c @@ -170,7 +166,8 @@ struct greet_state { }; char *globalDisplayName; -extern char *progName; /* Global argv[0]; dtlogin name and path */ +extern char *progPath; /* dtlogin path */ +extern char *progName; /* dtlogin name */ /*************************************************************************** * @@ -314,9 +311,10 @@ SessionPingFailed( struct display *d ) #endif #if !defined(sun) && defined(HAS_PAM_LIBRARY) - Account(d, user, NULL, clientPid, DEAD_PROCESS, 0); + _DtSvcPamCloseSession(progName, user, d->name); #endif } + SessionExit (d, RESERVER_DISPLAY); } @@ -639,7 +637,7 @@ ManageSession( struct display *d ) #endif #if !defined(sun) && defined(HAS_PAM_LIBRARY) - Account(d, user, NULL, clientPid, DEAD_PROCESS, 0); + _DtSvcPamCloseSession(progName, user, d->name); #endif SessionExit (d, OBEYSESS_DISPLAY); @@ -1186,6 +1184,8 @@ StartClient( struct verify_info *verify, struct display *d, int *pidp ) long ngroups, groups[NGROUPS]; #endif /* __AFS */ + gid_t gid; + if (verify->argv) { Debug ("StartSession %s: ", verify->argv[0]); for (f = verify->argv; *f; f++) { @@ -1267,8 +1267,8 @@ StartClient( struct verify_info *verify, struct display *d, int *pidp ) } #endif -#if !defined(sun) && (!defined(CSRG_BASED) || defined(HAS_PAM_LIBRARY)) - Account(d, user, NULL, getpid(), USER_PROCESS, 0); +#if !defined(sun) && defined(HAS_PAM_LIBRARY) + _DtSvcPamOpenSession(progName, user, d->name); #endif #ifdef AIXV3 @@ -1350,16 +1350,32 @@ StartClient( struct verify_info *verify, struct display *d, int *pidp ) return(0); } #elif defined(HAS_PAM_LIBRARY) - char *prog_name = strrchr(progName, '/'); - if (!prog_name || _DtSetCred(prog_name + 1, user, verify->uid, #ifdef NGROUPS - verify->groups[0] + gid = verify->groups[0]; #else - verify->gid + gid = verify->gid; #endif - ) > 0 ) { - Debug("Can't set User's Credentials (user=%s)\n",user); - return(0); + + if (setgid(gid) == -1) { + Debug("setgid %d (user \"%s\") failed: %s\n", + gid, user, strerror(errno)); + return 0; + } + + if (initgroups(user, gid) == -1) { + Debug("initgroups for \"%s\" failed: %s\n", user, strerror(errno)); + return 0; + } + + if (setuid(verify->uid) == -1) { + Debug("setuid %d (user \"%s\") failed: %s\n", + verify->uid, user, strerror(errno)); + return 0; + } + + if (_DtSvcPamSetcred(progName, user, d->name) != PAM_SUCCESS) { + Debug("Can't set User's Credentials (user=%s)\n",user); + return 0; } #endif @@ -2010,13 +2026,7 @@ RunGreeter( struct display *d, struct greet_info *greet, * figure out path to dtgreet... */ - snprintf(msg, sizeof(msg), "%s", progName); - - if ((p = (char *) strrchr(msg, '/')) == NULL) - strcpy(msg,"./"); - else - *(++p) = '\0'; - + snprintf(msg, sizeof(msg), "%s", progPath); strcat(msg,"dtgreet"); execle(msg, "dtgreet", "-display", d->name, (char *)0, env); diff --git a/cde/programs/dtlogin/sysauth.c b/cde/programs/dtlogin/sysauth.c index 59c476a70..749a84a89 100644 --- a/cde/programs/dtlogin/sysauth.c +++ b/cde/programs/dtlogin/sysauth.c @@ -79,7 +79,11 @@ #if defined(PAM) || defined(HAS_PAM_LIBRARY) #include +#ifdef PAM #include "pam_svc.h" +#else +#include
+#endif #endif #ifdef _AIX @@ -175,6 +179,8 @@ Audit( struct passwd *p, char *msg, int errnum ) int Authenticate( struct display *d, char *name, char *passwd, char **msg ) { + extern char *progName; + int status; char* ttyLine = d->gettyLine; @@ -208,13 +214,11 @@ Authenticate( struct display *d, char *name, char *passwd, char **msg ) */ #if defined(PAM) || defined(HAS_PAM_LIBRARY) - status = #ifdef PAM - PamAuthenticate + status = PamAuthenticate("dtlogin", d->name, passwd, name, ttyLine); #else - _DtAuthentication + status = _DtSvcPamAuthenticate(progName, name, d->name, passwd); #endif - ("dtlogin", d->name, passwd, name, ttyLine); switch(status) { case PAM_SUCCESS: diff --git a/cde/programs/dtlogin/vgmain.c b/cde/programs/dtlogin/vgmain.c index 53b26a017..0998fc113 100644 --- a/cde/programs/dtlogin/vgmain.c +++ b/cde/programs/dtlogin/vgmain.c @@ -1903,6 +1903,7 @@ if ( session_menu != NULL ) { } +#if 0 /* * [ No Windows ] menu pane... */ @@ -1920,6 +1921,7 @@ if ( session_menu != NULL ) { if (getenv(LOCATION) == NULL || strcmp(getenv(LOCATION), "local") != 0 ) XtSetSensitive(options_item[j], False); j++; +#endif /* diff --git a/cde/programs/dtsession/SmLock.c b/cde/programs/dtsession/SmLock.c index a8c476fe5..c644f153c 100644 --- a/cde/programs/dtsession/SmLock.c +++ b/cde/programs/dtsession/SmLock.c @@ -86,7 +86,8 @@ #endif #ifdef HAS_PAM_LIBRARY -#include
+#include +#include
#endif #include "Sm.h" @@ -1622,7 +1623,8 @@ localAuthenticate( if (!(service = strrchr(smGD.programName, '/'))) return False; - return !_DtAuthentication(service + 1, NULL, passwd, pwent->pw_name, NULL); + return _DtSvcPamAuthenticate(service + 1, pwent->pw_name, NULL, passwd) == + PAM_SUCCESS; } #elif defined(SIA) diff --git a/cde/programs/dtsession/config/Makefile.am b/cde/programs/dtsession/config/Makefile.am index 392a60547..dc597d585 100644 --- a/cde/programs/dtsession/config/Makefile.am +++ b/cde/programs/dtsession/config/Makefile.am @@ -1,7 +1,7 @@ MAINTAINERCLEANFILES = Makefile.in if HAS_PAM_LIBRARY -CPP_TARGET = pam/dtsession +CPP_TARGET = dtsession dist_pam_DATA = $(CPP_TARGET) if FREEBSD pamdir = /usr/local/etc/pam.d @@ -19,6 +19,6 @@ endif BUILT_SOURCES = $(CPP_TARGET) CLEANFILES = $(CPP_TARGET) -pam/dtsession: pam/dtsession.src +dtsession: dtsession.src $(RM) $@ $(GENCPP) -P -DXCOMM=# $(AM_CPPFLAGS) $< > $@ diff --git a/cde/programs/dtsession/config/pam/dtsession.src b/cde/programs/dtsession/config/dtsession.src similarity index 100% rename from cde/programs/dtsession/config/pam/dtsession.src rename to cde/programs/dtsession/config/dtsession.src From b979a073dfbf61f4f18129ea840385b733816962 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Tue, 28 Mar 2023 02:16:17 +0000 Subject: [PATCH 24/47] dtwm: fix a segfault. --- cde/programs/dtwm/WmProperty.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cde/programs/dtwm/WmProperty.c b/cde/programs/dtwm/WmProperty.c index dd88dffc8..edbadb95c 100644 --- a/cde/programs/dtwm/WmProperty.c +++ b/cde/programs/dtwm/WmProperty.c @@ -38,6 +38,7 @@ #include "WmICCC.h" #include #include +#include #include
#include #include @@ -1954,18 +1955,20 @@ void UpdateNetWmState (Window window, Atom *states, unsigned long nstates, { int i, j, actualFormat; unsigned long nold, leftover; - Atom actualType, *oldStates, *newStates; + Atom actualType; unsigned long nnew = 0; Atom type = wmGD.xa__NET_WM_STATE; + Atom *oldStates = NULL; + Atom *newStates = NULL; + + if (!states) nstates = 0; if (!(XGetWindowProperty (DISPLAY, window, type, 0L, 1000000L, False, XA_ATOM, &actualType, &actualFormat, &nold, &leftover, (unsigned char **) &oldStates) == Success && actualType == XA_ATOM)) nold = 0; - if (!(states && nstates) && nold) goto done; - - newStates = malloc ((nstates + nold) * sizeof (Atom)); + newStates = malloc ((1 + nstates + nold) * sizeof (Atom)); if (!newStates) goto done; From ece21debbbb3c373236f5309df33f5961d2940d1 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 1 Apr 2023 14:48:13 -0600 Subject: [PATCH 25/47] .gitignore: add new locations of dtsession/dtlogin PAM files --- cde/.gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cde/.gitignore b/cde/.gitignore index f76c859d1..74db1f2bf 100644 --- a/cde/.gitignore +++ b/cde/.gitignore @@ -52,7 +52,7 @@ programs/dtimsstart/dtimsstart programs/dtlogin/dtchooser programs/dtlogin/dtgreet programs/dtlogin/dtlogin -programs/dtlogin/config/pam/dtlogin +programs/dtlogin/config/dtlogin programs/dtmail/dtmail/dtmail programs/dtmail/dtmailpr/dtmailpr programs/dtpad/dtpad @@ -69,7 +69,7 @@ programs/dtsession/Dtsession programs/dtsession/dtloadresources programs/dtsession/dtsession programs/dtsession/dtsession_res -programs/dtsession/config/pam/dtsession +programs/dtsession/config/dtsession programs/dtspcd/dtspcd programs/dtspcd/dtspcdenv programs/dtsr/dtsrclean From 549b759c6669db1f6703dce36bda9e1d8dd7dec7 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Sun, 11 Jun 2023 05:51:29 +0000 Subject: [PATCH 26/47] dtstyle: make the style manager recognize wheel mouse correctly. --- cde/programs/dtstyle/Mouse.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cde/programs/dtstyle/Mouse.c b/cde/programs/dtstyle/Mouse.c index 98f099116..6c61eea8a 100644 --- a/cde/programs/dtstyle/Mouse.c +++ b/cde/programs/dtstyle/Mouse.c @@ -318,10 +318,8 @@ build_mouseDialog( Widget shell ) nmap); if ( mouse.numButtons == 2 ) mouse.type = POINTER2B; - else if ( mouse.numButtons == 3 || mouse.numButtons == 5 ) - mouse.type = POINTER3B; else - mouse.type = 99; + mouse.type = POINTER3B; /* choose a bitmap based on button mapping * * and number of buttons */ @@ -1304,8 +1302,6 @@ reverseToggleCB( mouse.pixmapSel = mouse.b3_revSel; for(i = 0, j = 3; i < 3; i++, j--) mouse.new_map_return[i] = j; - mouse.new_map_return[3] = 5; - mouse.new_map_return[4] = 4; } else { @@ -1316,8 +1312,6 @@ reverseToggleCB( mouse.pixmapSel = mouse.b3Sel; for(i = 0, j = 1; i < 3; i++, j++) mouse.new_map_return[i] = j; - mouse.new_map_return[3] = 4; - mouse.new_map_return[4] = 5; } } else /* 2B mouse */ From b57754681962ecb5760a6fe8e50f823f4482a32c Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Mon, 12 Jun 2023 09:43:40 +0000 Subject: [PATCH 27/47] tt: make the ttserver process events properly. --- cde/lib/tt/lib/mp/mp_desktop.C | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cde/lib/tt/lib/mp/mp_desktop.C b/cde/lib/tt/lib/mp/mp_desktop.C index ae83f90b9..8e1529a15 100644 --- a/cde/lib/tt/lib/mp/mp_desktop.C +++ b/cde/lib/tt/lib/mp/mp_desktop.C @@ -257,9 +257,7 @@ process_event() } set_error_handler(_Tt_desktop::io_error_proc); - if (0 == sigsetjmp(io_exception, 1)) { - CALLX11(XFlush)(priv->xd); - } else { + if (0 != sigsetjmp(io_exception, 1)) { priv->xd = (Display *)0; ret_val = 0; } From 615d9a390761d13606c34f9f168f56ba7bc56fc6 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Wed, 16 Aug 2023 23:18:47 -0400 Subject: [PATCH 28/47] dtsession: fix a crash. --- cde/programs/dtsession/SmGlobals.c | 2 +- cde/programs/dtwm/WmXSMP.c | 70 ++++++++++++++++++++---------- 2 files changed, 48 insertions(+), 24 deletions(-) diff --git a/cde/programs/dtsession/SmGlobals.c b/cde/programs/dtsession/SmGlobals.c index f6817da7a..cddd061b1 100644 --- a/cde/programs/dtsession/SmGlobals.c +++ b/cde/programs/dtsession/SmGlobals.c @@ -2587,7 +2587,7 @@ SmExit ( smXSMP.saveState.shutdown && !smXSMP.saveState.shutdownCanceled) XSMPExit (); - exit(exitStatus); + _exit(exitStatus); } else return; diff --git a/cde/programs/dtwm/WmXSMP.c b/cde/programs/dtwm/WmXSMP.c index ee80f564d..ceca75ede 100644 --- a/cde/programs/dtwm/WmXSMP.c +++ b/cde/programs/dtwm/WmXSMP.c @@ -126,9 +126,10 @@ static char *getXSMPResource(ClientData *, int, char *); static void getClientGeometry(ClientData *, int *, int *, unsigned int *, unsigned int *); static Boolean getProxyClientInfo(ClientData *, ProxyClientInfo *); -static Bool cmpProxyClientProc(XrmDatabase *, XrmBindingList, +static Bool fillClientIDProc(XrmDatabase *, XrmBindingList, XrmQuarkList, XrmRepresentation *, XrmValue *, XPointer); +static Bool cmpProxyClient(char *clientID, ProxyClientInfo *proxyClientInfo); static char *findProxyClientID(ClientData *); static Boolean findXSMPClientDBMatch(ClientData *, char **); static Boolean findProxyClientDBMatch(ClientData *, char **); @@ -495,21 +496,40 @@ getProxyClientInfo(ClientData *pCD, ProxyClientInfo *proxyClientInfo) return True; } -/* - * IMPORTANT: This function is called by XrmEnumerateDatabase(). - * It calls other Xrm*() functions - if dtwm is threaded, THIS - * WILL HANG. For now, dtwm is NOT threaded, so no problem. - */ static Bool -cmpProxyClientProc(XrmDatabase *clientDB, XrmBindingList bindingList, +fillClientIDProc(XrmDatabase *clientDB, XrmBindingList bindingList, XrmQuarkList quarkList, XrmRepresentation *reps, XrmValue *value, XPointer uData) +{ + static int i; + int nList; + char *clientID = value->addr; + char ***pClientIDList = (char ***) uData; + char **clientIDList = *pClientIDList; + + if (!(clientID && *clientID)) return FALSE; + + if (clientIDList) ++i; + else i = 0; + + nList = 2 + i; + + if (i < 0 || nList < 2) return TRUE; + + *pClientIDList = realloc(*pClientIDList, nList * sizeof(char *)); + clientIDList = i + *pClientIDList; + clientIDList[0] = clientID; + clientIDList[1] = NULL; + + return FALSE; +} + +static Bool +cmpProxyClient(char *clientID, ProxyClientInfo *proxyClientInfo) { char *clientScreen; char *wmCommand; char *wmClientMachine; - char *clientID = (char *)value->addr; - ProxyClientInfo *proxyClientInfo = (ProxyClientInfo *)uData; if (((wmCommand = getClientResource(clientID, wmCommandStr)) == (char *)NULL) || @@ -525,10 +545,7 @@ cmpProxyClientProc(XrmDatabase *clientDB, XrmBindingList bindingList, ((wmClientMachine = getClientResource(clientID, wmClientMachineStr)) == (char *)NULL) || (strcmp(proxyClientInfo->wmClientMachine, wmClientMachine) == 0)) - { - proxyClientInfo->clientID = clientID; return TRUE; - } return FALSE; } @@ -537,7 +554,9 @@ static char * findProxyClientID(ClientData *pCD) { ProxyClientInfo proxyClientInfo; - char *clientID = (char *)NULL; + int i; + char *clientID = NULL; + char **clientIDList = NULL; static XrmName proxyName[2] = {NULLQUARK, NULLQUARK}; static XrmClass proxyClass[2] = {NULLQUARK, NULLQUARK}; @@ -551,18 +570,23 @@ findProxyClientID(ClientData *pCD) * We need to match the screen and * the WM_COMMAND and WM_CLIENT_MACHINE properties. */ - if (!getProxyClientInfo(pCD, &proxyClientInfo)) - return clientID; + if (!getProxyClientInfo(pCD, &proxyClientInfo)) return clientID; - if (XrmEnumerateDatabase(wmGD.clientResourceDB, proxyName, proxyClass, - XrmEnumOneLevel, cmpProxyClientProc, - (XPointer)&proxyClientInfo)) - clientID = proxyClientInfo.clientID; + XrmEnumerateDatabase(wmGD.clientResourceDB, proxyName, proxyClass, + XrmEnumOneLevel, fillClientIDProc, (XPointer)&clientIDList); - if (proxyClientInfo.wmCommand) - free(proxyClientInfo.wmCommand); - if (proxyClientInfo.wmClientMachine) - free(proxyClientInfo.wmClientMachine); + for (i = 0; clientIDList && clientIDList[i]; ++i) + { + if (cmpProxyClient(clientIDList[i], &proxyClientInfo)) + { + clientID = clientIDList[i]; + break; + } + } + + if (proxyClientInfo.wmCommand) free(proxyClientInfo.wmCommand); + if (proxyClientInfo.wmClientMachine) free(proxyClientInfo.wmClientMachine); + if (clientIDList) free(clientIDList); return clientID; } From e97d56562fae9c159f696c269214b3c4a18dd69b Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 18 Nov 2023 15:38:09 -0700 Subject: [PATCH 29/47] Prepare 2.5.2 release --- cde/HISTORY | 44 ++++++++++++++++++++++++++++++++++++++++++++ cde/configure.ac | 4 ++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/cde/HISTORY b/cde/HISTORY index 97a83e042..5243c32cd 100644 --- a/cde/HISTORY +++ b/cde/HISTORY @@ -6,6 +6,50 @@ use 'git log', or peruse the commit history at: https://sourceforge.net/p/cdesktopenv/code/commit_browser +####################################################################### +### 2.5.2 (stable) 11/18/2023 + +This is mainly a bugfix release addressing various issues. + +Shortlog: + +Cy Schubert (1): + Fix build under LLVM15 + +Jon Trulson (9): + Apply various patches from Giacomo Comes + Patch from Giacomo Comes: rename ksh manpage to ksh-cde + Add DesktopNames=CDE to cde.desktop + pgadmin.dt: set icon from pgadmin to pgadmin3 + dtfile/dterror.ds: fix script defines typo + dtksh: enable SHOPT_ECHOPRINT + dticon, dtpad, dtterm: fix session save issues (sprintf bogosity) + lib/DtHelp: strmove(): return memmove() result + .gitignore: add new locations of dtsession/dtlogin PAM files + +Peter Howkins (3): + (Pascal Stumpf) Makefile.am change several places where ${prefix} should be $(CDE_INSTALLATION_TOP) + (Pascal Stumpf) CDE doesn't provide the ksh binary, don't install the manpage for it + (Pascal Stumpf) dtlogin: On OpenBSD start X as root (it drops privileges later) + +hyousatsu (15): + DtTerm: fix a segfault by allocating a string dynamically. + dtwm: fix a title bar resizing issue. + dtwm: fix compiler warnings. + dtwm: add support for _NET_WM_VISIBLE_NAME and _NET_WM_VISIBLE_ICON_NAME. + dtwm: optimize EWMH processing. + localized: fix the character encoding errors in zh_TW.UTF-8. + dtwm: add a new feature -- window rename. + dtwm: optimize EWMH processing. + dtwm: support _NET_WM_STATE_ABOVE and _NET_WM_STATE_BELOW. + dtsession: change the maximum size of cover dialog to fullscreen. + dtlogin: use sessreg to manage utmp/wtmp. + dtwm: fix a segfault. + dtstyle: make the style manager recognize wheel mouse correctly. + tt: make the ttserver process events properly. + dtsession: fix a crash. + + ####################################################################### ### 2.5.1 (stable) 10/1/2022 diff --git a/cde/configure.ac b/cde/configure.ac index 929ad26b2..13fdab9f4 100644 --- a/cde/configure.ac +++ b/cde/configure.ac @@ -1,7 +1,7 @@ dnl When changing the version below, also change the CDE_VERSION_* macros dnl to match further below AC_INIT([Common Desktop Environment], - [2.5.1], + [2.5.2], [https://sourceforge.net/projects/cdesktopenv], [cde], [https://sourceforge.net/projects/cdesktopenv]) @@ -13,7 +13,7 @@ dnl global CDE versioning CDE_VERSION_MAJOR=2 CDE_VERSION_MINOR=5 -CDE_VERSION_MICRO=1 +CDE_VERSION_MICRO=2 dnl this is blank for a release, or contains an alpha character to indicate a dnl dev release. CDE_VERSION_DEV= From 76812a9115db584cb4754761f46e9c76081d2435 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Fri, 1 Dec 2023 08:45:51 +0000 Subject: [PATCH 30/47] ksh93: fix a compilation error on 32-bit system. --- .../dtksh/ksh93/src/lib/libast/aso/aso.c | 2 +- .../dtksh/ksh93/src/lib/libast/features/aso | 52 +++++++++---------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c b/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c index bc08508e7..27986e172 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c @@ -835,7 +835,7 @@ asocasptr(void volatile* p, void* o, void* n) #if defined(_aso_casptr) if (!state.lockf) - return _aso_cas64((void**)p, o, n); + return _aso_casptr((void**)p, o, n); #endif k = lock(state.data, 0, p); if (*(void* volatile*)p == o) diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/features/aso b/cde/programs/dtksh/ksh93/src/lib/libast/features/aso index 9b0ed523e..b95cd5fc5 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/features/aso +++ b/cde/programs/dtksh/ksh93/src/lib/libast/features/aso @@ -24,9 +24,9 @@ if aso note{ gcc 4.1+ 64 bit memory atomic operations model }end link{ #define _aso_inc64(p) __sync_fetch_and_add(p,1) #define _aso_dec64(p) __sync_fetch_and_sub(p,1) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,o,n)) #endif } elif aso note{ gcc 4.1+ 32 bit memory atomic operations model }end link{ @@ -48,7 +48,7 @@ elif aso note{ gcc 4.1+ 32 bit memory atomic operations model }end link{ #define _aso_cas32(p,o,n) __sync_val_compare_and_swap(p,o,n) #define _aso_inc32(p) __sync_fetch_and_add(p,1) #define _aso_dec32(p) __sync_fetch_and_sub(p,1) - #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)__sync_val_compare_and_swap(p,o,n)) } elif aso note{ atomic_cas_64 }end link{ #include "FEATURE/common" @@ -74,9 +74,9 @@ elif aso note{ atomic_cas_64 }end link{ #define _aso_inc64(p) (atomic_add_64_nv(p,1)-1) #define _aso_dec64(p) (atomic_add_64_nv(p,-1)+1) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n)) #endif } elif aso note{ atomic_cas_32 }end link{ @@ -98,7 +98,7 @@ elif aso note{ atomic_cas_32 }end link{ #define _aso_cas32(p,o,n) atomic_cas_32(p,o,n) #define _aso_inc32(p) (atomic_add_32_nv(p,1)-1) #define _aso_dec32(p) (atomic_add_32_nv(p,-1)+1) - #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n)) } elif aso -latomic note{ atomic_cas_64 with -latomic }end link{ #include "FEATURE/common" @@ -125,9 +125,9 @@ elif aso -latomic note{ atomic_cas_64 with -latomic }end link{ #define _aso_inc64(p) (atomic_add_64_nv(p,1)-1) #define _aso_dec64(p) (atomic_add_64_nv(p,-1)+1) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)atomic_cas_64((uint64_t*)p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n)) #endif } elif aso note{ atomic_cas_32 with -latomic }end link{ @@ -150,7 +150,7 @@ elif aso note{ atomic_cas_32 with -latomic }end link{ #define _aso_cas32(p,o,n) atomic_cas_32(p,o,n) #define _aso_inc32(p) (atomic_add_32_nv(p,1)-1) #define _aso_dec32(p) (atomic_add_32_nv(p,-1)+1) - #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)atomic_cas_32((uint32_t*)p,o,n)) } elif aso note{ cas64 }end link{ #include "FEATURE/common" @@ -176,9 +176,9 @@ elif aso note{ cas64 }end link{ #define _aso_inc64(p) (atomic_add_64_nv(p,1)-1) #define _aso_dec64(p) (atomic_add_64_nv(p,-1)+1) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n)) #endif } elif aso note{ just cas64 }end link{ @@ -199,9 +199,9 @@ elif aso note{ just cas64 }end link{ #define _aso_cas32(p,o,n) cas32(p,o,n) #define _aso_cas64(p,o,n) cas64(p,o,n) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n)) #endif } elif aso note{ cas32 }end link{ @@ -223,7 +223,7 @@ elif aso note{ cas32 }end link{ #define _aso_cas32(p,o,n) cas32(p,o,n) #define _aso_inc32(p) (atomic_add_32_nv(p,1)-1) #define _aso_dec32(p) (atomic_add_32_nv(p,-1)+1) - #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n)) } elif aso note{ just cas32 }end link{ #include "FEATURE/common" @@ -240,7 +240,7 @@ elif aso note{ just cas32 }end link{ #define _aso_cas8(p,o,n) cas8(p,o,n) #define _aso_cas16(p,o,n) cas16(p,o,n) #define _aso_cas32(p,o,n) cas32(p,o,n) - #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n)) } elif aso note{ winix Interlocked }end link{ #include @@ -261,7 +261,7 @@ elif aso note{ winix Interlocked }end link{ #define _aso_cas64(p,o,n) InterlockedCompareExchange64((LONGLONG volatile*)p,n,o) #define _aso_inc64(p) (InterlockedIncrement64((LONGLONG volatile*)p)-1) #define _aso_dec64(p) (InterlockedDecrement64((LONGLONG volatile*)p)+1) - #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange64((LONGLONG volatile*)p,(LONGLONG)n,(LONGLONG)o)) + #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange64((LONGLONG volatile*)p,n,o)) #else #if _BLD_posix #include "dl.h" @@ -345,7 +345,7 @@ elif aso note{ winix Interlocked }end link{ return _aso_InterlockedDecrement64(p); } #endif - #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange((LONG volatile*)p,(LONG)n,(LONG)o)) + #define _aso_casptr(p,o,n) ((void*)InterlockedCompareExchange((LONG volatile*)p,n,o)) #endif } elif aso note{ AIX fetch and add }end link{ @@ -361,9 +361,9 @@ elif aso note{ AIX fetch and add }end link{ #define _aso_decint(p) fetch_and_add((atomic_p)p,-1) #define _aso_casint(p,o,n) (compare_and_swap((atomic_p)p,(int*)&o,(int)n) ? o : *p) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) (compare_and_swaplp((atomic_l)p,(long*)&o,(long)n) ? o : *(void**)p) + #define _aso_casptr(p,o,n) (compare_and_swaplp((atomic_l)p,(long*)&o,n) ? o : *(void**)p) #else - #define _aso_casptr(p,o,n) (compare_and_swap((atomic_p)p,(int*)&o,(int)n) ? o : *(void**)p) + #define _aso_casptr(p,o,n) (compare_and_swap((atomic_p)p,(int*)&o,n) ? o : *(void**)p) #endif } elif aso note{ MIPS compare and swap }end link{ @@ -374,7 +374,7 @@ elif aso note{ MIPS compare and swap }end link{ } }end && { #define _aso_cas32(p,o,n) (__compare_and_swap(p,o,n) ? o : *p) - #define _aso_casptr(p,o,n) (__compare_and_swap((long*)p,(long)o,(long)n) ? o : *(void**)p) + #define _aso_casptr(p,o,n) (__compare_and_swap((long*)p,o,n) ? o : *(void**)p) } elif aso note{ i386|i386-64 asm compare and swap }end link{ #include "FEATURE/common" @@ -457,9 +457,9 @@ elif aso note{ i386|i386-64 asm compare and swap }end link{ #define _aso_cas32(p,o,n) cas32(p,o,n) #if _ast_sizeof_pointer == 8 #define _aso_cas64(p,o,n) cas64(p,o,n) - #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n)) #endif } elif aso note{ ia64 asm compare and swap }end link{ @@ -527,9 +527,9 @@ elif aso note{ ia64 asm compare and swap }end link{ #define _aso_cas32(p,o,n) cas32(p,o,n) #define _aso_cas64(p,o,n) cas64(p,o,n) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n)) #endif } elif aso note{ ppc asm compare and swap }end link{ @@ -625,9 +625,9 @@ elif aso note{ ppc asm compare and swap }end link{ #define _aso_cas32(p,o,n) cas32(p,o,n) #define _aso_cas64(p,o,n) cas64(p,o,n) #if _ast_sizeof_pointer == 8 - #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas64((uint64_t*)p,o,n)) #else - #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n)) + #define _aso_casptr(p,o,n) ((void*)cas32((uint32_t*)p,o,n)) #endif } endif From 9dca44513cff28f86f79c4e14a4db11e49de787d Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 3 Jan 2024 22:51:50 +0100 Subject: [PATCH 31/47] DtTerm/TermPrimUtil: Use 6 'X's in mktemp template Some implementations (e.g. glibc) require that, while implementations that are fine with 5 of them still work the same (just with one more constant letter) --- cde/lib/DtTerm/TermPrim/TermPrimUtil.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cde/lib/DtTerm/TermPrim/TermPrimUtil.c b/cde/lib/DtTerm/TermPrim/TermPrimUtil.c index 0184b88ca..9276f7a7b 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimUtil.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimUtil.c @@ -404,10 +404,10 @@ _DtTermPrimStartLog(Widget w) if ( tw->term.log_on || tw->term.logInhibit ) { return; } if (!tw->term.logFile || !*tw->term.logFile) { - tw->term.logFile = "DttermLogXXXXX"; + tw->term.logFile = "DttermLogXXXXXX"; } - if (!strcmp(tw->term.logFile + strlen(tw->term.logFile) - 5, "XXXXX")) { + if (!strcmp(tw->term.logFile + strlen(tw->term.logFile) - 6, "XXXXXX")) { /* make a local copy in case we are going to change it... */ cp = XtMalloc(strlen(tw->term.logFile) + 1); (void) strcpy(cp, tw->term.logFile); From e2aa3e665b6a2ed3259327232928d56d5bb5438f Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 3 Jan 2024 22:51:58 +0100 Subject: [PATCH 32/47] DtTerm/TermPrimUtil: Use mkstemp instead of mktemp --- cde/lib/DtTerm/TermPrim/TermPrimUtil.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cde/lib/DtTerm/TermPrim/TermPrimUtil.c b/cde/lib/DtTerm/TermPrim/TermPrimUtil.c index 9276f7a7b..a89367e7f 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimUtil.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimUtil.c @@ -412,8 +412,9 @@ _DtTermPrimStartLog(Widget w) cp = XtMalloc(strlen(tw->term.logFile) + 1); (void) strcpy(cp, tw->term.logFile); - (void) mktemp(cp); - if (cp && *cp) { + int logStream = mkstemp(cp); + if (logStream != -1) { + tpd->logStream = fdopen(logStream, "w+"); tw->term.logFile = cp; } else { (void) XtFree(cp); @@ -421,7 +422,7 @@ _DtTermPrimStartLog(Widget w) } } - if ('|' == *tw->term.logFile ) { + else if ('|' == *tw->term.logFile ) { /* ** pipe logfile into command */ From a5b5eb0f8094d609728369f2b7fd58fc01fa05ad Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 3 Jan 2024 22:50:15 +0100 Subject: [PATCH 33/47] lib/DtTerm: Fix copy&paste error This avoids using an uninitialized variable by using the initialized variable that is obviously the right one in the context. --- cde/lib/DtTerm/Term/TermParse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cde/lib/DtTerm/Term/TermParse.c b/cde/lib/DtTerm/Term/TermParse.c index 7649ce84c..9b3aba174 100644 --- a/cde/lib/DtTerm/Term/TermParse.c +++ b/cde/lib/DtTerm/Term/TermParse.c @@ -2196,8 +2196,8 @@ _DtTermParseSunMisc /* Misc sun esc seqs */ case 21: XtVaGetValues(sw,XmNtitle, &title, NULL); fmt = "\033]l%s\033\\"; - if (strlen(icon) + strlen(fmt) + 1 >= sizeof(buf)) - s = XtMalloc(strlen(icon) + strlen(fmt) + 1); + if (strlen(title) + strlen(fmt) + 1 >= sizeof(buf)) + s = XtMalloc(strlen(title) + strlen(fmt) + 1); else s = buf; sprintf(s, "%s", fmt); From c48ec3adff2ddc7c65cce07ea215fffebcfd866a Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 3 Jan 2024 22:52:43 +0100 Subject: [PATCH 34/47] lib/DtTerm: Remove dead assignments, initializations and increments This shouldn't change behavior (or even object code) at all because those assignments are all without effect. Removing that code removes noise which helps working with code analysis tools. --- cde/lib/DtTerm/Term/Term.c | 2 - cde/lib/DtTerm/Term/TermAction.c | 1 - cde/lib/DtTerm/Term/TermBuffer.c | 17 +++----- cde/lib/DtTerm/Term/TermFunction.c | 12 ----- cde/lib/DtTerm/Term/TermFunctionKey.c | 1 - cde/lib/DtTerm/Term/TermParse.c | 41 ++--------------- cde/lib/DtTerm/TermPrim/TermPrim.c | 1 - cde/lib/DtTerm/TermPrim/TermPrimAction.c | 1 - cde/lib/DtTerm/TermPrim/TermPrimDebug.c | 7 --- cde/lib/DtTerm/TermPrim/TermPrimFunction.c | 1 - cde/lib/DtTerm/TermPrim/TermPrimLineDraw.c | 7 +-- cde/lib/DtTerm/TermPrim/TermPrimRender.c | 9 ---- cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c | 3 -- cde/lib/DtTerm/TermPrim/TermPrimScroll.c | 2 - cde/lib/DtTerm/TermPrim/TermPrimSelect.c | 18 ++------ cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c | 1 - cde/lib/DtTerm/TermView/TermView.c | 3 +- cde/lib/DtTerm/TermView/TermViewMenu.c | 51 +++++++++++----------- cde/lib/DtTerm/util/lineToData.c | 4 -- 19 files changed, 40 insertions(+), 142 deletions(-) diff --git a/cde/lib/DtTerm/Term/Term.c b/cde/lib/DtTerm/Term/Term.c index 82fdedd82..536c6519d 100644 --- a/cde/lib/DtTerm/Term/Term.c +++ b/cde/lib/DtTerm/Term/Term.c @@ -699,7 +699,6 @@ static void Resize(Widget w) { DtTermWidget tw = (DtTermWidget) w; - DtTermData td = tw->vt.td; /* let our superclass (the Term Widget) perform the resize... */ tw->core.widget_class->core_class.superclass->core_class.resize(w); @@ -880,7 +879,6 @@ static void Destroy(Widget w) { DtTermWidget tw = (DtTermWidget) w; - DtTermData td = tw->vt.td; /* remove the DtTermData structure contents, followed by the structure... */ diff --git a/cde/lib/DtTerm/Term/TermAction.c b/cde/lib/DtTerm/Term/TermAction.c index 12c163eae..c1c4fa8c5 100644 --- a/cde/lib/DtTerm/Term/TermAction.c +++ b/cde/lib/DtTerm/Term/TermAction.c @@ -572,7 +572,6 @@ _DtTermActionEditKeyExecute(Widget w, XEvent *event, String *params, long keyNumber; char *ret; int i; - DtTermData td = tw->vt.td; if (*num_params < 1) { return; diff --git a/cde/lib/DtTerm/Term/TermBuffer.c b/cde/lib/DtTerm/Term/TermBuffer.c index 5325b9f5e..fd5cf8836 100644 --- a/cde/lib/DtTerm/Term/TermBuffer.c +++ b/cde/lib/DtTerm/Term/TermBuffer.c @@ -624,12 +624,7 @@ _DtTermDeleteEnhancement } /* - ** get a copy of the current enhancement - */ - fillEnh = enh[col]; - - /* - ** move all of the enhancement blocks between col + width and and the + ** move all of the enhancement blocks between col + width and the ** end of the line to col */ copyCount = WIDTH(line) - (col + width); @@ -736,19 +731,19 @@ _DtTermSetEnhancement switch (id) { case enhVideo: - enhState->video = (value &= VIDEO_MASK); + enhState->video = value & VIDEO_MASK; break; case enhField: - enhState->field = (value &= FIELD_MASK); + enhState->field = value & FIELD_MASK; break; case enhFgColor: - enhState->fgColor = (value &= COLOR_MASK); + enhState->fgColor = value & COLOR_MASK; break; case enhBgColor: - enhState->bgColor = (value &= COLOR_MASK); + enhState->bgColor = value & COLOR_MASK; break; case enhFont: - enhState->font = (value &= FONT_MASK); + enhState->font = value & FONT_MASK; break; default: return(-1); diff --git a/cde/lib/DtTerm/Term/TermFunction.c b/cde/lib/DtTerm/Term/TermFunction.c index dfc425af5..f661662a3 100644 --- a/cde/lib/DtTerm/Term/TermFunction.c +++ b/cde/lib/DtTerm/Term/TermFunction.c @@ -90,7 +90,6 @@ void _DtTermFuncScroll(Widget w, int count, FunctionSource functionSource) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - struct termData *tpd = tw->term.tpd; /* make sure the cursor is off... */ (void) _DtTermPrimCursorOff(w); @@ -120,7 +119,6 @@ void _DtTermFuncEndOfBuffer(Widget w, int count, FunctionSource functionSource) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - struct termData *tpd = tw->term.tpd; EXIT_IF_MARGINS_SET(tw) (void) _DtTermPrimCursorOff(w); @@ -220,13 +218,9 @@ termFuncErase { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; DtTermPrimData tpd = tw->term.tpd; - TermBuffer tb = tpd->termBuffer; short row; short col; - row = tpd->cursorRow + tpd->topRow; - col = tpd->cursorColumn; - switch(eraseSwitch) { case eraseToEOL: @@ -339,8 +333,6 @@ void _DtTermFuncClearToEndOfBuffer(Widget w, int count, FunctionSource functionSource) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - DtTermPrimData tpd = tw->term.tpd; - short trow ; /* turn the cursor off... */ (void) _DtTermPrimCursorOff(w); @@ -855,7 +847,6 @@ _DtTermFuncInsertLine(Widget w, int count, FunctionSource functionSource) } /* update screen info and counts... */ - count -= moveCount; insertedRows += moveCount; } } @@ -954,7 +945,6 @@ _DtTermVideoEnhancement(Widget w,int value) DtTermPrimData tpd = tw->term.tpd; DtTermWidget vtw = (DtTermWidget) w; DtTermData td = vtw->vt.td; - ParserContext context = GetParserContext(w); switch(value) { case 0: @@ -1075,8 +1065,6 @@ _DtTermFontEnhancement(Widget w,int value) DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; DtTermPrimData tpd = tw->term.tpd; DtTermWidget vtw = (DtTermWidget) w; - DtTermData td = vtw->vt.td; - ParserContext context = GetParserContext(w); (void)_DtTermPrimBufferSetEnhancement(tpd->termBuffer, tpd->topRow + tpd->cursorRow, tpd->cursorColumn, enhFont, value); diff --git a/cde/lib/DtTerm/Term/TermFunctionKey.c b/cde/lib/DtTerm/Term/TermFunctionKey.c index 27a87d4c4..2dc475c0c 100644 --- a/cde/lib/DtTerm/Term/TermFunctionKey.c +++ b/cde/lib/DtTerm/Term/TermFunctionKey.c @@ -54,7 +54,6 @@ _DtTermFunctionKeyExecute( ) { DtTermWidget tw = (DtTermWidget) w; - DtTermData td = tw->vt.td; if (!shift || tw->vt.sunFunctionKeys == True ) { if ( tw->vt.sunFunctionKeys == True ) { diff --git a/cde/lib/DtTerm/Term/TermParse.c b/cde/lib/DtTerm/Term/TermParse.c index 9b3aba174..31830fcfc 100644 --- a/cde/lib/DtTerm/Term/TermParse.c +++ b/cde/lib/DtTerm/Term/TermParse.c @@ -536,11 +536,10 @@ _DtTermEraseChars(Widget w) /* ECH CSIpX */ { ParserContext context ; DtTermWidget vtw = (DtTermWidget) w; - int row,col,cnt ; + int col,cnt ; Debug('P', fprintf(stderr,">>In func _DtTermEraseChars\n")) ; KILLWRAP(vtw) ; context = GetParserContext(w) ; - row = vtw->term.tpd->cursorRow ; col = vtw->term.tpd->cursorColumn ; STORELASTARG(context) ; cnt = context->parms[1] ; @@ -596,12 +595,11 @@ _DtTermCursorUp(Widget w) /* CUU CISpA */ { ParserContext context ; DtTermWidget vtw = (DtTermWidget) w; - int trow, row, tmargin, cnt; + int row, tmargin, cnt; Debug('P', fprintf(stderr,">>In func _DtTermCursorUp\n")) ; context = GetParserContext(w) ; KILLWRAP(vtw) ; tmargin = TOPMARGIN(vtw) ; - trow = TOPROW(vtw) ; STORELASTARG(context) ; cnt = context->parms[1] ; if (!(cnt))cnt=1; @@ -659,13 +657,12 @@ _DtTermCursorBack(Widget w) /* CUB CISpD */ { ParserContext context ; DtTermWidget vtw = (DtTermWidget) w; - int i,k,j,row,col,fcol,cnt ; + int i,k,j,row,col,cnt ; Debug('P', fprintf(stderr,">>In func _DtTermCursorBack\n")) ; KILLWRAP(vtw) ; context = GetParserContext(w) ; STORELASTARG(context) ; cnt = context->parms[1] ; - fcol = FIRSTCOLUMN(vtw) ; row = vtw->term.tpd->cursorRow; col = vtw->term.tpd->cursorColumn; if (!cnt) cnt=1; @@ -693,10 +690,8 @@ void _DtTermCursorToLineUp(Widget w) /* CPL CSIpF */ { DtTermWidget vtw = (DtTermWidget) w; - ParserContext context ; Debug('P', fprintf(stderr,">>In func _DtTermCursorToLineUp\n")) ; KILLWRAP(vtw) ; - context = GetParserContext(w) ; vtw->term.tpd->cursorColumn = FIRSTCOLUMN(vtw) ; _DtTermCursorUp(w) ; } @@ -887,7 +882,6 @@ _DtTermCharAttributes(Widget w) /* SGR CSIpm */ Debug('P', fprintf(stderr,">>In func _DtTermCharAttributes\n")) ; context = GetParserContext(w) ; STORELASTARG(context) ; - cnt = PCOUNT(context) ; if(PCOUNT(context)) { for (cnt=1; cnt <= PCOUNT(context); cnt++) _DtTermVideoEnhancement(w,context->parms[cnt]) ; @@ -936,7 +930,6 @@ _DtTermChangeTextParam(Widget w) /* xterm CSIp;pcCtrl-G */ { ParserContext context ; DtTermWidget tw = (DtTermWidget) w; - DtTermData vtd = tw->vt.td; Widget sw; int i ; Arg arg[5]; @@ -1033,7 +1026,6 @@ _DtTermSaveCursor(Widget w) /* DECSC ESC7 */ { DtTermWidget vtw = (DtTermWidget) w; DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - DtTermBuffer tb = (DtTermBuffer)tw->term.tpd->termBuffer ; DtTermData vtd = vtw->vt.td; Debug('P', fprintf(stderr,">>In func _DtTermSaveCursor\n")) ; @@ -1168,19 +1160,13 @@ _DtTermSetCompatLevel(Widget w) /* DECSCL CSI p;p"p (last p literal) */ void _DtTermInvokeG3(Widget w) /* LS3R ESC| */ { - ParserContext context ; - int cnt ; Debug('P', fprintf(stderr,">>In func _DtTermInvokeG3\n")) ; - context = GetParserContext(w) ; } void _DtTermInvokeG2(Widget w) /* LS3R ESC} */ { - ParserContext context ; - int cnt ; Debug('P', fprintf(stderr,">>In func _DtTermInvokeG2\n")) ; - context = GetParserContext(w) ; } void @@ -1441,10 +1427,7 @@ _DtTermAlignTest(Widget w) /* DECALN ESC#8 */ void _DtTermInvokeG1(Widget w) /* ESC~ESC */ { - ParserContext context ; - int cnt ; Debug('P', fprintf(stderr,">>In func _DtTermInvokeG1\n")) ; - context = GetParserContext(w) ; } void @@ -1538,7 +1521,6 @@ _DtTermSelEraseInDisplay(Widget w) /* DECSED ESC?pJ */ { DtTermWidget vtw = (DtTermWidget) w; DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - TermBuffer tb = tw->term.tpd->termBuffer ; ParserContext context ; enhValues evalues; int r,col1,col2,row1,row2,col,row ; @@ -1689,10 +1671,7 @@ _DtTermParseHexDigit(Widget w) /* vt220 DECUDK store hex digit*/ void _DtTermReset(Widget w) /* RIS ESCc */ { - ParserContext context ; - int cnt ; Debug('P', fprintf(stderr,">>In func _DtTermReset\n")) ; - context = GetParserContext(w) ; _DtTermFuncHardReset(w,0 ,fromParser) ; } @@ -1766,28 +1745,19 @@ _DtTermSetCharEraseMode(Widget w) /* DECSCA ESCp"q */ void _DtTermSingleWide(Widget w) /* DECSWL ESC#5 */ { - ParserContext context ; - int cnt ; Debug('P', fprintf(stderr,">>In func _DtTermSingleWide\n")) ; - context = GetParserContext(w) ; } void _DtTermDoubleWide(Widget w) /* DECDWL ESC#6 */ { - ParserContext context ; - int cnt ; Debug('P', fprintf(stderr,">>In func _DtTermDoubleWide\n")) ; - context = GetParserContext(w) ; } void _DtTermDoubleHigh(Widget w) /* DECWHL ESC#4 */ { - ParserContext context ; - int cnt ; Debug('P', fprintf(stderr,">>In func _DtTermDoubleHigh\n")) ; - context = GetParserContext(w) ; } void @@ -1990,11 +1960,9 @@ _DtTermParseBackspace /* Ctrl-H */ Widget w ) { - ParserContext context ; DtTermWidget vtw = (DtTermWidget) w; int row,col,fcol,cnt ; Debug('P', fprintf(stderr,">>In func _DtTermParseBackspace\n")) ; - context = GetParserContext(w) ; fcol = FIRSTCOLUMN(vtw) ; row = vtw->term.tpd->cursorRow; col = vtw->term.tpd->cursorColumn; @@ -2098,7 +2066,6 @@ _DtTermParseSunMisc /* Misc sun esc seqs */ DtTermWidget vtw = (DtTermWidget) w; Display *display = XtDisplay(w); int i, scr_num = XScreenNumberOfScreen(XtScreen(w)); - Window win = XtWindow(w); Window sh_win; Widget sw; XWindowChanges values; @@ -2233,8 +2200,6 @@ Widget w void _DtTermParserSunIconFile(Widget w) /* Sun set icon to pixmap in file */ { - DtTermBuffer tb = - (DtTermBuffer)((DtTermPrimitiveWidget)w)->term.tpd->termBuffer ; ParserContext context ; int fg, bg; Widget sw; diff --git a/cde/lib/DtTerm/TermPrim/TermPrim.c b/cde/lib/DtTerm/TermPrim/TermPrim.c index f4d79c90f..e8c7a368f 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrim.c +++ b/cde/lib/DtTerm/TermPrim/TermPrim.c @@ -2355,7 +2355,6 @@ static void Realize(Widget w, XtValueMask *p_valueMask, XSetWindowAttributes *attributes) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - DtTermPrimData tpd = tw->term.tpd; Mask valueMask = *p_valueMask; sigset_t sigNew; char buffer[BUFSIZ]; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimAction.c b/cde/lib/DtTerm/TermPrim/TermPrimAction.c index 4287e3e81..b6b2953a9 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimAction.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimAction.c @@ -157,7 +157,6 @@ _DtTermPrimActionTab(Widget w, XEvent *event, String *params, Cardinal *num_params) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - struct termData *tpd = tw->term.tpd; Boolean shiftedTab = False; Boolean numericTab = False; int i; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimDebug.c b/cde/lib/DtTerm/TermPrim/TermPrimDebug.c index 119fc56d4..f80dcf91f 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimDebug.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimDebug.c @@ -68,13 +68,6 @@ static void catchExit(void) { - int a; - int b; - - a = 1; - b = a; - a = b; - return; } typedef struct _argArray { diff --git a/cde/lib/DtTerm/TermPrim/TermPrimFunction.c b/cde/lib/DtTerm/TermPrim/TermPrimFunction.c index dad8e3518..d9755542c 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimFunction.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimFunction.c @@ -389,7 +389,6 @@ void _DtTermPrimFuncRedrawDisplay(Widget w, int count, FunctionSource functionSource) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - struct termData *tpd = tw->term.tpd; (void) XClearArea(XtDisplay(w), XtWindow(w), 0, 0, 0, 0, True); return; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimLineDraw.c b/cde/lib/DtTerm/TermPrim/TermPrimLineDraw.c index 1a5417b60..70e6e45de 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimLineDraw.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimLineDraw.c @@ -263,6 +263,7 @@ ScaleCharacter( #endif /* USE_PIXMAPS */ } +#ifdef USE_PIXMAPS /* stipple in the rectangle... */ for (j = 0; j < glyph->numStipples; j++) { @@ -272,10 +273,8 @@ ScaleCharacter( int y1; int y2; int stippleSize; -#ifdef USE_PIXMAPS int xIndex; int yIndex; -#endif /* USE_PIXMAPS */ /* scale x1 and x2 to our width... */ x1 = ((width - 1) * glyph->stipples[j].x1) / 100; @@ -293,7 +292,6 @@ ScaleCharacter( y1 += glyph->stipples[j].y1Offset; y2 += glyph->stipples[j].y2Offset; -#ifdef USE_PIXMAPS /* fill in the area... */ for (yIndex = y1; yIndex < y2; yIndex += stippleSize) { for (xIndex = x1; xIndex < x2; xIndex += stippleSize) { @@ -321,8 +319,8 @@ ScaleCharacter( } } } -#endif /* USE_PIXMAPS */ } +#endif /* USE_PIXMAPS */ /* mark this character as completed... */ #ifdef USE_PIXMAPS @@ -374,7 +372,6 @@ _DtTermPrimLineDrawCreateFont(Widget w, GlyphInfo glyphInfo, int numGlyphs, int width, int ascent, int descent) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - struct termData *tpd = tw->term.tpd; int fontNumber; LineDrawFont lineDrawFont; int i; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimRender.c b/cde/lib/DtTerm/TermPrim/TermPrimRender.c index 040e5a254..6c02de6c7 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimRender.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimRender.c @@ -795,7 +795,6 @@ _DtTermPrimFillScreenGap(Widget w) /* the lines are now freed, adjust the used count... */ tpd->lastUsedHistoryRow -= historyLinesNeeded; if (tpd->lastUsedHistoryRow < 0) { - historyLinesNeeded += tpd->lastUsedHistoryRow; tpd->lastUsedHistoryRow = 0; } } @@ -824,9 +823,6 @@ _DtTermPrimFillScreenGap(Widget w) enhValue *eValues = (enhValue *)NULL; overflowChars = (termChar *) XtMalloc(BUFSIZ * sizeof (termChar)); - c1 = _DtTermPrimBufferGetCharacterPointer( - tBuffer, i1, 0); - /* Perpetuate the enhancements. */ for (eCol = 0; eCol < length; eCol += eCount) { @@ -1095,7 +1091,6 @@ _DtTermPrimInsertText(Widget w, unsigned char *buffer, int length) * character count... */ pmb = (char *)buffer; - pwc = wcBuffer; wcBufferLen = i; i = 0; while (i < wcBufferLen) @@ -1270,7 +1265,6 @@ _DtTermPrimInsertText(Widget w, unsigned char *buffer, int length) newWidth = DoInsert(w, &buffer[insertStartX], insertCharCount, &wrapped); tpd->cursorColumn += insertCharCount; - insertCharCount = 0; if (tpd->insertCharMode != DtTERM_INSERT_CHAR_OFF) { renderEndX = newWidth; } else { @@ -1289,8 +1283,6 @@ _DtTermPrimInsertText(Widget w, unsigned char *buffer, int length) (void) _DtTermPrimRefreshText(w, 0, tpd->cursorRow + 1, renderEndX, tpd->cursorRow + 1); } - wrapped = False; - needToRender = False; } return(i); @@ -1336,7 +1328,6 @@ _DtTermPrimParseInput struct termData *tpd = tw->term.tpd; DtTermPrimitiveClassPart *termClassPart = &(((DtTermPrimitiveClassRec *) (tw->core.widget_class))->term_primitive_class); - TermBuffer tBuffer = tpd->termBuffer; int i; short insertStart; short insertByteCount; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c b/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c index 26f51edf0..6beafd0c1 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c @@ -880,7 +880,6 @@ _DtTermPrimInsertTextWc newWidth = DoInsertWc(w, &wcBuffer[insertStartX], insertCharCount, &wrapped); tpd->cursorColumn += insertCharWidth; - insertCharCount = 0; if (tpd->insertCharMode == DtTERM_INSERT_CHAR_OFF) { renderEndX = MAX(renderEndX, tpd->cursorColumn); } else { @@ -899,8 +898,6 @@ _DtTermPrimInsertTextWc (void) _DtTermPrimRefreshTextWc(w, 0, tpd->cursorRow + 1, renderEndX + 1, tpd->cursorRow + 1); } - wrapped = False; - needToRender = False; } return(i); } diff --git a/cde/lib/DtTerm/TermPrim/TermPrimScroll.c b/cde/lib/DtTerm/TermPrim/TermPrimScroll.c index f142f3fe8..e90756d37 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimScroll.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimScroll.c @@ -105,7 +105,6 @@ _DtTermPrimScrollWait(Widget w) int i; int exposeY; int exposeHeight; - int scrolledLines; Debug('s', fprintf(stderr, ">>_DtTermPrimScrollWait() starting\n")); Debug('s', fprintf(stderr, @@ -232,7 +231,6 @@ _DtTermPrimScrollWait(Widget w) exposeHeight)); /* set scrollLines == 0, or renderText will not render them... */ - scrolledLines = tpd->scroll.jump.scrollLines; tpd->scroll.jump.scrollLines = 0; /* clear the scrolled flag... */ tpd->scroll.jump.scrolled = False; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimSelect.c b/cde/lib/DtTerm/TermPrim/TermPrimSelect.c index 3701db6ad..20271fb94 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimSelect.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimSelect.c @@ -372,7 +372,6 @@ bufferRowColToPos ) { DtTermPrimData tpd = tw->term.tpd; - TermSelectInfo selectInfo = tpd->selectInfo; short lrow, lcol; XmTextPosition pos; @@ -1369,7 +1368,7 @@ doExtendedSelection if (position == scan (tw, begin, selectInfo->scanType, scanRight, 1, FALSE)) { - begin = cursorPos = position; + begin = position; } } } @@ -1505,8 +1504,6 @@ doHandleTargets { _TermSelectPrimaryRec *primSelect = (_TermSelectPrimaryRec *) closure; DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget)w; - DtTermPrimData tpd = tw->term.tpd; - TermSelectInfo selectInfo = tpd->selectInfo; XTextProperty tmpProp; XmTextBlockRec block; int i, status; @@ -2240,9 +2237,8 @@ _DtTermPrimSelectDeleteLines return; } - /* figure out what the begin and end lines are... */ + /* figure out what the begin line is... */ selectLineBegin = selectInfo->begin / (selectInfo->columns + 1); - selectLineEnd = (selectInfo->end - 1) / (selectInfo->columns + 1); /* if the beginning of the selection is after the source, we need to * move the selection up... @@ -2274,9 +2270,8 @@ _DtTermPrimSelectInsertLines return; } - /* figure out what the begin and end lines are... */ + /* figure out what the begin line is... */ selectLineBegin = selectInfo->begin / (selectInfo->columns + 1); - selectLineEnd = (selectInfo->end - 1) / (selectInfo->columns + 1); /* if the beginning of the selection is at or after the source, we need to * move the selection up... @@ -2328,8 +2323,6 @@ _DtTermPrimSelectPage ) { DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget)w; - DtTermPrimData tpd = tw->term.tpd; - TermSelectInfo selectInfo = tpd->selectInfo; XButtonEvent *btnEvent = (XButtonEvent *) event; XmTextPosition begin, end; short lastRow, width; @@ -2365,8 +2358,6 @@ DropTransferCallback( { _DtTermDropTransferRec *transfer_rec = (_DtTermDropTransferRec *) closure; DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget)transfer_rec->widget; - DtTermPrimData tpd = tw->term.tpd; - TermSelectInfo selectInfo = tpd->selectInfo; /* When type = NULL, we are assuming a DELETE request has been requested */ if (*type == 0) { @@ -2384,7 +2375,6 @@ DropTransferCallback( transferEntries[0].client_data = (XtPointer) transfer_rec; transferEntries[0].target = XmInternAtom(XtDisplay(w),"DELETE", False); - transferList = transferEntries; XmDropTransferAdd(w, transferEntries, 1); } } @@ -2444,8 +2434,6 @@ HandleDrop( Widget w, XmDropProcCallbackStruct *cb ) Widget drag_cont, initiator; /* XmTextWidget tw = (XmTextWidget) w; */ DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget)w; - DtTermPrimData tpd = tw->term.tpd; - TermSelectInfo selectInfo = tpd->selectInfo; Cardinal numExportTargets, n; Atom *exportTargets; Arg args[10]; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c b/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c index df2574d17..f74ccc8e3 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c @@ -324,7 +324,6 @@ UtmpEntryCreate(Widget w, pid_t pid, char *utmpLine) { #if !defined(CSRG_BASED) /* XXX */ DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; - struct termData *tpd = tw->term.tpd; struct utmp ut; struct utmp *utPtr; char *c; diff --git a/cde/lib/DtTerm/TermView/TermView.c b/cde/lib/DtTerm/TermView/TermView.c index fd1a5c302..b933e5073 100644 --- a/cde/lib/DtTerm/TermView/TermView.c +++ b/cde/lib/DtTerm/TermView/TermView.c @@ -898,7 +898,7 @@ Initialize(Widget rw, Widget w, Arg *args, Cardinal *num_args) if (geometry && *geometry) { hints.flags = 0; - flags = XWMGeometry(XtDisplay(w), + (void) XWMGeometry(XtDisplay(w), XScreenNumberOfScreen(XtScreen(w)), geometry, "80x24", @@ -1183,7 +1183,6 @@ Initialize(Widget rw, Widget w, Arg *args, Cardinal *num_args) /* create the function key form... */ - i = 0; /* Add an event handler for enter and leave events to allow us to * modify the "CAPS LOCK" indicator... */ diff --git a/cde/lib/DtTerm/TermView/TermViewMenu.c b/cde/lib/DtTerm/TermView/TermViewMenu.c index 753c536ea..f73b61b21 100644 --- a/cde/lib/DtTerm/TermView/TermViewMenu.c +++ b/cde/lib/DtTerm/TermView/TermViewMenu.c @@ -545,7 +545,6 @@ createFontMenu /* clear out mnemonics string... */ *mnemonics = '\0'; - c1 = mnemonics; /* create the font buttons... */ fontSizeToggles = (Widget *) XtMalloc((fontArrayCount + 1) * sizeof(Widget)); @@ -626,9 +625,9 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, i); } menu = popupMenu; - button = _DtTermViewCreateLabel(menu, + (void) _DtTermViewCreateLabel(menu, (GETMESSAGE(NL_SETN_ViewMenu,83, "Terminal"))); - button = _DtTermViewCreateSeparator(menu, "Separator"); + (void) _DtTermViewCreateSeparator(menu, "Separator"); } (void) XtFree((char *) newArglist); @@ -659,7 +658,7 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,19, "C")); accelerator = mallocGETMESSAGE(NL_SETN_ViewMenu,62, "Alt F4"); acceleratorText = mallocGETMESSAGE(NL_SETN_ViewMenu,62, "Alt+F4"); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void) _DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,18, "Close")), ks, accelerator, @@ -671,12 +670,12 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, if (menuBar || (!menuBar && firstPopup)) #ifdef PULLDOWN_ACCELERATORS ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,21, "W")); - cascade = _DtTermViewCreateCascadeButton(menu, pulldown[pc], + (void) _DtTermViewCreateCascadeButton(menu, pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,20, "Window")), ks, NULL, NULL, NULL, NULL); #else /* PULLDOWN_ACCELERATORS */ - cascade = _DtTermViewCreateCascadeButton(menu, pulldown[pc], + (void) _DtTermViewCreateCascadeButton(menu, pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,20, "Window")), NoSymbol, NULL, NULL, NULL, NULL); #endif /* PULLDOWN_ACCELERATORS */ @@ -689,7 +688,7 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, "Ctrl osfInsert"); acceleratorText = mallocGETMESSAGE(NL_SETN_ViewMenu,25, "Ctrl+Insert"); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,23, "C")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void) _DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,22, "Copy")), ks, accelerator, @@ -702,7 +701,7 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, accelerator = mallocGETMESSAGE(NL_SETN_ViewMenu,28, "Shift osfInsert"); acceleratorText = mallocGETMESSAGE(NL_SETN_ViewMenu,29, "Shift+Insert"); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void) _DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,26, "Paste")), ks, accelerator, @@ -714,12 +713,12 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, if (menuBar || (!menuBar && firstPopup)) #ifdef PULLDOWN_ACCELERATORS ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,31, "E")); - cascade = _DtTermViewCreateCascadeButton(menu, pulldown[pc], + (void) _DtTermViewCreateCascadeButton(menu, pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,30, "Edit")), ks, NULL, NULL, NULL, NULL); #else /* PULLDOWN_ACCELERATORS */ - cascade = _DtTermViewCreateCascadeButton(menu, pulldown[pc], + (void) _DtTermViewCreateCascadeButton(menu, pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,30, "Edit")), NoSymbol, NULL, NULL, NULL, NULL); #endif /* PULLDOWN_ACCELERATORS */ @@ -742,13 +741,13 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, NULL, NULL, scrollBarToggleCallback, NULL); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,37, "G")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void) _DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,36, "Global...")), ks, NULL, NULL, globalOptionsCallback, NULL); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,39, "T")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void) _DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,38, "Terminal...")), ks, NULL, NULL, terminalOptionsCallback, NULL); @@ -761,13 +760,13 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, submenu = createPulldown(pulldown[pc], "Reset", arglist, i); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,41, "S")); - button = _DtTermViewCreatePushButton(submenu, + (void)_DtTermViewCreatePushButton(submenu, (GETMESSAGE(NL_SETN_ViewMenu,40, "Soft Reset")), ks, NULL, NULL, softResetCallback, NULL); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,43, "H")); - button = _DtTermViewCreatePushButton(submenu, + (void)_DtTermViewCreatePushButton(submenu, (GETMESSAGE(NL_SETN_ViewMenu,42, "Hard Reset")), ks, NULL, NULL, hardResetCallback, NULL); @@ -781,12 +780,12 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, if (menuBar || (!menuBar && firstPopup)) #ifdef PULLDOWN_ACCELERATORS ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,47, "O")); - cascade = _DtTermViewCreateCascadeButton(menu, pulldown[pc], + (void) _DtTermViewCreateCascadeButton(menu, pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,46, "Options")), ks, NULL, NULL, NULL, NULL); #else /* PULLDOWN_ACCELERATORS */ - cascade = _DtTermViewCreateCascadeButton(menu, pulldown[pc], + (void) _DtTermViewCreateCascadeButton(menu, pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,46, "Options")), NoSymbol, NULL, NULL, NULL, NULL); #endif /* PULLDOWN_ACCELERATORS */ @@ -858,49 +857,49 @@ CreateMenu(Widget termView, Widget parent, Boolean menuBar, #else /* HPVUE */ ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,65, "v")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void)_DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,64, "Overview")), ks, NULL, NULL, helpOverviewCallback, NULL); - button = _DtTermViewCreateSeparator(pulldown[pc], "Separator"); + (void)_DtTermViewCreateSeparator(pulldown[pc], "Separator"); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,69,"C")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void)_DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,68, "Table Of Contents")), ks, NULL, NULL, helpTableOfContentsCallback, NULL); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,71,"T")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void)_DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,70, "Tasks")), ks, NULL, NULL, helpTasksCallback, NULL); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,73,"R")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void)_DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,72, "Reference")), ks, NULL, NULL, helpReferenceCallback, NULL) ; ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,75,"K")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void)_DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,74, "Keyboard")), ks, NULL, NULL, helpKeyboardCallback, NULL) ; - button = _DtTermViewCreateSeparator(pulldown[pc], "Separator"); + (void)_DtTermViewCreateSeparator(pulldown[pc], "Separator"); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,77,"U")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void)_DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,76, "Using Help")), ks, NULL, NULL, helpUsingHelpCallback, NULL); - button = _DtTermViewCreateSeparator(pulldown[pc], "Separator"); + (void)_DtTermViewCreateSeparator(pulldown[pc], "Separator"); ks = XStringToKeysym(GETMESSAGE(NL_SETN_ViewMenu,79,"A")); - button = _DtTermViewCreatePushButton(pulldown[pc], + (void)_DtTermViewCreatePushButton(pulldown[pc], (GETMESSAGE(NL_SETN_ViewMenu,83, "About Terminal")), ks, NULL, NULL, helpAboutDttermCallback, NULL); diff --git a/cde/lib/DtTerm/util/lineToData.c b/cde/lib/DtTerm/util/lineToData.c index 5813ba41c..1a3e7a249 100644 --- a/cde/lib/DtTerm/util/lineToData.c +++ b/cde/lib/DtTerm/util/lineToData.c @@ -280,10 +280,6 @@ main(int argc, char **argv) (void) DumpChar(stdout, charCount++, charList, charListMax, rectList, rectListMax, lineList, lineListMax, stippleList, stippleListMax); - lineListMax = 0; - rectListMax = 0; - stippleListMax = 0; - charListMax = 0; } /* build the final structure... */ From d8a43c0b491b40325aa77411c07504d51fb32958 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 3 Jan 2024 22:53:04 +0100 Subject: [PATCH 35/47] DtTerm/TermPrim: check pointer before traversing --- cde/lib/DtTerm/TermPrim/TermPrim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/lib/DtTerm/TermPrim/TermPrim.c b/cde/lib/DtTerm/TermPrim/TermPrim.c index e8c7a368f..ba225153f 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrim.c +++ b/cde/lib/DtTerm/TermPrim/TermPrim.c @@ -3890,7 +3890,7 @@ PreeditHighlight( TermSelectInfo selectInfo = tw->term.tpd->selectInfo; /* check for null feedback */ - if (call_data->text->feedback) { + if (call_data && call_data->text && call_data->text->feedback) { switch (*call_data->text->feedback) { case XIMReverse: case XIMUnderline: From f078df392a6c2445cc381ebf0858ea07e0fb7146 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Sat, 6 Jan 2024 09:50:44 +0100 Subject: [PATCH 36/47] Add systemd service file for dtlogin This automatically starts dtlogin and properly supervises it. --- cde/contrib/rc/systemd/dtlogin.service | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 cde/contrib/rc/systemd/dtlogin.service diff --git a/cde/contrib/rc/systemd/dtlogin.service b/cde/contrib/rc/systemd/dtlogin.service new file mode 100644 index 000000000..dc38af151 --- /dev/null +++ b/cde/contrib/rc/systemd/dtlogin.service @@ -0,0 +1,13 @@ +[Unit] +Description=CDE login manager +Documentation=man:dtlogin(1) +After=network.target + +[Service] +ExecStart=/usr/dt/bin/dtlogin -daemon +Restart=on-failure +Type=forking +PIDFile=/var/dt/Xpid + +[Install] +WantedBy=multi-user.target From ca84b10135d4a5004b43fdada79488f0f3c887df Mon Sep 17 00:00:00 2001 From: rhubarb-geek-nz Date: Thu, 11 Jan 2024 02:30:07 +0000 Subject: [PATCH 37/47] init scripts from rhubarb-pi.sf.net --- cde/contrib/rc/netbsd/dtlogin | 16 ++++++++++++++++ cde/contrib/rc/openbsd/cmsd | 11 +++++++++++ cde/contrib/rc/openbsd/dtlogin | 25 +++++++++++++++++++++++++ cde/contrib/rc/systemd/dtlogin.service | 12 +++++------- 4 files changed, 57 insertions(+), 7 deletions(-) create mode 100755 cde/contrib/rc/netbsd/dtlogin create mode 100755 cde/contrib/rc/openbsd/cmsd create mode 100755 cde/contrib/rc/openbsd/dtlogin diff --git a/cde/contrib/rc/netbsd/dtlogin b/cde/contrib/rc/netbsd/dtlogin new file mode 100755 index 000000000..5fafbfb8e --- /dev/null +++ b/cde/contrib/rc/netbsd/dtlogin @@ -0,0 +1,16 @@ +#!/bin/sh +# PROVIDE: dtlogin +# REQUIRE: DAEMON LOGIN wscons +# KEYWORD: shutdown + +$_rc_subr_loaded . /etc/rc.subr + +name="dtlogin" +rcvar=$name +command="/usr/dt/bin/${name}" +command_args="-daemon" +pidfile=/var/dt/Xpid +extra_commands="" + +load_rc_config $name +run_rc_command "$1" diff --git a/cde/contrib/rc/openbsd/cmsd b/cde/contrib/rc/openbsd/cmsd new file mode 100755 index 000000000..407a821f8 --- /dev/null +++ b/cde/contrib/rc/openbsd/cmsd @@ -0,0 +1,11 @@ +daemon="/usr/dt/bin/rpc.cmsd &" + +. /etc/rc.d/rc.subr + +pexp="rpc.cmsd: ${daemon}${daemon_flags:+ ${daemon_flags}} \[listener\].*" + +rc_reload() { + ${daemon} ${daemon_flags} -t && pkill -HUP -xf "${pexp}" +} + +rc_cmd $1 diff --git a/cde/contrib/rc/openbsd/dtlogin b/cde/contrib/rc/openbsd/dtlogin new file mode 100755 index 000000000..73838e22a --- /dev/null +++ b/cde/contrib/rc/openbsd/dtlogin @@ -0,0 +1,25 @@ +#!/bin/ksh + +daemon="/usr/dt/bin/dtlogin" + +. /etc/rc.d/rc.subr + +rc_reload=NO + +if [ -n "${INRC}" ]; then +# on boot: make sure we don't hang in _rc_wait +_rc_wait() { + return 0 +} +# on boot: wait for ttys to be initialized +rc_start() { + ( local i=0 + while ! pgrep -qf "^/usr/libexec/getty "; do + sleep 1 + [ $((i++)) -ge 10 ] && return 1 + done + ${rcexec} "${daemon} ${daemon_flags}" ) & +} +fi + +rc_cmd $1 diff --git a/cde/contrib/rc/systemd/dtlogin.service b/cde/contrib/rc/systemd/dtlogin.service index dc38af151..cdf5dbfe0 100644 --- a/cde/contrib/rc/systemd/dtlogin.service +++ b/cde/contrib/rc/systemd/dtlogin.service @@ -1,13 +1,11 @@ [Unit] -Description=CDE login manager +Description=CDE login service Documentation=man:dtlogin(1) -After=network.target +Requires=rpcbind.service +After=systemd-user-sessions.service [Service] -ExecStart=/usr/dt/bin/dtlogin -daemon -Restart=on-failure -Type=forking -PIDFile=/var/dt/Xpid +ExecStart=/usr/dt/bin/dtlogin -nodaemon [Install] -WantedBy=multi-user.target +Alias=display-manager.service From 847987410471d580d68b006a649aa86f8ab4a99e Mon Sep 17 00:00:00 2001 From: Paul Ward Date: Mon, 26 Feb 2024 11:24:02 +0000 Subject: [PATCH 38/47] dtterm: Fix title and icon Sun esc seqs --- cde/lib/DtTerm/Term/TermParse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cde/lib/DtTerm/Term/TermParse.c b/cde/lib/DtTerm/Term/TermParse.c index 31830fcfc..747363234 100644 --- a/cde/lib/DtTerm/Term/TermParse.c +++ b/cde/lib/DtTerm/Term/TermParse.c @@ -2156,7 +2156,7 @@ _DtTermParseSunMisc /* Misc sun esc seqs */ s = XtMalloc(strlen(icon) + strlen(fmt) + 1); else s = buf; - sprintf(s, "%s", fmt); + sprintf(s, fmt, icon); sendEscSequence(w,s) ; if (s != buf) XtFree(s); break ; @@ -2167,7 +2167,7 @@ _DtTermParseSunMisc /* Misc sun esc seqs */ s = XtMalloc(strlen(title) + strlen(fmt) + 1); else s = buf; - sprintf(s, "%s", fmt); + sprintf(s, fmt, title); sendEscSequence(w,s) ; if (s != buf) XtFree(s); break ; From 3fa42c44a8a26be64853a83d0c7abf9e6d24c4ba Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sun, 2 Jun 2024 17:49:45 -0600 Subject: [PATCH 39/47] dtcm: Chase FreeBSD src bb421be6c117 which moved ftime(3) Patch from Cy Schubert: FreeBSD bb421be6c117 moved ftime(3) from libcompat to libutil. This results in the following error, ld: error: undefined symbol: ftime >>> referenced by getdate.c >>> libDtCmP_a-getdate.o:(cm_getdate) in archive ../libDtCmP/libDtCmP.a >>> did you mean: ctime Signed off by: Cy Schubert --- cde/programs/dtcm/dtcm/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtcm/dtcm/Makefile.am b/cde/programs/dtcm/dtcm/Makefile.am index 93fbbf3a1..60ccc8d7b 100644 --- a/cde/programs/dtcm/dtcm/Makefile.am +++ b/cde/programs/dtcm/dtcm/Makefile.am @@ -8,7 +8,7 @@ AM_CFLAGS = $(DT_INCDIR) $(CSA_INCDIR) -I../../../lib/csa \ LDADD = ../libDtCmP/libDtCmP.a $(LIBCSA) $(DTCLIENTLIBS) $(XTOOLLIB) if FREEBSD -LDADD += -lcompat +LDADD += -lcompat -lutil endif if NETBSD From c7ade43d86940ddae1a495d649e129385b502a31 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Thu, 27 Jun 2024 11:13:05 +0000 Subject: [PATCH 40/47] DtMmdb: replace Berkeley DB with LMDB. --- cde/configure.ac | 7 +- cde/lib/DtMmdb/Makefile.am | 2 - cde/lib/DtMmdb/btree/Makefile.am | 2 +- .../DtMmdb/btree/{mmdb_btree.C => btree.C} | 159 ++-- .../DtMmdb/btree/{mmdb_btree.h => btree.h} | 10 +- cde/lib/DtMmdb/btree_berkeley/Makefile.am | 16 - cde/lib/DtMmdb/btree_berkeley/bt_close.c | 227 ----- cde/lib/DtMmdb/btree_berkeley/bt_conv.c | 237 ----- cde/lib/DtMmdb/btree_berkeley/bt_debug.c | 355 -------- cde/lib/DtMmdb/btree_berkeley/bt_delete.c | 340 ------- cde/lib/DtMmdb/btree_berkeley/bt_get.c | 254 ------ cde/lib/DtMmdb/btree_berkeley/bt_open.c | 461 ---------- cde/lib/DtMmdb/btree_berkeley/bt_overflow.c | 237 ----- cde/lib/DtMmdb/btree_berkeley/bt_page.c | 113 --- cde/lib/DtMmdb/btree_berkeley/bt_put.c | 336 ------- cde/lib/DtMmdb/btree_berkeley/bt_search.c | 139 --- cde/lib/DtMmdb/btree_berkeley/bt_seq.c | 391 --------- cde/lib/DtMmdb/btree_berkeley/bt_split.c | 826 ------------------ cde/lib/DtMmdb/btree_berkeley/bt_stack.c | 112 --- cde/lib/DtMmdb/btree_berkeley/bt_utils.c | 255 ------ cde/lib/DtMmdb/btree_berkeley/btree.h | 374 -------- cde/lib/DtMmdb/btree_berkeley/cdefs.h | 134 --- cde/lib/DtMmdb/btree_berkeley/compat.h | 254 ------ cde/lib/DtMmdb/btree_berkeley/db.c | 122 --- cde/lib/DtMmdb/btree_berkeley/db.h | 249 ------ cde/lib/DtMmdb/btree_berkeley/extern.h | 93 -- cde/lib/DtMmdb/btree_berkeley/memmove.c | 162 ---- cde/lib/DtMmdb/btree_berkeley/mktemp.c | 150 ---- cde/lib/DtMmdb/btree_berkeley/mpool.c | 542 ------------ cde/lib/DtMmdb/btree_berkeley/mpool.h | 158 ---- cde/lib/DtMmdb/btree_berkeley/ndbm.h | 100 --- cde/lib/DtMmdb/btree_berkeley/realloc.c | 32 - cde/lib/DtMmdb/btree_berkeley/snprintf.c | 86 -- cde/lib/DtMmdb/index/btree_index.h | 2 +- cde/lib/DtMmdb/schema/index_desc.C | 2 +- cde/programs/dtinfo/dtinfo/src/Makefile.am | 2 +- 36 files changed, 106 insertions(+), 6835 deletions(-) rename cde/lib/DtMmdb/btree/{mmdb_btree.C => btree.C} (53%) rename cde/lib/DtMmdb/btree/{mmdb_btree.h => btree.h} (94%) delete mode 100644 cde/lib/DtMmdb/btree_berkeley/Makefile.am delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_close.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_conv.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_debug.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_delete.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_get.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_open.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_overflow.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_page.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_put.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_search.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_seq.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_split.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_stack.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/bt_utils.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/btree.h delete mode 100644 cde/lib/DtMmdb/btree_berkeley/cdefs.h delete mode 100644 cde/lib/DtMmdb/btree_berkeley/compat.h delete mode 100644 cde/lib/DtMmdb/btree_berkeley/db.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/db.h delete mode 100644 cde/lib/DtMmdb/btree_berkeley/extern.h delete mode 100644 cde/lib/DtMmdb/btree_berkeley/memmove.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/mktemp.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/mpool.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/mpool.h delete mode 100644 cde/lib/DtMmdb/btree_berkeley/ndbm.h delete mode 100644 cde/lib/DtMmdb/btree_berkeley/realloc.c delete mode 100644 cde/lib/DtMmdb/btree_berkeley/snprintf.c diff --git a/cde/configure.ac b/cde/configure.ac index 13fdab9f4..17d8eddcc 100644 --- a/cde/configure.ac +++ b/cde/configure.ac @@ -492,6 +492,12 @@ AC_CHECK_LIB(jpeg, jpeg_read_header, [JPEGLIB="-ljpeg"], [${EXTRA_INCS} ${EXTRA_LIBS}]) AC_SUBST(JPEGLIB) +dnl lmdb +AC_CHECK_LIB(lmdb, mdb_version, [LMDBLIB="-llmdb"], + [AC_MSG_ERROR([liblmdb not found, please install it])], + [${EXTRA_INCS} ${EXTRA_LIBS}]) +AC_SUBST(LMDBLIB) + dnl Setup XTOOLLIB - we do it in this specific order to avoid ordering dnl issues XTOOLLIB="" @@ -633,7 +639,6 @@ lib/DtMmdb/HardCopy/Makefile lib/DtMmdb/StyleSheet/Makefile lib/DtMmdb/api/Makefile lib/DtMmdb/btree/Makefile -lib/DtMmdb/btree_berkeley/Makefile lib/DtMmdb/compression/Makefile lib/DtMmdb/diskhash/Makefile lib/DtMmdb/dstr/Makefile diff --git a/cde/lib/DtMmdb/Makefile.am b/cde/lib/DtMmdb/Makefile.am index b52f2d0e6..d4a56fa0e 100644 --- a/cde/lib/DtMmdb/Makefile.am +++ b/cde/lib/DtMmdb/Makefile.am @@ -4,7 +4,6 @@ SUBDIRS = HardCopy \ StyleSheet \ api \ btree \ - btree_berkeley \ compression \ diskhash \ dstr \ @@ -29,7 +28,6 @@ libDtMmdb_la_LIBADD = HardCopy/libHardCopy.la \ StyleSheet/libStyleSheet.la \ api/libapi.la \ btree/libbtree.la \ - btree_berkeley/libbtree_berkeley.la \ compression/libcompression.la \ diskhash/libdiskhash.la \ dstr/libdstr.la \ diff --git a/cde/lib/DtMmdb/btree/Makefile.am b/cde/lib/DtMmdb/btree/Makefile.am index 5d60eabe4..e48cb1cc4 100644 --- a/cde/lib/DtMmdb/btree/Makefile.am +++ b/cde/lib/DtMmdb/btree/Makefile.am @@ -4,4 +4,4 @@ noinst_LTLIBRARIES = libbtree.la libbtree_la_CXXFLAGS = -I.. -libbtree_la_SOURCES = mmdb_btree.C +libbtree_la_SOURCES = btree.C diff --git a/cde/lib/DtMmdb/btree/mmdb_btree.C b/cde/lib/DtMmdb/btree/btree.C similarity index 53% rename from cde/lib/DtMmdb/btree/mmdb_btree.C rename to cde/lib/DtMmdb/btree/btree.C index 4eb34d64d..748061c96 100644 --- a/cde/lib/DtMmdb/btree/mmdb_btree.C +++ b/cde/lib/DtMmdb/btree/btree.C @@ -48,44 +48,45 @@ */ -#include "btree/mmdb_btree.h" +#include "btree/btree.h" btree::btree(const char* store_name) { -// let the package figure out all these parameters - btree_info.flags = 0; - btree_info.cachesize = 0; - btree_info.maxkeypage = 0; - btree_info.minkeypage = 0; - btree_info.psize = 0; - btree_info.compare = NULL; - btree_info.prefix = NULL; - btree_info.lorder = 0; + int err; + MDB_txn *txn; - key_DBT.data = 0; - key_DBT.size = 0; + key_DBT.mv_data = 0; + key_DBT.mv_size = 0; - int mode = O_CREAT|O_RDWR; + if ((err = mdb_env_create(&btree_env))) + throw(stringException(mdb_strerror(err))); - //btree_DB = dbopen(store_name, mode, 0640, DB_BTREE, &btree_info); - btree_DB = dbopen(store_name, mode, 0640, DB_BTREE, NULL); + if ((err = mdb_env_open(btree_env, store_name, MDB_NOSUBDIR | MDB_NOSYNC, + 0640))) + throw(stringException(mdb_strerror(err))); - if ( btree_DB == 0 ) - throw(stringException("btree dbopen failed")); + txn = txn_begin(); + + if ((err = mdb_dbi_open(txn, NULL, 0, &btree_DB))) { + mdb_txn_abort(txn); + throw(stringException(mdb_strerror(err))); + } + + txn_commit(txn); } btree::~btree() { - if ( btree_DB->sync(btree_DB, 0) == RET_ERROR ) { - cerr << "btree sync failed"; + int err; + + if ((err = mdb_env_sync(btree_env, 0))) { + cerr << mdb_strerror(err); std::exit(1); } - if ( btree_DB->close(btree_DB) == RET_ERROR ) { - cerr << "btree close failed"; - std::exit(1); - } + mdb_dbi_close(btree_env, btree_DB); + mdb_env_close(btree_env); } void btree::clean() @@ -97,13 +98,13 @@ void btree::data_t_2_DBT(data_t& w) { switch (w.flag) { case data_t::INT: - key_DBT.data = &w.key.int_key; - key_DBT.size = sizeof(w.key.int_key); + key_DBT.mv_data = &w.key.int_key; + key_DBT.mv_size = sizeof(w.key.int_key); break; case data_t::STRING: - key_DBT.data = w.key.str_key; - key_DBT.size = strlen(w.key.str_key); + key_DBT.mv_data = w.key.str_key; + key_DBT.mv_size = strlen(w.key.str_key); break; case data_t::VOID: @@ -113,74 +114,78 @@ void btree::data_t_2_DBT(data_t& w) Boolean btree::insert(data_t& w) { + int err; + MDB_txn *txn; + data_t_2_DBT(w); - DBT data_DBT; - data_DBT.data = &w.dt; - data_DBT.size = sizeof(w.dt); + MDB_val data_DBT; + data_DBT.mv_data = &w.dt; + data_DBT.mv_size = sizeof(w.dt); - //int status = btree_DB->put(btree_DB, &key_DBT, &data_DBT, R_NOOVERWRITE); - int status = btree_DB->put(btree_DB, &key_DBT, &data_DBT, 0); + txn = txn_begin(); - switch (status) { - case RET_ERROR: - throw(stringException("btree put failed")); - break; + err = mdb_put(txn, btree_DB, &key_DBT, &data_DBT, 0); - case RET_SPECIAL: - throw(stringException("btree put: dup key")); - break; - - case RET_SUCCESS: - return true; + if (err && err != MDB_MAP_FULL && err != MDB_TXN_FULL) { + mdb_txn_abort(txn); + throw(stringException(mdb_strerror(err))); } - return false; + txn_commit(txn); + + if (err) { + cerr << mdb_strerror(err); + return false; + } + + return true; } Boolean btree::remove(data_t& w) { + int err; + MDB_txn *txn; + data_t_2_DBT(w); - int status = btree_DB->del(btree_DB, &key_DBT, 0); + txn = txn_begin(); - switch (status) { - case RET_ERROR: - throw(stringException("btree delete failed")); - break; - - case RET_SPECIAL: - case RET_SUCCESS: - return true; + if ((err = mdb_del(txn, btree_DB, &key_DBT, NULL))) { + mdb_txn_abort(txn); + throw(stringException(mdb_strerror(err))); } - return false; + txn_commit(txn); + + return true; } -Boolean btree::member(data_t& w) +Boolean btree::member(data_t& w) { + int err; + MDB_txn *txn; + data_t_2_DBT(w); - DBT data_DBT; + MDB_val data_DBT; - int status = btree_DB->get(btree_DB, &key_DBT, &data_DBT, 0); + txn = txn_begin(MDB_RDONLY); - switch (status) { - case RET_ERROR: - throw(stringException("btree get failed")); - break; + err = mdb_get(txn, btree_DB, &key_DBT, &data_DBT); - case RET_SPECIAL: - return false; + mdb_txn_abort(txn); - case RET_SUCCESS: - if ( data_DBT.size != sizeof(w.dt) ) - throw(stringException("btree get: tree corrupted")); - - memcpy((char*)&w.dt, data_DBT.data, data_DBT.size); - return true; + if (err) { + if (err != MDB_NOTFOUND) throw(stringException(mdb_strerror(err))); + return false; } - return false; + if (data_DBT.mv_size != sizeof(w.dt)) + throw(stringException("btree get: tree corrupted")); + + memcpy((char*)&w.dt, data_DBT.mv_data, data_DBT.mv_size); + + return true; } ostream& btree::asciiOut(ostream& out) @@ -193,3 +198,19 @@ istream& btree::asciiIn(istream& in) return in; } +MDB_txn *btree::txn_begin(unsigned int flags) { + int err; + MDB_txn *txn; + + if ((err = mdb_txn_begin(btree_env, NULL, flags, &txn))) + throw(stringException(mdb_strerror(err))); + + return txn; +} + +void btree::txn_commit(MDB_txn *txn) { + int err; + + if ((err = mdb_txn_commit(txn))) + throw(stringException(mdb_strerror(err))); +} diff --git a/cde/lib/DtMmdb/btree/mmdb_btree.h b/cde/lib/DtMmdb/btree/btree.h similarity index 94% rename from cde/lib/DtMmdb/btree/mmdb_btree.h rename to cde/lib/DtMmdb/btree/btree.h index 49cfef606..b09d68353 100644 --- a/cde/lib/DtMmdb/btree/mmdb_btree.h +++ b/cde/lib/DtMmdb/btree/btree.h @@ -69,9 +69,9 @@ #endif #include +#include #include "dstr/index_agent.h" -#include "btree_berkeley/db.h" class btree : public index_agent @@ -91,12 +91,14 @@ public: istream& asciiIn(istream& in); protected: - DBT key_DBT; - DB* btree_DB; - BTREEINFO btree_info; + MDB_val key_DBT; + MDB_dbi btree_DB; + MDB_env *btree_env; protected: void data_t_2_DBT(data_t& w); + MDB_txn *txn_begin(unsigned int flags = 0); + void txn_commit(MDB_txn *txn); }; #endif diff --git a/cde/lib/DtMmdb/btree_berkeley/Makefile.am b/cde/lib/DtMmdb/btree_berkeley/Makefile.am deleted file mode 100644 index 6cfdbdf1b..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -noinst_LTLIBRARIES = libbtree_berkeley.la - -libbtree_berkeley_la_CFLAGS = -DMEMMOVE -I.. - -libbtree_berkeley_la_SOURCES = bt_close.c bt_conv.c bt_debug.c bt_delete.c \ - bt_get.c bt_open.c bt_overflow.c bt_page.c \ - bt_put.c bt_search.c bt_seq.c bt_split.c \ - bt_stack.c bt_utils.c mktemp.c \ - realloc.c snprintf.c mpool.c db.c - -if AIX -else -libbtree_berkeley_la_SOURCES += memmove.c -endif diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_close.c b/cde/lib/DtMmdb/btree_berkeley/bt_close.c deleted file mode 100644 index 13b657a27..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_close.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_close.c /main/4 1996/06/11 17:12:14 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_close.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include -#include -#include - -#include -#include "btree.h" - -static int bt_meta __P((BTREE *)); - -/* - * BT_CLOSE -- Close a btree. - * - * Parameters: - * dbp: pointer to access method - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__bt_close(DB *dbp) -{ - BTREE *t; - int fd; - - t = dbp->internal; - - /* Toss any page pinned across calls. */ - if (t->bt_pinned != NULL) { - mpool_put(t->bt_mp, t->bt_pinned, 0); - t->bt_pinned = NULL; - } - - /* - * Delete any already deleted record that we've been saving - * because the cursor pointed to it. - */ - if (ISSET(t, B_DELCRSR) && __bt_crsrdel(t, &t->bt_bcursor)) - return (RET_ERROR); - - if (__bt_sync(dbp, 0) == RET_ERROR) - return (RET_ERROR); - - if (mpool_close(t->bt_mp) == RET_ERROR) - return (RET_ERROR); - - if (t->bt_stack) - free(t->bt_stack); - if (t->bt_kbuf) - free(t->bt_kbuf); - if (t->bt_dbuf) - free(t->bt_dbuf); - - fd = t->bt_fd; - free(t); - free(dbp); - return (close(fd) ? RET_ERROR : RET_SUCCESS); -} - -/* - * BT_SYNC -- sync the btree to disk. - * - * Parameters: - * dbp: pointer to access method - * - * Returns: - * RET_SUCCESS, RET_ERROR. - */ -int -__bt_sync(const DB *dbp, u_int flags) -{ - BTREE *t; - int status; - PAGE *h; - void *p = NULL; - - t = dbp->internal; - - /* Toss any page pinned across calls. */ - if (t->bt_pinned != NULL) { - mpool_put(t->bt_mp, t->bt_pinned, 0); - t->bt_pinned = NULL; - } - - /* Sync doesn't currently take any flags. */ - if (flags != 0) { - errno = EINVAL; - return (RET_ERROR); - } - - if (ISSET(t, B_INMEM | B_RDONLY) || !ISSET(t, B_MODIFIED)) - return (RET_SUCCESS); - - if (ISSET(t, B_METADIRTY) && bt_meta(t) == RET_ERROR) - return (RET_ERROR); - - /* - * Nastiness. If the cursor has been marked for deletion, but not - * actually deleted, we have to make a copy of the page, delete the - * key/data item, sync the file, and then restore the original page - * contents. - */ - if (ISSET(t, B_DELCRSR)) { - if ((p = (void*)malloc(t->bt_psize)) == NULL) - return (RET_ERROR); - if ((h = mpool_get(t->bt_mp, t->bt_bcursor.pgno, 0)) == NULL) { - free(p); - return (RET_ERROR); - } - memmove(p, h, t->bt_psize); - if ((status = - __bt_dleaf(t, h, t->bt_bcursor.index)) == RET_ERROR) - goto ecrsr; - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - } - - if ((status = mpool_sync(t->bt_mp)) == RET_SUCCESS) - CLR(t, B_MODIFIED); - -ecrsr: if (ISSET(t, B_DELCRSR)) { - if ((h = mpool_get(t->bt_mp, t->bt_bcursor.pgno, 0)) == NULL) { - free(p); - return (RET_ERROR); - } - memmove(h, p, t->bt_psize); - free(p); - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - } - return (status); -} - -/* - * BT_META -- write the tree meta data to disk. - * - * Parameters: - * t: tree - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -static int -bt_meta(BTREE *t) -{ - BTMETA m; - void *p; - - if ((p = mpool_get(t->bt_mp, P_META, 0)) == NULL) - return (RET_ERROR); - - /* Fill in metadata. */ - m.m_magic = BTREEMAGIC; - m.m_version = BTREEVERSION; - m.m_psize = t->bt_psize; - m.m_free = t->bt_free; - m.m_nrecs = t->bt_nrecs; - m.m_flags = t->bt_flags & SAVEMETA; - - memmove(p, &m, sizeof(BTMETA)); - mpool_put(t->bt_mp, p, MPOOL_DIRTY); - return (RET_SUCCESS); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_conv.c b/cde/lib/DtMmdb/btree_berkeley/bt_conv.c deleted file mode 100644 index 58ad4d1ad..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_conv.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_conv.c /main/3 1996/06/11 17:12:19 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_conv.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include - -#include -#include "btree.h" - -static void mswap __P((PAGE *)); - -/* - * __BT_BPGIN, __BT_BPGOUT -- - * Convert host-specific number layout to/from the host-independent - * format stored on disk. - * - * Parameters: - * t: tree - * pg: page number - * h: page to convert - */ -void -__bt_pgin(void *t, pgno_t pg, void *pp) -{ - PAGE *h; - int i, top; - u_char flags; - char *p; - - if (!ISSET(((BTREE *)t), B_NEEDSWAP)) - return; - if (pg == P_META) { - mswap(pp); - return; - } - - h = pp; - BLSWAP(h->pgno); - BLSWAP(h->prevpg); - BLSWAP(h->nextpg); - BLSWAP(h->flags); - BSSWAP(h->lower); - BSSWAP(h->upper); - - top = NEXTINDEX(h); - if ((h->flags & P_TYPE) == P_BINTERNAL) - for (i = 0; i < top; i++) { - BSSWAP(h->linp[i]); - p = (char *)GETBINTERNAL(h, i); - BLPSWAP(p); - p += sizeof(size_t); - BLPSWAP(p); - p += sizeof(pgno_t); - if (*(u_char *)p & P_BIGKEY) { - p += sizeof(u_char); - BLPSWAP(p); - p += sizeof(pgno_t); - BLPSWAP(p); - } - } - else if ((h->flags & P_TYPE) == P_BLEAF) - for (i = 0; i < top; i++) { - BSSWAP(h->linp[i]); - p = (char *)GETBLEAF(h, i); - BLPSWAP(p); - p += sizeof(size_t); - BLPSWAP(p); - p += sizeof(size_t); - flags = *(u_char *)p; - if (flags & (P_BIGKEY | P_BIGDATA)) { - p += sizeof(u_char); - if (flags & P_BIGKEY) { - BLPSWAP(p); - p += sizeof(pgno_t); - BLPSWAP(p); - } - if (flags & P_BIGDATA) { - p += sizeof(size_t); - BLPSWAP(p); - p += sizeof(pgno_t); - BLPSWAP(p); - } - } - } -} - -void -__bt_pgout(void *t, pgno_t pg, void *pp) -{ - PAGE *h; - int i, top; - u_char flags; - char *p; - - if (!ISSET(((BTREE *)t), B_NEEDSWAP)) - return; - if (pg == P_META) { - mswap(pp); - return; - } - - h = pp; - top = NEXTINDEX(h); - if ((h->flags & P_TYPE) == P_BINTERNAL) - for (i = 0; i < top; i++) { - p = (char *)GETBINTERNAL(h, i); - BLPSWAP(p); - p += sizeof(size_t); - BLPSWAP(p); - p += sizeof(pgno_t); - if (*(u_char *)p & P_BIGKEY) { - p += sizeof(u_char); - BLPSWAP(p); - p += sizeof(pgno_t); - BLPSWAP(p); - } - BSSWAP(h->linp[i]); - } - else if ((h->flags & P_TYPE) == P_BLEAF) - for (i = 0; i < top; i++) { - p = (char *)GETBLEAF(h, i); - BLPSWAP(p); - p += sizeof(size_t); - BLPSWAP(p); - p += sizeof(size_t); - flags = *(u_char *)p; - if (flags & (P_BIGKEY | P_BIGDATA)) { - p += sizeof(u_char); - if (flags & P_BIGKEY) { - BLPSWAP(p); - p += sizeof(pgno_t); - BLPSWAP(p); - } - if (flags & P_BIGDATA) { - p += sizeof(size_t); - BLPSWAP(p); - p += sizeof(pgno_t); - BLPSWAP(p); - } - } - BSSWAP(h->linp[i]); - } - - BLSWAP(h->pgno); - BLSWAP(h->prevpg); - BLSWAP(h->nextpg); - BLSWAP(h->flags); - BSSWAP(h->lower); - BSSWAP(h->upper); -} - -/* - * MSWAP -- Actually swap the bytes on the meta page. - * - * Parameters: - * p: page to convert - */ -static void -mswap(PAGE *pg) -{ - char *p; - - p = (char *)pg; - BLPSWAP(p); /* m_magic */ - p += sizeof(u_long); - BLPSWAP(p); /* m_version */ - p += sizeof(u_long); - BLPSWAP(p); /* m_psize */ - p += sizeof(u_long); - BLPSWAP(p); /* m_free */ - p += sizeof(u_long); - BLPSWAP(p); /* m_nrecs */ - p += sizeof(u_long); - BLPSWAP(p); /* m_flags */ - p += sizeof(u_long); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_debug.c b/cde/lib/DtMmdb/btree_berkeley/bt_debug.c deleted file mode 100644 index 93b6048b9..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_debug.c +++ /dev/null @@ -1,355 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_debug.c /main/4 1996/10/04 09:54:32 drk $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_debug.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include - -#include -#include "btree.h" - -#ifdef DEBUG -/* - * BT_DUMP -- Dump the tree - * - * Parameters: - * dbp: pointer to the DB - */ -void -__bt_dump(dbp) - DB *dbp; -{ - BTREE *t; - PAGE *h; - pgno_t i; - char *sep; - - t = dbp->internal; - (void)fprintf(stderr, "%s: pgsz %ld", - ISSET(t, B_INMEM) ? "memory" : "disk", t->bt_psize); - if (ISSET(t, R_RECNO)) - (void)fprintf(stderr, " keys %lu", t->bt_nrecs); -#undef X -#define X(flag, name) \ - if (ISSET(t, flag)) { \ - (void)fprintf(stderr, "%s%s", sep, name); \ - sep = ", "; \ - } - if (t->bt_flags) { - sep = " flags ("; - X(B_DELCRSR, "DELCRSR"); - X(R_FIXLEN, "FIXLEN"); - X(B_INMEM, "INMEM"); - X(B_NODUPS, "NODUPS"); - X(B_RDONLY, "RDONLY"); - X(R_RECNO, "RECNO"); - X(B_SEQINIT, "SEQINIT"); - X(B_METADIRTY,"METADIRTY"); - (void)fprintf(stderr, ")\n"); - } -#undef X - - for (i = P_ROOT; (h = mpool_get(t->bt_mp, i, 0)) != NULL; ++i) { - __bt_dpage(h); - (void)mpool_put(t->bt_mp, h, 0); - } -} - -/* - * BT_DMPAGE -- Dump the meta page - * - * Parameters: - * h: pointer to the PAGE - */ -void -__bt_dmpage(h) - PAGE *h; -{ - BTMETA *m; - char *sep; - - m = (BTMETA *)h; - (void)fprintf(stderr, "magic %lx\n", m->m_magic); - (void)fprintf(stderr, "version %lu\n", m->m_version); - (void)fprintf(stderr, "psize %lu\n", m->m_psize); - (void)fprintf(stderr, "free %lu\n", m->m_free); - (void)fprintf(stderr, "nrecs %lu\n", m->m_nrecs); - (void)fprintf(stderr, "flags %lu", m->m_flags); -#undef X -#define X(flag, name) \ - if (m->m_flags & flag) { \ - (void)fprintf(stderr, "%s%s", sep, name); \ - sep = ", "; \ - } - if (m->m_flags) { - sep = " ("; - X(B_NODUPS, "NODUPS"); - X(R_RECNO, "RECNO"); - (void)fprintf(stderr, ")"); - } -} - -/* - * BT_DNPAGE -- Dump the page - * - * Parameters: - * n: page number to dump. - */ -void -__bt_dnpage(dbp, pgno) - DB *dbp; - pgno_t pgno; -{ - BTREE *t; - PAGE *h; - - t = dbp->internal; - if ((h = mpool_get(t->bt_mp, pgno, 0)) != NULL) { - __bt_dpage(h); - (void)mpool_put(t->bt_mp, h, 0); - } -} - -/* - * BT_DPAGE -- Dump the page - * - * Parameters: - * h: pointer to the PAGE - */ -void -__bt_dpage(h) - PAGE *h; -{ - BINTERNAL *bi; - BLEAF *bl; - RINTERNAL *ri; - RLEAF *rl; - indx_t cur, top; - char *sep; - - (void)fprintf(stderr, " page %ld: (", h->pgno); -#undef X -#define X(flag, name) \ - if (h->flags & flag) { \ - (void)fprintf(stderr, "%s%s", sep, name); \ - sep = ", "; \ - } - sep = ""; - X(P_BINTERNAL, "BINTERNAL") /* types */ - X(P_BLEAF, "BLEAF") - X(P_RINTERNAL, "RINTERNAL") /* types */ - X(P_RLEAF, "RLEAF") - X(P_OVERFLOW, "OVERFLOW") - X(P_PRESERVE, "PRESERVE"); - (void)fprintf(stderr, ")\n"); -#undef X - - (void)fprintf(stderr, "\tprev %2ld next %2ld", h->prevpg, h->nextpg); - if (h->flags & P_OVERFLOW) - return; - - top = NEXTINDEX(h); - (void)fprintf(stderr, " lower %3d upper %3d nextind %d\n", - h->lower, h->upper, top); - for (cur = 0; cur < top; cur++) { - (void)fprintf(stderr, "\t[%03d] %4d ", cur, h->linp[cur]); - switch(h->flags & P_TYPE) { - case P_BINTERNAL: - bi = GETBINTERNAL(h, cur); - (void)fprintf(stderr, - "size %03ld pgno %03ld", (long)bi->ksize, bi->pgno); - if (bi->flags & P_BIGKEY) - (void)fprintf(stderr, " (indirect)"); - else if (bi->ksize) - (void)fprintf(stderr, - " {%.*s}", (int)bi->ksize, bi->bytes); - break; - case P_RINTERNAL: - ri = GETRINTERNAL(h, cur); - (void)fprintf(stderr, "entries %03ld pgno %03ld", - ri->nrecs, ri->pgno); - break; - case P_BLEAF: - bl = GETBLEAF(h, cur); - if (bl->flags & P_BIGKEY) - (void)fprintf(stderr, - "big key page %lu size %lu/", - *(pgno_t *)bl->bytes, - (long)*(size_t *)(bl->bytes + sizeof(pgno_t))); - else if (bl->ksize) - (void)fprintf(stderr, "%s/", bl->bytes); - if (bl->flags & P_BIGDATA) - (void)fprintf(stderr, - "big data page %lu size %lu", - *(pgno_t *)(bl->bytes + bl->ksize), - (long)*(size_t *)(bl->bytes + bl->ksize + - sizeof(pgno_t))); - else if (bl->dsize) - (void)fprintf(stderr, "%.*s", - (int)bl->dsize, bl->bytes + bl->ksize); - break; - case P_RLEAF: - rl = GETRLEAF(h, cur); - if (rl->flags & P_BIGDATA) - (void)fprintf(stderr, - "big data page %lu size %lu", - *(pgno_t *)rl->bytes, - (long)*(size_t *)(rl->bytes + sizeof(pgno_t))); - else if (rl->dsize) - (void)fprintf(stderr, - "%.*s", (int)rl->dsize, rl->bytes); - break; - } - (void)fprintf(stderr, "\n"); - } -} -#endif - -#ifdef STATISTICS -/* - * BT_STAT -- Gather/print the tree statistics - * - * Parameters: - * dbp: pointer to the DB - */ -void -__bt_stat(dbp) - DB *dbp; -{ - extern u_long bt_cache_hit, bt_cache_miss; - extern u_long bt_rootsplit, bt_split, bt_sortsplit; - extern u_long bt_pfxsaved; - BTREE *t; - PAGE *h; - pgno_t i, pcont, pinternal, pleaf; - u_long ifree, lfree, nkeys; - int levels; - - t = dbp->internal; - pcont = pinternal = pleaf = 0; - nkeys = ifree = lfree = 0; - for (i = P_ROOT; (h = mpool_get(t->bt_mp, i, 0)) != NULL; ++i) { - switch(h->flags & P_TYPE) { - case P_BINTERNAL: - case P_RINTERNAL: - ++pinternal; - ifree += h->upper - h->lower; - break; - case P_BLEAF: - case P_RLEAF: - ++pleaf; - lfree += h->upper - h->lower; - nkeys += NEXTINDEX(h); - break; - case P_OVERFLOW: - ++pcont; - break; - } - (void)mpool_put(t->bt_mp, h, 0); - } - - /* Count the levels of the tree. */ - for (i = P_ROOT, levels = 0 ;; ++levels) { - h = mpool_get(t->bt_mp, i, 0); - if (h->flags & (P_BLEAF|P_RLEAF)) { - if (levels == 0) - levels = 1; - (void)mpool_put(t->bt_mp, h, 0); - break; - } - i = ISSET(t, R_RECNO) ? - GETRINTERNAL(h, 0)->pgno : - GETBINTERNAL(h, 0)->pgno; - (void)mpool_put(t->bt_mp, h, 0); - } - - (void)fprintf(stderr, "%d level%s with %ld keys", - levels, levels == 1 ? "" : "s", nkeys); - if (ISSET(t, R_RECNO)) - (void)fprintf(stderr, " (%ld header count)", t->bt_nrecs); - (void)fprintf(stderr, - "\n%lu pages (leaf %ld, internal %ld, overflow %ld)\n", - pinternal + pleaf + pcont, pleaf, pinternal, pcont); - (void)fprintf(stderr, "%ld cache hits, %ld cache misses\n", - bt_cache_hit, bt_cache_miss); - (void)fprintf(stderr, "%ld splits (%ld root splits, %ld sort splits)\n", - bt_split, bt_rootsplit, bt_sortsplit); - pleaf *= t->bt_psize - BTDATAOFF; - if (pleaf) - (void)fprintf(stderr, - "%.0f%% leaf fill (%ld bytes used, %ld bytes free)\n", - ((double)(pleaf - lfree) / pleaf) * 100, - pleaf - lfree, lfree); - pinternal *= t->bt_psize - BTDATAOFF; - if (pinternal) - (void)fprintf(stderr, - "%.0f%% internal fill (%ld bytes used, %ld bytes free\n", - ((double)(pinternal - ifree) / pinternal) * 100, - pinternal - ifree, ifree); - if (bt_pfxsaved) - (void)fprintf(stderr, "prefix checking removed %lu bytes.\n", - bt_pfxsaved); -} -#endif diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_delete.c b/cde/lib/DtMmdb/btree_berkeley/bt_delete.c deleted file mode 100644 index d31aaf0c6..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_delete.c +++ /dev/null @@ -1,340 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_delete.c /main/3 1996/06/11 17:12:29 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_delete.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include - -#include -#include "btree.h" - -static int bt_bdelete __P((BTREE *, const DBT *)); - -/* - * __BT_DELETE -- Delete the item(s) referenced by a key. - * - * Parameters: - * dbp: pointer to access method - * key: key to delete - * flags: R_CURSOR if deleting what the cursor references - * - * Returns: - * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. - */ -int -__bt_delete(const DB *dbp, const DBT *key, u_int flags) -{ - BTREE *t; - int status; - - t = dbp->internal; - - /* Toss any page pinned across calls. */ - if (t->bt_pinned != NULL) { - mpool_put(t->bt_mp, t->bt_pinned, 0); - t->bt_pinned = NULL; - } - - if (ISSET(t, B_RDONLY)) { - errno = EPERM; - return (RET_ERROR); - } - - switch(flags) { - case 0: - status = bt_bdelete(t, key); - break; - case R_CURSOR: - /* - * If flags is R_CURSOR, delete the cursor; must already have - * started a scan and not have already deleted the record. For - * the delete cursor bit to have been set requires that the - * scan be initialized, so no reason to check. - */ - if (!ISSET(t, B_SEQINIT)) - goto einval; - status = ISSET(t, B_DELCRSR) ? - RET_SPECIAL : __bt_crsrdel(t, &t->bt_bcursor); - break; - default: -einval: errno = EINVAL; - return (RET_ERROR); - } - if (status == RET_SUCCESS) - SET(t, B_MODIFIED); - return (status); -} - -/* - * BT_BDELETE -- Delete all key/data pairs matching the specified key. - * - * Parameters: - * tree: tree - * key: key to delete - * - * Returns: - * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. - */ -static int -bt_bdelete(BTREE *t, const DBT *key) -{ - EPG *e, save; - PAGE *h; - pgno_t cpgno, pg; - indx_t cindex; - int deleted, dirty1, dirty2, exact; - - /* Find any matching record; __bt_search pins the page. */ - if ((e = __bt_search(t, key, &exact)) == NULL) - return (RET_ERROR); - if (!exact) { - mpool_put(t->bt_mp, e->page, 0); - return (RET_SPECIAL); - } - - /* - * Delete forward, then delete backward, from the found key. The - * ordering is so that the deletions don't mess up the page refs. - * The first loop deletes the key from the original page, the second - * unpins the original page. In the first loop, dirty1 is set if - * the original page is modified, and dirty2 is set if any subsequent - * pages are modified. In the second loop, dirty1 starts off set if - * the original page has been modified, and is set if any subsequent - * pages are modified. - * - * If find the key referenced by the cursor, don't delete it, just - * flag it for future deletion. The cursor page number is P_INVALID - * unless the sequential scan is initialized, so no reason to check. - * A special case is when the already deleted cursor record was the - * only record found. If so, then the delete opertion fails as no - * records were deleted. - * - * Cycle in place in the current page until the current record doesn't - * match the key or the page is empty. If the latter, walk forward, - * skipping empty pages and repeating until a record doesn't match - * the key or the end of the tree is reached. - */ - cpgno = t->bt_bcursor.pgno; - cindex = t->bt_bcursor.index; - save = *e; - dirty1 = 0; - for (h = e->page, deleted = 0;;) { - dirty2 = 0; - do { - if (h->pgno == cpgno && e->index == cindex) { - if (!ISSET(t, B_DELCRSR)) { - SET(t, B_DELCRSR); - deleted = 1; - } - ++e->index; - } else { - if (__bt_dleaf(t, h, e->index)) { - if (h->pgno != save.page->pgno) - mpool_put(t->bt_mp, h, dirty2); - mpool_put(t->bt_mp, save.page, dirty1); - return (RET_ERROR); - } - if (h->pgno == save.page->pgno) - dirty1 = MPOOL_DIRTY; - else - dirty2 = MPOOL_DIRTY; - deleted = 1; - } - } while (e->index < NEXTINDEX(h) && __bt_cmp(t, key, e) == 0); - - /* - * Quit if didn't find a match, no next page, or first key on - * the next page doesn't match. Don't unpin the original page - * unless an error occurs. - */ - if (e->index < NEXTINDEX(h)) - break; - for (;;) { - if ((pg = h->nextpg) == P_INVALID) - goto done1; - if (h->pgno != save.page->pgno) - mpool_put(t->bt_mp, h, dirty2); - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) { - mpool_put(t->bt_mp, save.page, dirty1); - return (RET_ERROR); - } - if (NEXTINDEX(h) != 0) { - e->page = h; - e->index = 0; - break; - } - } - - if (__bt_cmp(t, key, e) != 0) - break; - } - - /* - * Reach here with the original page and the last page referenced - * pinned (they may be the same). Release it if not the original. - */ -done1: if (h->pgno != save.page->pgno) - mpool_put(t->bt_mp, h, dirty2); - - /* - * Walk backwards from the record previous to the record returned by - * __bt_search, skipping empty pages, until a record doesn't match - * the key or reach the beginning of the tree. - */ - *e = save; - for (;;) { - if (e->index) - --e->index; - for (h = e->page; e->index; --e->index) { - if (__bt_cmp(t, key, e) != 0) - goto done2; - if (h->pgno == cpgno && e->index == cindex) { - if (!ISSET(t, B_DELCRSR)) { - SET(t, B_DELCRSR); - deleted = 1; - } - } else { - if (__bt_dleaf(t, h, e->index) == RET_ERROR) { - mpool_put(t->bt_mp, h, dirty1); - return (RET_ERROR); - } - if (h->pgno == save.page->pgno) - dirty1 = MPOOL_DIRTY; - deleted = 1; - } - } - - if ((pg = h->prevpg) == P_INVALID) - goto done2; - mpool_put(t->bt_mp, h, dirty1); - dirty1 = 0; - if ((e->page = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - e->index = NEXTINDEX(e->page); - } - - /* - * Reach here with the last page that was looked at pinned. Release - * it. - */ -done2: mpool_put(t->bt_mp, h, dirty1); - return (deleted ? RET_SUCCESS : RET_SPECIAL); -} - -/* - * __BT_DLEAF -- Delete a single record from a leaf page. - * - * Parameters: - * t: tree - * index: index on current page to delete - * - * Returns: - * RET_SUCCESS, RET_ERROR. - */ -int -__bt_dleaf(BTREE *t, PAGE *h, int index) -{ - BLEAF *bl; - indx_t *ip, offset; - size_t nbytes; - int cnt; - char *from; - void *to; - - /* - * Delete a record from a btree leaf page. Internal records are never - * deleted from internal pages, regardless of the records that caused - * them to be added being deleted. Pages made empty by deletion are - * not reclaimed. They are, however, made available for reuse. - * - * Pack the remaining entries at the end of the page, shift the indices - * down, overwriting the deleted record and its index. If the record - * uses overflow pages, make them available for reuse. - */ - to = bl = GETBLEAF(h, index); - if (bl->flags & P_BIGKEY && __ovfl_delete(t, bl->bytes) == RET_ERROR) - return (RET_ERROR); - if (bl->flags & P_BIGDATA && - __ovfl_delete(t, bl->bytes + bl->ksize) == RET_ERROR) - return (RET_ERROR); - nbytes = NBLEAF(bl); - - /* - * Compress the key/data pairs. Compress and adjust the [BR]LEAF - * offsets. Reset the headers. - */ - from = (char *)h + h->upper; - memmove(from + nbytes, from, (char *)to - from); - h->upper += nbytes; - - offset = h->linp[index]; - for (cnt = index, ip = &h->linp[0]; cnt--; ++ip) - if (ip[0] < offset) - ip[0] += nbytes; - for (cnt = NEXTINDEX(h) - index; --cnt; ++ip) - ip[0] = ip[1] < offset ? ip[1] + nbytes : ip[1]; - h->lower -= sizeof(indx_t); - return (RET_SUCCESS); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_get.c b/cde/lib/DtMmdb/btree_berkeley/bt_get.c deleted file mode 100644 index f2ea0f145..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_get.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_get.c /main/3 1996/06/11 17:12:34 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_get.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include - -#include -#include "btree.h" - -/* - * __BT_GET -- Get a record from the btree. - * - * Parameters: - * dbp: pointer to access method - * key: key to find - * data: data to return - * flag: currently unused - * - * Returns: - * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. - */ -int -__bt_get(const DB *dbp, const DBT *key, DBT *data, u_int flags) -{ - BTREE *t; - EPG *e; - int exact, status; - - t = dbp->internal; - - /* Toss any page pinned across calls. */ - if (t->bt_pinned != NULL) { - mpool_put(t->bt_mp, t->bt_pinned, 0); - t->bt_pinned = NULL; - } - - /* Get currently doesn't take any flags. */ - if (flags) { - errno = EINVAL; - return (RET_ERROR); - } - - if ((e = __bt_search(t, key, &exact)) == NULL) - return (RET_ERROR); - if (!exact) { - mpool_put(t->bt_mp, e->page, 0); - return (RET_SPECIAL); - } - - /* - * A special case is if we found the record but it's flagged for - * deletion. In this case, we want to find another record with the - * same key, if it exists. Rather than look around the tree we call - * __bt_first and have it redo the search, as __bt_first will not - * return keys marked for deletion. Slow, but should never happen. - */ - if (ISSET(t, B_DELCRSR) && e->page->pgno == t->bt_bcursor.pgno && - e->index == t->bt_bcursor.index) { - mpool_put(t->bt_mp, e->page, 0); - if ((e = __bt_first(t, key, &exact)) == NULL) - return (RET_ERROR); - if (!exact) - return (RET_SPECIAL); - } - - status = __bt_ret(t, e, NULL, data); - /* - * If the user is doing concurrent access, we copied the - * key/data, toss the page. - */ - if (ISSET(t, B_DB_LOCK)) - mpool_put(t->bt_mp, e->page, 0); - else - t->bt_pinned = e->page; - return (status); -} - -/* - * __BT_FIRST -- Find the first entry. - * - * Parameters: - * t: the tree - * key: the key - * - * Returns: - * The first entry in the tree greater than or equal to key. - */ -EPG * -__bt_first(BTREE *t, const DBT *key, int *exactp) -{ - PAGE *h; - EPG *e; - EPG save; - pgno_t cpgno, pg; - indx_t cindex; - int found; - - /* - * Find any matching record; __bt_search pins the page. Only exact - * matches are tricky, otherwise just return the location of the key - * if it were to be inserted into the tree. - */ - if ((e = __bt_search(t, key, exactp)) == NULL) - return (NULL); - if (!*exactp) - return (e); - - if (ISSET(t, B_DELCRSR)) { - cpgno = t->bt_bcursor.pgno; - cindex = t->bt_bcursor.index; - } else { - cpgno = P_INVALID; - cindex = 0; /* GCC thinks it's uninitialized. */ - } - - /* - * Walk backwards, skipping empty pages, as long as the entry matches - * and there are keys left in the tree. Save a copy of each match in - * case we go too far. A special case is that we don't return a match - * on records that the cursor references that have already been flagged - * for deletion. - */ - save = *e; - h = e->page; - found = 0; - do { - if (cpgno != h->pgno || cindex != e->index) { - if (save.page->pgno != e->page->pgno) { - mpool_put(t->bt_mp, save.page, 0); - save = *e; - } else - save.index = e->index; - found = 1; - } - /* - * Make a special effort not to unpin the page the last (or - * original) match was on, but also make sure it's unpinned - * if an error occurs. - */ - while (e->index == 0) { - if (h->prevpg == P_INVALID) - goto done1; - if (h->pgno != save.page->pgno) - mpool_put(t->bt_mp, h, 0); - if ((h = mpool_get(t->bt_mp, h->prevpg, 0)) == NULL) { - if (h->pgno == save.page->pgno) - mpool_put(t->bt_mp, save.page, 0); - return (NULL); - } - e->page = h; - e->index = NEXTINDEX(h); - } - --e->index; - } while (__bt_cmp(t, key, e) == 0); - - /* - * Reach here with the last page that was looked at pinned, which may - * or may not be the same as the last (or original) match page. If - * it's not useful, release it. - */ -done1: if (h->pgno != save.page->pgno) - mpool_put(t->bt_mp, h, 0); - - /* - * If still haven't found a record, the only possibility left is the - * next one. Move forward one slot, skipping empty pages and check. - */ - if (!found) { - h = save.page; - if (++save.index == NEXTINDEX(h)) { - do { - pg = h->nextpg; - mpool_put(t->bt_mp, h, 0); - if (pg == P_INVALID) { - *exactp = 0; - return (e); - } - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (NULL); - } while ((save.index = NEXTINDEX(h)) == 0); - save.page = h; - } - if (__bt_cmp(t, key, &save) != 0) { - *exactp = 0; - return (e); - } - } - *e = save; - *exactp = 1; - return (e); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_open.c b/cde/lib/DtMmdb/btree_berkeley/bt_open.c deleted file mode 100644 index 62c87d95f..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_open.c +++ /dev/null @@ -1,461 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_open.c /main/3 1996/06/11 17:12:40 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_open.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -/* - * Implementation of btree access method for 4.4BSD. - * - * The design here was originally based on that of the btree access method - * used in the Postgres database system at UC Berkeley. This implementation - * is wholly independent of the Postgres code. - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#define __DBINTERFACE_PRIVATE -#include -#include "btree.h" - -static int byteorder __P((void)); -static int nroot __P((BTREE *)); -static int tmp __P((void)); - -/* - * __BT_OPEN -- Open a btree. - * - * Creates and fills a DB struct, and calls the routine that actually - * opens the btree. - * - * Parameters: - * fname: filename (NULL for in-memory trees) - * flags: open flag bits - * mode: open permission bits - * b: BTREEINFO pointer - * - * Returns: - * NULL on failure, pointer to DB on success. - * - */ -DB * -__bt_open(const char *fname, int flags, int mode, const BTREEINFO *openinfo, int dflags) -{ - BTMETA m; - BTREE *t; - BTREEINFO b; - DB *dbp; - pgno_t ncache; - struct stat sb; - int machine_lorder, nr; - - t = NULL; - - /* - * Intention is to make sure all of the user's selections are okay - * here and then use them without checking. Can't be complete, since - * we don't know the right page size, lorder or flags until the backing - * file is opened. Also, the file's page size can cause the cachesize - * to change. - */ - machine_lorder = byteorder(); - if (openinfo) { - b = *openinfo; - - /* Flags: R_DUP. */ - if (b.flags & ~(R_DUP)) - goto einval; - - /* - * Page size must be indx_t aligned and >= MINPSIZE. Default - * page size is set farther on, based on the underlying file - * transfer size. - */ - if (b.psize && - (b.psize < MINPSIZE || b.psize > MAX_PAGE_OFFSET + 1 || - b.psize & (sizeof(indx_t) - 1))) - goto einval; - - /* Minimum number of keys per page; absolute minimum is 2. */ - if (b.minkeypage) { - if (b.minkeypage < 2) - goto einval; - } else - b.minkeypage = DEFMINKEYPAGE; - - /* If no comparison, use default comparison and prefix. */ - if (b.compare == NULL) { - b.compare = __bt_defcmp; - if (b.prefix == NULL) - b.prefix = __bt_defpfx; - } - - if (b.lorder == 0) - b.lorder = machine_lorder; - } else { - b.compare = __bt_defcmp; - b.cachesize = 0; - b.flags = 0; - b.lorder = machine_lorder; - b.minkeypage = DEFMINKEYPAGE; - b.prefix = __bt_defpfx; - b.psize = 0; - } - - /* Check for the ubiquitous PDP-11. */ - if (b.lorder != BIG_ENDIAN && b.lorder != LITTLE_ENDIAN) - goto einval; - - /* Allocate and initialize DB and BTREE structures. */ - if ((t = malloc(sizeof(BTREE))) == NULL) - goto err; - t->bt_fd = -1; /* Don't close unopened fd on error. */ - if ((t->bt_dbp = dbp = malloc(sizeof(DB))) == NULL) - goto err; - t->bt_bcursor.pgno = P_INVALID; - t->bt_bcursor.index = 0; - t->bt_stack = NULL; - t->bt_pinned = NULL; - t->bt_sp = t->bt_maxstack = 0; - t->bt_kbuf = t->bt_dbuf = NULL; - t->bt_kbufsz = t->bt_dbufsz = 0; - t->bt_lorder = b.lorder; - t->bt_order = NOT; - t->bt_cmp = b.compare; - t->bt_pfx = b.prefix; - t->bt_flags = 0; - if (t->bt_lorder != machine_lorder) - SET(t, B_NEEDSWAP); - - dbp->type = DB_BTREE; - dbp->internal = t; - dbp->close = __bt_close; - dbp->del = __bt_delete; - dbp->fd = __bt_fd; - dbp->get = __bt_get; - dbp->put = __bt_put; - dbp->seq = __bt_seq; - dbp->sync = __bt_sync; - - /* - * If no file name was supplied, this is an in-memory btree and we - * open a backing temporary file. Otherwise, it's a disk-based tree. - */ - if (fname) { - switch(flags & O_ACCMODE) { - case O_RDONLY: - SET(t, B_RDONLY); - break; - case O_RDWR: - break; - case O_WRONLY: - default: - goto einval; - } - - if ((t->bt_fd = open(fname, flags, mode)) < 0) - goto err; - - } else { - if ((flags & O_ACCMODE) != O_RDWR) - goto einval; - if ((t->bt_fd = tmp()) == -1) - goto err; - SET(t, B_INMEM); - } - - if (fcntl(t->bt_fd, F_SETFD, 1) == -1) - goto err; - - if (fstat(t->bt_fd, &sb)) - goto err; - if (sb.st_size) { - nr = read(t->bt_fd, &m, sizeof(BTMETA)); - if (nr < 0) - goto err; - if (nr != sizeof(BTMETA)) - goto eftype; - - /* - * Read in the meta-data. This can change the notion of what - * the lorder, page size and flags are, and, when the page size - * changes, the cachesize value can change too. If the user - * specified the wrong byte order for an existing database, we - * don't bother to return an error, we just clear the NEEDSWAP - * bit. - */ - if (m.m_magic == BTREEMAGIC) - CLR(t, B_NEEDSWAP); - else { - SET(t, B_NEEDSWAP); - BLSWAP(m.m_magic); - BLSWAP(m.m_version); - BLSWAP(m.m_psize); - BLSWAP(m.m_free); - BLSWAP(m.m_nrecs); - BLSWAP(m.m_flags); - } - if (m.m_magic != BTREEMAGIC || m.m_version != BTREEVERSION) - goto eftype; - if (m.m_psize < MINPSIZE || m.m_psize > MAX_PAGE_OFFSET + 1 || - m.m_psize & (sizeof(indx_t) - 1)) - goto eftype; - if (m.m_flags & ~SAVEMETA) - goto eftype; - b.psize = m.m_psize; - t->bt_flags |= m.m_flags; - t->bt_free = m.m_free; - t->bt_nrecs = m.m_nrecs; - } else { - /* - * Set the page size to the best value for I/O to this file. - * Don't overflow the page offset type. - */ - if (b.psize == 0) { - b.psize = sb.st_blksize; - if (b.psize < MINPSIZE) - b.psize = MINPSIZE; - if (b.psize > MAX_PAGE_OFFSET + 1) - b.psize = MAX_PAGE_OFFSET + 1; - } - - /* Set flag if duplicates permitted. */ - if (!(b.flags & R_DUP)) - SET(t, B_NODUPS); - - t->bt_free = P_INVALID; - t->bt_nrecs = 0; - SET(t, B_METADIRTY); - } - - t->bt_psize = b.psize; - - /* Set the cache size; must be a multiple of the page size. */ - if (b.cachesize && b.cachesize & (b.psize - 1)) - b.cachesize += (~b.cachesize & (b.psize - 1)) + 1; - if (b.cachesize < b.psize * MINCACHE) - b.cachesize = b.psize * MINCACHE; - - /* Calculate number of pages to cache. */ - ncache = (b.cachesize + t->bt_psize - 1) / t->bt_psize; - - /* - * The btree data structure requires that at least two keys can fit on - * a page, but other than that there's no fixed requirement. The user - * specified a minimum number per page, and we translated that into the - * number of bytes a key/data pair can use before being placed on an - * overflow page. This calculation includes the page header, the size - * of the index referencing the leaf item and the size of the leaf item - * structure. Also, don't let the user specify a minkeypage such that - * a key/data pair won't fit even if both key and data are on overflow - * pages. - */ - t->bt_ovflsize = (t->bt_psize - BTDATAOFF) / b.minkeypage - - (sizeof(indx_t) + NBLEAFDBT(0, 0)); - if (t->bt_ovflsize < NBLEAFDBT(NOVFLSIZE, NOVFLSIZE) + sizeof(indx_t)) - t->bt_ovflsize = - NBLEAFDBT(NOVFLSIZE, NOVFLSIZE) + sizeof(indx_t); - - /* Initialize the buffer pool. */ - if ((t->bt_mp = - mpool_open(NULL, t->bt_fd, t->bt_psize, ncache)) == NULL) - goto err; - if (!ISSET(t, B_INMEM)) - mpool_filter(t->bt_mp, __bt_pgin, __bt_pgout, t); - - /* Create a root page if new tree. */ - if (nroot(t) == RET_ERROR) - goto err; - - /* Global flags. */ - if (dflags & DB_LOCK) - SET(t, B_DB_LOCK); - if (dflags & DB_SHMEM) - SET(t, B_DB_SHMEM); - if (dflags & DB_TXN) - SET(t, B_DB_TXN); - - return (dbp); - -einval: errno = EINVAL; - goto err; - -eftype: errno = EFTYPE; - goto err; - -err: if (t) { - if (t->bt_dbp) - free(t->bt_dbp); - if (t->bt_fd != -1) - (void)close(t->bt_fd); - free(t); - } - return (NULL); -} - -/* - * NROOT -- Create the root of a new tree. - * - * Parameters: - * t: tree - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -static int -nroot(BTREE *t) -{ - PAGE *meta, *root; - pgno_t npg; - - if ((meta = mpool_get(t->bt_mp, 0, 0)) != NULL) { - mpool_put(t->bt_mp, meta, 0); - return (RET_SUCCESS); - } - if (errno != EINVAL) - return (RET_ERROR); - - if ((meta = mpool_new(t->bt_mp, &npg)) == NULL) - return (RET_ERROR); - - if ((root = mpool_new(t->bt_mp, &npg)) == NULL) - return (RET_ERROR); - - if (npg != P_ROOT) - return (RET_ERROR); - root->pgno = npg; - root->prevpg = root->nextpg = P_INVALID; - root->lower = BTDATAOFF; - root->upper = t->bt_psize; - root->flags = P_BLEAF; - memset(meta, 0, t->bt_psize); - mpool_put(t->bt_mp, meta, MPOOL_DIRTY); - mpool_put(t->bt_mp, root, MPOOL_DIRTY); - return (RET_SUCCESS); -} - -static int -tmp(void) -{ - sigset_t set, oset; - int fd; - char *envtmp; - char path[MAXPATHLEN]; - - envtmp = getenv("TMPDIR"); - (void)snprintf(path, - sizeof(path), "%s/bt.XXXXXX", envtmp ? envtmp : "/tmp"); - - (void)sigfillset(&set); - (void)sigprocmask(SIG_BLOCK, &set, &oset); - if ((fd = mkstemp(path)) != -1) - (void)unlink(path); - (void)sigprocmask(SIG_SETMASK, &oset, NULL); - return(fd); -} - -static int -byteorder(void) -{ - u_long x; /* XXX: 32-bit assumption. */ - u_char *p; - - x = 0x01020304; - p = (u_char *)&x; - switch (*p) { - case 1: - return (BIG_ENDIAN); - case 4: - return (LITTLE_ENDIAN); - default: - return (0); - } -} - -int -__bt_fd(const DB *dbp) -{ - BTREE *t; - - t = dbp->internal; - - /* Toss any page pinned across calls. */ - if (t->bt_pinned != NULL) { - mpool_put(t->bt_mp, t->bt_pinned, 0); - t->bt_pinned = NULL; - } - - /* In-memory database can't have a file descriptor. */ - if (ISSET(t, B_INMEM)) { - errno = ENOENT; - return (-1); - } - return (t->bt_fd); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_overflow.c b/cde/lib/DtMmdb/btree_berkeley/bt_overflow.c deleted file mode 100644 index c09337068..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_overflow.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_overflow.c /main/3 1996/06/11 17:12:45 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_overflow.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include - -#include -#include "btree.h" - -/* - * Big key/data code. - * - * Big key and data entries are stored on linked lists of pages. The initial - * reference is byte string stored with the key or data and is the page number - * and size. The actual record is stored in a chain of pages linked by the - * nextpg field of the PAGE header. - * - * The first page of the chain has a special property. If the record is used - * by an internal page, it cannot be deleted and the P_PRESERVE bit will be set - * in the header. - * - * XXX - * A single DBT is written to each chain, so a lot of space on the last page - * is wasted. This is a fairly major bug for some data sets. - */ - -/* - * __OVFL_GET -- Get an overflow key/data item. - * - * Parameters: - * t: tree - * p: pointer to { pgno_t, size_t } - * buf: storage address - * bufsz: storage size - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__ovfl_get(BTREE *t, void *p, size_t *ssz, char **buf, size_t *bufsz) -{ - PAGE *h; - pgno_t pg; - size_t nb, plen, sz; - - memmove(&pg, p, sizeof(pgno_t)); - memmove(&sz, (char *)p + sizeof(pgno_t), sizeof(size_t)); - *ssz = sz; - -#ifdef DEBUG - if (pg == P_INVALID || sz == 0) - abort(); -#endif - /* Make the buffer bigger as necessary. */ - if (*bufsz < sz) { - if ((*buf = __fix_realloc(*buf, sz)) == NULL) - return (RET_ERROR); - *bufsz = sz; - } - - /* - * Step through the linked list of pages, copying the data on each one - * into the buffer. Never copy more than the data's length. - */ - plen = t->bt_psize - BTDATAOFF; - for (p = *buf;; p = (char *)p + nb, pg = h->nextpg) { - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - - nb = MIN(sz, plen); - memmove(p, (char *)h + BTDATAOFF, nb); - mpool_put(t->bt_mp, h, 0); - - if ((sz -= nb) == 0) - break; - } - return (RET_SUCCESS); -} - -/* - * __OVFL_PUT -- Store an overflow key/data item. - * - * Parameters: - * t: tree - * data: DBT to store - * pgno: storage page number - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__ovfl_put(BTREE *t, const DBT *dbt, pgno_t *pg) -{ - PAGE *h, *last; - void *p; - pgno_t npg; - size_t nb, plen, sz; - - /* - * Allocate pages and copy the key/data record into them. Store the - * number of the first page in the chain. - */ - plen = t->bt_psize - BTDATAOFF; - for (last = NULL, p = dbt->data, sz = dbt->size;; - p = (char *)p + plen, last = h) { - if ((h = __bt_new(t, &npg)) == NULL) - return (RET_ERROR); - - h->pgno = npg; - h->nextpg = h->prevpg = P_INVALID; - h->flags = P_OVERFLOW; - h->lower = h->upper = 0; - - nb = MIN(sz, plen); - memmove((char *)h + BTDATAOFF, p, nb); - - if (last) { - last->nextpg = h->pgno; - mpool_put(t->bt_mp, last, MPOOL_DIRTY); - } else - *pg = h->pgno; - - if ((sz -= nb) == 0) { - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - break; - } - } - return (RET_SUCCESS); -} - -/* - * __OVFL_DELETE -- Delete an overflow chain. - * - * Parameters: - * t: tree - * p: pointer to { pgno_t, size_t } - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__ovfl_delete(BTREE *t, void *p) -{ - PAGE *h; - pgno_t pg; - size_t plen, sz; - - memmove(&pg, p, sizeof(pgno_t)); - memmove(&sz, (char *)p + sizeof(pgno_t), sizeof(size_t)); - -#ifdef DEBUG - if (pg == P_INVALID || sz == 0) - abort(); -#endif - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - - /* Don't delete chains used by internal pages. */ - if (h->flags & P_PRESERVE) { - mpool_put(t->bt_mp, h, 0); - return (RET_SUCCESS); - } - - /* Step through the chain, calling the free routine for each page. */ - for (plen = t->bt_psize - BTDATAOFF;; sz -= plen) { - pg = h->nextpg; - __bt_free(t, h); - if (sz <= plen) - break; - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - } - return (RET_SUCCESS); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_page.c b/cde/lib/DtMmdb/btree_berkeley/bt_page.c deleted file mode 100644 index fb69b1fd3..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_page.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_page.c /main/3 1996/06/11 17:12:50 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_page.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#define __DBINTERFACE_PRIVATE -#include - -#include -#include "btree.h" - -/* - * __BT_FREE -- Put a page on the freelist. - * - * Parameters: - * t: tree - * h: page to free - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__bt_free(BTREE *t, PAGE *h) -{ - /* Insert the page at the start of the free list. */ - h->prevpg = P_INVALID; - h->nextpg = t->bt_free; - t->bt_free = h->pgno; - - /* Make sure the page gets written back. */ - return (mpool_put(t->bt_mp, h, MPOOL_DIRTY)); -} - -/* - * __BT_NEW -- Get a new page, preferably from the freelist. - * - * Parameters: - * t: tree - * npg: storage for page number. - * - * Returns: - * Pointer to a page, NULL on error. - */ -PAGE * -__bt_new(BTREE *t, pgno_t *npg) -{ - PAGE *h; - - if (t->bt_free != P_INVALID && - (h = mpool_get(t->bt_mp, t->bt_free, 0)) != NULL) { - *npg = t->bt_free; - t->bt_free = h->nextpg; - return (h); - } - return (mpool_new(t->bt_mp, npg)); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_put.c b/cde/lib/DtMmdb/btree_berkeley/bt_put.c deleted file mode 100644 index 3c34b9bf1..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_put.c +++ /dev/null @@ -1,336 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_put.c /main/3 1996/06/11 17:12:56 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_put.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include -#include - -#include -#include "btree.h" - -static EPG *bt_fast __P((BTREE *, const DBT *, const DBT *, int *)); - -/* - * __BT_PUT -- Add a btree item to the tree. - * - * Parameters: - * dbp: pointer to access method - * key: key - * data: data - * flag: R_NOOVERWRITE - * - * Returns: - * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key is already in the - * tree and R_NOOVERWRITE specified. - */ -int -__bt_put(const DB *dbp, DBT *key, const DBT *data, u_int flags) -{ - BTREE *t; - DBT tkey, tdata; - EPG *e = NULL; - PAGE *h; - indx_t index, nxtindex; - pgno_t pg; - size_t nbytes; - int dflags, exact, status; - char *dest, db[NOVFLSIZE], kb[NOVFLSIZE]; - - t = dbp->internal; - - /* Toss any page pinned across calls. */ - if (t->bt_pinned != NULL) { - mpool_put(t->bt_mp, t->bt_pinned, 0); - t->bt_pinned = NULL; - } - - switch (flags) { - case R_CURSOR: - if (!ISSET(t, B_SEQINIT)) - goto einval; - if (ISSET(t, B_DELCRSR)) - goto einval; - break; - case 0: - case R_NOOVERWRITE: - break; - default: -einval: errno = EINVAL; - return (RET_ERROR); - } - - if (ISSET(t, B_RDONLY)) { - errno = EPERM; - return (RET_ERROR); - } - - /* - * If the key/data won't fit on a page, store it on indirect pages. - * Only store the key on the overflow page if it's too big after the - * data is on an overflow page. - * - * XXX - * If the insert fails later on, these pages aren't recovered. - */ - dflags = 0; - if (key->size + data->size > t->bt_ovflsize) { - if (key->size > t->bt_ovflsize) { -storekey: if (__ovfl_put(t, key, &pg) == RET_ERROR) - return (RET_ERROR); - tkey.data = kb; - tkey.size = NOVFLSIZE; - memmove(kb, &pg, sizeof(pgno_t)); - memmove(kb + sizeof(pgno_t), - &key->size, sizeof(size_t)); - dflags |= P_BIGKEY; - key = &tkey; - } - if (key->size + data->size > t->bt_ovflsize) { - if (__ovfl_put(t, data, &pg) == RET_ERROR) - return (RET_ERROR); - tdata.data = db; - tdata.size = NOVFLSIZE; - memmove(db, &pg, sizeof(pgno_t)); - memmove(db + sizeof(pgno_t), - &data->size, sizeof(size_t)); - dflags |= P_BIGDATA; - data = &tdata; - } - if (key->size + data->size > t->bt_ovflsize) - goto storekey; - } - - /* Replace the cursor. */ - if (flags == R_CURSOR) { - if ((h = mpool_get(t->bt_mp, t->bt_bcursor.pgno, 0)) == NULL) - return (RET_ERROR); - index = t->bt_bcursor.index; - goto delete; - } - - /* - * Find the key to delete, or, the location at which to insert. Bt_fast - * and __bt_search pin the returned page. - */ - if (t->bt_order == NOT || (e = bt_fast(t, key, data, &exact)) == NULL) - if ((e = __bt_search(t, key, &exact)) == NULL) - return (RET_ERROR); - h = e->page; - index = e->index; - - /* - * Add the specified key/data pair to the tree. If an identical key - * is already in the tree, and R_NOOVERWRITE is set, an error is - * returned. If R_NOOVERWRITE is not set, the key is either added (if - * duplicates are permitted) or an error is returned. - * - * Pages are split as required. - */ - switch (flags) { - case R_NOOVERWRITE: - if (!exact) - break; - /* - * One special case is if the cursor references the record and - * it's been flagged for deletion. Then, we delete the record, - * leaving the cursor there -- this means that the inserted - * record will not be seen in a cursor scan. - */ - if (ISSET(t, B_DELCRSR) && t->bt_bcursor.pgno == h->pgno && - t->bt_bcursor.index == index) { - CLR(t, B_DELCRSR); - goto delete; - } - mpool_put(t->bt_mp, h, 0); - return (RET_SPECIAL); - default: - if (!exact || !ISSET(t, B_NODUPS)) - break; -delete: if (__bt_dleaf(t, h, index) == RET_ERROR) { - mpool_put(t->bt_mp, h, 0); - return (RET_ERROR); - } - break; - } - - /* - * If not enough room, or the user has put a ceiling on the number of - * keys permitted in the page, split the page. The split code will - * insert the key and data and unpin the current page. If inserting - * into the offset array, shift the pointers up. - */ - nbytes = NBLEAFDBT(key->size, data->size); - if (h->upper - h->lower < nbytes + sizeof(indx_t)) { - if ((status = __bt_split(t, h, key, - data, dflags, nbytes, index)) != RET_SUCCESS) - return (status); - goto success; - } - - if (index < (nxtindex = NEXTINDEX(h))) - memmove(h->linp + index + 1, h->linp + index, - (nxtindex - index) * sizeof(indx_t)); - h->lower += sizeof(indx_t); - - h->linp[index] = h->upper -= nbytes; - dest = (char *)h + h->upper; - WR_BLEAF(dest, key, data, dflags); - - if (t->bt_order == NOT) { - if (h->nextpg == P_INVALID) { - if (index == NEXTINDEX(h) - 1) { - t->bt_order = FORWARD; - t->bt_last.index = index; - t->bt_last.pgno = h->pgno; - } - } else if (h->prevpg == P_INVALID) { - if (index == 0) { - t->bt_order = BACK; - t->bt_last.index = 0; - t->bt_last.pgno = h->pgno; - } - } - } - - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - -success: - if (flags == R_SETCURSOR) { - t->bt_bcursor.pgno = e->page->pgno; - t->bt_bcursor.index = e->index; - } - SET(t, B_MODIFIED); - return (RET_SUCCESS); -} - -#ifdef STATISTICS -u_long bt_cache_hit, bt_cache_miss; -#endif - -/* - * BT_FAST -- Do a quick check for sorted data. - * - * Parameters: - * t: tree - * key: key to insert - * - * Returns: - * EPG for new record or NULL if not found. - */ -static EPG * -bt_fast(BTREE *t, const DBT *key, const DBT *data, int *exactp) -{ - static EPG e; - PAGE *h; - size_t nbytes; - int cmp; - - if ((h = mpool_get(t->bt_mp, t->bt_last.pgno, 0)) == NULL) { - t->bt_order = NOT; - return (NULL); - } - e.page = h; - e.index = t->bt_last.index; - - /* - * If won't fit in this page or have too many keys in this page, have - * to search to get split stack. - */ - nbytes = NBLEAFDBT(key->size, data->size); - if (h->upper - h->lower < nbytes + sizeof(indx_t)) - goto miss; - - if (t->bt_order == FORWARD) { - if (e.page->nextpg != P_INVALID) - goto miss; - if (e.index != NEXTINDEX(h) - 1) - goto miss; - if ((cmp = __bt_cmp(t, key, &e)) < 0) - goto miss; - t->bt_last.index = cmp ? ++e.index : e.index; - } else { - if (e.page->prevpg != P_INVALID) - goto miss; - if (e.index != 0) - goto miss; - if ((cmp = __bt_cmp(t, key, &e)) > 0) - goto miss; - t->bt_last.index = 0; - } - *exactp = cmp == 0; -#ifdef STATISTICS - ++bt_cache_hit; -#endif - return (&e); - -miss: -#ifdef STATISTICS - ++bt_cache_miss; -#endif - t->bt_order = NOT; - mpool_put(t->bt_mp, h, 0); - return (NULL); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_search.c b/cde/lib/DtMmdb/btree_berkeley/bt_search.c deleted file mode 100644 index 7ab48abd5..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_search.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_search.c /main/3 1996/06/11 17:13:01 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_search.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include - -#include -#include "btree.h" - -/* - * __BT_SEARCH -- Search a btree for a key. - * - * Parameters: - * t: tree to search - * key: key to find - * exactp: pointer to exact match flag - * - * Returns: - * EPG for matching record, if any, or the EPG for the location of the - * key, if it were inserted into the tree. - * - * Warnings: - * The EPG returned is in static memory, and will be overwritten by the - * next search of any kind in any tree. - */ -EPG * -__bt_search(BTREE *t, const DBT *key, int *exactp) -{ - indx_t index; - int base, cmp, lim; - PAGE *h; - pgno_t pg; - static EPG e; - - BT_CLR(t); - for (pg = P_ROOT;;) { - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (NULL); - - /* Do a binary search on the current page. */ - e.page = h; - for (base = 0, lim = NEXTINDEX(h); lim; lim >>= 1) { - e.index = index = base + (lim >> 1); - if ((cmp = __bt_cmp(t, key, &e)) == 0) { - if (h->flags & P_BLEAF) { - *exactp = 1; - return (&e); - } - goto next; - } - if (cmp > 0) { - base = index + 1; - --lim; - } - } - - /* If it's a leaf page, we're done. */ - if (h->flags & P_BLEAF) { - e.index = base; - *exactp = 0; - return (&e); - } - - /* - * No match found. Base is the smallest index greater than - * key and may be zero or a last + 1 index. If it's non-zero, - * decrement by one, and record the internal page which should - * be a parent page for the key. If a split later occurs, the - * inserted page will be to the right of the saved page. - */ - index = base ? base - 1 : base; - -next: if (__bt_push(t, h->pgno, index) == RET_ERROR) - return (NULL); - pg = GETBINTERNAL(h, index)->pgno; - mpool_put(t->bt_mp, h, 0); - } -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_seq.c b/cde/lib/DtMmdb/btree_berkeley/bt_seq.c deleted file mode 100644 index 82bab6087..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_seq.c +++ /dev/null @@ -1,391 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_seq.c /main/3 1996/06/11 17:13:05 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_seq.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include -#include - -#include -#include "btree.h" - -static int bt_seqadv __P((BTREE *, EPG *, int)); -static int bt_seqset __P((BTREE *, EPG *, DBT *, int)); - -/* - * Sequential scan support. - * - * The tree can be scanned sequentially, starting from either end of the tree - * or from any specific key. A scan request before any scanning is done is - * initialized as starting from the least node. - * - * Each tree has an EPGNO which has the current position of the cursor. The - * cursor has to survive deletions/insertions in the tree without losing its - * position. This is done by noting deletions without doing them, and then - * doing them when the cursor moves (or the tree is closed). - */ - -/* - * __BT_SEQ -- Btree sequential scan interface. - * - * Parameters: - * dbp: pointer to access method - * key: key for positioning and return value - * data: data return value - * flags: R_CURSOR, R_FIRST, R_LAST, R_NEXT, R_PREV. - * - * Returns: - * RET_ERROR, RET_SUCCESS or RET_SPECIAL if there's no next key. - */ -int -__bt_seq(const DB *dbp, DBT *key, DBT *data, u_int flags) -{ - BTREE *t; - EPG e; - int status; - - t = dbp->internal; - - /* Toss any page pinned across calls. */ - if (t->bt_pinned != NULL) { - mpool_put(t->bt_mp, t->bt_pinned, 0); - t->bt_pinned = NULL; - } - - /* - * If scan unitialized as yet, or starting at a specific record, set - * the scan to a specific key. Both bt_seqset and bt_seqadv pin the - * page the cursor references if they're successful. - */ - switch(flags) { - case R_NEXT: - case R_PREV: - if (ISSET(t, B_SEQINIT)) { - status = bt_seqadv(t, &e, flags); - break; - } - /* FALLTHROUGH */ - case R_CURSOR: - case R_FIRST: - case R_LAST: - status = bt_seqset(t, &e, key, flags); - break; - default: - errno = EINVAL; - return (RET_ERROR); - } - - if (status == RET_SUCCESS) { - status = __bt_ret(t, &e, key, data); - - /* Update the actual cursor. */ - t->bt_bcursor.pgno = e.page->pgno; - t->bt_bcursor.index = e.index; - - /* - * If the user is doing concurrent access, we copied the - * key/data, toss the page. - */ - if (ISSET(t, B_DB_LOCK)) - mpool_put(t->bt_mp, e.page, 0); - else - t->bt_pinned = e.page; - SET(t, B_SEQINIT); - } - return (status); -} - -/* - * BT_SEQSET -- Set the sequential scan to a specific key. - * - * Parameters: - * t: tree - * ep: storage for returned key - * key: key for initial scan position - * flags: R_CURSOR, R_FIRST, R_LAST, R_NEXT, R_PREV - * - * Side effects: - * Pins the page the cursor references. - * - * Returns: - * RET_ERROR, RET_SUCCESS or RET_SPECIAL if there's no next key. - */ -static int -bt_seqset(BTREE *t, EPG *ep, DBT *key, int flags) -{ - EPG *e; - PAGE *h; - pgno_t pg; - int exact; - - /* - * Delete any already deleted record that we've been saving because - * the cursor pointed to it. Since going to a specific key, should - * delete any logically deleted records so they aren't found. - */ - if (ISSET(t, B_DELCRSR) && __bt_crsrdel(t, &t->bt_bcursor)) - return (RET_ERROR); - - /* - * Find the first, last or specific key in the tree and point the cursor - * at it. The cursor may not be moved until a new key has been found. - */ - switch(flags) { - case R_CURSOR: /* Keyed scan. */ - /* - * Find the first instance of the key or the smallest key which - * is greater than or equal to the specified key. If run out - * of keys, return RET_SPECIAL. - */ - if (key->data == NULL || key->size == 0) { - errno = EINVAL; - return (RET_ERROR); - } - e = __bt_first(t, key, &exact); /* Returns pinned page. */ - if (e == NULL) - return (RET_ERROR); - /* - * If at the end of a page, skip any empty pages and find the - * next entry. - */ - if (e->index == NEXTINDEX(e->page)) { - h = e->page; - do { - pg = h->nextpg; - mpool_put(t->bt_mp, h, 0); - if (pg == P_INVALID) - return (RET_SPECIAL); - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - } while (NEXTINDEX(h) == 0); - e->index = 0; - e->page = h; - } - *ep = *e; - break; - case R_FIRST: /* First record. */ - case R_NEXT: - /* Walk down the left-hand side of the tree. */ - for (pg = P_ROOT;;) { - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - if (h->flags & (P_BLEAF | P_RLEAF)) - break; - pg = GETBINTERNAL(h, 0)->pgno; - mpool_put(t->bt_mp, h, 0); - } - - /* Skip any empty pages. */ - while (NEXTINDEX(h) == 0 && h->nextpg != P_INVALID) { - pg = h->nextpg; - mpool_put(t->bt_mp, h, 0); - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - } - - if (NEXTINDEX(h) == 0) { - mpool_put(t->bt_mp, h, 0); - return (RET_SPECIAL); - } - - ep->page = h; - ep->index = 0; - break; - case R_LAST: /* Last record. */ - case R_PREV: - /* Walk down the right-hand side of the tree. */ - for (pg = P_ROOT;;) { - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - if (h->flags & (P_BLEAF | P_RLEAF)) - break; - pg = GETBINTERNAL(h, NEXTINDEX(h) - 1)->pgno; - mpool_put(t->bt_mp, h, 0); - } - - /* Skip any empty pages. */ - while (NEXTINDEX(h) == 0 && h->prevpg != P_INVALID) { - pg = h->prevpg; - mpool_put(t->bt_mp, h, 0); - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - } - - if (NEXTINDEX(h) == 0) { - mpool_put(t->bt_mp, h, 0); - return (RET_SPECIAL); - } - - ep->page = h; - ep->index = NEXTINDEX(h) - 1; - break; - } - return (RET_SUCCESS); -} - -/* - * BT_SEQADVANCE -- Advance the sequential scan. - * - * Parameters: - * t: tree - * flags: R_NEXT, R_PREV - * - * Side effects: - * Pins the page the new key/data record is on. - * - * Returns: - * RET_ERROR, RET_SUCCESS or RET_SPECIAL if there's no next key. - */ -static int -bt_seqadv(BTREE *t, EPG *e, int flags) -{ - EPGNO *c, delc; - PAGE *h; - indx_t index; - pgno_t pg; - - /* Save the current cursor if going to delete it. */ - c = &t->bt_bcursor; - if (ISSET(t, B_DELCRSR)) - delc = *c; - - if ((h = mpool_get(t->bt_mp, c->pgno, 0)) == NULL) - return (RET_ERROR); - - /* - * Find the next/previous record in the tree and point the cursor at it. - * The cursor may not be moved until a new key has been found. - */ - index = c->index; - switch(flags) { - case R_NEXT: /* Next record. */ - if (++index == NEXTINDEX(h)) { - do { - pg = h->nextpg; - mpool_put(t->bt_mp, h, 0); - if (pg == P_INVALID) - return (RET_SPECIAL); - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - } while (NEXTINDEX(h) == 0); - index = 0; - } - break; - case R_PREV: /* Previous record. */ - if (index-- == 0) { - do { - pg = h->prevpg; - mpool_put(t->bt_mp, h, 0); - if (pg == P_INVALID) - return (RET_SPECIAL); - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - } while (NEXTINDEX(h) == 0); - index = NEXTINDEX(h) - 1; - } - break; - } - - e->page = h; - e->index = index; - - /* - * Delete any already deleted record that we've been saving because the - * cursor pointed to it. This could cause the new index to be shifted - * down by one if the record we're deleting is on the same page and has - * a larger index. - */ - if (ISSET(t, B_DELCRSR)) { - CLR(t, B_DELCRSR); /* Don't try twice. */ - if (c->pgno == delc.pgno && c->index > delc.index) - --c->index; - if (__bt_crsrdel(t, &delc)) - return (RET_ERROR); - } - return (RET_SUCCESS); -} - -/* - * __BT_CRSRDEL -- Delete the record referenced by the cursor. - * - * Parameters: - * t: tree - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__bt_crsrdel(BTREE *t, EPGNO *c) -{ - PAGE *h; - int status; - - CLR(t, B_DELCRSR); /* Don't try twice. */ - if ((h = mpool_get(t->bt_mp, c->pgno, 0)) == NULL) - return (RET_ERROR); - status = __bt_dleaf(t, h, c->index); - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - return (status); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_split.c b/cde/lib/DtMmdb/btree_berkeley/bt_split.c deleted file mode 100644 index 434af3001..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_split.c +++ /dev/null @@ -1,826 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_split.c /main/3 1996/06/11 17:13:10 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_split.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#define __DBINTERFACE_PRIVATE -#include -#include -#include -#include - -#include -#include "btree.h" - -static int bt_broot __P((BTREE *, PAGE *, PAGE *, PAGE *)); -static PAGE *bt_page - __P((BTREE *, PAGE *, PAGE **, PAGE **, u_int *, size_t)); -static int bt_preserve __P((BTREE *, pgno_t)); -static PAGE *bt_psplit - __P((BTREE *, PAGE *, PAGE *, PAGE *, u_int *, size_t)); -static PAGE *bt_root - __P((BTREE *, PAGE *, PAGE **, PAGE **, u_int *, size_t)); -static int bt_rroot __P((BTREE *, PAGE *, PAGE *, PAGE *)); -static recno_t rec_total __P((PAGE *)); - -#ifdef STATISTICS -u_long bt_rootsplit, bt_split, bt_sortsplit, bt_pfxsaved; -#endif - -/* - * __BT_SPLIT -- Split the tree. - * - * Parameters: - * t: tree - * sp: page to split - * key: key to insert - * data: data to insert - * flags: BIGKEY/BIGDATA flags - * ilen: insert length - * skip: index to leave open - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__bt_split(BTREE *t, PAGE *sp, const DBT *key, const DBT *data, u_long flags, size_t ilen, u_int skip) -{ - BINTERNAL *bi = NULL; - BLEAF *bl = NULL; - BLEAF *tbl; - DBT a, b; - EPGNO *parent; - PAGE *h, *l, *r, *lchild, *rchild; - indx_t nxtindex; - size_t n, nbytes; - size_t nksize = 0; - int parentsplit; - char *dest; - - /* - * Split the page into two pages, l and r. The split routines return - * a pointer to the page into which the key should be inserted and with - * skip set to the offset which should be used. Additionally, l and r - * are pinned. - */ - h = sp->pgno == P_ROOT ? - bt_root(t, sp, &l, &r, &skip, ilen) : - bt_page(t, sp, &l, &r, &skip, ilen); - if (h == NULL) - return (RET_ERROR); - - /* - * Insert the new key/data pair into the leaf page. (Key inserts - * always cause a leaf page to split first.) - */ - h->linp[skip] = h->upper -= ilen; - dest = (char *)h + h->upper; - if (ISSET(t, R_RECNO)) - WR_RLEAF(dest, data, flags) - else - WR_BLEAF(dest, key, data, flags) - - /* If the root page was split, make it look right. */ - if (sp->pgno == P_ROOT && - (ISSET(t, R_RECNO) ? - bt_rroot(t, sp, l, r) : bt_broot(t, sp, l, r)) == RET_ERROR) - goto err2; - - /* - * Now we walk the parent page stack -- a LIFO stack of the pages that - * were traversed when we searched for the page that split. Each stack - * entry is a page number and a page index offset. The offset is for - * the page traversed on the search. We've just split a page, so we - * have to insert a new key into the parent page. - * - * If the insert into the parent page causes it to split, may have to - * continue splitting all the way up the tree. We stop if the root - * splits or the page inserted into didn't have to split to hold the - * new key. Some algorithms replace the key for the old page as well - * as the new page. We don't, as there's no reason to believe that the - * first key on the old page is any better than the key we have, and, - * in the case of a key being placed at index 0 causing the split, the - * key is unavailable. - * - * There are a maximum of 5 pages pinned at any time. We keep the left - * and right pages pinned while working on the parent. The 5 are the - * two children, left parent and right parent (when the parent splits) - * and the root page or the overflow key page when calling bt_preserve. - * This code must make sure that all pins are released other than the - * root page or overflow page which is unlocked elsewhere. - */ - while ((parent = BT_POP(t)) != NULL) { - lchild = l; - rchild = r; - - /* Get the parent page. */ - if ((h = mpool_get(t->bt_mp, parent->pgno, 0)) == NULL) - goto err2; - - /* - * The new key goes ONE AFTER the index, because the split - * was to the right. - */ - skip = parent->index + 1; - - /* - * Calculate the space needed on the parent page. - * - * Prefix trees: space hack when inserting into BINTERNAL - * pages. Retain only what's needed to distinguish between - * the new entry and the LAST entry on the page to its left. - * If the keys compare equal, retain the entire key. Note, - * we don't touch overflow keys, and the entire key must be - * retained for the next-to-left most key on the leftmost - * page of each level, or the search will fail. Applicable - * ONLY to internal pages that have leaf pages as children. - * Further reduction of the key between pairs of internal - * pages loses too much information. - */ - switch (rchild->flags & P_TYPE) { - case P_BINTERNAL: - bi = GETBINTERNAL(rchild, 0); - nbytes = NBINTERNAL(bi->ksize); - break; - case P_BLEAF: - bl = GETBLEAF(rchild, 0); - nbytes = NBINTERNAL(bl->ksize); - if (t->bt_pfx && !(bl->flags & P_BIGKEY) && - (h->prevpg != P_INVALID || skip > 1)) { - tbl = GETBLEAF(lchild, NEXTINDEX(lchild) - 1); - a.size = tbl->ksize; - a.data = tbl->bytes; - b.size = bl->ksize; - b.data = bl->bytes; - nksize = t->bt_pfx(&a, &b); - n = NBINTERNAL(nksize); - if (n < nbytes) { -#ifdef STATISTICS - bt_pfxsaved += nbytes - n; -#endif - nbytes = n; - } else - nksize = 0; - } else - nksize = 0; - break; - case P_RINTERNAL: - case P_RLEAF: - nbytes = NRINTERNAL; - break; - default: - abort(); - } - - /* Split the parent page if necessary or shift the indices. */ - if (h->upper - h->lower < nbytes + sizeof(indx_t)) { - sp = h; - h = h->pgno == P_ROOT ? - bt_root(t, h, &l, &r, &skip, nbytes) : - bt_page(t, h, &l, &r, &skip, nbytes); - if (h == NULL) - goto err1; - parentsplit = 1; - } else { - if (skip < (nxtindex = NEXTINDEX(h))) - memmove(h->linp + skip + 1, h->linp + skip, - (nxtindex - skip) * sizeof(indx_t)); - h->lower += sizeof(indx_t); - parentsplit = 0; - } - - /* Insert the key into the parent page. */ - switch(rchild->flags & P_TYPE) { - case P_BINTERNAL: - h->linp[skip] = h->upper -= nbytes; - dest = (char *)h + h->linp[skip]; - memmove(dest, bi, nbytes); - ((BINTERNAL *)dest)->pgno = rchild->pgno; - break; - case P_BLEAF: - h->linp[skip] = h->upper -= nbytes; - dest = (char *)h + h->linp[skip]; - WR_BINTERNAL(dest, nksize ? nksize : bl->ksize, - rchild->pgno, bl->flags & P_BIGKEY); - memmove(dest, bl->bytes, nksize ? nksize : bl->ksize); - if (bl->flags & P_BIGKEY && - bt_preserve(t, *(char *)bl->bytes) == RET_ERROR) - goto err1; - break; - case P_RINTERNAL: - /* - * Update the left page count. If split - * added at index 0, fix the correct page. - */ - if (skip > 0) - dest = (char *)h + h->linp[skip - 1]; - else - dest = (char *)l + l->linp[NEXTINDEX(l) - 1]; - ((RINTERNAL *)dest)->nrecs = rec_total(lchild); - ((RINTERNAL *)dest)->pgno = lchild->pgno; - - /* Update the right page count. */ - h->linp[skip] = h->upper -= nbytes; - dest = (char *)h + h->linp[skip]; - ((RINTERNAL *)dest)->nrecs = rec_total(rchild); - ((RINTERNAL *)dest)->pgno = rchild->pgno; - break; - case P_RLEAF: - /* - * Update the left page count. If split - * added at index 0, fix the correct page. - */ - if (skip > 0) - dest = (char *)h + h->linp[skip - 1]; - else - dest = (char *)l + l->linp[NEXTINDEX(l) - 1]; - ((RINTERNAL *)dest)->nrecs = NEXTINDEX(lchild); - ((RINTERNAL *)dest)->pgno = lchild->pgno; - - /* Update the right page count. */ - h->linp[skip] = h->upper -= nbytes; - dest = (char *)h + h->linp[skip]; - ((RINTERNAL *)dest)->nrecs = NEXTINDEX(rchild); - ((RINTERNAL *)dest)->pgno = rchild->pgno; - break; - default: - abort(); - } - - /* Unpin the held pages. */ - if (!parentsplit) { - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - break; - } - - /* If the root page was split, make it look right. */ - if (sp->pgno == P_ROOT && - (ISSET(t, R_RECNO) ? - bt_rroot(t, sp, l, r) : bt_broot(t, sp, l, r)) == RET_ERROR) - goto err1; - - mpool_put(t->bt_mp, lchild, MPOOL_DIRTY); - mpool_put(t->bt_mp, rchild, MPOOL_DIRTY); - } - - /* Unpin the held pages. */ - mpool_put(t->bt_mp, l, MPOOL_DIRTY); - mpool_put(t->bt_mp, r, MPOOL_DIRTY); - - /* Clear any pages left on the stack. */ - return (RET_SUCCESS); - - /* - * If something fails in the above loop we were already walking back - * up the tree and the tree is now inconsistent. Nothing much we can - * do about it but release any memory we're holding. - */ -err1: mpool_put(t->bt_mp, lchild, MPOOL_DIRTY); - mpool_put(t->bt_mp, rchild, MPOOL_DIRTY); - -err2: mpool_put(t->bt_mp, l, 0); - mpool_put(t->bt_mp, r, 0); - __dbpanic(t->bt_dbp); - return (RET_ERROR); -} - -/* - * BT_PAGE -- Split a non-root page of a btree. - * - * Parameters: - * t: tree - * h: root page - * lp: pointer to left page pointer - * rp: pointer to right page pointer - * skip: pointer to index to leave open - * ilen: insert length - * - * Returns: - * Pointer to page in which to insert or NULL on error. - */ -static PAGE * -bt_page(BTREE *t, PAGE *h, PAGE **lp, PAGE **rp, u_int *skip, size_t ilen) -{ - PAGE *l, *r, *tp; - pgno_t npg; - -#ifdef STATISTICS - ++bt_split; -#endif - /* Put the new right page for the split into place. */ - if ((r = __bt_new(t, &npg)) == NULL) - return (NULL); - r->pgno = npg; - r->lower = BTDATAOFF; - r->upper = t->bt_psize; - r->nextpg = h->nextpg; - r->prevpg = h->pgno; - r->flags = h->flags & P_TYPE; - - /* - * If we're splitting the last page on a level because we're appending - * a key to it (skip is NEXTINDEX()), it's likely that the data is - * sorted. Adding an empty page on the side of the level is less work - * and can push the fill factor much higher than normal. If we're - * wrong it's no big deal, we'll just do the split the right way next - * time. It may look like it's equally easy to do a similar hack for - * reverse sorted data, that is, split the tree left, but it's not. - * Don't even try. - */ - if (h->nextpg == P_INVALID && *skip == NEXTINDEX(h)) { -#ifdef STATISTICS - ++bt_sortsplit; -#endif - h->nextpg = r->pgno; - r->lower = BTDATAOFF + sizeof(indx_t); - *skip = 0; - *lp = h; - *rp = r; - return (r); - } - - /* Put the new left page for the split into place. */ - if ((l = malloc(t->bt_psize)) == NULL) { - mpool_put(t->bt_mp, r, 0); - return (NULL); - } - l->pgno = h->pgno; - l->nextpg = r->pgno; - l->prevpg = h->prevpg; - l->lower = BTDATAOFF; - l->upper = t->bt_psize; - l->flags = h->flags & P_TYPE; - - /* Fix up the previous pointer of the page after the split page. */ - if (h->nextpg != P_INVALID) { - if ((tp = mpool_get(t->bt_mp, h->nextpg, 0)) == NULL) { - free(l); - /* XXX mpool_free(t->bt_mp, r->pgno); */ - return (NULL); - } - tp->prevpg = r->pgno; - mpool_put(t->bt_mp, tp, 0); - } - - /* - * Split right. The key/data pairs aren't sorted in the btree page so - * it's simpler to copy the data from the split page onto two new pages - * instead of copying half the data to the right page and compacting - * the left page in place. Since the left page can't change, we have - * to swap the original and the allocated left page after the split. - */ - tp = bt_psplit(t, h, l, r, skip, ilen); - - /* Move the new left page onto the old left page. */ - memmove(h, l, t->bt_psize); - if (tp == l) - tp = h; - free(l); - - *lp = h; - *rp = r; - return (tp); -} - -/* - * BT_ROOT -- Split the root page of a btree. - * - * Parameters: - * t: tree - * h: root page - * lp: pointer to left page pointer - * rp: pointer to right page pointer - * skip: pointer to index to leave open - * ilen: insert length - * - * Returns: - * Pointer to page in which to insert or NULL on error. - */ -static PAGE * -bt_root(BTREE *t, PAGE *h, PAGE **lp, PAGE **rp, u_int *skip, size_t ilen) -{ - PAGE *l, *r, *tp; - pgno_t lnpg, rnpg; - -#ifdef STATISTICS - ++bt_split; - ++bt_rootsplit; -#endif - /* Put the new left and right pages for the split into place. */ - if ((l = __bt_new(t, &lnpg)) == NULL || - (r = __bt_new(t, &rnpg)) == NULL) - return (NULL); - l->pgno = lnpg; - r->pgno = rnpg; - l->nextpg = r->pgno; - r->prevpg = l->pgno; - l->prevpg = r->nextpg = P_INVALID; - l->lower = r->lower = BTDATAOFF; - l->upper = r->upper = t->bt_psize; - l->flags = r->flags = h->flags & P_TYPE; - - /* Split the root page. */ - tp = bt_psplit(t, h, l, r, skip, ilen); - - *lp = l; - *rp = r; - return (tp); -} - -/* - * BT_RROOT -- Fix up the recno root page after it has been split. - * - * Parameters: - * t: tree - * h: root page - * l: left page - * r: right page - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -static int -bt_rroot(BTREE *t, PAGE *h, PAGE *l, PAGE *r) -{ - char *dest; - - /* Insert the left and right keys, set the header information. */ - h->linp[0] = h->upper = t->bt_psize - NRINTERNAL; - dest = (char *)h + h->upper; - WR_RINTERNAL(dest, - l->flags & P_RLEAF ? NEXTINDEX(l) : rec_total(l), l->pgno); - - h->linp[1] = h->upper -= NRINTERNAL; - dest = (char *)h + h->upper; - WR_RINTERNAL(dest, - r->flags & P_RLEAF ? NEXTINDEX(r) : rec_total(r), r->pgno); - - h->lower = BTDATAOFF + 2 * sizeof(indx_t); - - /* Unpin the root page, set to recno internal page. */ - h->flags &= ~P_TYPE; - h->flags |= P_RINTERNAL; - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - - return (RET_SUCCESS); -} - -/* - * BT_BROOT -- Fix up the btree root page after it has been split. - * - * Parameters: - * t: tree - * h: root page - * l: left page - * r: right page - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -static int -bt_broot(BTREE *t, PAGE *h, PAGE *l, PAGE *r) -{ - BINTERNAL *bi; - BLEAF *bl; - size_t nbytes; - char *dest; - - /* - * If the root page was a leaf page, change it into an internal page. - * We copy the key we split on (but not the key's data, in the case of - * a leaf page) to the new root page. - * - * The btree comparison code guarantees that the left-most key on any - * level of the tree is never used, so it doesn't need to be filled in. - */ - nbytes = NBINTERNAL(0); - h->linp[0] = h->upper = t->bt_psize - nbytes; - dest = (char *)h + h->upper; - WR_BINTERNAL(dest, 0, l->pgno, 0); - - switch(h->flags & P_TYPE) { - case P_BLEAF: - bl = GETBLEAF(r, 0); - nbytes = NBINTERNAL(bl->ksize); - h->linp[1] = h->upper -= nbytes; - dest = (char *)h + h->upper; - WR_BINTERNAL(dest, bl->ksize, r->pgno, 0); - memmove(dest, bl->bytes, bl->ksize); - - /* - * If the key is on an overflow page, mark the overflow chain - * so it isn't deleted when the leaf copy of the key is deleted. - */ - if (bl->flags & P_BIGKEY && - bt_preserve(t, *(char *)bl->bytes) == RET_ERROR) - return (RET_ERROR); - break; - case P_BINTERNAL: - bi = GETBINTERNAL(r, 0); - nbytes = NBINTERNAL(bi->ksize); - h->linp[1] = h->upper -= nbytes; - dest = (char *)h + h->upper; - memmove(dest, bi, nbytes); - ((BINTERNAL *)dest)->pgno = r->pgno; - break; - default: - abort(); - } - - /* There are two keys on the page. */ - h->lower = BTDATAOFF + 2 * sizeof(indx_t); - - /* Unpin the root page, set to btree internal page. */ - h->flags &= ~P_TYPE; - h->flags |= P_BINTERNAL; - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - - return (RET_SUCCESS); -} - -/* - * BT_PSPLIT -- Do the real work of splitting the page. - * - * Parameters: - * t: tree - * h: page to be split - * l: page to put lower half of data - * r: page to put upper half of data - * pskip: pointer to index to leave open - * ilen: insert length - * - * Returns: - * Pointer to page in which to insert. - */ -static PAGE * -bt_psplit(BTREE *t, PAGE *h, PAGE *l, PAGE *r, u_int *pskip, size_t ilen) -{ - BINTERNAL *bi; - BLEAF *bl; - RLEAF *rl; - EPGNO *c; - PAGE *rval; - void *src = NULL; - indx_t full, half, nxt, off, skip, top, used; - size_t nbytes; - int bigkeycnt, isbigkey; - - /* - * Split the data to the left and right pages. Leave the skip index - * open. Additionally, make some effort not to split on an overflow - * key. This makes internal page processing faster and can save - * space as overflow keys used by internal pages are never deleted. - */ - bigkeycnt = 0; - skip = *pskip; - full = t->bt_psize - BTDATAOFF; - half = full / 2; - used = 0; - for (nxt = off = 0, top = NEXTINDEX(h); nxt < top; ++off) { - if (skip == off) { - nbytes = ilen; - isbigkey = 0; /* XXX: not really known. */ - } else - switch (h->flags & P_TYPE) { - case P_BINTERNAL: - src = bi = GETBINTERNAL(h, nxt); - nbytes = NBINTERNAL(bi->ksize); - isbigkey = bi->flags & P_BIGKEY; - break; - case P_BLEAF: - src = bl = GETBLEAF(h, nxt); - nbytes = NBLEAF(bl); - isbigkey = bl->flags & P_BIGKEY; - break; - case P_RINTERNAL: - src = GETRINTERNAL(h, nxt); - nbytes = NRINTERNAL; - isbigkey = 0; - break; - case P_RLEAF: - src = rl = GETRLEAF(h, nxt); - nbytes = NRLEAF(rl); - isbigkey = 0; - break; - default: - abort(); - } - - /* - * If the key/data pairs are substantial fractions of the max - * possible size for the page, it's possible to get situations - * where we decide to try and copy too much onto the left page. - * Make sure that doesn't happen. - */ - if (skip <= off && used + nbytes >= full) { - --off; - break; - } - - /* Copy the key/data pair, if not the skipped index. */ - if (skip != off) { - ++nxt; - - l->linp[off] = l->upper -= nbytes; - memmove((char *)l + l->upper, src, nbytes); - } - - used += nbytes; - if (used >= half) { - if (!isbigkey || bigkeycnt == 3) - break; - else - ++bigkeycnt; - } - } - - /* - * Off is the last offset that's valid for the left page. - * Nxt is the first offset to be placed on the right page. - */ - l->lower += (off + 1) * sizeof(indx_t); - - /* - * If splitting the page that the cursor was on, the cursor has to be - * adjusted to point to the same record as before the split. If the - * cursor is at or past the skipped slot, the cursor is incremented by - * one. If the cursor is on the right page, it is decremented by the - * number of records split to the left page. - * - * Don't bother checking for the B_SEQINIT flag, the page number will - * be P_INVALID. - */ - c = &t->bt_bcursor; - if (c->pgno == h->pgno) { - if (c->index >= skip) - ++c->index; - if (c->index < nxt) /* Left page. */ - c->pgno = l->pgno; - else { /* Right page. */ - c->pgno = r->pgno; - c->index -= nxt; - } - } - - /* - * If the skipped index was on the left page, just return that page. - * Otherwise, adjust the skip index to reflect the new position on - * the right page. - */ - if (skip <= off) { - skip = 0; - rval = l; - } else { - rval = r; - *pskip -= nxt; - } - - for (off = 0; nxt < top; ++off) { - if (skip == nxt) { - ++off; - skip = 0; - } - switch (h->flags & P_TYPE) { - case P_BINTERNAL: - src = bi = GETBINTERNAL(h, nxt); - nbytes = NBINTERNAL(bi->ksize); - break; - case P_BLEAF: - src = bl = GETBLEAF(h, nxt); - nbytes = NBLEAF(bl); - break; - case P_RINTERNAL: - src = GETRINTERNAL(h, nxt); - nbytes = NRINTERNAL; - break; - case P_RLEAF: - src = rl = GETRLEAF(h, nxt); - nbytes = NRLEAF(rl); - break; - default: - abort(); - } - ++nxt; - r->linp[off] = r->upper -= nbytes; - memmove((char *)r + r->upper, src, nbytes); - } - r->lower += off * sizeof(indx_t); - - /* If the key is being appended to the page, adjust the index. */ - if (skip == top) - r->lower += sizeof(indx_t); - - return (rval); -} - -/* - * BT_PRESERVE -- Mark a chain of pages as used by an internal node. - * - * Chains of indirect blocks pointed to by leaf nodes get reclaimed when the - * record that references them gets deleted. Chains pointed to by internal - * pages never get deleted. This routine marks a chain as pointed to by an - * internal page. - * - * Parameters: - * t: tree - * pg: page number of first page in the chain. - * - * Returns: - * RET_SUCCESS, RET_ERROR. - */ -static int -bt_preserve(BTREE *t, pgno_t pg) -{ - PAGE *h; - - if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) - return (RET_ERROR); - h->flags |= P_PRESERVE; - mpool_put(t->bt_mp, h, MPOOL_DIRTY); - return (RET_SUCCESS); -} - -/* - * REC_TOTAL -- Return the number of recno entries below a page. - * - * Parameters: - * h: page - * - * Returns: - * The number of recno entries below a page. - * - * XXX - * These values could be set by the bt_psplit routine. The problem is that the - * entry has to be popped off of the stack etc. or the values have to be passed - * all the way back to bt_split/bt_rroot and it's not very clean. - */ -static recno_t -rec_total(PAGE *h) -{ - recno_t recs; - indx_t nxt, top; - - for (recs = 0, nxt = 0, top = NEXTINDEX(h); nxt < top; ++nxt) - recs += GETRINTERNAL(h, nxt)->nrecs; - return (recs); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_stack.c b/cde/lib/DtMmdb/btree_berkeley/bt_stack.c deleted file mode 100644 index 27c10452c..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_stack.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_stack.c /main/3 1996/06/11 17:13:15 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_stack.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include - -#include -#include "btree.h" - -/* - * When a page splits, a new record has to be inserted into its parent page. - * This page may have to split as well, all the way up to the root. Since - * parent pointers in each page would be expensive, we maintain a stack of - * parent pages as we descend the tree. - * - * XXX - * This is a concurrency problem -- if user a builds a stack, then user b - * splits the tree, then user a tries to split the tree, there's a new level - * in the tree that user a doesn't know about. - */ - -/* - * __BT_PUSH -- Push parent page info onto the stack (LIFO). - * - * Parameters: - * t: tree - * pgno: page - * index: page index - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -__bt_push(BTREE *t, pgno_t pgno, int index) -{ - if (t->bt_sp == t->bt_maxstack) { - t->bt_maxstack += 50; - if ((t->bt_stack = __fix_realloc(t->bt_stack, - t->bt_maxstack * sizeof(EPGNO))) == NULL) { - t->bt_maxstack -= 50; - return (RET_ERROR); - } - } - - t->bt_stack[t->bt_sp].pgno = pgno; - t->bt_stack[t->bt_sp].index = index; - ++t->bt_sp; - return (RET_SUCCESS); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/bt_utils.c b/cde/lib/DtMmdb/btree_berkeley/bt_utils.c deleted file mode 100644 index 3e6f499eb..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/bt_utils.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: bt_utils.c /main/3 1996/06/11 17:13:20 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bt_utils.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include - -#include -#include "btree.h" - -/* - * __BT_RET -- Build return key/data pair as a result of search or scan. - * - * Parameters: - * t: tree - * d: LEAF to be returned to the user. - * key: user's key structure (NULL if not to be filled in) - * data: user's data structure - * - * Returns: - * RET_SUCCESS, RET_ERROR. - */ -int -__bt_ret(BTREE *t, EPG *e, DBT *key, DBT *data) -{ - BLEAF *bl; - void *p; - - bl = GETBLEAF(e->page, e->index); - - /* - * We always copy big keys/data to make them contigous. Otherwise, - * we leave the page pinned and don't copy unless the user specified - * concurrent access. - */ - if (bl->flags & P_BIGDATA) { - if (__ovfl_get(t, bl->bytes + bl->ksize, - &data->size, &t->bt_dbuf, &t->bt_dbufsz)) - return (RET_ERROR); - data->data = t->bt_dbuf; - } else if (ISSET(t, B_DB_LOCK)) { - /* Use +1 in case the first record retrieved is 0 length. */ - if (bl->dsize + 1 > t->bt_dbufsz) { - if ((p = __fix_realloc(t->bt_dbuf, bl->dsize + 1)) == NULL) - return (RET_ERROR); - t->bt_dbuf = p; - t->bt_dbufsz = bl->dsize + 1; - } - memmove(t->bt_dbuf, bl->bytes + bl->ksize, bl->dsize); - data->size = bl->dsize; - data->data = t->bt_dbuf; - } else { - data->size = bl->dsize; - data->data = bl->bytes + bl->ksize; - } - - if (key == NULL) - return (RET_SUCCESS); - - if (bl->flags & P_BIGKEY) { - if (__ovfl_get(t, bl->bytes, - &key->size, &t->bt_kbuf, &t->bt_kbufsz)) - return (RET_ERROR); - key->data = t->bt_kbuf; - } else if (ISSET(t, B_DB_LOCK)) { - if (bl->ksize > t->bt_kbufsz) { - if ((p = __fix_realloc(t->bt_kbuf, bl->ksize)) == NULL) - return (RET_ERROR); - t->bt_kbuf = p; - t->bt_kbufsz = bl->ksize; - } - memmove(t->bt_kbuf, bl->bytes, bl->ksize); - key->size = bl->ksize; - key->data = t->bt_kbuf; - } else { - key->size = bl->ksize; - key->data = bl->bytes; - } - return (RET_SUCCESS); -} - -/* - * __BT_CMP -- Compare a key to a given record. - * - * Parameters: - * t: tree - * k1: DBT pointer of first arg to comparison - * e: pointer to EPG for comparison - * - * Returns: - * < 0 if k1 is < record - * = 0 if k1 is = record - * > 0 if k1 is > record - */ -int -__bt_cmp(BTREE *t, const DBT *k1, EPG *e) -{ - BINTERNAL *bi; - BLEAF *bl; - DBT k2; - PAGE *h; - void *bigkey; - - /* - * The left-most key on internal pages, at any level of the tree, is - * guaranteed by the following code to be less than any user key. - * This saves us from having to update the leftmost key on an internal - * page when the user inserts a new key in the tree smaller than - * anything we've yet seen. - */ - h = e->page; - if (e->index == 0 && h->prevpg == P_INVALID && !(h->flags & P_BLEAF)) - return (1); - - bigkey = NULL; - if (h->flags & P_BLEAF) { - bl = GETBLEAF(h, e->index); - if (bl->flags & P_BIGKEY) - bigkey = bl->bytes; - else { - k2.data = bl->bytes; - k2.size = bl->ksize; - } - } else { - bi = GETBINTERNAL(h, e->index); - if (bi->flags & P_BIGKEY) - bigkey = bi->bytes; - else { - k2.data = bi->bytes; - k2.size = bi->ksize; - } - } - - if (bigkey) { - if (__ovfl_get(t, bigkey, - &k2.size, &t->bt_dbuf, &t->bt_dbufsz)) - return (RET_ERROR); - k2.data = t->bt_dbuf; - } - return ((*t->bt_cmp)(k1, &k2)); -} - -/* - * __BT_DEFCMP -- Default comparison routine. - * - * Parameters: - * a: DBT #1 - * b: DBT #2 - * - * Returns: - * < 0 if a is < b - * = 0 if a is = b - * > 0 if a is > b - */ -int -__bt_defcmp(const DBT *a, const DBT *b) -{ - u_char *p1, *p2; - int diff, len; - - len = MIN(a->size, b->size); - for (p1 = a->data, p2 = b->data; len--; ++p1, ++p2) - if ((diff = *p1 - *p2)) - return (diff); - return (a->size - b->size); -} - -/* - * __BT_DEFPFX -- Default prefix routine. - * - * Parameters: - * a: DBT #1 - * b: DBT #2 - * - * Returns: - * Number of bytes needed to distinguish b from a. - */ -int -__bt_defpfx(const DBT *a, const DBT *b) -{ - u_char *p1, *p2; - int len; - int cnt; - - cnt = 1; - len = MIN(a->size, b->size); - for (p1 = a->data, p2 = b->data; len--; ++p1, ++p2, ++cnt) - if (*p1 != *p2) - return (cnt); - - /* a->size must be <= b->size, or they wouldn't be in this order. */ - return (a->size < b->size ? a->size + 1 : a->size); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/btree.h b/cde/lib/DtMmdb/btree_berkeley/btree.h deleted file mode 100644 index b353017dc..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/btree.h +++ /dev/null @@ -1,374 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: btree.h /main/5 1996/07/18 16:31:58 drk $ */ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Olson. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)btree.h 8.2 (Berkeley) 9/7/93 - */ - -#include - -#define DEFMINKEYPAGE (2) /* Minimum keys per page */ -#define MINCACHE (5) /* Minimum cached pages */ -#define MINPSIZE (512) /* Minimum page size */ - -/* - * Page 0 of a btree file contains a copy of the meta-data. This page is also - * used as an out-of-band page, i.e. page pointers that point to nowhere point - * to page 0. Page 1 is the root of the btree. - */ -#define P_INVALID 0 /* Invalid tree page number. */ -#define P_META 0 /* Tree metadata page number. */ -#define P_ROOT 1 /* Tree root page number. */ - -/* - * There are five page layouts in the btree: btree internal pages (BINTERNAL), - * btree leaf pages (BLEAF), recno internal pages (RINTERNAL), recno leaf pages - * (RLEAF) and overflow pages. All five page types have a page header (PAGE). - * This implementation requires that longs within structures are NOT padded. - * (ANSI C permits random padding.) If your compiler pads randomly you'll have - * to do some work to get this package to run. - */ -typedef struct _page { - pgno_t pgno; /* this page's page number */ - pgno_t prevpg; /* left sibling */ - pgno_t nextpg; /* right sibling */ - -#define P_BINTERNAL 0x01 /* btree internal page */ -#define P_BLEAF 0x02 /* leaf page */ -#define P_OVERFLOW 0x04 /* overflow page */ -#define P_RINTERNAL 0x08 /* recno internal page */ -#define P_RLEAF 0x10 /* leaf page */ -#define P_TYPE 0x1f /* type mask */ - -#define P_PRESERVE 0x20 /* never delete this chain of pages */ - u_long flags; - - indx_t lower; /* lower bound of free space on page */ - indx_t upper; /* upper bound of free space on page */ - indx_t linp[1]; /* long-aligned VARIABLE LENGTH DATA */ -} PAGE; - -/* First and next index. */ -#define BTDATAOFF (sizeof(pgno_t) + sizeof(pgno_t) + sizeof(pgno_t) + \ - sizeof(u_long) + sizeof(indx_t) + sizeof(indx_t)) -#define NEXTINDEX(p) (((p)->lower - BTDATAOFF) / sizeof(indx_t)) - -/* - * For pages other than overflow pages, there is an array of offsets into the - * rest of the page immediately following the page header. Each offset is to - * an item which is unique to the type of page. The h_lower offset is just - * past the last filled-in index. The h_upper offset is the first item on the - * page. Offsets are from the beginning of the page. - * - * If an item is too big to store on a single page, a flag is set and the item - * is a { page, size } pair such that the page is the first page of an overflow - * chain with size bytes of item. Overflow pages are simply bytes without any - * external structure. - * - * The size and page number fields in the items are long aligned so they can be - * manipulated without copying. - */ -#define LALIGN(n) (((n) + sizeof(u_long) - 1) & ~(sizeof(u_long) - 1)) -#define NOVFLSIZE (sizeof(pgno_t) + sizeof(size_t)) - -/* - * For the btree internal pages, the item is a key. BINTERNALs are {key, pgno} - * pairs, such that the key compares less than or equal to all of the records - * on that page. For a tree without duplicate keys, an internal page with two - * consecutive keys, a and b, will have all records greater than or equal to a - * and less than b stored on the page associated with a. Duplicate keys are - * somewhat special and can cause duplicate internal and leaf page records and - * some minor modifications of the above rule. - */ -typedef struct _binternal { - size_t ksize; /* key size */ - pgno_t pgno; /* page number stored on */ -#define P_BIGDATA 0x01 /* overflow data */ -#define P_BIGKEY 0x02 /* overflow key */ - u_char flags; - char bytes[1]; /* data */ -} BINTERNAL; - -/* Get the page's BINTERNAL structure at index indx. */ -#define GETBINTERNAL(pg, indx) \ - ((BINTERNAL *)((char *)(pg) + (pg)->linp[indx])) - -/* Get the number of bytes in the entry. */ -#define NBINTERNAL(len) \ - LALIGN(sizeof(size_t) + sizeof(pgno_t) + sizeof(u_char) + (len)) - -/* Copy a BINTERNAL entry to the page. */ -#define WR_BINTERNAL(p, size, pgno, flags) { \ - *(size_t *)p = size; \ - p += sizeof(size_t); \ - *(pgno_t *)p = pgno; \ - p += sizeof(pgno_t); \ - *(u_char *)p = flags; \ - p += sizeof(u_char); \ -} - -/* - * For the recno internal pages, the item is a page number with the number of - * keys found on that page and below. - */ -typedef struct _rinternal { - recno_t nrecs; /* number of records */ - pgno_t pgno; /* page number stored below */ -} RINTERNAL; - -/* Get the page's RINTERNAL structure at index indx. */ -#define GETRINTERNAL(pg, indx) \ - ((RINTERNAL *)((char *)(pg) + (pg)->linp[indx])) - -/* Get the number of bytes in the entry. */ -#define NRINTERNAL \ - LALIGN(sizeof(recno_t) + sizeof(pgno_t)) - -/* Copy a RINTERAL entry to the page. */ -#define WR_RINTERNAL(p, nrecs, pgno) { \ - *(recno_t *)p = nrecs; \ - p += sizeof(recno_t); \ - *(pgno_t *)p = pgno; \ -} - -/* For the btree leaf pages, the item is a key and data pair. */ -typedef struct _bleaf { - size_t ksize; /* size of key */ - size_t dsize; /* size of data */ - u_char flags; /* P_BIGDATA, P_BIGKEY */ - char bytes[1]; /* data */ -} BLEAF; - -/* Get the page's BLEAF structure at index indx. */ -#define GETBLEAF(pg, indx) \ - ((BLEAF *)((char *)(pg) + (pg)->linp[indx])) - -/* Get the number of bytes in the entry. */ -#define NBLEAF(p) NBLEAFDBT((p)->ksize, (p)->dsize) - -/* Get the number of bytes in the user's key/data pair. */ -#define NBLEAFDBT(ksize, dsize) \ - LALIGN(sizeof(size_t) + sizeof(size_t) + sizeof(u_char) + \ - (ksize) + (dsize)) - -/* Copy a BLEAF entry to the page. */ -#define WR_BLEAF(p, key, data, flags) { \ - *(size_t *)p = key->size; \ - p += sizeof(size_t); \ - *(size_t *)p = data->size; \ - p += sizeof(size_t); \ - *(u_char *)p = flags; \ - p += sizeof(u_char); \ - memmove(p, key->data, key->size); \ - p += key->size; \ - memmove(p, data->data, data->size); \ -} - -/* For the recno leaf pages, the item is a data entry. */ -typedef struct _rleaf { - size_t dsize; /* size of data */ - u_char flags; /* P_BIGDATA */ - char bytes[1]; -} RLEAF; - -/* Get the page's RLEAF structure at index indx. */ -#define GETRLEAF(pg, indx) \ - ((RLEAF *)((char *)(pg) + (pg)->linp[indx])) - -/* Get the number of bytes in the entry. */ -#define NRLEAF(p) NRLEAFDBT((p)->dsize) - -/* Get the number of bytes from the user's data. */ -#define NRLEAFDBT(dsize) \ - LALIGN(sizeof(size_t) + sizeof(u_char) + (dsize)) - -/* Copy a RLEAF entry to the page. */ -#define WR_RLEAF(p, data, flags) { \ - *(size_t *)p = data->size; \ - p += sizeof(size_t); \ - *(u_char *)p = flags; \ - p += sizeof(u_char); \ - memmove(p, data->data, data->size); \ -} - -/* - * A record in the tree is either a pointer to a page and an index in the page - * or a page number and an index. These structures are used as a cursor, stack - * entry and search returns as well as to pass records to other routines. - * - * One comment about searches. Internal page searches must find the largest - * record less than key in the tree so that descents work. Leaf page searches - * must find the smallest record greater than key so that the returned index - * is the record's correct position for insertion. - * - * One comment about cursors. The cursor key is never removed from the tree, - * even if deleted. This is because it is quite difficult to decide where the - * cursor should be when other keys have been inserted/deleted in the tree; - * duplicate keys make it impossible. This scheme does require extra work - * though, to make sure that we don't perform an operation on a deleted key. - */ -typedef struct _epgno { - pgno_t pgno; /* the page number */ - indx_t index; /* the index on the page */ -} EPGNO; - -typedef struct _epg { - PAGE *page; /* the (pinned) page */ - indx_t index; /* the index on the page */ -} EPG; - -/* - * The metadata of the tree. The m_nrecs field is used only by the RECNO code. - * This is because the btree doesn't really need it and it requires that every - * put or delete call modify the metadata. - */ -typedef struct _btmeta { - u_long m_magic; /* magic number */ - u_long m_version; /* version */ - u_long m_psize; /* page size */ - u_long m_free; /* page number of first free page */ - u_long m_nrecs; /* R: number of records */ -#define SAVEMETA (B_NODUPS | R_RECNO) - u_long m_flags; /* bt_flags & SAVEMETA */ - u_long m_unused; /* unused */ -} BTMETA; - -/* The in-memory btree/recno data structure. */ -typedef struct _btree { - MPOOL *bt_mp; /* memory pool cookie */ - - DB *bt_dbp; /* pointer to enclosing DB */ - - PAGE *bt_pinned; /* page pinned across calls */ - - EPGNO bt_bcursor; /* B: btree cursor */ - recno_t bt_rcursor; /* R: recno cursor (1-based) */ - -#define BT_POP(t) (t->bt_sp ? t->bt_stack + --t->bt_sp : NULL) -#define BT_CLR(t) (t->bt_sp = 0) - EPGNO *bt_stack; /* stack of parent pages */ - u_int bt_sp; /* current stack pointer */ - u_int bt_maxstack; /* largest stack */ - - char *bt_kbuf; /* key buffer */ - size_t bt_kbufsz; /* key buffer size */ - char *bt_dbuf; /* data buffer */ - size_t bt_dbufsz; /* data buffer size */ - - int bt_fd; /* tree file descriptor */ - - pgno_t bt_free; /* next free page */ - u_long bt_psize; /* page size */ - indx_t bt_ovflsize; /* cut-off for key/data overflow */ - int bt_lorder; /* byte order */ - /* sorted order */ - enum { NOT, BACK, FORWARD } bt_order; - EPGNO bt_last; /* last insert */ - - /* B: key comparison function */ - int (*bt_cmp) __P((const DBT *, const DBT *)); - /* B: prefix comparison function */ - int (*bt_pfx) __P((const DBT *, const DBT *)); - /* R: recno input function */ - int (*bt_irec) __P((struct _btree *, recno_t)); - - FILE *bt_rfp; /* R: record FILE pointer */ - int bt_rfd; /* R: record file descriptor */ - - caddr_t bt_cmap; /* R: current point in mapped space */ - caddr_t bt_smap; /* R: start of mapped space */ - caddr_t bt_emap; /* R: end of mapped space */ - size_t bt_msize; /* R: size of mapped region. */ - - recno_t bt_nrecs; /* R: number of records */ - size_t bt_reclen; /* R: fixed record length */ - u_char bt_bval; /* R: delimiting byte/pad character */ - -/* - * NB: - * B_NODUPS and R_RECNO are stored on disk, and may not be changed. - */ -#define B_DELCRSR 0x00001 /* cursor has been deleted */ -#define B_INMEM 0x00002 /* in-memory tree */ -#define B_METADIRTY 0x00004 /* need to write metadata */ -#define B_MODIFIED 0x00008 /* tree modified */ -#define B_NEEDSWAP 0x00010 /* if byte order requires swapping */ -#define B_NODUPS 0x00020 /* no duplicate keys permitted */ -#define B_RDONLY 0x00040 /* read-only tree */ -#define R_RECNO 0x00080 /* record oriented tree */ -#define B_SEQINIT 0x00100 /* sequential scan initialized */ - -#define R_CLOSEFP 0x00200 /* opened a file pointer */ -#define R_EOF 0x00400 /* end of input file reached. */ -#define R_FIXLEN 0x00800 /* fixed length records */ -#define R_MEMMAPPED 0x01000 /* memory mapped file. */ -#define R_INMEM 0x02000 /* in-memory file */ -#define R_MODIFIED 0x04000 /* modified file */ -#define R_RDONLY 0x08000 /* read-only file */ - -#define B_DB_LOCK 0x10000 /* DB_LOCK specified. */ -#define B_DB_SHMEM 0x20000 /* DB_SHMEM specified. */ -#define B_DB_TXN 0x40000 /* DB_TXN specified. */ - - u_long bt_flags; /* btree state */ -} BTREE; - -#define SET(t, f) ((t)->bt_flags |= (f)) -#define CLR(t, f) ((t)->bt_flags &= ~(f)) -#define ISSET(t, f) ((t)->bt_flags & (f)) - -#include "extern.h" diff --git a/cde/lib/DtMmdb/btree_berkeley/cdefs.h b/cde/lib/DtMmdb/btree_berkeley/cdefs.h deleted file mode 100644 index 76660a964..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/cdefs.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: cdefs.h /main/4 1996/06/11 17:13:31 cde-hal $ */ -/* - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)cdefs.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _CDEFS_H_ -#define _CDEFS_H_ - -#if defined(__cplusplus) -#ifndef __BEGIN_DECLS -#define __BEGIN_DECLS extern "C" { -#endif -#ifndef __END_DECLS -#define __END_DECLS }; -#endif -#else -#undef __BEGIN_DECLS -#define __BEGIN_DECLS -#undef __END_DECLS -#define __END_DECLS -#endif - -/* - * The __CONCAT macro is used to concatenate parts of symbol names, e.g. - * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. - * The __CONCAT macro is a bit tricky -- make sure you don't put spaces - * in between its arguments. __CONCAT can also concatenate double-quoted - * strings produced by the __STRING macro, but this only works with ANSI C. - */ -#if defined(__STDC__) || defined(__cplusplus) -#ifdef __P -#undef __P -#endif -#define __P(protos) protos /* full-blown ANSI C */ -#ifndef __CONCAT -#define __CONCAT(x,y) x ## y -#endif -#define __STRING(x) #x - -#else /* !(__STDC__ || __cplusplus) */ -#ifdef __P -#undef __P -#endif -#define __P(protos) () /* traditional C preprocessor */ -#define __CONCAT(x,y) x/**/y -#define __STRING(x) "x" - -#ifdef __GNUC__ -#define const __const /* GCC: ANSI C with -traditional */ -#define inline __inline -#define signed __signed -#define volatile __volatile - -#else /* !__GNUC__ */ -#define const /* delete ANSI C keywords */ -#define inline -#define signed -#define volatile -#endif /* !__GNUC__ */ -#endif /* !(__STDC__ || __cplusplus) */ - -/* - * GCC has extensions for declaring functions as `pure' (always returns - * the same value given the same inputs, i.e., has no external state and - * no side effects) and `dead' (nonreturning). These mainly affect - * optimization and warnings. Unfortunately, GCC complains if these are - * used under strict ANSI mode (`gcc -ansi -pedantic'), hence we need to - * define them only if compiling without this. - */ -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) -#undef __dead -#define __dead __volatile -#ifndef __pure -#define __pure __const -#endif -#else -#define __dead -#define __pure -#endif - -#endif /* !_CDEFS_H_ */ diff --git a/cde/lib/DtMmdb/btree_berkeley/compat.h b/cde/lib/DtMmdb/btree_berkeley/compat.h deleted file mode 100644 index e5c8d5bab..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/compat.h +++ /dev/null @@ -1,254 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: compat.h /main/8 1996/07/18 16:32:14 drk $ */ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)compat.h 8.3 (Berkeley) 9/6/93 - */ - -#ifndef _COMPAT_H_ -#define _COMPAT_H_ - -#include -#include "utility/config.h" - -/* - * If your system doesn't typedef u_long, u_short, or u_char, change - * the 0 to a 1. - */ -#if 0 -typedef unsigned long u_long; -typedef unsigned short u_short; -typedef unsigned char u_char; -#endif - -/* If your system doesn't typedef size_t, change the 0 to a 1. */ -#if 0 -typedef unsigned int size_t; -#endif - -/* - * If your system doesn't have the POSIX type for a signal mask, - * change the 0 to a 1. - */ -#if 0 -typedef unsigned int sigset_t; -#endif - -/* - * If you don't have POSIX 1003.1 signals, the signal code surrounding the - * temporary file creation is intended to block all of the possible signals - * long enough to create the file and unlink it. All of this stuff is - * intended to use old-style BSD calls to fake POSIX 1003.1 calls. - */ -#ifdef NO_POSIX_SIGNALS -#define sigemptyset(set) (*(set) = 0) -#define sigfillset(set) (*(set) = ~(sigset_t)0, 0) -#define sigaddset(set,signo) (*(set) |= sigmask(signo), 0) -#define sigdelset(set,signo) (*(set) &= ~sigmask(signo), 0) -#define sigismember(set,signo) ((*(set) & sigmask(signo)) != 0) - -#define SIG_BLOCK 1 -#define SIG_UNBLOCK 2 -#define SIG_SETMASK 3 - -static int __sigtemp; /* For the use of sigprocmask */ - -/* Repeated test of oset != NULL is to avoid "*0". */ -#define sigprocmask(how, set, oset) \ - ((__sigtemp = \ - (((how) == SIG_BLOCK) ? \ - sigblock(0) | *(set) : \ - (((how) == SIG_UNBLOCK) ? \ - sigblock(0) & ~(*(set)) : \ - ((how) == SIG_SETMASK ? \ - *(set) : sigblock(0))))), \ - ((oset) ? (*(oset ? oset : set) = sigsetmask(__sigtemp)) : \ - sigsetmask(__sigtemp)), 0) -#endif - -/* - * If realloc(3) of a NULL pointer on your system isn't the same as - * a malloc(3) call, change the 0 to a 1, and add realloc.o to the - * MISC line in your Makefile. - */ -/* -#if 1 -#define realloc __fix_realloc -#endif -*/ -void * __fix_realloc __P((void*, size_t)); - - -/* - * If your system doesn't have an include file with the appropriate - * byte order set, make sure you specify the correct one. - */ -#ifndef BYTE_ORDER - -#define LITTLE_ENDIAN 1234 /* LSB first: i386, vax */ -#define BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */ - -#ifdef MMDB_LITTLE_ENDIAN -#define BYTE_ORDER LITTLE_ENDIAN /* Set for your system. */ -#endif - -#ifdef MMDB_BIG_ENDIAN -#define BYTE_ORDER BIG_ENDIAN /* Set for your system. */ -#endif - - -#endif - -#if defined(SYSV) || defined(SYSTEM5) || defined(SVR4) -/* #define index(a, b) strchr(a, b) */ -#ifndef rindex -#define rindex(a, b) strrchr(a, b) -#endif -#define bzero(a, b) memset(a, 0, b) -#define bcmp(a, b, n) memcmp(a, b, n) -#define bcopy(a, b, n) memmove(b, a, n) -#endif - -#if defined(BSD) || defined(BSD4_3) -#define strchr(a, b) index(a, b) -#define strrchr(a, b) rindex(a, b) -#define memcmp(a, b, n) bcmp(a, b, n) -#define memmove(a, b, n) bcopy(b, a, n) -#endif - -/* - * 32-bit machine. The db routines are theoretically independent of - * the size of u_shorts and u_longs, but I don't know that anyone has - * ever actually tried it. At a minimum, change the following #define's - * if you are trying to compile on a different type of system. - */ -#ifndef USHRT_MAX -#define USHRT_MAX 0xFFFF -#define ULONG_MAX 0xFFFFFFFF -#endif - -/* POSIX 1003.1 access mode mask. */ -#ifndef O_ACCMODE -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) -#endif - -/* POSIX 1003.2 RE limit. */ -#ifndef _POSIX2_RE_DUP_MAX -#define _POSIX2_RE_DUP_MAX 255 -#endif - -/* - * If you can't provide lock values in the open(2) call. Note, this - * allows races to happen. - */ -#ifndef O_EXLOCK -#define O_EXLOCK 0 -#endif - -#ifndef O_SHLOCK -#define O_SHLOCK 0 -#endif - -#ifndef EFTYPE -#define EFTYPE EINVAL /* POSIX 1003.1 format errno. */ -#endif - -#ifndef WCOREDUMP /* 4.4BSD extension */ -#define WCOREDUMP(a) 0 -#endif - -#ifndef STDERR_FILENO -#define STDIN_FILENO 0 /* ANSI C #defines */ -#define STDOUT_FILENO 1 -#define STDERR_FILENO 2 -#endif - -#ifndef SEEK_END -#define SEEK_SET 0 /* POSIX 1003.1 seek values */ -#define SEEK_CUR 1 -#define SEEK_END 2 -#endif - -#ifndef S_ISLNK /* BSD POSIX 1003.1 extensions */ -#define S_ISLNK(m) ((m & 0170000) == 0120000) -#define S_ISSOCK(m) ((m & 0170000) == 0140000) -#endif - -#ifndef TCSASOFT -#define TCSASOFT 0 -#endif - -#ifndef _POSIX2_RE_DUP_MAX -#define _POSIX2_RE_DUP_MAX 255 -#endif - -#ifndef NULL /* ANSI C #defines NULL everywhere. */ -#define NULL 0 -#endif - -#undef MAX -#define MAX(a,b) ((a)<(b)?(b):(a)) - -#undef MIN -#define MIN(a,b) ((a)<(b)?(a):(b)) - -#ifndef DEFFILEMODE /* Default file permissions. */ -#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) -#endif - -#ifndef _BSD_VA_LIST_ -#define _BSD_VA_LIST_ char * -#endif - -#endif /* !_COMPAT_H_ */ diff --git a/cde/lib/DtMmdb/btree_berkeley/db.c b/cde/lib/DtMmdb/btree_berkeley/db.c deleted file mode 100644 index a735506c5..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/db.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: db.c /main/3 1996/06/11 17:13:41 cde-hal $ */ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)db.c 8.2 (Berkeley) 9/7/93"; -#endif /* LIBC_SCCS and not lint */ - -#include - -#include -#include -#include -#include - -#define __DBINTERFACE_PRIVATE -#include - -DB * -dbopen(const char *fname, int flags, int mode, DBTYPE type, const void *openinfo) -{ - -#define DB_FLAGS (DB_LOCK | DB_SHMEM | DB_TXN) -#define USE_OPEN_FLAGS \ - (O_CREAT | O_EXCL | O_EXLOCK | O_RDONLY | O_RDWR | \ - O_SHLOCK | O_TRUNC) - - if ((flags & ~(USE_OPEN_FLAGS | DB_FLAGS)) == 0) - switch (type) { - case DB_BTREE: - return (__bt_open(fname, flags & USE_OPEN_FLAGS, - mode, openinfo, flags & DB_FLAGS)); -/* - case DB_HASH: - return (__hash_open(fname, flags & USE_OPEN_FLAGS, - mode, openinfo, flags & DB_FLAGS)); - case DB_RECNO: - return (__rec_open(fname, flags & USE_OPEN_FLAGS, - mode, openinfo, flags & DB_FLAGS)); -*/ - default: - break; - } - errno = EINVAL; - return (NULL); -} - -static int -__dberr(void) -{ - return (RET_ERROR); -} - -/* - * __DBPANIC -- Stop. - * - * Parameters: - * dbp: pointer to the DB structure. - */ -void -__dbpanic(DB *dbp) -{ - /* The only thing that can succeed is a close. */ - dbp->del = (int (*)())__dberr; - dbp->fd = (int (*)())__dberr; - dbp->get = (int (*)())__dberr; - dbp->put = (int (*)())__dberr; - dbp->seq = (int (*)())__dberr; - dbp->sync = (int (*)())__dberr; -} diff --git a/cde/lib/DtMmdb/btree_berkeley/db.h b/cde/lib/DtMmdb/btree_berkeley/db.h deleted file mode 100644 index d1bc23654..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/db.h +++ /dev/null @@ -1,249 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: db.h /main/3 1996/06/11 17:13:46 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)db.h 8.2 (Berkeley) 9/7/93 - */ - -#ifndef _DB_H_ -#define _DB_H_ - -#include -#include "cdefs.h" - -#include -#include "compat.h" - -#define RET_ERROR -1 /* Return values. */ -#define RET_SUCCESS 0 -#define RET_SPECIAL 1 - -#define MAX_PAGE_NUMBER ULONG_MAX /* >= # of pages in a file */ -typedef u_long pgno_t; -#define MAX_PAGE_OFFSET USHRT_MAX /* >= # of bytes in a page */ -typedef u_short indx_t; -#define MAX_REC_NUMBER ULONG_MAX /* >= # of records in a tree */ -typedef u_long recno_t; - -/* Key/data structure -- a Data-Base Thang. */ -typedef struct { - void *data; /* data */ - size_t size; /* data length */ -} DBT; - -/* Routine flags. */ -#define R_CURSOR 1 /* del, put, seq */ -#define __R_UNUSED 2 /* UNUSED */ -#define R_FIRST 3 /* seq */ -#define R_IAFTER 4 /* put (RECNO) */ -#define R_IBEFORE 5 /* put (RECNO) */ -#define R_LAST 6 /* seq (BTREE, RECNO) */ -#define R_NEXT 7 /* seq */ -#define R_NOOVERWRITE 8 /* put */ -#define R_PREV 9 /* seq (BTREE, RECNO) */ -#define R_SETCURSOR 10 /* put (RECNO) */ -#define R_RECNOSYNC 11 /* sync (RECNO) */ - -typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE; - -/* - * !!! - * The following flags are included in the dbopen(3) call as part of the - * open(2) flags. In order to avoid conflicts with the open flags, start - * at the top of the 16 or 32-bit number space and work our way down. If - * the open flags were significantly expanded in the future, it could be - * a problem. Wish I'd left another flags word in the dbopen call. - * - * !!! - * None of this stuff is implemented yet. The only reason that it's here - * is so that the access methods can skip copying the key/data pair when - * the DB_LOCK flag isn't set. - */ - -/* -assume 32 bit UINT. -*/ - -/* -#if UINT_MAX > 65535 -*/ -#define DB_LOCK 0x20000000 /* Do locking. */ -#define DB_SHMEM 0x40000000 /* Use shared memory. */ -#define DB_TXN 0x80000000 /* Do transactions. */ - -/* -#else -#define DB_LOCK 0x00002000 -#define DB_SHMEM 0x00004000 -#define DB_TXN 0x00008000 -#endif -*/ - -/* Access method description structure. */ -typedef struct __db { - DBTYPE type; /* Underlying db type. */ - int (*close) __P((struct __db *)); - int (*del) __P((const struct __db *, const DBT *, u_int)); - int (*fd) __P((const struct __db *)); - int (*get) __P((const struct __db *, const DBT *, DBT *, u_int)); - int (*put) __P((const struct __db *, DBT *, const DBT *, u_int)); - int (*seq) __P((const struct __db *, DBT *, DBT *, u_int)); - int (*sync) __P((const struct __db *, u_int)); - void *internal; /* access method private */ -} DB; - -#define BTREEMAGIC 0x053162 -#define BTREEVERSION 3 - -/* Structure used to pass parameters to the btree routines. */ -typedef struct { -#define R_DUP 0x01 /* duplicate keys */ - u_long flags; - int cachesize; /* bytes to cache */ - int maxkeypage; /* maximum keys per page */ - int minkeypage; /* minimum keys per page */ - int psize; /* page size */ - /* comparison, prefix functions */ - int (*compare) __P((const DBT *, const DBT *)); - int (*prefix) __P((const DBT *, const DBT *)); - int lorder; /* byte order */ -} BTREEINFO; - -#define HASHMAGIC 0x061561 -#define HASHVERSION 2 - -/* Structure used to pass parameters to the hashing routines. */ -typedef struct { - int bsize; /* bucket size */ - int ffactor; /* fill factor */ - int nelem; /* number of elements */ - int cachesize; /* bytes to cache */ - /* hash function */ - int (*hash) __P((const void *, size_t)); - int lorder; /* byte order */ -} HASHINFO; - -/* Structure used to pass parameters to the record routines. */ -typedef struct { -#define R_FIXEDLEN 0x01 /* fixed-length records */ -#define R_NOKEY 0x02 /* key not required */ -#define R_SNAPSHOT 0x04 /* snapshot the input */ - u_long flags; - int cachesize; /* bytes to cache */ - int psize; /* page size */ - int lorder; /* byte order */ - size_t reclen; /* record length (fixed-length records) */ - u_char bval; /* delimiting byte (variable-length records */ - char *bfname; /* btree file name */ -} RECNOINFO; - -/* - * Little endian <==> big endian long swap macros. - * BLSWAP swap a memory location - * BLPSWAP swap a referenced memory location - * BLSWAP_COPY swap from one location to another - */ -#define BLSWAP(a) { \ - u_long _tmp = a; \ - ((char *)&a)[0] = ((char *)&_tmp)[3]; \ - ((char *)&a)[1] = ((char *)&_tmp)[2]; \ - ((char *)&a)[2] = ((char *)&_tmp)[1]; \ - ((char *)&a)[3] = ((char *)&_tmp)[0]; \ -} -#define BLPSWAP(a) { \ - u_long _tmp = *(u_long *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[3]; \ - ((char *)a)[1] = ((char *)&_tmp)[2]; \ - ((char *)a)[2] = ((char *)&_tmp)[1]; \ - ((char *)a)[3] = ((char *)&_tmp)[0]; \ -} -#define BLSWAP_COPY(a, b) { \ - ((char *)&(b))[0] = ((char *)&(a))[3]; \ - ((char *)&(b))[1] = ((char *)&(a))[2]; \ - ((char *)&(b))[2] = ((char *)&(a))[1]; \ - ((char *)&(b))[3] = ((char *)&(a))[0]; \ -} - -/* - * Little endian <==> big endian short swap macros. - * BSSWAP swap a memory location - * BSPSWAP swap a referenced memory location - * BSSWAP_COPY swap from one location to another - */ -#define BSSWAP(a) { \ - u_short _tmp = a; \ - ((char *)&a)[0] = ((char *)&_tmp)[1]; \ - ((char *)&a)[1] = ((char *)&_tmp)[0]; \ -} -#define BSPSWAP(a) { \ - u_short _tmp = *(u_short *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[1]; \ - ((char *)a)[1] = ((char *)&_tmp)[0]; \ -} -#define BSSWAP_COPY(a, b) { \ - ((char *)&(b))[0] = ((char *)&(a))[1]; \ - ((char *)&(b))[1] = ((char *)&(a))[0]; \ -} - -__BEGIN_DECLS -DB *dbopen __P((const char *, int, int, DBTYPE, const void *)); - -#ifdef __DBINTERFACE_PRIVATE -DB *__bt_open __P((const char *, int, int, const BTREEINFO *, int)); -DB *__hash_open __P((const char *, int, int, const HASHINFO *, int)); -DB *__rec_open __P((const char *, int, int, const RECNOINFO *, int)); -void __dbpanic __P((DB *dbp)); -#endif -__END_DECLS -#endif /* !_DB_H_ */ diff --git a/cde/lib/DtMmdb/btree_berkeley/extern.h b/cde/lib/DtMmdb/btree_berkeley/extern.h deleted file mode 100644 index 813562c26..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/extern.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: extern.h /main/3 1996/06/11 17:13:51 cde-hal $ */ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)extern.h 8.2 (Berkeley) 9/7/93 - */ - -int __bt_close __P((DB *)); -int __bt_cmp __P((BTREE *, const DBT *, EPG *)); -int __bt_crsrdel __P((BTREE *, EPGNO *)); -int __bt_defcmp __P((const DBT *, const DBT *)); -int __bt_defpfx __P((const DBT *, const DBT *)); -int __bt_delete __P((const DB *, const DBT *, u_int)); -int __bt_dleaf __P((BTREE *, PAGE *, int)); -int __bt_fd __P((const DB *)); -EPG *__bt_first __P((BTREE *, const DBT *, int *)); -int __bt_free __P((BTREE *, PAGE *)); -int __bt_get __P((const DB *, const DBT *, DBT *, u_int)); -PAGE *__bt_new __P((BTREE *, pgno_t *)); -void __bt_pgin __P((void *, pgno_t, void *)); -void __bt_pgout __P((void *, pgno_t, void *)); -int __bt_push __P((BTREE *, pgno_t, int)); -int __bt_put __P((const DB *dbp, DBT *, const DBT *, u_int)); -int __bt_ret __P((BTREE *, EPG *, DBT *, DBT *)); -EPG *__bt_search __P((BTREE *, const DBT *, int *)); -int __bt_seq __P((const DB *, DBT *, DBT *, u_int)); -int __bt_split __P((BTREE *, PAGE *, - const DBT *, const DBT *, u_long, size_t, u_int)); -int __bt_sync __P((const DB *, u_int)); - -int __ovfl_delete __P((BTREE *, void *)); -int __ovfl_get __P((BTREE *, void *, size_t *, char **, size_t *)); -int __ovfl_put __P((BTREE *, const DBT *, pgno_t *)); - -#ifdef DEBUG -void __bt_dnpage __P((DB *, pgno_t)); -void __bt_dpage __P((PAGE *)); -void __bt_dump __P((DB *)); -#endif -#ifdef STATISTICS -void __bt_stat __P((DB *)); -#endif diff --git a/cde/lib/DtMmdb/btree_berkeley/memmove.c b/cde/lib/DtMmdb/btree_berkeley/memmove.c deleted file mode 100644 index 3568a01d2..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/memmove.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: memmove.c /main/3 1996/06/11 17:13:55 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)bcopy.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include "cdefs.h" -#include - -/* - * sizeof(word) MUST BE A POWER OF TWO - * SO THAT wmask BELOW IS ALL ONES - */ -typedef int word; /* "word" used for optimal copy speed */ - -#define wsize sizeof(word) -#define wmask (wsize - 1) - -/* - * Copy a block of memory, handling overlap. - * This is the routine that actually implements - * (the portable versions of) bcopy, memcpy, and memmove. - */ -#ifdef MEMCOPY -void * -memcpy(dst0, src0, length) -#else -#ifdef MEMMOVE -void * -memmove(dst0, src0, length) -#else -void -bcopy(src0, dst0, length) -#endif -#endif - void *dst0; - const void *src0; - size_t length; -{ - char *dst = dst0; - const char *src = src0; - size_t t; - - if (length == 0 || dst == src) /* nothing to do */ - goto done; - - /* - * Macros: loop-t-times; and loop-t-times, t>0 - */ -#define TLOOP(s) if (t) TLOOP1(s) -#define TLOOP1(s) do { s; } while (--t) - - if ((unsigned long)dst < (unsigned long)src) { - /* - * Copy forward. - */ - t = (size_t)src; /* only need low bits */ - if ((t | (size_t)dst) & wmask) { - /* - * Try to align operands. This cannot be done - * unless the low bits match. - */ - if ((t ^ (size_t)dst) & wmask || length < wsize) - t = length; - else - t = wsize - (t & wmask); - length -= t; - TLOOP1(*dst++ = *src++); - } - /* - * Copy whole words, then mop up any trailing bytes. - */ - t = length / wsize; - TLOOP(*(word *)dst = *(word *)src; src += wsize; dst += wsize); - t = length & wmask; - TLOOP(*dst++ = *src++); - } else { - /* - * Copy backwards. Otherwise essentially the same. - * Alignment works as before, except that it takes - * (t&wmask) bytes to align, not wsize-(t&wmask). - */ - src += length; - dst += length; - t = (size_t)src; - if ((t | (size_t)dst) & wmask) { - if ((t ^ (size_t)dst) & wmask || length <= wsize) - t = length; - else - t &= wmask; - length -= t; - TLOOP1(*--dst = *--src); - } - t = length / wsize; - TLOOP(src -= wsize; dst -= wsize; *(word *)dst = *(word *)src); - t = length & wmask; - TLOOP(*--dst = *--src); - } -done: -#if defined(MEMCOPY) || defined(MEMMOVE) - return (dst0); -#else - return; -#endif -} diff --git a/cde/lib/DtMmdb/btree_berkeley/mktemp.c b/cde/lib/DtMmdb/btree_berkeley/mktemp.c deleted file mode 100644 index 4f043799b..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/mktemp.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: mktemp.c /main/4 1996/11/01 10:18:53 drk $ */ -/* - * Copyright (c) 1987, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include -#include -#include -#include -#include - -#include -#ifdef X_NOT_STDC_ENV -extern int errno; -#endif - -static int _gettemp(char*, int*); - -int mkstemp(char *path) -{ - int fd; - - return (_gettemp(path, &fd) ? fd : -1); -} - -char * -mktemp(char *path) -{ - return(_gettemp(path, (int *)NULL) ? path : (char *)NULL); -} - -static int -_gettemp(char *path, int *doopen) -{ - char *start, *trv; - struct stat sbuf; - u_int pid; - - pid = getpid(); - for (trv = path; *trv; ++trv); /* extra X's get set to 0's */ - while (*--trv == 'X') { - *trv = (pid % 10) + '0'; - pid /= 10; - } - - /* - * check the target directory; if you have six X's and it - * doesn't exist this runs for a *very* long time. - */ - for (start = trv + 1;; --trv) { - if (trv <= path) - break; - if (*trv == '/') { - *trv = '\0'; - if (stat(path, &sbuf)) - return(0); - if (!S_ISDIR(sbuf.st_mode)) { - errno = ENOTDIR; - return(0); - } - *trv = '/'; - break; - } - } - - for (;;) { - if (doopen) { - if ((*doopen = - open(path, O_CREAT|O_EXCL|O_RDWR, 0600)) >= 0) - return(1); - if (errno != EEXIST) - return(0); - } - else if (stat(path, &sbuf)) - return(errno == ENOENT ? 1 : 0); - - /* tricky little algorithm for backward compatibility */ - for (trv = start;;) { - if (!*trv) - return(0); - if (*trv == 'z') - *trv++ = 'a'; - else { - if (isdigit((unsigned char) *trv)) - *trv = 'a'; - else - ++*trv; - break; - } - } - } - /*NOTREACHED*/ -} diff --git a/cde/lib/DtMmdb/btree_berkeley/mpool.c b/cde/lib/DtMmdb/btree_berkeley/mpool.c deleted file mode 100644 index 92ce371bf..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/mpool.c +++ /dev/null @@ -1,542 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: mpool.c /main/4 1996/10/04 09:47:13 drk $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)mpool.c 8.1 (Berkeley) 6/6/93"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include - -#include -#include -#include -#include -#include - -#include -#define __MPOOLINTERFACE_PRIVATE -#include "mpool.h" - -static BKT *mpool_bkt __P((MPOOL *)); -static BKT *mpool_look __P((MPOOL *, pgno_t)); -static int mpool_write __P((MPOOL *, BKT *)); -#ifdef DEBUG -static void __mpoolerr __P((const char *fmt, ...)); -#endif - -/* - * MPOOL_OPEN -- initialize a memory pool. - * - * Parameters: - * key: Shared buffer key. - * fd: File descriptor. - * pagesize: File page size. - * maxcache: Max number of cached pages. - * - * Returns: - * MPOOL pointer, NULL on error. - */ -MPOOL * -mpool_open(DBT *key, int fd, pgno_t pagesize, pgno_t maxcache) -{ - struct stat sb; - MPOOL *mp; - int entry; - - if (fstat(fd, &sb)) - return (NULL); - /* XXX - * We should only set st_size to 0 for pipes -- 4.4BSD has the fix so - * that stat(2) returns true for ISSOCK on pipes. Until then, this is - * fairly close. - */ - if (!S_ISREG(sb.st_mode)) { - errno = ESPIPE; - return (NULL); - } - - if ((mp = malloc(sizeof(MPOOL))) == NULL) - return (NULL); - mp->free.cnext = mp->free.cprev = (BKT *)(void *)&mp->free; - mp->lru.cnext = mp->lru.cprev = (BKT *)(void *)&mp->lru; - for (entry = 0; entry < HASHSIZE; ++entry) - mp->hashtable[entry].hnext = mp->hashtable[entry].hprev = - mp->hashtable[entry].cnext = mp->hashtable[entry].cprev = - (BKT *)&mp->hashtable[entry]; - mp->curcache = 0; - mp->maxcache = maxcache; - mp->pagesize = pagesize; - mp->npages = sb.st_size / pagesize; - mp->fd = fd; - mp->pgcookie = NULL; - mp->pgin = mp->pgout = NULL; - -#ifdef STATISTICS - mp->cachehit = mp->cachemiss = mp->pagealloc = mp->pageflush = - mp->pageget = mp->pagenew = mp->pageput = mp->pageread = - mp->pagewrite = 0; -#endif - return (mp); -} - -/* - * MPOOL_FILTER -- initialize input/output filters. - * - * Parameters: - * pgin: Page in conversion routine. - * pgout: Page out conversion routine. - * pgcookie: Cookie for page in/out routines. - */ -void -mpool_filter(MPOOL *mp, - void (*pgin) __P((void *, pgno_t, void *)), - void (*pgout) __P((void *, pgno_t, void *)), - void *pgcookie) -{ - mp->pgin = pgin; - mp->pgout = pgout; - mp->pgcookie = pgcookie; -} - -/* - * MPOOL_NEW -- get a new page - * - * Parameters: - * mp: mpool cookie - * pgnoadddr: place to store new page number - * Returns: - * RET_ERROR, RET_SUCCESS - */ -void * -mpool_new(MPOOL *mp, pgno_t *pgnoaddr) -{ - BKT *b; - BKTHDR *hp; - -#ifdef STATISTICS - ++mp->pagenew; -#endif - /* - * Get a BKT from the cache. Assign a new page number, attach it to - * the hash and lru chains and return. - */ - if ((b = mpool_bkt(mp)) == NULL) - return (NULL); - *pgnoaddr = b->pgno = mp->npages++; - b->flags = MPOOL_PINNED; - inshash(b, b->pgno); - inschain(b, &mp->lru); - return (b->page); -} - -/* - * MPOOL_GET -- get a page from the pool - * - * Parameters: - * mp: mpool cookie - * pgno: page number - * flags: not used - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -void * -mpool_get(MPOOL *mp, pgno_t pgno, u_int flags /* XXX not used? */) -{ - BKT *b; - BKTHDR *hp; - off_t off; - int nr; - - /* - * If asking for a specific page that is already in the cache, find - * it and return it. - */ - if ((b = mpool_look(mp, pgno))) { -#ifdef STATISTICS - ++mp->pageget; -#endif -#ifdef DEBUG - if (b->flags & MPOOL_PINNED) - __mpoolerr("mpool_get: page %d already pinned", - b->pgno); -#endif - rmchain(b); - inschain(b, &mp->lru); - b->flags |= MPOOL_PINNED; - return (b->page); - } - - /* Not allowed to retrieve a non-existent page. */ - if (pgno >= mp->npages) { - errno = EINVAL; - return (NULL); - } - - /* Get a page from the cache. */ - if ((b = mpool_bkt(mp)) == NULL) - return (NULL); - b->pgno = pgno; - b->flags = MPOOL_PINNED; - -#ifdef STATISTICS - ++mp->pageread; -#endif - /* Read in the contents. */ - off = mp->pagesize * pgno; - if (lseek(mp->fd, off, SEEK_SET) != off) - return (NULL); - if ((nr = read(mp->fd, b->page, mp->pagesize)) != mp->pagesize) { - if (nr >= 0) - errno = EFTYPE; - return (NULL); - } - if (mp->pgin) - (mp->pgin)(mp->pgcookie, b->pgno, b->page); - - inshash(b, b->pgno); - inschain(b, &mp->lru); -#ifdef STATISTICS - ++mp->pageget; -#endif - return (b->page); -} - -/* - * MPOOL_PUT -- return a page to the pool - * - * Parameters: - * mp: mpool cookie - * page: page pointer - * pgno: page number - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -mpool_put(MPOOL *mp, void *page, u_int flags) -{ - BKT *baddr; -#ifdef DEBUG - BKT *b; -#endif - -#ifdef STATISTICS - ++mp->pageput; -#endif - baddr = (BKT *)((char *)page - sizeof(BKT)); -#ifdef DEBUG - if (!(baddr->flags & MPOOL_PINNED)) - __mpoolerr("mpool_put: page %d not pinned", b->pgno); - for (b = mp->lru.cnext; b != (BKT *)&mp->lru; b = b->cnext) { - if (b == (BKT *)&mp->lru) - __mpoolerr("mpool_put: %0x: bad address", baddr); - if (b == baddr) - break; - } -#endif - baddr->flags &= ~MPOOL_PINNED; - baddr->flags |= flags & MPOOL_DIRTY; - return (RET_SUCCESS); -} - -/* - * MPOOL_CLOSE -- close the buffer pool - * - * Parameters: - * mp: mpool cookie - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -mpool_close(MPOOL *mp) -{ - BKT *b, *next; - - /* Free up any space allocated to the lru pages. */ - for (b = mp->lru.cprev; b != (BKT *)(void *)&mp->lru; b = next) { - next = b->cprev; - free(b); - } - free(mp); - return (RET_SUCCESS); -} - -/* - * MPOOL_SYNC -- sync the file to disk. - * - * Parameters: - * mp: mpool cookie - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -int -mpool_sync(MPOOL *mp) -{ - BKT *b; - - for (b = mp->lru.cprev; b != (BKT *)(void *)&mp->lru; b = b->cprev) - if (b->flags & MPOOL_DIRTY && mpool_write(mp, b) == RET_ERROR) - return (RET_ERROR); - return (fsync(mp->fd) ? RET_ERROR : RET_SUCCESS); -} - -/* - * MPOOL_BKT -- get/create a BKT from the cache - * - * Parameters: - * mp: mpool cookie - * - * Returns: - * NULL on failure and a pointer to the BKT on success - */ -static BKT * -mpool_bkt(MPOOL *mp) -{ - BKT *b; - - if (mp->curcache < mp->maxcache) - goto new; - - /* - * If the cache is maxxed out, search the lru list for a buffer we - * can flush. If we find one, write it if necessary and take it off - * any lists. If we don't find anything we grow the cache anyway. - * The cache never shrinks. - */ - for (b = mp->lru.cprev; b != (BKT *)(void *)&mp->lru; b = b->cprev) - if (!(b->flags & MPOOL_PINNED)) { - if (b->flags & MPOOL_DIRTY && - mpool_write(mp, b) == RET_ERROR) - return (NULL); - rmhash(b); - rmchain(b); -#ifdef STATISTICS - ++mp->pageflush; -#endif -#ifdef DEBUG - { - void *spage; - spage = b->page; - memset(b, 0xff, sizeof(BKT) + mp->pagesize); - b->page = spage; - } -#endif - return (b); - } - -new: if ((b = malloc(sizeof(BKT) + mp->pagesize)) == NULL) - return (NULL); -#ifdef STATISTICS - ++mp->pagealloc; -#endif -/* -#ifdef DEBUG -*/ - memset(b, 0xff, sizeof(BKT) + mp->pagesize); -/* -#endif -*/ - b->page = (char *)b + sizeof(BKT); - - ++mp->curcache; - return (b); -} - -/* - * MPOOL_WRITE -- sync a page to disk - * - * Parameters: - * mp: mpool cookie - * - * Returns: - * RET_ERROR, RET_SUCCESS - */ -static int -mpool_write(MPOOL *mp, BKT *b) -{ - off_t off; - - if (mp->pgout) - (mp->pgout)(mp->pgcookie, b->pgno, b->page); - -#ifdef STATISTICS - ++mp->pagewrite; -#endif - off = mp->pagesize * b->pgno; - if (lseek(mp->fd, off, SEEK_SET) != off) - return (RET_ERROR); - if (write(mp->fd, b->page, mp->pagesize) != mp->pagesize) - return (RET_ERROR); - b->flags &= ~MPOOL_DIRTY; - return (RET_SUCCESS); -} - -/* - * MPOOL_LOOK -- lookup a page - * - * Parameters: - * mp: mpool cookie - * pgno: page number - * - * Returns: - * NULL on failure and a pointer to the BKT on success - */ -static BKT * -mpool_look(MPOOL *mp, pgno_t pgno) -{ - BKT *b; - BKTHDR *tb; - - /* XXX - * If find the buffer, put it first on the hash chain so can - * find it again quickly. - */ - tb = &mp->hashtable[HASHKEY(pgno)]; - for (b = tb->hnext; b != (BKT *)tb; b = b->hnext) - if (b->pgno == pgno) { -#ifdef STATISTICS - ++mp->cachehit; -#endif - return (b); - } -#ifdef STATISTICS - ++mp->cachemiss; -#endif - return (NULL); -} - -#ifdef STATISTICS -/* - * MPOOL_STAT -- cache statistics - * - * Parameters: - * mp: mpool cookie - */ -void -mpool_stat(MPOOL *mp) -{ - BKT *b; - int cnt; - char *sep; - - (void)fprintf(stderr, "%lu pages in the file\n", mp->npages); - (void)fprintf(stderr, - "page size %lu, cacheing %lu pages of %lu page max cache\n", - mp->pagesize, mp->curcache, mp->maxcache); - (void)fprintf(stderr, "%lu page puts, %lu page gets, %lu page new\n", - mp->pageput, mp->pageget, mp->pagenew); - (void)fprintf(stderr, "%lu page allocs, %lu page flushes\n", - mp->pagealloc, mp->pageflush); - if (mp->cachehit + mp->cachemiss) - (void)fprintf(stderr, - "%.0f%% cache hit rate (%lu hits, %lu misses)\n", - ((double)mp->cachehit / (mp->cachehit + mp->cachemiss)) - * 100, mp->cachehit, mp->cachemiss); - (void)fprintf(stderr, "%lu page reads, %lu page writes\n", - mp->pageread, mp->pagewrite); - - sep = ""; - cnt = 0; - for (b = mp->lru.cnext; b != (BKT *)&mp->lru; b = b->cnext) { - (void)fprintf(stderr, "%s%ld", sep, b->pgno); - if (b->flags & MPOOL_DIRTY) - (void)fprintf(stderr, "d"); - if (b->flags & MPOOL_PINNED) - (void)fprintf(stderr, "P"); - if (++cnt == 10) { - sep = "\n"; - cnt = 0; - } else - sep = ", "; - - } - (void)fprintf(stderr, "\n"); -} -#endif - -#ifdef DEBUG -#if __STDC__ -#include -#else -#include -#endif - -static void -#if __STDC__ -__mpoolerr(const char *fmt, ...) -#else -__mpoolerr(fmt, va_alist) - char *fmt; - va_dcl -#endif -{ - va_list ap; -#if __STDC__ - va_start(ap, fmt); -#else - va_start(ap); -#endif - (void)vfprintf(stderr, fmt, ap); - va_end(ap); - (void)fprintf(stderr, "\n"); - abort(); - /* NOTREACHED */ -} -#endif diff --git a/cde/lib/DtMmdb/btree_berkeley/mpool.h b/cde/lib/DtMmdb/btree_berkeley/mpool.h deleted file mode 100644 index be7d18280..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/mpool.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: mpool.h /main/3 1996/06/11 17:14:12 cde-hal $ */ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)mpool.h 8.1 (Berkeley) 6/2/93 - */ - -/* - * The memory pool scheme is a simple one. Each in memory page is referenced - * by a bucket which is threaded in three ways. All active pages are threaded - * on a hash chain (hashed by the page number) and an lru chain. Inactive - * pages are threaded on a free chain. Each reference to a memory pool is - * handed an MPOOL which is the opaque cookie passed to all of the memory - * routines. - */ -#define HASHSIZE 128 -#define HASHKEY(pgno) ((pgno - 1) % HASHSIZE) - -/* The BKT structures are the elements of the lists. */ -typedef struct BKT { - struct BKT *hnext; /* next hash bucket */ - struct BKT *hprev; /* previous hash bucket */ - struct BKT *cnext; /* next free/lru bucket */ - struct BKT *cprev; /* previous free/lru bucket */ - void *page; /* page */ - pgno_t pgno; /* page number */ - -#define MPOOL_DIRTY 0x01 /* page needs to be written */ -#define MPOOL_PINNED 0x02 /* page is pinned into memory */ - unsigned long flags; /* flags */ -} BKT; - -/* The BKTHDR structures are the heads of the lists. */ -typedef struct BKTHDR { - struct BKT *hnext; /* next hash bucket */ - struct BKT *hprev; /* previous hash bucket */ - struct BKT *cnext; /* next free/lru bucket */ - struct BKT *cprev; /* previous free/lru bucket */ -} BKTHDR; - -typedef struct MPOOL { - BKTHDR free; /* The free list. */ - BKTHDR lru; /* The LRU list. */ - BKTHDR hashtable[HASHSIZE]; /* Hashed list by page number. */ - pgno_t curcache; /* Current number of cached pages. */ - pgno_t maxcache; /* Max number of cached pages. */ - pgno_t npages; /* Number of pages in the file. */ - u_long pagesize; /* File page size. */ - int fd; /* File descriptor. */ - /* Page in conversion routine. */ - void (*pgin) __P((void *, pgno_t, void *)); - /* Page out conversion routine. */ - void (*pgout) __P((void *, pgno_t, void *)); - void *pgcookie; /* Cookie for page in/out routines. */ -#ifdef STATISTICS - unsigned long cachehit; - unsigned long cachemiss; - unsigned long pagealloc; - unsigned long pageflush; - unsigned long pageget; - unsigned long pagenew; - unsigned long pageput; - unsigned long pageread; - unsigned long pagewrite; -#endif -} MPOOL; - -#ifdef __MPOOLINTERFACE_PRIVATE -/* Macros to insert/delete into/from hash chain. */ -#define rmhash(bp) { \ - (bp)->hprev->hnext = (bp)->hnext; \ - (bp)->hnext->hprev = (bp)->hprev; \ -} -#define inshash(bp, pg) { \ - hp = &mp->hashtable[HASHKEY(pg)]; \ - (bp)->hnext = hp->hnext; \ - (bp)->hprev = (struct BKT *)hp; \ - hp->hnext->hprev = (bp); \ - hp->hnext = (bp); \ -} - -/* Macros to insert/delete into/from lru and free chains. */ -#define rmchain(bp) { \ - (bp)->cprev->cnext = (bp)->cnext; \ - (bp)->cnext->cprev = (bp)->cprev; \ -} -#define inschain(bp, dp) { \ - (bp)->cnext = (dp)->cnext; \ - (bp)->cprev = (struct BKT *)(void *)(dp); \ - (dp)->cnext->cprev = (bp); \ - (dp)->cnext = (bp); \ -} -#endif - -__BEGIN_DECLS -MPOOL *mpool_open __P((DBT *, int, pgno_t, pgno_t)); -void mpool_filter __P((MPOOL *, void (*)(void *, pgno_t, void *), - void (*)(void *, pgno_t, void *), void *)); -void *mpool_new __P((MPOOL *, pgno_t *)); -void *mpool_get __P((MPOOL *, pgno_t, u_int)); -int mpool_put __P((MPOOL *, void *, u_int)); -int mpool_sync __P((MPOOL *)); -int mpool_close __P((MPOOL *)); -#ifdef STATISTICS -void mpool_stat __P((MPOOL *)); -#endif -__END_DECLS diff --git a/cde/lib/DtMmdb/btree_berkeley/ndbm.h b/cde/lib/DtMmdb/btree_berkeley/ndbm.h deleted file mode 100644 index 077de5fbd..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/ndbm.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: ndbm.h /main/3 1996/06/11 17:14:17 cde-hal $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ndbm.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _NDBM_H_ -#define _NDBM_H_ - -#include - -/* Map dbm interface onto db(3). */ -#define DBM_RDONLY O_RDONLY - -/* Flags to dbm_store(). */ -#define DBM_INSERT 0 -#define DBM_REPLACE 1 - -/* - * The db(3) support for ndbm(3) always appends this suffix to the - * file name to avoid overwriting the user's original database. - */ -#define DBM_SUFFIX ".db" - -typedef struct { - char *dptr; - int dsize; -} datum; - -typedef DB DBM; -#define dbm_pagfno(a) DBM_PAGFNO_NOT_AVAILABLE - -__BEGIN_DECLS -void dbm_close __P((DBM *)); -int dbm_delete __P((DBM *, datum)); -datum dbm_fetch __P((DBM *, datum)); -datum dbm_firstkey __P((DBM *)); -long dbm_forder __P((DBM *, datum)); -datum dbm_nextkey __P((DBM *)); -DBM *dbm_open __P((const char *, int, int)); -int dbm_store __P((DBM *, datum, datum, int)); -int dbm_dirfno __P((DBM *)); -__END_DECLS - -#endif /* !_NDBM_H_ */ diff --git a/cde/lib/DtMmdb/btree_berkeley/realloc.c b/cde/lib/DtMmdb/btree_berkeley/realloc.c deleted file mode 100644 index 16b5854f5..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/realloc.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: realloc.c /main/3 1996/06/11 17:14:22 cde-hal $ */ -#include - -#include - -void * -__fix_realloc(void *p, size_t n) -{ - return (p == 0 ? malloc(n) : realloc(p, n)); -} diff --git a/cde/lib/DtMmdb/btree_berkeley/snprintf.c b/cde/lib/DtMmdb/btree_berkeley/snprintf.c deleted file mode 100644 index 5be30e363..000000000 --- a/cde/lib/DtMmdb/btree_berkeley/snprintf.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: snprintf.c /main/3 1996/06/11 17:14:27 cde-hal $ */ -#include -#include "cdefs.h" - -#include -#include -#include - -#ifdef __STDC__ -#include -#else -#include -#endif - -int -#ifdef __STDC__ -snprintf(char *str, size_t n, const char *fmt, ...) -#else -snprintf(str, n, fmt, va_alist) - char *str; - size_t n; - const char *fmt; - va_dcl -#endif -{ - va_list ap; -#ifdef VSPRINTF_CHARSTAR - char *rp; -#else - int rval; -#endif - -#ifdef __STDC__ - va_start(ap, fmt); -#else - va_start(ap); -#endif - -#ifdef VSPRINTF_CHARSTAR - rp = (char*)(size_t)vsnprintf(str, n, fmt, ap); - va_end(ap); - return (strlen(rp)); -#else - rval = vsnprintf(str, n, fmt, ap); - va_end(ap); - return (rval); -#endif -} - -#if 0 -int -vsnprintf(str, n, fmt, ap) - char *str; - size_t n; - const char *fmt; - va_list ap; -{ -#ifdef VSPRINTF_CHARSTAR - return (strlen((char*)(size_t)vsnprintf(str, fmt, ap))); -#else - return (vsnprintf(str, fmt, ap)); -#endif -} -#endif diff --git a/cde/lib/DtMmdb/index/btree_index.h b/cde/lib/DtMmdb/index/btree_index.h index d2fb82c0b..438e61828 100644 --- a/cde/lib/DtMmdb/index/btree_index.h +++ b/cde/lib/DtMmdb/index/btree_index.h @@ -53,7 +53,7 @@ #define _btree_index_h 1 #include "index/dyn_index.h" -#include "btree/mmdb_btree.h" +#include "btree/btree.h" class btree_index : public dyn_index { diff --git a/cde/lib/DtMmdb/schema/index_desc.C b/cde/lib/DtMmdb/schema/index_desc.C index 0f3587cce..c82a13df8 100644 --- a/cde/lib/DtMmdb/schema/index_desc.C +++ b/cde/lib/DtMmdb/schema/index_desc.C @@ -164,7 +164,7 @@ handler* btree_index_desc::init_handler(object_dict& dict) (*(btree_index_handler*)v_handler_ptr) -> init_data_member( (inv_lists_handler*)inv_handler, - form("%s/%s", get_agent_nm(), dict.db_path()) + form("%s/%s", dict.db_path(), get_agent_nm()) ); (*(btree_index_handler*)v_handler_ptr) -> set_selector(position) ; diff --git a/cde/programs/dtinfo/dtinfo/src/Makefile.am b/cde/programs/dtinfo/dtinfo/src/Makefile.am index 8b18891e2..62fbfb9fc 100644 --- a/cde/programs/dtinfo/dtinfo/src/Makefile.am +++ b/cde/programs/dtinfo/dtinfo/src/Makefile.am @@ -67,6 +67,6 @@ bin_PROGRAMS = dtinfo dtinfo_CXXFLAGS = $(DTINFO_DEFINES) $(DTINFO_INCLUDES) dtinfo_LDADD = $(OLIASNORMALLIBS) $(LIBSEARCH) $(MMDB_LIBS) $(WWL_LIBS) \ - $(DTCLIENTLIBS) $(XTOOLLIB) + $(DTCLIENTLIBS) $(XTOOLLIB) $(LMDBLIB) dtinfo_SOURCES = main.C Support/InputNotifier.C From ba49a9e1610c217e04c9f19f9e34c20918183398 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Fri, 13 Jan 2023 01:06:51 +0000 Subject: [PATCH 41/47] dtdocbook: link to lmdb. --- cde/programs/dtdocbook/doc_utils/Makefile.am | 4 ++-- cde/programs/dtdocbook/infolib/Makefile.am | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cde/programs/dtdocbook/doc_utils/Makefile.am b/cde/programs/dtdocbook/doc_utils/Makefile.am index 1377074ae..9c69a9331 100644 --- a/cde/programs/dtdocbook/doc_utils/Makefile.am +++ b/cde/programs/dtdocbook/doc_utils/Makefile.am @@ -19,7 +19,7 @@ noinst_PROGRAMS = \ noinst_SCRIPTS = dtdocbook2man dtdocbook2sdl AM_CXXFLAGS = -DCDE_NEXT -I$(top_builddir)/lib/DtMmdb -AM_LDFLAGS = $(DTCLIENTLIBS) $(XTOOLLIB) +AM_LDFLAGS = $(DTCLIENTLIBS) $(XTOOLLIB) dtdcbk_datarootdir = $(abs_top_srcdir)/programs/dtdocbook @@ -28,7 +28,7 @@ AM_CPPFLAGS = \ -DINFOLIB_LIBEXECDIR=\"$(PWD)\" validator_SOURCES = validator.C -validator_LDFLAGS = $(LIBMMDB) +validator_LDFLAGS = $(LIBMMDB) $(LMDBLIB) CLEANFILES = $(noinst_SCRIPTS) $(validator_SOURCES) dtdocbook2infolib.c diff --git a/cde/programs/dtdocbook/infolib/Makefile.am b/cde/programs/dtdocbook/infolib/Makefile.am index daf7dec3a..a9634bc03 100644 --- a/cde/programs/dtdocbook/infolib/Makefile.am +++ b/cde/programs/dtdocbook/infolib/Makefile.am @@ -28,7 +28,7 @@ AM_CXXFLAGS = \ -DEXPAND_TEMPLATES \ -I$(top_builddir)/lib/DtMmdb -AM_LDFLAGS = $(XTOOLLIB) $(LIBMMDB) $(DTCLIENTLIBS) +AM_LDFLAGS = $(XTOOLLIB) $(LIBMMDB) $(DTCLIENTLIBS) $(LMDBLIB) MixedGen_SOURCES = \ MixedGen.C \ From c79224b36731f54c13f771adfad57ed356b1f1a7 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Fri, 5 Jul 2024 06:06:27 -0400 Subject: [PATCH 42/47] DtMmdb: replace ostring with std::string. --- cde/lib/DtMmdb/compression/code.C | 5 +- cde/lib/DtMmdb/compression/code.h | 9 +- cde/lib/DtMmdb/compression/huffman.C | 10 +- cde/lib/DtMmdb/compression/trie.C | 12 +- cde/lib/DtMmdb/compression/trie.h | 2 +- cde/lib/DtMmdb/dstr/index_agent.h | 1 - cde/lib/DtMmdb/index/btree_index.C | 2 +- cde/lib/DtMmdb/index/dyn_index.C | 2 +- cde/lib/DtMmdb/index/fast_mphf.C | 24 +-- cde/lib/DtMmdb/index/index.C | 19 +- cde/lib/DtMmdb/index/mphf_index.C | 6 +- cde/lib/DtMmdb/mgrs/misc.C | 11 +- cde/lib/DtMmdb/mgrs/misc.h | 9 +- cde/lib/DtMmdb/mgrs/name_oid_t.h | 33 --- cde/lib/DtMmdb/object/long_pstring.h | 1 - cde/lib/DtMmdb/object/oid_list.C | 25 +-- cde/lib/DtMmdb/object/oid_list.h | 3 +- cde/lib/DtMmdb/schema/object_dict.h | 1 - cde/lib/DtMmdb/utility/Makefile.am | 2 +- cde/lib/DtMmdb/utility/atoi_fast.C | 2 +- cde/lib/DtMmdb/utility/atoi_larson.C | 2 +- cde/lib/DtMmdb/utility/atoi_larson.h | 1 + cde/lib/DtMmdb/utility/atoi_pearson.C | 2 +- cde/lib/DtMmdb/utility/key.h | 4 +- cde/lib/DtMmdb/utility/ostring.C | 284 -------------------------- cde/lib/DtMmdb/utility/ostring.h | 113 ---------- 26 files changed, 71 insertions(+), 514 deletions(-) delete mode 100644 cde/lib/DtMmdb/mgrs/name_oid_t.h delete mode 100644 cde/lib/DtMmdb/utility/ostring.C delete mode 100644 cde/lib/DtMmdb/utility/ostring.h diff --git a/cde/lib/DtMmdb/compression/code.C b/cde/lib/DtMmdb/compression/code.C index f4272fa65..de27ea8f2 100644 --- a/cde/lib/DtMmdb/compression/code.C +++ b/cde/lib/DtMmdb/compression/code.C @@ -48,9 +48,10 @@ */ +#include "utility/debug.h" #include "compression/code.h" -encoding_unit::encoding_unit(ostring* w, unsigned int f) : +encoding_unit::encoding_unit(std::string* w, unsigned int f) : word(w), bits(0), freq(f), code(0), leaf_htr_node(NULL) { } @@ -60,7 +61,7 @@ encoding_unit::~encoding_unit() delete word; } -ostream& operator<<(ostream& out, encoding_unit& eu) +std::ostream& operator<<(std::ostream& out, encoding_unit& eu) { debug(out, *eu.word); debug(out, eu.freq); diff --git a/cde/lib/DtMmdb/compression/code.h b/cde/lib/DtMmdb/compression/code.h index 1fa14b8d8..e82f0cc16 100644 --- a/cde/lib/DtMmdb/compression/code.h +++ b/cde/lib/DtMmdb/compression/code.h @@ -51,7 +51,8 @@ #ifndef _code_h #define _code_h 1 -#include "utility/ostring.h" +#include + //////////////////////////////////////// // //////////////////////////////////////// @@ -61,17 +62,17 @@ class htr_node; class encoding_unit { public: - ostring* word; + std::string* word; int bits; unsigned int freq; unsigned int code; htr_node* leaf_htr_node; public: - encoding_unit(ostring* w, unsigned int freq); + encoding_unit(std::string* w, unsigned int freq); ~encoding_unit(); - friend ostream& operator <<(ostream&, encoding_unit&); + friend std::ostream& operator <<(std::ostream&, encoding_unit&); }; diff --git a/cde/lib/DtMmdb/compression/huffman.C b/cde/lib/DtMmdb/compression/huffman.C index d4cf430c5..8808f0b61 100644 --- a/cde/lib/DtMmdb/compression/huffman.C +++ b/cde/lib/DtMmdb/compression/huffman.C @@ -310,7 +310,7 @@ void huff::compress(const buffer& uncompressed, buffer& compressed) void huff::decompress(buffer& compressed, buffer& uncompressed) { char* buf_base = uncompressed.get_base(); - char* str; + const char* str; int str_len; char rem_bits; @@ -339,7 +339,7 @@ void huff::decompress(buffer& compressed, buffer& uncompressed) //} str_len = node_ptr -> eu -> word -> size(); - str = node_ptr -> eu -> word -> get(); + str = node_ptr -> eu -> word -> c_str(); if ( str_len == 1 ) { @@ -379,8 +379,8 @@ void huff::decompress(buffer& compressed, buffer& uncompressed) uncompressed.set_content_sz(buf_base-uncompressed.get_base()); if ( rem_bits > 0 ) - uncompressed.put( node_ptr -> eu -> word -> get(), - node_ptr -> eu -> word -> size() + uncompressed.put( node_ptr -> eu -> word -> c_str(), + node_ptr -> eu -> word -> size() ); } @@ -422,7 +422,7 @@ io_status huff::cdrOut(buffer& buf) word_sz = e_units[i] -> word -> size(); v_out_buf.put(char(word_sz)); - v_out_buf.put(e_units[i] -> word -> get(), word_sz); + v_out_buf.put(e_units[i] -> word -> c_str(), word_sz); v_out_buf.put(e_units[i] -> freq); } diff --git a/cde/lib/DtMmdb/compression/trie.C b/cde/lib/DtMmdb/compression/trie.C index f352ab321..dec1ab6b6 100644 --- a/cde/lib/DtMmdb/compression/trie.C +++ b/cde/lib/DtMmdb/compression/trie.C @@ -221,7 +221,7 @@ void trie::add(unsigned char* word, int sz, int fq) encoding_unit* trie::add_to_alphabet(unsigned char* word, int sz, int fq) { extend_alphabet(); - encoding_unit *x = new encoding_unit(new ostring((char*)word, sz), fq); + encoding_unit *x = new encoding_unit(new string((char*)word, sz), fq); alphabet[alphabet_sz++] = x; return x; } @@ -240,7 +240,7 @@ cerr << "\n"; static trie_node_info* y = 0; static char buf[1]; - static ostring *z; + static string *z; if ( root == 0 ) root = new trie_node(0); @@ -261,7 +261,7 @@ cerr << "\n"; y -> info.info_view.letter = j; buf[0] = char(j); - z = new ostring(buf, 1); + z = new string(buf, 1); y -> info.info_view.mark = 1; extend_alphabet(); @@ -292,7 +292,7 @@ void update_index(int ind, void* x) void trie::_find_leaf(trie_node* z, int& j) { trie_node_info* x = 0; - ostring *y; + string *y; for ( int i=0; i member(k) == false ) throw(stringException("first_of_invlist(): key is not in btree")); diff --git a/cde/lib/DtMmdb/index/dyn_index.C b/cde/lib/DtMmdb/index/dyn_index.C index 62f13e92e..852f698c7 100644 --- a/cde/lib/DtMmdb/index/dyn_index.C +++ b/cde/lib/DtMmdb/index/dyn_index.C @@ -81,7 +81,7 @@ if ( v_static_key.get() ) MESSAGE(cerr, "************"); */ - return new data_t(v_static_key.get(), v_static_key.size()); + return new data_t(v_static_key.c_str(), v_static_key.size()); } Boolean diff --git a/cde/lib/DtMmdb/index/fast_mphf.C b/cde/lib/DtMmdb/index/fast_mphf.C index 870ff1eb3..7db5f542f 100644 --- a/cde/lib/DtMmdb/index/fast_mphf.C +++ b/cde/lib/DtMmdb/index/fast_mphf.C @@ -257,7 +257,7 @@ debug(cerr, k); throw(stringException("hash table empty")); } - i = v_tbl0 -> atoi(k.get(), k.size(), r, v_key_set_sz); // for halmphf + i = v_tbl0 -> atoi(k.c_str(), k.size(), r, v_key_set_sz); // for halmphf if ( i < v_p1 ) { @@ -275,7 +275,7 @@ debug(cerr, k); //i = v_tbl1 -> atoi(k, c_bit+r+1) + gv; //debug(cerr, c_bit+r); - i = v_tbl1 -> atoi(k.get(), k.size(), c_bit+r+1, v_hash_tbl_sz) + gv; // for halmphf + i = v_tbl1 -> atoi(k.c_str(), k.size(), c_bit+r+1, v_hash_tbl_sz) + gv; // for halmphf return i % v_hash_tbl_sz; @@ -422,7 +422,7 @@ fast_mphf::print_mapping(const char *key_file, int option) //debug(cerr, option); MESSAGE(cerr, "print_mapping()"); - char string[LBUFSIZ]; + char str[LBUFSIZ]; fstream in(key_file, ios::in); if ( !in ) { @@ -432,23 +432,23 @@ fast_mphf::print_mapping(const char *key_file, int option) char *hash_table = new char[v_hash_tbl_sz]; for (unsigned int i = 0; i < v_hash_tbl_sz; hash_table[i++] = 0 ); - ostring lbuf(LBUFSIZ); + string lbuf; lbuf.reserve(LBUFSIZ); - while ( in.getline(string, LBUFSIZ, '\n') ) { + while ( in.getline(str, LBUFSIZ, '\n') ) { -// string[strlen(string)-1] = '\0'; +// str[strlen(str)-1] = '\0'; -//debug(cerr, string); -//debug(cerr, strlen(string)); +//debug(cerr, str); +//debug(cerr, strlen(str)); - lbuf.reset(); - lbuf.set(string, strlen(string)); + lbuf.clear(); + lbuf.assign(str, strlen(str)); int hash = hashTo(lbuf) ; if ( option == 1 ) { - cout << " string = " << string; + cout << " string = " << str; cout << ", hash = " << hash << "\n"; } @@ -457,7 +457,7 @@ fast_mphf::print_mapping(const char *key_file, int option) else hash_table[hash] = 1; - in.getline(string, LBUFSIZ, '\n'); + in.getline(str, LBUFSIZ, '\n'); } MESSAGE(cerr, "print_mapping() done"); diff --git a/cde/lib/DtMmdb/index/index.C b/cde/lib/DtMmdb/index/index.C index 8f3ad8d70..14fddffff 100644 --- a/cde/lib/DtMmdb/index/index.C +++ b/cde/lib/DtMmdb/index/index.C @@ -54,7 +54,7 @@ key_type* c_index::v_static_key_ptr; #define v_static_key (*v_static_key_ptr) #else -key_type c_index::v_static_key(LBUFSIZ); +key_type c_index::v_static_key; #endif void c_index::init_persistent_info(persistent_info* x) @@ -66,6 +66,7 @@ void c_index::init_persistent_info(persistent_info* x) c_index::c_index(c_code_t c_cd) : composite(c_cd), v_inv_lists_hd(NULL) { v_cmp_selector = 0; + v_static_key.reserve(LBUFSIZ); } oid_list_handler* c_index::operator()(int ind) @@ -108,27 +109,21 @@ oid_t c_index::first_of_invlist(int ind) Boolean c_index::get_key_string(const handler& t) const { ostringstream out; - int len; ((handler&)t) -> asciiOut(out); - len = out.str().size(); - v_static_key.set_size(len); - *((char *) memcpy(v_static_key.get(), out.str().c_str(), len) + len) = '\0'; + v_static_key = out.str(); return true; } Boolean c_index::get_key_string(const oid_t& t) const { - v_static_key.reset(); - int len; + v_static_key.clear(); + + ostringstream out(v_static_key.c_str()); - ostringstream out(v_static_key.get()); t.asciiOut(out); - - len = out.str().size(); - v_static_key.set_size(len); - *((char *) memcpy(v_static_key.get(), out.str().c_str(), len) + len) = '\0'; + v_static_key = out.str(); return true; } diff --git a/cde/lib/DtMmdb/index/mphf_index.C b/cde/lib/DtMmdb/index/mphf_index.C index 8439915c3..d0f990cd5 100644 --- a/cde/lib/DtMmdb/index/mphf_index.C +++ b/cde/lib/DtMmdb/index/mphf_index.C @@ -150,13 +150,13 @@ debug(cerr, (void*)(v_mphf->operator->())); v_sz = (*v_mphf) -> keysetsize(); (*v_inv_lists_hd) -> expand_space(v_sz); - key_type key(LBUFSIZ); - + key_type key; key.reserve(LBUFSIZ); + #ifdef DEBUG int i = 0; #endif - while ( in >> key ) { + while (std::getline(in, key)) { oid_t key_id(c_code_t(0), 0); diff --git a/cde/lib/DtMmdb/mgrs/misc.C b/cde/lib/DtMmdb/mgrs/misc.C index fa5a7bfa3..61f052a0b 100644 --- a/cde/lib/DtMmdb/mgrs/misc.C +++ b/cde/lib/DtMmdb/mgrs/misc.C @@ -62,7 +62,7 @@ debug(cerr, y -> v_name); */ - return ( x -> v_name.string_LS(y -> v_name) ); + return ( x -> v_name.compare(y -> v_name) < 0); } Boolean name_oid_eq(const void* o1, const void* o2) @@ -75,7 +75,7 @@ MESSAGE(cerr, "in name_oid_eq"); debug(cerr, x -> v_name); debug(cerr, y -> v_name); */ - return ( x -> v_name.string_EQ(y -> v_name) ); + return ( x -> v_name.compare(y -> v_name) == 0); } Boolean oid_ls(const void* o1, const void* o2) @@ -145,15 +145,14 @@ void delete_name_oid_rec_f(const void* name_oid_ptr) // // *************************************************** -mark_t::mark_t(char* marks) : ostring(strlen(marks)) +mark_t::mark_t(char* marks) : string(marks) { - set(marks); } istream& operator >>(istream& in, mark_t& m) { char c ; - char* ptr = m.get(); + const char* ptr = m.c_str(); Boolean read_marks = false; while ( in && in.get(c) ) { @@ -175,7 +174,7 @@ istream& operator >>(istream& in, mark_t& m) ostream& operator <<(ostream& out, mark_t& m) { - out << m.get(); + out << m.c_str(); return out ; } diff --git a/cde/lib/DtMmdb/mgrs/misc.h b/cde/lib/DtMmdb/mgrs/misc.h index ab3027461..11c664c39 100644 --- a/cde/lib/DtMmdb/mgrs/misc.h +++ b/cde/lib/DtMmdb/mgrs/misc.h @@ -52,7 +52,6 @@ #define _misc_h #include "object/root.h" -#include "utility/ostring.h" #include "storage/abs_storage.h" #include "object/handler.h" @@ -71,25 +70,25 @@ class name_oid_t public: name_oid_t(const char* nm, abs_storage* store = 0) : v_store(store) { - v_name.set(nm); + v_name.assign(nm); } name_oid_t(const char* nm, const oid_t& id, abs_storage* store = 0) : v_oid(id), v_store(store) { - v_name.set(nm); + v_name.assign(nm); }; ~name_oid_t() {}; public: - ostring v_name; + string v_name; oid_t v_oid; abs_storage* v_store; }; void delete_name_oid_rec_f(const void* name_oid_ptr); -class mark_t : private ostring +class mark_t : private string { public: mark_t(char* marks = (char*)"\t\n "); diff --git a/cde/lib/DtMmdb/mgrs/name_oid_t.h b/cde/lib/DtMmdb/mgrs/name_oid_t.h deleted file mode 100644 index 47903bac8..000000000 --- a/cde/lib/DtMmdb/mgrs/name_oid_t.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* $XConsortium: name_oid_t.h /main/3 1996/06/11 17:22:59 cde-hal $ */ -class name_oid_t { - -public: - ostring name; - oid_t v_oid; - - name_oid_t(const char* nm, oid_t& id) : v_oid(id) { - name.set(nm); - }; -}; diff --git a/cde/lib/DtMmdb/object/long_pstring.h b/cde/lib/DtMmdb/object/long_pstring.h index c72bc26f3..89aab9689 100644 --- a/cde/lib/DtMmdb/object/long_pstring.h +++ b/cde/lib/DtMmdb/object/long_pstring.h @@ -52,7 +52,6 @@ #define _long_pstring_h 1 #include "object/pstring.h" -#include "utility/ostring.h" #include "storage/page_storage.h" #include "storage/chunks_index.h" diff --git a/cde/lib/DtMmdb/object/oid_list.C b/cde/lib/DtMmdb/object/oid_list.C index a1e6e2d3b..0bc1954be 100644 --- a/cde/lib/DtMmdb/object/oid_list.C +++ b/cde/lib/DtMmdb/object/oid_list.C @@ -52,7 +52,7 @@ void oid_list::init_persistent_info(persistent_info* x) { - ostring* u = list_ptr.p; + string* u = list_ptr.p; root::init_persistent_info(x); @@ -62,7 +62,7 @@ void oid_list::init_persistent_info(persistent_info* x) //debug(cerr, (void*)this); //debug(cerr, my_oid()); - char* w = 0; + const char* w = 0; int v= 0; //MESSAGE(cerr, "oid_list::init_persistent_info(), new object case"); @@ -70,7 +70,7 @@ void oid_list::init_persistent_info(persistent_info* x) //debug(cerr, (void*)list_ptr.p); if (u) { - w = u -> get(); + w = u -> c_str(); v = u -> size(); } @@ -132,7 +132,7 @@ void oid_list::init_data_member(int leng) } list_ptr.loc = 0; // to please purify - list_ptr.p = new ostring(ptr, char_leng); + list_ptr.p = new string(ptr, char_leng); //MESSAGE(cerr, "oid_list::init_data_member(int leng)"); //debug(cerr, (void*)this); @@ -170,8 +170,6 @@ debug(cerr, int(list_ptr.loc)); debug(cerr, int(&list_ptr.loc)); */ - Boolean ok; - int extra_char_leng = extra_oids * OID_T_SZ; if ( get_mode(PERSISTENT) == true ) { @@ -189,18 +187,15 @@ debug(cerr, int(&list_ptr.loc)); } delete [] ptr; - - ok = true; - } else { - ok = list_ptr.p -> expand( extra_char_leng ); + list_ptr.p -> resize( extra_char_leng ); } v_sz += extra_oids; set_mode(UPDATE, true); - return ok; + return true; } @@ -275,7 +270,7 @@ debug(cerr, int(list_ptr.p)); if ( list_ptr.p == 0 ) throw(stringException("zero list_ptr.p value")); - memcpy(z, list_ptr.p -> get() + offset, OID_T_SZ); + memcpy(z, list_ptr.p -> c_str() + offset, OID_T_SZ); } //MESSAGE(cerr, "oid_list::operator() done"); @@ -363,7 +358,7 @@ oid_list::update_component(int index, const oid_t& new_oid) if ( list_ptr.p == 0 ) throw(stringException("zero list_ptr.p value")); - list_ptr.p -> update(z, OID_T_SZ, (index-1)*OID_T_SZ); + list_ptr.p -> replace((index-1)*OID_T_SZ, OID_T_SZ, z); } //MESSAGE(cerr, "oid_list::update_component() done"); @@ -435,8 +430,8 @@ io_status oid_list::asciiIn(istream& in) } else { delete list_ptr.p; - list_ptr.p = new ostring(0); - list_ptr.p -> set(oid_array, v_sz); + list_ptr.p = new string(0); + list_ptr.p -> assign(oid_array, v_sz); } delete [] oid_array; diff --git a/cde/lib/DtMmdb/object/oid_list.h b/cde/lib/DtMmdb/object/oid_list.h index 8c8f1808b..ae3ca86a4 100644 --- a/cde/lib/DtMmdb/object/oid_list.h +++ b/cde/lib/DtMmdb/object/oid_list.h @@ -51,7 +51,6 @@ #ifndef _oid_list_h #define _oid_list_h 1 -#include "utility/ostring.h" #include "dstr/dlist.h" #include "dstr/dlist_void_ptr_cell.h" #include "object/oid.h" @@ -71,7 +70,7 @@ protected: union { mmdb_pos_t loc; - ostring* p; + string* p; } list_ptr; protected: diff --git a/cde/lib/DtMmdb/schema/object_dict.h b/cde/lib/DtMmdb/schema/object_dict.h index d863d7bd6..72d204e7c 100644 --- a/cde/lib/DtMmdb/schema/object_dict.h +++ b/cde/lib/DtMmdb/schema/object_dict.h @@ -53,7 +53,6 @@ #define _object_dict 1 #include "dstr/bset.h" -#include "utility/ostring.h" #include "object/handler.h" #include "mgrs/template_mgr.h" diff --git a/cde/lib/DtMmdb/utility/Makefile.am b/cde/lib/DtMmdb/utility/Makefile.am index 10beddabc..f9842303e 100644 --- a/cde/lib/DtMmdb/utility/Makefile.am +++ b/cde/lib/DtMmdb/utility/Makefile.am @@ -4,7 +4,7 @@ noinst_LTLIBRARIES = libutility.la libutility_la_CXXFLAGS = -DPORTABLE_DB -I.. -libutility_la_SOURCES = funcs.C ostring.C pm_random.C \ +libutility_la_SOURCES = funcs.C pm_random.C \ atoi_pearson.C xtime.C buffer.C \ atoi_larson.C atomic_lock.C rw_lock.C \ atoi_fast.C filter.C mmdb_exception.C \ diff --git a/cde/lib/DtMmdb/utility/atoi_fast.C b/cde/lib/DtMmdb/utility/atoi_fast.C index f9bf41e5e..a598d32a6 100644 --- a/cde/lib/DtMmdb/utility/atoi_fast.C +++ b/cde/lib/DtMmdb/utility/atoi_fast.C @@ -98,7 +98,7 @@ union u_tag { int atoi_fast::atoi(const key_type& k, int offset) const { - char* string = k.get(); + const char* string = k.c_str(); int l = k.size(); return atoi((const char*)string, l, offset, 0); } diff --git a/cde/lib/DtMmdb/utility/atoi_larson.C b/cde/lib/DtMmdb/utility/atoi_larson.C index 91695dd62..88e104ec7 100644 --- a/cde/lib/DtMmdb/utility/atoi_larson.C +++ b/cde/lib/DtMmdb/utility/atoi_larson.C @@ -73,7 +73,7 @@ atoi_larson::atoi(const char* str, int sz, int, int rang) const int atoi_larson::atoi(const key_type& k, int) const { - char* string = k.get(); + const char* string = k.c_str(); int l = k.size(); unsigned int sum = 0; diff --git a/cde/lib/DtMmdb/utility/atoi_larson.h b/cde/lib/DtMmdb/utility/atoi_larson.h index e21125d05..9bf2f5ff0 100644 --- a/cde/lib/DtMmdb/utility/atoi_larson.h +++ b/cde/lib/DtMmdb/utility/atoi_larson.h @@ -52,6 +52,7 @@ #else #include #endif +#include #include "key.h" // Based on Larson's algorithm presented in CACM ???. diff --git a/cde/lib/DtMmdb/utility/atoi_pearson.C b/cde/lib/DtMmdb/utility/atoi_pearson.C index afd001288..1a3c3a671 100644 --- a/cde/lib/DtMmdb/utility/atoi_pearson.C +++ b/cde/lib/DtMmdb/utility/atoi_pearson.C @@ -129,7 +129,7 @@ union u_tag { int atoi_pearson::atoi(const key_type& k, int offset) const { - char* string = k.get(); + const char* string = k.c_str(); int l = k.size(); return atoi((const char*)string, l, offset, 0); } diff --git a/cde/lib/DtMmdb/utility/key.h b/cde/lib/DtMmdb/utility/key.h index 2e690b335..156a258ed 100644 --- a/cde/lib/DtMmdb/utility/key.h +++ b/cde/lib/DtMmdb/utility/key.h @@ -45,8 +45,8 @@ #ifndef _key_h #define _key_h 1 -#include "utility/ostring.h" +#include -typedef ostring key_type; +typedef std::string key_type; #endif diff --git a/cde/lib/DtMmdb/utility/ostring.C b/cde/lib/DtMmdb/utility/ostring.C deleted file mode 100644 index 32c572050..000000000 --- a/cde/lib/DtMmdb/utility/ostring.C +++ /dev/null @@ -1,284 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* - * $XConsortium: ostring.cc /main/3 1996/06/11 17:38:07 cde-hal $ - * - * Copyright (c) 1992 HaL Computer Systems, Inc. All rights reserved. - * UNPUBLISHED -- rights reserved under the Copyright Laws of the United - * States. Use of a copyright notice is precautionary only and does not - * imply publication or disclosure. - * - * This software contains confidential information and trade secrets of HaL - * Computer Systems, Inc. Use, disclosure, or reproduction is prohibited - * without the prior express written permission of HaL Computer Systems, Inc. - * - * RESTRICTED RIGHTS LEGEND - * Use, duplication, or disclosure by the Government is subject to - * restrictions as set forth in subparagraph (c)(l)(ii) of the Rights in - * Technical Data and Computer Software clause at DFARS 252.227-7013. - * HaL Computer Systems, Inc. - * 1315 Dell Avenue, Campbell, CA 95008 - * - */ - - -#include "utility/ostring.h" - -#ifdef C_API -char* ostring::input_buf = 0; -#else -char ostring::input_buf[LBUFSIZ]; -#endif - -ostring::ostring() : v_sz(0), v_allo_sz(1) -{ - v_p = new char[1]; -} - -ostring::ostring(const int i) : v_sz(0), v_allo_sz(i+1) -{ - v_p = new char[i+1]; -} - -ostring::ostring(char* x, const int i) -{ - int w = i; - - if ( w == -1 ) { - w = strlen(x); - } - - v_sz = w; - v_allo_sz = w+1; - - v_p = new char[w+1]; - memcpy(v_p, x, w); - v_p[w] = 0; -} - -ostring::ostring(const ostring& s) : -v_sz(s.v_sz), v_allo_sz(s.v_allo_sz) -{ - v_p = new char[v_allo_sz]; - memcpy(v_p, s.v_p, v_sz); - v_p[v_sz] = 0; -} - -/* -ostring::~ostring() -{ - delete v_p; -} -*/ - -Boolean ostring::set(const char* x, int l) -{ - expand(l+1); - - memcpy(v_p, x, l); - v_p[l] = 0; - v_sz = l; - - return true; -} - -/* -Boolean ostring::set(const char* x) -{ - return set(x, strlen(x)); -} - -void ostring::reset() -{ - v_sz = 0; -} - -void ostring::set_size(const int s) -{ - v_sz = s; - v_p[v_sz] = 0; -} -*/ - -/********************************************/ -// set alloc_sz to at least new_alloc_sz bytes -/********************************************/ -Boolean ostring::expand(const int new_alloc_sz, Boolean pre_zero) -{ - if ( new_alloc_sz > v_allo_sz ) { - v_allo_sz = new_alloc_sz+1; - char* new_p = new char[v_allo_sz]; - - if ( pre_zero == true ) - memset(new_p, char(0), v_allo_sz); - - if ( v_p ) { - memcpy(new_p, v_p, v_sz); - delete [] v_p; - } - - v_p = new_p; - } - return true; -} - -char* ostring::acquire() -{ - v_allo_sz = v_sz = 0; - char *x = v_p; - v_p = 0; - return x; -} - -Boolean ostring::append(const char* x, int l) -{ - expand(v_sz+l+1); - - memcpy(v_p+v_sz, x, l); - v_sz += l; - v_p[v_sz] = 0; - return true; -} - -Boolean ostring::update(const char* x, int l, int offset) -{ - if ( offset + l > v_sz ) { - MESSAGE(cerr, "update(): char chunk too small"); - throw(boundaryException(0, v_sz, offset+l)); - } - - memcpy(v_p+offset, x, l); - return true; -} - -int ostring::substr(ostring& s) -{ - if ( v_p == 0 || s.v_p == 0 ) - return -1; - - char* sub_p = strstr(v_p, s.v_p); - - if ( sub_p == 0 ) - return -1; - else - return (int)(sub_p - v_p); -} - -/* -int ostring::size() const -{ - return v_sz; -} - -int ostring::alloc_size() const -{ - return v_allo_sz; -} -*/ - -ostring& ostring::operator +(ostring& s) -{ - int l1 = v_sz; - int l2 = s.v_sz; - - ostring *new_ostring = new ostring(l1+l2); - - int i; - for ( i = 0; i get() ; - char* y_str = y.get() ; - - int x_sz = this -> size() ; - int y_sz = y.size() ; - - if ( x_sz == y_sz ) { - if ( memcmp(x_str, y_str, x_sz ) < 0 ) - return true; - else - return false; - } else { - - int min = MIN(x_sz, y_sz); - - for ( int i=0; i y_str[i] ) - return false; - } - if ( x_sz < y_sz ) - return true; - else - return false; - } -} - -Boolean ostring::string_EQ(ostring& y) const -{ - if ( this -> size() == y.size() && - memcmp(this -> get(), y.get(), this -> size() ) == 0 - ) - return true; - else - return false; -} - -ostream& operator <<(ostream& s, const ostring& o) -{ - if ( o.v_p ) { - //s << o.v_sz << ":"; - for ( int i=0; i>(istream& s, ostring& o) -{ - s.getline( o.input_buf, LBUFSIZ ); - o.set(o.input_buf); - return s; -} - - -ostring* ostring::operator+= (ostring* ) -{ - return 0; -} - -ostring* ostring::concate_with(...) -{ - return 0 ; -} - diff --git a/cde/lib/DtMmdb/utility/ostring.h b/cde/lib/DtMmdb/utility/ostring.h deleted file mode 100644 index b969b3add..000000000 --- a/cde/lib/DtMmdb/utility/ostring.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * CDE - Common Desktop Environment - * - * Copyright (c) 1993-2012, The Open Group. All rights reserved. - * - * These libraries and programs are free software; you can - * redistribute them and/or modify them under the terms of the GNU - * Lesser General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * These libraries and programs are distributed in the hope that - * they will be useful, but WITHOUT ANY WARRANTY; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU Lesser General Public License for more - * details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with these libraries and programs; if not, write - * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth - * Floor, Boston, MA 02110-1301 USA - */ -/* - * $XConsortium: ostring.h /main/3 1996/06/11 17:38:12 cde-hal $ - * - * Copyright (c) 1992 HaL Computer Systems, Inc. All rights reserved. - * UNPUBLISHED -- rights reserved under the Copyright Laws of the United - * States. Use of a copyright notice is precautionary only and does not - * imply publication or disclosure. - * - * This software contains confidential information and trade secrets of HaL - * Computer Systems, Inc. Use, disclosure, or reproduction is prohibited - * without the prior express written permission of HaL Computer Systems, Inc. - * - * RESTRICTED RIGHTS LEGEND - * Use, duplication, or disclosure by the Government is subject to - * restrictions as set forth in subparagraph (c)(l)(ii) of the Rights in - * Technical Data and Computer Software clause at DFARS 252.227-7013. - * HaL Computer Systems, Inc. - * 1315 Dell Avenue, Campbell, CA 95008 - * - */ - - -#ifndef _ostring_h -#define _ostring_h 1 - -#include "utility/funcs.h" - -class ostring { - -public: - ostring(); - ostring(const int chunk_size); - ostring(char* str, const int str_sz = -1); // -1 means take strlen(str) - ostring(const ostring&); - virtual ~ostring() { delete [] v_p; }; - -// length of the string - int size() const { return v_sz; }; -// length of the allocated chunk - int alloc_size() const { return v_allo_sz; }; - - ostring& operator +(ostring&); // merge of two strings - int substr(ostring&); // substring matching - -// set string to content x - Boolean set(const char* x) { return set(x, strlen(x)); }; - - Boolean set(const char* x, int i); // set string to content x with length i - Boolean append(const char* x, int l); // append a string x of length i - Boolean update(const char* x, int l, int offset); // update a substring x of length i at 'offset'. offset + l should be sz - -//set alloc_sz to at least new_alloc_sz bytes -// pre_zero = true -> zero new space before copy old content over - Boolean expand(const int, Boolean pre_zero = false); - - void reset() { v_sz = 0; }; - void set_size(const int s) { v_sz = s; v_p[v_sz] = 0; }; - - char* get() const { return v_p; }; // get char pointer p - - char* acquire() ; // return what is pointed at by p and reset - // alloc_sz, sz, and p to 0; - -// append x to this and return this. - ostring* operator+= (ostring* x); - -// concate all ostring arguments (ostring* 's) to this and return this. - ostring* concate_with(...); - - Boolean string_LS(ostring&) const; - Boolean string_EQ(ostring&) const; - - friend ostream& operator <<(ostream&, const ostring&); - friend istream& operator >>(istream&, ostring&); - -protected: - char *v_p; // memory chunk pointer - int v_sz; // string size - int v_allo_sz; // allocated memory chunk size - -#ifdef C_API - static char* input_buf; - - friend void initialize_MMDB(); - friend void quit_MMDB(); -#else - static char input_buf[LBUFSIZ]; -#endif -}; - -#endif From f0123efa84c75055218ba57ef3ada78ed1df5c1e Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Sat, 6 Jul 2024 09:42:25 +0000 Subject: [PATCH 43/47] Fix some warnings. --- cde/include/Dt/dproto.h | 10 +++---- cde/lib/DtSearch/boolyac.y | 3 +++ cde/lib/DtSearch/raima/crread.c | 2 +- cde/lib/DtSearch/raima/crwrite.c | 2 +- cde/lib/DtSearch/raima/fillnew.c | 2 +- cde/lib/DtSearch/raima/recread.c | 2 +- cde/lib/DtSearch/raima/recwrite.c | 2 +- cde/lib/DtTerm/TermPrim/TermPrim.c | 4 +-- cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c | 4 +-- .../dtappbuilder/src/ab/appfw_stubs.c | 2 +- .../dtappbuilder/src/ab/dnd_ed_stubs.c | 2 +- .../dtappbuilder/src/ab/message_ed_stubs.c | 2 +- .../dtappbuilder/src/ab/pal_panedwin.c | 2 +- .../dtappbuilder/src/libABil/bil_parse.y | 2 ++ cde/programs/dtcalc/calctool.c | 6 ++--- cde/programs/dtcalc/calctool.h | 1 + cde/programs/dtcalc/functions.c | 4 +-- cde/programs/dtcm/dtcm/browser.c | 2 +- cde/programs/dtcm/dtcm/rfp.c | 4 +-- cde/programs/dtcm/dtcm/x_graphics.c | 26 +++++++++---------- .../dthelp/parser/canon1/helptag/help.c | 2 -- .../dthelp/parser/canon1/helptag/help.if | 4 +-- .../dthelp/parser/canon1/helptag/option.c | 2 -- .../dthelp/parser/canon1/parser/proto.h | 4 +++ .../dthelp/parser/canon1/parser/scan.c | 2 -- .../dthelp/parser/pass1/helptag/help.c | 2 -- .../dthelp/parser/pass1/helptag/help.if | 4 +-- .../dthelp/parser/pass1/helptag/option.c | 2 -- .../dthelp/parser/pass1/parser/proto.h | 4 +++ .../dthelp/parser/pass1/parser/scan.c | 2 -- .../dthelp/parser/pass2/htag2/fproto.h | 2 +- .../dthelp/parser/pass2/htag2/option.c | 3 --- .../dthelp/parser/pass2/parser/parser.c | 16 ++++++------ .../dthelp/parser/pass2/parser/proto.h | 2 ++ .../dthelp/parser/pass2/parser/scan.c | 2 -- cde/programs/dtlogin/access.c | 12 ++++----- cde/programs/dtlogin/auth.c | 7 +++-- cde/programs/dtlogin/choose.c | 2 +- cde/programs/dtlogin/dm.h | 8 +++--- cde/programs/dtlogin/mitauth.c | 5 ++-- cde/programs/dtlogin/server.c | 2 +- cde/programs/dtlogin/xdmauth.c | 7 ++--- cde/programs/dtlogin/xdmcp.c | 8 +++--- cde/programs/ttsnoop/Makefile.am | 2 +- 44 files changed, 95 insertions(+), 95 deletions(-) diff --git a/cde/include/Dt/dproto.h b/cde/include/Dt/dproto.h index 2baa462f7..37f592a3a 100644 --- a/cde/include/Dt/dproto.h +++ b/cde/include/Dt/dproto.h @@ -189,10 +189,10 @@ int d_cmtype(int, int *, int); /* cmtype.c */ int d_connect(int, int); /* connect.c */ int d_cotype(int, int *, int); /* cotype.c */ int d_crget(DB_ADDR *, int); /* crget.c */ -int d_crread(long, char *, int); /* crread.c */ +int d_crread(long, void *, int); /* crread.c */ int d_crset(DB_ADDR *, int); /* crset.c */ int d_crtype(int *, int); /* crtype.c */ -int d_crwrite(long, char *, int); /* crwrite.c */ +int d_crwrite(long, void *, int); /* crwrite.c */ int d_csmget(int, DB_ADDR *, int); /* csmget.c */ int d_csmread(int, long, char *, int); /* csmread.c */ @@ -217,7 +217,7 @@ int d_recnext(int); /* recnext.c */ int d_recprev(int); /* recprev.c */ int d_destroy(const char *); /* destroy.c */ int d_discon(int, int); /* discon.c */ -int d_fillnew(int, const char *, int); /* fillnew.c */ +int d_fillnew(int, const void *, int); /* fillnew.c */ int d_findco(int, int); /* findco.c */ int d_findfm(int, int); /* findfm.c */ int d_findlm(int, int); /* findlm.c */ @@ -258,9 +258,9 @@ int d_reclast(int, int); /* reclast.c */ int d_reclock(int, char *, int); /* dblfcns.c */ int d_reclstat(int, char *, int); /* dblfcns.c */ int d_recover(const char *); /* recover.c */ -int d_recread(char *, int); /* recread.c */ +int d_recread(void *, int); /* recread.c */ int d_recset(int, int); /* recset.c */ -int d_recwrite(const char *, int); /* recwrite.c */ +int d_recwrite(const void *, int); /* recwrite.c */ int d_renfile(const char *dbn, FILE_NO fno, const char *fnm); /* renfile.c */ int d_retries(int); /* dblfcns.c */ int d_rlbclr(void); /* dblfcns.c */ diff --git a/cde/lib/DtSearch/boolyac.y b/cde/lib/DtSearch/boolyac.y index 8e3118d1f..8c7cf41df 100644 --- a/cde/lib/DtSearch/boolyac.y +++ b/cde/lib/DtSearch/boolyac.y @@ -41,6 +41,9 @@ */ #include #include "boolpars.h" + +void yyerror(char *); +int yylex(void); %} %union { diff --git a/cde/lib/DtSearch/raima/crread.c b/cde/lib/DtSearch/raima/crread.c index 59fcd9e7e..80ba29282 100644 --- a/cde/lib/DtSearch/raima/crread.c +++ b/cde/lib/DtSearch/raima/crread.c @@ -53,7 +53,7 @@ int d_crread( long field, /* Field constant */ -char *data, /* Data area to contain field contents */ +void *data, /* Data area to contain field contents */ int dbn /* database number */ ) { diff --git a/cde/lib/DtSearch/raima/crwrite.c b/cde/lib/DtSearch/raima/crwrite.c index 516b4e3ad..5bfe5f780 100644 --- a/cde/lib/DtSearch/raima/crwrite.c +++ b/cde/lib/DtSearch/raima/crwrite.c @@ -53,7 +53,7 @@ int d_crwrite( long field, /* field constant */ -char *data, /* data area to contain field contents */ +void *data, /* data area to contain field contents */ int dbn /* database number */ ) { diff --git a/cde/lib/DtSearch/raima/fillnew.c b/cde/lib/DtSearch/raima/fillnew.c index c52bb07cc..f7444944b 100644 --- a/cde/lib/DtSearch/raima/fillnew.c +++ b/cde/lib/DtSearch/raima/fillnew.c @@ -57,7 +57,7 @@ int d_fillnew( int nrec, /* record number */ -const char *recval, /* record value */ +const void *recval, /* record value */ int dbn /* database number */ ) { diff --git a/cde/lib/DtSearch/raima/recread.c b/cde/lib/DtSearch/raima/recread.c index 427a8731f..194806cfa 100644 --- a/cde/lib/DtSearch/raima/recread.c +++ b/cde/lib/DtSearch/raima/recread.c @@ -53,7 +53,7 @@ */ int d_recread( -char *rec, /* ptr to record area */ +void *rec, /* ptr to record area */ int dbn ) { diff --git a/cde/lib/DtSearch/raima/recwrite.c b/cde/lib/DtSearch/raima/recwrite.c index 34a092cf9..62bf8a1a9 100644 --- a/cde/lib/DtSearch/raima/recwrite.c +++ b/cde/lib/DtSearch/raima/recwrite.c @@ -53,7 +53,7 @@ */ int d_recwrite( -const char *rec, /* ptr to record area */ +const void *rec, /* ptr to record area */ int dbn ) { diff --git a/cde/lib/DtTerm/TermPrim/TermPrim.c b/cde/lib/DtTerm/TermPrim/TermPrim.c index ba225153f..2221afd3e 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrim.c +++ b/cde/lib/DtTerm/TermPrim/TermPrim.c @@ -1344,7 +1344,7 @@ Initialize(Widget ref_w, Widget w, Arg *args, Cardinal *num_args) tw->term.log_on = False ; if (tw->term.logging) { - _DtTermPrimStartLog(tw) ; + _DtTermPrimStartLog((Widget) tw); } Debug('T', timeStamp("TermPrim Initialize() finished")); @@ -2675,7 +2675,7 @@ Destroy(Widget w) /* flush the log file */ if (tw->term.logging ) { - _DtTermPrimCloseLog(tw) ; + _DtTermPrimCloseLog((Widget) tw); } if (tw->term.boldFont) { diff --git a/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c b/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c index 6beafd0c1..1c0c9c73e 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimRenderMb.c @@ -621,7 +621,7 @@ DoInsertWc(Widget w, wchar_t *wcBuffer, int wcBufferLen, Boolean *wrapped) wcBuffer, /* newChars */ wcBufferLen, /* numChars */ tpd->insertCharMode != DtTERM_INSERT_CHAR_OFF, /* insert flag */ - &returnChars, /* return char ptr */ + (termChar **) (&returnChars), /* return char ptr */ &returnCount); /* return count ptr */ if ((tpd->insertCharMode != DtTERM_INSERT_CHAR_ON_WRAP) || (returnCount <= 0)) { @@ -659,7 +659,7 @@ DoInsertWc(Widget w, wchar_t *wcBuffer, int wcBufferLen, Boolean *wrapped) wcBuffer, /* newChars */ wcBufferLen, /* numChars */ tpd->insertCharMode != DtTERM_INSERT_CHAR_OFF, /* insert flag */ - &returnChars, /* return char ptr */ + (termChar **) (&returnChars), /* return char ptr */ &returnCount); /* return count ptr */ (void) XtFree((char *) wcBuffer); (void) XtFree((char *) returnChars); diff --git a/cde/programs/dtappbuilder/src/ab/appfw_stubs.c b/cde/programs/dtappbuilder/src/ab/appfw_stubs.c index 15dfbc737..6856a6529 100644 --- a/cde/programs/dtappbuilder/src/ab/appfw_stubs.c +++ b/cde/programs/dtappbuilder/src/ab/appfw_stubs.c @@ -166,7 +166,7 @@ appfw_editor_init( ) { Widget item[10]; - int item_val[10]; + XtArgVal item_val[10]; int n; /* diff --git a/cde/programs/dtappbuilder/src/ab/dnd_ed_stubs.c b/cde/programs/dtappbuilder/src/ab/dnd_ed_stubs.c index e5c52fba3..ddf995a8d 100644 --- a/cde/programs/dtappbuilder/src/ab/dnd_ed_stubs.c +++ b/cde/programs/dtappbuilder/src/ab/dnd_ed_stubs.c @@ -210,7 +210,7 @@ dnd_ed_editor_init( { DndEditorSettings dds = &dndEdInfo; Widget item[10]; - int item_val[10]; + XtArgVal item_val[10]; int n = 0; /* diff --git a/cde/programs/dtappbuilder/src/ab/message_ed_stubs.c b/cde/programs/dtappbuilder/src/ab/message_ed_stubs.c index 7840fa960..778c53f1d 100644 --- a/cde/programs/dtappbuilder/src/ab/message_ed_stubs.c +++ b/cde/programs/dtappbuilder/src/ab/message_ed_stubs.c @@ -360,7 +360,7 @@ msg_editor_init( { MsgEditorSettingsRec *mes = &msg_editor_settings_rec; Widget item[6]; - int item_val[6]; + XtArgVal item_val[6]; int i, n; /* diff --git a/cde/programs/dtappbuilder/src/ab/pal_panedwin.c b/cde/programs/dtappbuilder/src/ab/pal_panedwin.c index 17d72820c..c40bdb950 100644 --- a/cde/programs/dtappbuilder/src/ab/pal_panedwin.c +++ b/cde/programs/dtappbuilder/src/ab/pal_panedwin.c @@ -218,7 +218,7 @@ panedwin_prop_init( DtbRevolvPropDialogInfo rpd = &(dtb_revolv_prop_dialog); PropPanedWinSettingsRec *pws = &(prop_pw_settings_rec[type]); Widget item[2]; - int item_val[2]; + XtArgVal item_val[2]; int n = 0; if (type == AB_PROP_REVOLVING) diff --git a/cde/programs/dtappbuilder/src/libABil/bil_parse.y b/cde/programs/dtappbuilder/src/libABil/bil_parse.y index 6856554ef..55aefb6bc 100644 --- a/cde/programs/dtappbuilder/src/libABil/bil_parse.y +++ b/cde/programs/dtappbuilder/src/libABil/bil_parse.y @@ -25,6 +25,8 @@ #define TOK (bilP_load_get_token()) +void yyerror(char *); +int yylex(void); %} /* * We assume that yacc spits out the symbols in the order they are diff --git a/cde/programs/dtcalc/calctool.c b/cde/programs/dtcalc/calctool.c index 279582000..756e728a4 100644 --- a/cde/programs/dtcalc/calctool.c +++ b/cde/programs/dtcalc/calctool.c @@ -46,7 +46,6 @@ #include "patchlevel.h" #include "calctool.h" #include "ds_common.h" -#include "calctool.h" #include "text.h" static double max_fix[4] = { @@ -1203,8 +1202,8 @@ make_number(int *MPnumber, BOOLEAN mkFix) /*ARGSUSED*/ /* Default math library exception handling routine. */ -int -matherr(struct exception *exc) +void +math_err(void) { #if 0 char msg[100]; @@ -1232,7 +1231,6 @@ matherr(struct exception *exc) #endif doerr(vstrs[(int) V_ERROR]) ; - return(1) ; /* Value ignored. */ } /* Convert string into an MP number. */ diff --git a/cde/programs/dtcalc/calctool.h b/cde/programs/dtcalc/calctool.h index e5b7fa66d..a6b631562 100644 --- a/cde/programs/dtcalc/calctool.h +++ b/cde/programs/dtcalc/calctool.h @@ -636,6 +636,7 @@ void make_items(void); void make_modewin(void); void make_fin_registers(void); void make_registers(int); +void math_err(void); void MPstr_to_num(char *, enum base_type, int *); void paren_disp(char); void process_event(int); diff --git a/cde/programs/dtcalc/functions.c b/cde/programs/dtcalc/functions.c index fa96fe484..8bcaaf618 100644 --- a/cde/programs/dtcalc/functions.c +++ b/cde/programs/dtcalc/functions.c @@ -677,7 +677,7 @@ do_factorial(int *MPval, int *MPres) /* Calculate the factorial of MPval. */ } mpcim(&i, MPa) ; mpcmi(MP1, &i) ; - if (!i) matherr((struct exception *) NULL) ; + if (!i) math_err() ; else while (i > 0) { @@ -687,7 +687,7 @@ do_factorial(int *MPval, int *MPres) /* Calculate the factorial of MPval. */ i-- ; } } - else matherr((struct exception *) NULL) ; + else math_err() ; mpstr(MPa, MPres) ; } diff --git a/cde/programs/dtcm/dtcm/browser.c b/cde/programs/dtcm/dtcm/browser.c index 8de446cd8..09f948986 100644 --- a/cde/programs/dtcm/dtcm/browser.c +++ b/cde/programs/dtcm/dtcm/browser.c @@ -1323,7 +1323,7 @@ mb_clear_selected_calendar( if (geditor_showing(e)) remove_from_gaccess_list(name, e); mb_deregister_names(name, c); - mb_refresh_canvas(c->browser, c); + mb_refresh_canvas(b, c); } extern void diff --git a/cde/programs/dtcm/dtcm/rfp.c b/cde/programs/dtcm/dtcm/rfp.c index 460aee2d9..5c9319976 100644 --- a/cde/programs/dtcm/dtcm/rfp.c +++ b/cde/programs/dtcm/dtcm/rfp.c @@ -942,7 +942,7 @@ rfp_form_flags_to_appt(RFP *rfp, Dtcm_appointment *a, char *name, int *flagsP) memset(a->repeat_type, 0, sizeof(CSA_attribute)); _DtCm_set_sint32_attrval(rfp->repeat_type, - &a->repeat_type->value); + (cms_attribute_value **) &a->repeat_type->value); } else a->repeat_type->value->item.sint32_value = rfp->repeat_type; } @@ -958,7 +958,7 @@ rfp_form_flags_to_appt(RFP *rfp, Dtcm_appointment *a, char *name, int *flagsP) memset(a->repeat_type, 0, sizeof(CSA_attribute)); - _DtCm_set_sint32_attrval(rfp->repeat_type,&a->repeat_type->value); + _DtCm_set_sint32_attrval(rfp->repeat_type, (cms_attribute_value **) &a->repeat_type->value); } else a->repeat_type->value->item.sint32_value = rfp->repeat_type; } diff --git a/cde/programs/dtcm/dtcm/x_graphics.c b/cde/programs/dtcm/dtcm/x_graphics.c index 7233d3c67..bfe295516 100644 --- a/cde/programs/dtcm/dtcm/x_graphics.c +++ b/cde/programs/dtcm/dtcm/x_graphics.c @@ -1351,7 +1351,7 @@ cm_print_appt_text(CMGraphicsInfo *gInfo, char *str, unsigned long _len; _len = strlen(str); - _converter_( str, _len, &to, &to_len ); + _converter_( str, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) str = to; @@ -1578,7 +1578,7 @@ cm_print_todo_text(CMGraphicsInfo *gInfo, char *str1, CSA_sint32 as, unsigned long _len; _len = strlen(str1); - _converter_( str1, _len, &to, &to_len ); + _converter_( str1, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) str1 = to; } @@ -2009,7 +2009,7 @@ local_dayname(Calendar *c, char **array_place, int dayNum) dayCatIndex[dayNum], defaultDays[dayNum]); _len = strlen( source ); - _converter_( source, _len, &to, &to_len ); + _converter_( source, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { str = euc_to_octal(to); } else { @@ -2041,7 +2041,7 @@ local_dayname3(Calendar *c, char **array_place, int dayNum) dayCatIndex[dayNum], defaultDays[dayNum]); _len = strlen( source ); - _converter_( source, _len, &to, &to_len ); + _converter_( source, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { str = euc_to_octal(to); } else { @@ -2089,7 +2089,7 @@ get_report_type_string(CMGraphicsInfo *gInfo) defaultStrs[reportType]); _len = strlen( str ); - _converter_( str, _len, &to, &to_len ); + _converter_( str, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { str = to; } @@ -2367,7 +2367,7 @@ x_open_file(Calendar *c) unsigned long _len; _len = strlen( gInfo->timestamp ); - _converter_( gInfo->timestamp, _len, &to, &to_len ); + _converter_( gInfo->timestamp, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) strncpy( gInfo->timestamp, to, ( BUFFERSIZE > to_len ) ? to_len : BUFFERSIZE - 1 ); @@ -2610,7 +2610,7 @@ x_print_header(void *gInfoP, char *buf, int pageNum, int numPages) unsigned long _len; _len = strlen( buf ); - _converter_( buf, _len, &to, &to_len ); + _converter_( buf, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { str = euc_to_octal(to); } else { @@ -2639,7 +2639,7 @@ x_print_header(void *gInfoP, char *buf, int pageNum, int numPages) unsigned long _len; _len = strlen( str2 ); - _converter_( str2, _len, &to, &to_len ); + _converter_( str2, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { strncpy( str2, to, ( BUFFERSIZE > to_len ) ? to_len : BUFFERSIZE ); @@ -2654,7 +2654,7 @@ x_print_header(void *gInfoP, char *buf, int pageNum, int numPages) unsigned long _len; _len = strlen( str ); - _converter_( str, _len, &to, &to_len ); + _converter_( str, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { str = to; } @@ -2717,7 +2717,7 @@ x_day_header (void *gInfoP) unsigned long _len; _len = strlen( str ); - _converter_( str, _len, &to, &to_len ); + _converter_( str, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { str = to; } @@ -2737,7 +2737,7 @@ x_day_header (void *gInfoP) unsigned long _len; _len = strlen( str ); - _converter_( str, _len, &to, &to_len ); + _converter_( str, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { str = to; } @@ -3249,7 +3249,7 @@ x_print_month(void *gInfoP, int mon, int yr, int x1, unsigned long _len; _len = strlen(str); - _converter_( str, _len, &to, &to_len ); + _converter_( str, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { cm_strcpy(str, to); } @@ -3574,7 +3574,7 @@ x_week_daynames(void *gInfoP, char *dayName, int dayIndex, Boolean more) unsigned long _len; _len = strlen(dayName); - _converter_( dayName, _len, &to, &to_len ); + _converter_( dayName, _len, (void **) &to, &to_len ); if ( ( to != NULL ) && ( to_len != 0 ) ) { dayName = to; } diff --git a/cde/programs/dthelp/parser/canon1/helptag/help.c b/cde/programs/dthelp/parser/canon1/helptag/help.c index 4479c1619..8e3a68628 100644 --- a/cde/programs/dthelp/parser/canon1/helptag/help.c +++ b/cde/programs/dthelp/parser/canon1/helptag/help.c @@ -29,8 +29,6 @@ #include "userinc.h" #include "globdec.h" -void m_mberr1(char *text, const char *arg); - void assert_hometopic_exists(void) { static const char hometopic[] = "-HOMETOPIC"; diff --git a/cde/programs/dthelp/parser/canon1/helptag/help.if b/cde/programs/dthelp/parser/canon1/helptag/help.if index 1e31834b0..7241d124f 100644 --- a/cde/programs/dthelp/parser/canon1/helptag/help.if +++ b/cde/programs/dthelp/parser/canon1/helptag/help.if @@ -165,8 +165,8 @@ m_free(wc_2,"wide character string"); } #else - m_piaction("UNDEFINED MACHINE", - "m-machine", + m_piaction((M_WCHAR *) "UNDEFINED MACHINE", + (M_WCHAR *) "m-machine", M_SDATA) ; #endif diff --git a/cde/programs/dthelp/parser/canon1/helptag/option.c b/cde/programs/dthelp/parser/canon1/helptag/option.c index 513c512b4..a0382d66a 100644 --- a/cde/programs/dthelp/parser/canon1/helptag/option.c +++ b/cde/programs/dthelp/parser/canon1/helptag/option.c @@ -37,8 +37,6 @@ #define TAGDOTOPT "helptag.opt" #define DOTOPT ".opt" -void m_mberr1(char *text, const char *arg); - void options(LOGICAL filelenonly) { int i; diff --git a/cde/programs/dthelp/parser/canon1/parser/proto.h b/cde/programs/dthelp/parser/canon1/parser/proto.h index e9acf1926..9f2900e2c 100644 --- a/cde/programs/dthelp/parser/canon1/parser/proto.h +++ b/cde/programs/dthelp/parser/canon1/parser/proto.h @@ -21,6 +21,8 @@ * Floor, Boston, MA 02110-1301 USA */ /* $XConsortium: proto.h /main/3 1995/11/08 09:42:21 rswiston $ */ +void chksnb(void); + int m_actgetc(void); void m_adjuststate(void); @@ -31,6 +33,8 @@ void m_attval(M_WCHAR *string); LOGICAL m_attvonly(M_WCHAR *string); +void m_mberr1(const char *text, const char *arg); + int m_checkstart(M_ELEMENT val); LOGICAL m_ckend(M_ELEMENT val, LOGICAL neednet); diff --git a/cde/programs/dthelp/parser/canon1/parser/scan.c b/cde/programs/dthelp/parser/canon1/parser/scan.c index 7c08595f8..19c988d51 100644 --- a/cde/programs/dthelp/parser/canon1/parser/scan.c +++ b/cde/programs/dthelp/parser/canon1/parser/scan.c @@ -47,8 +47,6 @@ This product and information is proprietary of Tandem Computers Incorporated. #include "entity2.h" #include "sref.h" -void m_mberr1(char *text, const char *arg); - /* Actually read a character from an input stream */ int m_actgetc(void) { diff --git a/cde/programs/dthelp/parser/pass1/helptag/help.c b/cde/programs/dthelp/parser/pass1/helptag/help.c index 48c43af5d..6af835d4c 100644 --- a/cde/programs/dthelp/parser/pass1/helptag/help.c +++ b/cde/programs/dthelp/parser/pass1/helptag/help.c @@ -30,8 +30,6 @@ #include "globdec.h" #include "proto.h" -void m_mberr1(char *text, const char *arg); - void assert_hometopic_exists(void) { static const char hometopic[] = "-HOMETOPIC"; diff --git a/cde/programs/dthelp/parser/pass1/helptag/help.if b/cde/programs/dthelp/parser/pass1/helptag/help.if index 78d7d0c77..b48523096 100644 --- a/cde/programs/dthelp/parser/pass1/helptag/help.if +++ b/cde/programs/dthelp/parser/pass1/helptag/help.if @@ -154,8 +154,8 @@ m_free(wc_2,"wide character string"); } #else - m_piaction("UNDEFINED MACHINE", - "m-machine", + m_piaction((M_WCHAR *) "UNDEFINED MACHINE", + (M_WCHAR *) "m-machine", M_SDATA) ; #endif <\CODE> diff --git a/cde/programs/dthelp/parser/pass1/helptag/option.c b/cde/programs/dthelp/parser/pass1/helptag/option.c index 87eac3397..260c29409 100644 --- a/cde/programs/dthelp/parser/pass1/helptag/option.c +++ b/cde/programs/dthelp/parser/pass1/helptag/option.c @@ -26,8 +26,6 @@ #include "userinc.h" #include "globdec.h" -void m_mberr1(char *text, const char *arg); - #if defined(_AIX) || defined(sun) /* get definition of getenv(3c) for getting of environment variables */ #include diff --git a/cde/programs/dthelp/parser/pass1/parser/proto.h b/cde/programs/dthelp/parser/pass1/parser/proto.h index 690b12479..3d6908859 100644 --- a/cde/programs/dthelp/parser/pass1/parser/proto.h +++ b/cde/programs/dthelp/parser/pass1/parser/proto.h @@ -21,6 +21,8 @@ * Floor, Boston, MA 02110-1301 USA */ /* $XConsortium: proto.h /main/3 1995/11/08 10:24:42 rswiston $ */ +void chksnb(void); + int m_actgetc(void); void m_adjuststate(void); @@ -172,6 +174,8 @@ int main(int argc, char **argv); void *m_malloc(int size, char *msg); +void m_mberr1(const char *text, const char *arg); + void m_missingtagc(int c, M_HOLDTYPE dchar, LOGICAL start); LOGICAL m_nextand(M_OPENFSA *thisfsa, M_ELEMENT label); diff --git a/cde/programs/dthelp/parser/pass1/parser/scan.c b/cde/programs/dthelp/parser/pass1/parser/scan.c index 5cb04e6b4..bc20a3b73 100644 --- a/cde/programs/dthelp/parser/pass1/parser/scan.c +++ b/cde/programs/dthelp/parser/pass1/parser/scan.c @@ -47,8 +47,6 @@ This product and information is proprietary of Tandem Computers Incorporated. #include "entity2.h" #include "sref.h" -void m_mberr1(char *text, const char *arg); - /* Actually read a character from an input stream */ int m_actgetc(void) { diff --git a/cde/programs/dthelp/parser/pass2/htag2/fproto.h b/cde/programs/dthelp/parser/pass2/htag2/fproto.h index 8633db31b..63994de82 100644 --- a/cde/programs/dthelp/parser/pass2/htag2/fproto.h +++ b/cde/programs/dthelp/parser/pass2/htag2/fproto.h @@ -54,7 +54,7 @@ void OpenTag(LOGICAL hasAttributes, void CloseTag(LOGICAL newlineOK); -void ImpliedlAttribute(char *name, +void ImpliedAttribute(char *name, M_WCHAR *value); void RequiredAttribute(char *name, diff --git a/cde/programs/dthelp/parser/pass2/htag2/option.c b/cde/programs/dthelp/parser/pass2/htag2/option.c index b6e33f45c..b47be68bc 100644 --- a/cde/programs/dthelp/parser/pass2/htag2/option.c +++ b/cde/programs/dthelp/parser/pass2/htag2/option.c @@ -31,9 +31,6 @@ #include #endif -void m_mberr1(char *text, const char *arg); - - /* Interpret options from command line and specified files */ #define OPTLEN 512 /* If OPTLEN changes, change fscanf call below */ #define TAGDOTOPT "helptag.opt" diff --git a/cde/programs/dthelp/parser/pass2/parser/parser.c b/cde/programs/dthelp/parser/pass2/parser/parser.c index 65277caa8..dce00f751 100644 --- a/cde/programs/dthelp/parser/pass2/parser/parser.c +++ b/cde/programs/dthelp/parser/pass2/parser/parser.c @@ -72,8 +72,8 @@ void main(int argc, char **argv) if (! m_curcon) { if (m_token != M_ENDFILE) { m_error("Parsing table error") ; - sprintf(buffer, parserr, m_token, m_prevcon, m_scanval) ; - m_errline(buffer) ; + sprintf((char *) buffer, parserr, m_token, m_prevcon, m_scanval) ; + m_errline((char *) buffer) ; } else { m_error("Unexpected end of document") ; @@ -92,17 +92,17 @@ void main(int argc, char **argv) m_aftereod = TRUE ; } if (m_scantrace) { - sprintf(buffer, sopt, + sprintf((char *) buffer, sopt, m_prevcon, m_token, m_curcon, m_scanval ? m_scanval : ' ', m_scanval, m_line[m_sysecnt], m_netlevel) ; - m_trace(buffer) ; + m_trace((char *) buffer) ; if (m_token == M_NAME) { - sprintf(buffer, name, m_name) ; - m_trace(buffer) ; + sprintf((char *) buffer, name, m_name) ; + m_trace((char *) buffer) ; } if (m_token == M_LITERAL) { - sprintf(buffer, literal, m_literal) ; - m_trace(buffer) ; + sprintf((char *) buffer, literal, m_literal) ; + m_trace((char *) buffer) ; } } #include "case.c" diff --git a/cde/programs/dthelp/parser/pass2/parser/proto.h b/cde/programs/dthelp/parser/pass2/parser/proto.h index 2e0f0371b..3755b762b 100644 --- a/cde/programs/dthelp/parser/pass2/parser/proto.h +++ b/cde/programs/dthelp/parser/pass2/parser/proto.h @@ -172,6 +172,8 @@ void main(int argc, char **argv); void *m_malloc(int size, char *msg); +void m_mberr1(const char *text, const char *arg); + void m_missingtagc(int c, M_HOLDTYPE dchar, LOGICAL start); LOGICAL m_nextand(M_OPENFSA *thisfsa, M_ELEMENT label); diff --git a/cde/programs/dthelp/parser/pass2/parser/scan.c b/cde/programs/dthelp/parser/pass2/parser/scan.c index add43bde2..3bc16ced8 100644 --- a/cde/programs/dthelp/parser/pass2/parser/scan.c +++ b/cde/programs/dthelp/parser/pass2/parser/scan.c @@ -47,8 +47,6 @@ This product and information is proprietary of Tandem Computers Incorporated. #include "entity2.h" #include "sref.h" -void m_mberr1(char *text, const char *arg); - /* Actually read a character from an input stream */ int m_actgetc(void) { diff --git a/cde/programs/dtlogin/access.c b/cde/programs/dtlogin/access.c index 03676974a..f1dc26d77 100644 --- a/cde/programs/dtlogin/access.c +++ b/cde/programs/dtlogin/access.c @@ -147,7 +147,7 @@ static int scanHostlist( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure, int depth, int broadcast) ; @@ -162,7 +162,7 @@ static int indirectAlias( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure, int depth, int broadcast) ; @@ -625,7 +625,7 @@ scanHostlist( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure, int depth, int broadcast ) @@ -675,7 +675,7 @@ indirectAlias( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure, int depth, int broadcast ) @@ -709,7 +709,7 @@ ForEachMatchingIndirectHost( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(CARD16, struct _ARRAY8 *, char *), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure ) { int haveLocalhost = 0; @@ -828,7 +828,7 @@ ForEachChooserHost( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure ) { int haveLocalhost = 0; diff --git a/cde/programs/dtlogin/auth.c b/cde/programs/dtlogin/auth.c index ebbe51598..333be04ff 100644 --- a/cde/programs/dtlogin/auth.c +++ b/cde/programs/dtlogin/auth.c @@ -152,7 +152,7 @@ struct AuthProtocol { unsigned short name_length; char *name; - int (*InitAuth)( + void (*InitAuth)( #if NeedWidePrototypes unsigned int name_len, #else @@ -168,7 +168,10 @@ struct AuthProtocol { #endif /* NeedWidePrototypes */ char *name) ; - void (*GetXdmcpAuth)(); + void (*GetXdmcpAuth)( + struct protoDisplay *pdpy, + unsigned short authorizationNameLen, + char *authorizationName); int inited; }; diff --git a/cde/programs/dtlogin/choose.c b/cde/programs/dtlogin/choose.c index 57ac9219e..8d1299e4f 100644 --- a/cde/programs/dtlogin/choose.c +++ b/cde/programs/dtlogin/choose.c @@ -428,7 +428,7 @@ RunChooser ( args = parseArgs (args, buf); ForEachChooserHost (&d->clientAddr, d->connectionType, - (int (*)()) AddChooserHost, + AddChooserHost, (char *) &args); env = systemEnv (d, (char *) 0, (char *) 0); if (d->authFile) diff --git a/cde/programs/dtlogin/dm.h b/cde/programs/dtlogin/dm.h index 57cc1b5a5..345c56cb1 100644 --- a/cde/programs/dtlogin/dm.h +++ b/cde/programs/dtlogin/dm.h @@ -314,7 +314,7 @@ struct display { /* XDMCP state */ CARD32 sessionID; /* ID of active session */ - struct sockaddr *peer; /* sockaddr of display peer */ + XdmcpNetaddr peer; /* sockaddr of display peer */ int peerlen; /* length of peer name */ struct sockaddr *from; /* XDMCP port of display */ int fromlen; @@ -519,7 +519,7 @@ extern void ForEachChooserHost( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure) ; extern int ForEachMatchingIndirectHost( ARRAY8Ptr clientAddress, @@ -528,7 +528,7 @@ extern int ForEachMatchingIndirectHost( #else CARD16 connectionType, #endif /* NeedWidePrototypes */ - int (*function)(CARD16, struct _ARRAY8 *, char *), + void (*function)(CARD16, struct _ARRAY8 *, char *), char *closure) ; extern int ScanAccessDatabase( void ) ; extern int UseChooser( @@ -703,7 +703,7 @@ extern Xauth * MitGetAuth( #endif /* NeedWidePrototypes */ char *name) ; -extern int MitInitAuth( +extern void MitInitAuth( #if NeedWidePrototypes unsigned int name_len, #else diff --git a/cde/programs/dtlogin/mitauth.c b/cde/programs/dtlogin/mitauth.c index 264d9ea31..6acb31dc0 100644 --- a/cde/programs/dtlogin/mitauth.c +++ b/cde/programs/dtlogin/mitauth.c @@ -95,16 +95,15 @@ static int auth_name_len; void GenerateAuthData (char *auth, int len); // genauth.c #if NeedWidePrototypes -int MitInitAuth (unsigned int name_len, char *name) +void MitInitAuth (unsigned int name_len, char *name) #else -int MitInitAuth (unsigned short name_len, char *name) +void MitInitAuth (unsigned short name_len, char *name) #endif /* NeedWidePrototypes */ { if (name_len > 256) name_len = 256; auth_name_len = name_len; memmove( auth_name, name, name_len); - return(0); } #if NeedWidePrototypes diff --git a/cde/programs/dtlogin/server.c b/cde/programs/dtlogin/server.c index f88deec90..1853f070b 100644 --- a/cde/programs/dtlogin/server.c +++ b/cde/programs/dtlogin/server.c @@ -333,7 +333,7 @@ GetRemoteAddress( struct display *d, int fd ) d->peerlen = 0; if (len) { - d->peer = (struct sockaddr *) malloc (len); + d->peer = malloc (len); if (d->peer) { bcopy (buf, (char *) d->peer, len); diff --git a/cde/programs/dtlogin/xdmauth.c b/cde/programs/dtlogin/xdmauth.c index d809dc944..c3d7bb5df 100644 --- a/cde/programs/dtlogin/xdmauth.c +++ b/cde/programs/dtlogin/xdmauth.c @@ -239,7 +239,8 @@ void XdmGetXdmcpAuth (struct protoDisplay *pdpy, unsigned short authorizationNam XdmPrintDataHex ("Accept packet auth", xdmcpauth->data, xdmcpauth->data_length); XdmPrintDataHex ("Auth file auth", fileauth->data, fileauth->data_length); /* encrypt the session key for its trip back to the server */ - XdmcpWrap (xdmcpauth->data, &pdpy->key, xdmcpauth->data, 8); + XdmcpWrap ((unsigned char *)xdmcpauth->data, (unsigned char *)&pdpy->key, + (unsigned char *)xdmcpauth->data, 8); pdpy->fileAuthorization = fileauth; pdpy->xdmcpAuthorization = xdmcpauth; } @@ -326,14 +327,14 @@ int XdmCheckAuthentication (struct protoDisplay *pdpy, ARRAY8Ptr displayID, return FALSE; if (authenticationData->length != 8) return FALSE; - XdmcpUnwrap (authenticationData->data, &pdpy->key, + XdmcpUnwrap (authenticationData->data, (unsigned char *)&pdpy->key, authenticationData->data, 8); XdmPrintArray8Hex ("Request packet auth", authenticationData); if (!XdmcpCopyARRAY8(authenticationData, &pdpy->authenticationData)) return FALSE; incoming = (XdmAuthKeyPtr) authenticationData->data; XdmcpIncrementKey (incoming); - XdmcpWrap (authenticationData->data, &pdpy->key, + XdmcpWrap (authenticationData->data, (unsigned char *)&pdpy->key, authenticationData->data, 8); return TRUE; } diff --git a/cde/programs/dtlogin/xdmcp.c b/cde/programs/dtlogin/xdmcp.c index 84b489df9..bc055155a 100644 --- a/cde/programs/dtlogin/xdmcp.c +++ b/cde/programs/dtlogin/xdmcp.c @@ -175,7 +175,7 @@ AnyWellKnownSockets (void) static XdmcpBuffer buffer; /*ARGSUSED*/ -static int +static void sendForward (CARD16 connectionType, ARRAY8Ptr address, char *closure) { #ifdef AF_INET @@ -198,7 +198,7 @@ sendForward (CARD16 connectionType, ARRAY8Ptr address, char *closure) in_addr.sin_family = AF_INET; in_addr.sin_port = htons ((short) XDM_UDP_PORT); if (address->length != 4) - return 0; + return; memmove( (char *) &in_addr.sin_addr, address->data, address->length); addrlen = sizeof (struct sockaddr_in); break; @@ -207,10 +207,10 @@ sendForward (CARD16 connectionType, ARRAY8Ptr address, char *closure) case FamilyDECnet: #endif default: - return 0; + return; } XdmcpFlush (xdmcpFd, &buffer, (XdmcpNetaddr)addr, addrlen); - return 0; + return; } extern char *NetaddrAddress(); diff --git a/cde/programs/ttsnoop/Makefile.am b/cde/programs/ttsnoop/Makefile.am index 7448c2223..3783388de 100644 --- a/cde/programs/ttsnoop/Makefile.am +++ b/cde/programs/ttsnoop/Makefile.am @@ -167,7 +167,7 @@ ttsnoop.C ttsnoop.h dtb_utils.c dtb_utils.h: ttsnoop.bip ttsnoop.C.src $(SED) \ -e 's/\(MoreButton;\)/\1Boolean _DtCanHelp( const char * );/' \ -e 's/\(XtManageChild(Quick_help\)/XtSetSensitive(MoreButton,_DtCanHelp(help_data->help_text));\1/' \ - -e 's/\(buffer, vol, loc;\)/\1Boolean _DtHelped( Widget );/' \ + -e 's/\(buffer, vol = NULL, loc = NULL;\)/\1Boolean _DtHelped( Widget );/' \ -e 's/\(if( (cp=strrchr\)/if (_DtHelped( help_dialog)) return;\1/' \ dtb_utils.c > dtb_utils.c.patched mv dtb_utils.c.patched dtb_utils.c From 121510cb72fe31136ca018c03fd3be039957167e Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Sun, 14 Jul 2024 17:40:05 +0000 Subject: [PATCH 44/47] DtMmdb: fix a crash occurs when creating bookmark. --- cde/lib/DtMmdb/object/oid_t.C | 4 +-- cde/lib/DtMmdb/object/oid_t.h | 1 + cde/lib/DtMmdb/storage/spointer.h | 2 +- cde/lib/DtMmdb/utility/macro.h | 54 +++++++------------------------ cde/lib/DtMmdb/utility/types.h | 22 ++----------- 5 files changed, 19 insertions(+), 64 deletions(-) diff --git a/cde/lib/DtMmdb/object/oid_t.C b/cde/lib/DtMmdb/object/oid_t.C index 0cc7c567e..f57f18430 100644 --- a/cde/lib/DtMmdb/object/oid_t.C +++ b/cde/lib/DtMmdb/object/oid_t.C @@ -91,7 +91,7 @@ oid_t::oid_t(const char* source, Boolean ascii_format, Boolean swap_order) memcpy((char*)&v_i_code, source, sizeof(v_i_code)); if ( swap_order == true ) - ORDER_SWAP_LONG(v_i_code); + ORDER_SWAP_I_CODE_T(v_i_code); } else { istringstream in((char*)source); @@ -248,7 +248,7 @@ void oid_t::to_char_string(char* sink, Boolean swap_order) const if ( swap_order == true ) { i_code_t x = v_i_code; - ORDER_SWAP_LONG(x); + ORDER_SWAP_I_CODE_T(x); memcpy(sink, (char*)&x, sizeof(x)); } else memcpy(sink, (char*)&v_i_code, sizeof(v_i_code)); diff --git a/cde/lib/DtMmdb/object/oid_t.h b/cde/lib/DtMmdb/object/oid_t.h index a2a0e3649..3b4c0ea0e 100644 --- a/cde/lib/DtMmdb/object/oid_t.h +++ b/cde/lib/DtMmdb/object/oid_t.h @@ -65,6 +65,7 @@ typedef unsigned short c_code_t; typedef mmdb_pos_t i_code_t; #define OID_T_SZ (sizeof(i_code_t)) +#define ORDER_SWAP_I_CODE_T(x) ORDER_SWAP(i_code_t, x) /************************************* // class code root diff --git a/cde/lib/DtMmdb/storage/spointer.h b/cde/lib/DtMmdb/storage/spointer.h index f45641bba..aa13b45e0 100644 --- a/cde/lib/DtMmdb/storage/spointer.h +++ b/cde/lib/DtMmdb/storage/spointer.h @@ -118,7 +118,7 @@ public: }; void swap_order() { - ORDER_SWAP_LONG(fwd_ptr); + ORDER_SWAP_MMDB_POS_T(fwd_ptr); ORDER_SWAP_UINT(header.int_view); swapped = true; }; diff --git a/cde/lib/DtMmdb/utility/macro.h b/cde/lib/DtMmdb/utility/macro.h index 295619f83..f88c3ebfe 100644 --- a/cde/lib/DtMmdb/utility/macro.h +++ b/cde/lib/DtMmdb/utility/macro.h @@ -77,48 +77,18 @@ /* little endian to/from big endian swap macros. */ -#define ORDER_SWAP_LONG(x) \ -{ \ - long tmp_long = x; \ - ((unsigned char*)&x)[0] = ((unsigned char*)&tmp_long)[3]; \ - ((unsigned char*)&x)[1] = ((unsigned char*)&tmp_long)[2]; \ - ((unsigned char*)&x)[2] = ((unsigned char*)&tmp_long)[1]; \ - ((unsigned char*)&x)[3] = ((unsigned char*)&tmp_long)[0]; \ +#define ORDER_SWAP(type, value) \ +{ \ + type tmp = value; \ + int n = sizeof(type) - 1; \ + for (int i = 0; i <= n; ++i) \ + ((uint8_t *)&value)[i] = ((uint8_t *)&tmp)[n - i]; \ } -#define ORDER_SWAP_FLOAT(x) \ -{ \ - float tmp_float = x; \ - ((unsigned char*)&x)[0] = ((unsigned char*)&tmp_float)[3]; \ - ((unsigned char*)&x)[1] = ((unsigned char*)&tmp_float)[2]; \ - ((unsigned char*)&x)[2] = ((unsigned char*)&tmp_float)[1]; \ - ((unsigned char*)&x)[3] = ((unsigned char*)&tmp_float)[0]; \ -} - -#define ORDER_SWAP_INT(x) \ -{ \ - int tmp_uint = x; \ - ((unsigned char*)&x)[0] = ((unsigned char*)&tmp_uint)[3]; \ - ((unsigned char*)&x)[1] = ((unsigned char*)&tmp_uint)[2]; \ - ((unsigned char*)&x)[2] = ((unsigned char*)&tmp_uint)[1]; \ - ((unsigned char*)&x)[3] = ((unsigned char*)&tmp_uint)[0]; \ -} - -#define ORDER_SWAP_UINT(x) \ -{ \ - unsigned int tmp_uint = x; \ - ((unsigned char*)&x)[0] = ((unsigned char*)&tmp_uint)[3]; \ - ((unsigned char*)&x)[1] = ((unsigned char*)&tmp_uint)[2]; \ - ((unsigned char*)&x)[2] = ((unsigned char*)&tmp_uint)[1]; \ - ((unsigned char*)&x)[3] = ((unsigned char*)&tmp_uint)[0]; \ -} - -#define ORDER_SWAP_USHORT(x) \ -{ \ - unsigned short tmp_ushort = x; \ - ((unsigned char*)&x)[0] = ((unsigned char*)&tmp_ushort)[1]; \ - ((unsigned char*)&x)[1] = ((unsigned char*)&tmp_ushort)[0]; \ -} - +#define ORDER_SWAP_FLOAT(x) ORDER_SWAP(float, x) +#define ORDER_SWAP_LONG(x) ORDER_SWAP(long, x) +#define ORDER_SWAP_INT(x) ORDER_SWAP(int, x) +#define ORDER_SWAP_UINT(x) ORDER_SWAP(unsigned int, x) +#define ORDER_SWAP_USHORT(x) ORDER_SWAP(unsigned short, x) +#define ORDER_SWAP_MMDB_POS_T(x) ORDER_SWAP(mmdb_pos_t, x) #endif - diff --git a/cde/lib/DtMmdb/utility/types.h b/cde/lib/DtMmdb/utility/types.h index b7ab58603..33a38beba 100644 --- a/cde/lib/DtMmdb/utility/types.h +++ b/cde/lib/DtMmdb/utility/types.h @@ -47,8 +47,10 @@ #define _types_h 1 #ifdef C_API +#include #include "utility/c_iostream.h" #else +#include #include using namespace std; #endif @@ -60,15 +62,7 @@ typedef char Boolean; typedef void* voidPtr; typedef char* charPtr; -typedef short s_int16; -typedef unsigned short u_int16; - -typedef int s_int32; -typedef unsigned int u_int32; - -typedef long s_long32; - -typedef float s_float32; +typedef intptr_t mmdb_pos_t; enum io_status { done, fail }; @@ -76,14 +70,4 @@ class root; typedef Boolean (*cmp_func_ptr_t)(const void*, const void*); typedef void (*app_func_ptr_t)(const void*); typedef void (*print_func_ptr_t)(ostream&, const void*); - -//enum Boolean { true, false }; - -#if !defined(__linux__) && !defined(CSRG_BASED) -typedef long mmdb_pos_t; -#else -typedef int mmdb_pos_t; -#endif - - #endif From fbc94880372140d376b0924092faffef1ee9984d Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Mon, 9 Sep 2024 02:07:37 +0000 Subject: [PATCH 45/47] dtcreate: make pop-ups work properly. --- cde/programs/dtcreate/ErrorDialog.c | 3 +- cde/programs/dtcreate/cmncbs.c | 2 - cde/programs/dtcreate/icon_selection_dialog.c | 146 +++++++++++------- 3 files changed, 92 insertions(+), 59 deletions(-) diff --git a/cde/programs/dtcreate/ErrorDialog.c b/cde/programs/dtcreate/ErrorDialog.c index 677ee6003..fc20062b1 100644 --- a/cde/programs/dtcreate/ErrorDialog.c +++ b/cde/programs/dtcreate/ErrorDialog.c @@ -47,6 +47,7 @@ void activateCB_ErrorDialog_OkButton( Widget UxWidget, { XtDestroyWidget(XtParent(UxWidget)); + *(Widget **)UxClientData = NULL; } /******************************************************************************/ @@ -63,7 +64,7 @@ void display_error_message (Widget parent, char *message) XtAddCallback( ErrorDialog, XmNokCallback, (XtCallbackProc) activateCB_ErrorDialog_OkButton, - (XtPointer) NULL ); + (XtPointer) &ErrorDialog ); XtVaSetValues (ErrorDialog, RES_CONVERT(XmNdialogTitle, GETMESSAGE(6, 31, "Create Action - Error")), diff --git a/cde/programs/dtcreate/cmncbs.c b/cde/programs/dtcreate/cmncbs.c index b9fd1fb2d..90e32a57b 100644 --- a/cde/programs/dtcreate/cmncbs.c +++ b/cde/programs/dtcreate/cmncbs.c @@ -158,10 +158,8 @@ void activateCB_open_FindSet (Widget find_set_button, XtPointer cdata, XtFree(container_title); XtFree(directory_title); XtFree(dialog_title); - FreeIconSearchPathList(directories_list); XtVaSetValues (IconSelector, XmNuserData, cdata, NULL); UxPopupInterface (IconSelector, no_grab); - XmProcessTraversal(ISD_SelectedIconTextField, XmTRAVERSE_CURRENT); return; } diff --git a/cde/programs/dtcreate/icon_selection_dialog.c b/cde/programs/dtcreate/icon_selection_dialog.c index d60105025..f27862c7f 100644 --- a/cde/programs/dtcreate/icon_selection_dialog.c +++ b/cde/programs/dtcreate/icon_selection_dialog.c @@ -50,6 +50,7 @@ #include #include
+#include
#include "dtcreate.h" #include "UxXt.h" @@ -144,7 +145,7 @@ int myscandir(char *pszDirName, struct dirent ***NameList, int Select(), int Com errPtr = XtMalloc((strlen(msgPtr) + strlen(fmtPtr) + strlen(pszDirName) + 1) * sizeof(char)); sprintf(errPtr, fmtPtr, msgPtr, pszDirName); - display_error_message(CreateActionAppShell, errPtr); + display_error_message(IconSelector, errPtr); XtFree(errPtr); return(0); } @@ -245,7 +246,7 @@ struct dirent **build_dirent_list (char *filter, int *filecount) errPtr = XtMalloc((strlen(msgPtr) + strlen(fmtPtr) + strlen(dirname) + 1) * sizeof(char)); sprintf(errPtr, fmtPtr, msgPtr, dirname); - display_error_message(CreateActionAppShell, errPtr); + display_error_message(IconSelector, errPtr); XtFree(errPtr); namelist = NULL; } @@ -1327,13 +1328,94 @@ void resizeCB_clipWindow( Widget UxWidget, printf("icon_count = %d\n", icon_count); #endif - increment = (int)height / icon_count; + increment = icon_count > 0 ? (int)height / icon_count : height; XtVaSetValues(widvScrollbar, XmNincrement, increment, NULL); return; } +static void mapCB_icon_selection_dialog(Widget UxWidget, + XtPointer UxClientData, + XtPointer UxCallbackArg) +{ + DtWsmRemoveWorkspaceFunctions(UxDisplay, XtWindow(XtParent(UxWidget))); +} + +static void focusCB_icon_selection_dialog(Widget UxWidget, + XtPointer UxClientData, + XtPointer UxCallbackArg) +{ + char *initial_filter; + Widget descendant; + + XtRemoveCallback(UxWidget, XmNfocusCallback, focusCB_icon_selection_dialog, + NULL); + + TurnOnHourGlassAllWindows(); + + XmProcessTraversal(ISD_SelectedIconTextField, XmTRAVERSE_CURRENT); + + /******************************************************************/ + /* save file_filter */ + /******************************************************************/ + file_filter_global = (char *)calloc(strlen((char *)file_filter)+1, + sizeof(char)); + +#ifdef DEBUG + if (!file_filter_global) + printf("Calloc error for file_filter_global, in mapCB_icon_selection_dialog.\n"); +#endif + + if (file_filter[0] == '*') + file_filter_global = strcpy(file_filter_global, (char *)&file_filter[1]); + else + file_filter_global = strcpy(file_filter_global, (char *)file_filter); + + load_directories_list((char **)directories_list); + initial_filter = initialize_filter((char *)file_filter); + FreeIconSearchPathList((char **)directories_list); + + /******************************************************************/ + /* save main_filter */ + /******************************************************************/ + main_filter = (char *)calloc(strlen(initial_filter)+1, sizeof(char)); + +#ifdef DEBUG + if (!main_filter) + printf("Calloc error for main_filter, in mapCB_icon_selection_dialog.\n"); +#endif + + main_filter = strcpy(main_filter, initial_filter); + + icons_in_container = NULL; + icon_count = 0; + + update_container_contents (initial_filter); + + /******************************************************************/ + /* set selected_icon_name to first name in list */ + /******************************************************************/ +#if 0 + if (icons_in_container) { + XtVaGetValues (icons_in_container[0], XmNimageName, &icon_file_name, NULL); + XmTextFieldSetString (icon_name_text_field, icon_file_name); + selected_icon_name = XtMalloc(strlen(icon_file_name) + 1); + if (selected_icon_name) + selected_icon_name = strcpy(selected_icon_name, icon_file_name); + } +#endif + + load_filter_text_field(initial_filter); + + if (ErrorDialog && XtParent(ErrorDialog) == UxWidget) { + descendant = XtNameToWidget(ErrorDialog, "OK"); + XtSetKeyboardFocus(ErrorDialog, descendant ? descendant : ErrorDialog); + } + + TurnOffHourGlassAllWindows(); +} + /***************************************************************************/ /* */ /* _Uxbuild_icon_selection_dialog */ @@ -1391,6 +1473,11 @@ static Widget _Uxbuild_icon_selection_dialog(void) (XtCallbackProc) helpCB_general, (XtPointer) HELP_ICONSELECTOR ); + XtAddCallback(icon_selection_dialog, XmNmapCallback, + mapCB_icon_selection_dialog, NULL); + + XtAddCallback(icon_selection_dialog, XmNfocusCallback, + focusCB_icon_selection_dialog, NULL); /* Creation of bottom_button_form */ bottom_button_form = XtVaCreateManagedWidget( "bottom_button_form", @@ -1857,7 +1944,6 @@ Widget create_icon_selection_dialog(swidget _UxUxParent, { - char *initial_filter; char *icon_file_name; Widget rtrn; int lcv; @@ -1914,57 +2000,5 @@ Widget create_icon_selection_dialog(swidget _UxUxParent, XtUnmanageChild (icon_name_text_field); } - TurnOnHourGlassAllWindows(); - - /******************************************************************/ - /* save file_filter */ - /******************************************************************/ - file_filter_global = (char *)calloc(strlen((char *)file_filter)+1, sizeof(char)); - -#ifdef DEBUG - if (!file_filter_global) printf("Calloc error for file_filter_global, in create_icon_selection_dialog.\n"); -#endif - - if (file_filter[0] == '*') - file_filter_global = strcpy(file_filter_global, (char *)&file_filter[1]); - else - file_filter_global = strcpy(file_filter_global, (char *)file_filter); - - load_directories_list ((char **)directories_list); - initial_filter = initialize_filter ((char *)file_filter); - - /******************************************************************/ - /* save main_filter */ - /******************************************************************/ - main_filter = (char *)calloc(strlen(initial_filter)+1, sizeof(char)); - -#ifdef DEBUG - if (!main_filter) printf("Calloc error for main_filter, in create_icon_selection_dialog.\n"); -#endif - - main_filter = strcpy(main_filter, initial_filter);; - - icons_in_container = NULL; - icon_count = 0; - - update_container_contents (initial_filter); - - /******************************************************************/ - /* set selected_icon_name to first name in list */ - /******************************************************************/ -#if 0 - if (icons_in_container) { - XtVaGetValues (icons_in_container[0], XmNimageName, &icon_file_name, NULL); - XmTextFieldSetString (icon_name_text_field, icon_file_name); - selected_icon_name = XtMalloc(strlen(icon_file_name) + 1); - if (selected_icon_name) - selected_icon_name = strcpy(selected_icon_name, icon_file_name); - } -#endif - - load_filter_text_field (initial_filter); - - TurnOffHourGlassAllWindows(); - return(rtrn); } From e4c1e173fa81569fa869cf9a858a49f21c69dee7 Mon Sep 17 00:00:00 2001 From: Nilton Perim Neto Date: Mon, 3 Feb 2025 14:47:17 -0300 Subject: [PATCH 46/47] Made a workaround to not use the sh_access The sh_access was defined to two arguments Made a workaround to not use the sh_access that was outputting the error. Not ideal, but it will hopefully compile on Arch Linux Also added mksh for compatibility Ksh is unmaintained in the Arch User Repository Signed-off-by: Nilton Perim Neto --- cde/configure.ac | 5 ++++- cde/programs/dtksh/dtkcmds.c | 2 ++ cde/programs/dtksh/dtkcvt.c | 2 ++ cde/programs/dtksh/widget.c | 2 ++ cde/programs/dtksh/xmcmds.c | 2 ++ cde/programs/dtksh/xmcvt.c | 2 ++ cde/programs/dtksh/xmwidgets.c | 2 ++ 7 files changed, 16 insertions(+), 1 deletion(-) diff --git a/cde/configure.ac b/cde/configure.ac index 17d8eddcc..f16acd90f 100644 --- a/cde/configure.ac +++ b/cde/configure.ac @@ -378,7 +378,10 @@ AC_PATH_PROG(KSH, ksh) if test -z "$ac_cv_path_KSH"; then AC_PATH_PROG(KSH, ksh93) if test -z "$ac_cv_path_KSH"; then - MISSING_PROGS="[ksh or ksh93] ${MISSING_PROGS}" + AC_PATH_PROG(KSH, mksh) + if test -z "$ac_cv_path_KSH"; then + MISSING_PROGS="[ksh or ksh93] ${MISSING_PROGS}" + fi fi fi diff --git a/cde/programs/dtksh/dtkcmds.c b/cde/programs/dtksh/dtkcmds.c index 48d547fa7..dd7b55c85 100644 --- a/cde/programs/dtksh/dtkcmds.c +++ b/cde/programs/dtksh/dtkcmds.c @@ -33,6 +33,8 @@ #include "name.h" #include "shell.h" +#undef access +#include #include #include #include diff --git a/cde/programs/dtksh/dtkcvt.c b/cde/programs/dtksh/dtkcvt.c index 81064051e..9479ab3f4 100644 --- a/cde/programs/dtksh/dtkcvt.c +++ b/cde/programs/dtksh/dtkcvt.c @@ -33,6 +33,8 @@ /* X includes */ #include "shell.h" +#undef access +#include #include #include #include diff --git a/cde/programs/dtksh/widget.c b/cde/programs/dtksh/widget.c index 364c96e97..12d025b52 100644 --- a/cde/programs/dtksh/widget.c +++ b/cde/programs/dtksh/widget.c @@ -32,6 +32,8 @@ #include "name.h" #include "shell.h" +#undef access +#include #include #include #include diff --git a/cde/programs/dtksh/xmcmds.c b/cde/programs/dtksh/xmcmds.c index f3d0e7712..20be6f70f 100644 --- a/cde/programs/dtksh/xmcmds.c +++ b/cde/programs/dtksh/xmcmds.c @@ -30,6 +30,8 @@ /* actual or intended publication of such source code. */ #include "shell.h" +#undef access +#include #include #include #include diff --git a/cde/programs/dtksh/xmcvt.c b/cde/programs/dtksh/xmcvt.c index f178b6a0b..01a7b1cce 100644 --- a/cde/programs/dtksh/xmcvt.c +++ b/cde/programs/dtksh/xmcvt.c @@ -32,6 +32,8 @@ #include "shell.h" +#undef access +#include #include #include #include diff --git a/cde/programs/dtksh/xmwidgets.c b/cde/programs/dtksh/xmwidgets.c index de08d8fb3..a02cc3053 100644 --- a/cde/programs/dtksh/xmwidgets.c +++ b/cde/programs/dtksh/xmwidgets.c @@ -32,6 +32,8 @@ #include "name.h" #include "shell.h" +#undef access +#include #include #include #include From 38a1b9fcca9bdce65a7f8bf8e92f79137ce9f471 Mon Sep 17 00:00:00 2001 From: hyousatsu Date: Sat, 1 Mar 2025 02:33:18 -0500 Subject: [PATCH 47/47] dtwm: manage windows properly to avoid potential segmentation faults. --- cde/programs/dtwm/WmManage.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cde/programs/dtwm/WmManage.c b/cde/programs/dtwm/WmManage.c index cfdd6d87e..64b6c37a1 100644 --- a/cde/programs/dtwm/WmManage.c +++ b/cde/programs/dtwm/WmManage.c @@ -443,11 +443,6 @@ ManageWindow (WmScreenData *pSD, Window clientWindow, long manageFlags) return; } - ApplyPrematureClientMessages (pCD); - - if (!HasProperty (pCD, wmGD.xa__NET_WM_STATE)) - UpdateNetWmState (pCD->client, NULL, 0, _NET_WM_STATE_REMOVE); - /* * Send config notify if the client's been moved/resized */ @@ -745,6 +740,11 @@ ManageWindow (WmScreenData *pSD, Window clientWindow, long manageFlags) CurrentTime, NULL, 0); } + ApplyPrematureClientMessages (pCD); + + if (!HasProperty (pCD, wmGD.xa__NET_WM_STATE)) + UpdateNetWmState (pCD->client, NULL, 0, _NET_WM_STATE_REMOVE); + /* * Free the initial property list. This will force * reads of properties that change after the initial