From 552badf29f3aa5e9b76d02716f93f37b94ba8353 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 23 Feb 2008 21:13:05 +0000 Subject: * debug.c (ruby_set_debug_option): separated ruby_each_words(). * util.c (ruby_each_words): extracted from ruby_set_debug_option(). * ruby.c (proc_options): generalized enable/disable options. * ruby.c (ruby_init_gems): take enabled flag. [ruby-core:14840] * ruby.c (process_options): added --disable-rubyopt flag. * include/ruby/util.h (ruby_each_words): prototype. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- util.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'util.c') diff --git a/util.c b/util.c index 136ff1b213..fc8874c942 100644 --- a/util.c +++ b/util.c @@ -3936,6 +3936,24 @@ ret1: *rve = s; return s0; } + +void +ruby_each_words(const char *str, void (*func)(const char*, int, void*), void *arg) +{ + const char *end; + int len; + + if (!str) return; + for (; *str; str = end) { + while (ISSPACE(*str) || *str == ',') str++; + if (!*str) break; + end = str; + while (*end && !ISSPACE(*end) && *end != ',') end++; + len = end - str; + (*func)(str, len, arg); + } +} + #ifdef __cplusplus } #endif -- cgit v1.2.3