From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28943 invoked by alias); 8 Mar 2011 10:56:57 -0000 Received: (qmail 28923 invoked by uid 22791); 8 Mar 2011 10:56:54 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-qy0-f169.google.com (HELO mail-qy0-f169.google.com) (209.85.216.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 08 Mar 2011 10:56:47 +0000 Received: by qyk2 with SMTP id 2so2928516qyk.0 for ; Tue, 08 Mar 2011 02:56:45 -0800 (PST) MIME-Version: 1.0 Received: by 10.229.135.82 with SMTP id m18mr1312410qct.82.1299581805516; Tue, 08 Mar 2011 02:56:45 -0800 (PST) Received: by 10.229.89.197 with HTTP; Tue, 8 Mar 2011 02:56:45 -0800 (PST) Date: Tue, 08 Mar 2011 11:25:00 -0000 Message-ID: Subject: [patch libiberty include]: Add additional helper functions for directory-separator searching From: Kai Tietz To: Binutils , gdb-patches@sourceware.org, GCC Patches Content-Type: multipart/mixed; boundary=00248c6a84cadfd91f049df677d3 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-03/txt/msg00525.txt.bz2 --00248c6a84cadfd91f049df677d3 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1130 Hello, This patch introduce directory-separator search routines to libiberty. IMHO filename_cmp.c is suiteable for those functions, but if there are objections about that I can move it into a separate source-file. It helps to avoid a commonly used pattern about dir-separator searching in code, which requires #if-conditions to check if DOS paths are used and introduces additional internal variables. the pattern const char *filename = strrchr (xloc.file, '/'); #ifdef HAVE_DOS_BASED_FILE_SYSTEM const char *filename2 = strrchr (xloc.file, '\\'); if (!filename || (filename2 && filename2 > filename)) filename = filename2; can be written by this patch as const char *filename = filename_dirrchr (xloc.file); ChangeLog include/ 2011-03-08 Kai Tietz * filenames.h (filename_dirchr): New prototype. (filename_dirrchr): Likewise. ChangeLog libiberty/ 2011-03-08 Kai Tietz * filename_cmp.c (filename_dirchr): New function. (filename_dirrchr): Likewise. * functions.texi: Regenerated. Tested for x86_64-pc-linux-gnu and x86_64-w64-mingw32. Ok for apply? Regards, Kai --00248c6a84cadfd91f049df677d3 Content-Type: text/plain; charset=US-ASCII; name="libiberty_dirsep.txt" Content-Disposition: attachment; filename="libiberty_dirsep.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gl0pc6ai0 Content-length: 4592 SW5kZXg6IGdjYy9pbmNsdWRlL2ZpbGVuYW1lcy5oCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGdjYy5vcmlnL2luY2x1ZGUvZmlsZW5hbWVzLmgJMjAx MS0wMi0yOCAxOToxNjozNS4wMDAwMDAwMDAgKzAxMDAKKysrIGdjYy9pbmNs dWRlL2ZpbGVuYW1lcy5oCTIwMTEtMDMtMDggMTE6MTE6MTAuOTA5MTA5NzAw ICswMTAwCkBAIC03NSw2ICs3NSw4IEBAIGV4dGVybiBpbnQgZmlsZW5hbWVf Y21wIChjb25zdCBjaGFyICpzMSwKIAogZXh0ZXJuIGludCBmaWxlbmFtZV9u Y21wIChjb25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIsCiAJCQkgIHNp emVfdCBuKTsKK2V4dGVybiBjaGFyICpmaWxlbmFtZV9kaXJjaHIgKGNvbnN0 IGNoYXIgKnApOworZXh0ZXJuIGNoYXIgKmZpbGVuYW1lX2RpcnJjaHIgKGNv bnN0IGNoYXIgKnApOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6 IGdjYy9saWJpYmVydHkvZmlsZW5hbWVfY21wLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gZ2NjLm9yaWcvbGliaWJlcnR5L2ZpbGVuYW1lX2NtcC5j CTIwMTEtMDItMjggMTk6MTY6MzUuMDAwMDAwMDAwICswMTAwCisrKyBnY2Mv bGliaWJlcnR5L2ZpbGVuYW1lX2NtcC5jCTIwMTEtMDMtMDggMTE6NDM6MzIu Nzk3MTk4MTAwICswMTAwCkBAIC0xMjUsMyArMTI1LDcwIEBAIGZpbGVuYW1l X25jbXAgKGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGEKICAgcmV0dXJuIDA7 CiAjZW5kaWYKIH0KKworLyoKKworQGRlZnR5cGVmbiBFeHRlbnNpb24gaW50 IGZpbGVuYW1lX2RpcmNociAoY29uc3QgY2hhciAqQHZhcntwfSkKKworVGhl IHJldHVybmVkIHZhbHVlIGlzIHNpbWlsYXIgdG8gd2hhdCBAY29kZXtzdHJj aHJ9IHdvdWxkIHJldHVybiBmb3IKK3NlYXJjaGluZyBmb3IgYSBkaXJlY3Rv cnkgc2VwYXJhdG9yLgorCitUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG5vcm1h bGl6ZSBmaWxlIG5hbWUuICBIb3dldmVyLCBpdCBkb2VzIGhhbmRsZQordGhl IGZhY3QgdGhhdCBvbiBET1MtbGlrZSBmaWxlIHN5c3RlbXMsIGZvcndhcmQg YW5kIGJhY2t3YXJkIHNsYXNoZXMKK2FyZSBkaXJlY3Rvcnkgc2VwYXJhdG9y cy4KKworQGVuZCBkZWZ0eXBlZm4KKworKi8KKworY2hhciAqCitmaWxlbmFt ZV9kaXJjaHIgKGNvbnN0IGNoYXIgKnApCit7CisgIGNoYXIgKnI7CisjaWZk ZWYgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0KKyAgY2hhciAqcjI7Cisj ZW5kaWYKKyAgaWYgKCFwKQorICAgIHJldHVybiBOVUxMOworICByID0gc3Ry Y2hyIChwLCAnLycpOworI2lmZGVmIEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lT VEVNCisgIHIyID0gc3RyY2hyIChwLCAnXFwnKTsKKyAgaWYgKCFyIHx8IChy MiAmJiByMiA8IHIpKQorICAgIHIgPSByMjsKKyNlbmRpZgorICByZXR1cm4g cjsKK30KKworLyoKKworQGRlZnR5cGVmbiBFeHRlbnNpb24gaW50IGZpbGVu YW1lX2RpcnJjaHIgKGNvbnN0IGNoYXIgKkB2YXJ7cH0pCisKK1RoZSByZXR1 cm5lZCB2YWx1ZSBpcyBzaW1pbGFyIHRvIHdoYXQgQGNvZGV7c3RycmNocn0g d291bGQgcmV0dXJuIGZvcgorc2VhcmNoaW5nIGZvciBhIGRpcmVjdG9yeSBz ZXBhcmF0b3IuCisKK1RoaXMgZnVuY3Rpb24gZG9lcyBub3Qgbm9ybWFsaXpl IGZpbGUgbmFtZS4gIEhvd2V2ZXIsIGl0IGRvZXMgaGFuZGxlCit0aGUgZmFj dCB0aGF0IG9uIERPUy1saWtlIGZpbGUgc3lzdGVtcywgZm9yd2FyZCBhbmQg YmFja3dhcmQgc2xhc2hlcworYXJlIGRpcmVjdG9yeSBzZXBhcmF0b3JzLgor CitAZW5kIGRlZnR5cGVmbgorCisqLworCitjaGFyICoKK2ZpbGVuYW1lX2Rp cnJjaHIgKGNvbnN0IGNoYXIgKnApCit7CisgIGNoYXIgKnI7CisjaWZkZWYg SEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0KKyAgY2hhciAqcjI7CisjZW5k aWYKKworICBpZiAoIXApCisgICAgcmV0dXJuIE5VTEw7CisgIHIgPSBzdHJy Y2hyIChwLCAnLycpOworI2lmZGVmIEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lT VEVNCisgIHIyID0gc3RycmNociAocCwgJ1xcJyk7CisgIGlmICghciB8fCAo cjIgJiYgcjIgPiByKSkKKyAgICByID0gcjI7CisjZW5kaWYKKyAgcmV0dXJu IHI7Cit9CkluZGV4OiBnY2MvbGliaWJlcnR5L2Z1bmN0aW9ucy50ZXhpCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy5vcmlnL2xpYmliZXJ0eS9m dW5jdGlvbnMudGV4aQkyMDExLTAyLTI4IDE5OjE2OjM1LjAwMDAwMDAwMCAr MDEwMAorKysgZ2NjL2xpYmliZXJ0eS9mdW5jdGlvbnMudGV4aQkyMDExLTAz LTA4IDExOjQzOjQyLjMxNDQwNjcwMCArMDEwMApAQCAtMjk2LDYgKzI5Niwz MCBAQCBhbmQgYmFja3dhcmQgc2xhc2hlcyBhcmUgZXF1YWwuCiAKIEBlbmQg ZGVmdHlwZWZuCiAKK0BjIGZpbGVuYW1lX2NtcC5jOjEzMQorQGRlZnR5cGVm biBFeHRlbnNpb24gaW50IGZpbGVuYW1lX2RpcmNociAoY29uc3QgY2hhciAq QHZhcntwfSkKKworVGhlIHJldHVybmVkIHZhbHVlIGlzIHNpbWlsYXIgdG8g d2hhdCBAY29kZXtzdHJjaHJ9IHdvdWxkIHJldHVybiBmb3IKK3NlYXJjaGlu ZyBmb3IgYSBkaXJlY3Rvcnkgc2VwYXJhdG9yLgorCitUaGlzIGZ1bmN0aW9u IGRvZXMgbm90IG5vcm1hbGl6ZSBmaWxlIG5hbWUuICBIb3dldmVyLCBpdCBk b2VzIGhhbmRsZQordGhlIGZhY3QgdGhhdCBvbiBET1MtbGlrZSBmaWxlIHN5 c3RlbXMsIGZvcndhcmQgYW5kIGJhY2t3YXJkIHNsYXNoZXMKK2FyZSBkaXJl Y3Rvcnkgc2VwYXJhdG9ycy4KKworQGVuZCBkZWZ0eXBlZm4KKworQGMgZmls ZW5hbWVfY21wLmM6MTY0CitAZGVmdHlwZWZuIEV4dGVuc2lvbiBpbnQgZmls ZW5hbWVfZGlycmNociAoY29uc3QgY2hhciAqQHZhcntwfSkKKworVGhlIHJl dHVybmVkIHZhbHVlIGlzIHNpbWlsYXIgdG8gd2hhdCBAY29kZXtzdHJyY2hy fSB3b3VsZCByZXR1cm4gZm9yCitzZWFyY2hpbmcgZm9yIGEgZGlyZWN0b3J5 IHNlcGFyYXRvci4KKworVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBub3JtYWxp emUgZmlsZSBuYW1lLiAgSG93ZXZlciwgaXQgZG9lcyBoYW5kbGUKK3RoZSBm YWN0IHRoYXQgb24gRE9TLWxpa2UgZmlsZSBzeXN0ZW1zLCBmb3J3YXJkIGFu ZCBiYWNrd2FyZCBzbGFzaGVzCithcmUgZGlyZWN0b3J5IHNlcGFyYXRvcnMu CisKK0BlbmQgZGVmdHlwZWZuCisKIEBjIGZpbGVuYW1lX2NtcC5jOjgxCiBA ZGVmdHlwZWZuIEV4dGVuc2lvbiBpbnQgZmlsZW5hbWVfbmNtcCAoY29uc3Qg Y2hhciAqQHZhcntzMX0sIGNvbnN0IGNoYXIgKkB2YXJ7czJ9LCBzaXplX3Qg QHZhcntufSkKIAo= --00248c6a84cadfd91f049df677d3--