Return-Path: Delivered-To: apmail-apr-dev-archive@www.apache.org Received: (qmail 64821 invoked from network); 17 May 2007 13:47:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 May 2007 13:47:34 -0000 Received: (qmail 47958 invoked by uid 500); 17 May 2007 13:47:39 -0000 Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 47924 invoked by uid 500); 17 May 2007 13:47:39 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Id: Delivered-To: mailing list dev@apr.apache.org Delivered-To: moderator for dev@apr.apache.org Received: (qmail 29977 invoked by uid 99); 17 May 2007 00:18:37 -0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of gringocroco@gmail.com designates 64.233.166.177 as permitted sender) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:reply-to:sender:to:subject:mime-version:content-type:x-google-sender-auth; b=dEIvcfnMiSy6kJu7woM2mMfDDuK0rzNoc7L5Ypm7MB9QM8j/QU8xfwu7goKfXP5SLy5ga1M47dbX+WVAPsBUQZh6qQSAoFAWBNJUI8xvRQVhwmVBkpCfq2u1Betuk8+HtzLgGsM4QDeexCAzKM+s726HAO27SqT4cbROCXr8qjs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:reply-to:sender:to:subject:mime-version:content-type:x-google-sender-auth; b=jdcitzs2gtsHeD99TZui+c4Bo38l7d3ktLJshebK/d6veinMaxmfHo3EkzdAsK5SbndhiDgrDe1O6fvnAZKJIBWPQBlp05N9VEd1gOBdczyfIH63MRwKI4HYFY0SULvzOEGAuvpY7p1WKq1aX3GyAuMstVHfg/i7hj3+I6J9dMk= Message-ID: <4d45da050705161718l54f7b079h83ade8a3cc19751c@mail.gmail.com> Date: Thu, 17 May 2007 03:18:01 +0300 From: "Lucian Adrian Grijincu" Reply-To: lucian.grijincu@gmail.com Sender: gringocroco@gmail.com To: dev@apr.apache.org Subject: apr_dir_remove_recursive MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_31116_22453203.1179361081477" X-Google-Sender-Auth: b854e032669666b1 X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_31116_22453203.1179361081477 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline As posted here: http://www.mail-archive.com/dev@apr.apache.org/msg17650.html I've implemented an iterative apr_dir_remove_recursive It's now attached as fileutil.c This is based only on APR functions so a single entry of this implementation should do it for all systems. I'm not sure where it's best place is inside the structure of APR, so any suggestions are welcome :) -- Lucian Adrian Grijincu ------=_Part_31116_22453203.1179361081477 Content-Type: text/x-csrc; name=fileutil.c; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f1sh2gg8 Content-Disposition: attachment; filename="fileutil.c" I2luY2x1ZGUgImFwcl9nZW5lcmFsLmgiCiNpbmNsdWRlICJhcHIuaCIKI2luY2x1ZGUgImFwcl9m aWxlX2lvLmgiCiNpbmNsdWRlICJhcHJfZXJybm8uaCIKI2luY2x1ZGUgImFwcl9zdHJpbmdzLmgi CgojZGVmaW5lIEFQUl9ESVJfUkVNT1ZFX1JFQ1VSU0lWRUxZX0FSUlNJWkUgKDYpICAvKndoYXQg d291bGQgYmUgYSBwcm9wcGVyIHZhbHVlPyAqLwojZGVmaW5lIFBBVEhfU0VQQVJBVE9SICcvJyAg ICAgIC8qaXMgb25lIGRlZmluZWQgaW4gYSBoZWFkZXIgc29tZXdoZXJlIGVsc2UgPyAqLwoKYXBy X3N0YXR1c190CmFwcl9kaXJfcmVtb3ZlX3JlY3Vyc2l2ZShjb25zdCBjaGFyICpwYXJhbV9wYXRo LCBhcHJfcG9vbF90ICogcG9vbCkKewogICAgYXByX3N0YXR1c190IHN0YXR1cywgcmV0Y29kZSwg ZGlyc3RhdHVzOwogICAgYXByX2Rpcl90ICp0aGlzX2RpcjsKICAgIGFwcl9maW5mb190IHRoaXNf ZW50cnk7CiAgICBhcHJfcG9vbF90ICphcnJheV9wb29sLCAqbG9vcF9wb29sOwogICAgYXByX2Fy cmF5X2hlYWRlcl90ICphcnI7CiAgICBhcHJfaW50MzJfdCBmbGFncyA9IEFQUl9GSU5GT19UWVBF IHwgQVBSX0ZJTkZPX05BTUU7CiAgICBjaGFyICpkaXJfcGF0aCwgKmZpbGVfcGF0aDsKICAgIGlu dCBkaXJfaXNfZW1wdHk7CgogICAgcmV0Y29kZSA9IEFQUl9TVUNDRVNTOwogICAgc3RhdHVzID0g YXByX3Bvb2xfY3JlYXRlKCZhcnJheV9wb29sLCBwb29sKTsKICAgIGlmIChzdGF0dXMgIT0gQVBS X1NVQ0NFU1MpIHsKICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgfQogICAgc3RhdHVzID0gYXBy X3Bvb2xfY3JlYXRlKCZsb29wX3Bvb2wsIHBvb2wpOwogICAgaWYgKHN0YXR1cyAhPSBBUFJfU1VD Q0VTUykgewogICAgICAgIGFwcl9wb29sX2Rlc3Ryb3koYXJyYXlfcG9vbCk7CiAgICAgICAgcmV0 dXJuIHN0YXR1czsKICAgIH0KCgogICAgYXJyID0gYXByX2FycmF5X21ha2UoYXJyYXlfcG9vbCwg QVBSX0RJUl9SRU1PVkVfUkVDVVJTSVZFTFlfQVJSU0laRSwKICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemVvZihjb25zdCBjaGFyICopKTsKICAgIGlmIChhcnIgPT0gTlVMTCkgewogICAgICAg IGFwcl9wb29sX2Rlc3Ryb3koYXJyYXlfcG9vbCk7CiAgICAgICAgYXByX3Bvb2xfZGVzdHJveShs b29wX3Bvb2wpOwogICAgICAgIHJldHVybiBBUFJfRU5PTUVNOwogICAgfQogICAgKihjb25zdCBj aGFyICoqKSBhcHJfYXJyYXlfcHVzaChhcnIpID0gcGFyYW1fcGF0aDsKCgoKICAgIHdoaWxlICgh YXByX2lzX2VtcHR5X2FycmF5KGFycikpIHsKICAgICAgICBhcHJfcG9vbF9jbGVhcihsb29wX3Bv b2wpOwogICAgICAgIGRpcl9wYXRoID0gYXByX2FycmF5X3BzdHJjYXQobG9vcF9wb29sLCBhcnIs IFBBVEhfU0VQQVJBVE9SKTsKICAgICAgICBpZiAoZGlyX3BhdGggPT0gTlVMTCkgewogICAgICAg ICAgICByZXRjb2RlID0gQVBSX0VOT01FTTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoK ICAgICAgICBkaXJfaXNfZW1wdHkgPSAxOwoKICAgICAgICBkaXJzdGF0dXMgPSBhcHJfZGlyX29w ZW4oJnRoaXNfZGlyLCBkaXJfcGF0aCwgbG9vcF9wb29sKTsKICAgICAgICBpZiAoZGlyc3RhdHVz ICE9IEFQUl9TVUNDRVNTKSB7CiAgICAgICAgICAgIHJldGNvZGUgPSBkaXJzdGF0dXM7CiAgICAg ICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBmb3IgKGRpcnN0YXR1cyA9IGFwcl9kaXJf cmVhZCgmdGhpc19lbnRyeSwgZmxhZ3MsIHRoaXNfZGlyKTsKICAgICAgICAgICAgICAgICBkaXJz dGF0dXMgPT0gQVBSX1NVQ0NFU1M7CiAgICAgICAgICAgICAgICAgZGlyc3RhdHVzID0gYXByX2Rp cl9yZWFkKCZ0aGlzX2VudHJ5LCBmbGFncywgdGhpc19kaXIpKSB7CgogICAgICAgICAgICAgICAg aWYgKHRoaXNfZW50cnkuZmlsZXR5cGUgPT0gQVBSX0RJUikgewogICAgICAgICAgICAgICAgICAg IGlmICh0aGlzX2VudHJ5Lm5hbWVbMF0gPT0gJy4nCiAgICAgICAgICAgICAgICAgICAgICAgICYm ICh0aGlzX2VudHJ5Lm5hbWVbMV0gPT0gJ1wwJwogICAgICAgICAgICAgICAgICAgICAgICAgICAg fHwgKHRoaXNfZW50cnkubmFtZVsxXSA9PSAnLicKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmJiB0aGlzX2VudHJ5Lm5hbWVbMl0gPT0gJ1wwJykpKQogICAgICAgICAgICAgICAgICAg ICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgKihjb25zdCBjaGFyICoqKSBhcHJf YXJyYXlfcHVzaChhcnIpID0KICAgICAgICAgICAgICAgICAgICAgICAgYXByX3BzdHJkdXAoYXJy YXlfcG9vbCwgdGhpc19lbnRyeS5uYW1lKTsKICAgICAgICAgICAgICAgICAgICBkaXJfaXNfZW1w dHkgPSAwOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoID0KICAgICAg ICAgICAgICAgICAgICAgICAgYXByX3BzdHJjYXQobG9vcF9wb29sLCBkaXJfcGF0aCwgUEFUSF9T RVBBUkFUT1IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNfZW50cnku bmFtZSwgTlVMTCk7CiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gYXByX2ZpbGVfcmVtb3Zl KGZpbGVfcGF0aCwgbG9vcF9wb29sKTsKICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXR1cyAh PSBBUFJfU1VDQ0VTUykgJiYgKHJldGNvZGUgIT0gQVBSX1NVQ0NFU1MpKSB7CiAgICAgICAgICAg ICAgICAgICAgICAgIHJldGNvZGUgPSBzdGF0dXM7CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIShBUFJfU1RBVFVT X0lTX0VOT0VOVChkaXJzdGF0dXMpKQogICAgICAgICAgICAgICAgJiYgKHJldGNvZGUgIT0gQVBS X1NVQ0NFU1MpKSB7CiAgICAgICAgICAgICAgICByZXRjb2RlID0gZGlyc3RhdHVzOwogICAgICAg ICAgICB9CiAgICAgICAgICAgIGRpcnN0YXR1cyA9IGFwcl9kaXJfY2xvc2UodGhpc19kaXIpOwog ICAgICAgICAgICBpZiAoKGRpcnN0YXR1cyAhPSBBUFJfU1VDQ0VTUykgJiYgKHJldGNvZGUgIT0g QVBSX1NVQ0NFU1MpKSB7CiAgICAgICAgICAgICAgICByZXRjb2RlID0gZGlyc3RhdHVzOwogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoZGlyX2lzX2VtcHR5KSB7CiAgICAgICAg ICAgIGRpcnN0YXR1cyA9IGFwcl9kaXJfcmVtb3ZlKGRpcl9wYXRoLCBsb29wX3Bvb2wpOwogICAg ICAgICAgICBpZiAoKGRpcnN0YXR1cyAhPSBBUFJfU1VDQ0VTUykgJiYgKHJldGNvZGUgIT0gQVBS X1NVQ0NFU1MpKSB7CiAgICAgICAgICAgICAgICByZXRjb2RlID0gZGlyc3RhdHVzOwogICAgICAg ICAgICB9CiAgICAgICAgICAgIGFwcl9hcnJheV9wb3AoYXJyKTsKICAgICAgICB9CiAgICB9Cgog ICAgYXByX3Bvb2xfZGVzdHJveShhcnJheV9wb29sKTsKICAgIGFwcl9wb29sX2Rlc3Ryb3kobG9v cF9wb29sKTsKICAgIHJldHVybiByZXRjb2RlOwoKCn0K ------=_Part_31116_22453203.1179361081477 Content-Type: text/x-csrc; name=main.c; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f1sh2jti Content-Disposition: attachment; filename="main.c" I2luY2x1ZGUgPGFwcl9maWxlX2lvLmg+CiNpbmNsdWRlIDxhcHJfZmlsZV9pbmZvLmg+CiNpbmNs dWRlIDxhcHJfcG9vbHMuaD4KI2luY2x1ZGUgPGVycm5vLmg+CmFwcl9zdGF0dXNfdAphcHJfZGly X3JlbW92ZV9yZWN1cnNpdmUoY29uc3QgY2hhciAqcGFyYW1fcGF0aCwgYXByX3Bvb2xfdCAqIHBv b2wpOwoKaW50IG1haW4oaW50IGFyZ24sIGNoYXIgKiBhcmd2W10pCnsKCWNvbnN0IGNoYXIgKnBh dGggPSAiL3RtcC9kaXIxL2RpcjIvZGlyMyI7CglhcHJfc3RhdHVzX3QgcmMgPSAwOwoJYXByX3Bv b2xfdCAqIHBvb2w7CglhcHJfZmluZm9fdCBmaW5mbzsKCgoJYXByX2luaXRpYWxpemUoKTsKCWF0 ZXhpdChhcHJfdGVybWluYXRlKTsKCXJjIHw9IGFwcl9wb29sX2NyZWF0ZSgmcG9vbCwgTlVMTCk7 CglyYyB8PSBhcHJfZGlyX21ha2VfcmVjdXJzaXZlIChwYXRoLCBBUFJfVVJFQUR8QVBSX1VXUklU RXxBUFJfVUVYRUNVVEV8QVBSX0dTRVRJRHxBUFJfR1JFQUR8QVBSX0dXUklURXxBUFJfR0VYRUNV VEV8QVBSX1dSRUFEfEFQUl9XV1JJVEV8QVBSX1dFWEVDVVRFLCBwb29sKTsKCglyYyA9IGFwcl9k aXJfcmVtb3ZlX3JlY3Vyc2l2ZSgiL3RtcC9kaXIxIiwgcG9vbCk7CglpZihyYykKCXsKCQlwcmlu dGYoImFwcl9kaXJfcmVtb3ZlX3JlY3Vyc2l2ZSBmYWlsZWRbJWRdXG4iLCByYyk7CgkJcmV0dXJu IHJjOwoJfQoKCXJjID0gYXByX3N0YXQoJmZpbmZvLCBwYXRoLCBBUFJfRklORk9fTkFNRXxBUFJf RklORk9fRElSRU5ULCBwb29sKTsKCWlmKEFQUl9FTk9FTlQgIT0gcmMpCgl7CgkJZXJybm8gPSBy YzsKCQlwZXJyb3IoIiIpOwoJCXByaW50ZigiYXByX3N0YXQgZmFpbGVkWyVkXVxuIiwgcmMpOwoJ CXJldHVybiByYzsKCX0KCXJldHVybiAwOwp9CgoKIAkgICAgCgoK ------=_Part_31116_22453203.1179361081477 Content-Type: application/octet-stream; name=Makefile Content-Transfer-Encoding: base64 X-Attachment-Id: f_f1sh2mul Content-Disposition: attachment; filename="Makefile" VEFSR0VUPXJ1bmRlbGV0ZQpPQkpTID0gZmlsZXV0aWwubyBtYWluLm8KQ0ZMQUdTID0gLUkvdXNy L2luY2x1ZGUvYXByLTEuMC8gLURfTEFSR0VGSUxFNjRfU09VUkNFCkxERkxBR1MgPSAtTC91c3Iv bGliL2xpYmFwci0xLnNvIC1sYXByLTEKCi5jLm86CglnY2MgJDwgLVdhbGwgLWcgIC1jIC1vICRA ICQoQ0ZMQUdTKQoKYWxsOiAkKE9CSlMpCglnY2MgLVdhbGwgJChPQkpTKSAtbyAkKFRBUkdFVCkg JChDRkxBR1MpICQoTERGTEFHUykKY2xlYW46CglybSAtZiAkKE9CSlMpICp+ICQoVEFSR0VUKQo= ------=_Part_31116_22453203.1179361081477--