From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kaushal Modi Subject: Best way to check if a subtree with a property exists? Date: Fri, 01 Dec 2017 14:00:43 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="001a11c1867a014775055f47cc92" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35413) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eKngr-0001ev-0Z for emacs-orgmode@gnu.org; Fri, 01 Dec 2017 10:58:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eKng9-0003JN-Jl for emacs-orgmode@gnu.org; Fri, 01 Dec 2017 10:57:24 -0500 Received: from mail-yb0-x22e.google.com ([2607:f8b0:4002:c09::22e]:41626) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eKng9-0003IN-Df for emacs-orgmode@gnu.org; Fri, 01 Dec 2017 10:56:41 -0500 Received: by mail-yb0-x22e.google.com with SMTP id s46so4162875ybi.8 for ; Fri, 01 Dec 2017 07:56:41 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org --001a11c1867a014775055f47cc92 Content-Type: text/plain; charset="UTF-8" Hello, I'd like to check if the current Org file has at least one subtree with a specific property (EXPORT_FILE_NAME in my case). What's the most efficient way to do that? Below works.. but I can see that it's not efficient.. it maps through the whole Org file: (let ((total-valid-subtrees (let ((valid-subtrees (org-map-entries (lambda () t) ;Return value does not matter here ;; Only map through subtrees where ;; EXPORT_FILE_NAME property is not ;; empty. "EXPORT_FILE_NAME<>\"\""))) (safe-length valid-subtrees)))) (if (= 0 total-valid-subtrees) (message "invalid") (message "valid"))) So, - How can I quit out of org-map-entries as soon as the first matching entry is found? - What's a better way to do the same? Thanks. -- Kaushal Modi --001a11c1867a014775055f47cc92 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+PGRpdj48ZGl2PjxkaXY+SGVsbG8sPGJyPjxi cj48L2Rpdj5JJiMzOTtkIGxpa2UgdG8gY2hlY2sgaWYgdGhlIGN1cnJlbnQgT3JnIGZpbGUgaGFz IGF0IGxlYXN0IG9uZSBzdWJ0cmVlIHdpdGggYSBzcGVjaWZpYyBwcm9wZXJ0eSAoRVhQT1JUX0ZJ TEVfTkFNRSBpbiBteSBjYXNlKS48YnI+PGJyPjwvZGl2PldoYXQmIzM5O3MgdGhlIG1vc3QgZWZm aWNpZW50IHdheSB0byBkbyB0aGF0Pzxicj48YnI+PC9kaXY+QmVsb3cgd29ya3MuLiBidXQgSSBj YW4gc2VlIHRoYXQgaXQmIzM5O3Mgbm90IGVmZmljaWVudC4uIGl0IG1hcHMgdGhyb3VnaCB0aGUg d2hvbGUgT3JnIGZpbGU6PGJyPjxicj4obGV0ICgodG90YWwtdmFsaWQtc3VidHJlZXM8YnI+wqDC oMKgwqDCoMKgIChsZXQgKCh2YWxpZC1zdWJ0cmVlcyAob3JnLW1hcC1lbnRyaWVzPGJyPsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxh bWJkYSAoKTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB0KSA7UmV0dXJuIHZhbHVlIGRvZXMgbm90IG1hdHRlciBoZXJlPGJy PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgOzsgT25seSBtYXAgdGhyb3VnaCBzdWJ0cmVlcyB3aGVyZTxicj7CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDs7IEVYUE9SVF9GSUxF X05BTUUgcHJvcGVydHkgaXMgbm90PGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgZW1wdHkuPGJyPsKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnF1b3Q7RVhQT1JUX0ZJ TEVfTkFNRSZsdDsmZ3Q7XCZxdW90O1wmcXVvdDsmcXVvdDspKSk8YnI+wqDCoMKgwqDCoMKgwqDC oCAoc2FmZS1sZW5ndGggdmFsaWQtc3VidHJlZXMpKSkpPGJyPsKgIChpZiAoPSAwIHRvdGFsLXZh bGlkLXN1YnRyZWVzKTxicj7CoMKgwqDCoMKgIChtZXNzYWdlICZxdW90O2ludmFsaWQmcXVvdDsp PGJyPsKgwqDCoCAobWVzc2FnZSAmcXVvdDt2YWxpZCZxdW90OykpKTxicj48YnI+PC9kaXY+U28s PGJyPjwvZGl2PjxkaXY+PGRpdj48YnI+PC9kaXY+LSBIb3cgY2FuIEkgcXVpdCBvdXQgb2Ygb3Jn LW1hcC1lbnRyaWVzIGFzIHNvb24gYXMgdGhlIGZpcnN0IG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5k Pw0KDQo8L2Rpdj4tIFdoYXQmIzM5O3MgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoZSBzYW1lPzwvZGl2 PjxkaXY+PGJyPjwvZGl2PjxkaXY+VGhhbmtzLjxicj48L2Rpdj48L2Rpdj48ZGl2IGRpcj0ibHRy Ij4tLSA8YnI+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfc2lnbmF0dXJlIiBkYXRhLXNtYXJ0bWFp bD0iZ21haWxfc2lnbmF0dXJlIj48cCBkaXI9Imx0ciI+S2F1c2hhbCBNb2RpPC9wPg0KPC9kaXY+ DQo= --001a11c1867a014775055f47cc92--