Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Andreas Schnellbacher

Pages: 1 2 [3] 4 5 ... 48
31
Could you post the  6.03b version of the ETK here please?
Uploaded to Hobbes.

I forgot to mention that this one is from 1996-06-07.

32
I don't think that many have ever used OCL. Finding someone with experience wouldn't be easy.

33
I had problems with two of the four example's .exes, when another EPM was open. I've just tried it again and all four start now.
That was wrong: The .exe files of the 6.00c samples start. The .exe files from the 6.03b samples 2 and 4 start only if EPM 6.03b is not running. That ETK version comes from DevCon and a friendly guy sent it to me.

34
Utilities / Re: QT5 Runtime
« on: April 23, 2021, 09:30:58 pm »
I've jsut tried to install the new Tea version and it has worked. start tea opens the Qt 5 program.

  • I've first updated all installed packages with ANPM (BTW: ANPM has the advantage that it has a priority list that makes it know about when the system has to be rebooted, in this case that wasn't required.)
  • Then I've installed Qt5, because Ivan told that it needs it, following Neil's hint (yum install qt5)
  • At least I've installed tea with yum install tea.

That's how I've just did it. An easier method might exist. I've no experimental packages installed.

35
Not sure if we are talking about the same thing.
Yes, we do. All ETK functions can be accessed from both C and E. As long as the NewEditWndClass is involved, the ETK is used. Prepending a command with the postme command (it's not a switch) resolves in the end into one or several posted (as the opposite to sent) ETK or other messages.

Using postme on file loading is most of the time necessary, because file loading takes a while and a command should be executed after a file has been loaded. (BTW: I remember that I had to use 3 cascaded postmes, e.g. for making the highlight circle stay. Of course, I try to minimize them.)

36
Utilities / Re: QT5 Runtime
« on: April 22, 2021, 11:07:09 pm »
Hasn't the contained chkdll32 worked for you? Here's what I get and you can see that I haven't tried it:
Code: [Select]
epm: C:\ > G:\DEV\BIN\CHKDLL32.EXE "I:\Download\connect\0_mozilla\qtwebtest5_4\simplebrowser.exe"
Loading DLL 'libcx0' --> G:\USR\LIB\LIBCX0.DLL.
Loading DLL 'libcn0' --> G:\USR\LIB\LIBCN0.DLL.
Loading DLL 'stdcpp6' --> G:\USR\LIB\STDCPP6.DLL.
Loading DLL 'Qt5Core' --> NOT loaded!
Unable to load DLL 'Qt5Core'.  DosLoadModule returned: 2
OS/2 reports 'QT5CORE' contributed to the failure.
Loading DLL 'Qt5Wdgt' --> NOT loaded!
Unable to load DLL 'Qt5Wdgt'.  DosLoadModule returned: 2
OS/2 reports 'QT5WDGT' contributed to the failure.
Loading DLL 'Qt5WebW' --> NOT loaded!
Unable to load DLL 'Qt5WebW'.  DosLoadModule returned: 2
OS/2 reports 'QT5WEBW' contributed to the failure.
Loading DLL 'Qt5Gui' --> NOT loaded!
Unable to load DLL 'Qt5Gui'.  DosLoadModule returned: 2
OS/2 reports 'QT5GUI' contributed to the failure.
Loading DLL 'Qt5Net' --> NOT loaded!
Unable to load DLL 'Qt5Net'.  DosLoadModule returned: 2
OS/2 reports 'QT5NET' contributed to the failure.
Loading DLL 'Qt5WebC' --> NOT loaded!
Unable to load DLL 'Qt5WebC'.  DosLoadModule returned: 2
OS/2 reports 'QT5WEBC' contributed to the failure.
Loading DLL 'gcc1' --> G:\USR\LIB\GCC1.DLL.

epm: C:\ >

So the list for simplebrowser.exe might be:
Code: [Select]
libcx0 libcn0 stdcpp6 Qt5Core Qt5Wdgt Qt5WebW Qt5Gui Qt5Net Qt5WebC

plus access to the experimental netlabs.org repository.

Anything more to add?

37
What I vaguely remember is that if you want to invoke a editor built-in command, you need to use the "post" window message
Yes, that's true. almost all ETK messages are posted. From the EPM code (NEPMD macros), these are the few ones that are sent:
Code: [Select]
Send_Config_Data
Set dialog title (ProofDlg)
Set current word being proofed (ProofDlg)
Disable buttons (ProofDlg)
Set default button (ProofDlg)
Set dialog prompt (ProofDlg)
Fill listbox (ProofDlg)
Set entry field (ProofDlg)
Disable everything (ProofDlg)
EPM_EDIT_LOGAPPEND
EPM_FRAME_STATUSLINE
EII_EDIT_REFRESHSTATUSLINE
EPM_FRAME_STATUSLINE
EPM_FRAME_MESSAGELINE
EPM_EDIT_LOGERROR
(SetMenuAttribute)
MM_SetItemText
MM_QueryItem
MM_SETDEFAULTITEMID
EPM_EDIT_KW_QUERYPARSE
EFRAMEM_ToggleControl
EPM_EDIT_CONTROLTOGGLE
EPM_Edit_Query_Help_Instance
HM_SET_HELP_LIBRARY_NAME
(RenderUndoInfo)

38
I've never tried to compile the examples myself. I had problems with two of the four example's .exes, when another EPM was open. I've just tried it again and all four start now.

We discussed to create our own GUI app at NEPMD. I thought that this approach was too complex, but at that time I had not even a compiler. Looking back, that seems to be not completely wrong. But alone the ETK functions have so many bugs, that I would start there first if I had the ETK source. For most of them, I've added workarounds and have now the skills to fix at least just a few of them, if the sources would have been released. The GUI would be another story, but must flaws are in the ETK. It would be much better to start with a supported and well-spread toolkit, e.g. Scintilla. Also Kate looks very promising. Of course that requires to change the compiler, too.


39
Utilities / Re: QT5 Runtime
« on: April 21, 2021, 11:34:28 pm »
Been there , done that no joy - I do not want or need umpteen *.h files
Not true. I just have 1 file in my tree:
   G:\usr\include\python2.7\pyconfig.h

or other junk which I know not what to do with,  I just want a simple runtime package like that for QT4.
.. and I just want to have a system I can work with.

Sorry Ivan, there's just one way that's officially supported. Go that or take the time to create your own distribution.

40
Utilities / Re: Find missing files
« on: April 21, 2021, 09:35:09 pm »
You're welcome.

That's almost the style from Christian. In 2002 and a few years later I had the chance to work on the same project with him and had learned a lot about programming styles and projects.

41
Utilities / Re: Find missing files
« on: April 21, 2021, 06:09:40 pm »
Here's my script, roughly tested:

Code: [Select]
/****************************************************************************
* findmissingfilenames.cmd
*
* Version: 2024-04-21
*
* Syntax: findmissingfilenames <filemask> <startnum> <endnum> [<logfile>]
*
* o  <filemask> must have a part with '???' chars, where the amount of it
*    depends on the range <startnum> to <endnum>.
* o  <filemask> may include a path.
* o  <startnum> and <endnum> must be numbers.
* o  <logfile> may optionally be specified. The default <logfile> is
*    'missing.log'.
* o  Every arg may be surrounded with double quotes.
*
* Examples:
*    findmissingfilenames 1????.pdf 1 500
*    findmissingfilenames 10???.pdf 1 500
*
* By Andreas Schnellbacher
****************************************************************************/
/* Some header lines are used as help text */
HelpStartLine = 6
HelpEndLine   = 18

'@ECHO OFF'
CALL SETLOCAL

/* ----------------- Standard CMD initialization follows ----------------- */
SIGNAL ON HALT NAME Halt
SIGNAL ON NOVALUE NAME RexxError
SIGNAL ON SYNTAX NAME RexxError
SIGNAL ON FAILURE NAME RexxError
/*
SIGNAL ON ERROR NAME RexxError     /* Causes doubled error messages */
SIGNAL ON NOTREADY NAME RexxError  /* Causes error at encoding */
*/

env   = 'OS2ENVIRONMENT'
TRUE  = (1 = 1)
FALSE = (0 = 1)
CrLf  = '0d0a'x
Redirection = '>NUL 2>&1'
PARSE SOURCE . . ThisFile
GlobalVars = 'env TRUE FALSE CrLf Redirection ERROR. ThisFile'

/* Some OS/2 Error codes */
ERROR.NO_ERROR           =   0
ERROR.INVALID_FUNCTION   =   1
ERROR.FILE_NOT_FOUND     =   2
ERROR.PATH_NOT_FOUND     =   3
ERROR.ACCESS_DENIED      =   5
ERROR.NOT_ENOUGH_MEMORY  =   8
ERROR.INVALID_FORMAT     =  11
ERROR.INVALID_DATA       =  13
ERROR.NO_MORE_FILES      =  18
ERROR.WRITE_FAULT        =  29
ERROR.READ_FAULT         =  30
ERROR.SHARING_VIOLATION  =  32
ERROR.GEN_FAILURE        =  31
ERROR.INVALID_PARAMETER  =  87
ERROR.ENVVAR_NOT_FOUND   = 204

rc = ERROR.NO_ERROR

CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
CALL SysLoadFuncs
/* ----------------- Standard CMD initialization ends -------------------- */

GlobalVars = GlobalVars 'rc LogFile HelpStartLine HelpEndLine'

DO once = 1 TO 1

   DefaultLogFile = 'missing.log'

   /* Parse args */
   PARSE ARG Args
   Args = STRIP( Args)
   
   /* Show help */
   IF Args = '' THEN
      CALL ShowHelp
   ELSE
   DO
      IF WORDPOS( Args, '-? /?') > 0 THEN
         CALL ShowHelp
   END     
   
   /* Parse and check arg words */
   rest = Args
   LogFile = ''
   a = 0
   DO WHILE rest <> ''
      a = a + 1
      rest = STRIP( rest)
      IF LEFT( rest, 1) = '"' THEN
         PARSE VAR rest '"'next'"' rest
      ELSE
         PARSE VAR rest next rest
      SELECT
         WHEN a = 1 THEN
         DO
            FileMask = next
            IF FileMask = '' THEN
            DO
               rc = ERROR.INVALID_PARAMETER
               CALL ExitError 'Error: filemask not specified.'
            END
         END
         WHEN a = 2 THEN
         DO
            StartNum = next
            IF StartNum = '' THEN
            DO
               rc = ERROR.INVALID_PARAMETER
               CALL ExitError 'Error: startnum not specified.'
            END
            IF DataType( StartNum) <> 'NUM' THEN
            DO
               rc = ERROR.INVALID_PARAMETER
               CALL ExitError 'Error: startnum is not a number.'
            END
         END
         WHEN a = 3 THEN
         DO
            EndNum = next
            IF EndNum = '' THEN
            DO
               rc = ERROR.INVALID_PARAMETER
               CALL ExitError 'Error: endnum not specified.'
            END
            IF DATATYPE( EndNum) <> 'NUM' THEN
            DO
               rc = ERROR.INVALID_PARAMETER
               CALL ExitError 'Error: endnum is not a number.'
            END
         END
         WHEN a = 4 THEN
            LogFile = next
      OTHERWISE
         rc = ERROR.INVALID_PARAMETER
         CALL ExitError 'Error: Too many args specified.'
      END
   END
   IF LogFile = '' THEN
      LogFile = DefaultLogFile
     
   /* Find number of contiguous '?' chars in FileMask */
   NumPartLen = 0
   NumPartPos = 0
   pStart = 1
   PrevChar = '?'
   DO n = 1 TO LENGTH( FileMask)
      ThisChar = SUBSTR( FileMask, n, 1)
      IF ThisChar <> '?' THEN
         ITERATE
      IF PrevChar <> '?' THEN
         LEAVE
      /* Save pos of first '?' char */   
      IF NumPartLen = 0 THEN   
         NumPartPos = n
      /* Advance length */   
      NumPartLen = NumPartLen + 1
      PrevChar = ThisChar
   END   
   
   /* Check number of contiguous '?' chars in FileMask */
   IF NumPartLen < LENGTH( StartNum) THEN
   DO
      rc = ERROR.INVALID_PARAMETER
      CALL ExitError 'Error: Number of ''?'' chars in filemask too low for startnum.'
   END
   IF NumPartLen < LENGTH( EndNum) THEN
   DO
      rc = ERROR.INVALID_PARAMETER
      CALL ExitError 'Error: Number of ''?'' chars in filemask too low for endnum.'
   END
   
   /* Delete old LogFile */
   IF FileExist( LogFile) THEN
      CALL SysFileDelete LogFile

   /* Process range of numbers */
   m = 0
   f = 0
   DO n = StartNum TO EndNum
      /* Build Filename */
      NumPart = RIGHT( n, NumPartLen, '0')
      Filename = OVERLAY( NumPart, FileMask, NumPartPos, NumPartLen)
      f = f + 1
      /*SAY RIGHT( f, NumPartLen)': 'Filename*/
     
      /* Search filename */
      IF \FileExist( Filename) THEN
      DO
         m = m + 1
         /* Write to LogFile */
         CALL WriteLog 'Missing: 'Filename
      END
   END
   
   /* Close LogFile if opened */
   IF STREAM( LogFile) = 'READY' THEN
      CALL STREAM LogFile, 'C', 'CLOSE'
   
   /* Report number of missing files */
   IF m = 0 THEN
      SAY 'All 'f' numbers exist.'   
   ELSE
      SAY m' file(s) of 'f' are missing. See 'LogFile'.'

END

EXIT( rc)

/* ======================================================================= */

/* ----------------------------------------------------------------------- */
FileExist: PROCEDURE EXPOSE (GlobalVars)
   rc = ERROR.NO_ERROR

   PARSE ARG Filename

   IF FileName = '' THEN
      RETURN( 0)
   ELSE
      RETURN( STREAM( Filename, 'C', 'QUERY EXISTS') <> '')

/* ----------------------------------------------------------------------- */
WriteLog: PROCEDURE EXPOSE (GlobalVars)
   PARSE ARG Message
   
   StreamState = STREAM( LogFile)
   IF WORDPOS( StreamState, 'UNKNOWN NOTREADY') > 0 THEN
   DO
      StreamState = STREAM( LogFile, 'C', 'OPEN')
      PARSE VAR StreamState StreamState':'
   END
   IF StreamState = 'READY' THEN
      CALL LINEOUT LogFile, Message
     
   RETURN( '')   

/* ----------------------------------------------------------------------- */
ShowHelp: PROCEDURE EXPOSE (GlobalVars)
   DO l = HelpStartLine TO HelpEndLine
      SAY SUBSTR( SOURCELINE( l), 3)
   END
   EXIT rc

/* ----------------------------------------------------------------------- */

ExitError: PROCEDURE EXPOSE (GlobalVars)
   PARSE ARG Message
   CALL ShowError Message
   EXIT rc   

/* ----------------------------------------------------------------------- */
/* Show error message in a message box and/or write to STDERR */
ShowError: PROCEDURE EXPOSE (GlobalVars)
   PARSE ARG Message
   CALL LINEOUT 'STDERR', Message

   RETURN( '')

/* ----------------------------------------------------------------------- */
Halt:
   CALL ShowError 'Interrupted by user.'
   EXIT( 99)

/* ----------------------------------------------------------------------- */
/* Give a standard REXX error message. */
/* This is for REXX error conditions only. */
/* System error codes and REXX error codes are different. */
RexxError:
   /* SIGL must be saved to not get overwritten later. */
   ErrorLine = SIGL

   /* As an extension to the standard REXX error messages,    */
   /* the error condition will be appended to the error text. */
   ConditionText = 'Condition: 'CONDITION( 'C')
   ConditionDescription = CONDITION( 'D')
   IF ConditionDescription <> '' THEN
      ConditionText = ConditionText', Reason: 'ConditionDescription

   ErrText = ''
   IF SYMBOL( 'rc') = 'VAR' THEN
   DO
      IF rc > 0 & rc < 100 THEN
         ErrText = ERRORTEXT( rc)
   END
   IF ErrText = '' THEN
      ErrText = ConditionText
   ELSE
      ErrText = ErrText', 'ConditionText

   /* Ensure that rc is set and that rc <> 0 is returned */
   IF SYMBOL( 'rc') = 'VAR' THEN
   DO
      IF \( rc > 0 & rc < 100) THEN
         rc = 999
   END
   ELSE
      rc = 999

   ErrorMessage = ''
   IF ErrorLine > 0 THEN
      ErrorMessage = RIGHT( ErrorLine, 6)' +++  'SOURCELINE( ErrorLine)
   IF ErrorMessage <> '' THEN
      ErrorMessage = ErrorMessage''CrLf
   ErrorMessage = ErrorMessage ||,
      'REX'RIGHT( rc, 4, 0)': Error 'rc' running 'ThisFile', line 'ErrorLine': 'ErrText
   CALL ShowError ErrorMessage

   EXIT( rc)


42
Setup & Installation / Re: Booting with NVMe
« on: April 20, 2021, 12:09:17 pm »
Lewis' Wiki page is online.

The page for the NVMe driver is here.

See also this page for general driver addition and for saving Preboot menu settings.

43
Utilities / Re: Find missing files
« on: April 19, 2021, 08:35:23 pm »
OK, I'll try that. I guess that might be useful, it works on one dir only:

Parameters: <Dir> <StartName> <EndName> <LogFile>

44
Utilities / Re: Find missing files
« on: April 18, 2021, 09:25:26 pm »
Does anyone know of a program that takes "start file number ie. 10001.pdf" and "end file number ie. 10500.pdf" as
parameters and lists the missing ones?
Most likely you have to script that. Not too difficult. May even possible with a non-REXX and non-4OS2 script.

45
Multimedia / Re: Updated Uniaud32 build
« on: April 14, 2021, 09:34:28 pm »
due to problems with the AN USB drivers. Even if only USB2 is enabled I need Lars Erdmann's drivers to use my external keyboard and mouse.
Apparently there might be differences between 12.07 and 12.08, regarding the messages from others. For some, 12.08 finally works, others get traps. I guess you have tested both versions?

Pages: 1 2 [3] 4 5 ... 48