--On Thursday, March 13, 2003 15:51:00 -0500 Tom Lane <[EMAIL PROTECTED]> wrote:
__FUNCTION__ or an equivalent is MANDATED by C99, and available on UnixWare's native cc.(__FUNCTION__ is only used if we are compiling in gcc). errstart() pushes an empty entry onto an error-data-collection stack and fills in the behind-the-scenes file/line entries. errmsg() and friends stash values into the top-level stack entry. Finally errfinish() assembles and emits the completed message, then pops the stack. By using a stack, we can be assured that things will work correctly if a message is logged by some subroutine called in the parameters to ereport (not too unlikely when you think about formatting functions like format_type_be()).
You might want to make a configure test for it.
I believe the __func__ is the C99 spelling (that's what's available on UnixWare):
$ cc -O -o testfunc testfunc.c $ ./testfunc function=main,file=testfunc.c,line=4 $ cat testfunc.c #include <stdio.h> int main(int argc,char **argv) { printf("function=%s,file=%s,line=%d\n",__func__,__FILE__,__LINE__); } $
-- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 972-414-9812 E-Mail: [EMAIL PROTECTED] US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749
---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html