- p += sprintf(p, "%s", gras_os_myname());
- break;
- case 't': /* process name; LOG4J compliant (thread name) */
- p += sprintf(p, "%s", xbt_procname());
+ if (precision == -1)
+ p += sprintf(p, "%s", gras_os_myname());
+ else {
+ p += sprintf(p, "%.*s", precision, gras_os_myname());
+ precision = -1;
+ }
+ break;
+ case 't': /* thread name; LOG4J compliant */
+ p += sprintf(p, "%p", xbt_thread_self());
+ precision = -1;
+ break;
+ case 'P': /* process name; SimGrid extension */
+ if (precision == -1)
+ p += sprintf(p, "%s", xbt_procname());
+ else {
+ p += sprintf(p, "%.*s", precision,xbt_procname());
+ precision = -1;
+ }