Provided by: libcdk5-dev_5.0.20230201-4_amd64 bug

NAME

       cdk_compat - Cdk4 compatibility functions

SYNOPSIS

SYNOPSIS

       cc [ flag ... ] file ...  -lcdk [ library ... ]

       #include <cdk_compat.h>

       int getDirectoryContents (
                      char *directory,
                      char **list,
                      int maxListSize);

       int readFile ( char *filename,
                      char **info,
                      int maxlines);

       int splitString (
                      char *string,
                      char **items,
                      char splitChar);

DESCRIPTION

       These  functions  and  macros  make  it  simpler  to port applications from the older Cdk4
       library to Cdk5.

       A few functions are deprecated in Cdk5, because they rely  upon  the  caller  to  know  in
       advance the size of data which will be returned by the function.

       Additionally,  some  macros  are  deprecated because they serve no realistic purpose: they
       have direct (standard) equivalents in all modern curses implementations.

       Finally, a few macro definitions are added to iron out naming inconsistencies  across  the
       Cdk4 header files.

AVAILABLE FUNCTIONS

       getDirectoryContents
            This    opens    the    current    directory    and    reads   the   contents.    Use
            CDKgetDirectoryContents() in new code.

       readFile
            This reads a file and sticks it into the char ** provided.  Use CDKreadFile() for new
            code.

       splitString
            This  splits  a  string  into  one  or  more  parts  given  the split character.  Use
            CDKsplitString() for new code.

EXAMPLE

       Start the porting process by changing the #include's to use
              #include <cdk_compat.h>

       rather than
              #include <cdk.h>
       Some adjustments of course are needed to make your compiler see the  compatibility  header
       file.   A  separate name was chosen so that it in turn can (by adjusting the include path)
       include either the old Cdk4 cdk.h or the new.  If the old is  included,  you  should  link
       your  program against the old library.  Likewise, including the new requires that you link
       against the new library.

       That is the first step: making your program compile using the  compatibility  header  file
       using the old headers and library.

       The  next  step  is to get it to compile against the new headers and library.  Most of the
       changes will require modifying bare references to certain pointers to wrap them  with  the
       ObjOf()  and  ScreenOf() macros.  New Cdk uses these to provide functions which are easily
       shared among the different widget types.  Your compiler should be able to tell  you  where
       the  changes  should  be  made.  See the example programs which are included with Cdk as a
       guide.

       That is the hard part of porting.  But even for a large program, the changes can  be  made
       simply:  there  are  not  that many types of change to make.  At the end of this step, you
       should still be able to build and run your program against the old  headers  and  library.
       It  is  reasonably  likely  that you can do the same with the new headers and library.  By
       using the same source for old/new versions of Cdk, you  can  test  and  verify  that  your
       program still works properly after these modifications.

       Finally,  unless this is a purely academic exercise, you will want to remove references to
       the deprecated functions and macros.

SEE ALSO

       cdk_objs(3), cdk_util(3)

                                                                                    cdk_compat(3)