<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.lisp.osicat.devel">
    <title>gmane.lisp.osicat.devel</title>
    <link>http://blog.gmane.org/gmane.lisp.osicat.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/68"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/63"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/62"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/61"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/60"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/60"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/60"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/59"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/58"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/57"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/55"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/45"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/44"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/42"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/40"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/39"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/38"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/35"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/34"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.osicat.devel/33"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/68">
    <title>[osicat-devel] Unicode error for Clozure when callingosicat-posix:mkdir on existing directory</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/68</link>
    <description>&lt;pre&gt;I get a strange error when calling osicat-posix:mkdir on an already
existing directory in Clozure.

(osicat-posix:mkdir "/this/directory/exists/" #o777)

An error is thrown:

--------------------------------------------

#&amp;lt;error printing EEXIST #x1985838E&amp;gt;
   [Condition of type OSICAT-POSIX:EEXIST]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 1: [*ABORT] Return to SLIME's top level.
 2: [ABORT-BREAK] Reset this thread
 3: [ABORT] Kill this thread

Backtrace:
  0: (OSICAT-POSIX:POSIX-ERROR 17 NIL OSICAT-POSIX:MKDIR)
  1: (CCL::CALL-CHECK-REGS OSICAT-POSIX:MKDIR #P"/home/viper/tmp/bar/" 511)
  2: (CCL::CHEAP-EVAL (OSICAT-POSIX:MKDIR (MERGE-PATHNAMES "bar/"
"/home/viper/tmp/") 511))
  3: (SWANK::EVAL-REGION "(osicat-posix:mkdir (merge-pathnames
\"bar/\" \"/home/viper/tmp/\") #o777)\n")

--------------------------------------------

Select restart 1 (abort), another error comes up:

--------------------------------------------

Illegal :UTF-8 character starting at position 0.
   [Condition of type BABEL-ENCODINGS:INVALID-UTF8-STARTER-BYTE]

Restarts:
 0: [*ABORT] Return to SLIME's top level.
 1: [ABORT-BREAK] Reset this thread
 2: [ABORT] Kill this thread

Backtrace:
  0: (BABEL-ENCODINGS::UTF-8-DECODER #&amp;lt;A Foreign Pointer
[stack-allocated] #x7F60D08&amp;gt; 0 3 "^&amp;lt; at &amp;gt;^&amp;lt; at &amp;gt;^&amp;lt; at &amp;gt;"  0)
  1: (CFFI:FOREIGN-STRING-TO-LISP #&amp;lt;A Foreign Pointer
[stack-allocated] #x7F60D08&amp;gt; :OFFSET 0 :COUNT NIL :MAX-CHARS 16777215
:ENCODING :UTF-8)
  2: (OSICAT-POSIX:STRERROR 17)
  3: ((:INTERNAL (PRINT-OBJECT (OSICAT-POSIX:POSIX-ERROR T))))
  4: (CCL::%PRINT-UNREADABLE-OBJECT #&amp;lt;EEXIST #&amp;lt;error printing
OSICAT-POSIX:EEXIST #x19797F2E&amp;gt; #&amp;lt;STRING-OUTPUT-STREAM  #x1979BB66&amp;gt; T
NIL #&amp;lt;COMPILED-LEXICAL-CLOSURE (:INTERNAL ..))
  5: (#&amp;lt;STANDARD-METHOD PRINT-OBJECT (OSICAT-POSIX:POSIX-ERROR T)&amp;gt;
#&amp;lt;EEXIST #&amp;lt;error printing OSICAT-POSIX:EEXIST #x19797F2E&amp;gt;
#&amp;lt;STRING-OUTPUT-STREAM  #x1979BB66&amp;gt;)
  6: (CCL::%CALL-NEXT-METHOD (NIL #&amp;lt;STANDARD-METHOD PRINT-OBJECT
(OSICAT-POSIX:POSIX-ERROR T)&amp;gt; . 4670269))
  7: (CCL::%%STANDARD-COMBINED-METHOD-DCODE
(#&amp;lt;CCL::STANDARD-KERNEL-METHOD PRINT-OBJECT :AROUND (T T)&amp;gt;
#&amp;lt;STANDARD-METHOD PRINT-OBJECT (OSICAT-POSIX:POSIX-ERROR T)&amp;gt;) 4670269)
  8: (NIL #&amp;lt;Unknown Arguments&amp;gt;)
  9: (CCL::WRITE-A-FROB #&amp;lt;EEXIST #&amp;lt;error printing OSICAT-POSIX:EEXIST
#x19797F2E&amp;gt; #&amp;lt;STRING-OUTPUT-STREAM  #x1979BB66&amp;gt; 536870911 NIL)
 10: (CCL::WRITE-INTERNAL #&amp;lt;STRING-OUTPUT-STREAM  #x1979BB66&amp;gt; #&amp;lt;EEXIST
#&amp;lt;error printing OSICAT-POSIX:EEXIST #x19797F2E&amp;gt; 536870911 NIL)
 11: (CCL::WRITE-1 #&amp;lt;EEXIST #&amp;lt;error printing OSICAT-POSIX:EEXIST
#x19797F2E&amp;gt; #&amp;lt;STRING-OUTPUT-STREAM  #x1979BB66&amp;gt; 536870911)
 12: (PRIN1 #&amp;lt;EEXIST #&amp;lt;error printing OSICAT-POSIX:EEXIST #x19797F2E&amp;gt;
#&amp;lt;STRING-OUTPUT-STREAM  #x1979BB66&amp;gt;)
 13: (PRIN1-TO-STRING #&amp;lt;EEXIST #&amp;lt;error printing OSICAT-POSIX:EEXIST #x19797F2E&amp;gt;)
 14: (SWANK:EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(osicat-posix:mkdir
(merge-pathnames \"bar/\" \"/home/viper/tmp/\") #o777)\n")
"COMMON-LISP-USER" 63)

--------------------------------------------

This doesn't come up in SBCL or CLISP - they both print the EEXIST
error normally.

The environment is Clozure Version 1.9-dev-r15251M  (LinuxX8632) on
SLIME on Ubuntu, both locale and ccl:*default-file-character-encoding*
are utf-8.

Vladimir

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Vladimir Sedach</dc:creator>
    <dc:date>2012-04-15T23:29:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/63">
    <title>[osicat-devel] prctl() support and test-related patches</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/63</link>
    <description>&lt;pre&gt;
Hi,

I added support for the prctl() Linux syscall to Osicat, and made two
test-related fixes.

The patches are available on my Github Osicat fork [1], more
precisely:

https://github.com/galdor/osicat/commit/736bb5c10c9c55ed76def0d58da31c1ad1eeff05
https://github.com/galdor/osicat/commit/bede645f2a3d15d825160c7518c295c95bed4271
https://github.com/galdor/osicat/commit/288dc2ee6a6861ea272ea75bb3e346cda6ca85a7

You may be interested in picking them in the official Osicat repository
:)

[1] https://github.com/galdor/osicat

Regards,

&lt;/pre&gt;</description>
    <dc:creator>Nicolas Martyanoff</dc:creator>
    <dc:date>2012-02-22T07:29:57</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/62">
    <title>[osicat-devel] walk-directory does not support unicode filename anddiretoryname?</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/62</link>
    <description>&lt;pre&gt;It seems walk-directory will skip files and directories whose name is in
Unicode, such as Chinese.

Is this a bug?

Test platform: Mac OS 10.7 Lion, Clozure Common Lisp 1.8

Test Code:

(require "asdf")
(require "osicat")

(defpackage :com.losttemple.zip-db
  (:use :common-lisp :osicat))

(in-package :com.losttemple.zip-db)

(walk-directory
 (current-directory)
 #'(lambda (x) (format t "~a~%" (absolute-pathname x)))
 :test #'(lambda (x) (format t "---~a~%" (absolute-pathname x)) t)
 :directories :depth-first)

(in-package :common-lisp-user)
(quit)

&lt;/pre&gt;</description>
    <dc:creator>Achilles Xu</dc:creator>
    <dc:date>2012-02-06T09:22:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/61">
    <title>[osicat-devel] Fix out-getuid for Clisp</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/61</link>
    <description>&lt;pre&gt;Clisp doesn't have (posix:getuid) function, instead it uses (posix:uid).
Here's small patch to fix it in osicat tests.

Timo

diff --git a/tests/tests.lisp b/tests/tests.lisp
index 2710a8f..7d0c399 100644
--- a/tests/tests.lisp
+++ b/tests/tests.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -59,6 +59,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (defun our-getuid ()
   #+sbcl (sb-unix:unix-getuid)
   #+cmu (unix:unix-getuid)
-  #+clisp (posix:getuid)
+  #+clisp (posix:uid)
   #+allegro (excl.osi:getuid)
   #-(or sbcl cmu clisp allegro) 0) ; A sane enough default for testing?

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Timo Myyrä</dc:creator>
    <dc:date>2012-01-12T11:20:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/60">
    <title>[osicat-devel] Patch to fix osicat on OpenBSD</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/60</link>
    <description>&lt;pre&gt;Hi,

Here's diff to make osicat work on OpenBSD.

OpenBSD doesn't define blksize_t and blkcnt_t so define them as
'long'. Not sure if this is correct but seems to work.
Neither does OpenBSD have the timer functions so omit them on OpenBSD.
The tests need to be tweaked for OpenBSD too, its similar to darwin in
this. Testing with other BSD's would be welcome to see if it its
needed there as well.

The funcall-getpw function seems to handle return values incorrectly.
As result it would cause exception on OpenBSD with incorrect entries
and not nil value as expected. The fix below works on OpenBSD but
could use some testing on other platforms as well.

Hopefully gmail won't break the diff.

Timo


diff --git a/posix/basic-unixint.lisp b/posix/basic-unixint.lisp
index 3ee3710..88371ae 100644
--- a/posix/basic-unixint.lisp
+++ b/posix/basic-unixint.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -286,12 +286,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (ctype dev "dev_t")
 (ctype ino "ino_t")

-#-windows
+#-(or windows openbsd)
 (progn
   (ctype nlink "nlink_t")
   (ctype blksize "blksize_t")
   (ctype blkcnt "blkcnt_t"))

+#+openbsd
+(progn
+  (ctype nlink "nlink_t")
+  (ctype blksize "long")
+  (ctype blkcnt "long"))
+
 (cstruct stat "struct stat"
   (dev     "st_dev"     :type #-mips dev #+mips :unsigned-long)
   (ino     "st_ino"     :type ino)
diff --git a/posix/unix.lisp b/posix/unix.lisp
index 702d32d..f65ff55 100644
--- a/posix/unix.lisp
+++ b/posix/unix.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -394,8 +394,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     (with-foreign-object (ts 'timespec)
       (with-foreign-slots ((sec nsec) ts timespec)
         (%clock-settime clock-id ts)
-        (values sec nsec))))
+        (values sec nsec)))))

+#-(or darwin openbsd)
+(progn
   (defsyscall ("timer_create" %timer-create) :int
     (clockid clockid)
     (sigevent :pointer)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -646,21 +648,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; than C's printf) with format string FORMAT and
arguments ARGS."
   (result  :pointer))

 (defun funcall-getpw (fn arg)
+  ;; http://pubs.opengroup.org/onlinepubs/009695399/functions/getpwnam.html
+  ;; "Applications wishing to check for error situations should set
+  ;; errno to 0 before calling getpwnam(). If getpwnam() returns null
+  ;; pointer and errno is non-zero, an error occured.
+  (set-errno 0)
   (with-foreign-objects ((pw 'passwd) (pwp :pointer))
     (with-foreign-pointer (buf 4096 bufsize)
       (with-foreign-slots ((name passwd uid gid gecos dir shell) pw passwd)
         (let ((ret (funcall fn arg pw buf bufsize pwp)))
-          ;; Darwin's getpwnam_r() is broken a returns -1 when the
-          ;; user is not found.  Not sure if it returns the error
-          ;; number as specified by posix.
-          #+darwin
-          (when (= ret -1)
-            (return-from funcall-getpw nil))
-          (if (zerop ret)
-              (if (null-pointer-p (mem-ref pwp :pointer))
-                  nil
-                  (values name passwd uid gid gecos dir shell))
-              (posix-error ret)))))))
+          (cond ((and (null-pointer-p (mem-ref pwp :pointer))
+                      (not (zerop (get-errno))))
+                 (posix-error ret))
+                ((and (null-pointer-p (mem-ref pwp :pointer))
+                      (zerop (get-errno)))
+                 nil)
+                (t (values name passwd uid gid gecos dir shell))))))))

 (defun getpwuid (uid)
   "Gets the password-entry of a user, by user id."
diff --git a/posix/unixint.lisp b/posix/unixint.lisp
index 43273c9..cee4337 100644
--- a/posix/unixint.lisp
+++ b/posix/unixint.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -105,6 +105,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
   (int "sival_int" :type :int)
   (ptr "sival_ptr" :type :pointer))

+#-openbsd
 (cstruct sigevent "struct sigevent"
   (notify            "sigev_notify"            :type :int)
   (signo             "sigev_signo"             :type :int)
diff --git a/tests/posix.lisp b/tests/posix.lisp
index 32a4eef..de4f35d 100644
--- a/tests/posix.lisp
+++ b/tests/posix.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -139,9 +139,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (define-posix-test mkdir.error.2
     (handler-case
         (nix:mkdir "/" 0)
-      (#+darwin nix:eisdir
+      (#+(or darwin openbsd) nix:eisdir
        #+windows nix:eacces
-       #-(or darwin windows) nix:eexist () 'failed))
+       #-(or darwin windows openbsd) nix:eexist () 'failed))
   failed)

 (define-eacces-test mkdir.error.3
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -189,9 +189,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (define-posix-test rmdir.error.3
     (handler-case
         (nix:rmdir "/")
-      (#+darwin nix:eisdir
+      (#+(or darwin openbsd) nix:eisdir
        #+windows nix:eacces
-       #-(or darwin windows) nix:ebusy () 'failed))
+       #-(or darwin windows openbsd) nix:ebusy () 'failed))
   failed)

 (define-posix-test rmdir.error.4
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -206,7 +206,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
           (nix:rmdir dir)
           ;; documented by POSIX
           (not (null (member (system-error-identifier c)
-                             '(:eexist :enotempty #+darwin :enonet
+                             '(:eexist :enotempty #+(or darwin openbsd) :enonet
                                #+windows :enosr)))))))
   t)

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Timo Myyrä</dc:creator>
    <dc:date>2012-01-08T09:55:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/60">
    <title>[osicat-devel] Patch to fix osicat on OpenBSD</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/60</link>
    <description>&lt;pre&gt;Hi,

Here's diff to make osicat work on OpenBSD.

OpenBSD doesn't define blksize_t and blkcnt_t so define them as
'long'. Not sure if this is correct but seems to work.
Neither does OpenBSD have the timer functions so omit them on OpenBSD.
The tests need to be tweaked for OpenBSD too, its similar to darwin in
this. Testing with other BSD's would be welcome to see if it its
needed there as well.

The funcall-getpw function seems to handle return values incorrectly.
As result it would cause exception on OpenBSD with incorrect entries
and not nil value as expected. The fix below works on OpenBSD but
could use some testing on other platforms as well.

Hopefully gmail won't break the diff.

Timo


diff --git a/posix/basic-unixint.lisp b/posix/basic-unixint.lisp
index 3ee3710..88371ae 100644
--- a/posix/basic-unixint.lisp
+++ b/posix/basic-unixint.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -286,12 +286,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (ctype dev "dev_t")
 (ctype ino "ino_t")

-#-windows
+#-(or windows openbsd)
 (progn
   (ctype nlink "nlink_t")
   (ctype blksize "blksize_t")
   (ctype blkcnt "blkcnt_t"))

+#+openbsd
+(progn
+  (ctype nlink "nlink_t")
+  (ctype blksize "long")
+  (ctype blkcnt "long"))
+
 (cstruct stat "struct stat"
   (dev     "st_dev"     :type #-mips dev #+mips :unsigned-long)
   (ino     "st_ino"     :type ino)
diff --git a/posix/unix.lisp b/posix/unix.lisp
index 702d32d..f65ff55 100644
--- a/posix/unix.lisp
+++ b/posix/unix.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -394,8 +394,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     (with-foreign-object (ts 'timespec)
       (with-foreign-slots ((sec nsec) ts timespec)
         (%clock-settime clock-id ts)
-        (values sec nsec))))
+        (values sec nsec)))))

+#-(or darwin openbsd)
+(progn
   (defsyscall ("timer_create" %timer-create) :int
     (clockid clockid)
     (sigevent :pointer)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -646,21 +648,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; than C's printf) with format string FORMAT and
arguments ARGS."
   (result  :pointer))

 (defun funcall-getpw (fn arg)
+  ;; http://pubs.opengroup.org/onlinepubs/009695399/functions/getpwnam.html
+  ;; "Applications wishing to check for error situations should set
+  ;; errno to 0 before calling getpwnam(). If getpwnam() returns null
+  ;; pointer and errno is non-zero, an error occured.
+  (set-errno 0)
   (with-foreign-objects ((pw 'passwd) (pwp :pointer))
     (with-foreign-pointer (buf 4096 bufsize)
       (with-foreign-slots ((name passwd uid gid gecos dir shell) pw passwd)
         (let ((ret (funcall fn arg pw buf bufsize pwp)))
-          ;; Darwin's getpwnam_r() is broken a returns -1 when the
-          ;; user is not found.  Not sure if it returns the error
-          ;; number as specified by posix.
-          #+darwin
-          (when (= ret -1)
-            (return-from funcall-getpw nil))
-          (if (zerop ret)
-              (if (null-pointer-p (mem-ref pwp :pointer))
-                  nil
-                  (values name passwd uid gid gecos dir shell))
-              (posix-error ret)))))))
+          (cond ((and (null-pointer-p (mem-ref pwp :pointer))
+                      (not (zerop (get-errno))))
+                 (posix-error ret))
+                ((and (null-pointer-p (mem-ref pwp :pointer))
+                      (zerop (get-errno)))
+                 nil)
+                (t (values name passwd uid gid gecos dir shell))))))))

 (defun getpwuid (uid)
   "Gets the password-entry of a user, by user id."
diff --git a/posix/unixint.lisp b/posix/unixint.lisp
index 43273c9..cee4337 100644
--- a/posix/unixint.lisp
+++ b/posix/unixint.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -105,6 +105,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
   (int "sival_int" :type :int)
   (ptr "sival_ptr" :type :pointer))

+#-openbsd
 (cstruct sigevent "struct sigevent"
   (notify            "sigev_notify"            :type :int)
   (signo             "sigev_signo"             :type :int)
diff --git a/tests/posix.lisp b/tests/posix.lisp
index 32a4eef..de4f35d 100644
--- a/tests/posix.lisp
+++ b/tests/posix.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -139,9 +139,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (define-posix-test mkdir.error.2
     (handler-case
         (nix:mkdir "/" 0)
-      (#+darwin nix:eisdir
+      (#+(or darwin openbsd) nix:eisdir
        #+windows nix:eacces
-       #-(or darwin windows) nix:eexist () 'failed))
+       #-(or darwin windows openbsd) nix:eexist () 'failed))
   failed)

 (define-eacces-test mkdir.error.3
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -189,9 +189,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (define-posix-test rmdir.error.3
     (handler-case
         (nix:rmdir "/")
-      (#+darwin nix:eisdir
+      (#+(or darwin openbsd) nix:eisdir
        #+windows nix:eacces
-       #-(or darwin windows) nix:ebusy () 'failed))
+       #-(or darwin windows openbsd) nix:ebusy () 'failed))
   failed)

 (define-posix-test rmdir.error.4
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -206,7 +206,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
           (nix:rmdir dir)
           ;; documented by POSIX
           (not (null (member (system-error-identifier c)
-                             '(:eexist :enotempty #+darwin :enonet
+                             '(:eexist :enotempty #+(or darwin openbsd) :enonet
                                #+windows :enosr)))))))
   t)

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Timo Myyrä</dc:creator>
    <dc:date>2012-01-08T09:55:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/60">
    <title>[osicat-devel] Patch to fix osicat on OpenBSD</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/60</link>
    <description>&lt;pre&gt;Hi,

Here's diff to make osicat work on OpenBSD.

OpenBSD doesn't define blksize_t and blkcnt_t so define them as
'long'. Not sure if this is correct but seems to work.
Neither does OpenBSD have the timer functions so omit them on OpenBSD.
The tests need to be tweaked for OpenBSD too, its similar to darwin in
this. Testing with other BSD's would be welcome to see if it its
needed there as well.

The funcall-getpw function seems to handle return values incorrectly.
As result it would cause exception on OpenBSD with incorrect entries
and not nil value as expected. The fix below works on OpenBSD but
could use some testing on other platforms as well.

Hopefully gmail won't break the diff.

Timo


diff --git a/posix/basic-unixint.lisp b/posix/basic-unixint.lisp
index 3ee3710..88371ae 100644
--- a/posix/basic-unixint.lisp
+++ b/posix/basic-unixint.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -286,12 +286,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (ctype dev "dev_t")
 (ctype ino "ino_t")

-#-windows
+#-(or windows openbsd)
 (progn
   (ctype nlink "nlink_t")
   (ctype blksize "blksize_t")
   (ctype blkcnt "blkcnt_t"))

+#+openbsd
+(progn
+  (ctype nlink "nlink_t")
+  (ctype blksize "long")
+  (ctype blkcnt "long"))
+
 (cstruct stat "struct stat"
   (dev     "st_dev"     :type #-mips dev #+mips :unsigned-long)
   (ino     "st_ino"     :type ino)
diff --git a/posix/unix.lisp b/posix/unix.lisp
index 702d32d..f65ff55 100644
--- a/posix/unix.lisp
+++ b/posix/unix.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -394,8 +394,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     (with-foreign-object (ts 'timespec)
       (with-foreign-slots ((sec nsec) ts timespec)
         (%clock-settime clock-id ts)
-        (values sec nsec))))
+        (values sec nsec)))))

+#-(or darwin openbsd)
+(progn
   (defsyscall ("timer_create" %timer-create) :int
     (clockid clockid)
     (sigevent :pointer)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -646,21 +648,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; than C's printf) with format string FORMAT and
arguments ARGS."
   (result  :pointer))

 (defun funcall-getpw (fn arg)
+  ;; http://pubs.opengroup.org/onlinepubs/009695399/functions/getpwnam.html
+  ;; "Applications wishing to check for error situations should set
+  ;; errno to 0 before calling getpwnam(). If getpwnam() returns null
+  ;; pointer and errno is non-zero, an error occured.
+  (set-errno 0)
   (with-foreign-objects ((pw 'passwd) (pwp :pointer))
     (with-foreign-pointer (buf 4096 bufsize)
       (with-foreign-slots ((name passwd uid gid gecos dir shell) pw passwd)
         (let ((ret (funcall fn arg pw buf bufsize pwp)))
-          ;; Darwin's getpwnam_r() is broken a returns -1 when the
-          ;; user is not found.  Not sure if it returns the error
-          ;; number as specified by posix.
-          #+darwin
-          (when (= ret -1)
-            (return-from funcall-getpw nil))
-          (if (zerop ret)
-              (if (null-pointer-p (mem-ref pwp :pointer))
-                  nil
-                  (values name passwd uid gid gecos dir shell))
-              (posix-error ret)))))))
+          (cond ((and (null-pointer-p (mem-ref pwp :pointer))
+                      (not (zerop (get-errno))))
+                 (posix-error ret))
+                ((and (null-pointer-p (mem-ref pwp :pointer))
+                      (zerop (get-errno)))
+                 nil)
+                (t (values name passwd uid gid gecos dir shell))))))))

 (defun getpwuid (uid)
   "Gets the password-entry of a user, by user id."
diff --git a/posix/unixint.lisp b/posix/unixint.lisp
index 43273c9..cee4337 100644
--- a/posix/unixint.lisp
+++ b/posix/unixint.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -105,6 +105,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
   (int "sival_int" :type :int)
   (ptr "sival_ptr" :type :pointer))

+#-openbsd
 (cstruct sigevent "struct sigevent"
   (notify            "sigev_notify"            :type :int)
   (signo             "sigev_signo"             :type :int)
diff --git a/tests/posix.lisp b/tests/posix.lisp
index 32a4eef..de4f35d 100644
--- a/tests/posix.lisp
+++ b/tests/posix.lisp
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -139,9 +139,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (define-posix-test mkdir.error.2
     (handler-case
         (nix:mkdir "/" 0)
-      (#+darwin nix:eisdir
+      (#+(or darwin openbsd) nix:eisdir
        #+windows nix:eacces
-       #-(or darwin windows) nix:eexist () 'failed))
+       #-(or darwin windows openbsd) nix:eexist () 'failed))
   failed)

 (define-eacces-test mkdir.error.3
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -189,9 +189,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (define-posix-test rmdir.error.3
     (handler-case
         (nix:rmdir "/")
-      (#+darwin nix:eisdir
+      (#+(or darwin openbsd) nix:eisdir
        #+windows nix:eacces
-       #-(or darwin windows) nix:ebusy () 'failed))
+       #-(or darwin windows openbsd) nix:ebusy () 'failed))
   failed)

 (define-posix-test rmdir.error.4
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -206,7 +206,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
           (nix:rmdir dir)
           ;; documented by POSIX
           (not (null (member (system-error-identifier c)
-                             '(:eexist :enotempty #+darwin :enonet
+                             '(:eexist :enotempty #+(or darwin openbsd) :enonet
                                #+windows :enosr)))))))
   t)

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Timo Myyrä</dc:creator>
    <dc:date>2012-01-08T09:55:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/59">
    <title>[osicat-devel] blksize_t and blkcnt_t undefined on OpenBSD</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/59</link>
    <description>&lt;pre&gt;Hi,

Osicat fails to compile on OpenBSD because of missing defines for
blksize_t and blkcnt_t.


External process exited with code 1.
Command was: "cc" "-m64"
"-I/home/zmyrgel/quicklisp/dists/quicklisp/software..." "-fPIC" "-o"
"/home/zmyrgel/.cache/common-lisp/sbcl-1.0.54.openb..."
"/home/zmyrgel/.cache/common-lisp/sbcl-1.0.54.openb..."
Output was:
/home/zmyrgel/.cache/common-lisp/sbcl-1.0.54.openbsd-bsd-x64/home/zmyrgel/quicklisp/dists/quicklisp/software/osicat-20110619-git/posix/basic-unixint.c:
In function 'main':
/home/zmyrgel/.cache/common-lisp/sbcl-1.0.54.openbsd-bsd-x64/home/zmyrgel/quicklisp/dists/quicklisp/software/osicat-20110619-git/posix/basic-unixint.c:2041:
error: 'blksize_t' undeclared (first use in this function)
/home/zmyrgel/.cache/common-lisp/sbcl-1.0.54.openbsd-bsd-x64/home/zmyrgel/quicklisp/dists/quicklisp/software/osicat-20110619-git/posix/basic-unixint.c:2041:
error: (Each undeclared identifier is reported only once
/home/zmyrgel/.cache/common-lisp/sbcl-1.0.54.openbsd-bsd-x64/home/zmyrgel/quicklisp/dists/quicklisp/software/osicat-20110619-git/posix/basic-unixint.c:2041:
error: for each function it appears in.)
/home/zmyrgel/.cache/common-lisp/sbcl-1.0.54.openbsd-bsd-x64/home/zmyrgel/quicklisp/dists/quicklisp/software/osicat-20110619-git/posix/basic-unixint.c:2053:
error: 'blkcnt_t' undeclared (first use in this function)


Timo

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Timo Myyrä</dc:creator>
    <dc:date>2012-01-02T12:43:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/58">
    <title>never mind... Problem compiling osicat-posix with quicklisp on x86_64 with 32-bit lisp....</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/58</link>
    <description>&lt;pre&gt;Hi Osicat developers,

Disregard my previous note about problems compiling osicat-posix on 64-bit
for 32-bit lispworks. Thing work just fine if you install the 32-bit gcc,
and just let it happen!

Best regards,
   Peter
_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs&lt;/pre&gt;</description>
    <dc:creator>Peter Denno</dc:creator>
    <dc:date>2011-11-27T00:00:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/57">
    <title>Problem compiling osicat-posix with quicklisp on x86_64with 32-bit lispworks</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/57</link>
    <description>&lt;pre&gt;Hi,

I ran into a problem compiling osicat-posix under the environment described
in the subject line. What I get:

[package osicat-posix]; /usr/bin/cc -m32
-I/home/pdenno/quicklisp/dists/quicklisp/software/cffi_0.10.6/ -fPIC -o
/home/pdenno/.cache/common-lisp/lw-6.0.1-linux-x86/home/pdenno/quicklisp/dists/quicklisp/software/osicat-20110619-git/posix/basic-unixint
/home/pdenno/.cache/common-lisp/lw-6.0.1-linux-x86/home/pdenno/quicklisp/dists/quicklisp/software/osicat-20110619-git/posix/basic-unixint.c

External process exited with code 1.
Command was: "/usr/bin/cc" "-m32"
"-I/home/pdenno/quicklisp/dists/quicklisp/software/..." "-fPIC" "-o"
"/home/pdenno/.cache/common-lisp/lw-6.0.1-linux-x86..."
"/home/pdenno/.cache/common-lisp/lw-6.0.1-linux-x86..."
Output was:
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.3/libgcc.a when
searching for -lgcc
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld:
cannot find -lgcc
collect2: ld returned 1 exit status

I thought the -m32 a bit suspicious. Perhaps this is a cffi problem? I get
CL-USER&amp;gt;  cffi-grovel::*cpu-word-size-flags*
("-m32")

... which seems odd.

Osicat, and everything else compiles fine on sbcl.

Best regards,
  Peter
_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs&lt;/pre&gt;</description>
    <dc:creator>Peter Denno</dc:creator>
    <dc:date>2011-11-26T22:49:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/55">
    <title>open-temporary-file</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/55</link>
    <description>&lt;pre&gt;Hello,

the function `open-temporary-file` currently returns a stream and
nothing else. Consequently, `with-temporary-file` only exposes a
stream to its body. From my understanding it is (intentionally,
because streams are an abstraction) not possible to tell what the name
of the corresponding temporary file is just by that.

Could open-temporary-file be made to return the name of that file as
well?

I'd like to be able to write code like the following

(osicat:with-temporary-file (stream filename)
  (format stream "some content")
  (= 0 (sb-ext:process-exit-code (sb-ext:run-program "./test.sh" (list filename)))))

In other words, I'd like to pass strings in the form of (temporary)
files to a script/program that reads from the file whose name it is
passed and use `with-temporary-file` for that. Is that reasonable?


Best regards,

Elias Pipping


_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Elias Pipping</dc:creator>
    <dc:date>2011-09-19T16:40:01</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/45">
    <title>osicat dotted-namestrings and absolute-pathname interaction around directory iterators</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/45</link>
    <description>&lt;pre&gt;I initially neglected to send this register an account w/ osicat-devel
and mailed the following exchange to Nikodemus directly
with the subject line: "osicat:list-directory vs. cl-fad:list-directory"

No doubt Nikodemus has plenty on his plate right now as it is and
needn't be solely responsible for fielding this verobisty :)

I should have taken the time to register an osicat-devel account.
Having done so I am now forwarding a transcript of my previous exchange.

--------------
On 12 August 2011 19:46, MON KEY wrote:
I noticed today that on SBCL these return differently:

 (cl-fad:list-directory ".")  (osicat:list-directory ".")
 (cl-fad:list-directory "..") (osicat:list-directory "..")

Assuming this is a bug, then i'm pretty sure its origin is around the
reliance on osicat:with-directory-iterator.

osicat:call-with-directory-iterator binds *d-p-d* to the value of the
dir var before setting cwd in the protected form of its
unwind-protect.

Further up in osicat:call-with-directory-iterator there is a merge
with *d-p-d* via:

 (osicat:absolute-pathname &amp;lt;PATHSPEC&amp;gt;)

When the PATHSPEC arg to osicat:list-directory is a dotted
namestring e.g. "."  or ".."  the merge with *d-p-d* in
osicat:call-with-directory-iterator will yield the equivalent of:

 (merge-pathnames "." *default-pathname-defaults*)

such that for the duration of each #'one-iter *d-p-d* gets dynamically
funky bound.

--------------

On Fri, Aug 12, 2011 at 1:07 PM, Nikodemus Siivola wrote:

Well, Osicat predates CL-FAD by a year or so, so not really.

A quick look at results from Osicat looks like just what I would
expect -- what exactly is the difference you think is a bug?

Possibly you're looking for :bare-pathnames t?

---------------

Would you not agree that they are curiosly similar?


No, I didn't find :bare-pathnames t necessarily applicable w/r/t
dotted-namestrings, and neither of the respcective below pairs do what
I would expect:

 (osicat:list-directory ".")
 (osicat:list-directory "."  :bare-pathnames t)

 (osicat:list-directory "..")
 (osicat:list-directory ".." :bare-pathnames t)

Note however, that these forms do retrun what i would expect:

 (osicat:list-directory "./")
 (osicat:list-directory "." :bare-pathnames t)

 (osicat:list-directory "../")
 (osicat:list-directory "../" :bare-pathnames t)

When a namestring is given as a dotted-namestring and a trailing #\/
(solidus) is _not_ present, I would expect Osicat to resolve
dotted-namestrings their cl:truename before executing the inspection
PATHSPEC in the iterations.

When a namestring is given as a dotted-namestring and a trailing #\/
(solidus) _is_ present I would expect Osicat to _not_ resolve the
dotted-namestrings.


Following evaulated from SBCL "1.0.47.1":

*default-pathname-defaults*
;=&amp;gt; #P"/home/me/long-path/here/subdir/sub-subdir/"

(cl:pathname-type #P".")
;=&amp;gt; NIL

(cl:pathname-name #P".")
;=&amp;gt; "."

(cl:pathname-name "..")
;=&amp;gt; "."

(cl:pathname-name "..")
;=&amp;gt; "."

(cl:pathname-name "../")
=&amp;gt; NIL

(cl:pathname-name "./")
=&amp;gt; NIL

(cl:pathname-type ".")
;=&amp;gt; NIL

(cl:pathname-type "..")
;=&amp;gt; ""

(cl:pathname-type "./")
;=&amp;gt; NIL

(cl:pathname-type "../")
;=&amp;gt; NIL

(cl:pathname-directory ".")
;=&amp;gt; NIL

(cl:pathname-directory "..")
;=&amp;gt; NIL

(pathname-directory "./")
;=&amp;gt; (:RELATIVE ".")

(pathname-directory "../")
;=&amp;gt; (:RELATIVE :UP)

(cl:truename ".")
;=&amp;gt; #P"/home/me/long-path/here/subdir/sub-subdir/"

(cl:truename "..")
;=&amp;gt; #p"/home/sp/hg-repos/cl-repo-hg/cl-mon-code/"

(cl:truename "./")
;=&amp;gt; #P"/home/me/long-path/here/subdir/sub-subdir/"

(cl:truename "../")
;=&amp;gt; #P"/home/me/long-path/here/subdir/"

(cl:probe-file ".")
;=&amp;gt; #P"/home/me/long-path/here/subdir/sub-subdir/"

(cl:probe-file "..")
;=&amp;gt; #P"/home/me/long-path/here/subdir/"

(directory ".")
;=&amp;gt; (#P"/home/me/long-path/here/subdir/sub-subdir/")

(directory "..")
;=&amp;gt; (#P"/home/me/long-path/here/subdir/")

(osicat:absolute-pathname ".")
;=&amp;gt; #P"/home/me/long-path/here/subdir/sub-subdir/."

(osicat:absolute-pathname "..")
;=&amp;gt; #P"/home/me/long-path/here/subdir/sub-subdir/.."

(osicat:file-kind ".")
;=&amp;gt; :DIRECTORY

(osicat:file-kind "..")
;=&amp;gt; :DIRECTORY

(osicat:file-kind (osicat:absolute-pathname ".."))
;=&amp;gt; :DIRECTORY

(osicat:file-kind (osicat:absolute-pathname "."))
;=&amp;gt; :DIRECTORY

(osicat:directory-pathname-p ".")
;=&amp;gt; NIL

(osicat:directory-pathname-p "..")
;=&amp;gt; NIL

(osicat:pathname-as-directory ".")
;=&amp;gt; #P"./"

(osicat:pathname-as-directory "..")
;=&amp;gt; #P"../"

(osicat:pathname-directory-pathname ".")
;=&amp;gt; #P""

(osicat:pathname-directory-pathname "..")
;=&amp;gt; #P""

Disregarding the following assertion from the README of Quicklisp's
dist of Osicat as to the extent of its Posixness:

,----
|
| Osicat is a lightweight operating system interface for Common Lisp
| on Unix-platforms. It is not a POSIX-style API, but rather a simple
| lispy accompaniment to the standard ANSI facilities.
|
`---- :SOURE osicat-20110619-git/README

It may be worth considering osicats behaviour w/r/t following from
POSIX.1-2008 apropos dotted namestrings:

,----
|
| 4.12 Pathname Resolution
|  {...}
|
| The special filename dot shall refer to the directory specified by
| its predecessor. The special filename dot-dot shall refer to the
| parent directory of its predecessor directory. As a special case, in
| the root directory, dot-dot may refer to the root directory itself.
|
| The Open Group Base Specifications Issue 7 IEEE Std 1003.1-2008
|
`---- :SOURCE (URL `http://pubs.opengroup.org/onlinepubs/9699919799/')

Following may also be applicable:
 (URL `http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#dot')

As mentioned on #lisp, I'm not interested in advocating that Osicat
be changed if it isn't broken.

The reliable portablility offered by Osicat underscores my interest in
it and I am currently in the process of converting the CL-FAD and SBCL
specific routines use in my code to use Osicat instead :) As such, my
concern/curiousity is to learn the rationale for its implementation so
as to avoid unnecessary future surprises.

AFAICT Osicat absolute-pathname treats the dotted namestring as
pathname-name whereas these:
 (osicat:file-kind "..")
 (osicat:file-kind ".")
consider them to be pathname-directory.

So long as Osicat allows pathspec args to take occur as a namestring
(as opposed to a #P"." or #P"..") then there remains a certain
ambiguity as to what type of pathname component the user intended the
dotted-namestring to resolve to.

To the extent with which the following behave similiarly:
 (osicat:list-directory ".")  shell&amp;gt; ls .
 (osicat:list-directory ".")  shell&amp;gt; ls ..

Osicats dotted-namestring seems sane.

However, barring `scandir` `readdir` where there isn't really a POSIX
equivalent to osicat:mapdir, osicat:walk-directory,
osicat:with-directory-iterator I would advocate that Osicat behave as
SBLC does and resolve the dotted-namestring to its cl:truename.

--
/s_P\

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>MON KEY</dc:creator>
    <dc:date>2011-08-12T19:36:23</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/44">
    <title>Patch for getgrnam / getgrgid members</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/44</link>
    <description>&lt;pre&gt;I've created a patch for the missing gr_mem field of cstruct group that
fetches the group members properly as a list of strings. Who can I send
the patch or where can I get git push rights, alternatively?

Alex

&lt;/pre&gt;</description>
    <dc:creator>Alexander Kahl</dc:creator>
    <dc:date>2011-07-06T08:42:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/42">
    <title>Using github</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/42</link>
    <description>&lt;pre&gt;Hello,

I'm moving a bunch of repositories to github, to make projects more
visible, keep track of forks, etc. Unless there are any objections, I
can put osicat there as well as an organization and add current
committers as owners.

Cheers,

&lt;/pre&gt;</description>
    <dc:creator>Luís Oliveira</dc:creator>
    <dc:date>2011-05-28T20:03:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/40">
    <title>new old new repository</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/40</link>
    <description>&lt;pre&gt;For some reason the repository had grown a

  bare = false

which broke pushing. Before I managed to figure out what was wrong,
I ended up replacing the whole repo with a new clone.

Should be OK now.

Cheers,

 -- nikodemus

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Nikodemus Siivola</dc:creator>
    <dc:date>2011-05-28T09:17:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/39">
    <title>Adding WITH-TEMPORARY-DIRECTORY</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/39</link>
    <description>&lt;pre&gt;Hi,

Attached is a patch for a WITH-TEMPORARY-DIRECTORY macro.

(defmacro with-temporary-directory ((directory &amp;amp;key (pathspec *temporary-directory*)) 
                                    &amp;amp;body body)
  "Within the lexical scope of the body, DIRECTORY is bound to a newly
created temporary directory. When BODY exits, the created
directory (and all its containing files) are deleted before the value
of the last form in BODY is returned.

The value of PATHSPEC determines the location and prefix of the
temporary directory. The PATHNAME-DIRECTORY component of PATHSPEC
determines the location in which the temporary directory is to be
created. A non null PATHNAME-NAME of PATHSPEC will be used as a
prefix of the temporary directory.
"
...)

Thanks
Mark

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs&lt;/pre&gt;</description>
    <dc:creator>Mark Cox</dc:creator>
    <dc:date>2011-01-19T08:51:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/38">
    <title>patch: no-unlink parameter for temporary file creation</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/38</link>
    <description>&lt;pre&gt;In osicat's fd-streams.lisp, there is a function, make-fd-stream.  The
sbcl version ignores the pathname parameter, but I'm not sure why.  If
you set the pathname parameter in the stream, you can then recover the
pathname from the stream later on.  And if you don't unlink tmp files
immediately after creation, you can do stuff like this:

(let* ((stream (open-temporary-file :no-unlink t))
       (fname (namestring (pathname stream))))
  (write-data-to-temp-file stream)
  (close stream)
  (do-shell-command-on-temp-file fname)
  (nix:unlink fname))

Sure, that's not the prettiest thing you'll ever do, but it works pretty
well when you need it.  If you want osicat to support that use case, I
offer a couple small patches that don't ignore pathname in
make-fd-stream on sbcl and that allow specifying (:no-unlink t) when
opening temporary files.

Thanks much.

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs&lt;/pre&gt;</description>
    <dc:creator>James Vasile</dc:creator>
    <dc:date>2010-12-18T04:56:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/35">
    <title>osicat-posix additions</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/35</link>
    <description>&lt;pre&gt;I pushed a few additions used by qthemlock to the Osicat master --
mostly termios related.

Even if they qthemlock should move away from Osicat, they still belong
appropriately to NIX.

Cheers,

 -- Nikodemus

_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs

&lt;/pre&gt;</description>
    <dc:creator>Nikodemus Siivola</dc:creator>
    <dc:date>2009-12-22T18:11:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/34">
    <title>issue: mmap returns a pointer</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/34</link>
    <description>&lt;pre&gt;_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs&lt;/pre&gt;</description>
    <dc:creator>madnificent&lt; at &gt;gmail.com</dc:creator>
    <dc:date>2009-11-11T11:56:49</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/33">
    <title>ECL Build Problems</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/33</link>
    <description>&lt;pre&gt;_______________________________________________
pg-cvs site list
pg-cvs&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/pg-cvs&lt;/pre&gt;</description>
    <dc:creator>Brit Butler</dc:creator>
    <dc:date>2009-11-03T21:04:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.osicat.devel/30">
    <title>Bad interaction with SB-EXT:SAVE-LISP-AND-DIE</title>
    <link>http://comments.gmane.org/gmane.lisp.osicat.devel/30</link>
    <description>&lt;pre&gt;
When I create a custom core the location of libosicat.so is
hard-coded in the binary.

Osicat should instruct CFFI/SB-ALIEN to load this library
with :DONT-SAVE T to prevent saving a fixed path.

  Leslie

&lt;/pre&gt;</description>
    <dc:creator>Leslie P. Polzer</dc:creator>
    <dc:date>2009-08-23T12:29:30</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.lisp.osicat.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.lisp.osicat.devel</link>
  </textinput>
</rdf:RDF>

