[Re-added bug-gnulib in CC.] Davide Angelocola wrote: > On Friday 01 September 2006 15:01, you wrote: > > About the function names: 'chug' and 'chomp' are not self-documenting > > function names either. I'd propose trim_trailing and trim_leading. > > (The Lisp name string-left-trim and string-right-trim come from a time > > when people did not think about bidi.) > done > > > About mbiter.h: If you can not understand the mbiter.h functions, then > > can you please point out what can be improved about its documentation? > > I'd like to improve the comments in mbiter.h then. > I need a macro/function that instead of advand go backward. The > documentation is good but I don't figure out to resolve this issue. > (see the comments in the code) > > Basically I've tried to re-inizialize the multi byte iterator but it doesn't > works. Can you fix it? > > > Using strdup is ok, but you need to check that its return value is not > > NULL. We often use xstrdup instead, which incorporates this extra check. > done > > > Also, trim2 does IMO not need to check against a NULL argument. Basic > > string functions such as strlen and strcmp expect non-NULL arguments; > > why should 'trim' then allow a NULL argument? > done > > > About the copyright header: Please use as starting year the year when > > you wrote the first line of code still present in the current code. > > You didn't start it in 1996, did you? - The copyright header is otherwise > > ok. At some point, you will have to file copyright assignment papers for > > your contributions to gnulib, giving the copyright ownership to the FSF. > done > > -- Davide Angelocola
Thanks; it looks already better. In multibyte strings you cannot "go backwards". You have to write the algorithm in a way that progresses from the first to the last multibyte character. (*) In this case, you can do so by moving from first to last, memorizing the position of the last non-whitespace character. More precisely, a pointer pointing after this character. When you have reached the end of the string, you put a '\0' where the memoized pointer points to, and are done. (*) If you have an algorithm which really needs to "go backwards", you need to convert the entire string to a wide-character string, process the wide-character string, and then convert back to multibyte. Bruno
