diff --git a/sdk/docs/man/docbook4/eglIntro.xml b/sdk/docs/man/docbook4/eglIntro.xml
index c6f7731..d972451 100755
--- a/sdk/docs/man/docbook4/eglIntro.xml
+++ b/sdk/docs/man/docbook4/eglIntro.xml
@@ -162,25 +162,35 @@
         EGLSurface surface;
         NativeWindowType native_window;
         EGLint num_config;
+
         /* get an EGL display connection */
         display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
         /* initialize the EGL display connection */
         eglInitialize(display, NULL, NULL);
+
         /* get an appropriate EGL frame buffer configuration */
         eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
         /* create an EGL rendering context */
         context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
         /* create a native window */
         native_window = createNativeWindow();
+
         /* create an EGL window surface */
         surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
         /* connect the context to the surface */
         eglMakeCurrent(display, surface, surface, context);
+
         /* clear the color buffer */
         glClearColor(1.0, 1.0, 0.0, 1.0);
         glClear(GL_COLOR_BUFFER_BIT);
         glFlush();
+
         eglSwapBuffers(display, surface);
+
         sleep(10);
         return EXIT_SUCCESS;
 }
diff --git a/sdk/docs/man/eglIntro.xml b/sdk/docs/man/eglIntro.xml
index 70ac7c1..0cdd0a1 100755
--- a/sdk/docs/man/eglIntro.xml
+++ b/sdk/docs/man/eglIntro.xml
@@ -170,25 +170,35 @@
         EGLSurface surface;
         NativeWindowType native_window;
         EGLint num_config;
+
         /* get an EGL display connection */
         display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
         /* initialize the EGL display connection */
         eglInitialize(display, NULL, NULL);
+
         /* get an appropriate EGL frame buffer configuration */
         eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
         /* create an EGL rendering context */
         context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
         /* create a native window */
         native_window = createNativeWindow();
+
         /* create an EGL window surface */
         surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
         /* connect the context to the surface */
         eglMakeCurrent(display, surface, surface, context);
+
         /* clear the color buffer */
         glClearColor(1.0, 1.0, 0.0, 1.0);
         glClear(GL_COLOR_BUFFER_BIT);
         glFlush();
+
         eglSwapBuffers(display, surface);
+
         sleep(10);
         return EXIT_SUCCESS;
 }
diff --git a/sdk/docs/man/html/eglIntro.xhtml b/sdk/docs/man/html/eglIntro.xhtml
index bb299fa..b82eade 100644
--- a/sdk/docs/man/html/eglIntro.xhtml
+++ b/sdk/docs/man/html/eglIntro.xhtml
@@ -172,25 +172,35 @@
         EGLSurface surface;
         NativeWindowType native_window;
         EGLint num_config;
+
         /* get an EGL display connection */
         display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
         /* initialize the EGL display connection */
         eglInitialize(display, NULL, NULL);
+
         /* get an appropriate EGL frame buffer configuration */
         eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
         /* create an EGL rendering context */
         context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
         /* create a native window */
         native_window = createNativeWindow();
+
         /* create an EGL window surface */
         surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
         /* connect the context to the surface */
         eglMakeCurrent(display, surface, surface, context);
+
         /* clear the color buffer */
         glClearColor(1.0, 1.0, 0.0, 1.0);
         glClear(GL_COLOR_BUFFER_BIT);
         glFlush();
+
         eglSwapBuffers(display, surface);
+
         sleep(10);
         return EXIT_SUCCESS;
 }
diff --git a/sdk/docs/man/xhtml/eglIntro.html b/sdk/docs/man/xhtml/eglIntro.html
index a33d004..4ef078e 100644
--- a/sdk/docs/man/xhtml/eglIntro.html
+++ b/sdk/docs/man/xhtml/eglIntro.html
@@ -374,25 +374,35 @@
         EGLSurface surface;
         NativeWindowType native_window;
         EGLint num_config;
+
         /* get an EGL display connection */
         display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
         /* initialize the EGL display connection */
         eglInitialize(display, NULL, NULL);
+
         /* get an appropriate EGL frame buffer configuration */
         eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
         /* create an EGL rendering context */
         context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
         /* create a native window */
         native_window = createNativeWindow();
+
         /* create an EGL window surface */
         surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
         /* connect the context to the surface */
         eglMakeCurrent(display, surface, surface, context);
+
         /* clear the color buffer */
         glClearColor(1.0, 1.0, 0.0, 1.0);
         glClear(GL_COLOR_BUFFER_BIT);
         glFlush();
+
         eglSwapBuffers(display, surface);
+
         sleep(10);
         return EXIT_SUCCESS;
 }
