From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: KAction@gnu.org Newsgroups: gmane.lisp.guile.devel Subject: [PATCH 12/25] Improve deriving c symbol name from scheme one Date: Mon, 18 Jul 2016 18:17:35 +0300 Message-ID: <1468855068-7029-13-git-send-email-KAction@gnu.org> References: <1468855068-7029-1-git-send-email-KAction@gnu.org> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1468855242 10600 80.91.229.3 (18 Jul 2016 15:20:42 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 18 Jul 2016 15:20:42 +0000 (UTC) Cc: Dmitry Bogatov To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Jul 18 17:20:21 2016 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bPALE-0003o0-NP for guile-devel@m.gmane.org; Mon, 18 Jul 2016 17:20:20 +0200 Original-Received: from localhost ([::1]:48266 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPALD-0007VP-Up for guile-devel@m.gmane.org; Mon, 18 Jul 2016 11:20:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37275) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPAJh-0005Ht-Ns for guile-devel@gnu.org; Mon, 18 Jul 2016 11:18:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bPAJf-0001bs-NP for guile-devel@gnu.org; Mon, 18 Jul 2016 11:18:44 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54476) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPAJf-0001bf-Kn for guile-devel@gnu.org; Mon, 18 Jul 2016 11:18:43 -0400 Original-Received: from broadband-46-188-10-23.2com.net ([46.188.10.23]:56736 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bPAJe-0004GB-OU; Mon, 18 Jul 2016 11:18:43 -0400 X-Mailer: git-send-email 2.1.4 In-Reply-To: <1468855068-7029-1-git-send-email-KAction@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:18568 Archived-At: From: Dmitry Bogatov --- module/system/foreign/declarative.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/module/system/foreign/declarative.scm b/module/system/foreign/declarative.scm index b0c31a0..62d40b8 100644 --- a/module/system/foreign/declarative.scm +++ b/module/system/foreign/declarative.scm @@ -132,9 +132,18 @@ (define (make-c-function-name symbol) (define function-name (symbol->string symbol)) + (define (replace-hyphen c) + (if (eqv? c #\-) + #\_ + c)) + (define (c-identifier-char? c) + (or (char-alphabetic? c) + (char-numeric? c) + (eqv? c #\_))) (when (string-prefix? "c-" function-name) (set! function-name (string-drop function-name 2))) - function-name) + (string-map! replace-hyphen function-name) + (string-filter c-identifier-char? function-name)) (define *validate-function-name* (make-parameter #f)) (define *validate-argument-name* (make-parameter #f)) -- I may be not subscribed. Please, keep me in carbon copy.