Skip to content

Commit

Permalink
libclite and fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
DmBel committed Jan 3, 2022
1 parent d5c6730 commit c96b4a7
Show file tree
Hide file tree
Showing 5 changed files with 526 additions and 8 deletions.
4 changes: 2 additions & 2 deletions jcl/source/common/JclFileUtils.pas
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ function DelTree(const Path: string): Boolean;
function DelTreeEx(const Path: string; AbortOnFailure: Boolean; Progress: TDelTreeProgress): Boolean;
function DiskInDrive(Drive: Char): Boolean;
{$ENDIF MSWINDOWS}
//function DirectoryExists(const Name: string {$IFDEF UNIX}; ResolveSymLinks: Boolean = True {$ENDIF}): Boolean;
function DirectoryExists(const Name: string {$IFDEF UNIX}; ResolveSymLinks: Boolean = True {$ENDIF}): Boolean;
function FileCreateTemp(var Prefix: string): THandle;
function FileBackup(const FileName: string; Move: Boolean = False): Boolean;
function FileCopy(const ExistingFileName, NewFileName: string; ReplaceExisting: Boolean = False): Boolean;
Expand Down Expand Up @@ -263,7 +263,7 @@ function FileGetTempName(const Folder, Prefix: string): string; overload;
function FileGetTypeName(const FileName: string): string;
{$ENDIF MSWINDOWS}
function FindUnusedFileName(FileName: string; const FileExt: string; const NumberPrefix: string = ''): string;
//function ForceDirectories(Name: string): Boolean;
function ForceDirectories(Name: string): Boolean;
function GetDirectorySize(const Path: string): Int64;
{$IFDEF MSWINDOWS}
function GetDriveTypeStr(const Drive: Char): string;
Expand Down
257 changes: 257 additions & 0 deletions jcl/source/fpc/libclite/libclite.pas
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
unit libclite;

{$IFDEF FPC}
{$mode objfpc}
{$h+}
{$ENDIF FPC}
{$inline on}

Interface

uses {$IFDEF FPC}unixtype{$ELSE}Posix.SysTypes, System.SysUtils, Posix.Time{$ENDIF FPC};

Const
clib = 'c';
dllib = 'dl';
cryptlib = 'crypt';
threadslib = 'pthread';

{$i glue.inc} // C to Pascal type mappings
{$i endianh.inc} // endian.h bits/endian.h
{$i typesh.inc} // types.h sys/types.h
{$i posixopth.inc} // bits/posix_opt.h
{$i stdinth.inc} // stdint.h
{$i wordsizeh.inc} // bits/wordsize.h
{$i limitsh.inc} // limits.h
{$i posix1_limh.inc} // bits/posix1_lim.h
{$i posix2_limh.inc} // bits/posix2_lim.h
{$i xopen_limh.inc} // bits/xopen_lim.h
{$i local_limh.inc} // bits/local_lim.h
{$i inttypesh.inc} // inttypes.h
{$i errnoh.inc} // errno.h asm/errno.h bits/errno.h
{$i pathsh.inc} // paths.h
{$i lib_namesh.inc} // gnu/lib-names.h
{$i xlocaleh.inc} // xlocale.h
{$i sigcontexth.inc} // asm/sigcontext.h (from kernel)
{$i sigseth.inc} // bits/sigset.h
{$i signumh.inc} // bits/signum.h
{$i siginfoh.inc} // bits/siginfo.h
{$i sigstackh.inc} // bits/sigstack.h
{$i sigactionh.inc} // bits/sigaction.h
{$i signalh.inc} // signal.h
{$i btimeh.inc} // bits/time.h
{$i timeh.inc} // time.h
{$i stimeh.inc} // sys/time.h
{$i timexh.inc} // sys/timex.h
{$i timesh.inc} // sys/times.h
{$i bschedh.inc} // bits/sched.h
{$i schedh.inc} // sched.h
{$i pthreadtypesh.inc} // bits/pthreadtypes.h
{$i pthreadh.inc} // pthread.h
{$i sigthreadh.inc} // bits/sigthread.h
{$i semaphoreh.inc} // semaphore.h
{$i spawnh.inc} // spawn.h
{$i bfcntlh.inc} // bits/fcntl.h
{$i fcntlh.inc} // fcntl.h
{$i fileh.inc} // sys/file.h
{$i bdirenth.inc} // bits/dirent.h
{$i direnth.inc} // dirent.h
{$i bstath.inc} // bits/stat.h
{$i sstath.inc} // sys/stat.h
{$i fnmatchh.inc} // fnmatch.h
{$i gconvh.inc} // gconv.h
{$i gconfigh.inc} // _G_config.h
{$i libioh.inc} // libio.h
{$i stdioh.inc} // stdio.h
{$i stdio_limh.inc} // bits/stdio_lim.h
{$i stdio_exth.inc} // stdio_ext.h
{$i bconfnameh.inc} // bits/confname.h
{$i unistdh.inc} // unistd.h
{$i fstabh.inc} // fstab.h
{$i mntenth.inc} // mntent.h
{$i ioctlsh.inc} // bits/ioctls.h
{$i ioctl_typesh.inc} // bits/ioctl-types.h
{$i btermiosh.inc} // bits/termios.h
{$i termiosh.inc} // termios.h
{$i sttydefaultsh.inc} // sys/ttydefaults.h
{$i sioctlh.inc} // sys/ioctl.h
{ $i srawh.inc} // sys/raw.h
{$i ptyh.inc} // pty.h
{$i smounth.inc} // sys/mount.h
{$i ssysctlh.inc} // sys/sysctl.h
{$i stringh.inc} // string.h
{$i stdlibh.inc} // stdlib.h
{$i malloch.inc} // malloc.h
{$i ssysinfoh.inc} // sys/sysinfo.h
{$i bdlfcnh.inc} // bits/dlfcn.h
{$i dlfcnh.inc} // dlfcn.h
{$i localeh.inc} // locale.h
{$i nl_typesh.inc} // nl_types.h
{$i langinfoh.inc} // langinfo.h
{$i wordexph.inc} // wordexp.h
{$i iconvh.inc} // iconv.h
{$i bresourceh.inc} // bits/resource.h
{$i sresourceh.inc} // sys/resource.h
{$i argzh.inc} // argz.h
{$i envzh.inc} // envz.h
{$i ctypeh.inc} // sys/ctype.h
{$i wctypeh.inc} // wctype.h
{$i wcharh.inc} // wchar.h
{$i bwaitflagsh.inc} // bits/waitflags.h
{$i bwaitstatush.inc} // bits/waitstatus.h
{$i swaith.inc} // sys/wait.h
{$i butsnameh.inc} // bits/utsname.h
{$i sutsnameh.inc} // sys/utsname.h
{$i bmmanh.inc} // bits/mman.h
{$i smmaph.inc} // sys/mmap.h
{$i ssyslogh.inc} // sys/syslog.h
{$i glibc_versionh.inc} // from gnu/libc-version.h
{$i buioh.inc} // bits/uio.h
{$i suioh.inc} // sys/uio.h
{$i asockiosh.inc} // asm/sockios.h
{$i asocketh.inc} // asm/socket.h
{$i bsockaddrh.inc} // bits/sockaddr.h (inlined in bits/socket.h)
{$i bsocketh.inc} // bits/socket.h
{$i ssocketh.inc} // sys/socket.h
{$i sunh.inc} // sys/un.h
{$i ninh.inc} // netinet/in.h
{$i binh.inc} // bits/in.h, inlined in netinet/in.h
{$i aineth.inc} // arpa/inet.h
{$i bnetdbh.inc} // bits/netdb.h
{$i netdbh.inc} // netdb.h
// empty anyway {$i bselecth.inc} // bits/select.h
{$i sselecth.inc} // sys/select.h
{$i pwdh.inc} // pwd.h
{$i grph.inc} // grp.h
{$i sptraceh.inc} // sys/ptrace.h
{$i ulimith.inc} // ulimit.h
{$i bpollh.inc} // bits/poll.h
{$i spollh.inc} // sys/poll.h
{$i utimeh.inc} // utime.h
{$i sysexitsh.inc} // sysexits.h
{$i bustath.inc} // bits/ustat.h
{$i sustath.inc} // sys/ustat.h
{$i errh.inc} // err.h
{$i errorh.inc} // error.h
{$i bfenvh.inc} // bits/fenv.h
{$i fenvh.inc} // fenv.h
{$i bipch.inc} // bits/ipc.h
{$i sipch.inc} // sys/ipc.h
{$i bshmh.inc} // bits/shm.h
{$i sshmh.inc} // sys/shm.h
{$i bsemh.inc} // bits/sem.h
{$i ssemh.inc} // sys/sem.h
{$i libgenh.inc} // libgen.h
{$i butmph.inc} // bits/utmp.h
{$i utmph.inc} // utmp.h
{$i butmpxh.inc} // bits/utmpx.h
{$i utmpxh.inc} // utmpx.h
{$i svtimesh.inc} // sys/vtimes.h
{$i svlimith.inc} // sys/vlimit.h
{$i sucontexth.inc} // sys/ucontext.h
{$i ucontexth.inc} // ucontext.h
{$i bmsqh.inc} // bits/msq.h
{$i smsgh.inc} // sys/msg.h
{$i bstatfsh.inc} // bits/statfs.h
{$i sstatfsh.inc} // sys/statfs.h
{$i bstatvfsh.inc} // bits/statvfs.h
{$i sstatvfsh.inc} // sys/statvfs.h
{$i monetaryh.inc} // monetary.h
{$i mcheckh.inc} // mcheck.h
{$i printfh.inc} // printf.h
{$i libintlh.inc} // libintl.h
{$i shadowh.inc} // shadow.h
{$i fmtmsgh.inc} // fmtmsg.h
{$i squotah.inc} // sys/quota.h
{$i stimebh.inc} // sys/timeb.h
{$i spermh.inc} // sys/perm.h
{ $i suserh.inc} // sys/user.h // You're not supposed to use this...
{$i sswaph.inc} // sys/swap.h
{$i ssendfileh.inc} // sys/sendfile.h
{$i srebooth.inc} // sys/reboot.h
{$i aioh.inc} // aio.h
{$i aliasesh.inc} // aliases.h
{$i globh.inc} // glob.h
{$i crypth.inc} // crypt.h
{$i sfsuidh.inc} // sys/fsuid.h
{$i sklogh.inc} // sys/klog.h
{$i skdaemonh.inc} // sys/kdaemon.h
{$i saccth.inc} // sys/acct.h
{$i bstroptsh.inc} // bits/stropts.h
{$i stroptsh.inc} // stropts.h
{$i allocah.inc} // alloca.h
{$i getopth.inc} // getopt.h
{$i argph.inc} // argp.h
{$i nssh.inc} // nss.h
{$i regexh.inc} // regex.h
{ $i regexph.inc} // regexp.h // You're not supposed to use this...
{ $i netherneth.inc} // net/ethernet.h
{$i nifh.inc} // net/if.h
{$i nif_arph.inc} // net/if_arp.h
{$i nif_packeth.inc} // net/if_packet.h
{ $i nppp_defsh.inc} // net/ppp_defs.h is empty
{ $i nif_ppph.inc} // net/if_ppp.h
{ $i nif_shaperh.inc} // net/if_shaper.h
{ $i nif_slip.h} // net/if_slip.h in kerneldefs
{ $i nppp_comp.h} // net/ppp-comp.h in kerneldefs
{$i nrouteh.inc} // net/route.h
{$i nashh.inc} // netash/ash.h
{$i nath.inc} // netatalk/at.h
{$i nax25h.inc} // netax25/ax25.h
{$i nech.inc} // neteconet/ec.h
{$i nipxh.inc} // netipx/ipx.h
{$i npacketh.inc} // netpacket/packet.h
{$i nnetromh.inc} // netrom/netrom.h
{$i nroseh.inc} // netrose/rose.h
{ $i nif_etherh.inc} // netinet/if_ether.h
{ $i netherh.inc} // netinet/ether.h
{$i nicmp6h.inc} // netinet/icmp6.h
{ $i nif_fddih.inc} // netinet/if_fddi.h
{ $i nif_trh.inc} // netinet/if_tr.h
{$i nigmph.inc} // netinet/igmp.h
{$i nin_systmh.inc} // netinet/in_systm.h
{$i niph.inc} // netinet/ip.h
{$i nip6h.inc} // netinet/ip6.h
{$i nip_icmph.inc} // netinet/ip_icmp.h
{$i ntcph.inc} // netinet/tcp.h
{$i nudph.inc} // netinet/udp.h
{$i proutedh.inc} // protocols/routed.h
{$i prwhodh.inc} // protocols/rwhod.h
{$i ptalkdh.inc} // protocols/talkd.h
{ $i ptimedh.inc} // protocols/timed.h
{$i sscsih.inc} // scsi/scsi.h
{$i sscsi_ioctlh.inc} // scsi/scsi_ioctl.h
{ $i ssgh.inc} // scsi/sg.h
{$i ttyenth.inc} // ttyent.h
{$i sgttyh.inc} // sgtty.h
{$i searchh.inc} // search.h

Implementation

{$i types.inc} // types.h macros.
{$i cerrno.inc} // errno.h asm/errno.h bits/errno.h macros.
{$i time.inc} // bits/time.h macros.
{$i stime.inc} // sys/time.h macros.
{$i dirent.inc} // dirent.h macros.
{$i sstat.inc} // sys/stat.h macros.
{$i libio.inc} // libio.h macros.
{$i termios.inc} // termios.h macros.
{$i sttydefaults.inc} // sys/ttydefaults.h macros.
{ $i sraw.inc} // sys/raw.h macros.
{$i bwaitstatus.inc} // bits/waitstatus.h macros.
{$i ssyslog.inc} // sys/syslog.h macros.
{$i bsocket.inc} // bits/socket.h macros.
{$i sun.inc} // sys/un.h macros.
{$i nin.inc} // netinet/in.h macros.
{$i sselect.inc} // sys/select.h macros.
{$i squota.inc} // sys/quota.h macros.
{ $i nethernet.inc} // net/ethernet.h macros.
{ $i nif_ppp.inc} // net/if_ppp.h macros.
{$i nroute.inc} // net/route.h macros.
{$i nip.inc} // netinet/ip.h macros.
{ $i nif_ether.inc} // netinet/if_ether.h macros.
{$i nicmp6.inc} // netinet/icmp6.h macros.
{$i nip_icmp.inc} // netinet/ip_icmp.h macros.
{$i pthread.inc} // pthread.h Kylix compatibility.

end.
Loading

0 comments on commit c96b4a7

Please sign in to comment.