* Re: please explain diff bet. K&R and Linux c-mode styles
[not found] <mailman.1035590178.16479.help-gnu-emacs@gnu.org>
@ 2002-10-26 3:26 ` Matt Armstrong
2002-10-29 0:37 ` seberino
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: Matt Armstrong @ 2002-10-26 3:26 UTC (permalink / raw)
In article <mailman.1035590178.16479.help-gnu-emacs@gnu.org>,
seberino@spawar.navy.mil wrote:
> Linux kernel docs recommend K&R c-mode style...
>
> then what is "Linux c-mode style"?? How is it different?
C-h v c-style-alist
That'll show you all the styles in their gory detail.
--
matt
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: please explain diff bet. K&R and Linux c-mode styles
2002-10-26 3:26 ` please explain diff bet. K&R and Linux c-mode styles Matt Armstrong
@ 2002-10-29 0:37 ` seberino
2002-10-29 13:28 ` Kevin Dziulko
[not found] ` <mailman.1035851913.4061.help-gnu-emacs@gnu.org>
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: seberino @ 2002-10-29 0:37 UTC (permalink / raw)
Cc: help-gnu-emacs
I tried your command... there was no function or
variable called c-style-alist in Emacs. :(
CS
On Fri, Oct 25, 2002 at 09:26:16PM -0600, Matt Armstrong wrote:
> In article <mailman.1035590178.16479.help-gnu-emacs@gnu.org>,
> seberino@spawar.navy.mil wrote:
> > Linux kernel docs recommend K&R c-mode style...
> >
> > then what is "Linux c-mode style"?? How is it different?
>
> C-h v c-style-alist
>
> That'll show you all the styles in their gory detail.
>
>
>
> --
> matt
> _______________________________________________
> Help-gnu-emacs mailing list
> Help-gnu-emacs@gnu.org
> http://mail.gnu.org/mailman/listinfo/help-gnu-emacs
--
_______________________________________
Dr. Christian Seberino
SPAWAR Systems Center San Diego
Code 2363
49590 Lassing Road, Room A339
San Diego, CA 92152-6147
U.S.A.
Phone: (619) 553-7940
Fax: (619) 553-1269
Email: seberino@spawar.navy.mil
_______________________________________
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: please explain diff bet. K&R and Linux c-mode styles
[not found] ` <mailman.1035851913.4061.help-gnu-emacs@gnu.org>
@ 2002-10-29 2:33 ` Edgar Antonio Luna Díaz
0 siblings, 0 replies; 14+ messages in thread
From: Edgar Antonio Luna Díaz @ 2002-10-29 2:33 UTC (permalink / raw)
seberino@spawar.navy.mil writes:
> I tried your command... there was no function or
> variable called c-style-alist in Emacs. :(
Being in a cc-mode buffer?
--
Edgar Antonio Luna Díaz - http://www.gnulinux.org.mx
Key Fingerprint=C008 5EAC 5272 AC8C 7589 4821 8B34 6166 8733 8310
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: please explain diff bet. K&R and Linux c-mode styles
2002-10-29 0:37 ` seberino
@ 2002-10-29 13:28 ` Kevin Dziulko
2002-10-29 13:55 ` Alfred M. Szmidt
0 siblings, 1 reply; 14+ messages in thread
From: Kevin Dziulko @ 2002-10-29 13:28 UTC (permalink / raw)
I don't see a c-style-alist either. Check out
http://www.science.uva.nl/~mes/jargon/i/indentstyle.html
I think Linux style is the same as GNU style. You could
also just type in a few functions and see the fundamental
differences.
On Mon, 28 Oct 2002 seberino@spawar.navy.mil wrote:
> I tried your command... there was no function or
> variable called c-style-alist in Emacs. :(
>
> CS
>
> On Fri, Oct 25, 2002 at 09:26:16PM -0600, Matt Armstrong wrote:
> > In article <mailman.1035590178.16479.help-gnu-emacs@gnu.org>,
> > seberino@spawar.navy.mil wrote:
> > > Linux kernel docs recommend K&R c-mode style...
> > >
> > > then what is "Linux c-mode style"?? How is it different?
> >
> > C-h v c-style-alist
> >
> > That'll show you all the styles in their gory detail.
> >
> >
> >
> > --
> > matt
> > _______________________________________________
> > Help-gnu-emacs mailing list
> > Help-gnu-emacs@gnu.org
> > http://mail.gnu.org/mailman/listinfo/help-gnu-emacs
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: please explain diff bet. K&R and Linux c-mode styles
2002-10-29 13:28 ` Kevin Dziulko
@ 2002-10-29 13:55 ` Alfred M. Szmidt
0 siblings, 0 replies; 14+ messages in thread
From: Alfred M. Szmidt @ 2002-10-29 13:55 UTC (permalink / raw)
Cc: help-gnu-emacs
I think Linux style is the same as GNU style. You could
also just type in a few functions and see the fundamental
differences.
Linux style and GNU style are completely different. The coding style
that is used in Linux looks similar to K&R. The main difference
between Linux and K&R style is that Linux uses TAB characters to
indent where as K&R uses four spaces.
The GNU Coding Standard describes the GNU style
(http://www.gnu.org/pre/standards.html), and the file
Documentation/CodingStyle in the source code for Linux described the
Linux style.
if statements:
GNU style Linux style K&R style
if (foobar) if (foobar) { if (foobar) {
{ foo; foo;
foo; } }
}
functions:
GNU style Linux style K&R style
int
foobar (void) int foobar (void) int foobar (void)
{ { {
return 1; return 1; return 1;
} } }
^ permalink raw reply [flat|nested] 14+ messages in thread
* Emacs Lisp: Problem with nested condition-case and catch in byte compiled code
2002-10-26 3:26 ` please explain diff bet. K&R and Linux c-mode styles Matt Armstrong
2002-10-29 0:37 ` seberino
[not found] ` <mailman.1035851913.4061.help-gnu-emacs@gnu.org>
@ 2002-11-15 2:54 ` Greg Hill
2002-11-15 18:22 ` Greg Hill
[not found] ` <mailman.1037661783.25741.help-gnu-emacs@gnu.org>
2002-11-20 21:14 ` Lisp: Functions for multiple comparisons Greg Hill
` (3 subsequent siblings)
6 siblings, 2 replies; 14+ messages in thread
From: Greg Hill @ 2002-11-15 2:54 UTC (permalink / raw)
Cc: stan
[-- Attachment #1: Type: text/plain, Size: 2823 bytes --]
This one has me stumped.
Here is my source code:
-----------------------------------------------------------------------------
(defun cctest ()
(interactive)
(catch 'cctest
(message "before condition-case in catch, (interactive-p) = %s"
(interactive-p))
(condition-case nil
(message "inside condition-case in catch, (interactive-p) = %s"
(interactive-p))
(error nil))
(message "after condition-case in catch, (interactive-p) = %s"
(interactive-p)))
(message "before condition-case after catch, (interactive-p) = %s"
(interactive-p))
(condition-case nil
(message "inside condition-case after catch, (interactive-p) = %s"
(interactive-p))
(error nil))
(message "after condition-case after catch, (interactive-p) = %s"
(interactive-p))
(condition-case nil
(progn
(message "before catch in condition-case, (interactive-p) = %s"
(interactive-p))
(catch 'cctest
(message "inside catch in condition-case, (interactive-p) = %s"
(interactive-p)))
(message "after catch in condition-case, (interactive-p) = %s"
(interactive-p)))
(error nil)))
----------------------------------------------------------------------------
If I load the .el source file and execute cctest interactively, I get:
-------------------------------------------------------
before condition-case in catch, (interactive-p) = t
inside condition-case in catch, (interactive-p) = t
after condition-case in catch, (interactive-p) = t
before condition-case after catch, (interactive-p) = t
inside condition-case after catch, (interactive-p) = t
after condition-case after catch, (interactive-p) = t
before catch in condition-case, (interactive-p) = t
inside catch in condition-case, (interactive-p) = t
after catch in condition-case, (interactive-p) = t
-------------------------------------------------------
If I byte compile, load the .elc, and execute cctest interactively, I get:
-------------------------------------------------------
before condition-case in catch, (interactive-p) = t
inside condition-case in catch, (interactive-p) = nil
after condition-case in catch, (interactive-p) = t
before condition-case after catch, (interactive-p) = t
inside condition-case after catch, (interactive-p) = t
after condition-case after catch, (interactive-p) = t
before catch in condition-case, (interactive-p) = t
inside catch in condition-case, (interactive-p) = nil
after catch in condition-case, (interactive-p) = t
-------------------------------------------------------
There seems to be something special about a call to (interactive-p)
inside a condition-case inside a catch, or inside a catch inside a
condition-case, in byte-compiled code. But for the life of me I
can't imagine what that could be. Anybody have any ideas?
--Greg
[-- Attachment #2: Type: text/html, Size: 4947 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Lisp: Problem with nested condition-case and catch in byte compiled code
2002-11-15 2:54 ` Emacs Lisp: Problem with nested condition-case and catch in byte compiled code Greg Hill
@ 2002-11-15 18:22 ` Greg Hill
[not found] ` <mailman.1037661783.25741.help-gnu-emacs@gnu.org>
1 sibling, 0 replies; 14+ messages in thread
From: Greg Hill @ 2002-11-15 18:22 UTC (permalink / raw)
[-- Attachment #1: Type: text/plain, Size: 3208 bytes --]
A bit more experimentation shows that nesting a catch inside a catch
or a condition-case inside a condition-case causes the same problem.
I'm beginning to think I must have stumbled across a bug in either
the byte compiler or the byte-code interpreter.
--Greg
At 6:54 PM -0800 11/14/02, Greg Hill wrote:
>This one has me stumped.
>
>Here is my source code:
>
>-----------------------------------------------------------------------------
>(defun cctest ()
> (interactive)
> (catch 'cctest
> (message "before condition-case in catch, (interactive-p) = %s"
> (interactive-p))
> (condition-case nil
> (message "inside condition-case in catch, (interactive-p) = %s"
> (interactive-p))
> (error nil))
> (message "after condition-case in catch, (interactive-p) = %s"
> (interactive-p)))
>
> (message "before condition-case after catch, (interactive-p) = %s"
> (interactive-p))
> (condition-case nil
> (message "inside condition-case after catch, (interactive-p) = %s"
> (interactive-p))
> (error nil))
> (message "after condition-case after catch, (interactive-p) = %s"
> (interactive-p))
>
> (condition-case nil
> (progn
> (message "before catch in condition-case, (interactive-p) = %s"
> (interactive-p))
> (catch 'cctest
> (message "inside catch in condition-case, (interactive-p) = %s"
> (interactive-p)))
> (message "after catch in condition-case, (interactive-p) = %s"
> (interactive-p)))
> (error nil)))
>----------------------------------------------------------------------------
>
>
>If I load the .el source file and execute cctest interactively, I get:
>
>-------------------------------------------------------
>before condition-case in catch, (interactive-p) = t
>inside condition-case in catch, (interactive-p) = t
>after condition-case in catch, (interactive-p) = t
>before condition-case after catch, (interactive-p) = t
>inside condition-case after catch, (interactive-p) = t
>after condition-case after catch, (interactive-p) = t
>before catch in condition-case, (interactive-p) = t
>inside catch in condition-case, (interactive-p) = t
>after catch in condition-case, (interactive-p) = t
>-------------------------------------------------------
>
>
>If I byte compile, load the .elc, and execute cctest interactively, I get:
>
>-------------------------------------------------------
>before condition-case in catch, (interactive-p) = t
>inside condition-case in catch, (interactive-p) = nil
>after condition-case in catch, (interactive-p) = t
>before condition-case after catch, (interactive-p) = t
>inside condition-case after catch, (interactive-p) = t
>after condition-case after catch, (interactive-p) = t
>before catch in condition-case, (interactive-p) = t
>inside catch in condition-case, (interactive-p) = nil
>after catch in condition-case, (interactive-p) = t
>-------------------------------------------------------
>
>
>There seems to be something special about a call to (interactive-p)
>inside a condition-case inside a catch, or inside a catch inside a
>condition-case, in byte-compiled code. But for the life of me I
>can't imagine what that could be. Anybody have any ideas?
>
>--Greg
[-- Attachment #2: Type: text/html, Size: 6165 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Lisp: Problem with nested condition-case and catch in byte compiled code
[not found] ` <mailman.1037661783.25741.help-gnu-emacs@gnu.org>
@ 2002-11-19 0:08 ` Stefan Monnier <foo@acm.com>
2002-11-19 2:47 ` Greg Hill
0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier <foo@acm.com> @ 2002-11-19 0:08 UTC (permalink / raw)
>>>>> "Greg" == Greg Hill <ghill@synergymicro.com> writes:
> A bit more experimentation shows that nesting a catch inside a catch or
> a condition-case inside a condition-case causes the same problem.
> I'm beginning to think I must have stumbled across a bug in either the byte
> compiler or the byte-code interpreter.
Or more likely in the `interactive-p' function which does a lot of ad-hoc
parsing of the call-stack and is thus susceptible to funny things.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Emacs Lisp: Problem with nested condition-case and catch in byte compiled code
2002-11-19 0:08 ` Stefan Monnier <foo@acm.com>
@ 2002-11-19 2:47 ` Greg Hill
0 siblings, 0 replies; 14+ messages in thread
From: Greg Hill @ 2002-11-19 2:47 UTC (permalink / raw)
Stefan,
As you surmised, it turned out to be a bug in the interactive-p
function, where it checks to see whether it is executing
byte-compiled code. I submitted a formal bug report, and Richard
Stallman promptly sent me a patch that fixes the problem. I assume
that when he is entirely comfortable with it, he will make the patch
generally available.
--Greg
At 7:08 PM -0500 11/18/02, Stefan Monnier <foo@acm.com wrote:
> >>>>> "Greg" == Greg Hill <ghill@synergymicro.com> writes:
>> A bit more experimentation shows that nesting a catch inside a catch or
>> a condition-case inside a condition-case causes the same problem.
>> I'm beginning to think I must have stumbled across a bug in either the byte
>> compiler or the byte-code interpreter.
>
>Or more likely in the `interactive-p' function which does a lot of ad-hoc
>parsing of the call-stack and is thus susceptible to funny things.
>
>
> Stefan
>
>_______________________________________________
>Help-gnu-emacs mailing list
>Help-gnu-emacs@gnu.org
>http://mail.gnu.org/mailman/listinfo/help-gnu-emacs
^ permalink raw reply [flat|nested] 14+ messages in thread
* Lisp: Functions for multiple comparisons
2002-10-26 3:26 ` please explain diff bet. K&R and Linux c-mode styles Matt Armstrong
` (2 preceding siblings ...)
2002-11-15 2:54 ` Emacs Lisp: Problem with nested condition-case and catch in byte compiled code Greg Hill
@ 2002-11-20 21:14 ` Greg Hill
[not found] ` <mailman.1037827276.893.help-gnu-emacs@gnu.org>
` (2 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Greg Hill @ 2002-11-20 21:14 UTC (permalink / raw)
I am aware of the built-in functions memq and member. But what I
really want is a pair of special forms that work more like 'or and
'and. The first argument would be compared against all of the rest
using either 'eq or 'equal, returning 't if any match was found.
For example, a special form using an 'eq comarison might be named
'meq and be called like:
(meq (char-syntax (following-char)) ?w ?_)
instead of using
(memq (char-syntax (following-char) '(?w ?_)))
or
(or (eq (char-syntax (following-char)) ?w) (eq (char-syntax
(following-char)) ?_))
or
(let ((syntax (char-syntax (following-char)))) (or (eq syntax
?w) (eq syntax ?_)))
Is there already something like that that I simply am not yet aware
of? If not, am I wrong in thinking that the kind of special forms I
am imagining would be computationally more efficient than any of the
alternatives shown above?
--Greg
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Lisp: Functions for multiple comparisons
[not found] ` <mailman.1037827276.893.help-gnu-emacs@gnu.org>
@ 2002-11-20 23:03 ` Stefan Monnier <foo@acm.com>
2002-11-21 19:56 ` Pascal Bourguignon
0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier <foo@acm.com> @ 2002-11-20 23:03 UTC (permalink / raw)
>>>>> "Greg" == Greg Hill <ghill@synergymicro.com> writes:
> (meq (char-syntax (following-char)) ?w ?_)
> instead of using
> (memq (char-syntax (following-char) '(?w ?_)))
memq is pretty fast given the general slowness of the elisp interpreter.
If you really care about the few extra chars, then you can of course do
(defun meq (x &rest xs) (memq x xs))
although I honestly don't see the point.
Stefan
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Lisp: Functions for multiple comparisons
2002-11-20 23:03 ` Stefan Monnier <foo@acm.com>
@ 2002-11-21 19:56 ` Pascal Bourguignon
0 siblings, 0 replies; 14+ messages in thread
From: Pascal Bourguignon @ 2002-11-21 19:56 UTC (permalink / raw)
"Stefan Monnier <foo@acm.com>" <monnier+gnu.emacs.help/news/@flint.cs.yale.edu> writes:
> >>>>> "Greg" == Greg Hill <ghill@synergymicro.com> writes:
> > (meq (char-syntax (following-char)) ?w ?_)
> > instead of using
> > (memq (char-syntax (following-char) '(?w ?_)))
>
> memq is pretty fast given the general slowness of the elisp interpreter.
> If you really care about the few extra chars, then you can of course do
>
> (defun meq (x &rest xs) (memq x xs))
>
> although I honestly don't see the point.
>
>
> Stefan
Perhaps avoiding cutting too much:
Greg Hill <ghill@synergymicro.com> writes:
> I am aware of the built-in functions memq and member. But what I
> really want is a pair of special forms that work more like 'or and
> 'and. The first argument would be compared against all of the rest
> using either 'eq or 'equal, returning 't if any match was found.
So, Greg wants a special form like 'or or 'and. That is, with lazy
evaluation of the remaining arguments!
(defmacro meq (key &rest values)
`(let ((meq_key ,key)
(meq_values ',values))
(while (and meq_values (not (eq meq_key (eval (car meq_values)))))
(setq meq_values (cdr meq_values)))
meq_values))
(show (macroexpand (quote (meq 12 (+ 9 1) (+ 10 2) (length (make-vector 1e9)) 13))))
==> (let ((meq_key 12) (meq_values (quote ((+ 9 1) (+ 10 2) (length (make-vector 1000000000.0)) 13)))) (while (and meq_values (not (eq meq_key (eval (car meq_values))))) (setq meq_values (cdr meq_values))) meq_values)
(show (meq 12 (+ 9 1) (+ 10 2) (length (make-vector 1e9)) 13))
==> ((+ 10 2) (length (make-vector 1000000000.0)) 13)
But of course, it you only use lists of constants like '(?w ?_), it's
better to use memq which is a primitive.
> For example, a special form using an 'eq comarison might be named 'meq
> and be called like:
>
> (meq (char-syntax (following-char)) ?w ?_)
>
> instead of using
>
> (memq (char-syntax (following-char) '(?w ?_)))
> or
> (or (eq (char-syntax (following-char)) ?w) (eq (char-syntax
> (following-char)) ?_))
> or
> (let ((syntax (char-syntax (following-char)))) (or (eq syntax ?w)
> (eq syntax ?_)))
>
> Is there already something like that that I simply am not yet aware
> of? If not, am I wrong in thinking that the kind of special forms I
> am imagining would be computationally more efficient than any of the
> alternatives shown above?
>
> --Greg
--
__Pascal_Bourguignon__ http://www.informatimago.com/
----------------------------------------------------------------------
There is no worse tyranny than to force a man to pay for what he does not
want merely because you think it would be good for him. -- Robert Heinlein
^ permalink raw reply [flat|nested] 14+ messages in thread
* Index of element in a sequence
2002-10-26 3:26 ` please explain diff bet. K&R and Linux c-mode styles Matt Armstrong
` (4 preceding siblings ...)
[not found] ` <mailman.1037827276.893.help-gnu-emacs@gnu.org>
@ 2002-11-27 19:07 ` Greg Hill
[not found] ` <mailman.1038424169.3933.help-gnu-emacs@gnu.org>
6 siblings, 0 replies; 14+ messages in thread
From: Greg Hill @ 2002-11-27 19:07 UTC (permalink / raw)
Are there any built-in functions that provide the equivalent of the
following lisp routines?
(defun indq (value seq)
"Return the index number of VALUE in sequence SEQ, using eq for test.
Return nil if VALUE does not exist in SEQ."
(let ((ix 0) (len (length seq)))
(catch 'indq
(while (< ix len)
(if (eq (elt seq ix) value)
(throw 'indq ix)
(setq ix (1+ ix)) ) ) ) ))
(defun index (value seq)
"Return the index number of VALUE in sequence SEQ, using equal for test.
Return nil if VALUE does not exist in SEQ."
(let ((ix 0) (len (length seq)))
(catch 'index
(while (< ix len)
(if (equal (elt seq ix) value)
(throw 'index ix)
(setq ix (1+ ix)) ) ) ) ))
--Greg
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Index of element in a sequence
[not found] ` <mailman.1038424169.3933.help-gnu-emacs@gnu.org>
@ 2002-11-27 19:23 ` Barry Margolin
0 siblings, 0 replies; 14+ messages in thread
From: Barry Margolin @ 2002-11-27 19:23 UTC (permalink / raw)
In article <mailman.1038424169.3933.help-gnu-emacs@gnu.org>,
Greg Hill <ghill@synergymicro.com> wrote:
>Are there any built-in functions that provide the equivalent of the
>following lisp routines?
The 'position' function can be loaded with (require 'cl).
--
Barry Margolin, barmar@genuity.net
Genuity, Woburn, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2002-11-27 19:23 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.1035590178.16479.help-gnu-emacs@gnu.org>
2002-10-26 3:26 ` please explain diff bet. K&R and Linux c-mode styles Matt Armstrong
2002-10-29 0:37 ` seberino
2002-10-29 13:28 ` Kevin Dziulko
2002-10-29 13:55 ` Alfred M. Szmidt
[not found] ` <mailman.1035851913.4061.help-gnu-emacs@gnu.org>
2002-10-29 2:33 ` Edgar Antonio Luna Díaz
2002-11-15 2:54 ` Emacs Lisp: Problem with nested condition-case and catch in byte compiled code Greg Hill
2002-11-15 18:22 ` Greg Hill
[not found] ` <mailman.1037661783.25741.help-gnu-emacs@gnu.org>
2002-11-19 0:08 ` Stefan Monnier <foo@acm.com>
2002-11-19 2:47 ` Greg Hill
2002-11-20 21:14 ` Lisp: Functions for multiple comparisons Greg Hill
[not found] ` <mailman.1037827276.893.help-gnu-emacs@gnu.org>
2002-11-20 23:03 ` Stefan Monnier <foo@acm.com>
2002-11-21 19:56 ` Pascal Bourguignon
2002-11-27 19:07 ` Index of element in a sequence Greg Hill
[not found] ` <mailman.1038424169.3933.help-gnu-emacs@gnu.org>
2002-11-27 19:23 ` Barry Margolin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).